From 6b4d250e9c43f8ec5331b5c615c78067fb782343 Mon Sep 17 00:00:00 2001 From: Quackster Date: Sat, 3 Sep 2022 15:05:14 +1000 Subject: [PATCH] Add source code --- Havana-Server/.gitignore | 18 + Havana-Server/build.gradle | 83 + .../main/java/org/alexdev/havana/Havana.java | 356 + .../java/org/alexdev/havana/dao/Storage.java | 245 + .../havana/dao/mysql/AchievementDao.java | 115 + .../havana/dao/mysql/AdvertisementsDao.java | 132 + .../alexdev/havana/dao/mysql/AlertsDao.java | 191 + .../alexdev/havana/dao/mysql/BadgeDao.java | 283 + .../org/alexdev/havana/dao/mysql/BanDao.java | 144 + .../org/alexdev/havana/dao/mysql/BotDao.java | 57 + .../havana/dao/mysql/CatalogueDao.java | 186 + .../alexdev/havana/dao/mysql/ClubGiftDao.java | 91 + .../havana/dao/mysql/CollectablesDao.java | 60 + .../alexdev/havana/dao/mysql/CurrencyDao.java | 757 + .../alexdev/havana/dao/mysql/EffectDao.java | 158 + .../alexdev/havana/dao/mysql/EventsDao.java | 137 + .../org/alexdev/havana/dao/mysql/GameDao.java | 281 + .../alexdev/havana/dao/mysql/GroupDao.java | 437 + .../havana/dao/mysql/GroupMemberDao.java | 338 + .../alexdev/havana/dao/mysql/GuideDao.java | 39 + .../havana/dao/mysql/HighscoreDao.java | 119 + .../alexdev/havana/dao/mysql/InfobusDao.java | 237 + .../org/alexdev/havana/dao/mysql/ItemDao.java | 655 + .../alexdev/havana/dao/mysql/JukeboxDao.java | 163 + .../org/alexdev/havana/dao/mysql/LogDao.java | 69 + .../havana/dao/mysql/MessengerDao.java | 624 + .../havana/dao/mysql/ModerationDao.java | 31 + .../havana/dao/mysql/MoodlightDao.java | 147 + .../havana/dao/mysql/NavigatorDao.java | 359 + .../org/alexdev/havana/dao/mysql/PetDao.java | 124 + .../alexdev/havana/dao/mysql/PhotoDao.java | 84 + .../alexdev/havana/dao/mysql/PlayerDao.java | 1052 + .../havana/dao/mysql/PlayerStatisticsDao.java | 231 + .../havana/dao/mysql/PublicRoomsDao.java | 80 + .../alexdev/havana/dao/mysql/ReferredDao.java | 57 + .../alexdev/havana/dao/mysql/RoomBanDao.java | 65 + .../org/alexdev/havana/dao/mysql/RoomDao.java | 532 + .../havana/dao/mysql/RoomFavouritesDao.java | 77 + .../havana/dao/mysql/RoomModelDao.java | 43 + .../havana/dao/mysql/RoomRightsDao.java | 102 + .../havana/dao/mysql/RoomVisitsDao.java | 55 + .../alexdev/havana/dao/mysql/RoomVoteDao.java | 119 + .../alexdev/havana/dao/mysql/SettingsDao.java | 179 + .../havana/dao/mysql/SongMachineDao.java | 331 + .../org/alexdev/havana/dao/mysql/TagDao.java | 381 + .../havana/dao/mysql/TeleporterDao.java | 57 + .../havana/dao/mysql/TransactionDao.java | 150 + .../alexdev/havana/dao/mysql/TutorialDao.java | 107 + .../havana/dao/mysql/UsersMutesDao.java | 77 + .../alexdev/havana/dao/mysql/VoucherDao.java | 136 + .../alexdev/havana/dao/mysql/WardrobeDao.java | 102 + .../havana/dao/mysql/WordfilterDao.java | 38 + .../alexdev/havana/game/GameScheduler.java | 318 + .../game/achievements/AchievementInfo.java | 62 + .../game/achievements/AchievementManager.java | 132 + .../achievements/AchievementProgress.java | 8 + .../game/achievements/AchievementType.java | 58 + .../AchievementAIPerformanceVote.java | 20 + .../AchievementAllTimeHotelPresence.java | 23 + .../progressions/AchievementAvatarLooks.java | 14 + .../AchievementEmailVerification.java | 13 + .../progressions/AchievementGamePlayed.java | 25 + .../progressions/AchievementGraduate.java | 23 + .../progressions/AchievementGuide.java | 21 + .../progressions/AchievementHabboClub.java | 39 + .../progressions/AchievementHappyHour.java | 19 + .../progressions/AchievementLogin.java | 51 + .../progressions/AchievementMGM.java | 26 + .../progressions/AchievementMotto.java | 14 + .../AchievementRegistrationDuration.java | 24 + .../AchievementRespectEarned.java | 67 + .../progressions/AchievementRespectGiven.java | 14 + .../progressions/AchievementRoomEntry.java | 25 + .../progressions/AchievementStudent.java | 14 + .../progressions/AchievementTags.java | 28 + .../progressions/AchievementTraderPass.java | 31 + .../achievements/user/UserAchievement.java | 52 + .../user/UserAchievementManager.java | 260 + .../alexdev/havana/game/ads/AdManager.java | 97 + .../havana/game/ads/Advertisement.java | 43 + .../havana/game/alerts/AccountAlert.java | 43 + .../alexdev/havana/game/alerts/AlertType.java | 8 + .../org/alexdev/havana/game/badges/Badge.java | 33 + .../havana/game/badges/BadgeManager.java | 195 + .../java/org/alexdev/havana/game/ban/Ban.java | 69 + .../alexdev/havana/game/ban/BanManager.java | 54 + .../org/alexdev/havana/game/ban/BanType.java | 7 + .../java/org/alexdev/havana/game/bot/Bot.java | 70 + .../org/alexdev/havana/game/bot/BotData.java | 109 + .../alexdev/havana/game/bot/BotManager.java | 125 + .../alexdev/havana/game/bot/BotSpeech.java | 29 + .../havana/game/catalogue/CatalogueItem.java | 198 + .../game/catalogue/CatalogueManager.java | 518 + .../game/catalogue/CataloguePackage.java | 38 + .../havana/game/catalogue/CataloguePage.java | 210 + .../collectables/CollectableData.java | 78 + .../collectables/CollectablesManager.java | 96 + .../catalogue/voucher/VoucherManager.java | 104 + .../catalogue/voucher/VoucherRedeemMode.java | 6 + .../voucher/VoucherRedeemStatus.java | 7 + .../havana/game/club/ClubSubscription.java | 363 + .../alexdev/havana/game/commands/Command.java | 90 + .../havana/game/commands/CommandManager.java | 261 + .../commands/registered/AboutCommand.java | 42 + .../game/commands/registered/AfkCommand.java | 41 + .../commands/registered/DropDrinkCommand.java | 54 + .../commands/registered/GiveDrinkCommand.java | 110 + .../registered/GuideStatusCommand.java | 64 + .../game/commands/registered/HelpCommand.java | 91 + .../commands/registered/PickAllCommand.java | 68 + .../registered/RainbowDimmerCommand.java | 99 + .../commands/registered/SetConfigCommand.java | 54 + .../commands/registered/ShutdownCommand.java | 69 + .../game/commands/registered/SitCommand.java | 89 + .../game/commands/registered/TalkCommand.java | 55 + .../commands/registered/UptimeCommand.java | 85 + .../registered/UsersOnlineCommand.java | 66 + .../commands/registered/admin/BotCommand.java | 85 + .../registered/admin/ItemDebugCommand.java | 38 + .../registered/admin/PacketTestCommand.java | 39 + .../admin/RecoverAccountCommand.java | 50 + .../registered/groups/BanCommand.java | 55 + .../registered/groups/HotelAlertCommand.java | 35 + .../registered/groups/MuteCommand.java | 90 + .../registered/groups/RoomAlertCommand.java | 42 + .../registered/groups/RoomMuteCommand.java | 36 + .../registered/groups/TradeBanCommand.java | 88 + .../registered/groups/UnbanCommand.java | 93 + .../registered/groups/UnmuteCommand.java | 77 + .../moderation/CheckCreditsCommand.java | 55 + .../registered/moderation/CoordsCommand.java | 42 + .../moderation/CopyRoomCommand.java | 112 + .../moderation/DisconnectUserCommand.java | 57 + .../moderation/GiftRoomCommand.java | 58 + .../moderation/GiveBadgeCommand.java | 121 + .../moderation/GiveCreditsCommand.java | 77 + .../moderation/HeadRotateCommand.java | 102 + .../registered/moderation/PermBanCommand.java | 109 + .../registered/moderation/ReloadCommand.java | 161 + .../moderation/RemoveBadgeCommand.java | 76 + .../moderation/RemoveCreditsCommand.java | 77 + .../moderation/TeleportCommand.java | 31 + .../moderation/UnacceptableCommand.java | 64 + .../havana/game/ecotron/EcotronItem.java | 25 + .../havana/game/ecotron/EcotronManager.java | 83 + .../alexdev/havana/game/effects/Effect.java | 59 + .../havana/game/effects/EffectsManager.java | 41 + .../havana/game/encryption/DiffieHellman.java | 85 + .../alexdev/havana/game/encryption/RC4.java | 80 + .../havana/game/encryption/SecurityCode.java | 100 + .../alexdev/havana/game/entity/Entity.java | 44 + .../havana/game/entity/EntityState.java | 74 + .../havana/game/entity/EntityType.java | 25 + .../org/alexdev/havana/game/events/Event.java | 196 + .../havana/game/events/EventsManager.java | 199 + .../havana/game/fuserights/Fuseright.java | 109 + .../game/fuserights/FuserightsManager.java | 95 + .../org/alexdev/havana/game/games/Game.java | 945 + .../alexdev/havana/game/games/GameEvent.java | 23 + .../havana/game/games/GameManager.java | 335 + .../alexdev/havana/game/games/GameObject.java | 34 + .../havana/game/games/GameParameter.java | 50 + .../alexdev/havana/game/games/GameSpawn.java | 29 + .../alexdev/havana/game/games/GameTile.java | 39 + .../game/games/battleball/BattleBallGame.java | 460 + .../game/games/battleball/BattleBallMap.java | 59 + .../games/battleball/BattleBallPowerUp.java | 260 + .../game/games/battleball/BattleBallTask.java | 179 + .../game/games/battleball/BattleBallTile.java | 256 + .../enums/BattleBallColourState.java | 30 + .../enums/BattleBallPlayerState.java | 33 + .../battleball/enums/BattleBallPowerType.java | 39 + .../battleball/enums/BattleBallTileState.java | 29 + .../events/AcquirePowerUpEvent.java | 25 + .../events/ActivatePowerUpEvent.java | 26 + .../battleball/events/DespawnObjectEvent.java | 19 + .../battleball/events/PinSpawnEvent.java | 24 + .../battleball/events/PlayerMoveEvent.java | 29 + .../battleball/events/PlayerUpdateEvent.java | 22 + .../battleball/events/PowerUpSpawnEvent.java | 22 + .../games/battleball/objects/PinObject.java | 27 + .../battleball/objects/PlayerObject.java | 32 + .../objects/PlayerUpdateObject.java | 26 + .../games/battleball/objects/PowerObject.java | 26 + .../objects/PowerUpUpdateObject.java | 22 + .../games/battleball/powerups/BombHandle.java | 78 + .../battleball/powerups/CannonHandle.java | 153 + .../battleball/powerups/HarlequinHandle.java | 49 + .../battleball/powerups/LightbulbHandle.java | 56 + .../battleball/powerups/NailBoxHandle.java | 145 + .../battleball/powerups/SpringHandle.java | 31 + .../battleball/powerups/TorchHandle.java | 73 + .../battleball/powerups/VacuumHandle.java | 31 + .../game/games/enums/GameEventType.java | 19 + .../game/games/enums/GameObjectType.java | 32 + .../havana/game/games/enums/GameState.java | 17 + .../havana/game/games/enums/GameType.java | 34 + .../game/games/gamehalls/GameBattleShip.java | 413 + .../game/games/gamehalls/GameChess.java | 334 + .../game/games/gamehalls/GamePoker.java | 51 + .../game/games/gamehalls/GameTicTacToe.java | 496 + .../game/games/gamehalls/GamehallGame.java | 312 + .../game/games/gamehalls/utils/GameShip.java | 71 + .../games/gamehalls/utils/GameShipMove.java | 39 + .../gamehalls/utils/GameShipMoveResult.java | 17 + .../games/gamehalls/utils/GameShipType.java | 40 + .../game/games/gamehalls/utils/GameToken.java | 29 + .../game/games/history/GameHistory.java | 131 + .../game/games/history/GameHistoryData.java | 41 + .../game/games/history/GameHistoryPlayer.java | 37 + .../havana/game/games/history/ScoreEntry.java | 25 + .../havana/game/games/player/GamePlayer.java | 360 + .../havana/game/games/player/GameRank.java | 64 + .../havana/game/games/player/GameTeam.java | 60 + .../game/games/snowstorm/SnowStormGame.java | 332 + .../games/snowstorm/SnowStormMapsManager.java | 208 + .../game/games/snowstorm/SnowStormTurn.java | 18 + .../events/SnowStormAvatarMoveEvent.java | 26 + .../events/SnowStormCreateSnowballEvent.java | 20 + .../events/SnowStormDeleteObjectEvent.java | 20 + .../snowstorm/events/SnowStormHitEvent.java | 26 + .../events/SnowStormLaunchSnowballEvent.java | 32 + .../SnowStormMachineAddSnowballEvent.java | 20 + .../SnowStormMachineMoveSnowballsEvent.java | 23 + .../snowstorm/events/SnowStormStunEvent.java | 27 + .../snowstorm/events/SnowStormThrowEvent.java | 29 + .../snowstorm/mapping/SnowStormItem.java | 59 + .../games/snowstorm/mapping/SnowStormMap.java | 109 + .../mapping/SnowStormPathfinder.java | 199 + .../snowstorm/mapping/SnowStormTile.java | 69 + .../messages/SnowStormMessageHandler.java | 43 + .../SnowStormAttackPlayerMessage.java | 87 + .../SnowStormThrowLocationMessage.java | 77 + .../incoming/SnowStormWalkMessage.java | 35 + .../SnowstormCreateSnowballMessage.java | 38 + .../objects/SnowStormAvatarObject.java | 42 + .../objects/SnowStormMachineObject.java | 68 + .../snowstorm/objects/SnowballObject.java | 195 + .../snowstorm/tasks/SnowStormGameTask.java | 247 + .../snowstorm/tasks/SnowballMovementTask.java | 115 + .../util/SnowStormActivityState.java | 33 + .../snowstorm/util/SnowStormAttributes.java | 154 + .../games/snowstorm/util/SnowStormEvent.java | 26 + .../games/snowstorm/util/SnowStormFuture.java | 31 + .../snowstorm/util/SnowStormMessage.java | 10 + .../games/snowstorm/util/SnowStormSpawn.java | 27 + .../game/games/tasks/GameFinishTask.java | 182 + .../games/triggers/BattleShipsTrigger.java | 68 + .../game/games/triggers/ChessTrigger.java | 68 + .../game/games/triggers/GameTrigger.java | 148 + .../game/games/triggers/PokerTrigger.java | 99 + .../game/games/triggers/TicTacToeTrigger.java | 89 + .../havana/game/games/utils/FinishedGame.java | 100 + .../havana/game/games/utils/FloodFill.java | 57 + .../havana/game/games/utils/PowerUpUtil.java | 32 + .../game/games/utils/ScoreReference.java | 27 + .../havana/game/games/utils/TileUtil.java | 64 + .../wobblesquabble/WobbleSquabbleGame.java | 382 + .../wobblesquabble/WobbleSquabbleManager.java | 80 + .../wobblesquabble/WobbleSquabbleMove.java | 54 + .../wobblesquabble/WobbleSquabblePlayer.java | 196 + .../wobblesquabble/WobbleSquabbleStatus.java | 78 + .../org/alexdev/havana/game/groups/Group.java | 271 + .../havana/game/groups/GroupForumType.java | 26 + .../havana/game/groups/GroupMember.java | 44 + .../havana/game/groups/GroupMemberRank.java | 33 + .../game/groups/GroupPermissionType.java | 27 + .../havana/game/guides/GuideInviteTask.java | 47 + .../havana/game/guides/GuideManager.java | 253 + .../havana/game/infobus/InfobusManager.java | 183 + .../havana/game/infobus/InfobusPoll.java | 42 + .../havana/game/infobus/InfobusPollData.java | 22 + .../havana/game/inventory/Inventory.java | 307 + .../org/alexdev/havana/game/item/Item.java | 860 + .../alexdev/havana/game/item/ItemManager.java | 321 + .../havana/game/item/ItemVersionManager.java | 44 + .../org/alexdev/havana/game/item/Photo.java | 31 + .../alexdev/havana/game/item/Transaction.java | 46 + .../havana/game/item/base/ItemBehaviour.java | 52 + .../havana/game/item/base/ItemDefinition.java | 382 + .../game/item/extradata/ExtraDataManager.java | 68 + .../item/extradata/types/TrophyExtraData.java | 25 + .../item/interactors/InteractionType.java | 65 + .../item/interactors/enums/TotemColour.java | 8 + .../item/interactors/enums/TotemEffect.java | 37 + .../item/interactors/types/BedInteractor.java | 157 + .../interactors/types/ChairInteractor.java | 65 + .../interactors/types/DefaultInteractor.java | 48 + .../interactors/types/FortuneInteractor.java | 68 + .../interactors/types/LertInteractor.java | 22 + .../types/LoveRandomizerInteractor.java | 45 + .../types/MultiHeightInteractor.java | 21 + .../interactors/types/PetNestInteractor.java | 91 + .../types/ScoreboardInteractor.java | 49 + .../types/StepLightInteractor.java | 24 + .../interactors/types/TeleportInteractor.java | 209 + .../types/TeleportRoomHireInteractor.java | 75 + .../interactors/types/TotemHeadTrigger.java | 252 + .../interactors/types/TotemLegTrigger.java | 56 + .../interactors/types/TotemPlanetTrigger.java | 131 + .../types/VendingMachineInteractor.java | 61 + .../types/idol/IdolChairVoteInteractor.java | 54 + .../types/idol/IdolScoreboardInteractor.java | 82 + .../types/pool/PoolBoothInteractor.java | 36 + .../types/pool/PoolExitInteractor.java | 72 + .../types/pool/PoolInteractor.java | 58 + .../types/pool/PoolLadderInteractor.java | 113 + .../types/pool/PoolLiftInteractor.java | 42 + .../types/pool/PoolQueueInteractor.java | 54 + .../WobbleSquabbleJoinQueue.java | 58 + .../WobbleSquabbleQueueTile.java | 29 + .../WobbleSquabbleTileStart.java | 81 + .../game/item/publicrooms/PublicItemData.java | 92 + .../item/publicrooms/PublicItemParser.java | 286 + .../item/roller/EntityRollingAnalysis.java | 202 + .../game/item/roller/ItemRollingAnalysis.java | 175 + .../havana/game/item/roller/RollerEntry.java | 35 + .../game/item/roller/RollingAnalysis.java | 10 + .../havana/game/item/roller/RollingData.java | 67 + .../havana/game/messenger/Messenger.java | 328 + .../game/messenger/MessengerCategory.java | 25 + .../havana/game/messenger/MessengerError.java | 33 + .../game/messenger/MessengerErrorReason.java | 17 + .../game/messenger/MessengerErrorType.java | 20 + .../game/messenger/MessengerManager.java | 43 + .../game/messenger/MessengerMessage.java | 41 + .../havana/game/messenger/MessengerUser.java | 194 + .../havana/game/misc/figure/FigureColor.java | 31 + .../game/misc/figure/FigureManager.java | 293 + .../havana/game/misc/figure/FigurePart.java | 31 + .../havana/game/misc/figure/FigureSet.java | 52 + .../game/misc/figure/FigureSetType.java | 25 + .../havana/game/misc/purse/Voucher.java | 45 + .../havana/game/moderation/ChatManager.java | 62 + .../havana/game/moderation/ChatMessage.java | 53 + .../game/moderation/ModerationAction.java | 10 + .../game/moderation/ModerationActionType.java | 33 + .../actions/ModeratorAlertUserAction.java | 33 + .../actions/ModeratorBanUserAction.java | 87 + .../actions/ModeratorKickUserAction.java | 47 + .../actions/ModeratorRoomAlertAction.java | 28 + .../actions/ModeratorRoomKickAction.java | 39 + .../game/moderation/cfh/CallForHelp.java | 89 + .../moderation/cfh/CallForHelpManager.java | 163 + .../game/navigator/NavigatorCategory.java | 131 + .../game/navigator/NavigatorManager.java | 95 + .../havana/game/navigator/NavigatorStyle.java | 31 + .../havana/game/pathfinder/AffectedTile.java | 58 + .../havana/game/pathfinder/Pathfinder.java | 252 + .../game/pathfinder/PathfinderNode.java | 143 + .../havana/game/pathfinder/Position.java | 421 + .../havana/game/pathfinder/Rotation.java | 67 + .../org/alexdev/havana/game/pets/Pet.java | 141 + .../alexdev/havana/game/pets/PetAction.java | 25 + .../alexdev/havana/game/pets/PetDetails.java | 188 + .../alexdev/havana/game/pets/PetManager.java | 402 + .../org/alexdev/havana/game/pets/PetStat.java | 19 + .../org/alexdev/havana/game/pets/PetType.java | 7 + .../alexdev/havana/game/player/Player.java | 622 + .../havana/game/player/PlayerDetails.java | 541 + .../havana/game/player/PlayerManager.java | 342 + .../havana/game/player/PlayerRank.java | 37 + .../alexdev/havana/game/player/Wardrobe.java | 25 + .../game/player/guides/GuidingData.java | 31 + .../player/guides/PlayerGuideManager.java | 314 + .../player/statistics/PlayerStatistic.java | 54 + .../statistics/PlayerStatisticManager.java | 118 + .../org/alexdev/havana/game/room/Room.java | 533 + .../alexdev/havana/game/room/RoomData.java | 394 + .../alexdev/havana/game/room/RoomManager.java | 340 + .../havana/game/room/RoomUserStatus.java | 95 + .../havana/game/room/entities/RoomBot.java | 30 + .../havana/game/room/entities/RoomEntity.java | 1081 + .../havana/game/room/entities/RoomPet.java | 268 + .../havana/game/room/entities/RoomPlayer.java | 412 + .../havana/game/room/enums/DrinkType.java | 7 + .../havana/game/room/enums/StatusType.java | 37 + .../game/room/handlers/PoolHandler.java | 114 + .../room/handlers/PublicRoomRedirection.java | 34 + .../room/handlers/RoomSelectionHandler.java | 143 + .../handlers/walkways/WalkwaysEntrance.java | 35 + .../handlers/walkways/WalkwaysManager.java | 109 + .../game/room/managers/RoomEntityManager.java | 419 + .../game/room/managers/RoomIdolManager.java | 234 + .../game/room/managers/RoomItemManager.java | 290 + .../game/room/managers/RoomTaskManager.java | 136 + .../game/room/managers/RoomTimerManager.java | 120 + .../game/room/managers/RoomTradeManager.java | 174 + .../havana/game/room/managers/VoteData.java | 35 + .../havana/game/room/mapping/RoomMapping.java | 617 + .../havana/game/room/mapping/RoomTile.java | 493 + .../game/room/mapping/RoomTileState.java | 6 + .../room/mapping/select_side_tictactoe.txt | 46 + .../havana/game/room/models/RoomModel.java | 178 + .../game/room/models/RoomModelManager.java | 46 + .../room/models/RoomModelTriggerType.java | 27 + .../triggers/BattleballLobbyTrigger.java | 100 + .../models/triggers/DivingDeckTrigger.java | 156 + .../room/models/triggers/FlatTrigger.java | 82 + .../models/triggers/HabboLidoTrigger.java | 46 + .../models/triggers/InfobusParkTrigger.java | 37 + .../models/triggers/InfobusPollTrigger.java | 37 + .../models/triggers/RooftopRumbleTrigger.java | 54 + .../triggers/SnowStormLobbyTrigger.java | 98 + .../models/triggers/SpaceCafeTrigger.java | 24 + .../havana/game/room/tasks/BotTask.java | 60 + .../havana/game/room/tasks/CameraTask.java | 31 + .../havana/game/room/tasks/DiceTask.java | 37 + .../havana/game/room/tasks/EntityTask.java | 422 + .../havana/game/room/tasks/FortuneTask.java | 29 + .../havana/game/room/tasks/RainbowTask.java | 60 + .../game/room/tasks/RollerCompleteTask.java | 46 + .../havana/game/room/tasks/RollerTask.java | 141 + .../havana/game/room/tasks/SpaceCafeTask.java | 114 + .../havana/game/room/tasks/StatusTask.java | 188 + .../org/alexdev/havana/game/song/Song.java | 78 + .../havana/game/song/SongPlaylist.java | 25 + .../havana/game/song/jukebox/BurnedDisk.java | 37 + .../game/song/jukebox/JukeboxManager.java | 45 + .../alexdev/havana/game/tags/HabboTag.java | 79 + .../havana/game/texts/TextsManager.java | 45 + .../game/triggers/GameLobbyTrigger.java | 30 + .../havana/game/triggers/GenericTrigger.java | 21 + .../game/wordfilter/WordfilterManager.java | 139 + .../game/wordfilter/WordfilterWord.java | 25 + .../main/java/org/alexdev/havana/log/Log.java | 11 + .../havana/messages/MessageHandler.java | 664 + .../incoming/catalogue/GET_ALIAS_LIST.java | 15 + .../catalogue/GET_CATALOGUE_PAGE.java | 65 + .../incoming/catalogue/GET_CATALOG_INDEX.java | 15 + .../messages/incoming/catalogue/GRPC.java | 318 + .../messages/incoming/club/GET_CLUB.java | 12 + .../incoming/club/SCR_GIFT_APPROVAL.java | 27 + .../incoming/club/SUBSCRIBE_CLUB.java | 20 + .../incoming/ecotron/GET_RECYCLER_PRIZES.java | 13 + .../incoming/ecotron/GET_RECYCLER_STATUS.java | 13 + .../incoming/ecotron/RECYCLE_ITEMS.java | 116 + .../effects/ACTIVATE_AVATAR_EFFECT.java | 40 + .../incoming/effects/PURCHASE_AND_WEAR.java | 54 + .../incoming/effects/USE_AVATAR_EFFECT.java | 37 + .../incoming/events/CAN_CREATE_ROOMEVENT.java | 15 + .../incoming/events/CREATE_ROOMEVENT.java | 34 + .../incoming/events/EDIT_ROOMEVENT.java | 56 + .../events/GET_ROOMEVENTS_BY_TYPE.java | 24 + .../events/GET_ROOMEVENT_TYPE_COUNT.java | 14 + .../incoming/events/QUIT_ROOMEVENT.java | 37 + .../messages/incoming/games/GAMEEVENT.java | 96 + .../incoming/games/GAMEPARAMETERVALUES.java | 51 + .../messages/incoming/games/GAMERESTART.java | 98 + .../incoming/games/GETINSTANCELIST.java | 32 + .../incoming/games/INITIATECREATEGAME.java | 56 + .../incoming/games/INITIATEJOINGAME.java | 71 + .../messages/incoming/games/KICKPLAYER.java | 59 + .../messages/incoming/games/LEAVEGAME.java | 38 + .../incoming/games/OBSERVEINSTANCE.java | 77 + .../incoming/games/REQUESTFULLGAMESTATUS.java | 33 + .../incoming/games/REQUEST_GAME_LOBBY.java | 34 + .../messages/incoming/games/STARTGAME.java | 57 + .../incoming/games/UNOBSERVEINSTANCE.java | 30 + .../messages/incoming/games/WATCHGAME.java | 54 + .../incoming/handshake/GENERATEKEY.java | 24 + .../handshake/GET_SESSION_PARAMETERS.java | 13 + .../incoming/handshake/INIT_CRYPTO.java | 49 + .../messages/incoming/handshake/SSO.java | 51 + .../incoming/handshake/TRY_LOGIN.java | 28 + .../messages/incoming/handshake/UNIQUEID.java | 28 + .../incoming/handshake/VERSIONCHECK.java | 12 + .../incoming/infobus/CHANGEWORLD.java | 21 + .../messages/incoming/infobus/TRYBUS.java | 30 + .../messages/incoming/infobus/VOTE.java | 38 + .../messages/incoming/inventory/GETSTRIP.java | 39 + .../incoming/jukebox/ADD_JUKEBOX_DISC.java | 69 + .../incoming/jukebox/GET_JUKEBOX_DISCS.java | 38 + .../incoming/jukebox/GET_USER_SONG_DISCS.java | 46 + .../jukebox/JUKEBOX_PLAYLIST_ADD.java | 55 + .../incoming/jukebox/REMOVE_JUKEBOX_DISC.java | 67 + .../incoming/jukebox/RESET_JUKEBOX.java | 33 + .../messages/incoming/messenger/FINDUSER.java | 39 + .../incoming/messenger/FOLLOW_FRIEND.java | 61 + .../incoming/messenger/FRIENDLIST_UPDATE.java | 13 + .../incoming/messenger/INVITE_FRIEND.java | 53 + .../incoming/messenger/MESSENGERINIT.java | 16 + .../messenger/MESSENGER_ACCEPTBUDDY.java | 73 + .../messenger/MESSENGER_DECLINEBUDDY.java | 31 + .../messenger/MESSENGER_GETMESSAGES.java | 16 + .../messenger/MESSENGER_GETREQUESTS.java | 13 + .../messenger/MESSENGER_MARKREAD.java | 19 + .../messenger/MESSENGER_REMOVEBUDDY.java | 68 + .../messenger/MESSENGER_REQUESTBUDDY.java | 60 + .../incoming/messenger/MESSENGER_SENDMSG.java | 69 + .../moderation/CHANGECALLCATEGORY.java | 23 + .../incoming/moderation/DELETE_CRY.java | 22 + .../moderation/FOLLOW_CRYFORHELP.java | 31 + .../incoming/moderation/MESSAGETOCALLER.java | 37 + .../incoming/moderation/MODERATORACTION.java | 104 + .../incoming/moderation/PICK_CALLFORHELP.java | 32 + .../incoming/moderation/REQUEST_CFH.java | 19 + .../incoming/moderation/SUBMIT_CFH.java | 28 + .../incoming/navigator/ADD_FAVORITE_ROOM.java | 53 + .../incoming/navigator/DEL_FAVORITE_ROOM.java | 21 + .../messages/incoming/navigator/GETFVRF.java | 23 + .../incoming/navigator/GETSPACENODEUSERS.java | 40 + .../incoming/navigator/GETUSERFLATCATS.java | 37 + .../messages/incoming/navigator/NAVIGATE.java | 97 + .../incoming/navigator/RECOMMENDED_ROOMS.java | 35 + .../messages/incoming/navigator/SRCHF.java | 45 + .../messages/incoming/navigator/SUSERF.java | 28 + .../incoming/pets/APPROVE_PET_NAME.java | 17 + .../messages/incoming/pets/GETPETSTAT.java | 31 + .../messages/incoming/polls/POLL_START.java | 44 + .../incoming/purse/GETUSERCREDITLOG.java | 14 + .../incoming/purse/REDEEM_VOUCHER.java | 56 + .../incoming/rooms/FLATPROPBYITEM.java | 62 + .../messages/incoming/rooms/GETINTEREST.java | 52 + .../messages/incoming/rooms/GETROOMAD.java | 66 + .../messages/incoming/rooms/GET_FLOORMAP.java | 28 + .../messages/incoming/rooms/GOTOFLAT.java | 26 + .../messages/incoming/rooms/G_HMAP.java | 44 + .../messages/incoming/rooms/G_ITEMS.java | 20 + .../messages/incoming/rooms/G_OBJS.java | 24 + .../messages/incoming/rooms/G_STAT.java | 164 + .../messages/incoming/rooms/G_USRS.java | 58 + .../incoming/rooms/ROOM_DIRECTORY.java | 66 + .../messages/incoming/rooms/TRYFLAT.java | 98 + .../dimmer/MSG_ROOMDIMMER_CHANGE_STATE.java | 67 + .../dimmer/MSG_ROOMDIMMER_GET_PRESETS.java | 46 + .../dimmer/MSG_ROOMDIMMER_SET_PRESET.java | 86 + .../rooms/idol/OPEN_PERFORMER_GUI.java | 31 + .../rooms/idol/START_PERFORMANCE.java | 42 + .../incoming/rooms/idol/VOTE_PERFORMANCE.java | 37 + .../incoming/rooms/items/ADDSTRIPITEM.java | 52 + .../rooms/items/CONVERT_FURNI_TO_CREDITS.java | 77 + .../incoming/rooms/items/DICE_OFF.java | 43 + .../rooms/items/ENTER_ONEWAY_DOOR.java | 58 + .../incoming/rooms/items/G_IDATA.java | 40 + .../incoming/rooms/items/MOVESTUFF.java | 81 + .../incoming/rooms/items/PLACESTUFF.java | 176 + .../incoming/rooms/items/PRESENTOPEN.java | 194 + .../incoming/rooms/items/REMOVEITEM.java | 49 + .../incoming/rooms/items/SETITEMDATA.java | 81 + .../rooms/items/SET_RANDOM_STATE.java | 68 + .../rooms/items/SPIN_WHEEL_OF_FORTUNE.java | 54 + .../incoming/rooms/items/THROW_DICE.java | 58 + .../incoming/rooms/items/USEFURNITURE.java | 89 + .../incoming/rooms/items/USEWALLITEM.java | 50 + .../rooms/moderation/ASSIGNRIGHTS.java | 45 + .../incoming/rooms/moderation/BANUSER.java | 53 + .../incoming/rooms/moderation/KICK.java | 47 + .../incoming/rooms/moderation/LETUSERIN.java | 41 + .../rooms/moderation/REMOVEALLRIGHTS.java | 34 + .../rooms/moderation/REMOVERIGHTS.java | 49 + .../messages/incoming/rooms/pool/BTCKS.java | 86 + .../incoming/rooms/pool/CLOSE_UIMAKOPPI.java | 24 + .../messages/incoming/rooms/pool/DIVE.java | 25 + .../messages/incoming/rooms/pool/SIGN.java | 40 + .../incoming/rooms/pool/SPLASH_POSITION.java | 82 + .../incoming/rooms/pool/SWIMSUIT.java | 36 + .../incoming/rooms/settings/CREATEFLAT.java | 72 + .../incoming/rooms/settings/DELETEFLAT.java | 54 + .../incoming/rooms/settings/GETFLATCAT.java | 23 + .../incoming/rooms/settings/GETFLATINFO.java | 29 + .../incoming/rooms/settings/SETFLATCAT.java | 46 + .../incoming/rooms/settings/SETFLATINFO.java | 53 + .../incoming/rooms/settings/UPDATEFLAT.java | 46 + .../incoming/rooms/user/CARRYDRINK.java | 56 + .../incoming/rooms/user/CARRYITEM.java | 52 + .../messages/incoming/rooms/user/CHAT.java | 106 + .../messages/incoming/rooms/user/DANCE.java | 41 + .../incoming/rooms/user/GET_USER_TAGS.java | 28 + .../messages/incoming/rooms/user/GOAWAY.java | 33 + .../messages/incoming/rooms/user/IIM.java | 59 + .../messages/incoming/rooms/user/LOOKTO.java | 87 + .../messages/incoming/rooms/user/QUIT.java | 20 + .../incoming/rooms/user/RATEFLAT.java | 35 + .../incoming/rooms/user/RESPECT_USER.java | 58 + .../rooms/user/SET_SOUND_SETTING.java | 16 + .../messages/incoming/rooms/user/SHOUT.java | 54 + .../messages/incoming/rooms/user/STOP.java | 22 + .../messages/incoming/rooms/user/USEITEM.java | 37 + .../rooms/user/USER_CANCEL_TYPING.java | 27 + .../rooms/user/USER_START_TYPING.java | 27 + .../messages/incoming/rooms/user/WALK.java | 86 + .../messages/incoming/rooms/user/WAVE.java | 14 + .../messages/incoming/rooms/user/WHISPER.java | 56 + .../messages/incoming/songs/BURN_SONG.java | 72 + .../messages/incoming/songs/DELETE_SONG.java | 50 + .../messages/incoming/songs/EDIT_SONG.java | 54 + .../incoming/songs/EJECT_SOUND_PACKAGE.java | 78 + .../incoming/songs/GET_PLAY_LIST.java | 29 + .../incoming/songs/GET_SONG_INFO.java | 27 + .../incoming/songs/GET_SONG_LIST.java | 30 + .../incoming/songs/INSERT_SOUND_PACKAGE.java | 79 + .../messages/incoming/songs/NEW_SONG.java | 35 + .../incoming/songs/SAVE_SONG_EDIT.java | 71 + .../incoming/songs/SAVE_SONG_NEW.java | 46 + .../incoming/songs/UPDATE_PLAY_LIST.java | 46 + .../messages/incoming/trade/TRADE_ACCEPT.java | 51 + .../incoming/trade/TRADE_ADDITEM.java | 58 + .../messages/incoming/trade/TRADE_CLOSE.java | 24 + .../incoming/trade/TRADE_CONFIRM_ACCEPT.java | 45 + .../messages/incoming/trade/TRADE_OPEN.java | 88 + .../incoming/trade/TRADE_REMOVE_ITEM.java | 67 + .../incoming/trade/TRADE_UNACCEPT.java | 36 + .../tutorial/MSG_ACCEPT_TUTOR_INVITATION.java | 61 + .../MSG_CANCEL_TUTOR_INVITATIONS.java | 22 + ...MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS.java | 21 + .../tutorial/MSG_GET_TUTORS_AVAILABLE.java | 33 + .../incoming/tutorial/MSG_INVITE_TUTORS.java | 28 + .../tutorial/MSG_REJECT_TUTOR_INVITATION.java | 43 + .../MSG_REMOVE_ACCOUNT_HELP_TEXT.java | 63 + .../MSG_WAIT_FOR_TUTOR_INVITATIONS.java | 40 + .../incoming/tutorial/RESET_TUTORIAL.java | 29 + .../messages/incoming/user/GET_CREDITS.java | 27 + .../incoming/user/GET_IGNORE_LIST.java | 33 + .../messages/incoming/user/GET_INFO.java | 18 + .../user/GET_POSSIBLE_ACHIEVEMENTS.java | 21 + .../messages/incoming/user/IGNORE_USER.java | 25 + .../messages/incoming/user/UNIGNORE_USER.java | 25 + .../user/badges/GETAVAILABLEBADGES.java | 25 + .../user/badges/GETSELECTEDBADGES.java | 35 + .../incoming/user/badges/SETBADGE.java | 35 + .../messages/incoming/user/latency/PONG.java | 19 + .../incoming/user/latency/TEST_LATENCY.java | 14 + .../settings/GET_ACCOUNT_PREFERENCES.java | 17 + .../messages/incoming/wobblesquabble/PTM.java | 32 + .../messages/outgoing/alerts/ALERT.java | 30 + .../outgoing/alerts/HOTEL_LOGOUT.java | 39 + .../outgoing/alerts/LOCALISED_ERROR.java | 33 + .../outgoing/alerts/NO_USER_FOUND.java | 22 + .../outgoing/catalogue/ALIAS_TOGGLE.java | 16 + .../outgoing/catalogue/CATALOGUE_PAGE.java | 90 + .../outgoing/catalogue/CATALOGUE_PAGES.java | 61 + .../outgoing/catalogue/DELIVER_PRESENT.java | 48 + .../outgoing/catalogue/NO_CREDITS.java | 25 + .../outgoing/catalogue/SPRITE_LIST.java | 16 + .../messages/outgoing/club/CLUB_GIFT.java | 22 + .../messages/outgoing/club/CLUB_INFO.java | 30 + .../outgoing/ecotron/RECYCLER_PRIZES.java | 17 + .../outgoing/ecotron/RECYCLER_STATUS.java | 22 + .../outgoing/effects/AVATAR_EFFECTS.java | 54 + .../effects/AVATAR_EFFECT_ACTIVATED.java | 24 + .../outgoing/effects/AVATAR_EFFECT_ADDED.java | 24 + .../effects/AVATAR_EFFECT_EXPIRED.java | 22 + .../outgoing/effects/AVATAR_SELECTED.java | 23 + .../outgoing/effects/USER_AVATAR_EFFECT.java | 25 + .../outgoing/events/ROOMEEVENT_INFO.java | 33 + .../outgoing/events/ROOMEVENT_LIST.java | 36 + .../outgoing/events/ROOMEVENT_PERMISSION.java | 23 + .../outgoing/events/ROOMEVENT_TYPES.java | 22 + .../messages/outgoing/games/CREATEFAILED.java | 37 + .../outgoing/games/FULLGAMESTATUS.java | 78 + .../messages/outgoing/games/GAMEDELETED.java | 22 + .../messages/outgoing/games/GAMEEND.java | 46 + .../messages/outgoing/games/GAMEINSTANCE.java | 162 + .../messages/outgoing/games/GAMELOCATION.java | 16 + .../outgoing/games/GAMEPARAMETERS.java | 93 + .../outgoing/games/GAMEPLAYERINFO.java | 45 + .../messages/outgoing/games/GAMERESET.java | 50 + .../messages/outgoing/games/GAMESTART.java | 22 + .../messages/outgoing/games/GAMESTATUS.java | 110 + .../messages/outgoing/games/INSTANCELIST.java | 78 + .../messages/outgoing/games/JOINFAILED.java | 43 + .../messages/outgoing/games/LOUNGEINFO.java | 19 + .../outgoing/games/PLAYERREJOINED.java | 22 + .../outgoing/games/SNOWSTORM_GAMESTATUS.java | 35 + .../messages/outgoing/games/STARTFAILED.java | 42 + .../guides/INIT_TUTOR_SERVICE_STATUS.java | 22 + .../messages/outgoing/guides/INVITATION.java | 25 + .../outgoing/handshake/CRYPTO_PARAMETERS.java | 19 + .../messages/outgoing/handshake/HELLO.java | 17 + .../messages/outgoing/handshake/LOGIN.java | 16 + .../messages/outgoing/handshake/RIGHTS.java | 27 + .../outgoing/handshake/SECRET_KEY.java | 22 + .../handshake/SESSION_PARAMETERS.java | 105 + .../handshake/UniqueIDMessageEvent.java | 22 + .../messages/outgoing/infobus/BUS_DOOR.java | 22 + .../outgoing/infobus/CANNOT_ENTER_BUS.java | 22 + .../outgoing/infobus/POLL_QUESTION.java | 35 + .../outgoing/infobus/VOTE_RESULTS.java | 42 + .../outgoing/inventory/INVENTORY.java | 34 + .../outgoing/jukebox/JUKEBOX_DISCS.java | 41 + .../outgoing/jukebox/USER_SONG_DISKS.java | 31 + .../outgoing/messenger/ADD_BUDDY.java | 37 + .../messenger/BUDDY_REQUEST_RESULT.java | 30 + .../outgoing/messenger/FOLLOW_ERROR.java | 22 + .../outgoing/messenger/FRIENDLIST.java | 32 + .../outgoing/messenger/FRIENDS_UPDATE.java | 46 + .../outgoing/messenger/FRIEND_REQUEST.java | 25 + .../outgoing/messenger/FRIEND_REQUESTS.java | 32 + .../messenger/INSTANT_MESSAGE_ERROR.java | 25 + .../messenger/INSTANT_MESSAGE_INVITATION.java | 25 + .../outgoing/messenger/INVITATION_ERROR.java | 16 + .../outgoing/messenger/MESSENGER_ERROR.java | 29 + .../outgoing/messenger/MESSENGER_INIT.java | 61 + .../outgoing/messenger/MESSENGER_MSG.java | 30 + .../outgoing/messenger/MESSENGER_SEARCH.java | 57 + .../outgoing/messenger/REMOVE_BUDDY.java | 37 + .../outgoing/messenger/ROOMFORWARD.java | 28 + .../outgoing/moderation/CALL_FOR_HELP.java | 44 + .../messages/outgoing/moderation/CFH_ACK.java | 30 + .../outgoing/moderation/CRY_RECEIVED.java | 16 + .../outgoing/moderation/CRY_REPLY.java | 22 + .../outgoing/moderation/DELETE_CRY.java | 22 + .../outgoing/moderation/MODERATOR_ALERT.java | 23 + .../outgoing/moderation/PICKED_CRY.java | 25 + .../outgoing/navigator/CANTCONNECT.java | 69 + .../navigator/FAVOURITEROOMRESULTS.java | 88 + .../outgoing/navigator/FLAT_RESULTS.java | 35 + .../outgoing/navigator/NAVNODEINFO.java | 106 + .../outgoing/navigator/NODESPACEUSERS.java | 30 + .../messages/outgoing/navigator/NOFLATS.java | 16 + .../outgoing/navigator/NOFLATSFORUSER.java | 22 + .../navigator/RECOMMENDED_ROOM_LIST.java | 45 + .../navigator/SEARCH_FLAT_RESULTS.java | 45 + .../outgoing/navigator/USERFLATCATS.java | 30 + .../openinghours/INFO_HOTEL_CLOSED.java | 31 + .../openinghours/INFO_HOTEL_CLOSING.java | 25 + .../messages/outgoing/pets/NAMEAPPROVED.java | 22 + .../messages/outgoing/pets/PETSTAT.java | 29 + .../outgoing/purse/VOUCHER_REDEEM_ERROR.java | 49 + .../outgoing/purse/VOUCHER_REDEEM_OK.java | 50 + .../outgoing/rooms/ACTIVE_OBJECTS.java | 29 + .../outgoing/rooms/DOORBELL_WAIT.java | 26 + .../outgoing/rooms/FLATNOTALLOWEDTOENTER.java | 16 + .../messages/outgoing/rooms/FLATPROPERTY.java | 25 + .../messages/outgoing/rooms/FLAT_LETIN.java | 16 + .../messages/outgoing/rooms/FLOOR_MAP.java | 39 + .../messages/outgoing/rooms/HEIGHTMAP.java | 27 + .../outgoing/rooms/HEIGHTMAP_UPDATE.java | 64 + .../outgoing/rooms/INTERSITIALDATA.java | 25 + .../havana/messages/outgoing/rooms/ITEMS.java | 29 + .../outgoing/rooms/OBJECTS_WORLD.java | 60 + .../outgoing/rooms/OPEN_CONNECTION.java | 16 + .../messages/outgoing/rooms/ROOMAD.java | 30 + .../messages/outgoing/rooms/ROOM_AD.java | 16 + .../messages/outgoing/rooms/ROOM_READY.java | 25 + .../messages/outgoing/rooms/ROOM_URL.java | 17 + .../messages/outgoing/rooms/UPDATE_VOTES.java | 22 + .../rooms/dimmer/MOODLIGHT_PRESETS.java | 38 + .../outgoing/rooms/games/CLOSEGAMEBOARD.java | 26 + .../outgoing/rooms/games/ITEMMSG.java | 22 + .../outgoing/rooms/games/OPENGAMEBOARD.java | 26 + .../outgoing/rooms/groups/GROUP_BADGES.java | 29 + .../outgoing/rooms/groups/GROUP_INFO.java | 36 + .../rooms/groups/GROUP_MEMBERSHIP_UPDATE.java | 28 + .../rooms/items/BROADCAST_TELEPORTER.java | 32 + .../items/CANNOT_PLACE_STUFF_FROM_STRIP.java | 22 + .../outgoing/rooms/items/CHANGESTATUS.java | 25 + .../outgoing/rooms/items/DICE_VALUE.java | 35 + .../messages/outgoing/rooms/items/IDATA.java | 40 + .../outgoing/rooms/items/ITEM_DELIVERED.java | 16 + .../rooms/items/JUDGE_GUI_STATUS.java | 27 + .../outgoing/rooms/items/MOVE_FLOORITEM.java | 23 + .../outgoing/rooms/items/PLACE_FLOORITEM.java | 23 + .../outgoing/rooms/items/PLACE_WALLITEM.java | 23 + .../rooms/items/REMOVE_FLOORITEM.java | 23 + .../outgoing/rooms/items/REMOVE_WALLITEM.java | 23 + .../outgoing/rooms/items/SHOWPROGRAM.java | 21 + .../rooms/items/SLIDEOBJECTBUNDLE.java | 56 + .../outgoing/rooms/items/STUFFDATAUPDATE.java | 33 + .../outgoing/rooms/items/TELEPORTER_INIT.java | 25 + .../rooms/moderation/YOUARECONTROLLER.java | 16 + .../outgoing/rooms/moderation/YOUAROWNER.java | 16 + .../rooms/moderation/YOUNOTCONTROLLER.java | 16 + .../outgoing/rooms/pool/JUMPDATA.java | 25 + .../outgoing/rooms/pool/JUMPINGPLACE_OK.java | 16 + .../outgoing/rooms/pool/OPEN_UIMAKOPPI.java | 17 + .../outgoing/rooms/settings/FLATCAT.java | 25 + .../outgoing/rooms/settings/FLATINFO.java | 46 + .../outgoing/rooms/settings/GOTO_FLAT.java | 25 + .../outgoing/rooms/user/CHAT_MESSAGE.java | 54 + .../outgoing/rooms/user/FIGURE_CHANGE.java | 28 + .../outgoing/rooms/user/HOTEL_VIEW.java | 16 + .../messages/outgoing/rooms/user/LOGOUT.java | 22 + .../rooms/user/RESPECT_NOTIFICATION.java | 25 + .../outgoing/rooms/user/TAG_LIST.java | 31 + .../outgoing/rooms/user/TYPING_STATUS.java | 25 + .../rooms/user/USER_CARRY_OBJECT.java | 28 + .../outgoing/rooms/user/USER_DANCE.java | 26 + .../outgoing/rooms/user/USER_OBJECTS.java | 131 + .../outgoing/rooms/user/USER_SLEEP.java | 25 + .../outgoing/rooms/user/USER_STATUSES.java | 111 + .../outgoing/rooms/user/USER_USE_OBJECT.java | 25 + .../outgoing/rooms/user/USER_WAVE.java | 22 + .../outgoing/rooms/user/YOUARESPECTATOR.java | 16 + .../messages/outgoing/songs/SONG_INFO.java | 25 + .../messages/outgoing/songs/SONG_LIST.java | 33 + .../messages/outgoing/songs/SONG_LOCKED.java | 16 + .../messages/outgoing/songs/SONG_NEW.java | 25 + .../outgoing/songs/SONG_PLAYLIST.java | 37 + .../messages/outgoing/songs/SONG_UPDATE.java | 16 + .../outgoing/songs/SOUND_PACKAGES.java | 40 + .../outgoing/songs/START_PLAYING_SONG.java | 22 + .../outgoing/songs/STOP_PLAYING_SONG.java | 22 + .../outgoing/songs/USER_SOUND_PACKAGES.java | 28 + .../outgoing/trade/ITEM_NOT_TRADABLE.java | 16 + .../messages/outgoing/trade/TRADEACCEPT.java | 25 + .../messages/outgoing/trade/TRADECONFIRM.java | 16 + .../messages/outgoing/trade/TRADEOPEN.java | 31 + .../outgoing/trade/TRADE_ALREADY_OPEN.java | 16 + .../messages/outgoing/trade/TRADE_CLOSE.java | 22 + .../outgoing/trade/TRADE_COMPLETED.java | 16 + .../messages/outgoing/trade/TRADE_ITEMS.java | 84 + .../tutorial/ENABLE_TUTOR_SERVICE_STATUS.java | 38 + .../outgoing/tutorial/GUIDE_FOUND.java | 22 + .../outgoing/tutorial/INVITATION_SENT.java | 16 + .../outgoing/tutorial/INVITE_CANCELLED.java | 16 + .../tutorial/INVITE_FOLLOW_FAILED.java | 16 + .../outgoing/tutorial/INVITING_COMPLETED.java | 32 + .../outgoing/tutorial/TUTORS_AVAILABLE.java | 22 + .../messages/outgoing/user/IGNORED_LIST.java | 28 + .../outgoing/user/IGNORE_USER_RESULT.java | 22 + .../messages/outgoing/user/LATENCY.java | 22 + .../havana/messages/outgoing/user/PING.java | 16 + .../outgoing/user/POSSIBLE_ACHIEVEMENTS.java | 38 + .../messages/outgoing/user/USER_OBJECT.java | 33 + .../user/badges/ACHIEVEMENT_NOTIFICATION.java | 32 + .../user/badges/AVAILABLE_BADGES.java | 39 + .../outgoing/user/badges/USERBADGE.java | 33 + .../currencies/ActivityPointNotification.java | 42 + .../user/currencies/CREDIT_BALANCE.java | 23 + .../outgoing/user/currencies/FILM.java | 23 + .../outgoing/user/currencies/NO_TICKETS.java | 16 + .../user/currencies/TICKET_BALANCE.java | 22 + .../user/settings/ACCOUNT_PREFERENCES.java | 23 + .../outgoing/user/settings/HELP_ITEMS.java | 29 + .../outgoing/user/settings/SOUND_SETTING.java | 24 + .../outgoing/wobblesquabble/PT_END.java | 16 + .../outgoing/wobblesquabble/PT_PREPARE.java | 27 + .../outgoing/wobblesquabble/PT_START.java | 27 + .../outgoing/wobblesquabble/PT_STATUS.java | 33 + .../outgoing/wobblesquabble/PT_TIMEOUT.java | 16 + .../outgoing/wobblesquabble/PT_WIN.java | 28 + .../messages/types/MessageComposer.java | 15 + .../havana/messages/types/MessageEvent.java | 16 + .../messages/types/PlayerMessageComposer.java | 26 + .../server/mus/MusChannelInitializer.java | 25 + .../server/mus/MusConnectionHandler.java | 192 + .../alexdev/havana/server/mus/MusServer.java | 123 + .../alexdev/havana/server/mus/MusUtil.java | 101 + .../server/mus/codec/MusNetworkDecoder.java | 66 + .../server/mus/codec/MusNetworkEncoder.java | 66 + .../server/mus/connection/MusClient.java | 35 + .../havana/server/mus/streams/MusMessage.java | 102 + .../server/mus/streams/MusPropList.java | 94 + .../havana/server/mus/streams/MusTypes.java | 65 + .../server/netty/NettyChannelInitializer.java | 38 + .../server/netty/NettyPlayerNetwork.java | 76 + .../havana/server/netty/NettyServer.java | 136 + .../server/netty/ServerHandlerType.java | 5 + .../server/netty/codec/EncryptionDecoder.java | 29 + .../server/netty/codec/NetworkDecoder.java | 35 + .../server/netty/codec/NetworkEncoder.java | 67 + .../netty/connections/ConnectionHandler.java | 121 + .../connections/IdleConnectionHandler.java | 41 + .../server/netty/streams/NettyRequest.java | 162 + .../server/netty/streams/NettyResponse.java | 117 + .../server/rcon/RconChannelInitializer.java | 21 + .../server/rcon/RconConnectionHandler.java | 331 + .../havana/server/rcon/RconServer.java | 123 + .../server/rcon/codec/RconNetworkDecoder.java | 110 + .../server/rcon/messages/RconHeader.java | 45 + .../server/rcon/messages/RconMessage.java | 23 + .../server/util/MalformedPacketException.java | 7 + .../java/org/alexdev/havana/util/BitUtil.java | 32 + .../org/alexdev/havana/util/DateUtil.java | 196 + .../org/alexdev/havana/util/EasterUtil.java | 32 + .../org/alexdev/havana/util/FigureUtil.java | 158 + .../org/alexdev/havana/util/HexValidator.java | 20 + .../org/alexdev/havana/util/SearchUtil.java | 12 + .../org/alexdev/havana/util/StringUtil.java | 210 + .../alexdev/havana/util/ValidationUtil.java | 83 + .../havana/util/config/Configuration.java | 66 + .../havana/util/config/GameConfiguration.java | 130 + .../util/config/LoggingConfiguration.java | 64 + .../util/config/ServerConfiguration.java | 177 + .../util/config/writer/ConfigWriter.java | 9 + .../config/writer/DefaultConfigWriter.java | 73 + .../util/config/writer/GameConfigWriter.java | 156 + .../havana/util/encoding/Base64Encoding.java | 37 + .../havana/util/encoding/VL64Encoding.java | 59 + .../havana/util/encryption/HugeInt15.java | 60 + .../havana/util/schedule/FutureRunnable.java | 22 + Havana-Web/.gitignore | 18 + Havana-Web/build.gradle | 95 + Havana-Web/libs/duckHTTPD-all.jar | Bin 0 -> 5278534 bytes .../main/java/org/alexdev/http/HavanaWeb.java | 133 + .../main/java/org/alexdev/http/Routes.java | 321 + .../http/controllers/BaseController.java | 123 + .../api/AdvertisementController.java | 39 + .../controllers/api/PhotosController.java | 77 + .../controllers/api/VerifyController.java | 36 + .../controllers/groups/GroupController.java | 332 + .../groups/GroupDiscussionsController.java | 166 + .../groups/GroupFavouriteController.java | 90 + .../groups/GroupHabbletController.java | 362 + .../groups/GroupMemberController.java | 455 + .../groups/GroupTagController.java | 110 + .../DiscussionActionsController.java | 577 + .../discussions/DiscussionController.java | 186 + .../DiscussionPreviewController.java | 114 + .../controllers/habblet/EventController.java | 22 + .../controllers/habblet/FeedController.java | 93 + .../controllers/habblet/HabboClubHabblet.java | 113 + .../controllers/habblet/InviteController.java | 189 + .../habblet/NameCheckController.java | 49 + .../habblet/NavigationComponent.java | 9 + .../controllers/habblet/ProxyHabblet.java | 195 + .../habblet/RoomSelectionController.java | 58 + .../habblet/UpdateMottoController.java | 81 + .../habblet/VoucherController.java | 53 + .../controllers/homes/HomesController.java | 571 + .../homes/NoteEditorController.java | 297 + .../controllers/homes/WidgetController.java | 329 + .../homes/store/StoreController.java | 345 + .../homes/widgets/BadgesController.java | 51 + .../widgets/FriendsWidgetController.java | 62 + .../homes/widgets/GuestbookController.java | 200 + .../homes/widgets/MemberWidgetController.java | 47 + .../homes/widgets/RateController.java | 87 + .../homes/widgets/TraxController.java | 105 + .../HousekeepingAdsController.java | 180 + .../HousekeepingBansController.java | 34 + ...sekeepingCatalogueFrontpageController.java | 67 + .../HousekeepingCommandsController.java | 42 + .../HousekeepingConfigController.java | 65 + .../housekeeping/HousekeepingController.java | 137 + .../HousekeepingInfobusController.java | 458 + .../HousekeepingNewsController.java | 268 + .../HousekeepingRoomBadgesController.java | 170 + .../HousekeepingTransactionsController.java | 81 + .../HousekeepingUsersController.java | 296 + .../controllers/site/AccountController.java | 351 + .../controllers/site/ClientController.java | 209 + .../http/controllers/site/ClubController.java | 221 + .../site/CollectablesController.java | 154 + .../controllers/site/CommunityController.java | 60 + .../controllers/site/CreditsController.java | 99 + .../http/controllers/site/FaqController.java | 13 + .../site/FriendManagementController.java | 287 + .../controllers/site/GamesController.java | 128 + .../controllers/site/HomepageController.java | 42 + .../controllers/site/MinimailController.java | 442 + .../http/controllers/site/NewsController.java | 167 + .../controllers/site/ProfileController.java | 669 + .../controllers/site/QuickmenuController.java | 69 + .../controllers/site/RecoveryController.java | 184 + .../controllers/site/RegisterController.java | 274 + .../http/controllers/site/SiteController.java | 19 + .../http/controllers/site/TagController.java | 330 + .../org/alexdev/http/dao/CommunityDao.java | 153 + .../java/org/alexdev/http/dao/EmailDao.java | 212 + .../alexdev/http/dao/FriendManagementDao.java | 158 + .../alexdev/http/dao/GroupDiscussionDao.java | 643 + .../org/alexdev/http/dao/GroupEditDao.java | 151 + .../org/alexdev/http/dao/GuestbookDao.java | 156 + .../org/alexdev/http/dao/HomeEditDao.java | 111 + .../java/org/alexdev/http/dao/HomesDao.java | 78 + .../org/alexdev/http/dao/HousekeepingDao.java | 178 + .../org/alexdev/http/dao/MinimailDao.java | 256 + .../java/org/alexdev/http/dao/NewsDao.java | 493 + .../java/org/alexdev/http/dao/RatingDao.java | 196 + .../org/alexdev/http/dao/RecommendedDao.java | 41 + .../org/alexdev/http/dao/RegisterDao.java | 43 + .../java/org/alexdev/http/dao/ReplyDao.java | 68 + .../java/org/alexdev/http/dao/SessionDao.java | 112 + .../java/org/alexdev/http/dao/SiteDao.java | 40 + .../java/org/alexdev/http/dao/StoreDao.java | 70 + .../java/org/alexdev/http/dao/VerifyDao.java | 55 + .../java/org/alexdev/http/dao/WidgetDao.java | 408 + .../housekeeping/HousekeepingPlayerDao.java | 104 + .../org/alexdev/http/game/CommunityPhoto.java | 63 + .../game/account/BeginnerGiftManager.java | 64 + .../http/game/account/CacheManager.java | 36 + .../http/game/account/ClientPreference.java | 6 + .../game/collectables/CollectableEntry.java | 25 + .../http/game/friends/FriendsFeed.java | 31 + .../http/game/groups/DiscussionReply.java | 136 + .../http/game/groups/DiscussionTopic.java | 165 + .../http/game/homes/GuestbookEntry.java | 54 + .../org/alexdev/http/game/homes/Home.java | 29 + .../org/alexdev/http/game/homes/Widget.java | 443 + .../housekeeping/HousekeepingManager.java | 65 + .../game/housekeeping/HousekeepingStats.java | 19 + .../MarketplacePurchaseOccurance.java | 25 + .../game/marketplace/MarketplaceOffer.java | 105 + .../http/game/minimail/MinimailMessage.java | 139 + .../alexdev/http/game/news/NewsArticle.java | 227 + .../alexdev/http/game/news/NewsCategory.java | 25 + .../alexdev/http/game/news/NewsDateKey.java | 9 + .../alexdev/http/game/news/NewsManager.java | 57 + .../org/alexdev/http/game/news/NewsView.java | 5 + .../http/game/stickers/StickerCategory.java | 34 + .../http/game/stickers/StickerManager.java | 203 + .../http/game/stickers/StickerProduct.java | 107 + .../http/game/stickers/StickerType.java | 29 + .../main/java/org/alexdev/http/log/Log.java | 10 + .../alexdev/http/server/ServerResponses.java | 61 + .../org/alexdev/http/server/Watchdog.java | 222 + .../alexdev/http/template/PresentTest.java | 30 + .../alexdev/http/template/TwigTemplate.java | 147 + .../http/template/binders/AlertBinder.java | 36 + .../http/template/binders/SessionBinder.java | 31 + .../http/template/binders/SiteBinder.java | 215 + .../java/org/alexdev/http/util/BBCode.java | 79 + .../java/org/alexdev/http/util/Captcha.java | 200 + .../org/alexdev/http/util/ConfigEntry.java | 27 + .../java/org/alexdev/http/util/EmailUtil.java | 132 + .../java/org/alexdev/http/util/GroupUtil.java | 46 + .../java/org/alexdev/http/util/HomeUtil.java | 47 + .../alexdev/http/util/HousekeepingUtil.java | 19 + .../java/org/alexdev/http/util/HtmlUtil.java | 110 + .../java/org/alexdev/http/util/RconUtil.java | 14 + .../org/alexdev/http/util/RegisterUtil.java | 54 + .../org/alexdev/http/util/SessionUtil.java | 117 + .../java/org/alexdev/http/util/TagUtil.java | 590 + .../java/org/alexdev/http/util/XSSUtil.java | 60 + .../util/config/WebLoggingConfiguration.java | 64 + .../util/config/WebServerConfigWriter.java | 59 + .../util/config/WebSettingsConfigWriter.java | 94 + .../alexdev/http/util/piechart/PieChart.java | 76 + .../org/alexdev/http/util/piechart/Slice.java | 33 + .../org/alexdev/http/util/rcon/RconTask.java | 57 + .../alexdev/photorenderer/PhotoRenderer.java | 161 + .../alexdev/photorenderer/RenderOption.java | 6 + .../palettes/GreyscalePalette.java | 266 + .../photorenderer/palettes/PaletteUtils.java | 33 + .../photorenderer/utils/BorderEffect.java | 26 + .../photorenderer/utils/DataUtils.java | 32 + README.md | 207 +- gradlew | 0 settings.gradle | 5 + tools/.gitignore | 1 + tools/cleanup.sql | 293 + tools/gamedata/flash/Habbo.swf | Bin 0 -> 1755957 bytes tools/gamedata/flash/external_flash_texts.txt | 2706 + tools/gamedata/flash/external_variables.txt | 249 + tools/gamedata/flash/figuredata.txt | 2 + tools/gamedata/flash/figuremap.xml | 1562 + tools/gamedata/flash/partsets.txt | 119 + tools/gamedata/flash/partsets.xml | 117 + tools/gamedata/shockwave/.htaccess | 2 + tools/gamedata/shockwave/animation.txt | 177 + tools/gamedata/shockwave/animation.xml | 177 + tools/gamedata/shockwave/draworder.txt | 874 + tools/gamedata/shockwave/draworder.xml | 874 + tools/gamedata/shockwave/external_texts.txt | 4314 ++ .../gamedata/shockwave/external_variables.php | 34 + .../gamedata/shockwave/external_variables.txt | 170 + .../shockwave/external_variables_nossl.txt | 169 + tools/gamedata/shockwave/figuredata.txt | 2 + tools/gamedata/shockwave/furnidata.txt | 1 + tools/gamedata/shockwave/hh_furni_xx_nest.cct | Bin 0 -> 523 bytes .../gamedata/shockwave/hh_furni_xx_photo.cct | Bin 0 -> 523 bytes .../shockwave/hh_furni_xx_post.it.cct | Bin 0 -> 523 bytes tools/gamedata/shockwave/partsets.txt | 119 + tools/gamedata/shockwave/partsets.xml | 117 + tools/gamedata/shockwave/productdata.txt | 30 + tools/gamedata/shockwave/sec.cct | Bin 0 -> 965 bytes .../gamedata/shockwave/template_variables.txt | 170 + .../shockwave/template_variables2.txt | 170 + tools/gamedata/temp-furni.7z | Bin 0 -> 59995 bytes tools/groups.sql | 199 + tools/havana.sql | 57086 ++++++++++++++++ tools/snowstorm_maps/arena_1.dat | 1 + tools/snowstorm_maps/arena_1_snowmachines.dat | 1 + .../snowstorm_maps/arena_1_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_2.dat | 1 + tools/snowstorm_maps/arena_2_snowmachines.dat | 1 + .../snowstorm_maps/arena_2_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_3.dat | 1 + tools/snowstorm_maps/arena_3_snowmachines.dat | 1 + .../snowstorm_maps/arena_3_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_4.dat | 1 + .../snowstorm_maps/arena_4_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_5.dat | 1 + .../snowstorm_maps/arena_5_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_6.dat | 1 + .../snowstorm_maps/arena_6_spawn_clusters.dat | 1 + tools/snowstorm_maps/arena_7.dat | 1 + .../snowstorm_maps/arena_7_spawn_clusters.dat | 1 + .../www-tpl/default/OLD_install_shockwave.tpl | 208 + tools/www-tpl/default/OLD_shockwave_app.tpl | 299 + tools/www-tpl/default/account/banned.tpl | 108 + .../account/email/account_activated.tpl | 123 + .../default/account/email/account_forgot.tpl | 185 + .../account/email/account_recovery.tpl | 140 + .../account/email/base/email_footer.tpl | 1 + .../account/email/base/email_header.tpl | 28 + .../default/account/email/email_activate.tpl | 15 + .../default/account/email/email_recovery.tpl | 8 + .../account/email/email_registered.tpl | 15 + tools/www-tpl/default/account/email/sent.tpl | 97 + tools/www-tpl/default/account/login.tpl | 168 + tools/www-tpl/default/account/logout.tpl | 108 + .../default/account/reauthenticate.tpl | 143 + tools/www-tpl/default/account/submit.tpl | 15 + tools/www-tpl/default/base/ads_container.tpl | 4 + tools/www-tpl/default/base/flash_check.tpl | 33 + tools/www-tpl/default/base/footer.tpl | 7 + .../www-tpl/default/base/frontpage_header.tpl | 7 + tools/www-tpl/default/base/hc_status.tpl | 48 + tools/www-tpl/default/base/header.tpl | 184 + tools/www-tpl/default/base/tag_cloud.tpl | 13 + tools/www-tpl/default/base/tag_search.tpl | 87 + tools/www-tpl/default/client.tpl | 153 + tools/www-tpl/default/client_beta.tpl | 159 + .../default/client_connection_failed.tpl | 97 + tools/www-tpl/default/client_error.tpl | 133 + tools/www-tpl/default/client_flash.tpl | 159 + .../default/client_install_shockwave.tpl | 115 + tools/www-tpl/default/club.tpl | 237 + tools/www-tpl/default/club_tryout.tpl | 199 + tools/www-tpl/default/collectables.tpl | 239 + tools/www-tpl/default/community.tpl | 478 + tools/www-tpl/default/credits.tpl | 337 + tools/www-tpl/default/credits_history.tpl | 241 + tools/www-tpl/default/error.tpl | 0 tools/www-tpl/default/faq.tpl | 120 + tools/www-tpl/default/games.tpl | 217 + tools/www-tpl/default/groups.tpl | 581 + tools/www-tpl/default/groups/discussion.tpl | 384 + .../default/groups/discussion_replies.tpl | 331 + .../discussions/confirm_delete_topic.tpl | 8 + .../default/groups/discussions/newpost.tpl | 113 + .../groups/discussions/opentopicsettings.tpl | 32 + .../groups/discussions/previewpost.tpl | 44 + .../groups/discussions/previewtopic.tpl | 44 + .../favourite/confirm_deselect_favourite.tpl | 10 + .../favourite/confirm_select_favourite.tpl | 10 + .../groups/habblet/check_group_url.tpl | 1 + .../groups/habblet/confirm_delete_group.tpl | 10 + .../default/groups/habblet/delete_group.tpl | 7 + .../groups/habblet/group_create_form.tpl | 29 + .../default/groups/habblet/group_settings.tpl | 182 + .../default/groups/habblet/listgrouptags.tpl | 31 + .../default/groups/habblet/purchase_ajax.tpl | 20 + .../groups/habblet/purchase_confirmation.tpl | 16 + .../groups/habblet/purchase_result_error.tpl | 12 + .../groups/habblet/show_badge_editor.tpl | 17 + .../groups/habblet/update_group_settings.tpl | 6 + .../default/groups/member/confirm_accept.tpl | 9 + .../default/groups/member/confirm_decline.tpl | 9 + .../groups/member/confirm_give_rights.tpl | 9 + .../default/groups/member/confirm_leave.tpl | 10 + .../default/groups/member/confirm_remove.tpl | 9 + .../groups/member/confirm_revoke_rights.tpl | 9 + tools/www-tpl/default/groups/member/leave.tpl | 3 + .../default/groups/member/member_added.tpl | 8 + .../groups/member/member_added_request.tpl | 8 + tools/www-tpl/default/groups/memberlist.tpl | 97 + .../default/groups/view_discussions.tpl | 537 + .../default/habblet/collectiblesConfirm.tpl | 8 + .../default/habblet/collectiblesPurchase.tpl | 8 + .../default/habblet/community_hot_groups.tpl | 62 + .../default/habblet/habboClubConfirm.tpl | 16 + .../default/habblet/habboClubEnddate.tpl | 12 + .../default/habblet/habboClubSubscribe.tpl | 14 + .../www-tpl/default/habblet/habboclubgift.tpl | 67 + tools/www-tpl/default/habblet/hot_groups.tpl | 45 + .../default/habblet/invite_addFriend.tpl | 8 + .../habblet/invite_confirmAddFriend.tpl | 6 + .../default/habblet/invite_referralLink.tpl | 9 + .../default/habblet/invite_searchContent.tpl | 42 + tools/www-tpl/default/habblet/load_events.tpl | 42 + tools/www-tpl/default/habblet/minimail.tpl | 44 + .../minimail/minimail_load_message.tpl | 34 + .../habblet/minimail/minimail_messages.tpl | 88 + tools/www-tpl/default/habblet/myTagList.tpl | 32 + .../www-tpl/default/habblet/news_sidebar.tpl | 20 + tools/www-tpl/default/habblet/nextgift.tpl | 55 + .../default/habblet/personalhighscores.tpl | 59 + .../www-tpl/default/habblet/redeemvoucher.tpl | 39 + .../default/habblet/roomselectionConfirm.tpl | 6 + .../www-tpl/default/habblet/showMoreRooms.tpl | 88 + .../default/habblet/tagFightResult.tpl | 15 + tools/www-tpl/default/habblet/tagList.tpl | 21 + tools/www-tpl/default/habblet/tagMatch.tpl | 9 + tools/www-tpl/default/home.tpl | 680 + .../default/homes/editor/noteeditor.tpl | 63 + .../www-tpl/default/homes/editor/preview.tpl | 32 + tools/www-tpl/default/homes/editor/search.tpl | 14 + .../default/homes/inventory/inventory.tpl | 168 + .../homes/inventory/inventory_items.tpl | 47 + .../homes/inventory/inventory_preview.tpl | 9 + .../homes/store/background_warning.tpl | 8 + tools/www-tpl/default/homes/store/items.tpl | 18 + tools/www-tpl/default/homes/store/main.tpl | 167 + tools/www-tpl/default/homes/store/preview.tpl | 22 + .../default/homes/store/purchase_confirm.tpl | 22 + .../default/homes/widget/badges_widget.tpl | 30 + .../default/homes/widget/friends_widget.tpl | 31 + .../homes/widget/group_info_widget.tpl | 73 + .../default/homes/widget/groups_widget.tpl | 69 + .../default/homes/widget/guestbook/add.tpl | 29 + .../homes/widget/guestbook/preview.tpl | 20 + .../default/homes/widget/guestbook_widget.tpl | 59 + .../homes/widget/habblet/avatarinfo.tpl | 21 + .../homes/widget/habblet/badgepaging.tpl | 34 + .../widget/habblet/friendsearchpaging.tpl | 81 + .../homes/widget/habblet/groupinfo.tpl | 21 + .../widget/habblet/membersearchpaging.tpl | 85 + .../default/homes/widget/habblet/rate.tpl | 20 + .../default/homes/widget/habblet/taglist.tpl | 28 + .../homes/widget/habblet/trax_song.tpl | 10 + .../homes/widget/highscores_widget.tpl | 25 + .../default/homes/widget/member_widget.tpl | 31 + tools/www-tpl/default/homes/widget/note.tpl | 24 + .../default/homes/widget/profile_widget.tpl | 109 + .../default/homes/widget/rating_widget.tpl | 58 + .../default/homes/widget/rooms_widget.tpl | 65 + .../www-tpl/default/homes/widget/sticker.tpl | 8 + .../homes/widget/trax_player_widget.tpl | 38 + .../www-tpl/default/housekeeping/articles.tpl | 49 + .../default/housekeeping/articles_create.tpl | 137 + .../default/housekeeping/articles_edit.tpl | 135 + .../default/housekeeping/base/alert.tpl | 8 + .../default/housekeeping/base/footer.tpl | 0 .../default/housekeeping/base/header.tpl | 14 + .../default/housekeeping/base/navigation.tpl | 83 + .../housekeeping/catalogue_frontpage.tpl | 55 + .../default/housekeeping/configurations.tpl | 45 + .../default/housekeeping/dashboard.tpl | 117 + .../default/housekeeping/infobus_polls.tpl | 61 + .../housekeeping/infobus_polls_create.tpl | 65 + .../housekeeping/infobus_polls_edit.tpl | 68 + .../housekeeping/infobus_polls_view.tpl | 25 + tools/www-tpl/default/housekeeping/login.tpl | 45 + .../www-tpl/default/housekeeping/room_ads.tpl | 66 + .../default/housekeeping/room_ads_create.tpl | 47 + .../default/housekeeping/room_badges.tpl | 66 + .../housekeeping/room_badges_create.tpl | 35 + .../transaction/search_results.tpl | 33 + .../housekeeping/transaction_item_lookup.tpl | 23 + .../housekeeping/transaction_lookup.tpl | 31 + .../default/housekeeping/users_bans.tpl | 78 + .../default/housekeeping/users_create.tpl | 51 + .../default/housekeeping/users_edit.tpl | 51 + .../default/housekeeping/users_search.tpl | 86 + tools/www-tpl/default/index.tpl | 222 + tools/www-tpl/default/index_chromide.tpl | 222 + tools/www-tpl/default/index_old.tpl | 257 + tools/www-tpl/default/index_old_idol.tpl | 232 + tools/www-tpl/default/index_v32.tpl | 222 + tools/www-tpl/default/maintenance.tpl | 42 + tools/www-tpl/default/maintenance_old.tpl | 54 + tools/www-tpl/default/me.tpl | 904 + tools/www-tpl/default/news_articles.tpl | 297 + tools/www-tpl/default/overrides/default.tpl | 147 + tools/www-tpl/default/pixels.tpl | 213 + .../www-tpl/default/profile/change_email.tpl | 247 + .../www-tpl/default/profile/change_looks.tpl | 286 + .../default/profile/change_password.tpl | 238 + .../default/profile/change_preferences.tpl | 246 + .../default/profile/change_trade_settings.tpl | 220 + .../default/profile/friend_management.tpl | 200 + .../friend_category_options.tpl | 13 + .../friend_category_widget.tpl | 24 + .../profile_widgets/friend_view_category.tpl | 86 + .../profile/profile_widgets/join_club.tpl | 11 + .../www-tpl/default/profile/verify_email.tpl | 160 + .../www-tpl/default/quickmenu/friends_all.tpl | 40 + tools/www-tpl/default/quickmenu/groups.tpl | 41 + tools/www-tpl/default/quickmenu/rooms.tpl | 19 + tools/www-tpl/default/reauthenticate.tpl | 131 + tools/www-tpl/default/register.tpl | 458 + tools/www-tpl/default/register_disabled.tpl | 176 + tools/www-tpl/default/security_check.tpl | 15 + tools/www-tpl/default/tag.tpl | 222 + tools/www-tpl/default/welcome.tpl | 237 + 1270 files changed, 179649 insertions(+), 2 deletions(-) create mode 100644 Havana-Server/.gitignore create mode 100644 Havana-Server/build.gradle create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/Havana.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/Storage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AchievementDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AdvertisementsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AlertsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BadgeDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BanDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BotDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CatalogueDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ClubGiftDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CollectablesDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CurrencyDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EffectDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EventsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GameDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupMemberDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GuideDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/HighscoreDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/InfobusDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/JukeboxDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/LogDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MessengerDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ModerationDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MoodlightDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/NavigatorDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PetDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PhotoDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerStatisticsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PublicRoomsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ReferredDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomBanDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomFavouritesDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomModelDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomRightsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVisitsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVoteDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SettingsDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SongMachineDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TagDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TeleporterDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TransactionDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TutorialDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/UsersMutesDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/VoucherDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WardrobeDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WordfilterDao.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/GameScheduler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementInfo.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementProgress.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAIPerformanceVote.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAllTimeHotelPresence.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAvatarLooks.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementEmailVerification.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGamePlayed.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGraduate.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGuide.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHabboClub.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHappyHour.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementLogin.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMGM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMotto.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRegistrationDuration.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectEarned.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectGiven.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRoomEntry.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementStudent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTags.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTraderPass.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievement.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievementManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ads/AdManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ads/Advertisement.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AccountAlert.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AlertType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/badges/Badge.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/badges/BadgeManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ban/Ban.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/bot/Bot.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotSpeech.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueItem.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePackage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectableData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectablesManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemMode.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemStatus.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/club/ClubSubscription.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/Command.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/CommandManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AboutCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AfkCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/DropDrinkCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GiveDrinkCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GuideStatusCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/HelpCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/PickAllCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/RainbowDimmerCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SetConfigCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/ShutdownCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SitCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/TalkCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UptimeCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UsersOnlineCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/BotCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/ItemDebugCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/PacketTestCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/RecoverAccountCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/BanCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/HotelAlertCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/MuteCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomAlertCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomMuteCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/TradeBanCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnbanCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnmuteCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CheckCreditsCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CoordsCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CopyRoomCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/DisconnectUserCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiftRoomCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveBadgeCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveCreditsCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/HeadRotateCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/PermBanCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/ReloadCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveBadgeCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveCreditsCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/TeleportCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/UnacceptableCommand.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronItem.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/effects/Effect.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/effects/EffectsManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/encryption/DiffieHellman.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/encryption/RC4.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/encryption/SecurityCode.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/entity/Entity.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/events/Event.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/events/EventsManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/Fuseright.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/FuserightsManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/Game.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameParameter.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameSpawn.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/GameTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallGame.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallMap.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallPowerUp.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallColourState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPlayerState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPowerType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallTileState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/AcquirePowerUpEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/ActivatePowerUpEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/DespawnObjectEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PinSpawnEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerMoveEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerUpdateEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PowerUpSpawnEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PinObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerUpdateObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerUpUpdateObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/BombHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/CannonHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/HarlequinHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/LightbulbHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/NailBoxHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/SpringHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/TorchHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/VacuumHandle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameEventType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameObjectType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameBattleShip.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameChess.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamePoker.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameTicTacToe.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamehallGame.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShip.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMove.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMoveResult.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameToken.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistory.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryPlayer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/history/ScoreEntry.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GamePlayer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameRank.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameTeam.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormGame.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormMapsManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormTurn.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormAvatarMoveEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormCreateSnowballEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormDeleteObjectEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormHitEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormLaunchSnowballEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineAddSnowballEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineMoveSnowballsEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormStunEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormThrowEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormItem.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormMap.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormPathfinder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/SnowStormMessageHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormAttackPlayerMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormThrowLocationMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormWalkMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowstormCreateSnowballMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormAvatarObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormMachineObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowballObject.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowStormGameTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowballMovementTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormActivityState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormAttributes.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormFuture.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormSpawn.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/tasks/GameFinishTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/BattleShipsTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/ChessTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/GameTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/PokerTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/TicTacToeTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FinishedGame.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FloodFill.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/PowerUpUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/ScoreReference.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/TileUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleGame.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleMove.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabblePlayer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleStatus.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/groups/Group.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupForumType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMember.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMemberRank.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupPermissionType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideInviteTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPoll.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPollData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/inventory/Inventory.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/Item.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemVersionManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/Photo.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/Transaction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemBehaviour.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemDefinition.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/ExtraDataManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/types/TrophyExtraData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/InteractionType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemColour.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemEffect.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/BedInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ChairInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/DefaultInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/FortuneInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LertInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LoveRandomizerInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/MultiHeightInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/PetNestInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ScoreboardInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/StepLightInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportRoomHireInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemHeadTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemLegTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemPlanetTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/VendingMachineInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolChairVoteInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolScoreboardInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolBoothInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolExitInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLadderInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLiftInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolQueueInteractor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleJoinQueue.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleQueueTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleTileStart.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemParser.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/EntityRollingAnalysis.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/ItemRollingAnalysis.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollerEntry.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingAnalysis.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/Messenger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerCategory.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerError.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorReason.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerUser.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureColor.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigurePart.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSet.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSetType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/misc/purse/Voucher.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationActionType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorAlertUserAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorBanUserAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorKickUserAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomAlertAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomKickAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelp.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelpManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorCategory.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorStyle.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/AffectedTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Pathfinder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/PathfinderNode.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Position.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Rotation.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/Pet.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetAction.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetDetails.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetStat.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/Player.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerRank.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/Wardrobe.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/GuidingData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/PlayerGuideManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatistic.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatisticManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/Room.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomUserStatus.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomBot.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomEntity.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPet.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPlayer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/DrinkType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/StatusType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PoolHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PublicRoomRedirection.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/RoomSelectionHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysEntrance.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomEntityManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomIdolManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomItemManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTaskManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTimerManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/VoteData.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomMapping.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTile.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTileState.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/select_side_tictactoe.txt create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModel.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelTriggerType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/BattleballLobbyTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/DivingDeckTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/FlatTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/HabboLidoTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusParkTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusPollTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/RooftopRumbleTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SnowStormLobbyTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SpaceCafeTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/BotTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/CameraTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/DiceTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/EntityTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/FortuneTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RainbowTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerCompleteTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/SpaceCafeTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/StatusTask.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/song/Song.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/song/SongPlaylist.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/BurnedDisk.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/JukeboxManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/tags/HabboTag.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/texts/TextsManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GameLobbyTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GenericTrigger.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterManager.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterWord.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/log/Log.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/MessageHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_ALIAS_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOGUE_PAGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOG_INDEX.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/GET_CLUB.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SCR_GIFT_APPROVAL.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SUBSCRIBE_CLUB.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_PRIZES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/RECYCLE_ITEMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/ACTIVATE_AVATAR_EFFECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/PURCHASE_AND_WEAR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/USE_AVATAR_EFFECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CAN_CREATE_ROOMEVENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CREATE_ROOMEVENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/EDIT_ROOMEVENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENTS_BY_TYPE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENT_TYPE_COUNT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/QUIT_ROOMEVENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEEVENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEPARAMETERVALUES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMERESTART.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GETINSTANCELIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATECREATEGAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATEJOINGAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/KICKPLAYER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/LEAVEGAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/OBSERVEINSTANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUESTFULLGAMESTATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUEST_GAME_LOBBY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/STARTGAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/UNOBSERVEINSTANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/WATCHGAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GENERATEKEY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GET_SESSION_PARAMETERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/INIT_CRYPTO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/SSO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/TRY_LOGIN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/UNIQUEID.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/VERSIONCHECK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/CHANGEWORLD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/TRYBUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/VOTE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/inventory/GETSTRIP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/ADD_JUKEBOX_DISC.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_JUKEBOX_DISCS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_USER_SONG_DISCS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/JUKEBOX_PLAYLIST_ADD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/REMOVE_JUKEBOX_DISC.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/RESET_JUKEBOX.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FINDUSER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FOLLOW_FRIEND.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FRIENDLIST_UPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/INVITE_FRIEND.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGERINIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_ACCEPTBUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_DECLINEBUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETMESSAGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETREQUESTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_MARKREAD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REMOVEBUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REQUESTBUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_SENDMSG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/CHANGECALLCATEGORY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/DELETE_CRY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/FOLLOW_CRYFORHELP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MESSAGETOCALLER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MODERATORACTION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/PICK_CALLFORHELP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/REQUEST_CFH.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/SUBMIT_CFH.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/ADD_FAVORITE_ROOM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/DEL_FAVORITE_ROOM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETFVRF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETSPACENODEUSERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETUSERFLATCATS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/NAVIGATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/RECOMMENDED_ROOMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SRCHF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SUSERF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/APPROVE_PET_NAME.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/GETPETSTAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/polls/POLL_START.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/GETUSERCREDITLOG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/REDEEM_VOUCHER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/FLATPROPBYITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETINTEREST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETROOMAD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GET_FLOORMAP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GOTOFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_HMAP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_ITEMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_OBJS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_STAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_USRS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/ROOM_DIRECTORY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/TRYFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_CHANGE_STATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_GET_PRESETS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_SET_PRESET.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/OPEN_PERFORMER_GUI.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/START_PERFORMANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/VOTE_PERFORMANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ADDSTRIPITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/CONVERT_FURNI_TO_CREDITS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/DICE_OFF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ENTER_ONEWAY_DOOR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/G_IDATA.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/MOVESTUFF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PRESENTOPEN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/REMOVEITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SETITEMDATA.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SET_RANDOM_STATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SPIN_WHEEL_OF_FORTUNE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/THROW_DICE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEFURNITURE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEWALLITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/ASSIGNRIGHTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/BANUSER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/KICK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/LETUSERIN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVEALLRIGHTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVERIGHTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/BTCKS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/CLOSE_UIMAKOPPI.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/DIVE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SIGN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SPLASH_POSITION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SWIMSUIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/CREATEFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/DELETEFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATCAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATCAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/UPDATEFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYDRINK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CHAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/DANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GET_USER_TAGS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GOAWAY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/IIM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/LOOKTO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/QUIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RATEFLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RESPECT_USER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SET_SOUND_SETTING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SHOUT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/STOP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USEITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_CANCEL_TYPING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_START_TYPING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WALK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WAVE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WHISPER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/BURN_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/DELETE_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EDIT_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EJECT_SOUND_PACKAGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_PLAY_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/INSERT_SOUND_PACKAGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/NEW_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_EDIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_NEW.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/UPDATE_PLAY_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ACCEPT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ADDITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CLOSE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CONFIRM_ACCEPT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_OPEN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_REMOVE_ITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_UNACCEPT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_ACCEPT_TUTOR_INVITATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_TUTOR_INVITATIONS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_GET_TUTORS_AVAILABLE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_INVITE_TUTORS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REJECT_TUTOR_INVITATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REMOVE_ACCOUNT_HELP_TEXT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_WAIT_FOR_TUTOR_INVITATIONS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/RESET_TUTORIAL.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_CREDITS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_IGNORE_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_POSSIBLE_ACHIEVEMENTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/IGNORE_USER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/UNIGNORE_USER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETAVAILABLEBADGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETSELECTEDBADGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/SETBADGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/PONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/TEST_LATENCY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/settings/GET_ACCOUNT_PREFERENCES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/wobblesquabble/PTM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/ALERT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/HOTEL_LOGOUT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/LOCALISED_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/NO_USER_FOUND.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/ALIAS_TOGGLE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/DELIVER_PRESENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/NO_CREDITS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/SPRITE_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_GIFT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_PRIZES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ACTIVATED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ADDED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_EXPIRED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_SELECTED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/USER_AVATAR_EFFECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEEVENT_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_PERMISSION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_TYPES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/CREATEFAILED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/FULLGAMESTATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEDELETED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEEND.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEINSTANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMELOCATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPARAMETERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPLAYERINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMERESET.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTART.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/INSTANCELIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/JOINFAILED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/LOUNGEINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/PLAYERREJOINED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/SNOWSTORM_GAMESTATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/STARTFAILED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INIT_TUTOR_SERVICE_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INVITATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/CRYPTO_PARAMETERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/HELLO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/LOGIN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/RIGHTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SECRET_KEY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SESSION_PARAMETERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/UniqueIDMessageEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/BUS_DOOR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/CANNOT_ENTER_BUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/POLL_QUESTION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/VOTE_RESULTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/inventory/INVENTORY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/JUKEBOX_DISCS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/USER_SONG_DISKS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ADD_BUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/BUDDY_REQUEST_RESULT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FOLLOW_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDLIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDS_UPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUEST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUESTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_INVITATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INVITATION_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_INIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_MSG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_SEARCH.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/REMOVE_BUDDY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ROOMFORWARD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CALL_FOR_HELP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CFH_ACK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_RECEIVED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_REPLY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/DELETE_CRY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/MODERATOR_ALERT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/PICKED_CRY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/CANTCONNECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FAVOURITEROOMRESULTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FLAT_RESULTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NAVNODEINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NODESPACEUSERS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATSFORUSER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/RECOMMENDED_ROOM_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/SEARCH_FLAT_RESULTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/USERFLATCATS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/NAMEAPPROVED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/PETSTAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_ERROR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_OK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ACTIVE_OBJECTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/DOORBELL_WAIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATNOTALLOWEDTOENTER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATPROPERTY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLAT_LETIN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLOOR_MAP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP_UPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/INTERSITIALDATA.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ITEMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OBJECTS_WORLD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OPEN_CONNECTION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOMAD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_AD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_READY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_URL.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/UPDATE_VOTES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/dimmer/MOODLIGHT_PRESETS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/CLOSEGAMEBOARD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/ITEMMSG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/OPENGAMEBOARD.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_BADGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_MEMBERSHIP_UPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/BROADCAST_TELEPORTER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CANNOT_PLACE_STUFF_FROM_STRIP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CHANGESTATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/DICE_VALUE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/IDATA.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/ITEM_DELIVERED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/JUDGE_GUI_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/MOVE_FLOORITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_FLOORITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_WALLITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_FLOORITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_WALLITEM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SHOWPROGRAM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SLIDEOBJECTBUNDLE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/STUFFDATAUPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/TELEPORTER_INIT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUARECONTROLLER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUAROWNER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUNOTCONTROLLER.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPDATA.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPINGPLACE_OK.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/OPEN_UIMAKOPPI.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATCAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATINFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/GOTO_FLAT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/CHAT_MESSAGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/FIGURE_CHANGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/HOTEL_VIEW.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/LOGOUT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/RESPECT_NOTIFICATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TAG_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TYPING_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_CARRY_OBJECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_DANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_OBJECTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_SLEEP.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_STATUSES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_USE_OBJECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_WAVE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/YOUARESPECTATOR.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_INFO.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LOCKED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_NEW.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_PLAYLIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_UPDATE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SOUND_PACKAGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/START_PLAYING_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/STOP_PLAYING_SONG.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/USER_SOUND_PACKAGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/ITEM_NOT_TRADABLE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEACCEPT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADECONFIRM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEOPEN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ALREADY_OPEN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_CLOSE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_COMPLETED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ITEMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/ENABLE_TUTOR_SERVICE_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/GUIDE_FOUND.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITATION_SENT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_CANCELLED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_FOLLOW_FAILED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITING_COMPLETED.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/TUTORS_AVAILABLE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORED_LIST.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORE_USER_RESULT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/LATENCY.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/PING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/POSSIBLE_ACHIEVEMENTS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/USER_OBJECT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/ACHIEVEMENT_NOTIFICATION.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/AVAILABLE_BADGES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/USERBADGE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/ActivityPointNotification.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/CREDIT_BALANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/FILM.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/NO_TICKETS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/TICKET_BALANCE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/ACCOUNT_PREFERENCES.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/HELP_ITEMS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/SOUND_SETTING.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_END.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_PREPARE.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_START.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_STATUS.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_TIMEOUT.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_WIN.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageComposer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageEvent.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/messages/types/PlayerMessageComposer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusChannelInitializer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusConnectionHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusServer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkDecoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkEncoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/connection/MusClient.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusPropList.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusTypes.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyChannelInitializer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyPlayerNetwork.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyServer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/ServerHandlerType.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/EncryptionDecoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkDecoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkEncoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/ConnectionHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/IdleConnectionHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyRequest.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyResponse.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconChannelInitializer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconConnectionHandler.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconServer.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/codec/RconNetworkDecoder.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconHeader.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconMessage.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/server/util/MalformedPacketException.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/BitUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/DateUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/EasterUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/FigureUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/HexValidator.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/SearchUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/StringUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/ValidationUtil.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/Configuration.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/GameConfiguration.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/LoggingConfiguration.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/ServerConfiguration.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/ConfigWriter.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/DefaultConfigWriter.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/GameConfigWriter.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/encoding/Base64Encoding.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/encoding/VL64Encoding.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/encryption/HugeInt15.java create mode 100644 Havana-Server/src/main/java/org/alexdev/havana/util/schedule/FutureRunnable.java create mode 100644 Havana-Web/.gitignore create mode 100644 Havana-Web/build.gradle create mode 100644 Havana-Web/libs/duckHTTPD-all.jar create mode 100644 Havana-Web/src/main/java/org/alexdev/http/HavanaWeb.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/Routes.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/BaseController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/api/AdvertisementController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/api/PhotosController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/api/VerifyController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupDiscussionsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupFavouriteController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupHabbletController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupMemberController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupTagController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionActionsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionPreviewController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/EventController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/FeedController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/HabboClubHabblet.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/InviteController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NameCheckController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NavigationComponent.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/ProxyHabblet.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/RoomSelectionController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/UpdateMottoController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/VoucherController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/HomesController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/NoteEditorController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/WidgetController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/store/StoreController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/BadgesController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/FriendsWidgetController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/GuestbookController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/MemberWidgetController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/RateController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/TraxController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingAdsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingBansController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCatalogueFrontpageController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCommandsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingConfigController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingInfobusController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingNewsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingRoomBadgesController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingTransactionsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingUsersController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/AccountController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClientController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClubController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/CollectablesController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/CommunityController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/CreditsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/FaqController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/FriendManagementController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/GamesController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/HomepageController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/MinimailController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/NewsController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/ProfileController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/QuickmenuController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/RecoveryController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/RegisterController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/SiteController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/controllers/site/TagController.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/CommunityDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/EmailDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/FriendManagementDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/GroupDiscussionDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/GroupEditDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/GuestbookDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/HomeEditDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/HomesDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/HousekeepingDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/MinimailDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/NewsDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/RatingDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/RecommendedDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/RegisterDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/ReplyDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/SessionDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/SiteDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/StoreDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/VerifyDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/WidgetDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/dao/housekeeping/HousekeepingPlayerDao.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/CommunityPhoto.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/account/BeginnerGiftManager.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/account/CacheManager.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/account/ClientPreference.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/collectables/CollectableEntry.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/friends/FriendsFeed.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionReply.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionTopic.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/homes/GuestbookEntry.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/homes/Home.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/homes/Widget.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingManager.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingStats.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/MarketplacePurchaseOccurance.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/marketplace/MarketplaceOffer.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/minimail/MinimailMessage.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/news/NewsArticle.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/news/NewsCategory.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/news/NewsDateKey.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/news/NewsManager.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/news/NewsView.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerCategory.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerManager.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerProduct.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerType.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/log/Log.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/server/ServerResponses.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/server/Watchdog.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/template/PresentTest.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/template/TwigTemplate.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/template/binders/AlertBinder.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/template/binders/SessionBinder.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/template/binders/SiteBinder.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/BBCode.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/Captcha.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/ConfigEntry.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/EmailUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/GroupUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/HomeUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/HousekeepingUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/HtmlUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/RconUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/RegisterUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/SessionUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/TagUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/XSSUtil.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/config/WebLoggingConfiguration.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/config/WebServerConfigWriter.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/config/WebSettingsConfigWriter.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/piechart/PieChart.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/piechart/Slice.java create mode 100644 Havana-Web/src/main/java/org/alexdev/http/util/rcon/RconTask.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/PhotoRenderer.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/RenderOption.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/GreyscalePalette.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/PaletteUtils.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/utils/BorderEffect.java create mode 100644 Havana-Web/src/main/java/org/alexdev/photorenderer/utils/DataUtils.java mode change 100644 => 100755 gradlew create mode 100644 settings.gradle create mode 100644 tools/.gitignore create mode 100644 tools/cleanup.sql create mode 100644 tools/gamedata/flash/Habbo.swf create mode 100644 tools/gamedata/flash/external_flash_texts.txt create mode 100644 tools/gamedata/flash/external_variables.txt create mode 100644 tools/gamedata/flash/figuredata.txt create mode 100644 tools/gamedata/flash/figuremap.xml create mode 100644 tools/gamedata/flash/partsets.txt create mode 100644 tools/gamedata/flash/partsets.xml create mode 100644 tools/gamedata/shockwave/.htaccess create mode 100644 tools/gamedata/shockwave/animation.txt create mode 100644 tools/gamedata/shockwave/animation.xml create mode 100644 tools/gamedata/shockwave/draworder.txt create mode 100644 tools/gamedata/shockwave/draworder.xml create mode 100644 tools/gamedata/shockwave/external_texts.txt create mode 100644 tools/gamedata/shockwave/external_variables.php create mode 100644 tools/gamedata/shockwave/external_variables.txt create mode 100644 tools/gamedata/shockwave/external_variables_nossl.txt create mode 100644 tools/gamedata/shockwave/figuredata.txt create mode 100644 tools/gamedata/shockwave/furnidata.txt create mode 100644 tools/gamedata/shockwave/hh_furni_xx_nest.cct create mode 100644 tools/gamedata/shockwave/hh_furni_xx_photo.cct create mode 100644 tools/gamedata/shockwave/hh_furni_xx_post.it.cct create mode 100644 tools/gamedata/shockwave/partsets.txt create mode 100644 tools/gamedata/shockwave/partsets.xml create mode 100644 tools/gamedata/shockwave/productdata.txt create mode 100644 tools/gamedata/shockwave/sec.cct create mode 100644 tools/gamedata/shockwave/template_variables.txt create mode 100644 tools/gamedata/shockwave/template_variables2.txt create mode 100644 tools/gamedata/temp-furni.7z create mode 100644 tools/groups.sql create mode 100644 tools/havana.sql create mode 100644 tools/snowstorm_maps/arena_1.dat create mode 100644 tools/snowstorm_maps/arena_1_snowmachines.dat create mode 100644 tools/snowstorm_maps/arena_1_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_2.dat create mode 100644 tools/snowstorm_maps/arena_2_snowmachines.dat create mode 100644 tools/snowstorm_maps/arena_2_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_3.dat create mode 100644 tools/snowstorm_maps/arena_3_snowmachines.dat create mode 100644 tools/snowstorm_maps/arena_3_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_4.dat create mode 100644 tools/snowstorm_maps/arena_4_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_5.dat create mode 100644 tools/snowstorm_maps/arena_5_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_6.dat create mode 100644 tools/snowstorm_maps/arena_6_spawn_clusters.dat create mode 100644 tools/snowstorm_maps/arena_7.dat create mode 100644 tools/snowstorm_maps/arena_7_spawn_clusters.dat create mode 100644 tools/www-tpl/default/OLD_install_shockwave.tpl create mode 100644 tools/www-tpl/default/OLD_shockwave_app.tpl create mode 100644 tools/www-tpl/default/account/banned.tpl create mode 100644 tools/www-tpl/default/account/email/account_activated.tpl create mode 100644 tools/www-tpl/default/account/email/account_forgot.tpl create mode 100644 tools/www-tpl/default/account/email/account_recovery.tpl create mode 100644 tools/www-tpl/default/account/email/base/email_footer.tpl create mode 100644 tools/www-tpl/default/account/email/base/email_header.tpl create mode 100644 tools/www-tpl/default/account/email/email_activate.tpl create mode 100644 tools/www-tpl/default/account/email/email_recovery.tpl create mode 100644 tools/www-tpl/default/account/email/email_registered.tpl create mode 100644 tools/www-tpl/default/account/email/sent.tpl create mode 100644 tools/www-tpl/default/account/login.tpl create mode 100644 tools/www-tpl/default/account/logout.tpl create mode 100644 tools/www-tpl/default/account/reauthenticate.tpl create mode 100644 tools/www-tpl/default/account/submit.tpl create mode 100644 tools/www-tpl/default/base/ads_container.tpl create mode 100644 tools/www-tpl/default/base/flash_check.tpl create mode 100644 tools/www-tpl/default/base/footer.tpl create mode 100644 tools/www-tpl/default/base/frontpage_header.tpl create mode 100644 tools/www-tpl/default/base/hc_status.tpl create mode 100644 tools/www-tpl/default/base/header.tpl create mode 100644 tools/www-tpl/default/base/tag_cloud.tpl create mode 100644 tools/www-tpl/default/base/tag_search.tpl create mode 100644 tools/www-tpl/default/client.tpl create mode 100644 tools/www-tpl/default/client_beta.tpl create mode 100644 tools/www-tpl/default/client_connection_failed.tpl create mode 100644 tools/www-tpl/default/client_error.tpl create mode 100644 tools/www-tpl/default/client_flash.tpl create mode 100644 tools/www-tpl/default/client_install_shockwave.tpl create mode 100644 tools/www-tpl/default/club.tpl create mode 100644 tools/www-tpl/default/club_tryout.tpl create mode 100644 tools/www-tpl/default/collectables.tpl create mode 100644 tools/www-tpl/default/community.tpl create mode 100644 tools/www-tpl/default/credits.tpl create mode 100644 tools/www-tpl/default/credits_history.tpl create mode 100644 tools/www-tpl/default/error.tpl create mode 100644 tools/www-tpl/default/faq.tpl create mode 100644 tools/www-tpl/default/games.tpl create mode 100644 tools/www-tpl/default/groups.tpl create mode 100644 tools/www-tpl/default/groups/discussion.tpl create mode 100644 tools/www-tpl/default/groups/discussion_replies.tpl create mode 100644 tools/www-tpl/default/groups/discussions/confirm_delete_topic.tpl create mode 100644 tools/www-tpl/default/groups/discussions/newpost.tpl create mode 100644 tools/www-tpl/default/groups/discussions/opentopicsettings.tpl create mode 100644 tools/www-tpl/default/groups/discussions/previewpost.tpl create mode 100644 tools/www-tpl/default/groups/discussions/previewtopic.tpl create mode 100644 tools/www-tpl/default/groups/favourite/confirm_deselect_favourite.tpl create mode 100644 tools/www-tpl/default/groups/favourite/confirm_select_favourite.tpl create mode 100644 tools/www-tpl/default/groups/habblet/check_group_url.tpl create mode 100644 tools/www-tpl/default/groups/habblet/confirm_delete_group.tpl create mode 100644 tools/www-tpl/default/groups/habblet/delete_group.tpl create mode 100644 tools/www-tpl/default/groups/habblet/group_create_form.tpl create mode 100644 tools/www-tpl/default/groups/habblet/group_settings.tpl create mode 100644 tools/www-tpl/default/groups/habblet/listgrouptags.tpl create mode 100644 tools/www-tpl/default/groups/habblet/purchase_ajax.tpl create mode 100644 tools/www-tpl/default/groups/habblet/purchase_confirmation.tpl create mode 100644 tools/www-tpl/default/groups/habblet/purchase_result_error.tpl create mode 100644 tools/www-tpl/default/groups/habblet/show_badge_editor.tpl create mode 100644 tools/www-tpl/default/groups/habblet/update_group_settings.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_accept.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_decline.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_give_rights.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_leave.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_remove.tpl create mode 100644 tools/www-tpl/default/groups/member/confirm_revoke_rights.tpl create mode 100644 tools/www-tpl/default/groups/member/leave.tpl create mode 100644 tools/www-tpl/default/groups/member/member_added.tpl create mode 100644 tools/www-tpl/default/groups/member/member_added_request.tpl create mode 100644 tools/www-tpl/default/groups/memberlist.tpl create mode 100644 tools/www-tpl/default/groups/view_discussions.tpl create mode 100644 tools/www-tpl/default/habblet/collectiblesConfirm.tpl create mode 100644 tools/www-tpl/default/habblet/collectiblesPurchase.tpl create mode 100644 tools/www-tpl/default/habblet/community_hot_groups.tpl create mode 100644 tools/www-tpl/default/habblet/habboClubConfirm.tpl create mode 100644 tools/www-tpl/default/habblet/habboClubEnddate.tpl create mode 100644 tools/www-tpl/default/habblet/habboClubSubscribe.tpl create mode 100644 tools/www-tpl/default/habblet/habboclubgift.tpl create mode 100644 tools/www-tpl/default/habblet/hot_groups.tpl create mode 100644 tools/www-tpl/default/habblet/invite_addFriend.tpl create mode 100644 tools/www-tpl/default/habblet/invite_confirmAddFriend.tpl create mode 100644 tools/www-tpl/default/habblet/invite_referralLink.tpl create mode 100644 tools/www-tpl/default/habblet/invite_searchContent.tpl create mode 100644 tools/www-tpl/default/habblet/load_events.tpl create mode 100644 tools/www-tpl/default/habblet/minimail.tpl create mode 100644 tools/www-tpl/default/habblet/minimail/minimail_load_message.tpl create mode 100644 tools/www-tpl/default/habblet/minimail/minimail_messages.tpl create mode 100644 tools/www-tpl/default/habblet/myTagList.tpl create mode 100644 tools/www-tpl/default/habblet/news_sidebar.tpl create mode 100644 tools/www-tpl/default/habblet/nextgift.tpl create mode 100644 tools/www-tpl/default/habblet/personalhighscores.tpl create mode 100644 tools/www-tpl/default/habblet/redeemvoucher.tpl create mode 100644 tools/www-tpl/default/habblet/roomselectionConfirm.tpl create mode 100644 tools/www-tpl/default/habblet/showMoreRooms.tpl create mode 100644 tools/www-tpl/default/habblet/tagFightResult.tpl create mode 100644 tools/www-tpl/default/habblet/tagList.tpl create mode 100644 tools/www-tpl/default/habblet/tagMatch.tpl create mode 100644 tools/www-tpl/default/home.tpl create mode 100644 tools/www-tpl/default/homes/editor/noteeditor.tpl create mode 100644 tools/www-tpl/default/homes/editor/preview.tpl create mode 100644 tools/www-tpl/default/homes/editor/search.tpl create mode 100644 tools/www-tpl/default/homes/inventory/inventory.tpl create mode 100644 tools/www-tpl/default/homes/inventory/inventory_items.tpl create mode 100644 tools/www-tpl/default/homes/inventory/inventory_preview.tpl create mode 100644 tools/www-tpl/default/homes/store/background_warning.tpl create mode 100644 tools/www-tpl/default/homes/store/items.tpl create mode 100644 tools/www-tpl/default/homes/store/main.tpl create mode 100644 tools/www-tpl/default/homes/store/preview.tpl create mode 100644 tools/www-tpl/default/homes/store/purchase_confirm.tpl create mode 100644 tools/www-tpl/default/homes/widget/badges_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/friends_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/group_info_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/groups_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/guestbook/add.tpl create mode 100644 tools/www-tpl/default/homes/widget/guestbook/preview.tpl create mode 100644 tools/www-tpl/default/homes/widget/guestbook_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/avatarinfo.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/badgepaging.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/friendsearchpaging.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/groupinfo.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/membersearchpaging.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/rate.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/taglist.tpl create mode 100644 tools/www-tpl/default/homes/widget/habblet/trax_song.tpl create mode 100644 tools/www-tpl/default/homes/widget/highscores_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/member_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/note.tpl create mode 100644 tools/www-tpl/default/homes/widget/profile_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/rating_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/rooms_widget.tpl create mode 100644 tools/www-tpl/default/homes/widget/sticker.tpl create mode 100644 tools/www-tpl/default/homes/widget/trax_player_widget.tpl create mode 100644 tools/www-tpl/default/housekeeping/articles.tpl create mode 100644 tools/www-tpl/default/housekeeping/articles_create.tpl create mode 100644 tools/www-tpl/default/housekeeping/articles_edit.tpl create mode 100644 tools/www-tpl/default/housekeeping/base/alert.tpl create mode 100644 tools/www-tpl/default/housekeeping/base/footer.tpl create mode 100644 tools/www-tpl/default/housekeeping/base/header.tpl create mode 100644 tools/www-tpl/default/housekeeping/base/navigation.tpl create mode 100644 tools/www-tpl/default/housekeeping/catalogue_frontpage.tpl create mode 100644 tools/www-tpl/default/housekeeping/configurations.tpl create mode 100644 tools/www-tpl/default/housekeeping/dashboard.tpl create mode 100644 tools/www-tpl/default/housekeeping/infobus_polls.tpl create mode 100644 tools/www-tpl/default/housekeeping/infobus_polls_create.tpl create mode 100644 tools/www-tpl/default/housekeeping/infobus_polls_edit.tpl create mode 100644 tools/www-tpl/default/housekeeping/infobus_polls_view.tpl create mode 100644 tools/www-tpl/default/housekeeping/login.tpl create mode 100644 tools/www-tpl/default/housekeeping/room_ads.tpl create mode 100644 tools/www-tpl/default/housekeeping/room_ads_create.tpl create mode 100644 tools/www-tpl/default/housekeeping/room_badges.tpl create mode 100644 tools/www-tpl/default/housekeeping/room_badges_create.tpl create mode 100644 tools/www-tpl/default/housekeeping/transaction/search_results.tpl create mode 100644 tools/www-tpl/default/housekeeping/transaction_item_lookup.tpl create mode 100644 tools/www-tpl/default/housekeeping/transaction_lookup.tpl create mode 100644 tools/www-tpl/default/housekeeping/users_bans.tpl create mode 100644 tools/www-tpl/default/housekeeping/users_create.tpl create mode 100644 tools/www-tpl/default/housekeeping/users_edit.tpl create mode 100644 tools/www-tpl/default/housekeeping/users_search.tpl create mode 100644 tools/www-tpl/default/index.tpl create mode 100644 tools/www-tpl/default/index_chromide.tpl create mode 100644 tools/www-tpl/default/index_old.tpl create mode 100644 tools/www-tpl/default/index_old_idol.tpl create mode 100644 tools/www-tpl/default/index_v32.tpl create mode 100644 tools/www-tpl/default/maintenance.tpl create mode 100644 tools/www-tpl/default/maintenance_old.tpl create mode 100644 tools/www-tpl/default/me.tpl create mode 100644 tools/www-tpl/default/news_articles.tpl create mode 100644 tools/www-tpl/default/overrides/default.tpl create mode 100644 tools/www-tpl/default/pixels.tpl create mode 100644 tools/www-tpl/default/profile/change_email.tpl create mode 100644 tools/www-tpl/default/profile/change_looks.tpl create mode 100644 tools/www-tpl/default/profile/change_password.tpl create mode 100644 tools/www-tpl/default/profile/change_preferences.tpl create mode 100644 tools/www-tpl/default/profile/change_trade_settings.tpl create mode 100644 tools/www-tpl/default/profile/friend_management.tpl create mode 100644 tools/www-tpl/default/profile/profile_widgets/friend_category_options.tpl create mode 100644 tools/www-tpl/default/profile/profile_widgets/friend_category_widget.tpl create mode 100644 tools/www-tpl/default/profile/profile_widgets/friend_view_category.tpl create mode 100644 tools/www-tpl/default/profile/profile_widgets/join_club.tpl create mode 100644 tools/www-tpl/default/profile/verify_email.tpl create mode 100644 tools/www-tpl/default/quickmenu/friends_all.tpl create mode 100644 tools/www-tpl/default/quickmenu/groups.tpl create mode 100644 tools/www-tpl/default/quickmenu/rooms.tpl create mode 100644 tools/www-tpl/default/reauthenticate.tpl create mode 100644 tools/www-tpl/default/register.tpl create mode 100644 tools/www-tpl/default/register_disabled.tpl create mode 100644 tools/www-tpl/default/security_check.tpl create mode 100644 tools/www-tpl/default/tag.tpl create mode 100644 tools/www-tpl/default/welcome.tpl diff --git a/Havana-Server/.gitignore b/Havana-Server/.gitignore new file mode 100644 index 0000000..34c5f4b --- /dev/null +++ b/Havana-Server/.gitignore @@ -0,0 +1,18 @@ +.gradle/ +.idea/ +/out/ +**.iml +/gradle/ +/build/ +bin/ +tmp/ + +gradlew +gradlew.bat + +habbohotel.properties +game.properties +icarus.properties +locale.ini +log4j.properties +error.log \ No newline at end of file diff --git a/Havana-Server/build.gradle b/Havana-Server/build.gradle new file mode 100644 index 0000000..f81c004 --- /dev/null +++ b/Havana-Server/build.gradle @@ -0,0 +1,83 @@ +apply plugin: 'java' +apply plugin: 'application' + +java { + sourceCompatibility = JavaVersion.toVersion("1.11") + targetCompatibility = JavaVersion.toVersion("1.11") +} + +mainClassName = 'org.alexdev.havana.Havana' + +repositories { + maven { url 'https://jitpack.io' } + mavenCentral() +} + +dependencies { + // https://mvnrepository.com/artifact/net.dv8tion/JDA + implementation 'net.dv8tion:JDA:5.0.0-alpha.12' + + // https://mvnrepository.com/artifact/com.zaxxer/HikariCP + implementation group: 'com.zaxxer', name: 'HikariCP', version: '3.4.1' + + // https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client + implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.3.0' + + // https://mvnrepository.com/artifact/io.netty/netty-all + implementation group: 'io.netty', name: 'netty-all', version: '4.1.33.Final' + + // https://mvnrepository.com/artifact/org.slf4j/slf4j-api + implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' + + // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 + implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25' + + // https://mvnrepository.com/artifact/log4j/log4j/1.2.17 + implementation group: 'log4j', name: 'log4j', version: '1.2.17' + + // https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2 + implementation group: 'org.apache.commons', name: 'commons-configuration2', version: '2.2' + + // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' + + // https://mvnrepository.com/artifact/commons-lang/commons-lang + implementation group: 'commons-lang', name: 'commons-lang', version: '2.6' + + // https://mvnrepository.com/artifact/commons-validator/commons-validator + implementation group: 'commons-validator', name: 'commons-validator', version: '1.6' + + // https://mvnrepository.com/artifact/com.google.code.gson/gson + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.0' + + implementation 'com.maxmind.geoip2:geoip2:2.12.0' + implementation 'com.github.bhlangonijr:chesslib:1.1.1' + implementation 'com.goterl:lazysodium-java:5.0.1' + implementation "net.java.dev.jna:jna:5.8.0" +} + +// Create fat jar with libraries inside of it. +task fatJar(type: Jar) { + zip64 true + duplicatesStrategy 'exclude' + manifest { + attributes 'Main-Class': mainClassName + } + baseName = project.name + '-all' + from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } + with jar +} + +// Create jar with no libraries inside of it, used when creating with "gradle distZip" and +// libraries are then to be stored in the folder next to it called 'dependency-jars' +// https://vocon-it.com/2016/11/15/how-to-build-a-lean-jar-file-with-gradle/ +/*jar { + manifest { + attributes ( + 'Main-Class': mainClassName, + "Class-Path": '. dependency-jars/' + configurations.compile.collect { + it.getName() + }.join(' dependency-jars/') + ) + } +}*/ \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/Havana.java b/Havana-Server/src/main/java/org/alexdev/havana/Havana.java new file mode 100644 index 0000000..cc0f133 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/Havana.java @@ -0,0 +1,356 @@ +package org.alexdev.havana; + +import com.google.gson.Gson; +import io.netty.util.ResourceLeakDetector; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.ecotron.EcotronManager; +import org.alexdev.havana.game.effects.EffectsManager; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.fuserights.FuserightsManager; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.snowstorm.SnowStormMapsManager; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.misc.figure.FigureManager; +import org.alexdev.havana.game.moderation.ChatManager; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.game.room.models.RoomModelManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.MessageHandler; +import org.alexdev.havana.server.mus.MusServer; +import org.alexdev.havana.server.netty.NettyServer; +import org.alexdev.havana.server.rcon.RconServer; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.LoggingConfiguration; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.alexdev.havana.util.config.writer.DefaultConfigWriter; +import org.alexdev.havana.util.config.writer.GameConfigWriter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.UnknownHostException; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; +import java.util.Locale; + +public class Havana { + private static final Gson gson = new Gson(); + private static long startupTime; + + private static String serverIP; + private static int serverPort; + + private static String musServerIP; + private static int musServerPort; + + private static String rconIP; + private static int rconPort; + + private static boolean isShutdown; + + private static NettyServer server; + private static MusServer musServer; + private static RconServer rconServer; + + private static Logger log; + + /** + * Main call of Java application + * @param args System arguments + */ + public static void main(String[] args) { + startupTime = DateUtil.getCurrentTimeSeconds(); + + try { + LoggingConfiguration.checkLoggingConfig(); + + ServerConfiguration.setWriter(new DefaultConfigWriter()); + ServerConfiguration.load("server.ini"); + + log = LoggerFactory.getLogger(Havana.class); + ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.ADVANCED); + + log.info("Havana - Habbo Hotel V31 Emulation"); + + if (Storage.connect()) { + Storage.getLogger().info("Connection to MySQL was a success"); + } else { + Storage.getLogger().error("Could not connect"); + return; + } + + // Update players online back to 0 + SettingsDao.updateSetting("players.online", "0"); + + RoomDao.resetVisitors(); + ItemDao.resetTradeStates(); + PlayerDao.resetOnline(); + + /* + var percentageCheck = 1.0 + ; + + for (int i = 0; i < 100; i++) { + var chance = Math.random() * 100; + + if ((100 - percentageCheck) < chance) { + log.info("5% chance!"); + } + }*/ + + log.info("Setting up game"); + + GameConfiguration.getInstance(new GameConfigWriter()); + InfobusManager.getInstance(); + AchievementManager.getInstance(); + AdManager.getInstance(); + WalkwaysManager.getInstance(); + ItemManager.getInstance(); + CatalogueManager.getInstance(); + EcotronManager.getInstance(); + RoomModelManager.getInstance(); + RoomManager.getInstance(); + PlayerManager.getInstance(); + FuserightsManager.getInstance(); + NavigatorManager.getInstance(); + EffectsManager.getInstance(); + EventsManager.getInstance(); + ChatManager.getInstance(); + GameScheduler.getInstance(); + SnowStormMapsManager.getInstance(); + GameManager.getInstance(); + CommandManager.getInstance(); + MessageHandler.getInstance(); + TextsManager.getInstance(); + WordfilterManager.getInstance(); + CollectablesManager.getInstance(); + FigureManager.getInstance(); + + if (GameConfiguration.getInstance().getBoolean("reset.sso.after.login")) { + PlayerDao.resetSsoTickets(); + } + + setupRcon(); + setupMus(); + setupServer(); + + if (GameConfiguration.getInstance().getInteger("delete.chatlogs.after.x.age") > 0) { + LogDao.deleteChatLogs(GameConfiguration.getInstance().getInteger("delete.chatlogs.after.x.age")); + } + + if (GameConfiguration.getInstance().getInteger("delete.iplogs.after.x.age") > 0) { + LogDao.deleteIpAddressLogs(GameConfiguration.getInstance().getInteger("delete.iplogs.after.x.age")); + } + + Runtime.getRuntime().addShutdownHook(new Thread(Havana::dispose)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void setupServer() throws UnknownHostException { + String serverIP = ServerConfiguration.getString("server.bind"); + + if (serverIP.length() == 0) { + log.error("Game server bind address is not provided"); + return; + } + + serverPort = ServerConfiguration.getInteger("server.port"); + + if (serverPort == 0) { + log.error("Game server port not provided"); + return; + } + + server = new NettyServer(serverIP, serverPort); + server.createSocket(); + server.bind(); + } + + private static void setupRcon() throws IOException { + // Create the RCON instance + rconIP = ServerConfiguration.getString("rcon.bind"); + + if (rconIP.length() == 0) { + log.error("Remote control (RCON) server bind address is not provided"); + return; + } + + rconPort = ServerConfiguration.getInteger("rcon.port"); + + if (rconPort == 0) { + log.error("Remote control (RCON) server port not provided"); + return; + } + + rconServer = new RconServer(rconIP, rconPort); + rconServer.createSocket(); + rconServer.bind(); + } + + private static void setupMus() throws UnknownHostException { + musServerIP = ServerConfiguration.getString("mus.bind"); + + if (musServerIP.length() == 0) { + log.error("Multi User Server (MUS) bind address is not provided"); + return; + } + + musServerPort = ServerConfiguration.getInteger("mus.port"); + + if (musServerPort == 0) { + log.error("Multi User Server (MUS) port not provided"); + return; + } + + musServer = new MusServer(musServerIP, musServerPort); + musServer.createSocket(); + musServer.bind(); + } + + private static void dispose() { + try { + + log.info("Shutting down server!"); + isShutdown = true; + + log.info("Saving chat!"); + ChatManager.getInstance().performChatSaving(); + + log.info("Saving item updates!"); + GameScheduler.getInstance().performItemSaving(); + + log.info("Saving item deletions!"); + GameScheduler.getInstance().performItemDeletion(); + + log.info("Disconnecting all users!"); + PlayerManager.getInstance().dispose(); + + log.info("Server disposal!"); + server.dispose(false); + + log.info("All done!"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static boolean isHappyHour() { + try { + Calendar cl = Calendar.getInstance(); + + LocalTime from = null;//LocalTime.parse( "20:11:13" ) ; + LocalTime to = null;//LocalTime.parse( "14:49:00" ) ; + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss", Locale.US); + + if (cl.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || + cl.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { + from = LocalTime.parse(GameConfiguration.getInstance().getString("happy.hour.weekend.start"), formatter); + to = LocalTime.parse(GameConfiguration.getInstance().getString("happy.hour.weekend.end"), formatter); + } else { + from = LocalTime.parse(GameConfiguration.getInstance().getString("happy.hour.weekday.start"), formatter); + to = LocalTime.parse(GameConfiguration.getInstance().getString("happy.hour.weekday.end"), formatter); + } + + LocalTime nowUtcTime = LocalTime.parse(DateUtil.getCurrentDate("HH:mm:ss"), formatter); + return nowUtcTime.isAfter(from) && nowUtcTime.isBefore(to); + } catch (Exception ex) { + ex.printStackTrace(); + } + + return false; + } + + /** + * Returns the interface to the server handler + * + * @return {@link NettyServer} interface + */ + public static NettyServer getServer() { + return server; + } + + /** + * Returns the interface to the server handler + * + * @return {@link NettyServer} interface + */ + public static RconServer getRcon() { + return rconServer; + } + + /** + * Gets the server IPv4 IP address it is currently (or attempting to) listen on + * @return IP as string + */ + public static String getServerIP() { + return serverIP; + } + + /** + * Gets the server port it is currently (or attempting to) listen on + * @return string of IP + */ + public static int getServerPort() { + return serverPort; + } + + /** + * Gets the rcon IPv4 IP address it is currently (or attempting to) listen on + * @return IP as string + */ + public static String getRconIP() { + return rconIP; + } + + /** + * Gets the rcon port it is currently (or attempting to) listen on + * @return string of IP + */ + public static int getRconPort() { + return rconPort; + } + + /** + * Gets the startup time. + * + * @return the startup time + */ + public static long getStartupTime() { + return startupTime; + } + + /** + * Are we shutting down? + * + * @return boolean yes/no + */ + public static boolean isShuttingdown() { + return isShutdown; + } + + /** + * Get gson instance. + * + * @return the gson instance + */ + public static Gson getGson() { + return gson; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/Storage.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/Storage.java new file mode 100644 index 0000000..33375fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/Storage.java @@ -0,0 +1,245 @@ +package org.alexdev.havana.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; + +public class Storage { + private HikariDataSource ds; + private boolean isConnected; + + private static Storage storage; + private static Logger log = LoggerFactory.getLogger(Storage.class); + + private Storage(String host, int port, String username, String password, String db) { + try { + HikariConfig config = new HikariConfig(); + config.setDriverClassName("org.mariadb.jdbc.Driver"); + config.setJdbcUrl("jdbc:mariadb://" + host + ":" + port + "/" + db); + config.setUsername(username); + config.setPassword(password); + + config.setPoolName("processing"); + + // No martinmine/Leon/other Habbotards, you don't know better. + // Read up on this first, before commenting dumb shit + // https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing + // availableProcessors() already returns thread count on hyper-threaded processors + // Thus we don't need the * 2 described there + config.setMaximumPoolSize(Runtime.getRuntime().availableProcessors() + 1); + config.setMinimumIdle(1); + + config.addDataSourceProperty("cachePrepStmts", "true"); + config.addDataSourceProperty("prepStmtCacheSize", "250"); + config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); + config.addDataSourceProperty("characterEncoding", "utf8"); + config.addDataSourceProperty("useUnicode", "true"); + config.addDataSourceProperty("useSSL", "false"); + config.addDataSourceProperty("serverTimezone", "UTC"); + config.addDataSourceProperty("sessionVariables", "sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"); + + this.ds = new HikariDataSource(config); + this.isConnected = true; + + } catch (Exception ex) { + Storage.logError(ex); + //Storage.logError(ex); + } + } + + /** + * Tries to connect to its data access object service + * + * @return boolean - if connection was successful or not + */ + public static boolean connect() { + Storage.getLogger().info("Connecting to MySQL server"); + + storage = new Storage(ServerConfiguration.getString("mysql.hostname"), + ServerConfiguration.getInteger("mysql.port"), + ServerConfiguration.getString("mysql.username"), + ServerConfiguration.getString("mysql.password"), + ServerConfiguration.getString("mysql.database")); + + return storage.isConnected(); + } + + /** + * Logger handler for the MySQL processing. + * + * @param ex the exception to log + */ + public static void logError(Exception ex) { + Log.getErrorLogger().error("Error when executing MySQL query: ", ex); + } + + /** + * Prepare. + * + * @param query the query + * @param conn the conn + * @return the prepared statement + * @throws SQLException the SQL exception + */ + public PreparedStatement prepare(String query, Connection conn) throws SQLException { + try { + return conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); + } catch (SQLException e) { + e.printStackTrace(); + } + + return null; + } + + /** + * Execute. + * + * @param query the query + */ + public void execute(String query) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = this.getConnection(); + preparedStatement = this.prepare(query, sqlConnection); + preparedStatement.execute(); + + } catch (Exception ex) { + Storage.logError(ex); + throw ex; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Gets the string. + * + * @param query the query + * @return the string + */ + public String getString(String query) { + String value = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = this.getConnection(); + preparedStatement = this.prepare(query, sqlConnection); + resultSet = preparedStatement.executeQuery(); + resultSet.next(); + + value = resultSet.getString(query.split(" ")[1]); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return value; + } + + /** + * Gets the connection count. + * + * @return the connection count + */ + public int getConnectionCount() { + return this.ds.getHikariPoolMXBean().getActiveConnections(); + } + + /** + * Gets the connection. + * + * @return the connection + */ + public Connection getConnection() { + + try { + return this.ds.getConnection(); + } catch (SQLException e) { + Storage.logError(e); + } + + return null; + } + + /** + * Checks if is connected. + * + * @return true, if is connected + */ + public boolean isConnected() { + return this.isConnected; + } + + /** + * Close silently. + * + * @param resultSet the result set + */ + public static void closeSilently(ResultSet resultSet) { + try { + resultSet.close(); + } catch (Exception e) { + + } + } + + /** + * Close silently. + * + * @param statement the statement + */ + public static void closeSilently(Statement statement) { + try { + statement.close(); + } catch (Exception e) { + + } + } + + /** + * Close silently. + * + * @param sqlConnection the sql connection + */ + public static void closeSilently(Connection sqlConnection) { + try { + sqlConnection.close(); + } catch (Exception e) { + + } + } + + /** + * Returns the raw access to the data access object functions + * + * @return {@link Storage} class + */ + public static Storage getStorage() { + return storage; + } + + public static Logger getLogger() { + return log; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AchievementDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AchievementDao.java new file mode 100644 index 0000000..2626dff --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AchievementDao.java @@ -0,0 +1,115 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.user.UserAchievement; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AchievementDao { + public static Map getAchievements() { + Map achievementsList = new HashMap<>(); + + Connection connection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + connection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM achievements WHERE disabled = 0", connection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + var info = new AchievementInfo( + resultSet.getInt("id"), resultSet.getString("achievement"), + resultSet.getInt("level"), resultSet.getInt("reward_pixels"), + resultSet.getInt("progress_needed")); + + achievementsList.put(info.getId(), info); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(connection); + } + + return achievementsList; + } + + public static List getUserAchievements(int id) { + List achievementsList = new ArrayList<>(); + + Connection connection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + connection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_achievements WHERE user_id = ?", connection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + achievementsList.add(new UserAchievement( + resultSet.getInt("achievement_id"), resultSet.getInt("user_id"), resultSet.getInt("progress"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(connection); + } + + return achievementsList; + + } + + public static void newUserAchievement(int userId, UserAchievement userAchievement) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_achievements (achievement_id, user_id, progress) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userAchievement.getAchievementInfo().getId()); + preparedStatement.setInt(2, userId); + preparedStatement.setInt(3, userAchievement.getProgress()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveUserAchievement(int userId, UserAchievement userAchievement) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_achievements SET progress = ? WHERE user_id = ? AND achievement_id = ?", sqlConnection); + preparedStatement.setInt(1, userAchievement.getProgress()); + preparedStatement.setInt(2, userId); + preparedStatement.setInt(3, userAchievement.getAchievementInfo().getId()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AdvertisementsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AdvertisementsDao.java new file mode 100644 index 0000000..e9196ac --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AdvertisementsDao.java @@ -0,0 +1,132 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.ads.Advertisement; + +import java.sql.*; +import java.util.*; + +public class AdvertisementsDao { + public static Map> getAds() { + Map> roomAds = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms_ads", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int roomId = resultSet.getInt("room_id"); + String image = resultSet.getString("image"); + String url = resultSet.getString("url"); + + if (!roomAds.containsKey(roomId)) { + roomAds.put(roomId, new ArrayList<>()); + } + + roomAds.get(roomId).add(new Advertisement(resultSet.getInt("id"), resultSet.getBoolean("is_loading_ad"), roomId, image, url, resultSet.getBoolean("enabled"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomAds; + } + + public static void updateAds(Collection ads) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms_ads SET room_id = ?, image = ?, url = ?, enabled = ?, is_loading_ad = ? WHERE id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (var ad : ads) { + preparedStatement.setInt(1, ad.getRoomId()); + + if (ad.getImage().isBlank()) { + preparedStatement.setNull(2, Types.VARCHAR); + } else { + preparedStatement.setString(2, ad.getImage()); + } + + if (ad.getUrl().isBlank()) { + preparedStatement.setNull(3, Types.VARCHAR); + } else { + preparedStatement.setString(3, ad.getUrl()); + } + + preparedStatement.setBoolean(4, ad.isEnabled()); + preparedStatement.setBoolean(5, ad.isLoadingAd()); + preparedStatement.setInt(6, ad.getId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteAd(int id) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_ads WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void create(int roomId, String url, String image, boolean isEnabled, boolean isRoomLoadingAd) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_ads (room_id, url, image, enabled, is_loading_ad) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, roomId); + + if (url.isBlank()) { + preparedStatement.setNull(2, Types.VARCHAR); + } else { + preparedStatement.setString(2, url); + } + + if (image.isBlank()) { + preparedStatement.setNull(3, Types.VARCHAR); + } else { + preparedStatement.setString(3, image); + } + + preparedStatement.setInt(4, isEnabled ? 1 : 0); + preparedStatement.setInt(5, isRoomLoadingAd ? 1 : 0); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AlertsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AlertsDao.java new file mode 100644 index 0000000..e6fccde --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/AlertsDao.java @@ -0,0 +1,191 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.alerts.AccountAlert; +import org.alexdev.havana.game.alerts.AlertType; +import org.alexdev.havana.game.messenger.MessengerUser; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AlertsDao { + public static List getAlerts(int userId) { + List alerts = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_alerts WHERE user_id = ? ORDER BY created_at DESC", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + alerts.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return alerts; + } + + public static void createAlert(int userId, AlertType alertType, String message) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_alerts (user_id, alert_type, message) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, alertType.name()); + preparedStatement.setString(3, message); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteAlerts(int userId, AlertType alertType) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_alerts WHERE user_id = ? AND alert_type = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, alertType.name()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void disableAlerts(int userId, AlertType alertType) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_alerts SET is_disabled = 1 WHERE user_id = ? AND alert_type = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, alertType.name()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + private static AccountAlert fill(ResultSet resultSet) throws SQLException { + return new AccountAlert(resultSet.getInt("id"), resultSet.getInt("user_id"), AlertType.valueOf(resultSet.getString("alert_type")), + resultSet.getString("message"), resultSet.getBoolean("is_disabled"), resultSet.getTime("created_at").getTime() / 1000L); + } + + public static Map getOnlineFriends(int userId) { + Map friends = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id,username,figure,motto,last_online,sex,allow_stalking,is_online,category_id,online_status_visible FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ? AND is_online = 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int resultUserId = resultSet.getInt("id"); + friends.put(resultUserId, new MessengerUser(resultUserId, resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), resultSet.getInt("category_id"), + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } + + public static int countRequests(int userId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) FROM messenger_requests WHERE to_id = " + userId, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + count = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static void deleteAlert(int userId, int id) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_alerts WHERE user_id = ? AND id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, id); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BadgeDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BadgeDao.java new file mode 100644 index 0000000..b64582d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BadgeDao.java @@ -0,0 +1,283 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.badges.Badge; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +public class BadgeDao { + public static Map> getRoomBadges() { + Map> badges = new ConcurrentHashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms_entry_badges", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int roomId = resultSet.getInt("room_id"); + String badgeCode = resultSet.getString("badge"); + + if (!badges.containsKey(roomId)) { + badges.put(roomId, new ArrayList<>()); + } + + badges.get(roomId).add(badgeCode); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return badges; + } + + + public static void deleteRoomBadge(String roomId, String badgeCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_entry_badges WHERE room_id = ? AND badge = ?", sqlConnection); + preparedStatement.setString(1, roomId); + preparedStatement.setString(2, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void createEntryBadge(int roomId, String badgeCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_entry_badges (room_id, badge) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.setString(2, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateBadges(Map> badges) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_entry_badges", sqlConnection); + preparedStatement.execute(); + + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_entry_badges (room_id, badge) VALUES (?, ?)", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (var badgeData : badges.entrySet()) { + for (var badge : badgeData.getValue()) { + preparedStatement.setInt(1, badgeData.getKey()); + preparedStatement.setString(2, badge); + preparedStatement.addBatch(); + } + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getBadges(int userId) { + List ranks = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_badges WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ranks.add(new Badge(resultSet.getString("badge"), resultSet.getBoolean("equipped"), resultSet.getInt("slot_id"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return ranks; + } + + public static void newBadge(int userId, String badgeCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_badges (user_id, badge) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeBadge(int userId, String badgeCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_badges WHERE user_id = ? AND badge = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeBadge(String badgeCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_badges WHERE badge = ?", sqlConnection); + preparedStatement.setString(1, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveBadgeChanges(int userId, String badgeCode, boolean isEquipped, int slotId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_badges SET equipped = ?, slot_id = ? WHERE user_id = ? AND badge = ?", sqlConnection); + preparedStatement.setBoolean(1, isEquipped); + preparedStatement.setInt(2, slotId); + preparedStatement.setInt(3, userId); + preparedStatement.setString(4, badgeCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void saveBadgeChanges(int userId, Set badgesToSave) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_badges SET equipped = ?, slot_id = ? WHERE user_id = ? AND badge = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Badge badge : badgesToSave) { + preparedStatement.setBoolean(1, badge.isEquipped()); + preparedStatement.setInt(2, badge.getSlotId()); + preparedStatement.setInt(3, userId); + preparedStatement.setString(4, badge.getBadgeCode()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Get all rank badges + * + * @return list of badges + */ + public static List getRankBadges() { + List badges = new ArrayList<>(); + + Connection conn = null; + PreparedStatement stmt = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + stmt = Storage.getStorage().prepare("SELECT badge FROM rank_badges", conn); + row = stmt.executeQuery(); + + while (row.next()) { + badges.add(row.getString("badge")); + } + } catch (Exception err) { + Storage.logError(err); + } finally { + Storage.closeSilently(row); + Storage.closeSilently(stmt); + Storage.closeSilently(conn); + } + + return badges; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BanDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BanDao.java new file mode 100644 index 0000000..47c52f6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BanDao.java @@ -0,0 +1,144 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.ban.Ban; +import org.alexdev.havana.game.ban.BanType; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class BanDao { + public static Pair hasBan(BanType banType, String value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + Pair banned = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_bans WHERE banned_value = ? AND ban_type = ? AND banned_until > CURRENT_TIMESTAMP() AND is_active = 1 ORDER BY banned_until DESC LIMIT 1", sqlConnection); + preparedStatement.setString(1, value); + preparedStatement.setString(2, banType.name()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + banned = Pair.of( + resultSet.getString("message"), + resultSet.getTime("banned_until").getTime() / 1000L + ); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return banned; + } + + public static String getName(String machineId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + String name = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT username FROM users WHERE machine_id = ?", sqlConnection); + preparedStatement.setString(1, machineId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + name = resultSet.getString("username"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return name; + } + + public static void addBan(BanType banType, String value, long bannedUntil, String message, int bannedBy) { + if (value.isBlank()) + return; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_bans (banned_value, ban_type, banned_until, message, banned_by) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setString(1, value); + preparedStatement.setString(2, banType.name()); + preparedStatement.setTimestamp(3, new java.sql.Timestamp(bannedUntil * 1000L)); + preparedStatement.setString(4, message); + preparedStatement.setInt(5, bannedBy); + preparedStatement.executeQuery(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static void removeBan(BanType banType, String value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + //preparedStatement = Storage.getStorage().prepare("DELETE FROM users_bans WHERE banned_value = ? AND ban_type = ?", sqlConnection); + preparedStatement = Storage.getStorage().prepare("UPDATE users_bans SET is_active = 0 WHERE banned_value = ? AND ban_type = ?", sqlConnection); + preparedStatement.setString(1, value); + preparedStatement.setString(2, banType.name()); + preparedStatement.executeQuery(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static List getActiveBans() { + List banList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_bans WHERE is_active = 1 ORDER BY banned_at DESC", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + banList.add(new Ban(BanType.valueOf(resultSet.getString("ban_type")), resultSet.getString("banned_value"), resultSet.getString("message"), resultSet.getTime("banned_until").getTime() / 1000L, + resultSet.getTime("banned_at").getTime() / 1000L, resultSet.getInt("banned_by"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(resultSet); + } + + return banList; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BotDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BotDao.java new file mode 100644 index 0000000..e533b2a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/BotDao.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.bot.BotData; +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class BotDao { + public static List getBotData(int roomId) { + List botData = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms_bots WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + //a(String name, String mission, int x, int y, String headRotation, String bodyRotation, String figure, String walkspace) { + botData.add(new BotData( + resultSet.getString("name"), + resultSet.getString("mission"), + resultSet.getInt("x"), + resultSet.getInt("y"), + Integer.parseInt(resultSet.getString("start_look").split(",")[0]), + Integer.parseInt(resultSet.getString("start_look").split(",")[1]), + resultSet.getString("figure"), + resultSet.getString("walkspace"), + resultSet.getString("speech"), + resultSet.getString("response"), + resultSet.getString("unrecognised_response"), + resultSet.getString("hand_items") + )); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return botData; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CatalogueDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CatalogueDao.java new file mode 100644 index 0000000..882f8d1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CatalogueDao.java @@ -0,0 +1,186 @@ +package org.alexdev.havana.dao.mysql; + +import com.google.gson.reflect.TypeToken; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CataloguePackage; +import org.alexdev.havana.game.catalogue.CataloguePage; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.util.StringUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class CatalogueDao { + + public static Map> getBadgeRewards() { + Map> badges = new ConcurrentHashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM catalogue_sale_badges", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String saleCode = resultSet.getString("sale_code"); + String badgeCode = resultSet.getString("badge_code"); + + if (!badges.containsKey(saleCode)) { + badges.put(saleCode, new ArrayList<>()); + } + + badges.get(saleCode).add(badgeCode); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return badges; + } + + /** + * Get the catalogue pages. + * + * @return the list of catalogue pages + */ + public static List getPages() { + List pages = new ArrayList<>(); + + Connection conn = null; + PreparedStatement stmt = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + stmt = Storage.getStorage().prepare("SELECT * FROM catalogue_pages ORDER BY order_id ASC", conn); + row = stmt.executeQuery(); + + while (row.next()) { + CataloguePage page = new CataloguePage(row.getInt("id"), row.getInt("parent_id"), PlayerRank.getRankForId(row.getInt("min_role")), + row.getBoolean("is_navigatable"), row.getBoolean("is_club_only"), row.getString("name"), row.getInt("icon"), row.getInt("colour"), + row.getString("layout"), + StringUtil.GSON.fromJson(row.getString("images"), new TypeToken>(){}.getType()), + StringUtil.GSON.fromJson(row.getString("texts"), new TypeToken>(){}.getType()), + row.getString("seasonal_start"), row.getInt("seasonal_length")); + + pages.add(page); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(row); + Storage.closeSilently(stmt); + Storage.closeSilently(conn); + } + + return pages; + } + + /** + * Get the catalogue items. + * + * @return the list of catalogue items + */ + public static List getItems() { + List pages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM catalogue_items ORDER BY order_id ASC", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + CatalogueItem item = new CatalogueItem(resultSet.getInt("id"), resultSet.getString("sale_code"), resultSet.getString("page_id"), + resultSet.getInt("order_id"), resultSet.getInt("price_coins"), resultSet.getInt("price_pixels"), + resultSet.getInt("seasonal_coins"), resultSet.getInt("seasonal_pixels"), resultSet.getInt("amount"), + resultSet.getBoolean("hidden"), resultSet.getInt("definition_id"), resultSet.getString("item_specialspriteid"), resultSet.getBoolean("is_package"), + resultSet.getString("active_at")); + + pages.add(item); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return pages; + } + + /** + * Get the catalogue packages. + * + * @return the list of catalogue packages + */ + public static List getPackages() { + List packages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM catalogue_packages", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + CataloguePackage cataloguePackage = new CataloguePackage(resultSet.getString("salecode"), resultSet.getInt("definition_id"), + resultSet.getString("special_sprite_id"), resultSet.getInt("amount")); + + packages.add(cataloguePackage); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return packages; + } + + /** + * Save catalogue item price. + */ + public static void setPrice(String saleCode, int price) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE catalogue_items SET price = ? WHERE sale_code = ?", sqlConnection); + preparedStatement.setInt(1, price); + preparedStatement.setString(2, saleCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ClubGiftDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ClubGiftDao.java new file mode 100644 index 0000000..9df9b79 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ClubGiftDao.java @@ -0,0 +1,91 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ClubGiftDao { + public static Pair getLastGift(int userId) { + Pair giftData = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_club_gifts WHERE user_id = ? ORDER BY date_received DESC LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + giftData = Pair.of(resultSet.getTime("date_received").getTime(), resultSet.getString("sprite")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return giftData; + } + + public static void incrementGiftData(long nextGiftDate) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET gifts_due = gifts_due + 1, club_gift_due = FROM_UNIXTIME(UNIX_TIMESTAMP() + " + nextGiftDate + ") WHERE CURRENT_TIMESTAMP() > club_gift_due;", sqlConnection); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void addGift(int userId, String sprite) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_club_gifts (user_id, sprite) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, sprite); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void clearGiftHistory(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_club_gifts WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CollectablesDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CollectablesDao.java new file mode 100644 index 0000000..f662c5b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CollectablesDao.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.catalogue.collectables.CollectableData; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class CollectablesDao { + public static List getCollectablesData() { + List collectableData = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM catalogue_collectables", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + collectableData.add(new CollectableData(resultSet.getInt("store_page"), resultSet.getInt("admin_page"), resultSet.getLong("expiry"), + resultSet.getLong("lifetime"), resultSet.getInt("current_position"), resultSet.getString("class_names").split(","))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return collectableData; + } + + public static void saveData(int storePage, int currentPosition, long expiry) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE catalogue_collectables SET expiry = ?, current_position = ? WHERE store_page = ?", sqlConnection); + preparedStatement.setLong(1, expiry); + preparedStatement.setInt(2, currentPosition); + preparedStatement.setInt(3, storePage); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CurrencyDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CurrencyDao.java new file mode 100644 index 0000000..5dffba4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/CurrencyDao.java @@ -0,0 +1,757 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.games.player.GameRank; +import org.alexdev.havana.game.player.PlayerDetails; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.HashMap; + +public class CurrencyDao { + + /** + * Atomically increase credits. + */ + public static void increaseCredits(Map playerMap) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + conn.setAutoCommit(false); + updateQuery = Storage.getStorage().prepare("UPDATE users SET credits = credits + ? WHERE id = ?", conn); + + // Batch increase update queries + for (var kvp : playerMap.entrySet()) { + PlayerDetails playerDetails = kvp.getKey(); + int increaseAmount = kvp.getValue(); + + updateQuery.setInt(1, increaseAmount); + updateQuery.setInt(2, playerDetails.getId()); + + updateQuery.addBatch(); + } + + updateQuery.executeBatch(); + + List playerIds = new ArrayList<>(); + + for (var player : playerMap.keySet()) { + playerIds.add(Integer.toString(player.getId())); + } + + String rawPlayerBind = String.join(",", playerIds); + + // Fetch increased amount + // TODO: find better way to write the IN clause + // TODO: use temporary table when playerIds list is above max arguments of SQL IN function or size above max_allowed_packet MariaDB configuration setting + fetchQuery = Storage.getStorage().prepare("SELECT id,credits FROM users WHERE id IN (" + rawPlayerBind + ")", conn); + row = fetchQuery.executeQuery(); + + conn.commit(); + + Map updatedAmounts = new HashMap<>(); + + while (row != null && row.next()) { + updatedAmounts.put(row.getInt("id"), row.getInt("credits")); + } + + for (var kvp : updatedAmounts.entrySet()) { + var userId = kvp.getKey(); + var amount = kvp.getValue(); + + for (var details : playerMap.keySet()) { + if (details.getId() != userId) { + continue; + } + + details.setCredits(amount); + } + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically increase credits. + */ + public static void increasePixels(Map playerMap) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + conn.setAutoCommit(false); + updateQuery = Storage.getStorage().prepare("UPDATE users SET pixels = pixels + ? WHERE id = ?", conn); + + // Batch increase update queries + for (var kvp : playerMap.entrySet()) { + PlayerDetails playerDetails = kvp.getKey(); + int increaseAmount = kvp.getValue(); + + updateQuery.setInt(1, increaseAmount); + updateQuery.setInt(2, playerDetails.getId()); + + updateQuery.addBatch(); + } + + updateQuery.executeBatch(); + + List playerIds = new ArrayList<>(); + + for (var player : playerMap.keySet()) { + playerIds.add(Integer.toString(player.getId())); + } + + String rawPlayerBind = String.join(",", playerIds); + + // Fetch increased amount + // TODO: find better way to write the IN clause + // TODO: use temporary table when playerIds list is above max arguments of SQL IN function or size above max_allowed_packet MariaDB configuration setting + fetchQuery = Storage.getStorage().prepare("SELECT id,pixels FROM users WHERE id IN (" + rawPlayerBind + ")", conn); + row = fetchQuery.executeQuery(); + + conn.commit(); + + Map updatedAmounts = new HashMap<>(); + + while (row != null && row.next()) { + updatedAmounts.put(row.getInt("id"), row.getInt("pixels")); + } + + for (var kvp : updatedAmounts.entrySet()) { + var userId = kvp.getKey(); + var amount = kvp.getValue(); + + for (var details : playerMap.keySet()) { + if (details.getId() != userId) { + continue; + } + + details.setPixels(amount); + } + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically increase credits. + * + * @param details the player details + */ + public static void increaseCredits(PlayerDetails details, int amount) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET credits = credits + ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT credits FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("credits"); + details.setCredits(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically decrease credits. + * + * @param details the player details + */ + public static void decreaseCredits(PlayerDetails details, int amount) { + if (details.getCredits() <= 0) { + amount = 0; + } + + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Decrease credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET credits = credits - ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT credits FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("credits"); + + if (updatedAmount < 0) { + updatedAmount = 0; + } + + details.setCredits(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically decrease credits. + * + * @param details the player details + */ + public static void decreasePixels(PlayerDetails details, int amount) { + if (details.getPixels() <= 0) { + amount = 0; + } + + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Decrease credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET pixels = pixels - ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT pixels FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("pixels"); + + if (updatedAmount < 0) { + updatedAmount = 0; + } + + details.setPixels(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically increase credits. + * + * @param details the player details + */ + public static void increasePixels(PlayerDetails details, int amount) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET pixels = pixels + ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT pixels FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("pixels"); + details.setPixels(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically increase tickets. + * + * @param details the player details + */ + public static void increaseTickets(PlayerDetails details, int amount) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET tickets = tickets + ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT tickets FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("tickets"); + details.setTickets(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically decrease tickets. + * + * @param details the player details + */ + public static void decreaseTickets(PlayerDetails details, int amount) { + if (details.getTickets() <= 0) { + amount = 0; + } + + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Decrease credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET tickets = tickets - ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT tickets FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("tickets"); + + if (updatedAmount < 0) { + updatedAmount = 0; + } + + details.setTickets(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + if (conn != null) + conn.rollback(); + } catch (SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + if (conn != null) + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically increase tickets. + * + * @param details the player details + */ + public static void increaseFilm(PlayerDetails details, int amount) { + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET film = film + ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT film FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("film"); + details.setFilm(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + if (conn != null) + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + if (conn != null) + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + /** + * Atomically decrease film. + * + * @param details the player details + */ + public static void decreaseFilm(PlayerDetails details, int amount) { + if (details.getFilm() <= 0) { + amount = 0; + } + + Connection conn = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET film = film - ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, details.getId()); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT film FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, details.getId()); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + int updatedAmount = row.getInt("film"); + + if (updatedAmount < 0) { + updatedAmount = 0; + } + + details.setFilm(updatedAmount); + } + + } catch (Exception e) { + try { + // Rollback these queries + if (conn != null) + conn.rollback(); + } catch (SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + if (conn != null) + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + } + + public static int getCredits(int userId) { + int credits = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT credits FROM users WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + credits = resultSet.getInt("credits"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return credits; + } + + + public static void updateEligibleCredits(int userId, boolean isCreditsEarnable) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET daily_coins_enabled = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, isCreditsEarnable ? 1 : 0); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EffectDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EffectDao.java new file mode 100644 index 0000000..8d9d4ca --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EffectDao.java @@ -0,0 +1,158 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; + +public class EffectDao { + public static Map getEffectTimes() { + Map effectTimes = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM settings_effects", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + effectTimes.put(resultSet.getInt("effect_id"), resultSet.getInt("duration_seconds")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return effectTimes; + } + + public static CopyOnWriteArrayList getEffects(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + CopyOnWriteArrayList effects = new CopyOnWriteArrayList<>(); + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_effects WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + effects.add(new Effect(resultSet.getInt("id"), resultSet.getInt("user_id"), resultSet.getInt("effect_id"), + resultSet.getLong("expiry_date"), resultSet.getBoolean("activated"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return effects; + } + + public static void removeEffects(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_effects WHERE user_id = ? AND expiry_date < ? AND activated = 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Effect newEffect(int userId, int effectId, long expiryDate, boolean activated) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + Effect effect = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_effects (user_id, effect_id, expiry_date, activated) VALUES (?,?,?,?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, effectId); + preparedStatement.setLong(3, expiryDate); + preparedStatement.setBoolean(4, activated); + preparedStatement.executeUpdate(); + + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + effect = new Effect(resultSet.getInt("id"), userId, effectId, expiryDate, activated); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return effect; + } + + public static void saveEffect(Effect effect) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_effects SET activated = ?, expiry_date = ? WHERE id = ?", sqlConnection); + preparedStatement.setBoolean(1, effect.isActivated()); + preparedStatement.setLong(2, effect.getExpireDate()); + preparedStatement.setInt(3, effect.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + } + + public static void deleteEffect(int id) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_effects WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EventsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EventsDao.java new file mode 100644 index 0000000..4116222 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/EventsDao.java @@ -0,0 +1,137 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class EventsDao { + public static void addEvent(int roomId, int userId, int categoryId, String name, String description, long expireTime, String tags) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_events (room_id, user_id, category_id, name, description, expire_time, tags) VALUES (?, ?, ?, ?, ?, ?, ?)", sqlConnection); + + preparedStatement.setInt(1, roomId); + preparedStatement.setInt(2, userId); + preparedStatement.setInt(3, categoryId); + preparedStatement.setString(4, name); + preparedStatement.setString(5, description); + preparedStatement.setLong(6, expireTime); + preparedStatement.setString(7, tags); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeEvent(Event event) { + removeEvents(List.of(event)); + } + + + public static void removeEvents(List eventList) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_events WHERE room_id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Event event : eventList) { + preparedStatement.setInt(1, event.getRoomId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeExpiredEvents() { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_events WHERE expire_time < ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getEvents() { + List eventMap = new CopyOnWriteArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms_events WHERE expire_time > ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + //Event(int roomId, int userId, int categoryId, String name, String description, long started) + while (resultSet.next()) { + eventMap.add(new Event( + resultSet.getInt("room_id"), resultSet.getInt("user_id"), + resultSet.getInt("category_id"), resultSet.getString("name"), + resultSet.getString("description"), resultSet.getLong("expire_time"), + resultSet.getString("tags"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return eventMap; + } + + public static void save(Event event) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms_events SET category_id = ?, name = ?, description = ?, tags = ? WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, event.getCategoryId()); + preparedStatement.setString(2, event.getName()); + preparedStatement.setString(3, event.getDescription()); + preparedStatement.setString(4, String.join(",", event.getTags())); + preparedStatement.setInt(5, event.getRoomId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GameDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GameDao.java new file mode 100644 index 0000000..255fb7f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GameDao.java @@ -0,0 +1,281 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.games.GameSpawn; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.battleball.BattleBallMap; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.history.GameHistoryData; +import org.alexdev.havana.game.games.player.GameRank; +import org.alexdev.havana.game.room.models.RoomModel; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.*; + +public class GameDao { + public static List getRanks() { + List ranks = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM games_ranks", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ranks.add(new GameRank(resultSet.getInt("id"), resultSet.getString("type"), + resultSet.getString("title"), resultSet.getInt("min_points"), + resultSet.getInt("max_points"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return ranks; + } + + public static List getGameMaps() { + List maps = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM games_maps", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String modelName = "bb" + "_arena_" + resultSet.getInt("map_id"); + + if (!resultSet.getString("game_type").equals("battleball")) { + modelName = "ss_arena_" + resultSet.getInt("map_id"); + } + + maps.add(new RoomModel(modelName, modelName, Integer.MAX_VALUE, Integer.MAX_VALUE, Double.MAX_VALUE, 0, resultSet.getString("heightmap"), null)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + + return maps; + } + + public static List getBattleballTileMaps() { + List maps = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM games_maps WHERE game_type = 'battleball'", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + maps.add(new BattleBallMap(resultSet.getInt("map_id"), GameType.BATTLEBALL, resultSet.getString("tile_map"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + + return maps; + } + + public static List getGameSpawns() { + List spawns = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM games_player_spawns", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + spawns.add(new GameSpawn(resultSet.getInt("team_id"), resultSet.getInt("map_id"), resultSet.getString("type"), + resultSet.getInt("x"), resultSet.getInt("y"), resultSet.getInt("rotation"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + + return spawns; + } + + /*public static List getTopTeams() { + List teams = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM games_played_history ORDER BY team_points DESC LIMIT 3", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String json = resultSet.getString("player_scores"); + + try { + GameHistoryData gamePlayedHistory = Havana.getGson().fromJson(json, GameHistoryData.class); + teams.add(new GameHistory(resultSet.getInt("team_type"), gamePlayedHistory)); + } catch (Exception ex) { + + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + + return teams; + } + + public static HashMap getTopPlayers() { + LinkedHashMap players = new LinkedHashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT *,(battleball_points + snowstorm_points) AS game_points FROM users INNER JOIN users_statistics ON users_statistics.user_id = users.id ORDER BY (battleball_points + snowstorm_points) DESC LIMIT 5", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + players.put(resultSet.getString("username"), resultSet.getInt("game_points")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return players; + }*/ + + + public static void resetMonthlyXp() { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET battleball_score_month = 0, snowstorm_score_month = 0, wobble_squabble_score_month = 0, xp_earned_month = 0 " + + "WHERE (battleball_score_month > 0) OR (snowstorm_score_month > 0) OR (wobble_squabble_score_month > 0) OR (xp_earned_month > 0)", sqlConnection); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveTeamHistory(String uniqueId, String gameName, int mapCreator, int mapId, int winningTeam, int winningTeamScore, String extraData, GameType gameType, String gameHistoryData) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO games_played_history (id, game_name, game_creator, game_type, map_id, winning_team, winning_team_score, extra_data, team_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setString(1, uniqueId); + preparedStatement.setString(2, gameName); + preparedStatement.setInt(3, mapCreator); + preparedStatement.setString(4, gameType.name()); + preparedStatement.setInt(5, mapId); + preparedStatement.setInt(6, winningTeam); + preparedStatement.setInt(7, winningTeamScore); + preparedStatement.setString(8, extraData); + preparedStatement.setString(9, gameHistoryData); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getLastPlayedGames(GameType gameType) { + List games = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT games_played_history.*, users.username AS game_creator_name FROM games_played_history INNER JOIN users ON users.id = games_played_history.game_creator WHERE game_type = ? ORDER BY played_at DESC LIMIT 15", sqlConnection); + preparedStatement.setString(1, gameType.name()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + var gameHistory = new GameHistory(Havana.getGson().fromJson(resultSet.getString("team_data"), GameHistoryData.class)); + + gameHistory.setName(resultSet.getString("game_name")); + gameHistory.setGameCreator(resultSet.getString("game_creator_name")); + gameHistory.setMapId(resultSet.getInt("map_id")); + gameHistory.setGameType(GameType.valueOf(resultSet.getString("game_type"))); + gameHistory.setWinningTeam(resultSet.getInt("winning_team")); + gameHistory.setWinningTeamScore(resultSet.getInt("winning_team_score")); + gameHistory.setExtraData(resultSet.getString("extra_data")); + + games.add(gameHistory); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return games; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupDao.java new file mode 100644 index 0000000..f7446ff --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupDao.java @@ -0,0 +1,437 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.sql.*; +import java.util.*; +import java.util.stream.Collectors; + +public class GroupDao { + public static Group getGroup(int groupId) { + Group group = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_details WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + group = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return group; + } + + public static Group getGroupByAlias(String groupAlias) { + Group group = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_details WHERE alias = ?", sqlConnection); + preparedStatement.setString(1, groupAlias); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + group = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return group; + } + + public static List getGroups(int userId) { + List groupList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_details WHERE owner_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + groupList.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return groupList; + } + + public static List getJoinedGroups(int userId) { + List groupList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "groups_details.* " + + "FROM groups_memberships " + + "RIGHT JOIN " + + "groups_details ON groups_memberships.group_id = groups_details.id " + + "WHERE owner_id = ? " + + "OR (groups_memberships.user_id = ? AND groups_memberships.is_pending = 0)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int groupId = resultSet.getInt("id"); + + if (groupList.stream().noneMatch(group -> group.getId() == groupId)) { + groupList.add(fill(resultSet)); + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return groupList.stream() + .sorted(Comparator.comparingInt((Group group) -> group.getMemberCount(false)).reversed()) + .collect(Collectors.toList()); + } + + public static int addGroup(String name, String description, int ownerId) { + int groupId = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO groups_details (name, description, owner_id) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setString(1, name); + preparedStatement.setString(2, description); + preparedStatement.setInt(3, ownerId); + preparedStatement.executeQuery(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + groupId = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + + return groupId; + } + + public static int saveGroup(Group group) { + int groupId = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE groups_details SET name = ?, description = ?, room_id = ?, badge = ?, recommended = ?, group_type = ?, forum_type = ?, forum_premission = ?, alias = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, group.getName()); + preparedStatement.setString(2, group.getDescription()); + preparedStatement.setInt(3, group.getRoomId()); + preparedStatement.setString(4, group.getBadge()); + preparedStatement.setInt(5, group.isRecommended() ? 1 : 0); + preparedStatement.setInt(6, group.getGroupType()); + preparedStatement.setInt(7, group.getForumType().getId()); + preparedStatement.setInt(8, group.getForumPermission().getId()); + + if (group.getAlias() == null || group.getAlias().isBlank()) { + preparedStatement.setNull(9, Types.VARCHAR); + } + else { + preparedStatement.setString(9, group.getAlias()); + } + + preparedStatement.setInt(10, group.getId()); + preparedStatement.executeQuery(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + groupId = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + + return groupId; + } + + public static void saveBackground(Group group) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE groups_details SET background = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, group.getBackground()); + preparedStatement.setInt(2, group.getId()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static List querySearch(String query) { + List groups = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_details WHERE name LIKE ? LIMIT 30", sqlConnection); + preparedStatement.setString(1, "%" + query + "%"); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + groups.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return groups; + } + + public static void saveBadge(Group group) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE groups_details SET badge = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, group.getBadge()); + preparedStatement.setInt(2, group.getId()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static String getGroupBadge(int groupId) { + String group = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT badge FROM groups_details WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + group = resultSet.getString("badge"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return group; + } + + public static void delete(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM groups_details WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasGroupByAlias(String url) { + boolean group = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_details WHERE alias = ?", sqlConnection); + preparedStatement.setString(1, url); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + group = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return group; + } + + public static void deleteHomeRoom(int roomId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE groups_details SET room_id = 0 WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static int getGroupOwner(int groupId) { + int ownerId = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT owner_id FROM groups_details WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + ownerId = resultSet.getInt("owner_id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return ownerId; + } + + public static String getGroupName(int groupId) { + String groupName = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT name FROM groups_details WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + groupName = resultSet.getString("name"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return groupName; + } + + public static Group fill(ResultSet resultSet) throws SQLException { + return new Group(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getString("description"), resultSet.getInt("owner_id"), + resultSet.getInt("room_id"), resultSet.getString("badge"), resultSet.getBoolean("recommended"), resultSet.getString("background"), resultSet.getInt("views"), + resultSet.getInt("topics"), resultSet.getInt("group_type"), resultSet.getInt("forum_type"), resultSet.getInt("forum_premission"), + resultSet.getString("alias"), resultSet.getTime("created_at").getTime() / 1000L); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupMemberDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupMemberDao.java new file mode 100644 index 0000000..8c2744a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GroupMemberDao.java @@ -0,0 +1,338 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.player.PlayerDetails; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GroupMemberDao { + /*public static List getMembers(int groupId, boolean checkPending) { + List members = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_memberships WHERE group_id = ? AND is_pending = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, checkPending ? 1 : 0); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + members.add(fill(resultSet));//.getInt("user_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return members; + }*/ + + public static List getMembers(int groupId, boolean checkPending, String query, int page, int itemsPerPage) { + List members = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + if (!query.isBlank()) { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_memberships INNER JOIN users ON groups_memberships.user_id = users.id WHERE group_id = ? AND is_pending = ? AND username LIKE ? LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, checkPending ? 1 : 0); + preparedStatement.setString(3, query + "%"); + } else { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_memberships INNER JOIN users ON groups_memberships.user_id = users.id WHERE group_id = ? AND is_pending = ? LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, checkPending ? 1 : 0); + } + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + members.add(fill(resultSet));//.getInt("user_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return members; + } + + + public static GroupMember getMember(int groupId, int userId) { + GroupMember member = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_memberships WHERE group_id = ? AND user_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + member = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return member; + } + + public static void addMember(int userId, int groupId, boolean insertPending) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO groups_memberships (user_id, group_id, is_pending) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.setLong(3, insertPending ? 1 : 0); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateMember(int userId, int groupId, GroupMemberRank memberRank, boolean pendingStatus) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE groups_memberships SET is_pending = ?, member_rank = ? WHERE user_id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, pendingStatus ? 1 : 0); + preparedStatement.setString(2, String.valueOf(memberRank.getRankId())); + preparedStatement.setInt(3, userId); + preparedStatement.setInt(4, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteMember(int userId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM groups_memberships WHERE user_id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Pair> getPendingMembers(int userId) { + var groupData = new HashMap(); + var groups = new HashMap(); + int pendingMembers = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "groups_details.id AS group_id, " + + "groups_details.name AS group_name " + + "FROM groups_memberships " + + "RIGHT JOIN " + + "groups_details ON groups_memberships.group_id = groups_details.id " + + "WHERE owner_id = ? " + + "OR (groups_memberships.user_id = ? AND (groups_memberships.member_rank = '2' OR groups_memberships.member_rank = '3'))", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int groupId = resultSet.getInt("group_id"); + String groupName = resultSet.getString("group_name"); + groupData.put(String.valueOf(groupId), groupName); + } + + if (groupData.size() > 0) { + preparedStatement = Storage.getStorage().prepare("SELECT " + + "user_id, group_id " + + "FROM groups_memberships " + + "WHERE group_id IN (" + String.join(",", groupData.keySet()) + ") " + + "AND is_pending = 1 GROUP BY group_id", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int groupId = resultSet.getInt("group_id"); + + if (!groups.containsKey(String.valueOf(groupId))) { + groups.put(String.valueOf(groupId), groupData.get(String.valueOf(groupId))); + } + + pendingMembers++; + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return Pair.of(pendingMembers, groups); + } + + public static int countMembers(int groupId, boolean isPending) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS member_count FROM groups_memberships WHERE group_id = ? AND is_pending = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, isPending ? 1 : 0); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("member_count"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static List getOnlineMembersByFavourite(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + List detailsList = new ArrayList(); + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE favourite_group = ? AND is_online = 1 LIMIT 1", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + PlayerDetails details = new PlayerDetails(); + PlayerDao.fill(details, resultSet); + + detailsList.add(details); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return detailsList; + } + + public static void resetFavourites(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET favourite_group = 0 WHERE favourite_group = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void deleteMembers(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM groups_memberships WHERE group_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + private static GroupMember fill(ResultSet resultSet) throws SQLException { + return new GroupMember(resultSet.getInt("user_id"), resultSet.getInt("group_id"), resultSet.getBoolean("is_pending"), Integer.parseInt(resultSet.getString("member_rank"))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GuideDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GuideDao.java new file mode 100644 index 0000000..93c6ec3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/GuideDao.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.player.guides.GuidingData; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class GuideDao { + public static List getGuidedBy(int userId) { + List users = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id, username, last_online, online_time FROM users_statistics INNER JOIN users ON users.id = users_statistics.user_id WHERE guided_by = " + userId, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + users.add(new GuidingData(resultSet.getInt("id"), resultSet.getString("username"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getLong("online_time"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return users; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/HighscoreDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/HighscoreDao.java new file mode 100644 index 0000000..be4d895 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/HighscoreDao.java @@ -0,0 +1,119 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.history.ScoreEntry; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class HighscoreDao { + public static List getScores(int limit, GameType gameType, int page, boolean viewMontly) { + List scoreEntryList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + StringBuilder query = new StringBuilder(); + query.append("SELECT users.username AS username,users_statistics.* FROM users_statistics INNER JOIN users ON users.id = users_statistics.user_id "); + + if (viewMontly) { + if (gameType == GameType.BATTLEBALL) { + query.append("WHERE battleball_score_month > 0 "); + } + + if (gameType == GameType.SNOWSTORM) { + query.append("WHERE snowstorm_score_month > 0 "); + } + + if (gameType == GameType.WOBBLE_SQUABBLE) { + query.append("WHERE wobble_squabble_score_month > 0 "); + } + } else { + if (gameType == GameType.BATTLEBALL) { + query.append("WHERE battleball_score_all_time > 0 "); + } + + if (gameType == GameType.SNOWSTORM) { + query.append("WHERE snowstorm_score_all_time > 0 "); + } + + if (gameType == GameType.WOBBLE_SQUABBLE) { + query.append("WHERE wobble_squabble_score_all_time > 0 "); + } + } + + query.append("AND ((SELECT COUNT(*) FROM users_bans WHERE banned_value = users.id AND ban_type = 'USER_ID' AND NOW() > banned_until AND is_active = 1) = 0) "); + query.append("ORDER BY "); + + if (viewMontly) { + if (gameType == GameType.BATTLEBALL) { + query.append("battleball_score_month DESC "); + } + + if (gameType == GameType.SNOWSTORM) { + query.append("snowstorm_score_month DESC "); + } + + if (gameType == GameType.WOBBLE_SQUABBLE) { + query.append("wobble_squabble_score_month DESC "); + } + } else { + if (gameType == GameType.BATTLEBALL) { + query.append("battleball_score_all_time DESC "); + } + + if (gameType == GameType.SNOWSTORM) { + query.append("snowstorm_score_all_time DESC "); + } + + if (gameType == GameType.WOBBLE_SQUABBLE) { + query.append("wobble_squabble_score_all_time DESC "); + } + } + + query.append( "LIMIT " + ((page - 1) * limit) + "," + limit); + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare(query.toString(), sqlConnection); + resultSet = preparedStatement.executeQuery(); + + int position = ((page - 1) * limit) + 1; + + while (resultSet.next()) { + if (viewMontly) { + if (gameType == GameType.BATTLEBALL) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("battleball_score_month"), position)); + } else if (gameType == GameType.SNOWSTORM) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("snowstorm_score_month"), position)); + } else if (gameType == GameType.WOBBLE_SQUABBLE) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("wobble_squabble_score_month"), position)); + } + } else { + if (gameType == GameType.BATTLEBALL) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("battleball_score_all_time"), position)); + } else if (gameType == GameType.SNOWSTORM) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("snowstorm_score_all_time"), position)); + } else if (gameType == GameType.WOBBLE_SQUABBLE) { + scoreEntryList.add(new ScoreEntry(resultSet.getString("username"), resultSet.getLong("wobble_squabble_score_all_time"), position)); + } + } + position++; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return scoreEntryList; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/InfobusDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/InfobusDao.java new file mode 100644 index 0000000..abe5667 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/InfobusDao.java @@ -0,0 +1,237 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.infobus.InfobusPoll; +import org.alexdev.havana.game.infobus.InfobusPollData; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class InfobusDao { + public static List getInfobusPolls() { + List polls = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM infobus_polls ORDER BY created_at DESC", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + polls.add(fill(resultSet)); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return polls; + } + + public static int createInfobusPoll(int initiatedBy, InfobusPollData pollData) { + int pollId = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO infobus_polls (initiated_by, poll_data) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, initiatedBy); + preparedStatement.setString(2, Havana.getGson().toJson(pollData)); + preparedStatement.execute(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + pollId = resultSet.getInt(1); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + + return pollId; + } + + public static void delete(int id) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM infobus_polls WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static InfobusPoll get(int id) { + InfobusPoll infobusPoll = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM infobus_polls WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + infobusPoll = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return infobusPoll; + } + + public static void saveInfobusPoll(int id, InfobusPollData pollData) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE infobus_polls SET poll_data = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, Havana.getGson().toJson(pollData)); + preparedStatement.setInt(2, id); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void addAnswer(int pollId, int answer, int userId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO infobus_polls_answers (user_id, poll_id, answer) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, pollId); + preparedStatement.setInt(3, answer); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasAnswer(int pollId, int userId) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM infobus_polls_answers WHERE user_id = ? AND poll_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, pollId); + resultSet = preparedStatement.executeQuery(); + exists = resultSet.next(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static Map getAnswers(int pollId) { + Map answers = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS votes, answer FROM infobus_polls_answers WHERE poll_id = ? GROUP BY answer", sqlConnection); + preparedStatement.setInt(1, pollId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + answers.put(resultSet.getInt("answer"), resultSet.getInt("votes")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return answers; + } + + public static void clearAnswers(int pollId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM infobus_polls_answers WHERE poll_id = ?", sqlConnection); + preparedStatement.setInt(1, pollId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + private static InfobusPoll fill(ResultSet resultSet) throws SQLException { + return new InfobusPoll(resultSet.getInt("id"), resultSet.getInt("initiated_by"), + Havana.getGson().fromJson(resultSet.getString("poll_data"), InfobusPollData.class), + resultSet.getTime("created_at").getTime() / 1000L); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java new file mode 100644 index 0000000..3cc7851 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ItemDao.java @@ -0,0 +1,655 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.ecotron.EcotronItem; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.room.RoomData; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; + +public class ItemDao { + + /** + * Get the item definitions. + * + * @return the list of item definitions + */ + public static Map getItemDefinitions() { + Map definitions = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items_definitions", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ItemDefinition definition = new ItemDefinition(resultSet.getInt("id"), resultSet.getString("sprite"), + resultSet.getString("name"), resultSet.getString("description"), + resultSet.getInt("sprite_id"), resultSet.getString("behaviour"), resultSet.getDouble("top_height"), + resultSet.getInt("length"), resultSet.getInt("width"), resultSet.getInt("max_status"), + resultSet.getString("interactor"), resultSet.getBoolean("is_tradable"), + resultSet.getBoolean("is_recyclable"), resultSet.getString("drink_ids"), resultSet.getInt("rental_time"), + resultSet.getString("allowed_rotations"), resultSet.getString("heights")); + + definitions.put(definition.getId(), definition); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return definitions; + } + + public static Map getItemVersions() { + Map definitions = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM furniture_versions", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + definitions.put(resultSet.getString("asset_name"), resultSet.getInt("version_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return definitions; + } + + public static List getEcotronItems() { + List itemList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM recycler_rewards ORDER BY order_id ASC", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + EcotronItem ecotronItem = new EcotronItem(resultSet.getString("sprite"), resultSet.getInt("chance"), resultSet.getInt("chance")); + itemList.add(ecotronItem); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return itemList; + } + + /** + * Create new item entry with the definition id, user id and custom data. It will + * override the current item id with its database id. + * + * @param item the item to create + */ + public static void newItem(Item item) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet row = null; + + long itemId = 0; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO items (user_id, definition_id, custom_data, expire_time) VALUES (?,?,?,?)", sqlConnection); + preparedStatement.setInt(1, item.getOwnerId()); + preparedStatement.setInt(2, item.getDefinition().getId()); + preparedStatement.setString(3, item.getCustomData()); + preparedStatement.setLong(4, item.getExpireTime()); + preparedStatement.executeUpdate(); + + row = preparedStatement.getGeneratedKeys(); + + if (row != null && row.next()) { + itemId = row.getLong(1); + } + + } catch (SQLException e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(row); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + item.setDatabaseId(itemId); + item.assignVirtualId(); + } + + /** + * Get the inventory list of items. + * + * @param userId the id of the user to get the inventory for + * @return the list of items + */ + public static List getInventory(int userId) { + List items = new CopyOnWriteArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items WHERE user_id = ? AND room_id = 0 ORDER BY order_id ASC", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Item item = new Item(); + fill(item, resultSet); + items.add(item); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return items; + } + + /** + * Get the item by item id + * + * @param itemId the id of the item to to get + * @return the item + */ + public static Item getItem(long itemId) { + Item item = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM vw_items WHERE id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + item = new Item(); + fill(item, resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return item; + } + + /** + * Get the room list of items. + * + * @return the list of items + */ + public static List getRoomItems(RoomData roomData) { + List items = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, roomData.getId()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Item item = new Item(); + item.assignVirtualId(); + fill(item, resultSet); + items.add(item); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return items; + } + + /** + * Get expired items + * + * @return the list of expired items + */ + public static List getExpiredItems() { + List items = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items WHERE expire_time <> -1 AND expire_time < ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Item item = new Item(); + item.assignVirtualId(); + fill(item, resultSet); + items.add(item); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return items; + } + + + /** + * Redeem credit furniture atomicly + * + * @param amount credit amount to increase by + * @param userID user ID + */ + public static int redeemCreditItem(int amount, long itemID, int userID) { + int updatedAmount = -1; + Connection conn = null; + PreparedStatement deleteQuery = null; + PreparedStatement updateQuery = null; + PreparedStatement fetchQuery = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + + // We disable autocommit to make sure the following queries share the same atomic transaction + conn.setAutoCommit(false); + + deleteQuery = Storage.getStorage().prepare("DELETE FROM items WHERE id = ?", conn); + deleteQuery.setLong(1, itemID); + deleteQuery.execute(); + + // Increase credits + updateQuery = Storage.getStorage().prepare("UPDATE users SET credits = credits + ? WHERE id = ?", conn); + updateQuery.setInt(1, amount); + updateQuery.setInt(2, userID); + updateQuery.execute(); + + // Fetch increased amount + fetchQuery = Storage.getStorage().prepare("SELECT credits FROM users WHERE id = ?", conn); + fetchQuery.setInt(1, userID); + row = fetchQuery.executeQuery(); + + // Commit these queries + conn.commit(); + + // Set amount + if (row != null && row.next()) { + updatedAmount = row.getInt("credits"); + } + + } catch (Exception e) { + // Reset amount + updatedAmount = -1; + + try { + // Rollback these queries + conn.rollback(); + } catch(SQLException re) { + Storage.logError(re); + } + + Storage.logError(e); + } finally { + try { + conn.setAutoCommit(true); + } catch (SQLException ce) { + Storage.logError(ce); + } + + Storage.closeSilently(row); + Storage.closeSilently(deleteQuery); + Storage.closeSilently(updateQuery); + Storage.closeSilently(fetchQuery); + Storage.closeSilently(conn); + } + + return updatedAmount; + } + + /** + * Update item by item instance. + * + * @param item the instance of the item to update it + */ + public static void updateItem(Item item) { + updateItems(List.of(item)); + } + + /** + * Update an entire list of items at once. + * + * @param items the list of items + */ + public static void updateItems(Collection items) { + if (items.size() > 0) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items SET room_id = ?, definition_id = ?, x = ?, y = ?, z = ?, rotation = ?, wall_position = ?, custom_data = ?, order_id = ?, is_hidden = ? WHERE id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Item item : items) { + preparedStatement.setInt(1, item.getRoomId()); + preparedStatement.setInt(2, item.getDefinition().getId()); + preparedStatement.setInt(3, item.getPosition().getX()); + preparedStatement.setInt(4, item.getPosition().getY()); + preparedStatement.setDouble(5, item.getPosition().getZ()); + preparedStatement.setInt(6, item.getPosition().getRotation()); + preparedStatement.setString(7, item.getWallPosition()); + preparedStatement.setString(8, item.getCustomData()); + preparedStatement.setInt(9, item.getOrderId()); + preparedStatement.setInt(10, item.isHidden() ? 1 : 0); + preparedStatement.setLong(11, item.getDatabaseId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + } + + /** + * Update item by item instance. + * + * @param item the instance of the item to update it + */ + public static void updateItemOwnership(Item item) { + updateItemOwnership(List.of(item)); + } + + /** + * Update an entire list of items at once. + * + * @param items the list of items + */ + public static void updateItemOwnership(Collection items) { + if (items.size() > 0) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items SET room_id = ?, user_id = ? WHERE id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Item item : items) { + preparedStatement.setInt(1, item.getRoomId()); + preparedStatement.setInt(2, item.getOwnerId()); + preparedStatement.setLong(3, item.getDatabaseId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + } + + /** + * Update item by item instance. + * + * @param item the instance of the item to update it + */ + public static void updateTradeState(Item item, boolean inTrade) { + updateTradeStates(List.of(item), inTrade); + } + + /** + * Update an entire list of items at once. + * + * @param items the list of items + */ + public static void updateTradeStates(Collection items, boolean inTrade) { + if (items.size() > 0) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items SET is_trading = ? WHERE id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Item item : items) { + item.setInTrade(inTrade); + + preparedStatement.setBoolean(1, item.isInTrade()); + preparedStatement.setLong(2, item.getDatabaseId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + } + + public static void deleteItems(List items) { + if (items.size() > 0) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM items WHERE id = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (Long itemId : items) { + preparedStatement.setLong(1, itemId); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + } + + + public static void saveTotemExpire(int userId, long totemExpiration) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET totem_effect_expiry = ? WHERE id = ?", sqlConnection); + preparedStatement.setLong(1, totemExpiration); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveTradeBanExpire(int userId, long tradeBanExpiration) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET trade_ban_expiration = ? WHERE id = ?", sqlConnection); + preparedStatement.setLong(1, tradeBanExpiration); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void deleteHandItems(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE items WHERE is_hidden = 0 AND is_trading = 0 AND room_id = 0 AND user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + /** + * Get the room list of items. + * + * @return the list of items + */ + public static List getUserItemsByDefinition(int userId, ItemDefinition definition) { + List items = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items WHERE user_id = ? AND definition_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, definition.getId()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Item item = new Item(); + item.assignVirtualId(); + fill(item, resultSet); + items.add(item); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return items; + } + + public static void resetTradeStates() { + try { + Storage.getStorage().execute("UPDATE items SET is_trading = 0 WHERE is_trading > 0"); + } catch (SQLException e) { + Storage.logError(e); + } + } + + /** + * Fill item with data retrieved from the SQL query. + * + * @param item the item to fill data for + * @param resultSet the result set returned with the data + * @throws SQLException an exception if an error happened + */ + public static void fill(Item item, ResultSet resultSet) throws SQLException { + item.fill(resultSet.getLong("id"), resultSet.getInt("order_id"), resultSet.getInt("user_id"), resultSet.getInt("room_id"), + resultSet.getInt("definition_id"), resultSet.getInt("x"), resultSet.getInt("y"), + resultSet.getDouble("z"), resultSet.getInt("rotation"), resultSet.getString("wall_position"), + resultSet.getString("custom_data"), resultSet.getBoolean("is_hidden"), resultSet.getBoolean("is_trading"), + resultSet.getLong("expire_time"), resultSet.getTime("created_at").getTime() / 1000L); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/JukeboxDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/JukeboxDao.java new file mode 100644 index 0000000..86ee747 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/JukeboxDao.java @@ -0,0 +1,163 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.song.jukebox.BurnedDisk; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class JukeboxDao { + public static void addDisk(long itemId, int slotId, int songId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO soundmachine_disks (item_id, slot_id, song_id, burned_at) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.setInt(2, slotId); + preparedStatement.setInt(3, songId); + preparedStatement.setLong(4, DateUtil.getCurrentTimeSeconds()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void editDisk(long itemId, long songMachineId, int slotId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE soundmachine_disks SET soundmachine_id = ?, slot_id = ? WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, songMachineId); + preparedStatement.setInt(2, slotId); + preparedStatement.setLong(3, itemId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getDisks(long soundmachineId) { + List disks = new ArrayList(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_disks WHERE soundmachine_id = ?", sqlConnection); + preparedStatement.setLong(1, soundmachineId); + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + disks.add(new BurnedDisk(resultSet.getLong("item_id"), resultSet.getInt("soundmachine_id"), resultSet.getInt("slot_id"), + resultSet.getInt("song_id"), resultSet.getLong("burned_at"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return disks; + } + + public static BurnedDisk getDisk(long soundmachineId, int songId) { + BurnedDisk disk = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_disks WHERE slot_id = ? AND soundmachine_id = ?", sqlConnection); + preparedStatement.setInt(1, songId); + preparedStatement.setLong(2, soundmachineId); + + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + disk = new BurnedDisk(resultSet.getLong("item_id"), resultSet.getInt("soundmachine_id"), resultSet.getInt("slot_id"), + resultSet.getInt("song_id"), resultSet.getLong("burned_at")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return disk; + } + + public static int getSongIdByItem(long itemId) { + int songId = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_disks WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + songId = resultSet.getInt("song_id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return songId; + } + + public static void setBurned(int songId, boolean burnedState) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE soundmachine_songs SET burnt = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, burnedState ? 1 : 0); + preparedStatement.setInt(2, songId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/LogDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/LogDao.java new file mode 100644 index 0000000..99a2757 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/LogDao.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +public class LogDao { + // DELETE FROM users_ip_logs WHERE UNIX_TIMESTAMP(created_at) < (UNIX_TIMESTAMP() - 10); + // DELETE FROM users_ip_logs WHERE UNIX_TIMESTAMP(created_at) < (UNIX_TIMESTAMP() - 10); + + // Delete rows more than 1 month old + // DELETE FROM users_transactions WHERE UNIX_TIMESTAMP(created_at) < (UNIX_TIMESTAMP() - 2678400) + + public static void deleteTradeLogs(int interval) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_transactions WHERE UNIX_TIMESTAMP(created_at) < (UNIX_TIMESTAMP() - ?)", sqlConnection); + preparedStatement.setInt(1, interval); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteIpAddressLogs(int interval) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_ip_logs WHERE UNIX_TIMESTAMP(created_at) < (UNIX_TIMESTAMP() - ?)", sqlConnection); + preparedStatement.setInt(1, interval); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteChatLogs(int interval) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM room_chatlogs WHERE timestamp < (UNIX_TIMESTAMP() - ?)", sqlConnection); + preparedStatement.setInt(1, interval); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MessengerDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MessengerDao.java new file mode 100644 index 0000000..6f5a297 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MessengerDao.java @@ -0,0 +1,624 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.messenger.MessengerCategory; +import org.alexdev.havana.game.messenger.MessengerMessage; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MessengerDao { + + /** + * Gets the friends. + * + * @param userId the user id + * @return the friends + */ + public static Map getFriends(int userId) { + Map friends = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id,username,figure,motto,last_online,sex,allow_stalking,is_online,category_id,online_status_visible FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int resultUserId = resultSet.getInt("id"); + friends.put(resultUserId, new MessengerUser(resultUserId, resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), resultSet.getInt("category_id"), + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } + + public static Map getFriendsPage(int userId, int range, int pageSize) { + Map friends = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id,username,figure,motto,last_online,sex,allow_stalking,is_online,category_id,online_status_visible FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ? LIMIT " + (range * pageSize) + "," + ((range * pageSize) + pageSize), sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int resultUserId = resultSet.getInt("id"); + friends.put(resultUserId, new MessengerUser(resultUserId, resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), resultSet.getInt("category_id"), + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } + + public static int getFriendsCount(int userId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + /** + * Gets the requests. + * + * @param userId the user id + * @return the requests + */ + public static Map getRequests(int userId) { + Map users = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT from_id,username,figure,sex,motto,last_online,allow_stalking,is_online,online_status_visible FROM messenger_requests INNER JOIN users ON messenger_requests.from_id = users.id WHERE to_id = " + userId, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int fromId = resultSet.getInt("from_id"); + users.put(fromId, new MessengerUser(fromId, resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), 0, + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return users; + } + + /** + * Search. + * + * @param query the query + * @return the list + */ + public static List search(String query) { + List userList = new ArrayList<>(); + int userId = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + preparedStatement = Storage.getStorage().prepare("SELECT id FROM users WHERE LOWER(username) LIKE ? LIMIT 30", sqlConnection); + preparedStatement.setString(1, query + "%"); + + /* preparedStatement = Storage.getStorage().prepare("SELECT id FROM users WHERE LOWER(username) LIKE ? ORDER BY (username = ?) DESC, length(username) LIMIT 30", sqlConnection); + preparedStatement.setString(1, query + "%"); + preparedStatement.setString(2, query);*/ + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + userList.add(resultSet.getInt("id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return userList; + } + + /** + * New request. + * + * @param fromId the from id + * @param toId the to id + */ + public static void newRequest(int fromId, int toId) { + if (toId == fromId) { + return; + } + + if (requestExists(fromId, toId)) { + return; + } + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO messenger_requests (to_id, from_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, toId); + preparedStatement.setInt(2, fromId); + preparedStatement.execute(); + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Get if the request exists. + * + * @param fromId the from id + * @param toId the to id + * + * @return true, if successful + */ + public static boolean requestExists(int fromId, int toId) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM messenger_requests WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, fromId); + preparedStatement.setInt(2, toId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + /** + * Get if friend exists. + * + * @param fromId the from id + * @param toId the to id + * + * @return true, if successful + */ + public static boolean friendExists(int fromId, int toId) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM messenger_friends WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, fromId); + preparedStatement.setInt(2, toId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + /** + * Removes the request. + * + * @param fromId the from id + * @param toId the to id + */ + public static void removeRequest(int fromId, int toId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM messenger_requests WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, fromId); + preparedStatement.setInt(2, toId); + preparedStatement.execute(); + + preparedStatement = Storage.getStorage().prepare("DELETE FROM messenger_requests WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, toId); + preparedStatement.setInt(2, fromId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeAllRequests(int toId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM messenger_requests WHERE to_id = ?", sqlConnection); + preparedStatement.setInt(1, toId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Removes the friend. + * + * @param toId the friend id + * @param fromId the user id + */ + public static void removeFriend(int toId, int fromId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM messenger_friends WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, fromId); + preparedStatement.setInt(2, toId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * New friend. + * + * @param fromId the sender + * @param toId the receiver + */ + public static void newFriend(int toId, int fromId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO messenger_friends (from_id, to_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, fromId); + preparedStatement.setInt(2, toId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Removes the friend. + * + * @param userId the friend id + * @param friendId the user id + */ + public static void updateFriendCategory(int userId, int friendId, int categoryId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE messenger_friends SET category_id = ? WHERE from_id = ? AND to_id = ?", sqlConnection); + preparedStatement.setInt(1, categoryId); + preparedStatement.setInt(2, friendId); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Removes the category from friends after it had been deleted + * + * @param userId the friend id + * @param categoryId the category + */ + public static void resetFriendCategories(int userId, int categoryId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE messenger_friends SET category_id = 0 WHERE to_id = ? AND category_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, categoryId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + /** + * Create a message for other people to read them later, if they're offline. + * + * @param fromId the id the user sending the message + * @param toId the id of the user to receive it + * @param message the body of the message + * @return the id of the message + */ + public static int newMessage(int fromId, int toId, String message) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + int messageID = 0; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO messenger_messages (receiver_id, sender_id, unread, body, date) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, toId); + preparedStatement.setInt(2, fromId); + preparedStatement.setInt(3, 1); + preparedStatement.setString(4, message); + preparedStatement.setLong(5, DateUtil.getCurrentTimeSeconds()); + preparedStatement.executeUpdate(); + + ResultSet row = preparedStatement.getGeneratedKeys(); + + if (row != null && row.next()) { + messageID = row.getInt(1); + } + + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messageID; + } + + /** + * Get unread messages for the user. + * + * @param userId the id of the user to get the offline messages for + * @return the list of messages + */ + public static Map getUnreadMessages(int userId) { + Map messages = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM messenger_messages WHERE receiver_id = " + userId + " AND unread = 1", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + messages.put(resultSet.getInt("id"), new MessengerMessage( + resultSet.getInt("id"), resultSet.getInt("receiver_id"), resultSet.getInt("sender_id"), + resultSet.getLong("date"), resultSet.getString("body"))); + + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messages; + } + + /** + * Mark a message as read. + * + * @param messageId the message id to reset + */ + public static void markMessageRead(int messageId) throws SQLException { + Storage.getStorage().execute("UPDATE messenger_messages SET unread = 0 WHERE id = " + messageId); + } + + public static List getCategories(int userId) { + var categories = new ArrayList(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM messenger_categories WHERE user_id = " + userId, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + categories.add(new MessengerCategory(resultSet.getInt("id"), resultSet.getInt("user_id"), resultSet.getString("name"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return categories; + } + + public static void deleteCategory(int categoryId, int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM messenger_categories WHERE id = ? AND user_id = ?", sqlConnection); + preparedStatement.setInt(1, categoryId); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void addCategory(String name, int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO messenger_categories (user_id, name) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, name); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateCategory(String name, int categoryId, int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE messenger_categories SET name = ? WHERE id = ? AND user_id = ?", sqlConnection); + preparedStatement.setString(1, name); + preparedStatement.setInt(2, categoryId); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ModerationDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ModerationDao.java new file mode 100644 index 0000000..9af36f3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ModerationDao.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.moderation.ModerationActionType; + +import java.sql.Connection; +import java.sql.PreparedStatement; + +public class ModerationDao { + public static void addLog(ModerationActionType type, int userId, int targetId, String message, String extraNotes) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO housekeeping_audit_log (action, user_id, target_id, message, extra_notes) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setString(1, type.name().toLowerCase()); + preparedStatement.setInt(2, targetId); + preparedStatement.setInt(3, userId); + preparedStatement.setString(4, message); + preparedStatement.setString(5, extraNotes); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MoodlightDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MoodlightDao.java new file mode 100644 index 0000000..8f34fcb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/MoodlightDao.java @@ -0,0 +1,147 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class MoodlightDao { + + /** + * Get if there's a preset row for the moodlight. + */ + public static boolean containsPreset(long itemId) { + boolean hasPreset = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT item_id FROM items_moodlight_presets WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + hasPreset = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasPreset; + } + + public static boolean createPresets(long itemId) { + boolean hasPreset = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO items_moodlight_presets (item_id) VALUES (?)", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasPreset; + } + + public static boolean updatePresets(long itemId, int currentPreset, List presetData) { + boolean hasPreset = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items_moodlight_presets SET current_preset = ?, preset_1 = ?, preset_2 = ?, preset_3 = ? WHERE item_id = ?", sqlConnection); + preparedStatement.setInt(1, currentPreset); + preparedStatement.setString(2, presetData.get(0)); + preparedStatement.setString(3, presetData.get(1)); + preparedStatement.setString(4, presetData.get(2)); + preparedStatement.setLong(5, itemId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasPreset; + } + + public static boolean deletePresets(long itemId) { + boolean hasPreset = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM items_moodlight_presets WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasPreset; + } + + public static Pair> getPresets(long itemId) { + Pair> presetData = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items_moodlight_presets WHERE item_id = ? LIMIT 1", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + ArrayList presets = new ArrayList<>(); + presets.add(resultSet.getString("preset_1")); + presets.add(resultSet.getString("preset_2")); + presets.add(resultSet.getString("preset_3")); + + presetData = Pair.of(resultSet.getInt("current_preset"), presets); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return presetData; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/NavigatorDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/NavigatorDao.java new file mode 100644 index 0000000..c4b7b06 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/NavigatorDao.java @@ -0,0 +1,359 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.navigator.NavigatorStyle; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +public class NavigatorDao { + + /** + * Get all categories from the database. + * + * @return map of categories + */ + public static HashMap getCategories() { + HashMap categories = new HashMap<>(); + + Connection conn = null; + PreparedStatement stmt = null; + ResultSet row = null; + + try { + conn = Storage.getStorage().getConnection(); + stmt = Storage.getStorage().prepare("SELECT * FROM rooms_categories ORDER BY order_id ASC ", conn); + row = stmt.executeQuery(); + + while (row.next()) { + NavigatorCategory category = new NavigatorCategory( + row.getInt("id"), row.getInt("parent_id"), row.getInt("order_id"), + row.getString("name"), + row.getBoolean("public_spaces"), row.getBoolean("allow_trading"), + PlayerRank.getRankForId(row.getInt("minrole_access")), + PlayerRank.getRankForId(row.getInt("minrole_setflatcat")), + row.getBoolean("isnode"), row.getBoolean("club_only")); + + categories.put(category.getId(), category); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(row); + Storage.closeSilently(stmt); + Storage.closeSilently(conn); + } + + return categories; + } + + /** + * Get the list of recent rooms from database set by limit and category id. + * + * @param limit the maximum amount of usrs + * @param categoryId the rooms to find under this category id + * @return the list of recent rooms + */ + public static List getRecentRooms(int limit, int categoryId) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE category = ? AND owner_id > 0 ORDER BY visitors_now DESC, rooms.rating DESC LIMIT ? ", sqlConnection); + preparedStatement.setInt(1, categoryId); + preparedStatement.setInt(2, limit); + resultSet = preparedStatement.executeQuery(); + + //public NavigatorCategory(int id, String name, boolean publicSpaces, boolean allowTrading, int minimumRoleAccess, int minimumRoleSetFlat) { + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + /** + * Count recent rooms by category id. + * + * @param limit the limit to count + * @return the list of recent rooms + */ + public static Map getPopularCategories(int limit) { + Map categories = new LinkedHashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT c.id AS id, c.name AS name, IFNULL((SELECT SUM(rooms.visitors_now) FROM rooms WHERE rooms.category = c.id), 0) AS room_visitors FROM rooms_categories c WHERE c.isnode = 0 AND c.public_spaces = 0 AND c.minrole_access = 1 AND id <> 2 ORDER BY room_visitors DESC LIMIT ?", sqlConnection); + // preparedStatement.setInt(1, categoryId); + preparedStatement.setInt(1, limit); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + categories.put(resultSet.getInt("id"), resultSet.getInt("room_visitors")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return categories; + } + + + /** + * Get the list of recent rooms by category id. + * + * @param categoryId the rooms to find under this category id + * @return the list of recent rooms + */ + public static List getRoomsByCategory(int categoryId) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE category = ? ORDER BY visitors_now DESC, rooms.rating DESC", sqlConnection); + preparedStatement.setInt(1, categoryId); + resultSet = preparedStatement.executeQuery(); + + //public NavigatorCategory(int id, String name, boolean publicSpaces, boolean allowTrading, int minimumRoleAccess, int minimumRoleSetFlat) { + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + /** + * Get the list of most popular rooms from database set by limit + * + * @param limit the maximum amount of usrs + * @return the list of recent rooms + */ + public static List getRopularRooms(int limit, boolean includePublicRooms) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + String excludePublicRooms = " owner_id > 0 AND"; + + if (includePublicRooms) { + excludePublicRooms = ""; + } + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE" + excludePublicRooms + " visitors_now > 0 ORDER BY visitors_now DESC, rooms.rating DESC LIMIT ? ", sqlConnection); + + preparedStatement.setInt(1, limit); + resultSet = preparedStatement.executeQuery(); + + //public NavigatorCategory(int id, String name, boolean publicSpaces, boolean allowTrading, int minimumRoleAccess, int minimumRoleSetFlat) { + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + public static int createRoom(int ownerId, String roomName, String roomModel, boolean roomShowName, int accessType) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int roomId = 0; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms (owner_id, name, description, model, showname, password, accesstype) VALUES (?,?,?,?,?, '', ?)", sqlConnection); + preparedStatement.setInt(1, ownerId); + preparedStatement.setString(2, roomName); + preparedStatement.setString(3, ""); + preparedStatement.setString(4, roomModel); + preparedStatement.setBoolean(5, roomShowName); + preparedStatement.setInt(6, accessType); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + roomId = resultSet.getInt(1); + } + } catch (SQLException e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomId; + } + + public static int getRoomCountByCategory(int categoryId) { + int size = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT count(*) FROM rooms WHERE category = ?", sqlConnection); + preparedStatement.setInt(1, categoryId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + size = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return size; + } + + /** + * Get the list of rooms owned by friends, sorted by visitors and then room score + * + * @param limit the maximum amount of rooms + * @param friendList the list of user ids + * @return the list of recent rooms + */ + public static List getFriendRooms(int limit, List friendList) { + List rooms = new ArrayList<>(); + + if (friendList.isEmpty()) { + return rooms; + } + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + String friendIds = "("; + friendIds += String.join(",", friendList); + friendIds += ")"; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms INNER JOIN users ON rooms.owner_id = users.id WHERE owner_id IN " + friendIds + " ORDER BY visitors_now DESC, rooms.rating DESC LIMIT ? ", sqlConnection); + preparedStatement.setInt(1, limit); + resultSet = preparedStatement.executeQuery(); + + //public NavigatorCategory(int id, String name, boolean publicSpaces, boolean allowTrading, int minimumRoleAccess, int minimumRoleSetFlat) { + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + public static List getRecentlyVisited(int limit, int userId) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT rooms.*,users.username AS username FROM room_visits " + + "INNER JOIN rooms ON rooms.id = room_visits.room_id " + + "INNER JOIN users ON rooms.owner_id = users.id " + + "WHERE user_id = ? " + + "AND owner_id > 0 " + + "ORDER BY visited_at DESC " + + "LIMIT ? ", sqlConnection); + + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, limit); + resultSet = preparedStatement.executeQuery(); + + //public NavigatorCategory(int id, String name, boolean publicSpaces, boolean allowTrading, int minimumRoleAccess, int minimumRoleSetFlat) { + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PetDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PetDao.java new file mode 100644 index 0000000..6b4a3c5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PetDao.java @@ -0,0 +1,124 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.pets.PetDetails; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ThreadLocalRandom; + +public class PetDao { + public static void createPet(long databaseId, String name, String type, int race, String colour) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO items_pets (item_id, name, type, race, colour, nature_positive, nature_negative, born, last_kip, last_eat, last_drink, last_playtoy, last_playuser) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setLong(1, databaseId); + preparedStatement.setString(2, name); + preparedStatement.setString(3, type); + preparedStatement.setInt(4, race); + preparedStatement.setString(5, colour); + preparedStatement.setInt(6, ThreadLocalRandom.current().nextInt(0, 7)); + preparedStatement.setInt(7, ThreadLocalRandom.current().nextInt(0, 7)); + preparedStatement.setLong(8, DateUtil.getCurrentTimeSeconds()); + preparedStatement.setLong(9, DateUtil.getCurrentTimeSeconds()); + preparedStatement.setLong(10, DateUtil.getCurrentTimeSeconds()); + preparedStatement.setLong(11, DateUtil.getCurrentTimeSeconds()); + preparedStatement.setLong(12, DateUtil.getCurrentTimeSeconds()); + preparedStatement.setLong(13, DateUtil.getCurrentTimeSeconds()); + + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveCoordinates(int id, int x, int y, int rotation) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items_pets SET x = ?, y = ?, rotation = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, x); + preparedStatement.setInt(2, y); + preparedStatement.setInt(3, rotation); + preparedStatement.setInt(4, id); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveDetails(int id, PetDetails petDetails) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items_pets SET last_kip = ?, last_eat = ?, last_drink = ?, last_playtoy = ?, last_playuser = ? WHERE id = ?", sqlConnection); + preparedStatement.setLong(1, petDetails.getLastKip()); + preparedStatement.setLong(2, petDetails.getLastEat()); + preparedStatement.setLong(3, petDetails.getLastDrink()); + preparedStatement.setLong(4, petDetails.getLastPlayToy()); + preparedStatement.setLong(5, petDetails.getLastPlayUser()); + preparedStatement.setInt(6, id); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static PetDetails getPetDetails(long itemId) { + PetDetails petDetails = null; + + Connection connection = null; + PreparedStatement preparedStatement = null; + ResultSet row = null; + + try { + connection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items_pets WHERE item_id = ?", connection); + preparedStatement.setLong(1, itemId); + row = preparedStatement.executeQuery(); + + while (row.next()) { + petDetails = new PetDetails(row.getInt("id"), row.getLong("item_id"), row.getString("name"), + row.getString("type"), row.getString("race"), row.getString("colour"), row.getInt("nature_positive"), + row.getInt("nature_negative"), row.getFloat("friendship"), row.getLong("born"), row.getLong("last_kip"), + row.getLong("last_eat"), row.getLong("last_drink"), row.getLong("last_playtoy"), row.getLong("last_playuser"), + row.getInt("x"), row.getInt("y"), row.getInt("rotation")); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(row); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(connection); + } + + return petDetails; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PhotoDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PhotoDao.java new file mode 100644 index 0000000..1f4ad6a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PhotoDao.java @@ -0,0 +1,84 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.item.Photo; + +import java.sql.*; + +public class PhotoDao { + public static void addPhoto(long photoId, int userId, long timestamp, byte[] photo, int checksum) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO items_photos (photo_id, photo_user_id, timestamp, photo_data, photo_checksum) VALUES (?, ?, ?, ?, ?)", sqlConnection); + + Blob photoBlob = sqlConnection.createBlob(); + photoBlob.setBytes(1, photo); + + preparedStatement.setLong(1, photoId); + preparedStatement.setInt(2, userId); + preparedStatement.setLong(3, timestamp); + preparedStatement.setBlob(4, photoBlob); + preparedStatement.setInt(5, checksum); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Photo getPhoto(long photoId) throws SQLException { + Photo photo = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items_photos WHERE photo_id = ? AND is_active = 1", sqlConnection);// (photo_id, photo_user_id, timestamp, photo_data, photo_checksum) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setLong(1, photoId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + Blob photoBlob = resultSet.getBlob("photo_data"); + int blobLength = (int) photoBlob.length(); + + byte[] photoBlobBytes = photoBlob.getBytes(1, blobLength); + photo = new Photo(photoId, resultSet.getInt("photo_checksum"), photoBlobBytes, resultSet.getLong("timestamp")); + } + + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return photo; + } + + public static void deleteItem(long photoId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE items_photos SET is_active = 0 WHERE photo_id = ?", sqlConnection); + preparedStatement.setLong(1, photoId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerDao.java new file mode 100644 index 0000000..6fc898d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerDao.java @@ -0,0 +1,1052 @@ +package org.alexdev.havana.dao.mysql; + +import com.goterl.lazysodium.LazySodiumJava; +import com.goterl.lazysodium.SodiumJava; +import com.goterl.lazysodium.interfaces.PwHash; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.DateUtil; + +import java.nio.charset.StandardCharsets; +import java.sql.*; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class PlayerDao { + public static final LazySodiumJava LIB_SODIUM = new LazySodiumJava(new SodiumJava()); + private static String figureBlacklist1 = "hd-180-1.hr-100-61.ch-210-66.lg-270-82.sh-290-80"; + + public static void resetOnline() { + try { + Storage.getStorage().execute("UPDATE users SET is_online = 0 WHERE is_online = 1"); + } catch (SQLException e) { + Storage.logError(e); + } + } + public static int countIpAddress(String ipAddress) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + PlayerDetails details = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(DISTINCT(user_id)) FROM users_ip_logs WHERE ip_address = ?", sqlConnection); + preparedStatement.setString(1, ipAddress); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + /** + * Logs the IP address for a given user + * + * @param userId the user id to edit + * @param ipAddress the ip address + */ + public static void logIpAddress(int userId, String ipAddress) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_ip_logs (user_id, ip_address) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, ipAddress); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Gets the IP address at for a given user + * + * @param userId the user id to edit + */ + public static String getIpAddressAt(int userId, int position, int maxRows) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + List ipAddresses = new ArrayList<>(); + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT ip_address FROM users_ip_logs WHERE user_id = ? ORDER BY created_at DESC LIMIT ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(1, maxRows); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ipAddresses.add(resultSet.getString("ip_address")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + try { + return ipAddresses.get(position); + } catch (Exception ex) { + + } + + return null; + } + + /** + * Gets the IP addresses at for a given user + * + * @param userId the user id to edit + */ + public static List getIpAddresses(int userId, int maxRows) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + List ipAddresses = new ArrayList<>(); + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT DISTINCT(ip_address) FROM users_ip_logs WHERE user_id = ? ORDER BY created_at DESC LIMIT ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, maxRows); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ipAddresses.add(resultSet.getString("ip_address")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return ipAddresses; + } + + /** + * Gets the latest IP address for a given user + * + * @param userId the user id to edit + */ + public static String getLatestIp(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + String ip = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT ip_address FROM users_ip_logs WHERE user_id = ? ORDER BY created_at DESC LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + ip = resultSet.getString("ip_address"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return ip; + } + + /** + * Gets the list of random habbos. + * + * @param limit the limit of random habbos + * @return the details + */ + public static List getRandomHabbos(int limit) { + List habbos = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE figure NOT IN ('" + figureBlacklist1 + "') AND UNIX_TIMESTAMP(last_online) > ? ORDER BY RAND() LIMIT ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds() - TimeUnit.DAYS.toSeconds(30)); + preparedStatement.setInt(2, limit); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + PlayerDetails details = new PlayerDetails(); + fill(details, resultSet); + + habbos.add(details); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return habbos; + } + + /** + * Gets the details by user id + * + * @param userId the user id + * @return the details + */ + public static PlayerDetails getDetails(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + PlayerDetails details = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + details = new PlayerDetails(); + fill(details, resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return details; + } + + /** + * Gets the details by username + * + * @param username the username + * @return the details + */ + public static PlayerDetails getDetails(String username) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + PlayerDetails details = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE username = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, username); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + details = new PlayerDetails(); + fill(details, resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return details; + } + + /** + * Login with SSO ticket. + * + * @param player the player + * @param ssoTicket the sso ticket + * @return true, if successful + */ + public static boolean loginTicket(Player player, String ssoTicket) { + boolean success = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE sso_ticket = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, ssoTicket); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + fill(player.getDetails(), resultSet); + success = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return success; + } + + /** + * Login with SSO ticket. + * + * @param playerDetails the player details to fill + * @param username username + * @param password password + * @return true, if successful + */ + public static boolean login(PlayerDetails playerDetails, String username, String password) { + boolean success = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE username = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, username); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + byte[] hashedPassword = (resultSet.getString("password") + '\0').getBytes(StandardCharsets.UTF_8); + byte[] pass = password.getBytes(StandardCharsets.UTF_8); + + success = ((PwHash.Native) LIB_SODIUM).cryptoPwHashStrVerify(hashedPassword, pass, pass.length); + + if (success) { + fill(playerDetails, resultSet); + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return success; + } + + /** + * Login with SSO ticket. + * + * @param userId the id of the player to set + * @param password password + * @return true, if successful + */ + public static void setPassword(int userId, String password) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET password = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, password); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void setEmail(int userId, String email) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET email = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, email); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Reset SSO ticket + * Protects against replay attacks + * + * @param userId ID of user + */ + public static void resetSsoTicket(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET sso_ticket = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setNull(1, Types.VARCHAR); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void resetSsoTickets() { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET sso_ticket = ? WHERE sso_ticket IS NOT NULL", sqlConnection); + preparedStatement.setNull(1, Types.VARCHAR); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Reset SSO ticket + * Protects against replay attacks + * + * @param userId ID of user + */ + public static void setTicket(int userId, String ticket) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET sso_ticket = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, ticket); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void setAuthToken(int userId, String authTicket, long updatedAt) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET authentication_key = ?, authentication_key_date = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, authTicket); + preparedStatement.setLong(2, updatedAt); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Reset SSO ticket + * Protects against replay attacks + * + * @param userId ID of user + */ + public static void setMachineId(int userId, String uniqueId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET machine_id = ? WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, uniqueId); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Gets the id. + * + * @param username the username + * @return the id + */ + public static int getId(String username) { + int id = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM users WHERE LOWER(username) = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, username.toLowerCase()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + id = resultSet.getInt("id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return id; + } + + /** + * Gets the name. + * + * @param id the id + * @return the name + */ + public static String getName(int id) { + String name = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT username FROM users WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + name = resultSet.getString("username"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return name; + } + + + public static String getMachineId(int userId) { + String machineId = ""; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT machine_id FROM users WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + machineId = resultSet.getString("machine_id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return machineId; + } + + public static int countMachineId(String machineId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) as users_matched FROM users WHERE machine_id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, machineId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("users_matched"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static void saveLastOnline(int userId, long lastOnline, boolean isOnline) { + //long currentTime = DateUtil.getCurrentTimeSeconds(); + //details.setLastOnline(currentTime); + java.util.Date date = new Date(lastOnline * 1000L); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET last_online = ?, is_online = ? WHERE id = ?", sqlConnection); + preparedStatement.setTimestamp(1, new java.sql.Timestamp(date.getTime())); + preparedStatement.setInt(2, isOnline ? 1 : 0); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveSoundSetting(int userId, boolean soundSetting) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET sound_enabled = ? WHERE id = ?", sqlConnection); + preparedStatement.setBoolean(1, soundSetting); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveDetails(int userId, String figure, String poolFigure, String sex) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET figure = ?, pool_figure = ?, sex = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, figure); + preparedStatement.setString(2, poolFigure); + preparedStatement.setString(3, sex); + preparedStatement.setInt(4, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveMotto(int userId, String motto) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET motto = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, motto); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveCurrency(int userId, int credits, int pixels) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET credits = ?, pixels = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, credits); + preparedStatement.setInt(2, pixels); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveEmail(int userId, String email) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET email = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, email); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void saveSelectedRoom(int userId, int selectedRoom) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET selected_room_id = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, selectedRoom); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveRespect(int userId, int dailyRespectPoints, int respectPoints, String respectDay, int respectGiven) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET daily_respect_points = ?, respect_points = ?, respect_day = ?, respect_given = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, dailyRespectPoints); + preparedStatement.setInt(2, respectPoints); + preparedStatement.setString(3, respectDay); + preparedStatement.setInt(4, respectGiven); + preparedStatement.setInt(5, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Update details. + */ + public static void saveSubscription(int userId, long firstClubSubscription, long clubExpiration) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET club_subscribed = ?, club_expiration = ? WHERE id = ?", sqlConnection); + preparedStatement.setLong(1, firstClubSubscription); + preparedStatement.setLong(2, clubExpiration); + preparedStatement.setInt(3, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Update xp. + * + * @param userId the id of the player to save + */ + public static void saveOnlineStatus(int userId, boolean onlineStatusVisible) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET online_status_visible = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, onlineStatusVisible ? 1 : 0); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Save favourite group + * + * @param userId the id of the user to save to + * @param groupId the favourite group id + */ + public static void saveFavouriteGroup(int userId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET favourite_group = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Gets the home room of user. + * + * @param id the user id + * @return the home room id + */ + public static int getHomeRoom(int id) { + int roomId = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT home_room FROM users WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + roomId = resultSet.getInt("home_room"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomId; + } + + /** + * Save favourite group + * + * @param userId the id of the user to save to + * @param roomId the room id of the users home + */ + public static void saveHomeRoom(int userId, int roomId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET home_room = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean isPlayerOnline(int userId) { + boolean isOnline = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT is_online FROM users WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + isOnline = resultSet.getBoolean("is_online"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return isOnline; + } + + public static int getByEmail(String email) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int id = -1; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE email = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, email); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + id = resultSet.getInt("id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return id; + } + + /** + * Fill player data + * + * @param details the details + * @param row the row + * @throws SQLException the SQL exception + */ + public static void fill(PlayerDetails details, ResultSet row) throws SQLException { + // public void fill(int id, String username, String password, String figure, String poolFigure, int credits, String motto, String consoleMotto, String sex, + // int tickets, int film, int rank, long lastOnline, long clubSubscribed, long clubExpiration, String badge, String badgeActive) { + if (details == null) { + return; + } + + details.fill(row.getInt("id"), row.getString("username"), row.getString("figure"), + row.getString("pool_figure"), row.getInt("pixels"), row.getInt("credits"), + row.getString("email"), row.getString("motto"), row.getString("sex"), + row.getString("sso_ticket"), row.getInt("tickets"), row.getInt("film"), + row.getInt("rank"), row.getTime("last_online").getTime() / 1000L, row.getTime("created_at").getTime() / 1000L, + row.getString("machine_id"), row.getLong("club_subscribed"), row.getLong("club_expiration"), + row.getBoolean("allow_stalking"), row.getInt("selected_room_id"), row.getBoolean("allow_friend_requests"), + row.getBoolean("online_status_visible"), row.getBoolean("profile_visible"), row.getBoolean("wordfilter_enabled"), + row.getBoolean("trade_enabled"), row.getBoolean("sound_enabled"), row.getBoolean("daily_coins_enabled"), + row.getInt("daily_respect_points"), row.getString("respect_day"), + row.getInt("respect_points"), row.getInt("respect_given"), row.getBoolean("is_online"), + row.getLong("totem_effect_expiry"), row.getLong("trade_ban_expiration"), row.getInt("favourite_group"), + row.getString("created_at")); + } + + public static String createPassword(String password) throws Exception { + byte[] pw = password.getBytes(); + byte[] outputHash = new byte[PwHash.STR_BYTES]; + PwHash.Native pwHash = (PwHash.Native) PlayerDao.LIB_SODIUM; + boolean success = pwHash.cryptoPwHashStr( + outputHash, + pw, + pw.length, + PwHash.OPSLIMIT_INTERACTIVE, + PwHash.MEMLIMIT_INTERACTIVE + ); + + if (!success) { + throw new Exception("Password creation was a failure!"); + } + + return new String(outputHash).replace((char)0 + "", ""); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerStatisticsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerStatisticsDao.java new file mode 100644 index 0000000..bceb188 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PlayerStatisticsDao.java @@ -0,0 +1,231 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.HashMap; +import java.util.Map; + +public class PlayerStatisticsDao { + public static void updateStatistic(int userId, PlayerStatistic statistic, String value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET " + statistic.getColumn() + " = ? WHERE user_id = ?", sqlConnection); + + if (statistic.isDateTime()) { + preparedStatement.setTimestamp(1, new Timestamp(Long.parseLong(value) * 1000L)); + } else { + preparedStatement.setString(1, value); + } + + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateStatistic(int userId, PlayerStatistic statistic, int value) { + updateStatistic(userId, statistic, String.valueOf(value)); + } + + public static void updateStatistic(int userId, PlayerStatistic statistic, long value) { + updateStatistic(userId, statistic, String.valueOf(value)); + } + + + public static void incrementStatistic(int userId, PlayerStatistic statistic, long value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET " + statistic.getColumn() + " = " + statistic.getColumn() + " + ? WHERE user_id = ?", sqlConnection); + preparedStatement.setLong(1, value); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateStatistics(int userId, HashMap statisticMap) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + for (var kvp : statisticMap.entrySet()) { + var statistic = kvp.getKey(); + var value = kvp.getValue(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET " + statistic.getColumn() + " = ? WHERE user_id = ?", sqlConnection); + + if (statistic.isDateTime()) { + preparedStatement.setTimestamp(5, new Timestamp(Long.parseLong(value) * 1000L)); + } else { + preparedStatement.setString(1, value); + } + + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void incrementStatistics(int userId, HashMap statisticMap) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + for (var kvp : statisticMap.entrySet()) { + var statistic = kvp.getKey(); + long value = kvp.getValue(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET " + statistic.getColumn() + " = " + statistic.getColumn() + " + ? WHERE user_id = ?", sqlConnection); + preparedStatement.setLong(1, value); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static long getStatisticLong(int userId, PlayerStatistic playerStatistic) { + long setting = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + playerStatistic.getColumn() + " FROM users_statistics WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + setting = resultSet.getInt(playerStatistic.getColumn()); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return setting; + } + + public static String getStatisticString(int userId, PlayerStatistic playerStatistic) { + String setting = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + playerStatistic.getColumn() + " FROM users_statistics WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + setting = resultSet.getString(playerStatistic.getColumn()); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return setting; + } + + public static Map getStatistics(int userId) { + Map values = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_statistics WHERE user_id = ?", sqlConnection); + preparedStatement.setLong(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + for (PlayerStatistic playerStatistic : PlayerStatistic.values()) { + if (playerStatistic.isDateTime()) { + if (resultSet.getTime(playerStatistic.getColumn()) != null) { + values.put(playerStatistic, String.valueOf(resultSet.getTime(playerStatistic.getColumn()).getTime() / 1000L)); + } else { + values.put(playerStatistic, null); + } + } else { + values.put(playerStatistic, resultSet.getString(playerStatistic.getColumn())); + } + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return values; + } + + public static void newStatistics(int userId, String activationCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_statistics (user_id, activation_code) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, activationCode); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PublicRoomsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PublicRoomsDao.java new file mode 100644 index 0000000..9b6ca59 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/PublicRoomsDao.java @@ -0,0 +1,80 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.item.publicrooms.PublicItemData; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysEntrance; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.*; + +public class PublicRoomsDao { + /** + * Get the item definitions. + * + * @return the list of item definitions + */ + public static List getPublicItemData(String roomModel) { + List itemDataList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM public_items WHERE room_model = ?", sqlConnection); + preparedStatement.setString(1, roomModel); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + PublicItemData itemData = new PublicItemData(resultSet.getString("id"), resultSet.getString("room_model"), + resultSet.getString("sprite"), resultSet.getInt("x"), resultSet.getInt("y"), + resultSet.getDouble("z"), resultSet.getInt("rotation"), resultSet.getDouble("top_height"), + resultSet.getInt("length"), resultSet.getInt("width"), resultSet.getString("behaviour"), + resultSet.getString("current_program"), resultSet.getString("teleport_to"), resultSet.getString("swim_to")); + + itemDataList.add(itemData); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return itemDataList; + } + + public static List getWalkways() { + List walkwaysEntrances = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM public_roomwalkways", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + walkwaysEntrances.add(WalkwaysManager.createWalkway(resultSet.getInt("room_id"), resultSet.getInt("to_id"), resultSet.getString("coords_map"), + resultSet.getString("door_position"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return walkwaysEntrances; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ReferredDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ReferredDao.java new file mode 100644 index 0000000..1384325 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/ReferredDao.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class ReferredDao { + public static int countReferred(int id) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) FROM users_referred WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static void addReferred(int userId, int referredId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_referred (user_id, referred_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, referredId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomBanDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomBanDao.java new file mode 100644 index 0000000..31f5c9a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomBanDao.java @@ -0,0 +1,65 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class RoomBanDao { + public static void addBan(int userId, int roomId, long expireTime) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_bans WHERE user_id = ? AND room_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_bans (user_id, room_id, expire_at) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setLong(3, expireTime); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasBan(int userId, int roomId) { + boolean hasBan = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT user_id FROM rooms_bans WHERE user_id = ? AND room_id = ? AND expire_at > ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setLong(3, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + hasBan = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasBan; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomDao.java new file mode 100644 index 0000000..acc2060 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomDao.java @@ -0,0 +1,532 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.moderation.ChatMessage; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomData; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public class RoomDao { + public static final int FLASH_SEARCH_LIMIT = 100; + public static final int SHOCKWAVE_SEARCH_LIMIT = 100; + + public static void resetVisitors() { + try { + Storage.getStorage().execute("UPDATE rooms SET visitors_now = 0 WHERE visitors_now > 0"); + } catch (SQLException e) { + Storage.logError(e); + } + } + + /** + * Get a list of rooms by the owner id, use "0" for public rooms. + * + * @param userId the user id to get the rooms by + * @return the list of rooms + */ + public static List getRoomsByUserId(int userId) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE rooms.owner_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Room room = new Room(); + fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + /** + * Get a list of recommended rooms. + * + * @param limit the limit of rooms + * @return the list of rooms + */ + public static List getRecommendedRooms(int limit, int offset) { + List roomList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE owner_id > 0 AND accesstype = 0 ORDER BY visitors_now DESC, rating DESC LIMIT " + limit + " OFFSET " + offset, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + roomList.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return roomList; + } + + /** + * Get the list of the highest rated rooms + * + * @param limit the maximum amount of rooms + * @return the list of highest rated rooms + */ + public static List getHighestRatedRooms(int limit, int offset) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE owner_id > 0 ORDER BY rating DESC LIMIT " + limit + " OFFSET " + offset, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + /** + * Get the room id of a room by its model, used for walkways. + * + * @param model the model used to get the id for + * @return the id, else -1 + */ + public static int getRoomIdByModel(String model) { + int roomId = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM rooms WHERE model = ?", sqlConnection); + preparedStatement.setString(1, model); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + roomId = resultSet.getInt("id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomId; + } + + + /** + * Search query for when people use the navigator search, will search either by username or room name similarities. + * + * @param searchQuery the query to use + * @return the list of possible room matches + */ + public static List searchRooms(String searchQuery, int roomOwner, int limit) { + List rooms = new ArrayList<>(); + + if (searchQuery.isBlank() && roomOwner == -1) { + return rooms; + } + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms INNER JOIN users ON rooms.owner_id = users.id WHERE" + (roomOwner > 0 ? (" owner_id = " + roomOwner + " AND") : " LOWER(users.username) LIKE ? OR") + " LOWER(rooms.name) LIKE ? ORDER BY visitors_now DESC, rating DESC LIMIT ? ", sqlConnection); + + if (roomOwner > 0) { + preparedStatement.setString(1, "%" + searchQuery + "%"); + preparedStatement.setInt(2, limit); + } else { + preparedStatement.setString(1, "%" + searchQuery + "%"); + preparedStatement.setString(2, "%" + searchQuery + "%"); + preparedStatement.setInt(3, limit); + } + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Room room = new Room(); + fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + public static Room getRoomById(int roomId) { + Room room = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms LEFT JOIN users ON rooms.owner_id = users.id WHERE rooms.id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + room = new Room(); + fill(room.getData(), resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return room; + } + + /** + * Save all room information. + * + * @param room the room to save + */ + public static void saveDecorations(Room room) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET wallpaper = ?, floor = ?, landscape = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, room.getData().getWallpaper()); + preparedStatement.setInt(2, room.getData().getFloor()); + preparedStatement.setString(3, room.getData().getLandscape()); + preparedStatement.setInt(4, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Save all room information. + * + * @param room the room to save + */ + public static void save(Room room) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET category = ?, name = ?, description = ?, showname = ?, superusers = ?, accesstype = ?, password = ?, visitors_max = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, room.getData().getCategoryId()); + preparedStatement.setString(2, room.getData().getName()); + preparedStatement.setString(3, room.getData().getDescription()); + preparedStatement.setBoolean(4, room.getData().showOwnerName()); + preparedStatement.setBoolean(5, room.getData().allowSuperUsers()); + preparedStatement.setInt(6, room.getData().getAccessTypeId()); + preparedStatement.setString(7, room.getData().getPassword()); + preparedStatement.setInt(8, room.getData().getVisitorsMax()); + preparedStatement.setInt(9, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + /** + * Save visitor count of rooms + * + * @param id the id of room to save + */ + public static void saveVisitors(int id, int size) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET visitors_now = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, size); + preparedStatement.setInt(2, id); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Save rating for the room + * + * @param roomId the room to save + * @param rating the new rating + */ + public static void saveRating(int roomId, int rating) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET rating = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, rating); + preparedStatement.setInt(2, roomId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + /** + * Save room icon data + * + * @param roomId the room id for the icon to save to + * @param formattedIconData the formatted icon data to save + */ + public static void saveIcon(int roomId, String formattedIconData) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET icon_data = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, formattedIconData); + preparedStatement.setInt(2, roomId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Delete room. + * + * @param room the room to delete + */ + public static void delete(Room room) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Save visitor count of rooms + * + * @param roomId the room to save + */ + public static void saveGroupId(int roomId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE rooms SET group_id = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.setInt(2, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveChatLog(Collection chatMessages) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO room_chatlogs (user_id, room_id, timestamp, chat_type, message) VALUES (?, ?, ?, ?, ?)", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (ChatMessage chatMessage : chatMessages) { + preparedStatement.setInt(1, chatMessage.getPlayerId()); + preparedStatement.setInt(2, chatMessage.getRoomId()); + preparedStatement.setLong(3, chatMessage.getSentTime()); + + switch (chatMessage.getChatMessageType()) { + case CHAT: + preparedStatement.setInt(4, 0); + break; + case SHOUT: + preparedStatement.setInt(4, 1); + break; + default: + preparedStatement.setInt(4, 2); + break; + } + + preparedStatement.setString(5, chatMessage.getMessage()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getModChatlog(int roomId) { + List chatHistoryList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + //room_chatlogs (user_id, room_id, timestamp, chat_type, message) + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT rooms.owner_id AS owner_id, room_chatlogs.*,rooms.name AS room_name, users.username AS username FROM room_chatlogs " + + "INNER JOIN rooms ON room_chatlogs.room_id = rooms.id " + + "INNER JOIN users ON room_chatlogs.user_id = users.id " + + "WHERE room_id = ? " + + "ORDER BY timestamp DESC " + + "LIMIT 150", sqlConnection); + preparedStatement.setInt(1, roomId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + CHAT_MESSAGE.ChatMessageType chatMessageType = CHAT_MESSAGE.ChatMessageType.CHAT; + int chatType = resultSet.getInt("chat_type"); + + if (chatType == 2) { + chatMessageType = CHAT_MESSAGE.ChatMessageType.WHISPER; + } + + if (chatType == 1) { + chatMessageType = CHAT_MESSAGE.ChatMessageType.SHOUT; + } + + chatHistoryList.add(new ChatMessage(resultSet.getInt("user_id"), resultSet.getString("username"), + resultSet.getString("message"), chatMessageType, + roomId, resultSet.getLong("timestamp"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return chatHistoryList; + } + + /** + * Fill room data + * + * @param data the room data instance + * @param row the row + * @throws SQLException the SQL exception + */ + public static void fill(RoomData data, ResultSet row) throws SQLException { + if (data == null) { + return; + } + + String ownerName = row.getString("username"); + + data.fill(row.getInt("id"), row.getInt("owner_id"), ownerName != null ? ownerName : "", row.getInt("category"), + row.getString("name"), row.getString("description"), row.getString("model"), + row.getString("ccts"), row.getInt("wallpaper"), row.getInt("floor"), row.getString("landscape"), + row.getBoolean("showname"), row.getBoolean("superusers"), row.getInt("accesstype"), + row.getString("password"), row.getInt("visitors_now"), row.getInt("visitors_max"), row.getInt("rating"), + row.getString("icon_data"), row.getInt("group_id"), row.getBoolean("is_hidden")); + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomFavouritesDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomFavouritesDao.java new file mode 100644 index 0000000..acc928a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomFavouritesDao.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class RoomFavouritesDao { + public static List getFavouriteRooms(int userId, boolean privateRoomsOnly) { + List roomIds = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT room_id FROM users_room_favourites INNER JOIN rooms ON rooms.id = users_room_favourites.room_id WHERE user_id = ?" + (privateRoomsOnly ? " AND owner_id > 0" : ""), sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + roomIds.add(resultSet.getInt("room_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomIds; + } + + public static void addFavouriteRoom(int userId, int roomId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_room_favourites (user_id, room_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeFavouriteRoom(int userId, int roomId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_room_favourites WHERE user_id = ? AND room_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomModelDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomModelDao.java new file mode 100644 index 0000000..9abafef --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomModelDao.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.room.models.RoomModel; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.concurrent.ConcurrentHashMap; + +public class RoomModelDao { + public static ConcurrentHashMap getModels() { + ConcurrentHashMap roomModels = new ConcurrentHashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM rooms_models", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + RoomModel roomModel = new RoomModel(resultSet.getString("model_id"), resultSet.getString("model_name"), + resultSet.getInt("door_x"), resultSet.getInt("door_y"), resultSet.getDouble("door_z"), + resultSet.getInt("door_dir"), resultSet.getString("heightmap"), resultSet.getString("trigger_class")); + + roomModels.put(roomModel.getId(), roomModel); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomModels; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomRightsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomRightsDao.java new file mode 100644 index 0000000..a08ff0e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomRightsDao.java @@ -0,0 +1,102 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.RoomData; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class RoomRightsDao { + + /** + * Get a list of users with room rights for a room + * + * @return the list of user ids who have room rights + */ + public static List getRoomRights(RoomData room) { + List users = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT user_id FROM rooms_rights WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, room.getId()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + users.add(resultSet.getInt("user_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return users; + } + + public static void addRights(PlayerDetails user, RoomData room) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO rooms_rights (user_id, room_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, user.getId()); + preparedStatement.setInt(2, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeRights(int userId, RoomData room) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_rights WHERE user_id = ? AND room_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteRoomRights(RoomData room) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM rooms_rights WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, room.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVisitsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVisitsDao.java new file mode 100644 index 0000000..9f5bb50 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVisitsDao.java @@ -0,0 +1,55 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +public class RoomVisitsDao { + public static void addVisit(int userId, int roomId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("REPLACE INTO room_visits (user_id, room_id, visited_at) VALUES (?, ?, NOW())", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static int countVisits(int userId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) as visits FROM room_visits WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("visits"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVoteDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVoteDao.java new file mode 100644 index 0000000..4bdaed0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/RoomVoteDao.java @@ -0,0 +1,119 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.room.managers.VoteData; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class RoomVoteDao { + private static final long EXPIRE_SECONDS = TimeUnit.DAYS.toSeconds(30*2); + + /** + * Vote for a room + * + * @param userId the user id who is voting + * @param roomId the room id that the user is voting for + * @param answer the value of the vote (1 or -1) + */ + public static void vote(int userId, int roomId, int answer) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_room_votes (user_id, room_id, vote, expire_time) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setInt(3, answer); + preparedStatement.setLong(4, DateUtil.getCurrentTimeSeconds() + EXPIRE_SECONDS); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Vote expired votes for a room + */ + public static void removeExpiredVotes(int roomId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + /*preparedStatement = Storage.getStorage().prepare("SELECT room_id FROM users_room_votes WHERE expire_time < ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + affected = true; + }*/ + + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_room_votes WHERE room_id = ? AND expire_time < ?", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Return a map of the room ratings + * + * @param roomId the id of the room id to save + * @return Map containing key userId and value voteAnswer + */ + public static List getRatings(int roomId) { + List ratings = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "users_room_votes.user_id AS user_id, room_id, vote, CONVERT(GROUP_CONCAT(ip_address SEPARATOR ',') USING 'UTF8') AS ip_addresses, machine_id " + + "FROM " + + "users_room_votes " + + "INNER JOIN users_ip_logs ON users_ip_logs.user_id = users_room_votes.user_id " + + "INNER JOIN users ON users.id = users_room_votes.user_id " + + "WHERE " + + "users_room_votes.room_id = ? AND users_room_votes.expire_time > ? " + + "GROUP BY " + + "users_room_votes.user_id", sqlConnection); + preparedStatement.setInt(1, roomId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + ratings.add(new VoteData(resultSet.getInt("user_id"), resultSet.getInt("vote"), resultSet.getString("ip_addresses"), resultSet.getString("machine_id"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return ratings; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SettingsDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SettingsDao.java new file mode 100644 index 0000000..91c5cb3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SettingsDao.java @@ -0,0 +1,179 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +public class SettingsDao { + + /** + * Update setting in the database. + * + * @param key the key used to set the value + * @param value the new value to set + */ + public static void updateSetting(String key, String value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE settings SET value = ? WHERE setting = ?", sqlConnection); + preparedStatement.setString(1, value); + preparedStatement.setString(2, key); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateSettings(Set> entrySet) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE settings SET value = ? WHERE setting = ?", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (var kvp : entrySet) { + preparedStatement.setString(1, kvp.getValue()); + preparedStatement.setString(2, kvp.getKey()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + /** + * Get a value from the settings table. + * + * @param key the key used to get the value + * @return the value, null if no value was found + */ + public static String getSetting(String key) { + String value = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT value FROM settings WHERE setting = ?", sqlConnection); + preparedStatement.setString(1, key); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + value = resultSet.getString("value"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return value; + } + + /** + * Get all settings from the settings table. + * + * @return a map containing key and values + */ + public static Map getAllSettings() { + Map settings = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT setting, value FROM settings", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + settings.put(resultSet.getString("setting"), resultSet.getString("value")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return settings; + } + + /** + * Create a new setting entry in the database using a key value lookup. + * + * @param key the key used for the lookup + * @param value the value for the key + */ + public static void newSetting(String key, String value) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO settings (setting, value) VALUES (?, ?)", sqlConnection); + preparedStatement.setString(1, key); + preparedStatement.setString(2, value); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Map getTexts() { + Map texts = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM external_texts", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + texts.put(resultSet.getString("entry"), resultSet.getString("text")); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return texts; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SongMachineDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SongMachineDao.java new file mode 100644 index 0000000..393d07c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/SongMachineDao.java @@ -0,0 +1,331 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.game.song.SongPlaylist; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SongMachineDao { + + /** + * Get the song list for this machine. + * + * @param itemId the item id for this machine + * @return the list of songs + */ + public static List getSongList(long itemId) { + List songs = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_songs WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + // (int id, String title, int itemId, int length, String data, boolean isBurnt) + while (resultSet.next()) { + songs.add(new Song(resultSet.getInt("id"), resultSet.getString("title"), itemId, resultSet.getInt("user_id"), + resultSet.getInt("length"), resultSet.getString("data"), resultSet.getBoolean("burnt"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return songs; + } + + public static Song getSong(int songId) { + Song song = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_songs WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, songId); + resultSet = preparedStatement.executeQuery(); + + // (int id, String title, int itemId, int length, String data, boolean isBurnt) + if (resultSet.next()) { + song = new Song(resultSet.getInt("id"), resultSet.getString("title"), resultSet.getLong("item_id"), resultSet.getInt("user_id"), + resultSet.getInt("length"), resultSet.getString("data"), resultSet.getBoolean("burnt")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return song; + } + + public static List getSongPlaylist(long itemId) { + List songs = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_playlists WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + // (int id, String title, int itemId, int length, String data, boolean isBurnt) + while (resultSet.next()) { + songs.add(new SongPlaylist(itemId, getSong(resultSet.getInt("song_id")), resultSet.getInt("slot_id"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return songs; + } + + public static void addPlaylist(long itemId, int songId, int slotId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO soundmachine_playlists (item_id, song_id, slot_id) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.setInt(2, songId); + preparedStatement.setInt(3, slotId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removePlaylistSong(int songId, long itemId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM soundmachine_playlists WHERE song_id = ? AND item_id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, songId); + preparedStatement.setLong(2, itemId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteSong(int songId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + // Don't actually delete, just make it invisible, this is because some burned disks might use it. + preparedStatement = Storage.getStorage().prepare("UPDATE soundmachine_songs SET item_id = -1 WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, songId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void clearPlaylist(long itemId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM soundmachine_playlists WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void addSong(int userId, long soundMachineId, String title, int length, String data) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO soundmachine_songs (user_id, item_id, title, length, data) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setLong(2, soundMachineId); + preparedStatement.setString(3, title); + preparedStatement.setInt(4, length); + preparedStatement.setString(5, data); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveSong(int songId, String title, int length, String data) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE soundmachine_songs SET title = ?, length = ?, data = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, title); + preparedStatement.setInt(2, length); + preparedStatement.setString(3, data); + preparedStatement.setInt(4, songId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Map getTracks(long soundMachineId) { + Map tracks = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT track_id, slot_id FROM soundmachine_tracks WHERE soundmachine_id = ?", sqlConnection); + preparedStatement.setLong(1, soundMachineId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + tracks.put(resultSet.getInt("slot_id"), resultSet.getInt("track_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return tracks; + } + + public static void addTrack(long soundMachineId, int trackId, int slotId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO soundmachine_tracks (soundmachine_id, track_id, slot_id) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setLong(1, soundMachineId); + preparedStatement.setInt(2, trackId); + preparedStatement.setInt(3, slotId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeTrack(long soundMachineId, int slotId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM soundmachine_tracks WHERE soundmachine_id = ? AND slot_id = ?", sqlConnection); + preparedStatement.setLong(1, soundMachineId); + preparedStatement.setInt(2, slotId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getSongUserList(int userId) { + List songs = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM soundmachine_songs WHERE user_id = ?", sqlConnection); + preparedStatement.setLong(1, userId); + resultSet = preparedStatement.executeQuery(); + + // (int id, String title, int itemId, int length, String data, boolean isBurnt) + while (resultSet.next()) { + songs.add(new Song(resultSet.getInt("id"), resultSet.getString("title"), resultSet.getInt("item_id"), resultSet.getInt("user_id"), + resultSet.getInt("length"), resultSet.getString("data"), resultSet.getBoolean("burnt"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return songs; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TagDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TagDao.java new file mode 100644 index 0000000..c477d79 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TagDao.java @@ -0,0 +1,381 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.tags.HabboTag; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.*; + +public class TagDao { + public static List getTagInfoList(String tag) { + List search = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_tags WHERE LOWER(tag) = ? AND (user_id > 0 OR group_id > 0) AND room_id = 0", sqlConnection); + preparedStatement.setString(1, tag); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + search.add(new HabboTag(resultSet.getString("tag"), resultSet.getInt("room_id"), resultSet.getInt("user_id"), resultSet.getInt("group_id"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return search; + } + + public static List querySearchRooms(String searchTag) { + List rooms = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_tags " + + "INNER JOIN rooms ON rooms.id = users_tags.room_id " + + "INNER JOIN users ON rooms.owner_id = users.id " + + "WHERE LOWER(users_tags.tag) LIKE ? LIMIT 30", sqlConnection); + preparedStatement.setString(1, "%" + searchTag + "%"); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Room room = new Room(); + RoomDao.fill(room.getData(), resultSet); + rooms.add(room); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rooms; + } + + public static List> getPopularTags() { + return getPopularTags(20); + } + + public static List> getPopularTags(int num) { + List> tagList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag, COUNT(*) AS quantity FROM users_tags GROUP BY tag ORDER BY quantity DESC LIMIT " + num, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + int tags = 0; + Map temp = new HashMap<>(); + + while (resultSet.next()) { + String tag = resultSet.getString("tag"); + int count = resultSet.getInt("quantity"); + + if (temp.containsKey(tag)) { + count = temp.get(tag) + count; + } + + tags += count; + temp.put(tag, count); + } + + List > list = new LinkedList<>(temp.entrySet()); + list.sort(Comparator.comparingInt(Map.Entry::getValue)); + + + int weight = 0; + int[] fonts = new int[] { 10, 12, 14, 20 };//20, 14, 12, 10 };//10, 12, 14, 20}; + + if (temp.size() > 0) { + int counter = temp.size(); + int bits = (int) Math.ceil(temp.size() / 4); + + if (tags > 0) { + for (var kvp : list) { + if (counter == (bits)) { + weight = 3; + } + + if (counter == (bits * 3)) { + weight = 2; + } + + if (counter == (bits * 2)) { + weight = 1; + } + + String key = kvp.getKey(); + + tagList.add(Pair.of(key, fonts[weight])); + counter--; + } + } + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + Collections.shuffle(tagList); + return tagList; + } + + public static List getUserTags(int userId) { + List roomIds = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag FROM users_tags WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + roomIds.add(resultSet.getString("tag")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomIds; + } + + public static List getRoomTags(int roomId) { + List roomIds = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag FROM users_tags WHERE room_id = ?", sqlConnection); + preparedStatement.setInt(1, roomId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + roomIds.add(resultSet.getString("tag")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomIds; + } + + public static List getGroupTags(int groupId) { + List roomIds = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag FROM users_tags WHERE group_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + roomIds.add(resultSet.getString("tag")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return roomIds; + } + + public static Map getRoomTagData(int num) { + Map tagList = new HashMap<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag, COUNT(user_id) AS quantity FROM users_tags WHERE room_id > 0 GROUP BY tag ORDER BY quantity DESC LIMIT " + num, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String tag = resultSet.getString("tag"); + int count = resultSet.getInt("quantity"); + + tagList.put(tag, count); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return tagList; + } + + public static boolean hasTag(int userId, int roomId, int groupId, String tag) { + boolean result = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT tag FROM users_tags WHERE user_id = ? AND room_id = ? AND group_id = ? AND LOWER(tag) = LOWER(?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setInt(3, groupId); + preparedStatement.setString(4, tag); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + result = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return result; + } + + public static void addTag(int userId, int roomId, int groupId, String tag) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_tags (user_id, room_id, group_id, tag) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setInt(3, groupId); + preparedStatement.setString(4, tag); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeTag(int userId, int roomId, int groupId, String tag) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_tags WHERE user_id = ? AND room_id = ? AND group_id = ? AND tag = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setInt(3, groupId); + preparedStatement.setString(4, tag); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeTags(int userId, int roomId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_tags WHERE user_id = ? AND room_id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, roomId); + preparedStatement.setInt(3, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static int countTag(String tag) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int count = 0; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(user_id) FROM users_tags WHERE tag = ?", sqlConnection); + preparedStatement.setString(1, tag); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TeleporterDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TeleporterDao.java new file mode 100644 index 0000000..afa9e4c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TeleporterDao.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class TeleporterDao { + public static long getTeleporterId(long itemId) { + long teleporterId = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT linked_id FROM items_teleporter_links WHERE item_id = ?", sqlConnection); + preparedStatement.setLong(1, itemId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + teleporterId = resultSet.getLong("linked_id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return teleporterId; + } + + public static void addPair(long itemId, long linkedId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO items_teleporter_links (item_id, linked_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setLong(1, itemId); + preparedStatement.setLong(2, linkedId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TransactionDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TransactionDao.java new file mode 100644 index 0000000..123c91f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TransactionDao.java @@ -0,0 +1,150 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.item.Transaction; +import org.apache.commons.lang3.StringUtils; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +public class TransactionDao { + public static void createTransaction(int userId, String itemId, String catalogueId, int amount, String description, int creditCost, int pixelCost, boolean visible) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_transactions (user_id, item_id, catalogue_id, amount, description, credit_cost, pixel_cost, is_visible) VALUES (?, ?, ?, ? ,?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, itemId); + preparedStatement.setString(3, catalogueId); + preparedStatement.setInt(4, amount); + preparedStatement.setString(5, description); + preparedStatement.setInt(6, creditCost); + preparedStatement.setInt(7, pixelCost); + preparedStatement.setInt(8, visible ? 1 : 0); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getTransactionByItem(int itemId) { + List transactions = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_transactions WHERE item_id = ? ORDER BY users_transactions.created_at DESC", sqlConnection); + preparedStatement.setInt(1, itemId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + transactions.add(new Transaction(resultSet.getString("item_id").split(","), resultSet.getString("description"), resultSet.getInt("credit_cost"), resultSet.getInt("pixel_cost"), resultSet.getInt("amount"), + resultSet.getTime("created_at").getTime() / 1000L)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return transactions; + } + + public static List getTransactionsPastMonth(String searchQuery, boolean viewAll) { + Calendar currentCalendar = Calendar.getInstance(); + currentCalendar.setTimeInMillis(System.currentTimeMillis()); + int month = currentCalendar.get(Calendar.MONTH) + 1; + int year = currentCalendar.get(Calendar.YEAR); + + List transactions = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_transactions INNER JOIN users ON users.id = users_transactions.user_id WHERE MONTH(users_transactions.created_at) = ? AND YEAR(users_transactions.created_at) = ? AND user_id = ? OR username = ? ORDER BY users_transactions.created_at DESC", sqlConnection); + preparedStatement.setInt(1, month); + preparedStatement.setInt(2, year); + preparedStatement.setInt(3, StringUtils.isNumeric(searchQuery) ? Integer.parseInt(searchQuery) : -1); + preparedStatement.setString(4, searchQuery); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + boolean isVisible = resultSet.getBoolean("is_visible"); + + if (!isVisible && !viewAll) { + continue; + } + + transactions.add(new Transaction(resultSet.getString("item_id").split(","), resultSet.getString("description"), resultSet.getInt("credit_cost"), resultSet.getInt("pixel_cost"), resultSet.getInt("amount"), + resultSet.getTime("created_at").getTime() / 1000L)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return transactions; + } + + public static List getTransactions(int userId, int month, int year, boolean viewAll) { + List transactions = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_transactions WHERE YEAR(created_at) = ? AND MONTH(created_at) = ? AND user_id = ? ORDER BY created_at DESC", sqlConnection); + preparedStatement.setInt(1, year); + preparedStatement.setInt(2, month); + preparedStatement.setInt(3, userId); + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + boolean isVisible = resultSet.getBoolean("is_visible"); + + if (!isVisible && !viewAll) { + continue; + } + + transactions.add(new Transaction(resultSet.getString("item_id").split(","), resultSet.getString("description"), resultSet.getInt("credit_cost"), resultSet.getInt("pixel_cost"), resultSet.getInt("amount"), + resultSet.getTime("created_at").getTime() / 1000L)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return transactions; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TutorialDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TutorialDao.java new file mode 100644 index 0000000..70713a5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/TutorialDao.java @@ -0,0 +1,107 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class TutorialDao { + public static List getTutorialFlags(int userId) { + List flags = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT flags FROM users_tutorial_progress WHERE user_id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + var flagResults = resultSet.getString("flags"); + + if (flagResults.length() > 0) { + flags = Stream.of(resultSet.getString("flags").split(",")).map(Integer::parseInt).collect(Collectors.toList()); + } + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return flags; + } + + public static boolean hasTutorialFlags(int userId) { + boolean hasFlags = false; + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT flags FROM users_tutorial_progress WHERE user_id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + hasFlags = true; + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasFlags; + } + + public static void updateTutorialFlags(int userId, List flags) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_tutorial_progress SET flags = ? WHERE user_id = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, flags.stream().map(Object::toString).collect(Collectors.joining(","))); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void createTutorialFlags(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_tutorial_progress (user_id) VALUES (?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/UsersMutesDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/UsersMutesDao.java new file mode 100644 index 0000000..6df7157 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/UsersMutesDao.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class UsersMutesDao { + public static List getMutedUsers(int userId) { + List users = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT muted_id FROM users_mutes INNER JOIN users ON users_mutes.muted_id = users.id WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + users.add(resultSet.getInt("muted_id")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return users; + } + + public static void addMuted(int userId, int mutedId) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_mutes (user_id, muted_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, mutedId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeMuted(int userId, int mutedId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_mutes WHERE user_id = ? AND muted_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, mutedId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/VoucherDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/VoucherDao.java new file mode 100644 index 0000000..953e2d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/VoucherDao.java @@ -0,0 +1,136 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.misc.purse.Voucher; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.Types; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class VoucherDao { + + /** + * Redeems a voucher. + * Gets the voucher and then deletes it from the voucher table. + * + * @param voucherCode the string voucher code to redeem + * @return the amount of credits redeemed or -1 if no voucher was found. + */ + public static Voucher redeemVoucher(String voucherCode, int userId) { + Voucher voucher = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + ResultSet resultSet2 = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + //Get the voucher + preparedStatement = Storage.getStorage().prepare("SELECT credits,is_single_use,allow_new_users FROM vouchers WHERE voucher_code = ? " + + "AND (expiry_date IS NULL OR (UNIX_TIMESTAMP() < UNIX_TIMESTAMP(expiry_date))) AND " + + "NOT EXISTS (SELECT vouchers_history.user_id FROM vouchers_history WHERE vouchers_history.user_id = ? AND vouchers_history.voucher_code = ?)", sqlConnection); + preparedStatement.setString(1, voucherCode); + preparedStatement.setInt(2, userId); + preparedStatement.setString(3, voucherCode); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + boolean isSingleUse = resultSet.getBoolean("is_single_use"); + voucher = new Voucher(resultSet.getInt("credits"), resultSet.getBoolean("allow_new_users")); + + //Get related voucher items + preparedStatement = Storage.getStorage().prepare("SELECT catalogue_sale_code FROM vouchers_items INNER JOIN catalogue_items ON catalogue_items.sale_code = vouchers_items.catalogue_sale_code WHERE voucher_code = ?", sqlConnection); + preparedStatement.setString(1, voucherCode); + resultSet2 = preparedStatement.executeQuery(); + + //Find all items + while (resultSet2.next()) { + voucher.getItems().add(resultSet2.getString("catalogue_sale_code")); + } + + //Delete the voucher and related items if it's single use only + if (isSingleUse) { + preparedStatement = Storage.getStorage().prepare("DELETE FROM vouchers WHERE voucher_code = ?", sqlConnection); + preparedStatement.setString(1, voucherCode); + preparedStatement.executeQuery(); + + preparedStatement = Storage.getStorage().prepare("DELETE FROM vouchers_items WHERE voucher_code = ?", sqlConnection); + preparedStatement.setString(1, voucherCode); + preparedStatement.executeQuery(); + } + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + + if (resultSet2 != null) + Storage.closeSilently(resultSet2); + + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return voucher; + } + + public static void logVoucher(String voucherCode, int userId, int creditsRedeemed, List itemsRedeemed) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO vouchers_history (voucher_code, user_id, credits_redeemed, items_redeemed) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setString(1, voucherCode); + preparedStatement.setInt(2, userId); + + if (creditsRedeemed > 0) { + preparedStatement.setInt(3, creditsRedeemed); + } else { + preparedStatement.setNull(3, Types.NULL); + } + + if (itemsRedeemed.size() > 0) { + // Clear all duplicated items + Map distinctItems = new HashMap<>(); + + for (CatalogueItem item : itemsRedeemed) { + if (distinctItems.containsKey(item.getSaleCode())) { + distinctItems.put(item.getSaleCode(), distinctItems.get(item.getSaleCode()) + 1); + } else { + distinctItems.put(item.getSaleCode(), 1); + } + } + + StringBuilder stringBuilder = new StringBuilder(); + + for (Map.Entry kvp : distinctItems.entrySet()) { + stringBuilder.append(kvp.getValue()); + stringBuilder.append(","); + stringBuilder.append(kvp.getKey()); + stringBuilder.append("|"); + } + + preparedStatement.setString(4, stringBuilder.toString().substring(0, stringBuilder.length() - 1)); + } else { + preparedStatement.setNull(4, Types.NULL); + } + + resultSet = preparedStatement.executeQuery(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WardrobeDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WardrobeDao.java new file mode 100644 index 0000000..4391720 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WardrobeDao.java @@ -0,0 +1,102 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.player.Wardrobe; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class WardrobeDao { + public static List getWardrobe(int userId) { + List wardrobeList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_wardrobes WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + wardrobeList.add(new Wardrobe(resultSet.getInt("slot_id"), resultSet.getString("sex"), resultSet.getString("figure"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return wardrobeList; + } + + public static void deleteWardrobe(int userId, int slotId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM users_wardrobes WHERE user_id = ? AND slot_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, slotId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void addWardrobe(int userId, int slotId, String figure, String sex) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users_wardrobes (user_id, slot_id, figure, sex) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, slotId); + preparedStatement.setString(3, figure); + preparedStatement.setString(4, sex); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateWardrobe(int userId, int slotId, String figure, String sex) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_wardrobes SET figure = ?, sex = ? WHERE slot_id = ? AND user_id = ?", sqlConnection); + preparedStatement.setString(1, figure); + preparedStatement.setString(2, sex); + preparedStatement.setInt(3, slotId); + preparedStatement.setInt(4, userId); + preparedStatement.execute(); + + } catch (SQLException ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WordfilterDao.java b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WordfilterDao.java new file mode 100644 index 0000000..4b37016 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/dao/mysql/WordfilterDao.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.dao.mysql; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.wordfilter.WordfilterWord; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class WordfilterDao { + public static List getBadWords() { + List word = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM wordfilter", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + word.add(new WordfilterWord(resultSet.getString("word"), resultSet.getBoolean("is_bannable"), resultSet.getBoolean("is_filterable"))); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return word; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/GameScheduler.java b/Havana-Server/src/main/java/org/alexdev/havana/game/GameScheduler.java new file mode 100644 index 0000000..1f3debf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/GameScheduler.java @@ -0,0 +1,318 @@ +package org.alexdev.havana.game; + +import org.alexdev.havana.dao.mysql.ClubGiftDao; +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.EffectDao; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.moderation.ChatManager; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.incoming.catalogue.GET_CATALOG_INDEX; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECT_EXPIRED; +import org.alexdev.havana.messages.outgoing.user.currencies.ActivityPointNotification; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicLong; + +public class GameScheduler implements Runnable { + private AtomicLong tickRate = new AtomicLong(); + + private ScheduledExecutorService schedulerService; + private ScheduledFuture gameScheduler; + + private BlockingQueue> creditsHandoutQueue; + private BlockingQueue> pixelsHandoutQueue; + private BlockingQueue itemSavingQueue; + private BlockingQueue itemDeletionQueue; + + private static GameScheduler instance; + + private GameScheduler() { + this.schedulerService = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors()); + this.gameScheduler = this.schedulerService.scheduleAtFixedRate(this, 0, 1, TimeUnit.SECONDS); + this.creditsHandoutQueue = new LinkedBlockingQueue<>(); + this.pixelsHandoutQueue = new LinkedBlockingQueue<>(); + this.itemSavingQueue = new LinkedBlockingDeque<>(); + this.itemDeletionQueue = new LinkedBlockingDeque<>(); + } + + /* (non-Javadoc) + * @see java.lang.Runnable#run() + */ + @Override + public void run() { + try { + if (this.tickRate.get() % 10 == 0) { + PlayerManager.getInstance().checkPlayerPeak(); + } + + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (player.getRoomUser().getRoom() != null) { + + // If their sleep timer is now lower than the current time, make them sleep. + if (DateUtil.getCurrentTimeSeconds() > player.getRoomUser().getTimerManager().getSleepTimer()) { + if (!player.getRoomUser().isSleeping()) { + player.getRoomUser().stopCarrying(); + player.getRoomUser().sleep(true); + } + } + + // If their afk timer is up, send them out. + if (DateUtil.getCurrentTimeSeconds() > player.getRoomUser().getTimerManager().getAfkTimer()) { + player.getRoomUser().kick(true, false); + } + + // If they're not sleeping (aka, active) and their next handout expired, give them their credits! + /*if (player.getDetails().isCreditsEligible() && (DateUtil.getCurrentTimeSeconds() > player.getDetails().getNextHandout())) { + if (!this.creditsHandoutQueue.contains(player)) { + this.creditsHandoutQueue.put(player); + player.getDetails().setCreditsEligible(false); + } + }*/ + }/* else { + if (player.getDetails().isCreditsEligible()) { + player.getDetails().resetNextHandout(); + } + }*/ + + if (player.getDetails().isCreditsEligible() && (DateUtil.getCurrentTimeSeconds() > player.getDetails().getNextHandout())) { + int credits = GameConfiguration.getInstance().getInteger("daily.credits.amount"); + + if (credits > 0) { + if (this.creditsHandoutQueue.stream().noneMatch(entry -> entry.getKey() == player)) { + this.queuePlayerCredits(player, credits); + player.getDetails().setCreditsEligible(false); + } + } + } + + // Do pixels + TimeUnit pixelsReceived = TimeUnit.valueOf(GameConfiguration.getInstance().getString("pixels.received.timeunit")); + int intervalInSeconds = (int) pixelsReceived.toSeconds(GameConfiguration.getInstance().getInteger("pixels.received.interval")); + int pixelsToGive = 15; + + if (DateUtil.getCurrentTimeSeconds() > player.getDetails().getLastPixelsTime() && player.getRoomUser().getRoom() != null) { + if (player.getRoomUser().getPixelAvailableTick().getAndDecrement() > 0) { + if (this.pixelsHandoutQueue.stream().noneMatch(entry -> entry.getKey() == player)) { + this.queuePlayerPixels(player, pixelsToGive); + player.getDetails().setLastPixelsTime(DateUtil.getCurrentTimeSeconds() + intervalInSeconds); + } + } + } + + // Check effect expiry + List effectsToRemove = new ArrayList<>(); + + for (Effect effect : player.getEffects()) { + if (!effect.isActivated()) { + continue; + } + + if (DateUtil.getCurrentTimeSeconds() > effect.getExpireDate()) { + effectsToRemove.add(effect); + player.send(new AVATAR_EFFECT_EXPIRED(effect.getEffectId())); + + if (player.getRoomUser().getRoom() != null && player.getRoomUser().isUsingEffect() && player.getRoomUser().getEffectId() == effect.getEffectId()) { + player.getRoomUser().stopEffect(); + } + } + } + + for (Effect effect : effectsToRemove) { + player.getEffects().remove(effect); + EffectDao.deleteEffect(effect.getId()); + } + } + + // Resend the catalogue index every 15 minutes to clear page cache + if (this.tickRate.get() % TimeUnit.MINUTES.toSeconds(15) == 0) { + for (Player player : PlayerManager.getInstance().getPlayers()) { + new GET_CATALOG_INDEX().handle(player, null); + } + } + + // Save credits every 30 seconds + //if (this.tickRate.get() % 30 == 0) { + List> creditsHandout = new ArrayList<>(); + List> pixelHandout = new ArrayList<>(); + + this.creditsHandoutQueue.drainTo(creditsHandout); + this.pixelsHandoutQueue.drainTo(pixelHandout); + + if (creditsHandout.size() > 0) { + Map playerDetailsToSave = new LinkedHashMap<>(); + + for (Map.Entry entry : creditsHandout) { + Player p = entry.getKey(); + int amount = entry.getValue(); + playerDetailsToSave.put(p.getDetails(), amount); + } + + CurrencyDao.increaseCredits(playerDetailsToSave); + + for (Map.Entry entry : creditsHandout) { + Player p = entry.getKey(); + CurrencyDao.updateEligibleCredits(p.getDetails().getId(), false); + p.send(new CREDIT_BALANCE(p.getDetails().getCredits())); + } + } + + if (pixelHandout.size() > 0) { + Map playerDetailsToSave = new LinkedHashMap<>(); + + for (var kvp : pixelHandout) { + var details = kvp.getKey().getDetails(); + playerDetailsToSave.put(details, kvp.getValue()); + } + + CurrencyDao.increasePixels(playerDetailsToSave); + + for (var kvp : pixelHandout) { + var p = kvp.getKey(); + //p.send(new ActivityPointNotification(p.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_SOUND)); // Alert pixel sound + p.send(new ActivityPointNotification(p.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_RECEIVED)); // Alert pixels received + } + } + //} + + // Cycle through HC gifts + if (this.tickRate.get() % TimeUnit.SECONDS.toSeconds(1) == 0) { + ClubGiftDao.incrementGiftData(ClubSubscription.getClubGiftSeconds()); + } + + // Purge expired rows + if (this.tickRate.get() % TimeUnit.DAYS.toSeconds(1) == 0) { + EventsManager.getInstance().removeExpiredEvents(); + } + + // Item saving queue ticker every 10 seconds + if (this.tickRate.get() % 10 == 0) { + if (this.itemSavingQueue != null) { + this.performItemSaving(); + } + } + + // Item deletion queue ticker every 1 second + if (this.tickRate.get() % 5 == 0) { + if (this.itemSavingQueue != null) { + this.performItemDeletion(); + } + } + + // Check expired rentals every 60 seconds + if (this.tickRate.get() % 60 == 0) { + ItemManager.getInstance().checkExpiredRentals(); + } + + // Delete expired CFH's every 60 seconds + if (this.tickRate.get() % 60 == 0) { + CallForHelpManager.getInstance().purgeExpiredCfh(); + } + + // Save chat messages every 60 seconds + if (this.tickRate.get() % 60 == 0) { + ChatManager.getInstance().performChatSaving(); + } + + // Call GC because why the fuck not + if (this.tickRate.get() % 15 == 0) { + System.gc(); + } + + // Check xp expiry once every day + if (this.tickRate.get() % 5 == 0) { + GameManager.getInstance().checkXpExpiry(); + } + + CollectablesManager.getInstance().checkExpiries(); + + } catch (Exception ex) { + Log.getErrorLogger().error("GameScheduler crashed: ", ex); + } + + this.tickRate.incrementAndGet(); + } + + /** + * Add player to queue to give credits to. + * + * @param player the player to modify + * @param credits the credits + */ + public void queuePlayerCredits(Player player, int credits) { + this.creditsHandoutQueue.add(new AbstractMap.SimpleEntry<>(player, credits)); + } + + public void queuePlayerPixels(Player player, int pixels) { + this.pixelsHandoutQueue.add(new AbstractMap.SimpleEntry<>(player, pixels)); + } + + /** + * Queue item to be saved. + * + * @param item the item to save + */ + public void queueSaveItem(Item item) { + this.itemSavingQueue.removeIf(i -> i.getDatabaseId() == item.getDatabaseId()); + this.itemSavingQueue.add(item); + } + + /** + * Queue item to be deleted. + * + * @param itemId the item to delete + */ + public void queueDeleteItem(Long itemId) { + this.itemDeletionQueue.removeIf(i -> i.equals(itemId)); + this.itemDeletionQueue.add(itemId); + } + + /** + * Method to perform item saving. + */ + public void performItemSaving() { + ItemManager.getInstance().performItemSaving(this.itemSavingQueue); + } + + /** + * Method to perform item deletion. + */ + public void performItemDeletion() { + ItemManager.getInstance().performItemDeletion(this.itemDeletionQueue); + } + + /** + * Gets the scheduler service. + * + * @return the scheduler service + */ + public ScheduledExecutorService getService() { + return schedulerService; + } + + /** + * Gets the instance + * + * @return the instance + */ + public static GameScheduler getInstance() { + if (instance == null) { + instance = new GameScheduler(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementInfo.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementInfo.java new file mode 100644 index 0000000..5974dc8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementInfo.java @@ -0,0 +1,62 @@ +package org.alexdev.havana.game.achievements; + +public class AchievementInfo { + private int id; + private String name; + private int level; + private int pixelReward; + private int progressRequired; + + public AchievementInfo(int id, String name, int level, int pixelReward, int progressRequired) { + this.id = id; + this.name = name; + this.level = level; + this.pixelReward = pixelReward; + this.progressRequired = progressRequired; + } + + /** + * Get the achievement id. + * + * @return the achievement id + */ + public int getId() { + return id; + } + + /** + * Get the achievement name. + * + * @return the achievement name + */ + public String getName() { + return name; + } + + /** + * Get the level of the achievement. + * + * @return the level + */ + public int getLevel() { + return level; + } + + /** + * Get the pixel reward when completing achievement. + * + * @return the pixel reward + */ + public int getPixelReward() { + return pixelReward; + } + + /** + * Get the progress required for the achievement. + * + * @return the progress required + */ + public int getProgressRequired() { + return progressRequired; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementManager.java new file mode 100644 index 0000000..f069f8e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementManager.java @@ -0,0 +1,132 @@ +package org.alexdev.havana.game.achievements; + +import org.alexdev.havana.dao.mysql.AchievementDao; +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.currencies.ActivityPointNotification; +import org.alexdev.havana.util.StringUtil; + +import java.util.Map; + +public class AchievementManager { + private static AchievementManager instance; + private Map achievements; + + public AchievementManager() { + this.achievements = AchievementDao.getAchievements(); + } + + /** + * Method for handling achievement progression. + * + * @param achievementType the type of achievement + * @param player the player to handle for + */ + public void tryProgress(AchievementType achievementType, Player player) { + UserAchievement userAchievement = player.getAchievementManager().locateAchievement(achievementType); + + if (userAchievement == null) { + return; + } + + if (achievementType.getProgressor().tryProgress(player, userAchievement, userAchievement.getAchievementInfo())) { + AchievementDao.saveUserAchievement(player.getDetails().getId(), userAchievement); + } + + if (userAchievement.getProgress() != userAchievement.getAchievementInfo().getProgressRequired()) { + return; + } + + var badgeCode = userAchievement.getAchievementInfo().getName() + userAchievement.getAchievementInfo().getLevel(); + + if (userAchievement.getAchievementInfo().getName().equals("GL")) { + badgeCode = userAchievement.getAchievementInfo().getName() + StringUtil.toAlphabetic(userAchievement.getAchievementInfo().getLevel()); + } + + if (player.getBadgeManager().hasBadge(badgeCode)) { + return; + } + + if (userAchievement.getAchievementInfo().getPixelReward() > 0) { + CurrencyDao.increasePixels(player.getDetails(), userAchievement.getAchievementInfo().getPixelReward()); + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_SOUND)); // Alert pixel sound + } + + + AchievementInfo previousAchievement = locateAchievement(achievementType, userAchievement.getAchievementInfo().getLevel() - 1); + + if (previousAchievement != null) { + var badgeRemoveCode = previousAchievement.getName() + previousAchievement.getLevel(); + + if (badgeRemoveCode.equals("GL")) { + badgeRemoveCode = userAchievement.getAchievementInfo().getName() + StringUtil.toAlphabetic(userAchievement.getAchievementInfo().getLevel() - 1); + } + + if (!achievementType.hasRemovePreviousAchievement()) { + badgeRemoveCode = null; + } + + player.getBadgeManager().tryAddBadge(badgeCode, badgeRemoveCode, 1); + }else { + player.getBadgeManager().tryAddBadge(badgeCode, null, userAchievement.getAchievementInfo().getLevel()); + } + } + + /** + * Locate achivemenet by the next level. + * + * @param achievementType the type of the achievement + * @param nextLevel the next level + * @return return the achievement found, if successful + */ + public AchievementInfo locateAchievement(AchievementType achievementType, int nextLevel) { + for (AchievementInfo achievementInfo : this.achievements.values()) { + if (achievementInfo.getName().equals(achievementType.getName()) && achievementInfo.getLevel() == nextLevel) { + return achievementInfo; + } + } + + return null; + } + + /** + * Locate the achievement by id. + * + * @param achievementId the achievement id + * @return the achievement + */ + public AchievementInfo getAchievement(int achievementId) { + return this.achievements.get(achievementId); + } + + /** + * Get the list of achievements. + * + * @return the list of achievements + */ + public Map getAchievements() { + return achievements; + } + + /** + * Get the {@link AchievementManager} instance + * + * @return the catalogue manager instance + */ + public static AchievementManager getInstance() { + if (instance == null) { + instance = new AchievementManager(); + } + + return instance; + } + + /** + * Reset the {@link AchievementManager} instance + */ + public static void reset() { + instance = null; + getInstance(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementProgress.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementProgress.java new file mode 100644 index 0000000..014562e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementProgress.java @@ -0,0 +1,8 @@ +package org.alexdev.havana.game.achievements; + +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public interface AchievementProgress { + boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo); +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementType.java new file mode 100644 index 0000000..30062d2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/AchievementType.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.game.achievements; + +import org.alexdev.havana.game.achievements.progressions.AchievementAIPerformanceVote; +import org.alexdev.havana.game.achievements.progressions.*; + +public enum AchievementType { + ACHIEVEMENT_LOOKS("ACH_AvatarLooks", new AchievementAvatarLooks(), true), + ACHIEVEMENT_HC("HC", new AchievementHabboClub(), true), + ACHIEVEMENT_MOTTO("ACH_Motto", new AchievementMotto(), true), + ACHIEVEMENT_RESPECT_GIVEN("ACH_RespectGiven", new AchievementRespectGiven(), true), + ACHIEVEMENT_TAGS("ACH_AvatarTags", new AchievementTags(), true), + ACHIEVEMENT_MGM("ACH_MGM", new AchievementMGM(), true), + ACHIEVEMENT_GRADUATE("ACH_Graduate", new AchievementGraduate(), true), + ACHIEVEMENT_HAPPYHOUR("ACH_HappyHour", new AchievementHappyHour(), true), + ACHIEVEMENT_REGISTRATION_DURATION("ACH_RegistrationDuration", new AchievementRegistrationDuration(), true), + ACHIEVEMENT_ROOMENTRY("ACH_RoomEntry", new AchievementRoomEntry(), true), + ACHIEVEMENT_TRADERPASS("ACH_TraderPass", new AchievementTraderPass(), true), + ACHIEVEMENT_AIPERFORMANCEVOTE("ACH_AIPerformanceVote", new AchievementAIPerformanceVote(), true), + ACHIEVEMENT_RESPECT_EARNED("ACH_RespectEarned", new AchievementRespectEarned(), true), + ACHIEVEMENT_LOGIN("ACH_Login", new AchievementLogin(), true), + ACHIEVEMENT_ALL_TIME_HOTEL_PRESENCE("ACH_AllTimeHotelPresence", new AchievementAllTimeHotelPresence(), true), + ACHIEVEMENT_GAME_PLAYED("ACH_GamePlayed", new AchievementGamePlayed(), true), + ACHIEVEMENT_GUIDE("GL", new AchievementGuide(), false), + ACHIEVEMENT_STUDENT("ACH_Student", new AchievementStudent(), true), + ACHIEVEMENT_EMAIL_VERIFICATION("ACH_EmailVerification", new AchievementEmailVerification(), true); + + private final String avchievementName; + private final AchievementProgress achievementProgressor; + private final boolean removePreviousAchievement; + + AchievementType(String achievementName, AchievementProgress achievementProgressor, boolean removePreviousAchievement) { + this.avchievementName = achievementName; + this.achievementProgressor = achievementProgressor; + this.removePreviousAchievement = removePreviousAchievement; + } + + public static AchievementType getByName(String name) { + for (AchievementType achievementType : values()) { + if (achievementType.getName().equals(name)) { + return achievementType; + } + } + + return null; + } + + public String getName() { + return avchievementName; + } + + public AchievementProgress getProgressor() { + return achievementProgressor; + } + + public boolean hasRemovePreviousAchievement() { + return removePreviousAchievement; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAIPerformanceVote.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAIPerformanceVote.java new file mode 100644 index 0000000..d4a04da --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAIPerformanceVote.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementAIPerformanceVote implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = userAchievement.getProgress() + 1; + + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + userAchievement.setProgress(progress); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAllTimeHotelPresence.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAllTimeHotelPresence.java new file mode 100644 index 0000000..ff248de --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAllTimeHotelPresence.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; + +import java.util.concurrent.TimeUnit; + +public class AchievementAllTimeHotelPresence implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int daysSince = (int) Math.floor(TimeUnit.SECONDS.toHours(player.getStatisticManager().getIntValue(PlayerStatistic.ONLINE_TIME)));//AchievementDao.getOnlineTime(player.getDetails().getId())))); + + if (daysSince >= achievementInfo.getProgressRequired()) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAvatarLooks.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAvatarLooks.java new file mode 100644 index 0000000..2911b87 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementAvatarLooks.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementAvatarLooks implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementEmailVerification.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementEmailVerification.java new file mode 100644 index 0000000..749c54a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementEmailVerification.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementEmailVerification implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGamePlayed.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGamePlayed.java new file mode 100644 index 0000000..2ebd859 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGamePlayed.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; + +public class AchievementGamePlayed implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = player.getStatisticManager().getIntValue(PlayerStatistic.BATTLEBALL_GAMES_WON) + player.getStatisticManager().getIntValue(PlayerStatistic.SNOWSTORM_GAMES_WON); + + if (progress >= userAchievement.getProgress()) { + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGraduate.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGraduate.java new file mode 100644 index 0000000..c8dbd77 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGraduate.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.config.GameConfiguration; + +public class AchievementGraduate implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + if (!GameConfiguration.getInstance().getBoolean("tutorial.enabled")) { + return false; + } + + //if (!player.getDetails().getTutorialFlags().contains(1)) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + //} + + //return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGuide.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGuide.java new file mode 100644 index 0000000..fdea053 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementGuide.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; + +public class AchievementGuide implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = player.getStatisticManager().getIntValue(PlayerStatistic.PLAYERS_GUIDED); + + if (progress >= userAchievement.getProgress()) { + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHabboClub.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHabboClub.java new file mode 100644 index 0000000..2991fc3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHabboClub.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.Player; + +public class AchievementHabboClub implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + boolean canProgress = false; + + if (achievementInfo.getLevel() == 1) { + if (player.getDetails().hasClubSubscription()) { + canProgress = true; + } + } + + if (achievementInfo.getLevel() == 2) { + if (ClubSubscription.hasGoldClubSubscription(player)) { + canProgress = true; + } + } + + if (achievementInfo.getLevel() == 3) { + if (ClubSubscription.hasPlatinumClubSubscription(player)) { + canProgress = true; + } + } + + if (canProgress) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHappyHour.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHappyHour.java new file mode 100644 index 0000000..5bee738 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementHappyHour.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementHappyHour implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + if (Havana.isHappyHour()) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementLogin.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementLogin.java new file mode 100644 index 0000000..81b7a22 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementLogin.java @@ -0,0 +1,51 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.util.DateUtil; + +import java.util.concurrent.TimeUnit; + +public class AchievementLogin implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = 0; + + if (!player.getDetails().getPreviousRespectDay().equals(DateUtil.getCurrentDate(DateUtil.SHORT_DATE))) { + String yesterday = DateUtil.getDate(DateUtil.getCurrentTimeSeconds() - TimeUnit.DAYS.toSeconds(1), DateUtil.SHORT_DATE); + + if (yesterday.equals(player.getDetails().getPreviousRespectDay())) { + progress++; + } else { + player.getStatisticManager().setLongValue(PlayerStatistic.DAYS_LOGGED_IN_ROW, 0); + } + } + + /*PlayerStatisticsDao.getStatistic(player.getDetails().getId(), PlayerStatistic.DAYS_LOGGED_IN_ROW); + if (TimeUnit.SECONDS.toDays(daysBtwLastLogin) > 1) { + progress = 0; + } + else if (TimeUnit.SECONDS.toDays(daysBtwLastLogin) == 1) { + progress++; + }*/ + + if (progress > 0) { + player.getStatisticManager().incrementValue(PlayerStatistic.DAYS_LOGGED_IN_ROW, progress); + progress = player.getStatisticManager().getIntValue(PlayerStatistic.DAYS_LOGGED_IN_ROW); + } + + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + if (progress > 0) { + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMGM.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMGM.java new file mode 100644 index 0000000..39dd981 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMGM.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.dao.mysql.ReferredDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementMGM implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = ReferredDao.countReferred(player.getDetails().getId()); + + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + if (progress != userAchievement.getProgress()) { + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMotto.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMotto.java new file mode 100644 index 0000000..64f53ce --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementMotto.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementMotto implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRegistrationDuration.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRegistrationDuration.java new file mode 100644 index 0000000..47ac9ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRegistrationDuration.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.DateUtil; + +import java.util.concurrent.TimeUnit; + +public class AchievementRegistrationDuration implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int daysSinceJoined = (int) Math.floor(TimeUnit.SECONDS.toDays((long) (DateUtil.getCurrentTimeSeconds() - Math.floor(player.getDetails().getJoinDate())))); + + if (daysSinceJoined >= achievementInfo.getProgressRequired()) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectEarned.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectEarned.java new file mode 100644 index 0000000..3cee855 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectEarned.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.dao.mysql.AchievementDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.rooms.user.RESPECT_NOTIFICATION; + +import java.util.stream.Collectors; + +public class AchievementRespectEarned implements AchievementProgress { + public static void convertOldPoints(Player player) { + if (!(player.getDetails().getRespectPoints() > 0)) { + return; + } + + for (int i = 1; i < 11; i++) { + if (!(player.getDetails().getRespectPoints() > 0)) { + continue; + } + + AchievementInfo achievementInfo = AchievementManager.getInstance().locateAchievement(AchievementType.ACHIEVEMENT_RESPECT_EARNED, i); + + if (player.getDetails().getRespectPoints() >= achievementInfo.getProgressRequired()) { + player.getDetails().setRespectPoints(player.getDetails().getRespectPoints() - achievementInfo.getProgressRequired()); + + var achievement = player.getAchievementManager().locateAchievement(AchievementType.ACHIEVEMENT_RESPECT_EARNED); + achievement.setProgress(achievementInfo.getProgressRequired() - 1); + AchievementDao.saveUserAchievement(player.getDetails().getId(), achievement); + } else { + int currentPoints = player.getDetails().getRespectPoints(); + player.getDetails().setRespectPoints(0); + + var achievement = player.getAchievementManager().locateAchievement(AchievementType.ACHIEVEMENT_RESPECT_EARNED); + achievement.setProgress(currentPoints - 1); + AchievementDao.saveUserAchievement(player.getDetails().getId(), achievement); + } + + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_RESPECT_EARNED, player); + } + + if (player.getDetails().getRespectPoints() > 0) { + player.getDetails().setRespectPoints(0); + } + + PlayerDao.saveRespect(player.getDetails().getId(), player.getDetails().getDailyRespectPoints(), player.getDetails().getRespectPoints(), player.getDetails().getRespectDay(), player.getDetails().getRespectGiven()); + } + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = userAchievement.getProgress() + 1; + + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + if (progress != userAchievement.getProgress()) { + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectGiven.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectGiven.java new file mode 100644 index 0000000..e2535fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRespectGiven.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementRespectGiven implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + userAchievement.setProgress(userAchievement.getProgress() + 1); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRoomEntry.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRoomEntry.java new file mode 100644 index 0000000..87d9b3d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementRoomEntry.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.dao.mysql.RoomVisitsDao; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementRoomEntry implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + int progress = RoomVisitsDao.countVisits(player.getDetails().getId()); + + if (progress > achievementInfo.getProgressRequired()) { + progress = achievementInfo.getProgressRequired(); + } + + if (progress != userAchievement.getProgress()) { + userAchievement.setProgress(progress); + return true; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementStudent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementStudent.java new file mode 100644 index 0000000..c229b6b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementStudent.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementStudent implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTags.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTags.java new file mode 100644 index 0000000..38e6035 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTags.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; + +public class AchievementTags implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + var tagList = TagDao.getUserTags(player.getDetails().getId()); + + int progress = tagList.size(); + + if (progress >= 5) { + progress = achievementInfo.getProgressRequired(); + } + + if (progress >= achievementInfo.getProgressRequired()) { + userAchievement.setProgress(progress); + return true; + } + + + return false; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTraderPass.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTraderPass.java new file mode 100644 index 0000000..0f2c9e1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/progressions/AchievementTraderPass.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.achievements.progressions; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementProgress; +import org.alexdev.havana.game.achievements.user.UserAchievement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.config.GameConfiguration; + +public class AchievementTraderPass implements AchievementProgress { + @Override + public boolean tryProgress(Player player, UserAchievement userAchievement, AchievementInfo achievementInfo) { + /*var canUseTrade = true;TimeUnit.SECONDS.toDays(DateUtil.getCurrentTimeSeconds() - player.getDetails().getJoinDate()) >= 3 && + player.getStatisticManager().getIntValue(PlayerStatistic.ONLINE_TIME) >= TimeUnit.MINUTES.toHours(60) && player.getDetails().isTradeEnabled();*/ + + if (player.getDetails().isTradeEnabled()/* && isActivated(player.getStatisticManager().getValue(PlayerStatistic.ACTIVATION_CODE))*/) { + userAchievement.setProgress(achievementInfo.getProgressRequired()); + return true; + } + + return false; + } + + public static boolean isActivated(String activationCode) { + if (!GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + return true; + } + + return activationCode == null; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievement.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievement.java new file mode 100644 index 0000000..412dfd0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievement.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.game.achievements.user; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementManager; + +public class UserAchievement { + private int achievementId; + private int userId; + private int progress; + + public UserAchievement(int achievementId, int userId, int progress) { + this.achievementId = achievementId; + this.userId = userId; + this.progress = progress; + } + + /** + * Get the achievement information. + * + * @return the achievement information + */ + public AchievementInfo getAchievementInfo() { + return AchievementManager.getInstance().getAchievement(this.achievementId); + } + + /** + * Get the user id who has this achievement. + * + * @return the user id + */ + public int getUserId() { + return userId; + } + + /** + * Get the current progress of the achievement. + * + * @return the progress + */ + public int getProgress() { + return progress; + } + + /** + * Set the current progress of the achievement. + * + * @param progress the current progress + */ + public void setProgress(int progress) { + this.progress = progress; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievementManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievementManager.java new file mode 100644 index 0000000..35ca0f0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/achievements/user/UserAchievementManager.java @@ -0,0 +1,260 @@ +package org.alexdev.havana.game.achievements.user; + +import org.alexdev.havana.dao.mysql.AchievementDao; +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +public class UserAchievementManager { + private int playerId; + private List userAchievements; + + /** + * Load the user achievements by the player. + * + * @param playerId the player to load + */ + public void loadAchievements(int playerId) { + this.playerId = playerId; + this.userAchievements = AchievementDao.getUserAchievements(playerId); + } + + /** + * Find user achievement by given name. + * + * @param achievementType the achievement type + * @return the user achievement + */ + public UserAchievement locateAchievement(AchievementType achievementType) { + if (this.userAchievements == null) { + return null; + } + + var optional = this.userAchievements.stream() + .filter(ach -> ach.getAchievementInfo().getName().equals(achievementType.getName())) + .sorted(Comparator.comparingInt(ach -> ach.getAchievementInfo().getLevel())) + .collect(Collectors.toList()); + + UserAchievement latestAchievement = null; + + if (optional.size() > 0) { + latestAchievement = optional.get(optional.size() - 1); + } + + if (latestAchievement != null) { + // User has already completed the achievement? Try add the next achievement else return nothing + if (latestAchievement.getProgress() >= latestAchievement.getAchievementInfo().getProgressRequired()) { + var nextAchievement = AchievementManager.getInstance().locateAchievement(achievementType, latestAchievement.getAchievementInfo().getLevel() + 1); + + if (nextAchievement != null) { + var userAchievement = new UserAchievement(nextAchievement.getId(), playerId, 0); + AchievementDao.newUserAchievement(playerId, userAchievement); + + this.userAchievements.add(userAchievement); + return userAchievement; + } else { + return null; + } + } else { + return latestAchievement; + } + + } else { + int achievementId = AchievementManager.getInstance().locateAchievement(achievementType, 1).getId(); + + var userAchievement = new UserAchievement(achievementId, playerId, 0); + AchievementDao.newUserAchievement(playerId, userAchievement); + + this.userAchievements.add(userAchievement); + return userAchievement; + } + } + + /** + * Generate the list of possible achievements a user can get. + * + * @return the list of possible achievements + */ + public List getPossibleAchievements() { + List possibleAchievements = new ArrayList<>(); + + for (var achievementInfo : AchievementManager.getInstance().getAchievements().values()) { + if (this.userAchievements.stream().anyMatch(userAchievement -> + userAchievement.getAchievementInfo().getName().equals(achievementInfo.getName()) && + userAchievement.getProgress() >= achievementInfo.getProgressRequired())) { + continue; + } + + long badgeCount = possibleAchievements.stream().filter(userAchievement -> userAchievement.getName().equals(achievementInfo.getName())).count(); + + if (badgeCount >= 5) { + continue; + } + + if (this.userAchievements.stream().anyMatch(userAchievement -> userAchievement.getAchievementInfo().getName().equals(achievementInfo.getName()) && userAchievement.getProgress() >= achievementInfo.getProgressRequired())) { + var optionalUserAchievement = this.userAchievements.stream().filter(userAchievement -> userAchievement.getAchievementInfo().getName().equals(achievementInfo.getName())).findFirst(); + + if (optionalUserAchievement.isPresent()) { + var foundAchievement = optionalUserAchievement.get(); + var newAchievement = AchievementManager.getInstance().locateAchievement(AchievementType.getByName(achievementInfo.getName()), foundAchievement.getAchievementInfo().getLevel() + 1); + + if (newAchievement != null) { + possibleAchievements.add(newAchievement); + } + } + } else { + possibleAchievements.add(achievementInfo); + } + } + + possibleAchievements.sort(Comparator.comparing(achievementInfo -> (achievementInfo.getName() + achievementInfo.getLevel()))); + return possibleAchievements; + } + + /** + * Get the user achievements. + * + * @return the user achievements + */ + public List getUserAchievements() { + return userAchievements; + } + + /** + * Get the achievement by level. + */ + public UserAchievement getAchievement(AchievementType achievementType, int level) { + for (var achievement : userAchievements) { + if (achievement.getAchievementInfo().getName().equals(achievementType.getName())) { + if (achievement.getAchievementInfo().getLevel() == level) { + return achievement; + } + } + } + + return null; + } + + /** + * Get the max completed achievement the user has by achievement name + */ + public UserAchievement getLatestAchievement(AchievementType achievementType) { + List achievements = this.userAchievements.stream().filter(achievement -> achievement.getAchievementInfo().getName().equals(achievementType.getName())) + .sorted(Comparator.comparingInt((UserAchievement achievement) -> achievement.getAchievementInfo().getLevel()).reversed()) + .collect(Collectors.toList()); + + achievements.removeIf(achievement -> achievement.getAchievementInfo().getProgressRequired() > achievement.getProgress()); + return achievements.size() > 0 ? achievements.get(0) : null; + } + + /** + * Process any achievements when user logs in again. + */ + public void processAchievements(Player player, boolean isLogin) { + if (isLogin) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_TAGS, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_LOGIN, player); + } + + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_HC, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_MGM, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_HAPPYHOUR, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_REGISTRATION_DURATION, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_HC, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_ALL_TIME_HOTEL_PRESENCE, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_GUIDE, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_TRADERPASS, player); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_EMAIL_VERIFICATION, player); + + GuideManager.getInstance().tryProgress(player); + GuideManager.getInstance().checkGuidingFriends(player); + + ClubSubscription.checkBadges(player); + + // Habbo Guide admins + if (player.getGuideManager().isGuide()) { + if (!player.getBadgeManager().hasBadge("GLK")) { + int guideGroupId = GameConfiguration.getInstance().getInteger("guides.group.id"); + var groupMember = player.getJoinedGroup(guideGroupId).getMember(player.getDetails().getId()); + + if (groupMember != null && + (groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR || + groupMember.getMemberRank() == GroupMemberRank.OWNER)) { + player.getBadgeManager().tryAddBadge("GLK", null); + } else { + player.getGuideManager().setGuide(GuideManager.getInstance().isGuide(player)); + } + } + } + + // Habbo eXperts + if (GameConfiguration.getInstance().getInteger("habbo.experts.group.id") > 0) { + if (!player.getBadgeManager().hasBadge("XXX")) { + int expertsGroupId = GameConfiguration.getInstance().getInteger("habbo.experts.group.id"); + var group = player.getJoinedGroup(expertsGroupId); + + if (group != null) { + var expertsMember = group.getMember(player.getDetails().getId()); + + if (expertsMember != null) { + player.getBadgeManager().tryAddBadge("XXX", null); + } + } + } + } + + // ChildLine + if (GameConfiguration.getInstance().getInteger("childline.group.id") > 0) { + if (!player.getBadgeManager().hasBadge("UK176")) { + int expertsGroupId = GameConfiguration.getInstance().getInteger("childline.group.id"); + var group = player.getJoinedGroup(expertsGroupId); + + if (group != null) { + var expertsMember = group.getMember(player.getDetails().getId()); + + if (expertsMember != null) { + player.getBadgeManager().tryAddBadge("UK176", null); + } + } + } + } + + Calendar currentCalendar = Calendar.getInstance(); + currentCalendar.setTimeInMillis(player.getDetails().getJoinDate() * 1000); + + //System.out.println("Join date: " + currentCalendar.get(Calendar.YEAR) + " / " + currentCalendar.get(Calendar.MONTH) + " / " + currentCalendar.get(Calendar.DAY_OF_MONTH)); + + long currentTime = DateUtil.getCurrentTimeSeconds(); + //long time = DateUtil.getFromFormat(DateUtil.SHORT_DATE, "11-11-2019"); + + if ((currentTime > DateUtil.getFromFormat(DateUtil.SHORT_DATE, "1-12-2019")) && (currentTime < DateUtil.getFromFormat(DateUtil.SHORT_DATE, "31-12-2019"))) { + player.getBadgeManager().tryAddBadge("XM19", null); + } + + long joinDate = player.getDetails().getJoinDate(); + + if ((joinDate > DateUtil.getFromFormat(DateUtil.SHORT_DATE, "10-12-2019")) && (joinDate < DateUtil.getFromFormat(DateUtil.SHORT_DATE, "18-12-2019"))) { + player.getBadgeManager().tryAddBadge("MRG00", null); + } + + // If joined opening day + if ((joinDate > DateUtil.getFromFormat(DateUtil.SHORT_DATE, "10-12-2019")) && (joinDate <= DateUtil.getFromFormat(DateUtil.SHORT_DATE, "12-12-2019"))) { + player.getBadgeManager().tryAddBadge("Z64", null); + } + + // Remove special badge. + //player.getBadgeManager().tryAddBadge("Z64", null); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ads/AdManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ads/AdManager.java new file mode 100644 index 0000000..e433287 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ads/AdManager.java @@ -0,0 +1,97 @@ +package org.alexdev.havana.game.ads; + +import org.alexdev.havana.dao.mysql.AdvertisementsDao; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; + +public class AdManager { + private static AdManager instance; + private final Map> ads; + + public AdManager() { + this.ads = AdvertisementsDao.getAds(); + } + + /** + * Get the {@link AdManager} instance + * + * @return the item manager instance + */ + public static AdManager getInstance() { + if (instance == null) { + instance = new AdManager(); + } + + return instance; + } + + /** + * Resets the item manager singleton. + */ + public void reset() { + instance = null; + AdManager.getInstance(); + } + + /** + * Get the collection of ads to use. + * + * @return the list of ads + */ + public Advertisement getRandomAd(int roomId) { + if (this.ads.containsKey(roomId)) { + List advertisements = this.ads.get(roomId).stream().filter(ad -> ad.isEnabled() && !ad.isLoadingAd()).collect(Collectors.toList()); + return advertisements.get(ThreadLocalRandom.current().nextInt(advertisements.size())); + } + + return null; + } + + /** + * Get the collection of ads to use. + * + * @return the list of ads + */ + public Advertisement getRandomLoadingAd() { + List advertisements = this.ads.containsKey(-1) ? this.ads.get(-1).stream().filter(ad -> ad.isEnabled() && ad.isLoadingAd()).collect(Collectors.toList()) : List.of(); + + if (advertisements.size() > 0) { + return advertisements.get(ThreadLocalRandom.current().nextInt(advertisements.size())); + } + + return null; + } + + /** + * Get the collection of ads to use. + * + * @return the list of ads + */ + public Advertisement getAd(int id) { + for (var kvp : this.ads.values()) { + for (Advertisement advertisement : kvp) { + if (advertisement.getId() == id) { + return advertisement; + } + } + } + + return null; + } + + public List getAds() { + List advertisementList = new ArrayList<>(); + + for (var roomAds : ads.values()) { + for (var ad : roomAds) { + advertisementList.add(ad); + } + } + + return advertisementList; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ads/Advertisement.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ads/Advertisement.java new file mode 100644 index 0000000..4b642c3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ads/Advertisement.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.game.ads; + +public class Advertisement { + private int id; + private int roomId; + private boolean isLoadingAd; + private String image; + private String url; + private boolean enabled; + + public Advertisement(int id, boolean isLoadingAd, int roomId, String image, String url, boolean enabled) { + this.id = id; + this.isLoadingAd = isLoadingAd; + this.roomId = roomId; + this.image = image; + this.url = url; + this.enabled = enabled; + } + + public int getId() { + return id; + } + + public boolean isLoadingAd() { + return isLoadingAd; + } + + public int getRoomId() { + return roomId; + } + + public String getImage() { + return image; + } + + public String getUrl() { + return url; + } + + public boolean isEnabled() { + return enabled; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AccountAlert.java b/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AccountAlert.java new file mode 100644 index 0000000..27997c4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AccountAlert.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.game.alerts; + +public class AccountAlert { + private final int id; + private final int userId; + private final AlertType alertType; + private final String message; + private final boolean isDisabled; + private final long createdAt; + + public AccountAlert(int id, int userId, AlertType alertType, String message, boolean isDisabled, long createdAt) { + this.id = id; + this.userId = userId; + this.alertType = alertType; + this.message = message; + this.isDisabled = isDisabled; + this.createdAt = createdAt; + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public AlertType getAlertType() { + return alertType; + } + + public String getMessage() { + return message; + } + + public boolean isDisabled() { + return isDisabled; + } + + public long getCreatedAt() { + return createdAt; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AlertType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AlertType.java new file mode 100644 index 0000000..bef33f8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/alerts/AlertType.java @@ -0,0 +1,8 @@ +package org.alexdev.havana.game.alerts; + +public enum AlertType { + HC_EXPIRED, + PRESENT, + TUTOR_SCORE, + CREDIT_DONATION +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/badges/Badge.java b/Havana-Server/src/main/java/org/alexdev/havana/game/badges/Badge.java new file mode 100644 index 0000000..98b1a34 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/badges/Badge.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.badges; + +public class Badge { + private String badgeCode; + private boolean equipped; + private int slotId; + + public Badge(String badgeCode, boolean equipped, int slotId) { + this.badgeCode = badgeCode; + this.equipped = equipped; + this.slotId = slotId; + } + + public String getBadgeCode() { + return badgeCode; + } + + public boolean isEquipped() { + return equipped; + } + + public void setEquipped(boolean equipped) { + this.equipped = equipped; + } + + public int getSlotId() { + return slotId; + } + + public void setSlotId(int slotId) { + this.slotId = slotId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/badges/BadgeManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/badges/BadgeManager.java new file mode 100644 index 0000000..92af208 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/badges/BadgeManager.java @@ -0,0 +1,195 @@ +package org.alexdev.havana.game.badges; + +import org.alexdev.havana.dao.mysql.BadgeDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.badges.ACHIEVEMENT_NOTIFICATION; +import org.alexdev.havana.messages.outgoing.user.badges.AVAILABLE_BADGES; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class BadgeManager { + private int userId; + private Player player; + + private List badges; + private Set badgesToSave; + + public BadgeManager() { + this.badgesToSave = new HashSet<>(); + } + + /** + * Load badges by constructor, the player will be null. + * + * @param userId the user id + */ + public BadgeManager(int userId) { + super(); + this.userId = userId; + this.badges = BadgeDao.getBadges(userId); + } + + /** + * Load players used when client logs into server. + * + * @param player the player instance + */ + public void loadBadges(Player player) { + this.player = player; + this.userId = player.getDetails().getId(); + this.badges = BadgeDao.getBadges(this.userId); + } + + /** + * Refresh badges, will also try and see if it can progress any achievements. + */ + public void refreshBadges() { + this.player.send(new AVAILABLE_BADGES(this.getBadges(), this.getEquippedBadges())); + } + + /** + * Get if the user has a badge. + * + * @param badgeCode the badge code to check + * @return true, if they do + */ + public boolean hasBadge(String badgeCode) { + for (Badge badge : this.badges) { + if (badge.getBadgeCode().toLowerCase().equals(badgeCode.toLowerCase())) { + return true; + } + } + + return false; + } + + /** + * Get the badge instance by badge code. + * + * @param badgeCode the badge code to check for. + * @return the badge instance, if found + */ + public Badge getBadge(String badgeCode) { + for (Badge badge : this.badges) { + if (badge.getBadgeCode().toLowerCase().equals(badgeCode.toLowerCase())) { + return badge; + } + } + + return null; + } + + /** + * Change the badge, by setting it as equipped or not, slot id or not, by the badge code. + * + * @param badgeCode the badge code of the badge to edit + * @param equipped whether it's equipped + * @param slotId the badge slot id (1-5) + */ + public void changeBadge(String badgeCode, boolean equipped, int slotId) { + if (!this.hasBadge(badgeCode)) { + return; + } + + Badge badge = this.getBadge(badgeCode); + badge.setEquipped(equipped); + badge.setSlotId(slotId); + + this.badgesToSave.add(badge); + } + + /** + * Try and add badge to player, if successful, will send a notification that a badge has been added. + * + * @param badgeCode the code of the badge to add + * @param badgeRemove the badge to remove (such as achievements replacing the lower level) + * @return the badge instance, if successfully added + */ + public Badge tryAddBadge(String badgeCode, String badgeRemove) { + return tryAddBadge(badgeCode, badgeRemove, 0); + } + + /** + * Try and add badge to player, if successful, will send a notification that a badge has been added. + * + * @param badgeCode the code of the badge to add + * @param badgeRemove the badge to remove (such as achievements replacing the lower level) + * @param level the level to add + * @return the badge instance, if successfully added + */ + public Badge tryAddBadge(String badgeCode, String badgeRemove, int level) { + if (this.hasBadge(badgeCode)) { + return null; + } + + if (badgeRemove != null) { + this.removeBadge(badgeRemove); + } + + Badge badge = new Badge(badgeCode, false, 0); + this.badges.add(badge); + + BadgeDao.newBadge(this.userId, badgeCode); + + if (this.player != null) { + this.player.send(new ACHIEVEMENT_NOTIFICATION(badgeCode, badgeRemove, level)); + } + return badge; + } + + /** + * Remove the badge by badge code. + * + * @param badgeCode the badge code to add + * @return the instance of the badge removed. + */ + public Badge removeBadge(String badgeCode) { + if (!this.hasBadge(badgeCode)) { + return null; + } + + Badge badge = this.getBadge(badgeCode); + this.badges.remove(badge); + + BadgeDao.removeBadge(this.userId, badge.getBadgeCode()); + return badge; + } + + /** + * Save badges that have been queued to save. + */ + public void saveQueuedBadges() { + BadgeDao.saveBadgeChanges(this.userId, this.badgesToSave); + this.badgesToSave.clear(); + } + + /** + * Get the list of all unequipped badges. + * + * @return the list of all unequipped badges + */ + public List getUnequippedBadges() { + return badges.stream().filter(badge -> !badge.isEquipped()).collect(Collectors.toList()); + } + + /** + * Get the list of all equipped badges. + * + * @return the list of equipped badges + */ + public List getEquippedBadges() { + return badges.stream().filter(Badge::isEquipped).collect(Collectors.toList()); + } + + /** + * Get all badges. + * + * @return the list of all badges + */ + public List getBadges() { + return badges; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ban/Ban.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/Ban.java new file mode 100644 index 0000000..5b550eb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/Ban.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.game.ban; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.util.DateUtil; + +public class Ban { + private final BanType banType; + private final String value; + private final String message; + private final long bannedUtil; + private final long bannedAt; + private final int bannedBy; + + public Ban(BanType banType, String value, String message, long bannedUntil, long bannedAt, int bannedBy) { + this.banType = banType; + this.value = value; + this.message = message; + this.bannedUtil = bannedUntil; + this.bannedAt = bannedAt; + this.bannedBy = bannedBy; + } + + public String getName() { + if (this.banType == BanType.MACHINE_ID) { + return BanDao.getName(this.value); + } + + if (this.banType == BanType.USER_ID) { + var name = PlayerDao.getName(Integer.parseInt(this.value)); + return name != null ? name : ""; + } + + return ""; + } + + public String getBannedBy() { + if (this.bannedBy == -1) { + return "Triggered spam filter"; + } + + if (this.bannedBy > 0) { + var name = PlayerDao.getName(this.bannedBy); + return name != null ? name : ""; + } + + return "Legacy Banned"; + } + + public BanType getBanType() { + return banType; + } + + public String getValue() { + return value; + } + + public String getMessage() { + return message; + } + + public String getBannedUtil() { + return DateUtil.getDate(bannedUtil, DateUtil.LONG_DATE); + } + + public String getBannedAt() { + return DateUtil.getDate(bannedAt, DateUtil.LONG_DATE); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanManager.java new file mode 100644 index 0000000..0f63206 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanManager.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.ban; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; + +import java.util.ArrayList; +import java.util.Map; + +public class BanManager { + private static BanManager instance; + + /** + * Disconnect ban accounts based on the following ban criteria. + * + * @param criteria the criteria to ban + */ + public void disconnectBanAccounts(Map criteria) { + for (Player player : new ArrayList<>(PlayerManager.getInstance().getPlayers())) { + if (criteria.containsKey(BanType.USER_ID)) { + if (player.getDetails().getId() == Integer.parseInt(criteria.get(BanType.USER_ID))) { + player.getNetwork().getChannel().close(); + break; + } + } + + if (criteria.containsKey(BanType.MACHINE_ID)) { + if (player.getDetails().getMachineId() != null && player.getDetails().getMachineId().equals(criteria.get(BanType.MACHINE_ID))) { + player.getNetwork().getChannel().close(); + break; + } + } + + /*if (criteria.containsKey(BanType.IP_ADDRESS)) { + if (NettyPlayerNetwork.getIpAddress(player.getNetwork().getChannel()).equals(criteria.get(BanType.IP_ADDRESS))) { + player.getNetwork().getChannel().close(); + break; + } + }*/ + } + } + + /** + * Gets the instance + * + * @return the instance + */ + public static BanManager getInstance() { + if (instance == null) { + instance = new BanManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanType.java new file mode 100644 index 0000000..2904863 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ban/BanType.java @@ -0,0 +1,7 @@ +package org.alexdev.havana.game.ban; + +public enum BanType { + USER_ID, + MACHINE_ID, + IP_ADDRESS; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/bot/Bot.java b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/Bot.java new file mode 100644 index 0000000..263159d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/Bot.java @@ -0,0 +1,70 @@ +package org.alexdev.havana.game.bot; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.entities.RoomBot; +import org.alexdev.havana.game.room.entities.RoomEntity; + +public class Bot extends Entity { + private PlayerDetails playerDetails; + private RoomBot roomUser; + private BotData botData; + private long nextWalkTime; + private long nextSpeechTime; + + public Bot() { + this.playerDetails = new PlayerDetails(); + this.roomUser = new RoomBot(this); + } + + public Bot(BotData botData) { + this.playerDetails = new PlayerDetails(); + this.roomUser = new RoomBot(this); + this.botData = botData; + } + + @Override + public boolean hasFuse(Fuseright permission) { + return false; + } + + @Override + public PlayerDetails getDetails() { + return this.playerDetails; + } + + @Override + public RoomEntity getRoomUser() { + return this.roomUser; + } + + @Override + public EntityType getType() { + return EntityType.BOT; + } + + @Override + public void dispose() { } + + public BotData getBotData() { + return botData; + } + + public long getNextWalkTime() { + return nextWalkTime; + } + + public void setNextWalkTime(long nextWalkTime) { + this.nextWalkTime = nextWalkTime; + } + + public long getNextSpeechTime() { + return nextSpeechTime; + } + + public void setNextSpeechTime(long nextSpeechTime) { + this.nextSpeechTime = nextSpeechTime; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotData.java new file mode 100644 index 0000000..d43b693 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotData.java @@ -0,0 +1,109 @@ +package org.alexdev.havana.game.bot; + +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.regex.Pattern; + +public class BotData { + private String name; + private String mission; + private Position startPosition; + private String figure; + + private List walkspace; + private List speeches; + private List responses; + private List unrecognisedSpeech; + private List drinks; + + public BotData(String name, String mission, String figure) { + this.name = name; + this.mission = mission; + this.figure = figure; + this.startPosition = new Position(); + this.walkspace = new ArrayList<>(); + this.speeches = new ArrayList<>(); + this.responses = new ArrayList<>(); + this.unrecognisedSpeech = new ArrayList<>(); + this.drinks = new ArrayList<>(); + } + + public BotData(String name, String mission, int x, int y, int headRotation, int bodyRotation, String figure, String walkspaceData, + String speech, String responses, String unrecognisedResponses, String drinks) { + this.name = name; + this.mission = mission; + this.startPosition = new Position(x, y, 0, headRotation, bodyRotation); + this.figure = figure; + this.walkspace = new ArrayList<>(); + + for (String positionDatas : walkspaceData.split(" ")) { + String[] positionData = positionDatas.split(","); + this.walkspace.add(new Position(Integer.parseInt(positionData[0]), Integer.parseInt(positionData[1]))); + } + + if (this.walkspace.stream().noneMatch(position -> position.getX() == this.startPosition.getX() && position.getY() == this.startPosition.getY())) { + this.walkspace.add(new Position(this.startPosition.getX(), this.startPosition.getY())); + } + + this.speeches = this.parseSpeech(speech); + this.responses = this.parseSpeech(responses); + this.unrecognisedSpeech = this.parseSpeech(unrecognisedResponses); + this.drinks = drinks.length() > 0 ? Arrays.asList(drinks.split(",")) : new ArrayList<>(); + } + + private List parseSpeech(String responses) { + var botSpeech = new ArrayList(); + + for (String sentence : responses.split(Pattern.quote("|"))) { + String text = StringUtil.filterInput(sentence, true); + + if (text.isBlank()) + continue; + + botSpeech.add(new BotSpeech(sentence)); + } + + return botSpeech; + } + + public String getName() { + return name; + } + + + public String getMission() { + return mission; + } + + public Position getStartPosition() { + return startPosition; + } + + public String getFigure() { + return figure; + } + + public List getWalkspace() { + return walkspace; + } + + public List getSpeeches() { + return speeches; + } + + public List getResponses() { + return responses; + } + + public List getUnrecognisedSpeech() { + return unrecognisedSpeech; + } + + public List getDrinks() { + return drinks; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotManager.java new file mode 100644 index 0000000..ce7f5b5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotManager.java @@ -0,0 +1,125 @@ +package org.alexdev.havana.game.bot; + +import org.alexdev.havana.dao.mysql.BotDao; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.tasks.BotTask; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class BotManager { + private static BotManager instance; + + public BotManager() { + + } + + /** + * Called upon initial room entry to load room bots. + * + * @param room the room to add the bots to + */ + public void addBots(Room room) { + List botDataList = BotDao.getBotData(room.getId()); + + for (BotData botData : botDataList) { + Bot bot = new Bot(botData); + bot.getDetails().fill(0, botData.getName(), botData.getFigure(), botData.getMission(), "M"); + + Position startPosition = botData.getStartPosition(); + startPosition.setZ(room.getMapping().getTile(botData.getStartPosition().getX(), botData.getStartPosition().getY()).getWalkingHeight()); + + room.getEntityManager().enterRoom(bot, startPosition); + } + + if (botDataList.size() > 0) { + room.getTaskManager().scheduleTask("BotCommandTask", new BotTask(room), 0, 1, TimeUnit.SECONDS); + } + } + + /** + * Handle the speech called upon the bots. + * + * @param player the player speaking + * @param room the room speaking in + * @param message the message spoken + */ + public void handleSpeech(Player player, Room room, String message) { + List bots = new ArrayList<>(); + + for (Bot bot : room.getEntityManager().getEntitiesByClass(Bot.class)) { + if (bot.getRoomUser().getPosition().getDistanceSquared(player.getRoomUser().getPosition()) > 14) { + continue; + } + + if (bot.getBotData() == null) { + continue; + } + + bots.add(bot); + } + + for (Bot bot : bots) { + String drink = HasRequestedDrink(player, bot, message); + + if (drink != null) { + if (bot.getBotData().getResponses().size() > 0) { + var botSpeech = bot.getBotData().getResponses().get(ThreadLocalRandom.current().nextInt(bot.getBotData().getResponses().size())); + var chatMessage = botSpeech.getSpeech(); + + chatMessage = chatMessage.replace("%lowercaseDrink%", drink.toLowerCase()); + chatMessage = chatMessage.replace("%drink%", drink); + + bot.getRoomUser().talk(chatMessage, botSpeech.getChatMessageType()); + } + continue; + } + + if (message.toLowerCase().contains(bot.getDetails().getName().toLowerCase())) { + if (bot.getBotData().getUnrecognisedSpeech().size()>0) { + var botSpeech = bot.getBotData().getUnrecognisedSpeech().get(ThreadLocalRandom.current().nextInt(bot.getBotData().getUnrecognisedSpeech().size())); + bot.getRoomUser().talk(botSpeech.getSpeech(), botSpeech.getChatMessageType()); + } + } + } + } + + private String HasRequestedDrink(Player player, Bot bot, String message) { + if (bot.getBotData().getDrinks().isEmpty()) + return null; + + for (String drink : bot.getBotData().getDrinks()) { + if (message.toLowerCase().contains(drink.toLowerCase())) { + player.getRoomUser().carryItem(-1, drink); + return drink; + } + } + + if (message.toLowerCase().contains("drink please") || + message.toLowerCase().contains("can i have") || + message.toLowerCase().contains("i'll have")) { + String drink = bot.getBotData().getDrinks().get(ThreadLocalRandom.current().nextInt(bot.getBotData().getDrinks().size())); + player.getRoomUser().carryItem(-1, drink); + return drink; + } + + return null; + } + + /** + * Get the {@link BotManager} instance + * + * @return the catalogue manager instance + */ + public static BotManager getInstance() { + if (instance == null) { + instance = new BotManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotSpeech.java b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotSpeech.java new file mode 100644 index 0000000..5cf18fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/bot/BotSpeech.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.bot; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; + +import java.util.regex.Pattern; + +public class BotSpeech { + private String speech; + private CHAT_MESSAGE.ChatMessageType chatMessageType; + + public BotSpeech(String speech) { + if (speech.contains("#")) { + this.speech = speech.split(Pattern.quote("#"))[0]; + this.chatMessageType = CHAT_MESSAGE.ChatMessageType.valueOf(speech.split(Pattern.quote("#"))[1]); + } else { + this.speech = speech; + this.chatMessageType = CHAT_MESSAGE.ChatMessageType.CHAT; + } + } + + public String getSpeech() { + return speech; + } + + public CHAT_MESSAGE.ChatMessageType getChatMessageType() { + return chatMessageType; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueItem.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueItem.java new file mode 100644 index 0000000..a93b98d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueItem.java @@ -0,0 +1,198 @@ +package org.alexdev.havana.game.catalogue; + +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.List; + +public class CatalogueItem { + private int id; + private String saleCode; + private int[] pages; + private int orderId; + private int priceCoins; + private int pricePixels; + private int seasonalCoins; + private int seasonalPixels; + private int amount; + private boolean hidden; + private ItemDefinition definition; + private String itemSpecialId; + private boolean isPackage; + private List packages; + private int definitionId; + private String activeAt; + + public CatalogueItem(int id, String saleCode, String pageId, int orderId, int price, int pricePixels, int seasonalCoins, int seasonalPixels, int amount, boolean hidden, int definitionId, String itemSpecialId, boolean isPackage, String activeAt) { + int[] pages = new int[pageId.split(",").length]; + + int i = 0; + if (pageId.length() > 0) { + for (String data : pageId.split(",")) { + pages[i++] = Integer.parseInt(data); + } + } + + this.setPageData(id, saleCode, pages, orderId, price, pricePixels, seasonalCoins, seasonalPixels, amount, hidden, definitionId, itemSpecialId, isPackage, activeAt); + } + + + public CatalogueItem(int id, String saleCode, int[] pages, int orderId, int price, int pricePixels, int seasonalCoins, int seasonalPixels, int amount, boolean hidden, int definitionId, String itemSpecialId, boolean isPackage, String activeAt) { + this.setPageData(id, saleCode, pages, orderId, price, pricePixels, seasonalCoins, seasonalPixels, amount, hidden, definitionId, itemSpecialId, isPackage, activeAt); + } + + private void setPageData(int id, String saleCode, int[] pages, int orderId, int price, int pricePixels, int seasonalCoins, int seasonalPixels, int amount, boolean hidden, int definitionId, String itemSpecialId, boolean isPackage, String activeAt) { + this.id = id; + this.saleCode = saleCode; + this.orderId = orderId; + this.priceCoins = price; + this.pricePixels = pricePixels; + this.seasonalCoins = seasonalCoins; + this.seasonalPixels = seasonalPixels; + this.amount = amount; + this.hidden = hidden; + this.definitionId = definitionId; + this.definition = ItemManager.getInstance().getDefinition(definitionId); + this.itemSpecialId = itemSpecialId; + this.isPackage = isPackage; + this.packages = new ArrayList<>(); + this.pages = pages; + this.activeAt = activeAt; + + if (this.definition == null && !this.isPackage) { + System.out.println("Item " + this.id + " (" + this.saleCode + ") has an invalid definition id: " + definitionId); + } + } + + public int getId() { + return id; + } + + public String getType() { + if (this.isPackage) { + return "d"; + } else { + if (this.definition.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + return "i"; + } else if (this.definition.hasBehaviour(ItemBehaviour.EFFECT)) { + return "e"; + } else { + return "s"; + } + } + } + + public String getSaleCode() { + return saleCode; + } + + public int[] getPages() { + return pages; + } + + public boolean hasPage(int pageId) { + for (int page : this.pages) { + if (page == pageId) { + return true; + } + } + + return false; + } + + public int getOrderId() { + return orderId; + } + + public ItemDefinition getDefinition() { + return definition; + } + + public int getPriceCoins() { + return priceCoins; + } + + public int getPricePixels() { + return pricePixels; + } + + public int getAmount() { + return amount; + } + + public void setPriceCoins(int priceCoins) { + this.priceCoins = priceCoins; + } + + public void setPricePixels(int pricePixels) { + this.pricePixels = pricePixels; + } + + public int getSeasonalCoins() { + return seasonalCoins; + } + + public void setSeasonalCoins(int seasonalCoins) { + this.seasonalCoins = seasonalCoins; + } + + public int getSeasonalPixels() { + return seasonalPixels; + } + + public void setSeasonalPixels(int seasonalPixels) { + this.seasonalPixels = seasonalPixels; + } + + public String getItemSpecialId() { + return itemSpecialId; + } + + public boolean isPackage() { + return isPackage; + } + + public List getPackages() { + if (this.isPackage) { + return packages; + } + + List items = new ArrayList<>(); + items.add(new CataloguePackage(this.saleCode, this.definition.getId(), this.itemSpecialId, this.amount)); + + return items; + + } + + public String getActiveAt() { + return activeAt; + } + + public boolean isActive() { + if (activeAt == null) { + return false; + } + + return this.activeAt.equalsIgnoreCase(DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "MM-dd")); + } + + /** + * Copy the catalogue item instance so we can set prices that won't affect the main instance. + * + * @return the new catalogue item instance + */ + public CatalogueItem copy() { + return new CatalogueItem(this.id, this.saleCode, this.pages, this.orderId, this.priceCoins, this.pricePixels, this.seasonalCoins, this.seasonalPixels, this.amount, this.hidden, this.definition.getId(), this.itemSpecialId, this.isPackage, this.activeAt); + } + + public boolean isHidden() { + return hidden; + } + + public int getDefinitionId() { + return definitionId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueManager.java new file mode 100644 index 0000000..06feccc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CatalogueManager.java @@ -0,0 +1,518 @@ +package org.alexdev.havana.game.catalogue; + +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.catalogue.collectables.CollectableData; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.extradata.ExtraDataManager; +import org.alexdev.havana.game.item.extradata.types.TrophyExtraData; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pets.PetManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.game.room.mapping.RoomMapping; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECTS; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECT_ADDED; +import org.alexdev.havana.messages.outgoing.user.currencies.FILM; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.HexValidator; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.StringUtils; + +import java.sql.SQLException; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class CatalogueManager { + public static final int XP_BOX_COST = 100; + public static final int DAILY_LIMIT_XP = 300;//150; + + private static CatalogueManager instance; + + private List cataloguePageList; + private List catalogueItemList; + private List cataloguePackageList; + + private Map> badgeRewards; + + public CatalogueManager() { + this.cataloguePageList = CatalogueDao.getPages(); + this.cataloguePackageList = CatalogueDao.getPackages(); + this.catalogueItemList = CatalogueDao.getItems(); + this.loadPackages(); + this.reloadBadgeRewards(); + } + + /** + * Get the badge rewards upon purchasing an item + */ + public void reloadBadgeRewards() { + this.badgeRewards = CatalogueDao.getBadgeRewards(); + } + + /** + * Gets the child tabs. + * + * @param parentId the parent id + * @param rank the rank + * @return the child tabs + */ + public List getChildPages(int parentId, int rank, boolean hasClub) { + List pageList = new ArrayList<>(); + + for (var page : this.cataloguePageList) { + if (page.getParentId() != parentId) { + continue; + } + + if (page.getMinRole().getRankId() > rank) { + continue; + } + + if (page.isClubOnly() && !hasClub) { + continue; + } + + if (!page.isValidSeasonal()) { + if (PlayerRank.COMMUNITY_MANAGER.getRankId() > rank) { + continue; + } + } + + pageList.add(page); + } + + return pageList; + + + /*try { + var pageList = this.cataloguePageList.stream().filter(tab -> (tab.getMinRole().getRankId() <= rank) && tab.getParentId() == parentId && tab.isValidSeasonal()).collect(Collectors.toList()); + pageList.removeIf(tab -> tab.isClubOnly() && !hasClub); + + return pageList; + } catch (Exception ex) { + return new ArrayList<>(); + }*/ + } + + /** + * Load catalogue packages for all catalogue items. + */ + private void loadPackages() { + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (!catalogueItem.isPackage()) { + continue; + } + + for (CataloguePackage cataloguePackage : this.cataloguePackageList) { + if (catalogueItem.getSaleCode().equals(cataloguePackage.getSaleCode())) { + catalogueItem.getPackages().add(cataloguePackage); + } + } + } + } + + /** + * Get a page by the page index + * + * @param pageIndex the index of the page to get for + * @return the catalogue page + */ + public CataloguePage getCataloguePage(int pageIndex) { + for (CataloguePage cataloguePage : this.cataloguePageList) { + if (cataloguePage.getId() == pageIndex) { + return cataloguePage; + } + } + + return null; + } + + /** + * Get an item by it's sale code. + * + * @param saleCode the item sale code identifier + * @return the item, if successful + */ + public CatalogueItem getCatalogueItem(String saleCode) { + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (catalogueItem.getSaleCode().equals(saleCode)) { + return catalogueItem; + } + } + + return null; + } + + /** + * Get an item by its catalogue item id. + * + * @return the item, if successful + */ + public CatalogueItem getCatalogueItem(int itemId) { + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (catalogueItem.getId() == itemId) { + return catalogueItem; + } + } + + return null; + } + + /** + * Get an item by its catalogue sprite id. + * + * @return the item, if successful + */ + public CatalogueItem getCatalogueBySprite(int spriteId) { + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (catalogueItem == null || catalogueItem.getDefinition() == null) { + continue; + } + + if (catalogueItem.getDefinition().getSpriteId() == spriteId) { + return catalogueItem; + } + } + + return null; + } + + /** + * Get catalogue page list for a certain rank + * + * @return the list of catalogue pages + */ + public List getSeasonalItems() { + List itemList = new ArrayList<>(); + + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (catalogueItem.isActive()) { + var item = catalogueItem.copy(); + item.setPriceCoins(item.getSeasonalCoins()); + item.setPricePixels(item.getSeasonalPixels()); + itemList.add(item); + } + } + + return itemList; + } + + /** + * Get a list of items for the catalogue page. + * + * @param pageId the id of the page to get the items for + * @param rawItems if this is set to true, pages like the rares page and collectables page will not return any items + * @return the list of items + */ + public List getCataloguePageItems(int pageId, boolean rawItems) { + List items = new ArrayList<>(); + + // Ignore any game logic checks when requesting catalogue pages + if (!rawItems) { + if (pageId == GameConfiguration.getInstance().getInteger("rare.cycle.page.id")) { + var itemList = getSeasonalItems(); + + if (itemList.size() > 0) { + return itemList; + } + } + + // Do collectables + CollectableData collectableData = CollectablesManager.getInstance().getCollectableDataByPage(pageId); + + if (collectableData != null) { + CatalogueItem catalogueItem = collectableData.getActiveItem(); + return List.of(catalogueItem); + } + } + + for (CatalogueItem catalogueItem : this.catalogueItemList) { + if (catalogueItem.isHidden()) { + continue; + } + + if (catalogueItem.hasPage(pageId)) { + items.add(catalogueItem); + } + } + + items.sort(Comparator.comparingInt(CatalogueItem::getOrderId)); + return items; + } + + /** + * Purchase handler for player details. + * + * @param playerDetails the details for player + * @param item the item the user is buying + * @param extraData the extra data attached to item + * @param overrideName the override name (used for trophies) + * @param timestamp the time of purchase + * @return the list of items bought + * @throws SQLException the sql exception + */ + public List purchase(PlayerDetails playerDetails, CatalogueItem item, String extraData, String overrideName, long timestamp) throws SQLException { + List itemsBought = new ArrayList<>(); + + if (!item.isPackage()) { + for (int i = 0; i < item.getAmount(); i++) { + Item newItem = purchase(playerDetails, item.getDefinition(), extraData, item.getItemSpecialId(), overrideName, timestamp); + + if (newItem != null) { + itemsBought.add(newItem); + } + } + } else { + for (CataloguePackage cataloguePackage : item.getPackages()) { + for (int i = 0; i < cataloguePackage.getAmount(); i++) { + Item newItem = purchase(playerDetails, cataloguePackage.getDefinition(), null, cataloguePackage.getSpecialSpriteId(), overrideName, timestamp); + + if (newItem != null) { + itemsBought.add(newItem); + } + } + } + } + + return itemsBought; + } + + /** + * The player purchase handler but purchase single item. + * + * @param playerDetails the details of the player + * @param def the definition of the item + * @param extraData the extra data attached to the item + * @param specialSpriteId the special sprite id used for posters + * @param overrideName the override name - used for trophies + * @param timestamp the time of purchase + * @return the item bought + * @throws SQLException the sql exception + */ + public Item purchase(PlayerDetails playerDetails, ItemDefinition def, String extraData, String specialSpriteId, String overrideName, long timestamp) throws SQLException { + Player player = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (def.hasBehaviour(ItemBehaviour.EFFECT)) { + return purchaseEffect(playerDetails, Integer.parseInt(specialSpriteId)); + } + + // If the item is film, just give the user film + if (def.getSprite().equals("film")) { + CurrencyDao.increaseFilm(playerDetails, 5); + + if (player != null) { + player.send(new FILM(playerDetails)); + } + return null; + } + + String customData = ""; + + if (extraData != null) { + if (def.hasBehaviour(ItemBehaviour.DECORATION)) { + customData = extraData; + } else { + if (specialSpriteId.length() > 0) { + customData = specialSpriteId; + } + } + + if (def.hasBehaviour(ItemBehaviour.POST_IT)) { + customData = "20"; + } + + if (def.getInteractionType() == InteractionType.SCOREBOARD) { + customData = "x"; + } + + if (def.hasBehaviour(ItemBehaviour.PRIZE_TROPHY)) { + var trophyName = (overrideName != null ? overrideName : playerDetails.getName()); + var trophyUserData = PlayerManager.getInstance().getPlayerData(trophyName); + + var jsonInstance = new TrophyExtraData(trophyUserData.getId(), StringUtil.filterInput(extraData, true), timestamp); + customData = ExtraDataManager.getGson().toJson(jsonInstance); + } + + if (def.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + customData = Item.DEFAULT_ROOMDIMMER_CUSTOM_DATA; + } + } + + if (customData.isEmpty()) { + customData = "0"; + } + + Item item = new Item(); + item.setOwnerId(playerDetails.getId()); + item.setDefinitionId(def.getId()); + item.setCustomData(customData); + + RoomMapping.resetExtraData(item, false); + + if (item.getDefinition().getRentalTime() > 0) { + item.setExpireTime(DateUtil.getCurrentTimeSeconds() + item.getDefinition().getRentalTime()); + } + + // If the item is a camera, give them 2 free film. + if (def.getSprite().equals("camera")) { + CurrencyDao.increaseFilm(playerDetails, 2); + + if (player != null) { + player.send(new FILM(playerDetails)); + } + } + + if (def.getInteractionType() == InteractionType.PET_NEST) { + if (extraData != null) { + + if (!extraData.contains(Character.toString((char) 10))) { + return null; + } + + String[] petData = extraData.split(Character.toString((char) 10)); + + if (petData.length != 3 || !StringUtils.isNumeric(petData[1])) { + return null; + } + + String name = StringUtil.filterInput(petData[0], true); + String type = def.getSprite().replace("pets", ""); + int race = Integer.parseInt(petData[1]); + String color = StringUtil.filterInput(petData[2], true); + + if (HexValidator.validate(color) && !color.startsWith("#")) { + + if (PetManager.getInstance().isValidName(playerDetails.getName(), name) < 1) { + ItemDao.newItem(item); + PetDao.createPet(item.getDatabaseId(), name, type, race, color); + } else { + return null; + } + } + } + } + else { + ItemDao.newItem(item); + } + + if (def.hasBehaviour(ItemBehaviour.TELEPORTER)) { + Item linkedTeleporterItem = new Item(); + linkedTeleporterItem.setOwnerId(playerDetails.getId()); + linkedTeleporterItem.setDefinitionId(def.getId()); + linkedTeleporterItem.setCustomData(customData); + + if (linkedTeleporterItem.getDefinition().getRentalTime() > 0) { + linkedTeleporterItem.setExpireTime(DateUtil.getCurrentTimeSeconds() + item.getDefinition().getRentalTime()); + } + + ItemDao.newItem(linkedTeleporterItem); + + if (player != null) { + player.getInventory().addItem(linkedTeleporterItem); + } + + TeleporterDao.addPair(linkedTeleporterItem.getDatabaseId(), item.getDatabaseId()); + TeleporterDao.addPair(item.getDatabaseId(), linkedTeleporterItem.getDatabaseId()); + } + + if (player != null) { + player.getInventory().addItem(item); + } + + return item; + } + + private static Item purchaseEffect(PlayerDetails playerDetails, int specialSpriteId) { + Effect effect = EffectDao.newEffect(playerDetails.getId(), specialSpriteId, -1, false); + + if (effect == null) { + return null; + } + + Player player = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (player != null) { + player.getEffects().add(effect); + + player.send(new AVATAR_EFFECT_ADDED(effect)); + player.send(new AVATAR_EFFECTS(player.getEffects())); + } + + return null; + } + + /** + * Get catalogue page list. + * + * @return the list of catalogue pages + */ + public List getCataloguePages() { + return this.cataloguePageList; + } + + /** + * Get catalogue page list for a certain rank + * + * @return the list of catalogue pages + */ + public List getPagesForRank(PlayerRank minimumRank) { + List cataloguePagesForRank = new ArrayList<>(); + + for (CataloguePage page : this.cataloguePageList) { + if (minimumRank.getRankId() >= page.getMinRole().getRankId()) { + cataloguePagesForRank.add(page); + } + } + + return cataloguePagesForRank; + } + + /** + * Get catalogue items list. + * + * @return the list of items packages + */ + public List getCatalogueItems() { + return catalogueItemList; + } + + /** + * Get the {@link CatalogueManager} instance + * + * @return the catalogue manager instance + */ + public static CatalogueManager getInstance() { + if (instance == null) { + instance = new CatalogueManager(); + } + + return instance; + } + + /** + * Resets the catalogue manager singleton. + */ + public static void reset() { + instance = null; + CatalogueManager.getInstance(); + } + + /** + * Get the badge reward list + * @return the list of badge rewards + */ + public Map> getBadgeRewards() { + return badgeRewards; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePackage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePackage.java new file mode 100644 index 0000000..e94f59b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePackage.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.game.catalogue; + +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.ItemManager; + +public class CataloguePackage { + private String saleCode; + private int definitionId; + private String specialSpriteId; + private int amount; + + public CataloguePackage(String saleCode, int definitionId, String specialSpriteId, int amount) { + this.saleCode = saleCode; + this.definitionId = definitionId; + this.specialSpriteId = specialSpriteId; + this.amount = amount; + } + + public String getSaleCode() { + return saleCode; + } + + public int getDefinitionId() { + return definitionId; + } + + public ItemDefinition getDefinition() { + return ItemManager.getInstance().getDefinition(this.definitionId); + } + + public String getSpecialSpriteId() { + return specialSpriteId; + } + + public int getAmount() { + return amount; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePage.java new file mode 100644 index 0000000..788466b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/CataloguePage.java @@ -0,0 +1,210 @@ +package org.alexdev.havana.game.catalogue; + +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.EasterUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; + +public class CataloguePage { + private int id; + private int parentId; + private PlayerRank minRole; + private boolean isNavigatable; + private boolean isClubOnly; + private String name; + private int icon; + private int colour; + private String layout; + private List images; + private List texts; + private String seasonalStartDate; + private int seasonalLength; + + public CataloguePage(int id, int parentId, PlayerRank minRole, boolean isNavigatable, boolean isClubOnly, String name, int icon, int colour, String layout, List images, List texts, + String seasonalStartDate, int seasonalLength) { + this.id = id; + this.parentId = parentId; + this.minRole = minRole; + this.isNavigatable = isNavigatable; + this.isClubOnly = isClubOnly; + this.name = name; + this.icon = icon; + this.colour = colour; + this.layout = layout; + this.images = images; + this.texts = texts; + //this.images = StringUtil.GSON.fromJson(images, new TypeToken>(){}.getType()); + //this.texts = StringUtil.GSON.fromJson(texts, new TypeToken>(){}.getType()); + this.seasonalStartDate = seasonalStartDate; + this.seasonalLength = seasonalLength; + + if (this.minRole == null) { + this.minRole = PlayerRank.ADMINISTRATOR; + } + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public void setLayout(String layout) { + this.layout = layout; + } + + public PlayerRank getMinRole() { + return minRole; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLayout() { + return layout; + } + + + /*public String getBody() { + if (RareManager.getInstance().getCurrentRare() != null && + this.getId() == GameConfiguration.getInstance().getInteger("rare.cycle.page.id")) { + + TimeUnit rareManagerUnit = TimeUnit.valueOf(GameConfiguration.getInstance().getString("rare.cycle.refresh.timeunit")); + + long interval = rareManagerUnit.toSeconds(GameConfiguration.getInstance().getInteger("rare.cycle.refresh.interval")); + long currentTick = RareManager.getInstance().getTick().get(); + long timeUntil = interval - currentTick; + + return (this.body + " The time until the next rare is " + DateUtil.getReadableSeconds(timeUntil) + "!"); + } + + return body; + }*/ + + public int getParentId() { + return parentId; + } + + public int getIcon() { + return icon; + } + + public int getColour() { + return colour; + } + + public boolean isNavigatable() { + return isNavigatable; + } + + public boolean isClubOnly() { + return isClubOnly; + } + + public List getImages() { + if (this.layout.equalsIgnoreCase("frontpage3")) { + List imageList = new ArrayList<>(); + + for (var image : images) { + String text = image; + + for (int i = 1; i < 5; i++) { + if (i == 1) { +// FilenameUtils.removeExtension(client.post().getString("catalogue.frontpage.input.1")) + var fileName = GameConfiguration.getInstance().getString("catalogue.frontpage.input." + i); + fileName = fileName.substring(0, fileName.lastIndexOf(".")); + + text = text.replace("{input" + i + "}", fileName); + } else { + text = text.replace("{input" + i + "}", GameConfiguration.getInstance().getString("catalogue.frontpage.input." + i)); + } + } + + imageList.add(text); + } + + return imageList; + } + + return images; + } + + public List getTexts() { + if (this.layout.equalsIgnoreCase("frontpage3")) { + List textList = new ArrayList<>(); + + for (var image : texts) { + String text = image; + + for (int i = 1; i < 5; i++) { + text = text.replace("{input" + i + "}", GameConfiguration.getInstance().getString("catalogue.frontpage.input." + i)); + } + + textList.add(text); + } + + return textList; + } + + return texts; + } + + public String getSeasonalStartDate() { + return seasonalStartDate; + } + + public int getSeasonalLength() { + return seasonalLength; + } + + public boolean isValidSeasonal() { + if (!GameConfiguration.getInstance().getBoolean("seasonal.items")) { + return true; + } + + if (this.seasonalStartDate == null) { + return true; + } + + if (this.seasonalStartDate.equals("EASTER")) { + return EasterUtil.isEasterMonday(); + } + + var currentTime = DateUtil.getCurrentTimeSeconds(); + var currentYear = DateUtil.getDate(currentTime, "yyyy"); + + var startTime = DateUtil.getFromFormat("yyyy-MM-dd", currentYear + "-" +this.seasonalStartDate); + var endTime = startTime + this.seasonalLength; + + return (currentTime > startTime) && (endTime > DateUtil.getCurrentTimeSeconds()); + } + + public CataloguePage copy() { + /* + private int id; + private int parentId; + private PlayerRank minRole; + private boolean isNavigatable; + private boolean isClubOnly; + private String name; + private int icon; + private int colour; + private String layout; + private List images; + private List texts; + private String seasonalStartDate; + private int seasonalLength; + */ + return new CataloguePage(id, parentId, minRole, isNavigatable, isClubOnly, name, icon, colour, layout, images, texts, seasonalStartDate, seasonalLength); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectableData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectableData.java new file mode 100644 index 0000000..5eeb2ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectableData.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.game.catalogue.collectables; + +import org.alexdev.havana.dao.mysql.CollectablesDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.util.DateUtil; + +public class CollectableData { + private int currentPosition; + private long expiry; + private final long lifetime; + + private int collectablesStorePage; + private int collectablesAdminPage; + + private final String[] classNames; + + public CollectableData(int collectablesStorePage, int collectablesAdminPage, long expiry, long lifetime, int currentPosition, String[] classNames) { + this.collectablesStorePage = collectablesStorePage; + this.collectablesAdminPage = collectablesAdminPage; + this.expiry = expiry; + this.lifetime = lifetime; + this.currentPosition = currentPosition; + this.classNames = classNames; + } + + /** + * The method for checking if the next collectable is due. + */ + public void checkCycle() { + if (!(DateUtil.getCurrentTimeSeconds() > this.expiry)) { + return; + } + + this.currentPosition++; + + if (this.currentPosition >= this.classNames.length) { + this.currentPosition = 0; + } + + this.expiry = DateUtil.getCurrentTimeSeconds() + this.lifetime; + CollectablesDao.saveData(this.collectablesStorePage, this.currentPosition, this.expiry); + } + + /** + * Gets the catalogue item of the active collectable. + * + * @return the catalogue item + */ + public CatalogueItem getActiveItem() { + String className = this.classNames[this.currentPosition]; + + for (CatalogueItem item : CatalogueManager.getInstance().getCataloguePageItems(this.collectablesAdminPage, true)) { + if (item.getDefinition().getSprite().equals(className)) { + var collectable = item.copy(); + return collectable; + } + } + + return null; + } + + public String[] getSprites() { + return this.classNames; + } + + public long getExpiry() { + return expiry; + } + + public int getCollectablesStorePage() { + return collectablesStorePage; + } + + public int getCollectablesAdminPage() { + return collectablesAdminPage; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectablesManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectablesManager.java new file mode 100644 index 0000000..253384d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/collectables/CollectablesManager.java @@ -0,0 +1,96 @@ +package org.alexdev.havana.game.catalogue.collectables; + +import org.alexdev.havana.dao.mysql.CollectablesDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; + +import java.util.List; + +public class CollectablesManager { + private static CollectablesManager instance; + private List collectableDataList; + + public CollectablesManager() { + this.collectableDataList = CollectablesDao.getCollectablesData(); + } + + /** + * Checks all the collectable pages for expired items and cycles to the next item if required. + */ + public void checkExpiries() { + for (CollectableData collectableData : this.collectableDataList) { + collectableData.checkCycle(); + } + } + + /** + * Gets if the item is currently on sale as a collectable. + * + * @param item the item to check + * @return true, if successful + */ + public boolean isCollectable(CatalogueItem item) { + for (CollectableData collectableData : this.collectableDataList) { + CatalogueItem collectableItem = collectableData.getActiveItem(); + + if (collectableItem != null && collectableItem.getId() == item.getId()) { + return true; + } + } + + return false; + } + + /** + * Get collectable data by the page id. + * + * @param pageId the page id to get data for + * @return the collectable data instance + */ + public CollectableData getCollectableDataByPage(int pageId) { + for (CollectableData collectableData : this.collectableDataList) { + if (collectableData.getCollectablesStorePage() == pageId || collectableData.getCollectablesAdminPage() == pageId) { + return collectableData; + } + } + + return null; + } + + /** + * Get collectable data by the page id. + * + * @param itemId the page id to get data for + * @return the collectable data instance + */ + public CollectableData getCollectableDataByItem(int itemId) { + for (CollectableData collectableData : this.collectableDataList) { + if (collectableData.getActiveItem().getId() == itemId) { + return collectableData; + } + } + + return null; + } + + /** + * Get the {@link CollectablesManager} instance + * + * @return the collectables manager instance + */ + public static CollectablesManager getInstance() { + if (instance == null) { + instance = new CollectablesManager(); + } + + return instance; + } + + + /** + * Resets the catalogue manager singleton. + */ + public static void reset() { + instance = null; + CollectablesManager.getInstance(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherManager.java new file mode 100644 index 0000000..e700d57 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherManager.java @@ -0,0 +1,104 @@ +package org.alexdev.havana.game.catalogue.voucher; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.dao.mysql.VoucherDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.misc.purse.Voucher; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class VoucherManager { + private static VoucherManager instance; + + public VoucherManager() { + + } + + public VoucherRedeemStatus redeem(PlayerDetails playerDetails, VoucherRedeemMode voucherRedeemMode, String voucherCode, List redeemedItems, AtomicInteger redeemedCredits) { + //Check and get voucher + Voucher voucher = VoucherDao.redeemVoucher(voucherCode, playerDetails.getId()); + + //No voucher was found + if (voucher == null) { + return VoucherRedeemStatus.FAILURE; + } + + if (!voucher.isAllowNewUsers()) { + int daysSince = (int) Math.floor(TimeUnit.SECONDS.toHours(PlayerStatisticsDao.getStatisticLong(playerDetails.getId(), PlayerStatistic.ONLINE_TIME))); + + if (daysSince < 1) { + return VoucherRedeemStatus.FAILURE_NEW_ACCOUNT; + } + } + + //Redeem items + List items = new ArrayList<>(); + + for (String catalogueSaleCode : voucher.getItems()) { + var catalogueItem = CatalogueManager.getInstance().getCatalogueItem(catalogueSaleCode); + + if (catalogueItem == null) { + Log.getErrorLogger().error("Could not redeem voucher " + voucherCode + " with sale code: " + catalogueSaleCode); + continue; + } + + redeemedItems.add(catalogueItem); + + try { + items.addAll(CatalogueManager.getInstance().purchase(playerDetails, catalogueItem, "", null, DateUtil.getCurrentTimeSeconds())); + } catch (Exception ex) { + + } + } + + /*if (items.size() > 0) { + if (voucherRedeemMode == VoucherRedeemMode.IN_GAME) { + if (player != null) { + player.getInventory().getView("new"); + } + } + }*/ + + VoucherDao.logVoucher(voucherCode, playerDetails.getId(), voucher.getCredits(), redeemedItems); + + //This voucher gives credits, so increase credits balance + if (voucher.getCredits() > 0) { + CurrencyDao.increaseCredits(playerDetails, voucher.getCredits()); + redeemedCredits.set(voucher.getCredits()); + } + + return VoucherRedeemStatus.SUCCESS; + } + + + /** + * Get the {@link VoucherManager} instance + * + * @return the catalogue manager instance + */ + public static VoucherManager getInstance() { + if (instance == null) { + instance = new VoucherManager(); + } + + return instance; + } + + /** + * Resets the catalogue manager singleton. + */ + public static void reset() { + instance = null; + VoucherManager.getInstance(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemMode.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemMode.java new file mode 100644 index 0000000..83e3ef4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemMode.java @@ -0,0 +1,6 @@ +package org.alexdev.havana.game.catalogue.voucher; + +public enum VoucherRedeemMode { + WEBSITE, + IN_GAME +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemStatus.java b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemStatus.java new file mode 100644 index 0000000..b098dd9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/catalogue/voucher/VoucherRedeemStatus.java @@ -0,0 +1,7 @@ +package org.alexdev.havana.game.catalogue.voucher; + +public enum VoucherRedeemStatus { + SUCCESS, + FAILURE, + FAILURE_NEW_ACCOUNT; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/club/ClubSubscription.java b/Havana-Server/src/main/java/org/alexdev/havana/game/club/ClubSubscription.java new file mode 100644 index 0000000..ae5dc30 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/club/ClubSubscription.java @@ -0,0 +1,363 @@ +package org.alexdev.havana.game.club; + +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.messages.outgoing.club.CLUB_INFO; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.SQLException; +import java.util.concurrent.TimeUnit; + +public class ClubSubscription { + public static String[] giftOrder = new String[]{ + "hc_tv", + "hcamme", + "hc_crtn", + "mocchamaster", + "hc_crpt", + "edicehc", + "hc_wall_lamp", + "doorD", + "deal_hcrollers", + "hcsohva", + "hc_bkshlf", + "hc_lmp", + "hc_trll", + "hc_tbl", + "hc_machine", + "hc_chr", + "hc_rntgn", + "hc_dsk", + "hc_djset", + "hc_lmpst", + "hc_frplc", + "hc_btlr" + }; + + /** + * Refresh the club scription for player. + * @param player the player to refresh the subscription for + */ + public static void sendHcDays(Player player) { + long now = DateUtil.getCurrentTimeSeconds(); + + int sinceMonths = 0; + int totalDays = 0; + int remainingDaysThisMonth = 0; + int prepaidMonths = 0; + + if (player.getDetails().getClubExpiration() != 0) + totalDays = (int)((player.getDetails().getClubExpiration() - now) / 60 / 60 / 24); + + if (totalDays < 0) + totalDays = 0; + + if (totalDays > 0) { + remainingDaysThisMonth = ((totalDays - 1) % 31) + 1; + prepaidMonths = (totalDays - remainingDaysThisMonth) / 31; + + if (player.getDetails().getFirstClubSubscription() > 0) { + int days = (int) TimeUnit.SECONDS.toDays(player.getStatisticManager().getLongValue(PlayerStatistic.CLUB_MEMBER_TIME)); + sinceMonths = days > 0 ? days / 31 : 0;//(int) (now - player.getDetails().getFirstClubSubscription()) / 60 / 60 / 24 / 31; + } + } + + player.send(new CLUB_INFO(remainingDaysThisMonth, sinceMonths, prepaidMonths)); + } + + /** + * Subscribe to Habbo club with credits and days indicated, if 0 days, the function will not proceed. + * If the credits amount is 0 or less then no credits will be charged. + * + * @param playerDetails the details of the player that subscribed + * @param choice the subscription choice + */ + public static boolean subscribeClub(PlayerDetails playerDetails, int choice) { + var choiceData = getChoiceData(choice); + + int credits = choiceData.getKey(); + int days = choiceData.getValue(); + + if (days <= 0) { + return false; + } + + if (playerDetails.getCredits() < credits) { + return false; + } + + long now = DateUtil.getCurrentTimeSeconds(); + + long daysInSeconds = 24 * 60 * 60; + long secondsToAdd = (daysInSeconds * days); + + if (playerDetails.getFirstClubSubscription() == 0) { + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.GIFTS_DUE, 1); + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.CLUB_GIFT_DUE, now); + } + + /*if (playerDetails.getFirstClubSubscription() == 0) { + playerDetails.setFirstClubSubscription(now); + + // Club Sofa on first ever HC purchase + ItemManager.getInstance().createGift(playerDetails, "club_sofa", GameConfiguration.getInstance().getString("club.gift.present.label")); + + // Set new club received date + playerDetails.setClubGiftDue(DateUtil.getCurrentTimeSeconds() + getClubGiftSeconds()); + ClubGiftDao.saveNextGiftDate(playerDetails); + }*/ + + if (playerDetails.getClubExpiration() - now <= 0) { + playerDetails.setClubExpiration(now + secondsToAdd + 1); + } else { + playerDetails.setClubExpiration(playerDetails.getClubExpiration() + secondsToAdd); + } + + PlayerDao.saveSubscription(playerDetails.getId(), playerDetails.getFirstClubSubscription(), playerDetails.getClubExpiration()); + CurrencyDao.decreaseCredits(playerDetails, credits); + + return true; + } + + public static boolean isGiftDue(Player player) { + if (!player.getDetails().hasClubSubscription()) { + return false; + } + + if (player.getDetails().getFirstClubSubscription() == 0) { + return true; + } + + if (player.getStatisticManager().getIntValue(PlayerStatistic.GIFTS_DUE) > 0) { + return true; + } + + return true; + } + + public static void tryNextGift(Player player) throws SQLException { + if (!isGiftDue(player)) { + return; + } + + Item item = null; + + if (player.getDetails().getFirstClubSubscription() == 0) { + player.getDetails().setFirstClubSubscription(DateUtil.getCurrentTimeSeconds()); + item = ItemManager.getInstance().createGift(player.getDetails().getId(), player.getDetails().getName(), "club_sofa", GameConfiguration.getInstance().getString("club.gift.present.label"), ""); + + PlayerDao.saveSubscription(player.getDetails().getId(), player.getDetails().getFirstClubSubscription(), player.getDetails().getClubExpiration()); + } else { + String giftData = player.getLastGift(); + + if (giftData == null) { + var result = ClubGiftDao.getLastGift(player.getDetails().getId()); + + if (result != null) { + giftData = result.getValue(); + } + } + + String nextSpriteGift; + + if (giftData == null) { + nextSpriteGift = giftOrder[0]; + } else { + int position = 0; + + for (String nextGift : giftOrder) { + position++; + + if (nextGift.equals(giftData)) { + break; + } + } + + if (position >= giftOrder.length) { + position = 0; + } + + nextSpriteGift = giftOrder[position]; + } + + ClubGiftDao.addGift(player.getDetails().getId(), nextSpriteGift); + player.setLastGift(nextSpriteGift); + + item = ItemManager.getInstance().createGift(player.getDetails().getId(), player.getDetails().getName(), nextSpriteGift, GameConfiguration.getInstance().getString("club.gift.present.label"), ""); + } + + //player.getStatisticManager().setLongValue(PlayerStatistic.CLUB_GIFT_DUE, DateUtil.getCurrentTimeSeconds() + getClubGiftSeconds()); + player.getStatisticManager().incrementValue(PlayerStatistic.GIFTS_DUE, -1); + + //player.getDetails().setClubGiftDue(DateUtil.getCurrentTimeSeconds() + getClubGiftSeconds()); + //ClubGiftDao.saveNextGiftDate(player.getDetails()); + + player.getInventory().addItem(item); + player.getInventory().getView("new"); + + var catalogueItem = CatalogueManager.getInstance().getCatalogueItem(item.getDefinition().getSprite()); + + if (catalogueItem != null) { + TransactionDao.createTransaction(player.getDetails().getId(), item.getDatabaseId() + "", catalogueItem.getId() + "", + catalogueItem.getAmount(), "Habbo Club membership gift", 0, 0, true); + } + } + + /** + * Get the choice data for HC. + * + * @param choice the choice, 1, 2 or 3 + * @return the pair, days/credits + */ + public static Pair getChoiceData(int choice) { + int days = -1; + int credits = -1; + + switch (choice) { + case 1: + { + credits = 25; + days = 31; + break; + } + case 2: + { + credits = 60; + days = 93; + break; + } + case 3: + { + credits = 105; + days = 186; + break; + } + } + + return Pair.of(credits, days); + } + + /** + * Reset figure on HC expiry. + * + * @param details the details to set + */ + public static void resetClothes(PlayerDetails details) { + if (details.getSex().equals("M")) { + details.setFigure("hd-180-1.ch-215-62.lg-275-62.hr-100-"); + details.setSex("M"); + } else { + details.setFigure("hd-600-1.ch-645-62.lg-700-62.sh-730-68.hr-500-45"); + details.setSex("F"); + } + + PlayerDao.saveDetails(details.getId(), details.getFigure(), details.getPoolFigure(), details.getSex()); + //hd-180-1.ch-215-62.lg-275-62.hr-100- + } + + /** + * Get the offset of seconds required until the next gift is allowed. + * + * @return the offset seconds + */ + public static long getClubGiftSeconds() { + return TimeUnit.valueOf(GameConfiguration.getInstance().getString("club.gift.timeunit")).toSeconds(GameConfiguration.getInstance().getInteger("club.gift.interval")); + } + + /** + * Add badges if required for Habbo Club. + * + * @param player the player to check and add badges to + */ + public static void checkBadges(Player player) { + if (player.getDetails().hasClubSubscription()) { + if (!player.getBadgeManager().hasBadge("HC1")) { + player.getBadgeManager().tryAddBadge("HC1", null); + } + } + + if (hasGoldClubSubscription(player)) { + if (!player.getBadgeManager().hasBadge("HC2")) { + player.getBadgeManager().tryAddBadge("HC2", null); + } + } + + if (hasPlatinumClubSubscription(player)) { + if (!player.getBadgeManager().hasBadge("HC3")) { + player.getBadgeManager().tryAddBadge("HC3", null); + } + } + } + + /** + * Get the sprites of the gift order. + * + * @return the array of gifts in order for each month + */ + public static String[] getGiftOrder() { + return giftOrder; + } + + /** + * Count member days and increase days. + * + * @param player the player to count for + */ + public static void countMemberDays(Player player) { + countMemberDays(player.getDetails(), player.getStatisticManager()); + } + + /** + * Count member days and increase days. + * + * @param playerDetails the playerdetails + */ + public static void countMemberDays(PlayerDetails playerDetails, PlayerStatisticManager playerStatisticManager) { + if (playerDetails.hasClubSubscription()) { + long lastUpdated = playerStatisticManager.getLongValue(PlayerStatistic.CLUB_MEMBER_TIME_UPDATED); + + if (lastUpdated > 0) { + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.CLUB_MEMBER_TIME, + String.valueOf(playerStatisticManager.getLongValue(PlayerStatistic.CLUB_MEMBER_TIME) + DateUtil.getCurrentTimeSeconds() - lastUpdated)); + } + + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.CLUB_MEMBER_TIME_UPDATED, + String.valueOf(DateUtil.getCurrentTimeSeconds())); + } + } + + public static boolean hasGoldClubSubscription(Player player) { + if (player.getDetails().hasClubSubscription()) { + int days = (int) TimeUnit.SECONDS.toDays(player.getStatisticManager().getLongValue(PlayerStatistic.CLUB_MEMBER_TIME)); + int sinceMonths = days > 0 ? days / 31 : 0; + + // We are deemed a 'Gold' Club member if the user has been a club subscriber for a year + // According to the HabboX wiki the badge is to be received on the first day of the 13th subscribed month + return sinceMonths >= 12; + } + + return false; + } + + public static boolean hasPlatinumClubSubscription(Player player) { + if (player.getDetails().hasClubSubscription()) { + int days = (int) TimeUnit.SECONDS.toDays(player.getStatisticManager().getLongValue(PlayerStatistic.CLUB_MEMBER_TIME)); + int sinceMonths = days > 0 ? days / 31 : 0; + + // We are deemed a 'Gold' Club member if the user has been a club subscriber for a year + // According to the HabboX wiki the badge is to be received on the first day of the 13th subscribed month + return sinceMonths >= 24; + } + + return false; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/Command.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/Command.java new file mode 100644 index 0000000..af17b4e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/Command.java @@ -0,0 +1,90 @@ +package org.alexdev.havana.game.commands; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.player.PlayerRank; + +import java.util.ArrayList; +import java.util.List; + +public abstract class Command { + protected PlayerRank playerRank; + protected List groupPermission; + protected List arguments; + + public Command() { + this.arguments = new ArrayList<>(); + this.groupPermission = new ArrayList<>(); + this.setPlayerRank(); + this.addArguments(); + } + + /** + * Adds the permissions. + */ + public abstract void setPlayerRank(); + + /** + * Handler for setting minimum player rank allowed. + * + * @param playerRank the rank + */ + public void setPlayerRank(PlayerRank playerRank) { + this.playerRank = playerRank; + } + + /** + * Get groups required (if any) to be able to use this./ + * @return + */ + public List getGroupPermission() { + return groupPermission; + } + + /** + * Add the group id to the users who can execute this. + * + * @param groupIds the groups + */ + public void addGroup(List groupIds) { + groupPermission.addAll(groupIds); + } + + /** + * Adds the argument names, must be overridden + */ + public void addArguments() { }; + + /** + * Handle command. + * + * @param entity the entity + * @param message the message + */ + public abstract void handleCommand(Entity entity, String message, String[] args) throws Exception; + + /** + * Gets the description. + * + * @return the description + */ + public abstract String getDescription(); + + /** + * Gets the minimum player rank allowed. + * + * @return the permissions + */ + public PlayerRank getPlayerRank() { + return this.playerRank; + } + + /** + * Gets the arguments. + * + * @return the arguments + */ + public String[] getArguments() { + return this.arguments.parallelStream().toArray(String[]::new); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/CommandManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/CommandManager.java new file mode 100644 index 0000000..6a8d8ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/CommandManager.java @@ -0,0 +1,261 @@ +package org.alexdev.havana.game.commands; + +import org.alexdev.havana.game.commands.registered.*; +import org.alexdev.havana.game.commands.registered.admin.*; +import org.alexdev.havana.game.commands.registered.groups.*; +import org.alexdev.havana.game.commands.registered.moderation.*; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.tuple.Pair; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class CommandManager { + private Map commands; + + private static final Logger log = LoggerFactory.getLogger(CommandManager.class); + private static CommandManager instance; + + public CommandManager() { + this.commands = new LinkedHashMap<>(); + + for (var set : getCommands()) { + addCommand(set.getKey(), set.getValue()); + } + + log.info("Loaded {} commands", commands.size()); + } + + /** + * Get a fresh list of command instances. + * + * @return the list of commands + */ + public static List> getCommands() { + var tempCommands = new LinkedHashMap(); + tempCommands.put(new String[] { "help", "commands" }, new HelpCommand()); + tempCommands.put(new String[] { "about", "info" }, new AboutCommand()); + tempCommands.put(new String[] { "giveitem", "givedrink" }, new GiveDrinkCommand()); + tempCommands.put(new String[] { "dropitem", "dropdrink" }, new DropDrinkCommand()); + tempCommands.put(new String[] { "sit" }, new SitCommand()); + tempCommands.put(new String[] { "uptime", "status" }, new UptimeCommand()); + tempCommands.put(new String[] { "coords" }, new CoordsCommand()); + tempCommands.put(new String[] { "pickall" }, new PickAllCommand()); + tempCommands.put(new String[] { "usersonline", "whosonline" }, new UsersOnlineCommand()); + tempCommands.put(new String[] { "rgb", "rainbow" }, new RainbowDimmerCommand()); + tempCommands.put(new String[] { "afk", "idle" }, new AfkCommand()); + tempCommands.put(new String[] { "guidestatus" }, new GuideStatusCommand()); + + // Staff commands + tempCommands.put(new String[] { "copyroom" }, new CopyRoomCommand()); + tempCommands.put(new String[] { "givebadge" }, new GiveBadgeCommand()); + tempCommands.put(new String[] { "deletebadge", "removebadge" }, new RemoveBadgeCommand()); + tempCommands.put(new String[] { "packet" }, new PacketTestCommand()); + tempCommands.put(new String[] { "reload" }, new ReloadCommand()); + tempCommands.put(new String[] { "shutdown" }, new ShutdownCommand()); + tempCommands.put(new String[] { "setconfig" }, new SetConfigCommand()); + tempCommands.put(new String[] { "itemdebug" }, new ItemDebugCommand()); + tempCommands.put(new String[] { "talk" }, new TalkCommand()); + tempCommands.put(new String[] { "bot" }, new BotCommand()); + tempCommands.put(new String[] { "headrotate", "hr" }, new HeadRotateCommand()); + tempCommands.put(new String[] { "teleport", "tele", "telep", "tp" }, new TeleportCommand()); + tempCommands.put(new String[] { "addcredits", "givecredits" }, new GiveCreditsCommand()); + tempCommands.put(new String[] { "removecredits", "delcredits" }, new RemoveCreditsCommand()); + tempCommands.put(new String[] { "checkbalance", "balance" }, new CheckCreditsCommand()); + tempCommands.put(new String[] { "resetpw" }, new RecoverAccountCommand()); + tempCommands.put(new String[] { "unacceptable" }, new UnacceptableCommand()); + tempCommands.put(new String[] { "giftroom" }, new GiftRoomCommand()); + + // Moderation + tempCommands.put(new String[] { "dc", "disconnect" }, new DisconnectUserCommand()); + + // Group perms + tempCommands.put(new String[] { "roommute", "eventmute" }, new RoomMuteCommand()); + tempCommands.put(new String[] { "hotelalert", "ha" }, new HotelAlertCommand()); + tempCommands.put(new String[] { "roomalert", "ra" }, new RoomAlertCommand()); + tempCommands.put(new String[] { "ban", "userban" }, new BanCommand()); + tempCommands.put(new String[] { "unban" }, new UnbanCommand()); + tempCommands.put(new String[] { "tradeban" }, new TradeBanCommand()); + tempCommands.put(new String[] { "mute" }, new MuteCommand()); + tempCommands.put(new String[] { "unmute" }, new UnmuteCommand()); + + List> commandList = new ArrayList<>(); + + for (var set : tempCommands.entrySet()) { + commandList.add(Pair.of(set.getKey(), set.getValue())); + } + + return commandList; + } + + /** + * Add the command + * @param aliases the aliases + * @param command the command instance + */ + private void addCommand(String[] aliases, Command command) { + this.commands.put(aliases, command); + + if (GameConfiguration.getInstance().getString("groups.ids.permission." + aliases[0], "").length() > 0) { + command.addGroup(Stream.of(GameConfiguration.getInstance().getString("groups.ids.permission." + aliases[0]).split(",")) + .map(Integer::parseInt).collect(Collectors.toList())); + } + } + + /** + * Gets the command. + * + * @param commandName the command name + * @return the command + */ + private Command getCommand(String commandName) { + for (Entry entrySet : commands.entrySet()) { + for (String name : entrySet.getKey()) { + + if (commandName.equalsIgnoreCase(name)) { + return entrySet.getValue(); + } + } + } + + return null; + } + + /** + * Checks for command. + * + * @param entity the player + * @param message the message + * @return true, if successful + */ + public boolean hasCommand(Entity entity, String message) { + if (message.startsWith(":") && message.length() > 1) { + var parts = message.split(":"); + + if (parts.length > 1) { + String commandName = message.split(":")[1]; + commandName = commandName.split(" ").length > 0 ? commandName.split(" ")[0] : ""; + Command cmd = this.getCommand(commandName); + + if (cmd != null) { + return this.hasPermission(entity.getDetails(), commandName); + } + } + } + + return false; + } + + /** + * Checks for command permission. + * + * @param playerDetails the player details + * @param commandName the command + * @return true, if successful + */ + public boolean hasPermission(PlayerDetails playerDetails, String commandName) { + var cmd = getCommand(commandName); + + if (cmd == null) + return false; + + boolean hasRank = playerDetails.getRank().getRankId() >= cmd.getPlayerRank().getRankId(); + + if (hasRank) + return true; + + var player = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (player != null) { + for (int groupId : cmd.getGroupPermission()) { + if (player.getJoinedGroup(groupId) != null) + return true; + } + } + + return false; + } + + /** + * Invoke command. + * + * @param entity the player + * @param message the message + */ + public void invokeCommand(Entity entity, String message) throws Exception { + String commandName = message.split(":")[1].split(" ")[0]; + Command cmd = this.getCommand(commandName); + + String[] args = new String[0]; + + if (message.length() > (commandName.length() + 2)) { + args = message.replace(":" + commandName + " ", "").split(" "); + } + + if (cmd != null) { + if (args.length < cmd.getArguments().length) { + if (entity.getType() == EntityType.PLAYER) { + Player player = (Player)entity; + player.send(new ALERT(TextsManager.getInstance().getValue("player_commands_no_args"))); + } else { + System.out.println(TextsManager.getInstance().getValue("player_commands_no_args")); + } + return; + } + + cmd.handleCommand(entity, message, args); + } + } + + /** + * Gets the commands. + * + * @return the commands + */ + /*public List> getCommands() { + List> commandList = new ArrayList<>(); + + for (var set : this.commands.entrySet()) { + commandList.add(Pair.of(set.getKey(), set.getValue())); + } + + return commandList; + }*/ + + /** + * Gets the instance + * + * @return the instance + */ + public static CommandManager getInstance() { + if (instance == null) { + instance = new CommandManager(); + } + + return instance; + } + + /** + * Reset the instance + * + * @return the instance + */ + public static void reset() { + instance = null; + getInstance(); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AboutCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AboutCommand.java new file mode 100644 index 0000000..3086de1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AboutCommand.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class AboutCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + player.send(new ALERT("Project Havana - Habbo Hotel v31 emulation" + + "
" + + "
Release: r31_20090312_0433_13751_b40895fb6101dbe96dc7b9d6477eeeb4" + + "
" + + "
Contributors:" + + "
- ThuGie, Copyright, Raptosaur, Hoshiko, TOMYSSHADOW, Elijah " + // Call for help + "
Romuald, Glaceon, Nillus, Holo Team, Meth0d, office.boy, bbadzz" + + "
" + + "
Big thanks to Sefhriloff & Ascii for assisting with SnowStorm." + + "
" + + "
" + + "Made by Quackster from RaGEZONE")); + } + + @Override + public String getDescription() { + return " Information about the software powering this retro"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AfkCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AfkCommand.java new file mode 100644 index 0000000..2ba3c69 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/AfkCommand.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; + +public class AfkCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (player.getRoomUser().isWalking()) { + return; + } + + if (!player.getRoomUser().isSleeping()) { + player.getRoomUser().sleep(true); + } + } + + @Override + public String getDescription() { + return "Put your eyes to sleep"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/DropDrinkCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/DropDrinkCommand.java new file mode 100644 index 0000000..8dd2407 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/DropDrinkCommand.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.apache.commons.lang3.StringUtils; + +public class DropDrinkCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void addArguments() { } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (!player.getRoomUser().isCarrying() || player.getRoomUser().containsStatus(StatusType.CARRY_ITEM)) { + player.send(new ALERT("You are not carrying any food or drinks to drop.")); + return; + } + + if (!player.getRoomUser().containsStatus(StatusType.CARRY_DRINK)) { + return; + } + + player.getRoomUser().stopCarrying(); + player.getRoomUser().setNeedsUpdate(true); + } + + @Override + public String getDescription() { + return "Drops your own drink"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GiveDrinkCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GiveDrinkCommand.java new file mode 100644 index 0000000..6be64ac --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GiveDrinkCommand.java @@ -0,0 +1,110 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.apache.commons.lang3.StringUtils; + +public class GiveDrinkCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Player targetUser = PlayerManager.getInstance().getPlayerByName(args[0]); + + if (targetUser == null || + targetUser.getRoomUser().getRoom() == null || + targetUser.getRoomUser().getRoom().getId() != player.getRoomUser().getRoom().getId()) { + player.send(new ALERT("Could not find user: " + args[0])); + return; + } + + if (!player.getRoomUser().isCarrying() || player.getRoomUser().containsStatus(StatusType.CARRY_ITEM)) { + player.send(new ALERT("You are not carrying any food or drinks to give.")); + return; + } + + String drinkName = null; + int drinkId = 0; + + /*if (player.getRoomUser().getCarryId() > 0) { + drinkId = player.getRoomUser().getCarryId(); + }*/ + + if (player.getRoomUser().containsStatus(StatusType.CARRY_DRINK)) { + var value = player.getRoomUser().getStatus(StatusType.CARRY_DRINK).getValue(); + + if (StringUtils.isNumeric(value)) { + drinkId = Integer.parseInt(value); + } else { + drinkName = value; + } + } + + if (drinkId > 0 || drinkName != null) { + if (targetUser.getRoomUser().isSleeping()) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), targetUser.getDetails().getName() + " is sleeping.", 0)); + return; + } + + if (targetUser.getRoomUser().isUsingEffect()) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), targetUser.getDetails().getName() + " can't hold a drink, they're using an effect.", 0)); + return; + } + + // Give drink to user if they're not already having a drink or food, and they're not dancing + if (targetUser.getRoomUser().isCarrying()) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), targetUser.getDetails().getName() + " is already enjoying a drink.", 0)); + return; + } + + if (targetUser.getRoomUser().isDancing()) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Can't hand drink to " + targetUser.getDetails().getName() + ", because he/she is dancing.", 0)); + return; + } + + targetUser.getRoomUser().carryItem(drinkId, drinkName); + String carryName = drinkName; + + if (drinkName == null) { + carryName = TextsManager.getInstance().getValue("handitem" + drinkId); + } + + targetUser.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, targetUser.getRoomUser().getInstanceId(), player.getDetails().getName() + " handed you a " + carryName + ".", 0)); + + player.getRoomUser().stopCarrying(); + player.getRoomUser().setNeedsUpdate(true); + } + } + + @Override + public String getDescription() { + return "Gives a user your own drink"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GuideStatusCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GuideStatusCommand.java new file mode 100644 index 0000000..1e8a0cf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/GuideStatusCommand.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.dao.mysql.GuideDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.player.guides.GuidingData; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang.StringUtils; + +import java.util.Comparator; +import java.util.concurrent.TimeUnit; + +public class GuideStatusCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void addArguments() { } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + var guiding = GuideDao.getGuidedBy(player.getDetails().getId()); + guiding.sort(Comparator.comparingLong(GuidingData::getLastOnline).reversed()); + + StringBuilder alert = new StringBuilder(); + alert.append("You are guiding " + guiding.size() + " users. Remember a user needs an online time for at least " + TimeUnit.MINUTES.toDays(GameConfiguration.getInstance().getInteger("guide.completion.minutes")) + " days to be guided.

"); + + alert.append(StringUtils.rightPad("Username", 20, " ")); + alert.append(StringUtils.rightPad("Time Online", 58, " ")); + alert.append(StringUtils.rightPad("Last Online", 15, " ")); + alert.append("
"); + + for (var guideData : guiding) { + alert.append(StringUtils.rightPad(guideData.getUsername(), 20, " ")); + alert.append(StringUtils.rightPad(DateUtil.getReadableSeconds(guideData.getTimeOnline()), 58, " ")); + alert.append(StringUtils.rightPad(DateUtil.getDate(guideData.getLastOnline(), DateUtil.SHORT_DATE), 15, " ")); + alert.append("
"); + } + + player.send(new ALERT(alert.toString())); + } + + @Override + public String getDescription() { + return "View the current loaded groups"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/HelpCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/HelpCommand.java new file mode 100644 index 0000000..16d957c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/HelpCommand.java @@ -0,0 +1,91 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.StringUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.Comparator; +import java.util.stream.Collectors; + +public class HelpCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + var availableCommands = CommandManager.getCommands().stream().filter(command -> CommandManager.getInstance().hasPermission(entity.getDetails(), command.getKey()[0])).collect(Collectors.toList()); + + int pageId = 1; + String parsePageId = args.length > 0 ? args[0] : "1"; + String commandFilter = null; + + if (!StringUtils.isNumeric(parsePageId)) + { + commandFilter = args[0]; + parsePageId = args.length > 1 ? args[1] : "1"; + } + + if (StringUtils.isNumeric(parsePageId)) { + pageId = Integer.parseInt(parsePageId); + } + + if (commandFilter != null) { + final String finalCommandFilter = commandFilter; + availableCommands = availableCommands.stream().filter(x -> Arrays.asList(x.getKey()).stream().anyMatch(commandAlias -> commandAlias.contains(finalCommandFilter))).collect(Collectors.toList()); + } + + availableCommands.sort(Comparator.comparing(x -> x.getKey()[0])); + var commands = StringUtil.paginate(availableCommands, 10, true); + + if (!commands.containsKey(pageId - 1)) { + pageId = 1; + } + + var commandList = commands.get(pageId - 1); + + StringBuilder about = new StringBuilder(); + about.append("Commands ('<' and '>' are optional parameters):
").append("
"); + + for (var commandSet : commandList) { + String[] commandAlias = commandSet.getKey(); + Command command = commandSet.getValue(); + + about.append(":").append(String.join("/", commandAlias)); + + if (command.getArguments().length > 0) { + if (command.getArguments().length > 1) { + about.append(" [").append(String.join("] [", command.getArguments())).append("]"); + } else { + about.append(" [").append(command.getArguments()[0]).append("]"); + } + } + + about.append(" - ").append(command.getDescription()).append("
"); + } + + about.append("
") + .append("Page ") + .append(pageId) + .append(" out of ") + .append(commands.size()); + + if (entity.getType() == EntityType.PLAYER) { + Player player = (Player) entity; + player.send(new ALERT(about.toString())); + } + } + + @Override + public String getDescription() { + return " - List available commands"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/PickAllCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/PickAllCommand.java new file mode 100644 index 0000000..1e2b9df --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/PickAllCommand.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; + +import java.util.ArrayList; +import java.util.List; + +public class PickAllCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (!player.getRoomUser().getRoom().isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + List itemsToPickup = new ArrayList<>(); + + for (Item item : player.getRoomUser().getRoom().getItems()) { + if (item.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + continue; // The client does not allow picking up public room furniture, thus neither will the server + } + + if (item.hasBehaviour(ItemBehaviour.POST_IT)) { + continue; // The client does not allow picking up post-it's, thus neither will the server + } + + itemsToPickup.add(item); + } + + for (Item item : itemsToPickup) { + item.setOwnerId(player.getDetails().getId()); + + player.getRoomUser().getRoom().getMapping().removeItem(player, item); + player.getInventory().addItem(item); + } + + ItemDao.updateItemOwnership(itemsToPickup); + + player.getInventory().getView("new"); + } + + @Override + public String getDescription() { + return "Allows the owner to pick up all furniture in a room"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/RainbowDimmerCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/RainbowDimmerCommand.java new file mode 100644 index 0000000..9344de8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/RainbowDimmerCommand.java @@ -0,0 +1,99 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.tasks.RainbowTask; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.TimeUnit; + +public class RainbowDimmerCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!player.getRoomUser().getRoom().isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + int tickInterval = 5; + + if (args.length == 1) { + if (!StringUtils.isNumeric(args[0])) { + player.send(new ALERT("Please specify the number internal in seconds of the time it takes change colours")); + return; + } else { + tickInterval = Integer.parseInt(args[0]); + } + } + + if (tickInterval < 1) { + tickInterval = 1; + } + + Item moodlight = room.getItemManager().getMoodlight(); + + if (moodlight == null) { + player.send(new ALERT("This command requires a moodlight placed for it to work")); + return; + } + + + Player roomOwner = PlayerManager.getInstance().getPlayerById(room.getData().getOwnerId()); + boolean ownerInRoom = false; + + if (roomOwner.getRoomUser().getRoom() != null) { + ownerInRoom = roomOwner.getRoomUser().getRoom().getData().getOwnerId() == room.getData().getOwnerId(); + } + + String statusMessage; + + if (room.getTaskManager().hasTask("RainbowTask")) { + room.getTaskManager().cancelTask("RainbowTask"); + + statusMessage = "Rainbow room dimmer cycle has stopped"; + } else { + RainbowTask rainbowTask = new RainbowTask(room); + room.getTaskManager().scheduleTask("RainbowTask", rainbowTask, 0, tickInterval, TimeUnit.SECONDS); + + statusMessage = "Rainbow room dimmer cycle has started"; + } + + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), statusMessage, 0)); + + // Send status of room task to roomowner + if (ownerInRoom) { + roomOwner.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, roomOwner.getRoomUser().getInstanceId(), statusMessage, 0)); + } + } + + @Override + public String getDescription() { + return " - Cycles through the rainbow in your very own room!"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SetConfigCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SetConfigCommand.java new file mode 100644 index 0000000..1fcbc9f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SetConfigCommand.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.dao.mysql.SettingsDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.writer.GameConfigWriter; + +public class SetConfigCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void addArguments() { + this.arguments.add("setting"); + this.arguments.add("value"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + String setting = args[0]; + String value = args[1]; + + if (!GameConfiguration.getInstance().getConfig().containsKey(setting)) { + player.send(new ALERT("The setting \"" + setting + "\" doesn't exist!")); // TODO: Add locale + return; + } + + String oldValue = GameConfiguration.getInstance().getConfig().get(setting); + + SettingsDao.updateSetting(setting, value); + GameConfiguration.reset(new GameConfigWriter()); + + player.send(new ALERT("The setting \"" + setting + "\" value has been updated from \"" + oldValue + "\" to \"" + value + "\"")); // TODO: Add locale + } + + @Override + public String getDescription() { + return "In-game housekeeping for the catalogue item prices."; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/ShutdownCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/ShutdownCommand.java new file mode 100644 index 0000000..0f80013 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/ShutdownCommand.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.time.Duration; + +public class ShutdownCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void addArguments() { + /*this.arguments.add("minutes");*/ + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + // Abort maintenance shutdown if provided argument is either cancel, off or stop (case insensitive) + if (args.length > 0) { + if (args[0].equalsIgnoreCase("cancel") || args[0].equalsIgnoreCase("off") || args[0].equalsIgnoreCase("stop")) { + PlayerManager.getInstance().cancelMaintenance(); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Cancelled shutdown", 0)); + return; + } + } + + long minutes; + + // Try parsing minutes argument, use default if failed + try { + if (args.length > 0) { + minutes = Long.parseLong(args[0]); + } else { + minutes = GameConfiguration.getInstance().getLong("shutdown.minutes"); + } + } catch (NumberFormatException e) { + minutes = GameConfiguration.getInstance().getLong("shutdown.minutes"); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Failed to parse minutes provided to shutdown command, defaulting to " + minutes + " minute(s)", 0)); + } + + // Enqueue maintenance shutdown + PlayerManager.getInstance().planMaintenance(Duration.ofMinutes(minutes)); + + // Let callee know Havana is shutting down in X minutes + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Shutting down in " + minutes + " minute(s)", 0)); + } + + @Override + public String getDescription() { + return " - Shutdown Havana"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SitCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SitCommand.java new file mode 100644 index 0000000..e4832af --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/SitCommand.java @@ -0,0 +1,89 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.tasks.EntityTask; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.util.StringUtil; + +public class SitCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (player.getRoomUser().containsStatus(StatusType.SIT)) { + return; + } + + if (player.getRoomUser().containsStatus(StatusType.SWIM)) { + return; + } + + double height = 0.5; + + if (player.getRoomUser().getRoom().isPublicRoom()) { + if (player.getRoomUser().getRoom().getModel().getName().startsWith("pool_")) { + height = 0.0; + } + } + + int rotation = player.getRoomUser().getPosition().getRotation() / 2 * 2; + Item item = player.getRoomUser().getCurrentItem(); + + if (item != null) { + if (item.getDefinition().getInteractionType() == InteractionType.WS_JOIN_QUEUE || + item.getDefinition().getInteractionType() == InteractionType.WS_QUEUE_TILE || + item.getDefinition().getInteractionType() == InteractionType.WS_TILE_START) { + return; // Don't process :sit command on furniture that the user is already on. + } + + if (item.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) || item.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) { + return; // Don't process :sit command on furniture that the user is already on. + } + + if (!item.hasBehaviour(ItemBehaviour.ROLLER)) { + height += item.getDefinition().getTopHeight(); + } + } + + player.getRoomUser().getPosition().setRotation(rotation); + player.getRoomUser().setStatus(StatusType.SIT, StringUtil.format(height)); + player.getRoomUser().stopDancing(); + player.getRoomUser().setNeedsUpdate(true); + + if (player.getRoomUser().isUsingEffect()) { + if (!player.getRoomUser().getRoom().getTaskManager().hasTask("EntityTask")) { + return; + } + + EntityTask entityTask = (EntityTask) player.getRoomUser().getRoom().getTaskManager().getTask("EntityTask"); + entityTask.getQueueAfterLoop().add(new USER_AVATAR_EFFECT(player.getRoomUser().getInstanceId(), player.getRoomUser().getEffectId())); + } + } + + @Override + public String getDescription() { + return "Parks your arse on the floor"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/TalkCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/TalkCommand.java new file mode 100644 index 0000000..65c47ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/TalkCommand.java @@ -0,0 +1,55 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.PLACE_FLOORITEM; +import org.alexdev.havana.util.StringUtil; + +public class TalkCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + String talkMessage; + + if (args.length > 0) { + talkMessage = StringUtil.filterInput(String.join(" ", args), true); + } else { + talkMessage = ""; + } + + TalkCommand.createVoiceSpeakMessage(player.getRoomUser().getRoom(), talkMessage); + } + + public static void createVoiceSpeakMessage(Room room, String text) { + // 'Speaker' + Item pItem = new Item(); + pItem.setVirtualId(999); + pItem.setPosition(new Position(255, 255, -1f)); + pItem.setCustomData("voiceSpeak(\"" + text + "\")"); + pItem.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("spotlight").getId()); + room.send(new PLACE_FLOORITEM(pItem)); + } + + @Override + public String getDescription() { + return "Voice to text command"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UptimeCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UptimeCommand.java new file mode 100644 index 0000000..e591f49 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UptimeCommand.java @@ -0,0 +1,85 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +public class UptimeCommand extends Command { + private static final int UPTIME_COMMAND_INTERVAL_SECONDS = 5; + private static long UPTIME_COMMAND_EXPIRY = 0L; + + private static final int CPU_NUM_THREADS = Runtime.getRuntime().availableProcessors(); + private static final String CPU_ARCHITECTURE = System.getProperty("os.arch"); + private static final String JVM_NAME = System.getProperty("java.vm.name"); + private static final String OPERATING_SYSTEM_NAME = System.getProperty("os.name"); + + private static int MEMORY_USAGE = 0; + private static int ACTIVE_PLAYERS = 0; + private static int AUTHENTICATED_PLAYERS = 0; + private static int ACTIVE_GAMES = 0; + + public UptimeCommand(){ + UPTIME_COMMAND_EXPIRY = DateUtil.getCurrentTimeSeconds(); + } + + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (DateUtil.getCurrentTimeSeconds() > UPTIME_COMMAND_EXPIRY) { + AUTHENTICATED_PLAYERS = PlayerManager.getInstance().getPlayers().size(); + ACTIVE_PLAYERS = PlayerManager.getInstance().getActivePlayers().size(); + + Runtime runtime = Runtime.getRuntime(); + MEMORY_USAGE = (int) ((runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024); + + UPTIME_COMMAND_EXPIRY = DateUtil.getCurrentTimeSeconds() + UPTIME_COMMAND_INTERVAL_SECONDS; + } + + + StringBuilder msg = new StringBuilder(); +msg.append("Server uptime is " + DateUtil.getReadableSeconds(DateUtil.getCurrentTimeSeconds() - Havana.getStartupTime()) + "
"); + + if (!GameConfiguration.getInstance().getBoolean("show.inactive.players")) { + msg.append("There are " + AUTHENTICATED_PLAYERS + " online players
"); + } else { + msg.append("There are " + ACTIVE_PLAYERS + " active players out of " + AUTHENTICATED_PLAYERS + " online players
"); + } + + msg.append("Daily player peak: " + PlayerManager.getInstance().getDailyPlayerPeak() + "
"); + msg.append("All time player peak: " + PlayerManager.getInstance().getAllTimePlayerPeak() + "
"); + msg.append("Active games: " + GameManager.getInstance().getGames().stream().filter(game -> game.getGameState() == GameState.STARTED).count() + " (" + GameManager.getInstance().getFinishedGameCounter().get() + " games played since server boot)
"); + msg.append("
"); + msg.append("SYSTEM
"); + msg.append("CPU architecture: " + CPU_ARCHITECTURE + "
"); + msg.append("CPU cores: " + CPU_NUM_THREADS + "
"); + msg.append("memory usage: " + MEMORY_USAGE + " MB
"); + msg.append("JVM: " + JVM_NAME + "
"); + msg.append("OS: " + OPERATING_SYSTEM_NAME); + + player.send(new ALERT(msg.toString())); + } + + @Override + public String getDescription() { + return "Get the uptime and status of the server"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UsersOnlineCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UsersOnlineCommand.java new file mode 100644 index 0000000..cf4763a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/UsersOnlineCommand.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.game.commands.registered; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.StringUtil; + +import java.util.List; +import java.util.Map; + +public class UsersOnlineCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.NORMAL); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + int maxPlayersPerLine = 5; + + List players = PlayerManager.getInstance().getPlayers(); + Map> paginatedPlayers = StringUtil.paginate(players, maxPlayersPerLine); + + Player session = (Player) entity; + + StringBuilder sb = new StringBuilder() + .append("Users online: ").append(players.size()).append("
") + .append("Daily player peak count: ").append(PlayerManager.getInstance().getDailyPlayerPeak()).append("
") + .append("List of users online: ").append("

"); + + for (List playerList : paginatedPlayers.values()) { + int i = 0; + int length = playerList.size(); + for (Player player : playerList) { + if (!player.getDetails().isOnlineStatusVisible()) { + continue; + } + + sb.append(player.getDetails().getName()); + + i++; + + if (i < length) { + sb.append(", "); + } + } + + sb.append("
"); + } + + session.send(new ALERT(sb.toString())); + } + + @Override + public String getDescription() { + return "Get the list of players currently online"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/BotCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/BotCommand.java new file mode 100644 index 0000000..27ded67 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/BotCommand.java @@ -0,0 +1,85 @@ +package org.alexdev.havana.game.commands.registered.admin; + +import org.alexdev.havana.game.bot.Bot; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.FigureUtil; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class BotCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void addArguments() { + this.arguments.add("amount"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + int amount = Integer.parseInt(args[0]); + + for (int i = 0; i < amount; i++) { + String sex = ThreadLocalRandom.current().nextBoolean() ? "M" : "F"; + + Bot bot = new Bot(); + + try { + bot.getDetails().fill(0, "BotDude" + ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE), FigureUtil.getRandomFigure(sex, ThreadLocalRandom.current().nextBoolean()), "I'm here to bot things up!", sex); + } catch (Exception e) { + e.printStackTrace(); + } + + Position bound = room.getMapping().getRandomWalkableBound(bot); + + if (bound != null) + room.getEntityManager().enterRoom(bot, bound); + } + + room.getTaskManager().scheduleTask("BotCommandTask", ()-> { + for (Bot bot : room.getEntityManager().getEntitiesByClass(Bot.class)) { + Position newBound = room.getMapping().getRandomWalkableBound(bot); + + if (newBound != null) { + bot.getRoomUser().walkTo(newBound.getX(), newBound.getY()); + } + + int switchint = ThreadLocalRandom.current().nextInt(0, 3); + + if (switchint == 0) { + bot.getRoomUser().dance(ThreadLocalRandom.current().nextInt(1, 4)); + } + + if (switchint == 1) { + bot.getRoomUser().carryItem(ThreadLocalRandom.current().nextInt(0, 40), null); + } + } + }, 0, 10, TimeUnit.SECONDS); + } + + @Override + public String getDescription() { + return "Creates a bot partay!"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/ItemDebugCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/ItemDebugCommand.java new file mode 100644 index 0000000..b93f1b6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/ItemDebugCommand.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.game.commands.registered.admin; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; + +public class ItemDebugCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + + player.send(new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), "Item debug has been set to " + (!player.getRoomUser().hasItemDebug()), 0)); + player.getRoomUser().setHasItemDebug(!player.getRoomUser().hasItemDebug()); + } + + @Override + public String getDescription() { + return " - Cycles through the rainbow in your very own room!"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/PacketTestCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/PacketTestCommand.java new file mode 100644 index 0000000..21568dd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/PacketTestCommand.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.commands.registered.admin; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; + +public class PacketTestCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + String packet = String.join(" ", args); + + for (int i = 0; i < 14; i++) { + packet = packet.replace("{" + i + "}", Character.toString((char)i)); + } + + // Add ending packet suffix + packet += Character.toString((char)1); + + player.sendObject(packet); + } + + @Override + public String getDescription() { + return "Tests a Habbo client-sided packet"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/RecoverAccountCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/RecoverAccountCommand.java new file mode 100644 index 0000000..f49db8a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/admin/RecoverAccountCommand.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.game.commands.registered.admin; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class RecoverAccountCommand extends Command { + @Override + public void setPlayerRank() { + this.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) throws Exception { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + PlayerDetails targetUser = PlayerDao.getDetails(args[0]); + + if (targetUser == null) { + player.send(new ALERT("User not found")); + return; + } + + player.send(new ALERT(targetUser.getName() + "'s password has been reset to: changeme123")); + PlayerDao.setPassword(targetUser.getId(), PlayerDao.createPassword("changeme123")); + } + + @Override + public String getDescription() { + return "Resets the player's account"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/BanCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/BanCommand.java new file mode 100644 index 0000000..bd1b321 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/BanCommand.java @@ -0,0 +1,55 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.moderation.actions.ModeratorBanUserAction; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.StringUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class BanCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + String name = args[0]; + + int minutes = StringUtils.isNumeric(args[1]) ? Integer.parseInt(args[1]) : 0; + var reason = StringUtil.filterInput(Arrays.asList(args).stream().skip(2).collect(Collectors.joining(" ")), true); + + var response = ModeratorBanUserAction.ban(player.getDetails(), reason, "", name, TimeUnit.MINUTES.toSeconds(minutes), true, true); + player.send(new ALERT(response)); + } + + @Override + public void addArguments() { + arguments.add("user"); + arguments.add("minutes"); + arguments.add("reason"); + } + + @Override + public String getDescription() { + return "Sets trade ban time of user"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/HotelAlertCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/HotelAlertCommand.java new file mode 100644 index 0000000..fe9851d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/HotelAlertCommand.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.StringUtil; + +public class HotelAlertCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + // Concatenate all arguments + String alert = StringUtil.filterInput(String.join(" ", args), true); + alert += "

- " + entity.getDetails().getName(); + + // Send all players an alert + PlayerManager.getInstance().sendAll(new ALERT(alert)); + } + + @Override + public String getDescription() { + return "Sends an alert hotel-wide"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/MuteCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/MuteCommand.java new file mode 100644 index 0000000..a55d808 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/MuteCommand.java @@ -0,0 +1,90 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.TimeUnit; + +public class MuteCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + String name = args[0]; + int minutes = StringUtils.isNumeric(args[1]) ? Integer.parseInt(args[1]) : 0; + int seconds = 0; + + if (minutes > 0) { + seconds = (int) TimeUnit.MINUTES.toSeconds(minutes); + } + + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(name); + + if (playerDetails == null) { + player.send(new ALERT("Could not find user: " + name)); + return; + } + + if (CommandManager.getInstance().hasPermission(playerDetails, "mute")) { + player.send(new ALERT("Cannot mute a user who has permission to mute")); + return; + } + + + long expiration = DateUtil.getCurrentTimeSeconds() + seconds; + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.MUTE_EXPIRES_AT, expiration); + + var online = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (online != null) { + online.getStatisticManager().setLongValue(PlayerStatistic.MUTE_EXPIRES_AT, expiration); + + } + + player.send(new ALERT("Player (" + playerDetails.getName() + ") mute expiration date set to: " + DateUtil.getDate(expiration, DateUtil.LONG_DATE))); + /* + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + } else { + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + }*/ + } + + @Override + public void addArguments() { + arguments.add("user"); + arguments.add("minutes"); + } + + @Override + public String getDescription() { + return "Remove user ability to speak"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomAlertCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomAlertCommand.java new file mode 100644 index 0000000..799cb08 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomAlertCommand.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.util.StringUtil; + +import java.util.List; + +public class RoomAlertCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + // Concatenate all arguments + String alert = StringUtil.filterInput(String.join(" ", args), true); + List players = entity.getRoomUser().getRoom().getEntityManager().getPlayers(); + + for (Player target : players) { + target.send(new MODERATOR_ALERT(alert)); + } + + ModerationDao.addLog(ModerationActionType.ROOM_ALERT, entity.getDetails().getId(), -1, alert, ""); + } + + @Override + public String getDescription() { + return "Sends an alert hotel-wide"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomMuteCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomMuteCommand.java new file mode 100644 index 0000000..d88aa9e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/RoomMuteCommand.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; + +public class RoomMuteCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + player.getRoomUser().getRoom().getData().setRoomMuted(!player.getRoomUser().getRoom().getData().isRoomMuted()); + player.send(new CHAT_MESSAGE(CHAT_MESSAGE.ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "The room is now " + (player.getRoomUser().getRoom().getData().isRoomMuted() ? "muted" : "unmuted"), 0)); + } + + @Override + public String getDescription() { + return "Mutes/unmutes a room"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/TradeBanCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/TradeBanCommand.java new file mode 100644 index 0000000..c81d846 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/TradeBanCommand.java @@ -0,0 +1,88 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.TimeUnit; + +public class TradeBanCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + String name = args[0]; + int minutes = StringUtils.isNumeric(args[1]) ? Integer.parseInt(args[1]) : 0; + int seconds = 0; + + if (minutes > 0) { + seconds = (int) TimeUnit.MINUTES.toSeconds(minutes); + } + + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(name); + + if (playerDetails == null) { + player.send(new ALERT("Could not find user: " + name)); + return; + } + + if (CommandManager.getInstance().hasPermission(playerDetails, "ban")) { + player.send(new ALERT("Cannot ban a user who has permission to trade ban")); + return; + } + + + long expiration = DateUtil.getCurrentTimeSeconds() + seconds; + ItemDao.saveTradeBanExpire(playerDetails.getId(), expiration); + + var online = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (online != null) { + online.getDetails().setTradeBanExpiration(expiration); + } + + player.send(new ALERT("Player (" + playerDetails.getName() + ") trade ban time set to: " + DateUtil.getDate(expiration, DateUtil.LONG_DATE))); + /* + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + } else { + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + }*/ + } + + @Override + public void addArguments() { + arguments.add("user"); + arguments.add("minutes"); + } + + @Override + public String getDescription() { + return "Sets trade ban time of user"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnbanCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnbanCommand.java new file mode 100644 index 0000000..d09f56f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnbanCommand.java @@ -0,0 +1,93 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.apache.commons.validator.routines.InetAddressValidator; + +public class UnbanCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Unban(player, args[0]); + } + + private void Unban(Player player, String name) { + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(name); + + if (playerDetails == null) { + player.send(new ALERT("Could not find user: " + name)); + return; + } + + if (playerDetails.getMachineId() != null && playerDetails.getMachineId().length() > 0) { + BanDao.removeBan(BanType.MACHINE_ID, playerDetails.getMachineId()); + } + + String ip = null; + Player targetUser = PlayerManager.getInstance().getPlayerByName(name); + + if (targetUser != null) { + ip = NettyPlayerNetwork.getIpAddress(targetUser.getNetwork().getChannel()); + } else { + ip = PlayerDao.getLatestIp(playerDetails.getId()); + } + + InetAddressValidator validator = InetAddressValidator.getInstance(); + + // Validate an IPv4 address + if (ip != null && !validator.isValid(ip)) { + ip = null; + } + + if (ip != null && ip.length() > 0) { + BanDao.removeBan(BanType.IP_ADDRESS, ip); + } + + BanDao.removeBan(BanType.USER_ID, String.valueOf(playerDetails.getId())); + + if (targetUser != null) { + targetUser.getNetwork().getChannel().close(); + } + + player.send(new ALERT("Player " + playerDetails.getName() + " is successfully unbanned.")); + + /* + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + } else { + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + }*/ + } + + @Override + public String getDescription() { + return "Permanently bans a given user"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnmuteCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnmuteCommand.java new file mode 100644 index 0000000..1e81529 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/groups/UnmuteCommand.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.game.commands.registered.groups; + +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class UnmuteCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + String name = args[0]; + + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(name); + + if (playerDetails == null) { + player.send(new ALERT("Could not find user: " + name)); + return; + } + + /*if (CommandManager.getInstance().hasPermission(playerDetails, "unmute")) { + player.send(new ALERT("Cannot unmute a user who has permission to unmute")); + return; + }*/ + + long expiration = 0;//DateUtil.getCurrentTimeSeconds() + seconds; + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.MUTE_EXPIRES_AT, expiration); + + var online = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (online != null) { + online.getStatisticManager().setLongValue(PlayerStatistic.MUTE_EXPIRES_AT, expiration); + + } + + player.send(new ALERT("Player (" + playerDetails.getName() + ") unmute expiration date removed")); + /* + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + } else { + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + }*/ + } + + @Override + public void addArguments() { + arguments.add("user"); + } + + @Override + public String getDescription() { + return "Lets user speak again"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CheckCreditsCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CheckCreditsCommand.java new file mode 100644 index 0000000..0802ce1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CheckCreditsCommand.java @@ -0,0 +1,55 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.apache.commons.lang3.StringUtils; + +public class CheckCreditsCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Player targetUser = PlayerManager.getInstance().getPlayerByName(args[0]); + + if (targetUser == null) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Could not find user: " + args[0], 0)); + return; + } + + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), targetUser.getDetails().getName() + " has " + targetUser.getDetails().getCredits() + " credits", 0)); + } + + @Override + public String getDescription() { + return "Add badge to user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CoordsCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CoordsCommand.java new file mode 100644 index 0000000..3a1f21a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CoordsCommand.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.StringUtil; + +public class CoordsCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + player.send(new ALERT("Your coordinates:
" + + "Room ID: " + player.getRoomUser().getRoom().getId() + "

" + + "X: " + player.getRoomUser().getPosition().getX() + "
" + + "Y: " + player.getRoomUser().getPosition().getY() + "
" + + "Z: " + StringUtil.format(player.getRoomUser().getPosition().getZ()) + "

" + + "Head rotation: " + player.getRoomUser().getPosition().getHeadRotation() + "
" + + "Body rotation: " + player.getRoomUser().getPosition().getBodyRotation() + "
")); + } + + @Override + public String getDescription() { + return "Shows the coordinates in the room"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CopyRoomCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CopyRoomCommand.java new file mode 100644 index 0000000..8c94a53 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/CopyRoomCommand.java @@ -0,0 +1,112 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class CopyRoomCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + var room = player.getRoomUser().getRoom(); + + if (room.isPublicRoom()) { + return; + } + + var roomName = room.getData().getName() + " (2)"; + var roomModel = room.getModel().getName(); + var roomShowName = room.getData().showOwnerName(); + var accessType = room.getData().getAccessTypeId(); + + int roomId = -1; + try { + roomId = NavigatorDao.createRoom(player.getDetails().getId(), roomName, roomModel, roomShowName, accessType); + } catch (SQLException e) { + e.printStackTrace(); + } + + if (roomId == -1) + return; + + var copyRoom = RoomDao.getRoomById(roomId); + + copyRoom.getData().setWallpaper(room.getData().getWallpaper()); + copyRoom.getData().setFloor(room.getData().getFloor()); + copyRoom.getData().setLandscape(room.getData().getLandscape()); + + RoomDao.saveDecorations(copyRoom); + + List items = new ArrayList<>(); + + for (Item item : room.getItems()) { + if (item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + continue; + } + + var copyItem = new Item(); + copyItem.setOwnerId(player.getDetails().getId()); + copyItem.setDefinitionId(item.getDefinition().getId()); + copyItem.setCustomData(item.getCustomData()); + copyItem.setRoomId(roomId); + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) + copyItem.setWallPosition(item.getWallPosition()); + else { + copyItem.getPosition().setX(item.getPosition().getX()); + copyItem.getPosition().setY(item.getPosition().getY()); + copyItem.getPosition().setZ(item.getPosition().getZ()); + copyItem.getPosition().setRotation(item.getPosition().getRotation()); + } + + try { + ItemDao.newItem(copyItem); + items.add(copyItem); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + ItemDao.updateItems(items); + + copyRoom.forward(player, false); + } + + @Override + public String getDescription() { + return "Remove badge from user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/DisconnectUserCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/DisconnectUserCommand.java new file mode 100644 index 0000000..ceb6526 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/DisconnectUserCommand.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class DisconnectUserCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + Player targetUser = PlayerManager.getInstance().getPlayerByName(args[0]); + + if (targetUser == null) { + player.send(new ALERT("Could not find user: " + args[0])); + return; + } + + if (targetUser.getDetails().getRank().getRankId() >= player.getDetails().getRank().getRankId()) { + player.send(new ALERT("Insufficient perms to ban user")); + return; + } + + targetUser.kickFromServer(); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), targetUser.getDetails().getName() + " disconnected", 0)); + } + + @Override + public String getDescription() { + return "Disconnects a given user"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiftRoomCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiftRoomCommand.java new file mode 100644 index 0000000..76d0289 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiftRoomCommand.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; + +import java.util.List; + +public class GiftRoomCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.ADMINISTRATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + CatalogueItem catalogueItem = CatalogueManager.getInstance().getCatalogueItem(args[0]); + + if (catalogueItem == null) { + player.getRoomUser().talk("Catalogue item not found: " + args[0], CHAT_MESSAGE.ChatMessageType.WHISPER, List.of(player)); + return; + } + + for (Player user : player.getRoomUser().getRoom().getEntityManager().getPlayers()) { + if (user.getDetails().getRank().getRankId() >= PlayerRank.COMMUNITY_MANAGER.getRankId()) { + continue; + } + + var item = ItemManager.getInstance().createGift(user.getDetails().getId(), player.getDetails().getName(), catalogueItem.getSaleCode(), "You have just received a gift from Classic Habbo", ""); + + user.getInventory().addItem(item); + user.getInventory().getView("new"); + } + + player.getRoomUser().talk("Everybody (except community managers or higher) has been gifted a " + catalogueItem.getDefinition().getName(), CHAT_MESSAGE.ChatMessageType.WHISPER, List.of(player)); + } + + @Override + public String getDescription() { + return "Shows the coordinates in the room"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveBadgeCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveBadgeCommand.java new file mode 100644 index 0000000..6e2dc5f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveBadgeCommand.java @@ -0,0 +1,121 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.BadgeDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.badges.BadgeManager; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.rooms.user.FIGURE_CHANGE; + +import java.util.List; + +public class GiveBadgeCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + this.arguments.add("badge"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (args.length == 1) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Badge code not provided", 0)); + return; + } + + PlayerDetails targetUserDetails = PlayerDao.getDetails(args[0]); + + if (targetUserDetails == null) { + player.send(new ALERT("Could not find user: " + args[0])); + return; + } + + String badge = args[1]; + + if (badge.startsWith("GL") || badge.startsWith("ACH_") || badge.equalsIgnoreCase("Z64")) { + return; + } + + Player targetUser = PlayerManager.getInstance().getPlayerByName(args[0]); + + if (targetUser == null) { + var badgeManager = new BadgeManager(targetUserDetails.getId()); + + // Check if user already owns badge + if (badgeManager.hasBadge(badge)) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "User " + targetUserDetails.getName() + " already owns this badge.", 0)); + return; + } + + List rankBadges = BadgeDao.getRankBadges(); + + // Check if badge code is a rank badge + if (rankBadges.contains(badge)) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "This badge belongs to a certain rank. If you would like to give " + targetUserDetails.getName() + " this badge, increase their rank.", 0)); + return; + } + + // Add badge + badgeManager.tryAddBadge(badge, null); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Badge " + badge + " added to user " + targetUserDetails.getName(), 0)); + } else { + // Check if user already owns badge + if (targetUser.getBadgeManager().hasBadge(badge)) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "User " + targetUserDetails.getName() + " already owns this badge.", 0)); + return; + } + + List rankBadges = BadgeDao.getRankBadges(); + + // Check if badge code is a rank badge + if (rankBadges.contains(badge)) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "This badge belongs to a certain rank. If you would like to give " + targetUserDetails.getName() + " this badge, increase their rank.", 0)); + return; + } + + // Add badge + targetUser.getBadgeManager().tryAddBadge(badge, null, 0); + + Room targetRoom = targetUser.getRoomUser().getRoom(); + + // Let other room users know something changed if targetUser is inside a room + if (targetRoom != null) { + targetRoom.send(new FIGURE_CHANGE(targetUser.getRoomUser().getInstanceId(), targetUserDetails)); + } + + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Badge " + badge + " added to user " + targetUserDetails.getName(), 0)); + } + } + + @Override + public String getDescription() { + return "Add badge to user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveCreditsCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveCreditsCommand.java new file mode 100644 index 0000000..25f89d7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/GiveCreditsCommand.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.apache.commons.lang3.StringUtils; + +public class GiveCreditsCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + this.arguments.add("credits"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + PlayerDetails targetUser = PlayerDao.getDetails(args[0]); + + if (targetUser == null) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Could not find user: " + args[0], 0)); + return; + } + + if (args.length == 1) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Credit amount not provided", 0)); + return; + } + + if (!StringUtils.isNumeric(args[1])) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Credit amount not provided", 0)); + return; + } + + int amount = Integer.parseInt(args[1]); + + CurrencyDao.increaseCredits(targetUser, amount); + var user = PlayerManager.getInstance().getPlayerById(targetUser.getId()); + + if (user != null) { + user.send(new CREDIT_BALANCE(user.getDetails().getCredits())); + } + + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), amount + " credits added to user " + targetUser.getName(), 0)); + } + + @Override + public String getDescription() { + return "Add badge to user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/HeadRotateCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/HeadRotateCommand.java new file mode 100644 index 0000000..4cec1cd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/HeadRotateCommand.java @@ -0,0 +1,102 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.pathfinder.Pathfinder; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_STATUSES; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class HeadRotateCommand extends Command { + public static final Position[] HEAD_ROTATION = new Position[]{ + new Position(1, 0, 0),// + new Position(1, 1, 0),// + new Position(0, 1, 0),// + new Position(-1, 1, 0),// + new Position(-1, 0, 0),// + new Position(-1, -1, 0),// + new Position(0, -1, 0), + new Position(1, -1, 0) + }; + + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + doHeadRotate(entity); + } + + public static void doHeadRotate(Entity entity) { + var current = entity.getRoomUser().getPosition().copy(); + + int currentRotation = current.getHeadRotation(); + int startPosition = 0; + + for (var pos : HEAD_ROTATION) { + var tmp = current.add(pos); + int rotation = Rotation.calculateWalkDirection(current, tmp); + + if (rotation == currentRotation) { + break; + } + + startPosition++; + } + + final AtomicInteger turns = new AtomicInteger(8); + final AtomicInteger nextMove = new AtomicInteger(startPosition + 1); + + var headTurnRunnable = new FutureRunnable() { + public void run() { + try { + if (turns.get() == 1) { + this.cancelFuture(); + return; + } + + if (entity.getRoomUser().isWalking()) { + entity.getRoomUser().getPosition().setHeadRotation(entity.getRoomUser().getPosition().getBodyRotation()); + this.cancelFuture(); + return; + } + + if (nextMove.get() + 1 >= HEAD_ROTATION.length) { + nextMove.set(0); + } + + var tmp = current.add(HEAD_ROTATION[nextMove.getAndIncrement()]); + + entity.getRoomUser().getPosition().setHeadRotation(Rotation.calculateWalkDirection(current, tmp)); + entity.getRoomUser().getRoom().send(new USER_STATUSES(List.of(entity))); + + turns.decrementAndGet(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(headTurnRunnable, 0, 200, TimeUnit.MILLISECONDS); + headTurnRunnable.setFuture(future); + } + + @Override + public String getDescription() { + return "Rotates the users head"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/PermBanCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/PermBanCommand.java new file mode 100644 index 0000000..b8971b2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/PermBanCommand.java @@ -0,0 +1,109 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.game.ban.BanManager; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class PermBanCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(args[0]); + + if (playerDetails == null) { + player.send(new ALERT("Could not find user: " + args[0])); + return; + } + + if (playerDetails.isBanned() != null) { + player.send(new ALERT("User is already banned!")); + return; + } + + Map criteria = new HashMap<>(); + long in20Years = DateUtil.getCurrentTimeSeconds() + (TimeUnit.DAYS.toSeconds(365) * 20); + var reason = StringUtil.filterInput(Arrays.asList(args).stream().skip(2).collect(Collectors.joining(" ")), true); + + if (playerDetails.getMachineId() != null && playerDetails.getMachineId().length() > 0) { + BanDao.addBan(BanType.MACHINE_ID, playerDetails.getMachineId(), in20Years, reason, playerDetails.getId()); + criteria.put(BanType.MACHINE_ID, playerDetails.getMachineId()); + } + + Player targetUser = PlayerManager.getInstance().getPlayerByName(args[0]); + + /*String ip = null; + + if (targetUser != null) { + ip = NettyPlayerNetwork.getIpAddress(targetUser.getNetwork().getChannel()); + } else { + ip = PlayerDao.getLatestIp(playerDetails.getId()); + } + + InetAddressValidator validator = InetAddressValidator.getInstance(); + + // Validate an IPv4 address + if (!validator.isValid(ip)) { + ip = null; + } + + if (ip != null && ip.length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, ip, in20Years, "Banned for breaking the Habbo Way"); + criteria.put(BanType.IP_ADDRESS, ip); + }*/ + + BanDao.addBan(BanType.USER_ID, String.valueOf(playerDetails.getId()), in20Years, reason, playerDetails.getId()); + criteria.put(BanType.USER_ID, String.valueOf(playerDetails.getId())); + + if (targetUser != null) { + targetUser.getNetwork().getChannel().close(); + } + + player.send(new ALERT("Player " + playerDetails.getName() + " is successfully banned.")); + BanManager.getInstance().disconnectBanAccounts(criteria); + + /* + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + } else { + if (playerDetails.getIpAddress() != null && playerDetails.getIpAddress().length() > 0) { + BanDao.addBan(BanType.IP_ADDRESS, playerDetails.getIpAddress(), in20Years); + } + }*/ + } + + @Override + public String getDescription() { + return "Permanently bans a given user"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/ReloadCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/ReloadCommand.java new file mode 100644 index 0000000..166b6e7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/ReloadCommand.java @@ -0,0 +1,161 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.snowstorm.SnowStormMapsManager; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.ItemVersionManager; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.models.RoomModelManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.incoming.catalogue.GET_CATALOG_INDEX; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.writer.GameConfigWriter; + +public class ReloadCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + this.arguments.add("component"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + String component = args[0]; + String componentName = null; + + if (component.equalsIgnoreCase("catalogue") + || component.equalsIgnoreCase("shop") + || component.equalsIgnoreCase("items")) { + ItemManager.reset(); + CatalogueManager.reset(); + + // Regenerate collision map with proper height differences (if they changed). + player.getRoomUser().getRoom().getMapping().regenerateCollisionMap(); + player.getRoomUser().getRoom().getMapping().sendMap(); + + for (Player p : PlayerManager.getInstance().getPlayers()) { + new GET_CATALOG_INDEX().handle(p, null); + } + + componentName = "Catalogue and item definitions"; + } + + if (component.equalsIgnoreCase("wordfilter")) { + WordfilterManager.reset(); + componentName = "Wordfilter"; + } + + if (component.equalsIgnoreCase("commands")) { + CommandManager.reset(); + componentName = "Commands"; + } + + if (component.equalsIgnoreCase("badgebuy")) { + CatalogueManager.getInstance().reloadBadgeRewards(); + componentName = "Badge sale rewards"; + } + + if (component.equalsIgnoreCase("ads")) { + AdManager.getInstance().reset(); + componentName = "Advertisements"; + } + + if (component.equalsIgnoreCase("navigator")) { + NavigatorManager.reset(); + componentName = "Navigator"; + } + + if (component.equalsIgnoreCase("texts")) { + TextsManager.reset(); + componentName = "Texts"; + } + + if (component.equalsIgnoreCase("games")) { + GameManager.reset(); + componentName = "Games"; + } + + if (component.equalsIgnoreCase("events")) { + EventsManager.reset(); + componentName = "Events"; + } + + if (component.equalsIgnoreCase("gamemaps")) { + SnowStormMapsManager.reset(); + componentName = "game maps"; + } + + + if (component.equalsIgnoreCase("achievements") || + component.equalsIgnoreCase("ach")) { + AchievementManager.reset(); + componentName = "Achievements"; + } + + if (component.equalsIgnoreCase("models")) { + RoomModelManager.reset(); + componentName = "Room models"; + } + + if (component.equalsIgnoreCase("collectables")) { + CollectablesManager.reset(); + componentName = "Collectables"; + } + + if (component.equalsIgnoreCase("settings") || + component.equalsIgnoreCase("config")) { + + GameConfiguration.reset(new GameConfigWriter()); + componentName = "Game settings"; + } + + if (component.equalsIgnoreCase("versions")) { + + ItemVersionManager.reset(); + componentName = "Furni settings"; + } + + + if (componentName != null) { + player.send(new ALERT(componentName + " have been reloaded.")); + } else { + player.send(new ALERT("You did not specify which component to reload!" + + "
You may reload either the catalogue/shop/items, advertisements, events, commands," + + "
navigator, collectables, models, texts, plugins, wordfitler, games, badgebuy," + + "
rewards, versions or settings.")); + } + } + + @Override + public String getDescription() { + return "Refresh the settings/items/texts"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveBadgeCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveBadgeCommand.java new file mode 100644 index 0000000..a34e5b3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveBadgeCommand.java @@ -0,0 +1,76 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.badges.BadgeManager; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; + +public class RemoveBadgeCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + this.arguments.add("badge"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + PlayerDetails targetUser = PlayerDao.getDetails(args[0]); + + if (targetUser == null) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Could not find user: " + args[0], 0)); + return; + } + + if (args.length == 1) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Badge code not provided", 0)); + return; + } + + String badge = args[1]; + + if (badge.startsWith("GL") || badge.startsWith("ACH_") || badge.equalsIgnoreCase("Z64")) { + return; + } + + var badgeManager = new BadgeManager(targetUser.getId()); + + // Check if user already owns badge + if (!badgeManager.hasBadge(badge)) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "User " + targetUser.getName() + " does not have this badge.", 0)); + return; + } + + // Remove badge + badgeManager.removeBadge(badge); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Badge " + badge + " removed from user " + targetUser.getName(), 0)); + } + + @Override + public String getDescription() { + return "Remove badge from user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveCreditsCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveCreditsCommand.java new file mode 100644 index 0000000..1f04a57 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/RemoveCreditsCommand.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.apache.commons.lang3.StringUtils; + +public class RemoveCreditsCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.COMMUNITY_MANAGER); + } + + @Override + public void addArguments() { + this.arguments.add("user"); + this.arguments.add("credits"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + // :givebadge Alex NL1 + + // should refuse to give badges that belong to ranks + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + PlayerDetails targetUser = PlayerDao.getDetails(args[0]); + + if (targetUser == null) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Could not find user: " + args[0], 0)); + return; + } + + if (args.length == 1) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Credit amount not provided", 0)); + return; + } + + if (!StringUtils.isNumeric(args[1])) { + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Credit amount not provided", 0)); + return; + } + + int amount = Integer.parseInt(args[1]); + + CurrencyDao.decreaseCredits(targetUser, amount); + var user = PlayerManager.getInstance().getPlayerById(targetUser.getId()); + + if (user != null) { + user.send(new CREDIT_BALANCE(user.getDetails().getCredits())); + } + + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), amount + " credits removed from user " + targetUser.getName(), 0)); + } + + @Override + public String getDescription() { + return "Add badge to user"; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/TeleportCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/TeleportCommand.java new file mode 100644 index 0000000..ae8dde0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/TeleportCommand.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class TeleportCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + player.getRoomUser().setTeleporting(!player.getRoomUser().isTeleporting()); + player.send(new ALERT("Teleport mode is set to: " + player.getRoomUser().isTeleporting())); + } + + @Override + public String getDescription() { + return "Triggers the teleporting"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/UnacceptableCommand.java b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/UnacceptableCommand.java new file mode 100644 index 0000000..6c2b936 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/commands/registered/moderation/UnacceptableCommand.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.game.commands.registered.moderation; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.commands.Command; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class UnacceptableCommand extends Command { + @Override + public void setPlayerRank() { + super.setPlayerRank(PlayerRank.MODERATOR); + } + + @Override + public void addArguments() { + this.arguments.add("name/desc/description/both"); + } + + @Override + public void handleCommand(Entity entity, String message, String[] args) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getRoom() == null) { + return; + } + + var room = player.getRoomUser().getRoom(); + var unacceptableValue = "Unacceptable to hotel management"; + + if (args[0].equalsIgnoreCase("name")) { + room.getData().setName(unacceptableValue); + RoomDao.save(room); + player.send(new ALERT("Set the room name to unacceptable")); + return; + } + + if (args[0].equalsIgnoreCase("desc") || args[0].equalsIgnoreCase("description")) { + room.getData().setDescription(unacceptableValue); + RoomDao.save(room); + player.send(new ALERT("Set the room description to unacceptable")); + return; + } + + if (args[0].equalsIgnoreCase("both")) { + room.getData().setName(unacceptableValue); + room.getData().setDescription(unacceptableValue); + RoomDao.save(room); + player.send(new ALERT("Set both the room name and description to unacceptable")); + return; + } + } + + @Override + public String getDescription() { + return "Makes a room set to 'Unacceptable to hotel management'"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronItem.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronItem.java new file mode 100644 index 0000000..98152e8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronItem.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.ecotron; + +public class EcotronItem { + private String spriteName; + private int orderId; + private int chance; + + public EcotronItem(String spriteName, int orderId, int chance) { + this.spriteName = spriteName; + this.orderId = orderId; + this.chance = chance; + } + + public String getSpriteName() { + return spriteName; + } + + public int getOrderId() { + return orderId; + } + + public int getChance() { + return chance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronManager.java new file mode 100644 index 0000000..55f569a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/ecotron/EcotronManager.java @@ -0,0 +1,83 @@ +package org.alexdev.havana.game.ecotron; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +public class EcotronManager { + private static EcotronManager instance; + private List ecotronItems; + + private EcotronManager() { + this.ecotronItems = ItemDao.getEcotronItems(); + } + + /** + * Append the list of ecotron rewards. + * + * @param response the response to append to + */ + public void appendRewards(NettyResponse response) { + response.writeInt(5); + + for (int i = 5; i > 0; i--) { + AtomicInteger chanceMax = new AtomicInteger(0); + + if (i == 5) + chanceMax.set(2000); + else if (i == 4) { + chanceMax.set(200); + } else if (i == 3) { + chanceMax.set(40); + } else if (i == 2) { + chanceMax.set(5); + } + + List itemList = this.ecotronItems.stream().filter(ecotronItem -> ecotronItem.getChance() == chanceMax.get()).collect(Collectors.toList()); + + response.writeInt(i); + response.writeInt(chanceMax.get()); + response.writeInt(itemList.size()); + + for (EcotronItem ecotronItem : itemList) { + ItemDefinition definition = ItemManager.getInstance().getDefinitionBySprite(ecotronItem.getSpriteName()); + + if (definition == null) { + continue; + } + + response.writeString(definition.hasBehaviour(ItemBehaviour.WALL_ITEM) ? "i" : "s"); + response.writeInt(definition.getSpriteId()); + } + } + } + + /** + * Get the list of ecotron rewards by chance + * @param chance the chance + * + * @return the list of ecotron rewards + */ + public List getRewardsByChance(int chance) { + return this.ecotronItems.stream().filter(ecotronItem -> ecotronItem.getChance() == chance).collect(Collectors.toList()); + } + + /** + * Get instance of {@link EcotronManager} + * + * @return the manager instance + */ + public static EcotronManager getInstance() { + if (instance == null) { + instance = new EcotronManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/effects/Effect.java b/Havana-Server/src/main/java/org/alexdev/havana/game/effects/Effect.java new file mode 100644 index 0000000..f308ea2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/effects/Effect.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.game.effects; + +import org.alexdev.havana.util.DateUtil; + +public class Effect { + private int id; + private int userId; + private int effectId; + private long expiryDate; + private boolean activated; + + public Effect(int id, int userId, int effectId, long expiryDate, boolean activated) { + this.id = id; + this.userId = userId; + this.effectId = effectId; + this.expiryDate = expiryDate; + this.activated = activated; + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public int getEffectId() { + return effectId; + } + + public int getTimeLeft() { + if (this.expiryDate >= DateUtil.getCurrentTimeSeconds()) { + return (int) (this.expiryDate - DateUtil.getCurrentTimeSeconds()); + } + + return 0; + } + + public long getExpireDate() { + return expiryDate; + } + + public void setExpiryDate(long expiryDate) { + this.expiryDate = expiryDate; + } + + public boolean isActivated() { + return activated; + } + + public void setActivated(boolean activated) { + this.activated = activated; + } + + public Integer getTimeDuration() { + return EffectsManager.getInstance().getEffectTime(this.effectId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/effects/EffectsManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/effects/EffectsManager.java new file mode 100644 index 0000000..f901545 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/effects/EffectsManager.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.game.effects; + +import org.alexdev.havana.dao.mysql.EffectDao; + +import java.util.Map; + +public class EffectsManager { + private static EffectsManager instance; + private Map effectTimes; + + public EffectsManager() { + this.effectTimes = EffectDao.getEffectTimes(); + } + + /** + * Get the time for this effect. + * + * @param effectId the effect + * @return the time in seconds + */ + public int getEffectTime(int effectId) { + if (this.effectTimes.containsKey(effectId)) { + return this.effectTimes.get(effectId); + } + + return 7200; // 2 hours default + } + + /** + * Get the {@link EffectsManager} instance + * + * @return the catalogue manager instance + */ + public static EffectsManager getInstance() { + if (instance == null) { + instance = new EffectsManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/DiffieHellman.java b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/DiffieHellman.java new file mode 100644 index 0000000..8359554 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/DiffieHellman.java @@ -0,0 +1,85 @@ +package org.alexdev.havana.game.encryption; + +import java.math.BigInteger; +import java.util.concurrent.ThreadLocalRandom; + +public class DiffieHellman { + private String clientPrivateKey; + + private BigInteger publicKey; + private BigInteger privateKey; + private BigInteger sharedKey; + private BigInteger clientP; + private BigInteger clientG; + private String clientPublicKey; + + public DiffieHellman() { + this.clientPrivateKey = DiffieHellman.generateRandomNumString(64); + this.privateKey = new BigInteger(this.clientPrivateKey); + this.clientP = new BigInteger(SecurityCode.assign(SecurityCode.getLoginParameter("p"))); + this.clientG = new BigInteger(SecurityCode.assign(SecurityCode.getLoginParameter("g"))); + } + + /** + * Generate shared key. + * + * @param publicKey the ckey + */ + public void generateSharedKey(String publicKey) { + this.clientPublicKey = publicKey; + this.publicKey = new BigInteger(publicKey); + this.sharedKey = this.publicKey.modPow(this.privateKey, this.clientP); + } + + + public static String generateRandomHexString(int len) { + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < len; i++) { + int rand = 1 + (int) (ThreadLocalRandom.current().nextDouble() * 254); // 1 - 255 + result.append(Integer.toString(rand, 16)); + } + return result.toString(); + } + + public static String generateRandomNumString(int len) { + int rand = 0; + StringBuilder result = new StringBuilder(); + + char[] numbers = new char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' }; + + for (int i = 0; i < len; i++) { + result.append(Character.toString(numbers[ThreadLocalRandom.current().nextInt(numbers.length)])); + } + return result.toString(); + } + + + public BigInteger getClientP() { + return clientP; + } + + public BigInteger getClientG() { + return clientG; + } + + public BigInteger getPrivateKey() { + return this.privateKey; + } + + public BigInteger getPublicKey() { + return this.publicKey; + } + + public BigInteger getSharedKey() { + return sharedKey; + } + + public String getClientPublicKey() { + return clientPublicKey; + } + + public String getClientPrivateKey() { + return clientPrivateKey; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/RC4.java b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/RC4.java new file mode 100644 index 0000000..f7607f0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/RC4.java @@ -0,0 +1,80 @@ +package org.alexdev.havana.game.encryption; + +public class RC4 { + private static final int POOL_SIZE = 256; + + private int i = 0; + private int j = 0; + private int[] table; + + public RC4() { + this.table = new int[POOL_SIZE]; + } + + public RC4(byte[] key) { + this.table = new int[POOL_SIZE]; + this.init(key); + } + + /** + * Inits the. + * + * @param key the key + */ + public void init(byte[] key) { + this.i = 0; + this.j = 0; + + for (i = 0; i < POOL_SIZE; ++i) { + this.table[i] = (byte) i; + } + + for (i = 0; i < POOL_SIZE; ++i) { + j = (j + table[i] + key[i % key.length]) & (POOL_SIZE - 1); + swap(i, j); + } + + this.i = 0; + this.j = 0; + } + + /** + * Swap. + * + * @param a the a + * @param b the b + */ + public void swap(int a, int b) { + int k = this.table[a]; + this.table[a] = this.table[b]; + this.table[b] = k; + } + + /** + * Next. + * + * @return the byte + */ + public byte next() { + i = ++i & (POOL_SIZE - 1); + j = (j + table[i]) & (POOL_SIZE - 1); + swap(i, j); + return (byte) table[(table[i] + table[j]) & (POOL_SIZE - 1)]; + } + + /** + * Decipher the incoming message. + * + * @param array the array + * @return the byte[] + */ + public byte[] decipher(byte[] array) { + byte[] result = new byte[array.length]; + + for (int i = 0; i < array.length; i++) { + result[i] = (byte) (array[i] ^ this.next()); + } + + return result; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/SecurityCode.java b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/SecurityCode.java new file mode 100644 index 0000000..69a2df0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/encryption/SecurityCode.java @@ -0,0 +1,100 @@ +package org.alexdev.havana.game.encryption; + +import java.util.ArrayList; +import java.util.List; + +public class SecurityCode { + // 366592457230440492243310979215656075163725460776 + + public static String assign(Object obj) { + List pData_NxIhNARqldyJyY2PfT03dK8t9OLUR = new ArrayList<>(); + + if (obj instanceof String) { + String hex = (String) obj; + String tData = hex; + + if (hex.toCharArray()[0] == '-') { + tData = hex.substring(1); + } + + int i = tData.length(); + int pDigits = "10000".length() - 1; + + while (i > 0) { + String tCoef = tData.substring(Math.max(0, i - (pDigits)), i); + i = i - tCoef.length(); + pData_NxIhNARqldyJyY2PfT03dK8t9OLUR.add("" + Integer.parseInt(tCoef)); + } + } + + if (obj instanceof int[]) { + int[] parameters = (int[]) obj; + + int tLimit = parameters.length; + + for (int tdata : parameters) { + pData_NxIhNARqldyJyY2PfT03dK8t9OLUR.add(""); + } + + /*int i = 0; + for (int tdata : parameters) { + pData_NxIhNARqldyJyY2PfT03dK8t9OLUR.add("" + decode(tdata)); + i++; + } + + Collections.reverse(pData_NxIhNARqldyJyY2PfT03dK8t9OLUR);*/ + int i = 0; + for (int tdata : parameters) { + pData_NxIhNARqldyJyY2PfT03dK8t9OLUR.set(tLimit - i - 1, "" + decode(tdata)); + i++; + } + + //Collections.reverse(pData_NxIhNARqldyJyY2PfT03dK8t9OLUR); + } + + return String.join("", pData_NxIhNARqldyJyY2PfT03dK8t9OLUR);//Arrays.toString(pData_NxIhNARqldyJyY2PfT03dK8t9OLUR.toArray()); + } + + private static int decode(int tInput) { + int tSeed = 5678; + int[] tSBox = new int[]{7530, 6652, 4115, 1750, 3354, 3647, 5188, 2844, 818, 2026, 7133, 2592, 3578}; + + int tIterations = 54; + int[] tSeedCycle = new int[tIterations + 1]; + + for (int i = 1; i < tIterations + 1; i++) { + tSeed = ((69069 * tSeed) + (139 * i) + 92541) % 10000; + tSeed = tSeed + (int)Math.pow(i, 3); + tSeed = (tSBox[i % tSBox.length] * tSeed + 2541) % 10000; + tSeedCycle[i] = tSeed; + } + + int tCipher = tInput; + tCipher = 7639 ^ tCipher; + + for (int i = 1; i < tIterations + 1; i++) { + int tLowBit = (tCipher & 1); + tCipher = tCipher / 2; + tLowBit = tLowBit * 16384; + tCipher = (tCipher | tLowBit); + int tOffset = tIterations - i + 1; + tCipher = (tSeedCycle[tOffset ] ^ tCipher); + tCipher = (1379 + tSBox[tOffset % tSBox.length] ^ tCipher); + tCipher = ((14 * tSBox[tOffset % tSBox.length] + 13) % 10000 ^ tCipher); + } + + return tCipher; + } + + public static int[] getLoginParameter(String parameter) { + if (parameter.equals("p")) { + return new int[]{7428, 22321, 14152, 3853, 6961, 15119, 23348, 18690, 24373, 11593, 22349, 23808, 22451, 15709, 18190, 16198, 29452, 10173, 17854, 12040, 10164, 21926, 23423, 11034, 2334, 6950, 1841, 21795, 25351}; + } + + if (parameter.equals("g")) { + return new int[]{32561, 8998, 950, 29459, 18193, 11607, 5954, 10035, 21438, 11179}; + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/entity/Entity.java b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/Entity.java new file mode 100644 index 0000000..6ad544e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/Entity.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.game.entity; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.entities.RoomEntity; + +public abstract class Entity { + + /** + * Checks for permission. + * + * @param permission the permission + * @return true, if successful + */ + public abstract boolean hasFuse(Fuseright permission); + + /** + * Gets the details. + * + * @return the details + */ + public abstract PlayerDetails getDetails(); + + /** + * Gets the room user. + * + * @return the room user + */ + public abstract RoomEntity getRoomUser(); + + /** + * Gets the type. + * + * @return the type + */ + public abstract EntityType getType(); + + /** + * Dispose. + */ + public abstract void dispose(); + + public boolean isMuted() { return false; } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityState.java new file mode 100644 index 0000000..8cd8582 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityState.java @@ -0,0 +1,74 @@ +package org.alexdev.havana.game.entity; + +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomUserStatus; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class EntityState { + private int entityId; + private int instanceId; + private EntityType entityType; + private PlayerDetails details; + private Room room; + private Position position; + private Map statuses; + private GroupMember groupMember; + private Entity entity; + + public EntityState(int entityId, int instanceId, EntityType entityType, PlayerDetails details, Room room, Position position, Map statuses, Entity user) { + this.entityId = entityId; + this.instanceId = instanceId; + this.entityType = entityType; + this.details = details; + this.room = room; + this.position = position; + this.statuses = new ConcurrentHashMap<>(statuses); + + if (this.details.getFavouriteGroupId() > 0) { + this.groupMember = this.details.getGroupMember(); + } + + this.entity = user; + } + + public Entity getEntity() { + return entity; + } + + public int getInstanceId() { + return instanceId; + } + + public Position getPosition() { + return position; + } + + public Map getStatuses() { + return statuses; + } + + public int getEntityId() { + return entityId; + } + + public PlayerDetails getDetails() { + return details; + } + + public Room getRoom() { + return room; + } + + public EntityType getEntityType() { + return entityType; + } + + public GroupMember getGroupMember() { + return groupMember; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityType.java new file mode 100644 index 0000000..5e1bef7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/entity/EntityType.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.entity; + +import org.alexdev.havana.game.player.Player; + +public enum EntityType { + PLAYER(Player.class, 1), + PET(Entity.class, 2), + BOT(Entity.class, 3); + + Class clazz; + int typeId; + + EntityType(Class clazz, int typeId) { + this.clazz = clazz; + this.typeId = typeId; + } + + public Class getEntityClass() { + return clazz; + } + + public int getTypeId() { + return this.typeId; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/events/Event.java b/Havana-Server/src/main/java/org/alexdev/havana/game/events/Event.java new file mode 100644 index 0000000..1ab14ff --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/events/Event.java @@ -0,0 +1,196 @@ +package org.alexdev.havana.game.events; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomData; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Event { + private int roomId; + private int userId; + private int categoryId; + private String name; + private String description; + private long expire; + private List tags; + + /*** + * The event constructor. + * @param roomId the room id the event is hosted in + * @param userId the user id hosting the event + * @param categoryId the category of the event + * @param name the name of the event + * @param description the event description + * @param started the unix timestamp of when the event started + * @param tags the room event tags (can only be created in flash) + */ + public Event(int roomId, int userId, int categoryId, String name, String description, long started, String tags) { + this.roomId = roomId; + this.userId = userId; + this.categoryId = categoryId; + this.name = name; + this.description = description; + this.expire = started; + this.tags = new ArrayList<>(Arrays.asList(tags.split(","))); + } + + /** + * Get whether the event has expired. + * + * @return true, if successful + */ + public boolean isExpired() { + return DateUtil.getCurrentTimeSeconds() > this.expire; + } + + /** + * Get the room id the event is being hosted in. + * + * @return the room id the event is hosted in + */ + public int getRoomId() { + return roomId; + } + + /** + * Get the room instance this event is being hosted for. + */ + public int getPlayersInEvent() { + Room room = RoomManager.getInstance().getRoomById(this.roomId); + + if (room != null) { + return room.getEntityManager().getPlayers().size(); + } + + return 0; + } + + /** + * Get room data. + */ + public RoomData getRoomData() { + return RoomManager.getInstance().getRoomById(this.roomId).getData(); + } + + /** + * Get the id of the user hosting the event. + * + * @return the event hoster id + */ + public int getUserId() { + return userId; + } + + /** + * Get player details + */ + public PlayerDetails getUserInfo() { + return PlayerManager.getInstance().getPlayerData(this.userId); + } + + + /** + * Get the category id for this event. + * + * @return the catgeory id + */ + public int getCategoryId() { + return categoryId; + } + + /** + * Set the category id for this event. + * + * @param categoryId the category id + */ + public void setCategoryId(int categoryId) { + this.categoryId = categoryId; + } + + /** + * Get the event hoster. + * + * @return the event hoster + */ + public PlayerDetails getEventHoster() { + return PlayerManager.getInstance().getPlayerData(this.userId); + } + + /** + * Get the event name. + * + * @return the event name + */ + public String getName() { + return name; + } + + /** + * Set the new name for this event + * + * @param name the event name + */ + public void setName(String name) { + this.name = name; + } + + /** + * Get the event description. + * + * @return the event description + */ + public String getDescription() { + return description; + } + + /** + * Sets the new description for this event. + * + * @param description the event description + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * Get the time the event started. + * + * @return the time the event started + */ + public long getExpireTime() { + return expire; + } + + /** + * Get the time the event started as a formatted date. + * + * @return the date formatted + */ + public String getStartedDate() { + return DateUtil.getDate(this.expire - EventsManager.getEventLifetime(), DateUtil.LONG_DATE); + } + + /** + * Get the time the event started as a formatted friendly date. + * + * @return the date formatted + */ + public String getFriendlyDate() { + return DateUtil.getFriendlyDate(this.expire - EventsManager.getEventLifetime()); + } + + /** + * Get the event tags + * + * @return the event tags + */ + public List getTags() { + return tags; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/events/EventsManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/events/EventsManager.java new file mode 100644 index 0000000..43b3c50 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/events/EventsManager.java @@ -0,0 +1,199 @@ +package org.alexdev.havana.game.events; + +import org.alexdev.havana.dao.mysql.EventsDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.sql.SQLException; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class EventsManager { + private static EventsManager instance; + private List eventList; + + public EventsManager() { + EventsDao.removeExpiredEvents(); + + this.eventList = EventsDao.getEvents(); + this.removeExpiredEvents(); + } + + /** + * Reload the events manager + */ + public static void reset() { + instance = null; + EventsManager.getInstance(); + } + + + /** + * This method is used to call the create event method. + * @param player the player who created the event + * @param category the category of the event + * @param name the name of the event + * @param description the description of the event + * @param tags + */ + public Event createEvent(Player player, int category, String name, String description, List tags) throws SQLException { + long expireTime = DateUtil.getCurrentTimeSeconds() + EventsManager.getEventLifetime(); + + Event event = new Event( + player.getRoomUser().getRoom().getId(), + player.getDetails().getId(), + category, + name, + description, + expireTime, + String.join(",", tags) + ); + + EventsDao.addEvent( + event.getRoomId(), + event.getUserId(), + event.getCategoryId(), + event.getName(), + event.getDescription(), + event.getExpireTime(), + String.join(",", tags) + ); + + this.eventList.add(event); + return event; + } + + /** + * Get whether a player can create a room event or not. + * + * @param player the player to check for + * @return true, if successful + */ + public boolean canCreateEvent(Player player) { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return false; + } else { + if (room.isPublicRoom()) { + return false; + } + + if (!room.isOwner(player.getDetails().getId())) { + return false; + } + } + + if (EventsManager.getInstance().isHostingEvent(player.getDetails().getId())) { + return false; + } + + if (EventsManager.getInstance().hasEvent(room.getId())) { + return false; + } + + return true; + } + + /** + * Get events by category. + * + * @param categoryId the category to get the events for + * @return the list of events + */ + public List getEvents(int categoryId) { + if (categoryId == 0) { // 0 is the hottest events + var events = EventsManager.getInstance().getEventList(); + events.sort(Comparator.comparingInt(Event::getPlayersInEvent).reversed()); + return events; + } + + return this.eventList.stream().filter(event -> event.getCategoryId() == categoryId && !event.isExpired()).collect(Collectors.toList()); + } + + /** + * Get whether a room event exists already. + * + * @param roomId the room id to check for + * @return true, if successful + */ + public boolean hasEvent(int roomId) { + return getEventByRoomId(roomId) != null; + } + + /** + * Get event by room id + * + * @param roomId the roomId to get the event for + */ + public Event getEventByRoomId(int roomId) { + var optional = this.eventList.stream().filter(event -> event.getRoomId() == roomId && !event.isExpired()).findFirst(); + return optional.orElse(null); + } + + /** + * Gets if a user is hosting an event already. + * + * @param userId the user id to check + * @return true, if successful + */ + public boolean isHostingEvent(int userId) { + var optional = this.eventList.stream().filter(event -> event.getUserId() == userId).findFirst(); + return optional.isPresent(); + + } + + /** + * Purge expired events. + */ + public void removeExpiredEvents() { + List expiredEvents = this.eventList.stream().filter(Event::isExpired).collect(Collectors.toList()); + EventsDao.removeEvents(expiredEvents); + this.eventList.removeIf(Event::isExpired); + } + + /** + * Get the event lifetime. + * + * @return the event lifetime + */ + public static long getEventLifetime() { + return TimeUnit.MINUTES.toSeconds(GameConfiguration.getInstance().getInteger("events.expiry.minutes")); + } + + /** + * Remove an event. + * + * @param event the event to remove + */ + public void removeEvent(Event event) { + this.eventList.removeIf(e -> e.getRoomId() == event.getRoomId()); + EventsDao.removeEvent(event); + } + + /** + * Get the list of all active events. + * + * @return the list of events. + */ + public List getEventList() { + return this.eventList.stream().filter(event -> !event.isExpired()).collect(Collectors.toList()); + } + + /** + * Get the {@link EventsManager} instance + * + * @return the item manager instance + */ + public static EventsManager getInstance() { + if (instance == null) { + instance = new EventsManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/Fuseright.java b/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/Fuseright.java new file mode 100644 index 0000000..a599705 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/Fuseright.java @@ -0,0 +1,109 @@ +package org.alexdev.havana.game.fuserights; + +import org.alexdev.havana.game.player.PlayerRank; + +public enum Fuseright { + // Basic fuses that apply to all users + DEFAULT("default", PlayerRank.NORMAL), + LOGIN("fuse_login", PlayerRank.NORMAL), + TRADE("fuse_trade", PlayerRank.NORMAL), + BUY_CREDITS("fuse_buy_credits", PlayerRank.NORMAL), + BUY_CREDITS_FUSE_LOGIN("fuse_buy_credits_fuse_login", PlayerRank.NORMAL), + ROOM_QUEUE_DEFAULT("fuse_room_queue_default", PlayerRank.NORMAL), + + // Hobba fuses + MUTE("fuse_mute", PlayerRank.HOBBA), + KICK("fuse_kick", PlayerRank.HOBBA), + RECEIVE_CALLS_FOR_HELP("fuse_receive_calls_for_help", PlayerRank.HOBBA), + + // Superhobba fuses + REMOVE_PHOTOS("fuse_remove_photos", PlayerRank.SUPERHOBBA), + REMOVE_STICKIES("fuse_remove_stickies", PlayerRank.SUPERHOBBA), + + // Moderator fuses + MOD("fuse_mod", PlayerRank.MODERATOR), + MODERATOR_ACCESS("fuse_moderator_access", PlayerRank.MODERATOR), + CHAT_LOG("fuse_chat_log", PlayerRank.MODERATOR), + ROOM_ALERT("fuse_room_alert", PlayerRank.MODERATOR), + ROOM_KICK("fuse_room_kick", PlayerRank.MODERATOR), + IGNORE_ROOM_OWNER("fuse_ignore_room_owner", PlayerRank.MODERATOR), + ENTER_FULL_ROOMS("fuse_enter_full_rooms", PlayerRank.MODERATOR), + ENTER_LOCKED_ROOMS("fuse_enter_locked_rooms", PlayerRank.MODERATOR), + SEE_ALL_ROOMOWNERS("fuse_see_all_roomowners", PlayerRank.MODERATOR), // Not sure if this is the correct fuse + SEARCH_USERS("fuse_search_users", PlayerRank.MODERATOR), + BAN("fuse_ban", PlayerRank.MODERATOR), + SEE_CHAT_LOG_LINK("fuse_see_chat_log_link", PlayerRank.MODERATOR), + CANCEL_ROOMEVENT("fuse_cancel_roomevent", PlayerRank.MODERATOR), + + // Administrator fuses + ADMINISTRATOR_ACCESS("fuse_administrator_access", PlayerRank.ADMINISTRATOR), + ANY_ROOM_CONTROLLER("fuse_any_room_controller", PlayerRank.ADMINISTRATOR), + PICK_UP_ANY_FURNI("fuse_pick_up_any_furni", PlayerRank.ADMINISTRATOR), + SEE_FLAT_IDS("fuse_see_flat_ids", PlayerRank.ADMINISTRATOR), + CREDITS("fuse_credits", PlayerRank.ADMINISTRATOR), + DEBUG_WINDOW("fuse_debug_window", PlayerRank.ADMINISTRATOR), + + // Club fuses, these fuses do not apply to any rank + PRIORITY_ACCESS("fuse_priority_access", true), + USE_SPECIAL_ROOM_LAYOUTS("fuse_use_special_room_layouts", true), + USE_CLUB_OUTFITS("fuse_use_club_outfits", true), + USE_CLUB_OUTFITS_DEFAULT("fuse_use_club_outfits_default", true), + USE_CLUB_BADGE("fuse_use_club_badge", true), + USE_CLUB_DANCE("fuse_use_club_dance", true), + USER_LIST_COMMAND("fuse_habbo_chooser", true), + FURNI_LIST_COMMAND("fuse_furni_chooser", true), + EXTENDED_BUDDYLIST("fuse_extended_buddylist", true), + ROOM_QUEUE_CLUB("fuse_room_queue_club", true), + + // Housekeeping fuses + HOUSEKEEPING_INTRA("housekeeping_intra", PlayerRank.HOBBA), + HOUSEKEEPING_KICK("housekeeping_kick", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_ALERT("fuse_housekeeping_alert", PlayerRank.SUPERHOBBA), + HOUSEKEEPING_DISCUSSION("housekeeping_discussion", PlayerRank.GUIDE), // Not sure if fuse_ is required or not + HOUSEKEEPING_DISCUSSION_ADMIN("housekeeping_discussion_admin", PlayerRank.SUPERHOBBA), // Not sure if fuse_ is required or not + HOUSEKEEPING_ADMIN("housekeeping_admin", PlayerRank.ADMINISTRATOR), + HOUSEKEEPING_ADMIN_CREDITS("housekeeping_admin_credits", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_ADMIN_USER_DATA("housekeeping_admin_user_data", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_ADMIN_PAYMENTS("housekeeping_admin_payments", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_CAMPAIGN("housekeeping_campaign", PlayerRank.COMMUNITY_MANAGER), // Not sure if fuse_ is required or not + HOUSEKEEPING_CAMPAIGN_ADS("housekeeping_campaign_ads", PlayerRank.COMMUNITY_MANAGER), // Not sure if fuse_ is required or not + HOUSEKEEPING_GEORGE("housekeeping_george", PlayerRank.MODERATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_ADMIN_CATALOG("housekeeping_admin_catalog", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA("housekeeping_hobba", PlayerRank.GUIDE), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA_NEWBIETOOLS("housekeeping_hobba_newbietools", PlayerRank.GUIDE), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA_MODERATORTOOLS("housekeeping_hobba_moderatortools", PlayerRank.HOBBA), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA_HOBBATOOLS("housekeeping_hobba_hobbatools", PlayerRank.HOBBA), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA_ADMINTOOLS("housekeeping_hobba_admintools", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_HOBBA_SUPERTOOLS("housekeeping_hobba_supertools", PlayerRank.SUPERHOBBA), + HOUSEKEEPING_BAN("housekeeping_ban", PlayerRank.MODERATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_MEGABAN("housekeeping_megaban", PlayerRank.ADMINISTRATOR), // Not sure if fuse_ is required or not + HOUSEKEEPING_SUPERBAN("housekeeping_superban", PlayerRank.ADMINISTRATOR); // Not sure if fuse_ is required or not + + private final String fuseright; + private final PlayerRank minimumRank; + private final boolean requiresClub; + + Fuseright(String fuseright, PlayerRank minimumRank) { + this.fuseright = fuseright; + this.minimumRank = minimumRank; + this.requiresClub = false; + } + + Fuseright(String fuseright, boolean requiresClub) { + this.fuseright = fuseright; + this.minimumRank = null; + this.requiresClub = requiresClub; + } + + public String getFuseright() { + return fuseright; + } + + public boolean isClubOnly() { + return this.requiresClub; + } + + public PlayerRank getMinimumRank() { + return minimumRank; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/FuserightsManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/FuserightsManager.java new file mode 100644 index 0000000..cc891d5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/fuserights/FuserightsManager.java @@ -0,0 +1,95 @@ +package org.alexdev.havana.game.fuserights; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerRank; + +import java.util.*; + +public class FuserightsManager { + private static FuserightsManager instance; + + private List fuserights; + + public FuserightsManager() { + this.fuserights = new ArrayList<>(); + this.fuserights.addAll(Arrays.asList(Fuseright.values())); + } + + /** + * Get the available groups for user. + * + * @param minimumRank the minimum rank to see the fuseright + * @return the lsit of groups + */ + public List getFuserightsForRank(PlayerRank minimumRank) { + List fuses = new ArrayList<>(); + + for (Fuseright f : this.fuserights) { + if (f.getMinimumRank() == null || f.isClubOnly()) { + continue; + } + + if (minimumRank.getRankId() >= f.getMinimumRank().getRankId()) { + fuses.add(f); + } + } + + return fuses; + } + + /* + * Get available groups for users with a club subscription + */ + public List getClubFuserights() { + List fuses = new ArrayList<>(); + + for (Fuseright f : this.fuserights) { + if (f.isClubOnly()) { + fuses.add(f); + } + } + + return fuses; + } + + /** + * Get if the rank has a fuseright. + * + * @param fuse the fuse to check against + * @return true, if successful + */ + public boolean hasFuseright(Fuseright fuse, PlayerDetails details) { + for (Fuseright f : this.fuserights) { + if (f.getMinimumRank() == null) { + continue; + } + + if (details.getRank().getRankId() >= f.getMinimumRank().getRankId() && f == fuse) { + return true; + } + } + + if (details.hasClubSubscription()) { + for (Fuseright f : this.fuserights) { + if (f.isClubOnly() && f == fuse) { + return true; + } + } + } + + return false; + } + + /** + * Get the fuseright manager instance. + * + * @return the fuseright manager + */ + public static FuserightsManager getInstance() { + if (instance == null) { + instance = new FuserightsManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/Game.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/Game.java new file mode 100644 index 0000000..9c4a180 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/Game.java @@ -0,0 +1,945 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.events.PlayerMoveEvent; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.history.GameHistoryData; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.tasks.GameFinishTask; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.games.*; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; + +public abstract class Game { + private int id; + private int mapId; + private int teamAmount; + + private String gameCreatorName; + private int gameCreatorId; + + private GameType gameType; + private GameState gameState; + + private Room room; + private RoomModel roomModel; + + private String name; + private Map teams; + + private List observers; + private List spectators; + + private BlockingQueue eventsQueue; + private BlockingQueue objectsQueue; + + private List objects; + private List events; + + private AtomicInteger preparingGameSecondsLeft; + private AtomicInteger totalSecondsLeft; + private AtomicLong restartCountdown; + private AtomicInteger objectId; + + private FutureRunnable preparingTimerRunnable; + private FutureRunnable gameTimerRunnable; + private FutureRunnable restartRunnable; + + private boolean gameStarted; + private boolean gameFinished; + + private int regenerateMapInterval; + private boolean regenerateMapEnabled; + + public Game(int id, int mapId, GameType gameType, String name, int teamAmount, Player gameCreator) { + this.id = id; + this.mapId = mapId; + this.gameType = gameType; + this.name = name; + this.teamAmount = teamAmount; + this.gameCreatorName = gameCreator.getDetails().getName(); + this.gameCreatorId = gameCreator.getDetails().getId(); + this.teams = new ConcurrentHashMap<>(); + + this.spectators = new CopyOnWriteArrayList<>(); + this.observers = new CopyOnWriteArrayList<>(); + + this.eventsQueue = new LinkedBlockingQueue<>(); + this.objectsQueue = new LinkedBlockingQueue<>(); + + this.objects = new CopyOnWriteArrayList<>(); + this.events = new CopyOnWriteArrayList<>(); + + for (int i = 0; i < teamAmount; i++) { + this.teams.put(i, new GameTeam(i, this)); + } + + this.objectId = new AtomicInteger(0); + this.gameState = GameState.WAITING; + + this.regenerateMapEnabled = GameConfiguration.getInstance().getBoolean("regenerate.map.enabled"); + this.regenerateMapInterval = GameConfiguration.getInstance().getInteger("regenerate.map.interval"); + } + + public void reassignGameId() { + this.id = GameManager.getInstance().getGameCounter().getAndIncrement(); + } + + /** + * Method to initialise the game + */ + public void initialise() { + this.initialise(GameManager.getInstance().getLifetimeSeconds(this.gameType), "Battleball Arena", GameManager.getInstance().getModel(this.gameType, this.mapId)); + } + + public void initialise(int lifetimeSeconds, String roomName, RoomModel model) { + this.gameState = GameState.STARTED; + + this.preparingGameSecondsLeft = new AtomicInteger(GameManager.getInstance().getPreparingSeconds(this.gameType)); + this.totalSecondsLeft = new AtomicInteger(lifetimeSeconds); + + if (model != null) { + this.roomModel = model; + } + + if (this.room == null) { + this.room = new Room(); + this.room.getData().fill(0, roomName, ""); + this.room.setRoomModel(this.getRoomModel()); + this.room.getData().setGame(this); + this.room.setGameArena(true); + + //this.room.getData().setCategoryId(NavigatorManager.getInstance().getCategories().values().stream().findFirst().get().getId()); + this.room.getData().setGameArena(true); + this.room.getData().setGameLobby(this.gameType.getLobbyModel()); + } + + this.objects.clear(); + this.events.clear(); + this.room.getMapping().regenerateCollisionMap(); + this.buildMap(); + } + + /** + * Method to start the game + */ + public void startGame() { + this.initialise(); + this.assignSpawnPoints(); + + var game = this; + + for (GamePlayer p : this.getActivePlayers()) { + p.setEnteringGame(true); // Set to true so when they leave the lobby, the server knows to initialise the user when they join the arena + } + + this.send(new GAMELOCATION()); + this.sendSpectatorsToArena(); + + /*while (true) { + if (this.getPlayers().stream().allMatch(g -> g.getPlayer().getRoomUser().getRoom() != null)) { + this.send(new FULLGAMESTATUS(this)); + break; + } + }*/ + + // Preparing game seconds countdown + this.preparingTimerRunnable = new FutureRunnable() { + public void run() { + try { + gamePrepareTick(); + + if (getActivePlayers().isEmpty()) { + GameManager.getInstance().getGames().remove(game); + killSpectators(); + this.cancelFuture(); + return; + } + + if (preparingGameSecondsLeft.getAndDecrement() == 0) { + this.cancelFuture(); + beginGame(); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(this.preparingTimerRunnable, 0, 1, TimeUnit.SECONDS); + this.preparingTimerRunnable.setFuture(future); + + this.sendObservers(new GAMEINSTANCE(this)); + this.gamePrepare(); + } + + /** + * Method for when the game begins after the initial preparing game seconds timer + */ + private void beginGame() { + this.gameStarted = true; + + // Stop all players from walking when game starts if they selected a tile + for (GamePlayer p : this.getActivePlayers()) { + p.getPlayer().getRoomUser().setWalkingAllowed(true); + p.getPlayer().getRoomUser().setTeleporting(false); + } + + // Send game seconds + this.send(new GAMESTART(this.totalSecondsLeft.get())); + + // Regenerate collision map when game starts + this.room.getMapping().regenerateCollisionMap(); + + // Game seconds counter + this.gameTimerRunnable = new FutureRunnable() { + public void run() { + try { + gameTick(); + + if (regenerateMapEnabled) { + if (totalSecondsLeft.get() % regenerateMapInterval == 0) { + room.getMapping().regenerateCollisionMap(); + } + } + + // Game ends either when time runs out or there's no free tiles left to seal + if (totalSecondsLeft.decrementAndGet() == 0 || !canTimerContinue() || getActivePlayers().isEmpty()) { + this.cancelFuture(); + finishGame(); + } + + } catch (Exception ex) { + Log.getErrorLogger().error("Error occurred in game timer runnable: ", ex); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(this.gameTimerRunnable, 0, 1, TimeUnit.SECONDS); + this.gameTimerRunnable.setFuture(future); + + gameStarted(); + } + + /** + * Finish game + */ + public void finishGame() { + Game instance = this; + this.gameStarted = false; + this.gameFinished = true; + this.gameState = GameState.ENDED; + + // Stop all players from walking when game starts if they selected a tile + for (GamePlayer p : this.getActivePlayers()) { + //System.out.println(p.getPlayer().getDetails().getName() + " = " + p.getScore()); + p.getPlayer().getRoomUser().setWalkingAllowed(false); + p.getPlayer().getRoomUser().setTeleporting(false); + } + + var gameHistoryData = new GameHistoryData(); + var gameHistory = new GameHistory(gameHistoryData); + + if (this.teams.size() > 0) { + var sortedTeamList = new ArrayList<>(this.teams.values()); + sortedTeamList.sort(Comparator.comparingInt(GameTeam::getScore).reversed()); + + var winningTeam = sortedTeamList.get(0); + + gameHistoryData.setTeamCount(sortedTeamList.size()); + + for (GameTeam team : sortedTeamList) { + for (GamePlayer gamePlayer : team.getPlayers()) { + gameHistoryData.addPlayer(gamePlayer.getUserId(), gamePlayer.getScore(), gamePlayer.getTeamId()); + } + } + + gameHistory.setName(this.getName()); + gameHistory.setWinningTeam(winningTeam.getId()); + gameHistory.setWinningTeamScore(winningTeam.getScore()); + gameHistory.setGameType(this.gameType); + gameHistory.setMapId(this.getMapId()); + + if (this.gameType == GameType.BATTLEBALL) { + gameHistory.setExtraData(((BattleBallGame) this).getAllowedPowerUps().stream().map(String::valueOf).collect(Collectors.joining(","))); + } else { + gameHistory.setExtraData(String.valueOf(((SnowStormGame) this).getGameLengthChoice())); + } + + if (this.canIncreasePoints()) { + var gameFinishTask = new GameFinishTask(this, gameHistory, this.gameType, sortedTeamList, this.getActivePlayers()); + gameFinishTask.run(); + } + } + + // Send scores to everybody + this.send(new GAMEEND(this.gameType, this.teams)); + this.gameEnded(); + + // Restart countdown + this.restartCountdown = new AtomicLong(GameManager.getInstance().getRestartSeconds(this.gameType)); + + this.restartRunnable = new FutureRunnable() { + public void run() { + if (!hasEnoughPlayers() || gameState != GameState.ENDED) { + this.cancelFuture(); + return; + } + + List afkPlayers = new ArrayList<>(); // Players who didn't touch any button + + for (GamePlayer p : instance.getActivePlayers()) { + if (!p.isClickedRestart()) { + afkPlayers.add(p); + } + } + + if (restartCountdown.decrementAndGet() == 0) { + if (afkPlayers.size() > 0) { // Only call this if not everyone clicked play again, else GAMERESTART.java handles it + triggerRestart(); + } + + this.cancelFuture(); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(this.restartRunnable, 0, 1, TimeUnit.SECONDS); + this.restartRunnable.setFuture(future); + + this.sendObservers(new GAMEINSTANCE(gameHistory)); + this.observers.clear(); + } + + /** + * Restarts all the new players who clicked to play the next game. + */ + public void triggerRestart() { + List players = new ArrayList<>(); // Players who wanted to restart + List afkPlayers = new ArrayList<>(); // Players who didn't touch any button + + for (GamePlayer p : this.getActivePlayers()) { + if (!p.isClickedRestart()) { + afkPlayers.add(p); + } else { + p.setClickedRestart(false); // Reset whether or not they clicked restart, for next game + players.add(p); + } + } + + // Only create a new game if there's two players who joined + if (players.size() >= GameConfiguration.getInstance().getInteger(this.gameType.name().toLowerCase() + ".start.minimum.active.teams")) { + this.restartGame(players); + } else { + afkPlayers.addAll(players); + } + + // Send spectators to lobby too + afkPlayers.addAll(this.spectators); + + for (var afkPlayer : afkPlayers) { + this.sendToLobby(afkPlayer); + } + } + + /** + * Method to restart game. + */ + public void restartGame(List players) { + if (this.restartRunnable != null) { + this.restartRunnable.cancelFuture(); + } + + if (this.preparingTimerRunnable != null) { + this.preparingTimerRunnable.cancelFuture(); + } + + if (this.gameTimerRunnable != null) { + this.gameTimerRunnable.cancelFuture(); + } + + for (GameTeam gameTeam : this.teams.values()) { + gameTeam.getPlayers().clear(); + } + + for (var gamePlayer : players) { + this.movePlayer(gamePlayer, -1, gamePlayer.getTeamId()); + gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(false); // Don't allow them to walk, for next game + gamePlayer.getPlayer().getRoomUser().setTeleporting(false); + } + + this.reassignGameId(); + this.initialise(); + this.assignSpawnPoints(); + + for (GamePlayer gamePlayer : this.getActivePlayers()) { + gamePlayer.setGameId(this.getId()); + gamePlayer.getPlayer().getRoomUser().setInstanceId(gamePlayer.getObjectId()); + gamePlayer.getPlayer().getRoomUser().setPosition(gamePlayer.getSpawnPosition()); + } + + this.send(new GAMERESET(GameManager.getInstance().getPreparingSeconds(this.gameType), players, this)); + this.send(new FULLGAMESTATUS(this)); // Show users back at spawn positions + + this.sendObservers(new GAMEDELETED(this.id)); + + // Preparing game seconds countdown + this.preparingTimerRunnable = new FutureRunnable() { + public void run() { + try { + if (!hasEnoughPlayers()) { + this.cancelFuture(); + return; + } + + gamePrepareTick(); + + if (preparingGameSecondsLeft.getAndDecrement() == 0) { + this.cancelFuture(); + beginGame(); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(this.preparingTimerRunnable, 1, 1, TimeUnit.SECONDS); + this.preparingTimerRunnable.setFuture(future); + + this.gamePrepare(); + } + + /** + * Make the player leave the game, abort the game if the owner leaves + * + * @param gamePlayer the game player to leave + */ + public void leaveGame(GamePlayer gamePlayer) { + boolean isSpectator = this.spectators.contains(gamePlayer); + + this.spectators.remove(gamePlayer); + this.objects.remove(gamePlayer.getGameObject()); + + gamePlayer.getPlayer().getRoomUser().setGamePlayer(null); + gamePlayer.getPlayer().send(new GAMEDELETED(this.id)); + + if (!isSpectator) { + this.movePlayer(gamePlayer, gamePlayer.getTeamId(), -1); + } else { + this.send(new GAMEINSTANCE(this)); + this.sendObservers(new GAMEINSTANCE(this)); + } + + if (this.gameState == GameState.WAITING && this.gameCreatorId == gamePlayer.getPlayer().getDetails().getId() || this.getActivePlayers().isEmpty()) { + GameManager.getInstance().getGames().remove(this); + + for (var player : this.getTotalPlayers()) { + player.getPlayer().getRoomUser().setGamePlayer(null); + } + + for (var player : this.getSpectators()) { + player.getPlayer().getRoomUser().setGamePlayer(null); + } + + for (var player : this.getObservers()) { + player.getRoomUser().setObservingGameId(0); + } + + this.send(new GAMEDELETED(this.id)); + this.sendObservers(new GAMEDELETED(this.id)); + this.killSpectators(); + } + + gamePlayer.getPlayer().getRoomUser().setGamePlayer(null); + gamePlayer.setGameId(-1); + } + + /** + * Send all spectators to arena, happens when game starts after waiting for players. + */ + private void sendSpectatorsToArena() { + for (GamePlayer spectator : this.spectators) { + this.sendSpectatorToArena(spectator); + } + } + + /** + * Send spectaot to arena + * + * @param spectator the spectator to send + */ + public void sendSpectatorToArena(GamePlayer spectator) { + if (!spectator.isSpectator()) { + return; + } + + if (spectator.getPlayer().getRoomUser().getRoom() != this.room) { + spectator.getPlayer().send(new GAMELOCATION()); + spectator.setEnteringGame(true); + + // No longer an observer + this.observers.remove(spectator.getPlayer()); + } + } + + /** + * Terminate all spectators, and send them to the lobby. + */ + private void killSpectators() { + for (GamePlayer spectator : this.spectators) { + this.sendToLobby(spectator); + } + + this.spectators.clear(); + } + + /** + * Send players to the game lobby, will make them leave the game. + * + * @param gamePlayer the player to send + */ + public void sendToLobby(GamePlayer gamePlayer) { + Player player = gamePlayer.getPlayer(); + + if (player.getRoomUser().getRoom() != this.room) { + return; // Don't force people to go to a room they didn't request + } + + if (player.getRoomUser().getRoom() != null) { + player.getRoomUser().getRoom().getEntityManager().leaveRoom(player, false); + } else { + this.leaveGame(gamePlayer); + } + + this.getLobby().forward(gamePlayer.getPlayer(), false); + } + + /** + * Get the lobby for this game. + * + * @return the room lobby + */ + public Room getLobby() { + return RoomManager.getInstance().getRoomByModel(this.gameType.getLobbyModel()); + } + + /** + * Moves a player from one team to another team. + * + * @param gamePlayer the player to move + * @param fromTeamId the team to move from, -1 if just to add to team + * @param toTeamId the team to move to, -1 if just removing user from team + */ + public void movePlayer(GamePlayer gamePlayer, int fromTeamId, int toTeamId) { + if (fromTeamId != -1) { + if (this.gameState == GameState.WAITING || this.gameState == GameState.ENDED) { + this.teams.get(fromTeamId).getPlayers().remove(gamePlayer); + } + + gamePlayer.setInGame(false); // Leaving team so they're not in game + } + + if (toTeamId != -1) { + if (!this.teams.get(toTeamId).getPlayers().contains(gamePlayer)) { + this.teams.get(toTeamId).getPlayers().add(gamePlayer); + } + + gamePlayer.setTeamId(toTeamId); + gamePlayer.setInGame(true); // Entering team so they're in game + } else { + if (this.gameState == GameState.WAITING || this.gameState == GameState.ENDED) { + this.teams.get(gamePlayer.getTeamId()).getPlayers().remove(gamePlayer); + } else { + gamePlayer.setInGame(false); // Don't remove from team, just show they're no longer in game, for "0" score at the end. + } + + gamePlayer.getPlayer().getRoomUser().setGamePlayer(null); + } + + this.send(new GAMEINSTANCE(this)); + this.sendObservers(new GAMEINSTANCE(this)); + } + + /** + * Send a packet to all members in game + * + * @param composer the composer to send + */ + public void send(MessageComposer composer) { + for (GamePlayer gamePlayer : this.getActivePlayers()) { + gamePlayer.getPlayer().send(composer); + } + + for (GamePlayer player : this.spectators) { + player.getPlayer().send(composer); + } + } + + /** + * Send a packet (game status) to all observers + * + * @param composer the composer to send + */ + public void sendObservers(MessageComposer composer) { + for (Player player : this.observers) { + player.send(composer); + } + } + + /** + * Get if there is enough space for this user to switch to the team + * + * @param teamId the team id to check for + * @return true, if successful + */ + public boolean canSwitchTeam(int teamId) { + int maxPerTeam = 0; + + if (this.teamAmount == 1) { + maxPerTeam = 10; + } else if (this.teamAmount == 2) { + maxPerTeam = 5; + } else if (this.teamAmount == 3) { + maxPerTeam = 3; + } else if (this.teamAmount == 4) { + maxPerTeam = 2; + } + + return this.teams.get(teamId).getActivePlayers().size() <= maxPerTeam; + } + + public int getMaxPlayers() { + int maxPerTeam = 0; + + if (this.teamAmount == 1) { + maxPerTeam = 10; + } else if (this.teamAmount == 2) { + maxPerTeam = 5; + } else if (this.teamAmount == 3) { + maxPerTeam = 3; + } else if (this.teamAmount == 4) { + maxPerTeam = 2; + } + + return maxPerTeam * this.teamAmount; + } + + /** + * Get whether points can be increased or not + * + * @return true, if successful + */ + public boolean canIncreasePoints() { + return GameConfiguration.getInstance().getBoolean(this.gameType.name().toLowerCase() + ".increase.points"); + } + + /** + * Gets if there's enough players in different teams for the game to start + * (minimum of 2 players) + * + * @return true, if successful + */ + public boolean canGameStart() { + if (this.gameType == GameType.SNOWSTORM && this.teamAmount == 1) { + return this.getActivePlayers().size() > 1; + } else { + int activeTeamCount = 0; + + for (int i = 0; i < this.teamAmount; i++) { + if (this.teams.get(i).getActivePlayers().size() > 0) { + activeTeamCount++; + } + } + + return activeTeamCount >= GameConfiguration.getInstance().getInteger(this.gameType.name().toLowerCase() + ".start.minimum.active.teams"); + } + } + + /** + * Gets if there's enough players in different teams for the game to continue + * (minimum of 1 players) + * + * @return true, if successful + */ + public abstract boolean hasEnoughPlayers(); + + /** + * Get the game player instance by id + * @param userId the id to get the player by + * @return the game player instance, else if null + */ + public GamePlayer getGamePlayer(int userId) { + for (GamePlayer gamePlayer : this.getActivePlayers()) { + if (gamePlayer.getUserId() == userId) { + return gamePlayer; + } + } + + return null; + } + + /** + * Get a tile by specified coordinates + * + * @param x the x coordinate + * @param y the y coordinate + * @return the battleball tile, if successful + */ + public GameTile getTile(int x, int y) { + if (x < 0 || y < 0) { + return null; + } + + if (x >= this.roomModel.getMapSizeX() || y >= roomModel.getMapSizeY() || y >= getTileMap()[0].length || x >= getTileMap().length) { + return null; + } + + return this.getTileMap()[x][y]; + } + + /** + * Method to create object ids. + * + * @return the new object ids + */ + public int createObjectId() { + return this.objectId.incrementAndGet(); + } + + public void addObjectToQueue(GameObject object) { + this.objectsQueue.removeIf(obj -> obj.getId() == object.getId()); + this.objectsQueue.add(object); + } + + public void addPlayerMove(PlayerMoveEvent event) { + this.eventsQueue.removeIf(e -> e instanceof PlayerMoveEvent && ((PlayerMoveEvent)e).getGamePlayer() == event.getGamePlayer()); + this.eventsQueue.add(event); + } + + /** + * Method for whether the game can continue, eg if all tiles are filled up or + * some other logic + * + * @return true, if game has finished + */ + public abstract boolean canTimerContinue(); + + /** + * Assign spawn points to all team members + */ + public abstract void assignSpawnPoints(); + + /** + * Method to get the tile map + */ + public abstract GameTile[][] getTileMap(); + + /** + * Handler for building map + */ + public abstract void buildMap(); + + /** + * Method called when game is ticked + */ + public abstract void gameTick(); + + /** + * Method called when the game initially began + */ + public void gamePrepare() { + for (GameTeam gameTeam : this.getTeams().values()) { + gameTeam.setScore(0); + } + + for (GamePlayer gamePlayer : this.getActivePlayers()) { + gamePlayer.setXp(0); + gamePlayer.setScore(0); + } + } + + /** + * Method called for the tick in game beginning + */ + public void gamePrepareTick() { } + + /** + * Method called when the game initially started + */ + public void gameStarted() { } + + /** + * Method called when the game ends, when the scoreboard shows + */ + public void gameEnded() { } + + public List getActivePlayers() { + List gamePlayers = new ArrayList<>(); + + for (GameTeam team : this.teams.values()) { + gamePlayers.addAll(team.getActivePlayers()); + } + + return gamePlayers; + } + + public List getTotalPlayers() { + List gamePlayers = new ArrayList<>(); + + for (GameTeam team : this.teams.values()) { + gamePlayers.addAll(team.getActivePlayers()); + } + + return gamePlayers; + } + + /** + * Get the cost of tickets required to play this game + * + * @return the ticket amount required + */ + public int getTicketCost() { + return getTicketCost(this.getGameType()); + } + + /** + * Get the cost of tickets required to play each game + * + * @param gameType the type of game to get the ticket cost for + * @return the ticket amount required + */ + public static int getTicketCost(GameType gameType) { + return GameConfiguration.getInstance().getInteger(gameType.name().toLowerCase() + ".ticket.charge"); + } + + /** + * Get the list of specators, the people currently watching the game + * + * @return the list of spectators + */ + public List getSpectators() { + return spectators; + } + + /** + * + * @return + */ + public List getObservers() { + return observers; + } + + /** + * Get the game id + * + * @return the game id + */ + public int getId() { + return id; + } + + public GameType getGameType() { + return gameType; + } + + public GameState getGameState() { + return gameState; + } + + public String getName() { + return name; + } + + public int getTeamAmount() { + return teamAmount; + } + + public Map getTeams() { + return teams; + } + + public String getGameCreator() { + return this.gameCreatorName; + } + + public int getMapId() { + return mapId; + } + + public AtomicInteger getPreparingGameSecondsLeft() { + return preparingGameSecondsLeft; + } + + public AtomicInteger getTotalSecondsLeft() { + return totalSecondsLeft; + } + + public RoomModel getRoomModel() { + return roomModel; + } + + public Room getRoom() { + return room; + } + + public boolean isGameStarted() { + return gameStarted; + } + + public boolean isGameFinished() { + return gameFinished; + } + + public int getGameCreatorId() { + return gameCreatorId; + } + + public BlockingQueue getEventsQueue() { + return eventsQueue; + } + + public BlockingQueue getObjectsQueue() { + return objectsQueue; + } + + public List getObjects() { + return objects; + } + + public void setRoomModel(RoomModel roomModel) { + this.roomModel = roomModel; + } + + public AtomicInteger getObjectId() { + return objectId; + } + + public void setObjectId(AtomicInteger objectId) { + this.objectId = objectId; + } + + public FutureRunnable getRestartRunnable() { + return restartRunnable; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameEvent.java new file mode 100644 index 0000000..bef7338 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameEvent.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public abstract class GameEvent { + private GameEventType gameEventType; + + public GameEvent(GameEventType gameEventType) { + this.gameEventType = gameEventType; + } + + public abstract void serialiseEvent(NettyResponse response); + + /** + * Get the game event type for the update loop + * + * @return the event type + */ + public GameEventType getGameEventType() { + return gameEventType; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameManager.java new file mode 100644 index 0000000..161dc58 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameManager.java @@ -0,0 +1,335 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.dao.mysql.GameDao; +import org.alexdev.havana.game.games.battleball.BattleBallMap; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.player.GameRank; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +public class GameManager { + private static GameManager instance = null; + + private ScheduledFuture expiryLoop; + + private AtomicInteger gameCounter; + private AtomicInteger finishedGameCounter; + + private List spawnList; + private List rankList; + private List modelList; + + private List games; + private List battleballTileMaps; + + private HashMap> lastPlayedGames; + + public GameManager() { + this.rankList = GameDao.getRanks(); + this.modelList = GameDao.getGameMaps(); + this.spawnList = GameDao.getGameSpawns(); + this.battleballTileMaps = GameDao.getBattleballTileMaps(); + this.games = new ArrayList<>(); + this.gameCounter = new AtomicInteger(0); + this.finishedGameCounter = new AtomicInteger(0); + this.refreshPlayedGames(); + } + + public void refreshPlayedGames() { + this.lastPlayedGames = new HashMap<>();//GameDao.getLastPlayedGames(); + + for (GameType gameType : GameType.values()) { + this.lastPlayedGames.put(gameType, GameDao.getLastPlayedGames(gameType)); + + for (var game : this.lastPlayedGames.get(gameType)) { + game.setId(this.getGameCounter().getAndIncrement()); + } + } + } + + public int getRandomCredits(boolean isWinner) { + int maxCredits = 0; + int minCredits = 0; + + String[] rangeData = GameConfiguration.getInstance().getString("reward.credits." + (isWinner ? "winner" : "loser") + ".range").split(Pattern.quote("-")); + + try { + minCredits = Integer.parseInt(rangeData[0]); + maxCredits = Integer.parseInt(rangeData[1]); + } catch (Exception ex) { + Log.getErrorLogger().error("Error when handling give random credits: " + ex); + } + + if (minCredits == maxCredits) { + return maxCredits; + } else { + return ThreadLocalRandom.current().nextInt(minCredits, maxCredits + 1); + } + } + + /** + * Check xp expiry. + */ +public void checkXpExpiry() { + var currentMonthFormat = DateUtil.getCurrentDate("yyyy-MM"); + + if (currentMonthFormat.equalsIgnoreCase(GameConfiguration.getInstance().getString("xp.monthly.expiry"))) { + return; + } + + GameConfiguration.getInstance().updateSetting("xp.monthly.expiry", currentMonthFormat); + GameDao.resetMonthlyXp(); +} + + /** + * Get the game spawn list by game type, map id and team id + * + * @param gameType the game type (battleball or snowstorm) + * @param mapId the map id + * @param teamId the team id + * @return the game spawn + */ + public List getGameSpawns(GameType gameType, int mapId, int teamId) { + /*for (GameSpawn gameSpawn : this.spawnList) { + if ((gameSpawn.getGameType() == gameType) && (gameSpawn.getMapId() == mapId) && (gameSpawn.getTeamId() == teamId)) { + return gameSpawn; + } + }*/ + + return this.spawnList.stream().filter(gameSpawn -> (gameSpawn.getGameType() == gameType) && (gameSpawn.getMapId() == mapId) && (gameSpawn.getTeamId() == teamId)).collect(Collectors.toList()); + } + + /** + * Get the game spawn by gamr type, map id and team id + * + * @param mapId the map id + * @return the game spawn + */ + public BattleBallMap getBattleballTileMap(int mapId) { + for (BattleBallMap tileMap : this.battleballTileMaps) { + if (tileMap.getMapId() == mapId) { + return tileMap; + } + } + + return null; + } + + /** + * Gets a game instance by specified game id + * + * @param gameId the game id used + * @return the game instance + */ + public Game getGameById(int gameId) { + for (Game game : this.games) { + if (game.getId() == gameId) { + return game; + } + } + + return null; + } + + /** + * Get the list of games by type + * + * @param gameType the type of game + * @return the list of games + */ + public List getGamesByType(GameType gameType) { + return this.games.stream().filter( + game -> game.getGameType() == gameType + ).collect(Collectors.toList()); + } + + /** + * Get the list of started games by type + * + * @param gameType the type of game + * @return the list of games + */ + public List getStartedGamesByType(GameType gameType) { + return this.games.stream().filter( + game -> game.getGameType() == gameType && game.getGameState() == GameState.STARTED + ).collect(Collectors.toList()); + } + + /** + * Get the list of game ranks by type + * + * @param gameType the type of game to get the ranks for + * @return the list of ranks + */ + public List getRanksByType(GameType gameType) { + return this.rankList.stream().filter( + rank -> rank.getType() == gameType + ).collect(Collectors.toList()); + } + + /** + * Get the instance of {@link GameManager} + * + * @return the instance + */ + public static GameManager getInstance() { + if (instance == null) { + instance = new GameManager(); + } + + return instance; + } + + /** + * Reload the instance of {@link GameManager} + */ + public static void reset() { + int gameCounter = 0; + + if (instance != null) { + gameCounter = instance.gameCounter.get(); + } + + instance = null; + getInstance().getGameCounter().set(gameCounter); + } + + /** + * Creates a new game id for the game + * + * @return the game id + */ + public int createId() { + return gameCounter.incrementAndGet(); + } + + /** + * Gets the game id counter. + * + * @return the id counter + */ + public AtomicInteger getGameCounter() { + return gameCounter; + } + + /** + * Gets the list of currently active games + * + * @return the list of games + */ + public List getGames() { + return games; + } + + /** + * Gets the restart time for the specified game type. + */ + public int getRestartSeconds(GameType gameType) { + return GameConfiguration.getInstance().getInteger(gameType.name().toLowerCase() + ".restart.game.seconds"); + } + + /** + * Gets the game time for the specified game type. + */ + public int getLifetimeSeconds(GameType gameType) { + return GameConfiguration.getInstance().getInteger(gameType.name().toLowerCase() + ".game.lifetime.seconds"); + } + + /** + * Gets the game time for the specified game type. + */ + public int getPreparingSeconds(GameType gameType) { + return GameConfiguration.getInstance().getInteger(gameType.name().toLowerCase() + ".preparing.game.seconds"); + } + + /** + * Get the amount of seconds allowed for a finished game to persist on the instance list before it's removed + * + * @return the amount of seconds + */ + public int getListingExpiryTime() { + return GameConfiguration.getInstance().getInteger("game.finished.listing.expiry.seconds"); + } + + /** + * Get model by type and map id + * + * @return the room model instance + */ + public RoomModel getModel(GameType type, int mapId) { + String prefix = (type == GameType.BATTLEBALL ? "bb" : "ss"); + + for (RoomModel roomModel : this.modelList) { + if (roomModel.getName().equals(prefix + "_arena_" + mapId)) { + return roomModel; + } + } + + return null; + } + + public List getMaps() { + return this.modelList; + } + + /** + * Get the finished game counter. + * + * @return the finished game counter + */ + public AtomicInteger getFinishedGameCounter() { + return finishedGameCounter; + } + + public List getLastPlayedGames(GameType gameType) { + return lastPlayedGames.get(gameType); + } + + /** + * Get the game rank by the player points. + * + * @param type the type of game to get the points for + * @param player the player to get the points for + * @return the rank, null otherwise + */ + public GameRank getRankByPoints(GameType type, Player player) { + int score = 0; + + if (type == GameType.BATTLEBALL) { + score = player.getStatisticManager().getIntValue(PlayerStatistic.BATTLEBALL_POINTS_ALL_TIME); + } + + if (type == GameType.SNOWSTORM) { + score = player.getStatisticManager().getIntValue(PlayerStatistic.SNOWSTORM_POINTS_ALL_TIME); + } + + for (GameRank rank : this.rankList) { + if (score >= rank.getMinPoints()) { + if (rank.getMaxPoints() == 0 || score <= rank.getMaxPoints()) { + return rank; + } + } + } + + return null; + } + + public GameHistory getFinishedGameById(GameType gameType, int gameId) { + return this.lastPlayedGames.get(gameType).stream().filter(g -> g.getId() == gameId).findFirst().orElse(null); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameObject.java new file mode 100644 index 0000000..06aa90c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameObject.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public abstract class GameObject { + private int id; + private GameObjectType gameObjectType; + + public GameObject(int id, GameObjectType gameObjectType) { + this.id = id; + this.gameObjectType = gameObjectType; + } + + public abstract void serialiseObject(NettyResponse response); + + /** + * Get the game event type for the update loop + * + * @return the event type + */ + public GameObjectType getGameObjectType() { + return gameObjectType; + } + + /** + * Get the id of this object + * + * @return the object id + */ + public int getId() { + return id; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameParameter.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameParameter.java new file mode 100644 index 0000000..a3ddd7f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameParameter.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.game.games; + +public class GameParameter { + private String name; + private boolean editable; + private boolean hasMinMax; + private int min; + private int max; + private String defaultValue; + + public GameParameter(String name, boolean editable, String defaultValue, int min, int max) { + this.name = name; + this.editable = editable; + this.defaultValue = defaultValue; + this.hasMinMax = true; + this.min = min; + this.max = max; + } + + public GameParameter(String name, boolean editable, String defaultValue) { + this.name = name; + this.editable = editable; + this.defaultValue = defaultValue; + this.hasMinMax = false; + } + + public String getName() { + return name; + } + + public boolean isEditable() { + return editable; + } + + public boolean hasMinMax() { + return hasMinMax; + } + + public int getMin() { + return min; + } + + public int getMax() { + return max; + } + + public String getDefaultValue() { + return defaultValue; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameSpawn.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameSpawn.java new file mode 100644 index 0000000..1241d19 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameSpawn.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.pathfinder.Position; + +public class GameSpawn extends Position { + private int teamId; + private int mapId; + private GameType gameType; + + public GameSpawn(int teamId, int mapId, String gameType, int x, int y, int z) { + super(x, y, 0, z, z); + this.teamId = teamId; + this.mapId = mapId; + this.gameType = GameType.valueOf(gameType.toUpperCase()); + } + + public int getTeamId() { + return teamId; + } + + public int getMapId() { + return mapId; + } + + public GameType getGameType() { + return gameType; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameTile.java new file mode 100644 index 0000000..1fa86f1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/GameTile.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.games; + +import org.alexdev.havana.game.pathfinder.Position; + +public abstract class GameTile { + private Position position; + private boolean isSpawnOccupied; + + public GameTile(Position position) { + this.position = position; + } + + /** + * Get the position of this tile + * + * @return the position + */ + public Position getPosition() { + return position; + } + + /** + * Set whether this tile has been used as a spawn point + * + * @return true, if successful + */ + public boolean isSpawnOccupied() { + return isSpawnOccupied; + } + + /** + * Get whether this tile has been used as a spawn point + * + * @param spawnOccupied whether the spawn is occupied for spawning a player + */ + public void setSpawnOccupied(boolean spawnOccupied) { + isSpawnOccupied = spawnOccupied; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallGame.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallGame.java new file mode 100644 index 0000000..139d7ec --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallGame.java @@ -0,0 +1,460 @@ +package org.alexdev.havana.game.games.battleball; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.games.GameSpawn; +import org.alexdev.havana.game.games.*; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPowerType; +import org.alexdev.havana.game.games.battleball.events.DespawnObjectEvent; +import org.alexdev.havana.game.games.battleball.events.PowerUpSpawnEvent; +import org.alexdev.havana.game.games.battleball.objects.PlayerObject; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.mapping.RoomTileState; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + +public class BattleBallGame extends Game { + private BattleBallTile[][] battleballTiles; + + private BlockingQueue updateTilesQueue; + private BlockingQueue fillTilesQueue; + + private List tiles; + + private List allowedPowerUps; + private List activePowers; + + private Map> storedPowers; + private boolean spawnedInitialPowers; + + public static final int MAX_POWERS_ACTIVE = 2; + + public BattleBallGame(int id, int mapId, GameType gameType, String name, int teamAmount, Player gameCreator, List allowedPowerUps, boolean privateGame) { + super(id, mapId, gameType, name, teamAmount, gameCreator); + + this.allowedPowerUps = allowedPowerUps; + this.tiles = new ArrayList<>(); + + if (this.allowedPowerUps.size() >= 2) { + this.allowedPowerUps.add(BattleBallPowerType.QUESTION_MARK.getPowerUpId()); + } + + this.activePowers = new CopyOnWriteArrayList<>(); + this.storedPowers = new ConcurrentHashMap<>(); + + this.updateTilesQueue = new LinkedBlockingQueue<>(); + this.fillTilesQueue = new LinkedBlockingQueue<>(); + } + + @Override + public boolean hasEnoughPlayers() { + int activeTeamCount = 0; + + for (int i = 0; i < this.getTeamAmount(); i++) { + if (this.getTeams().get(i).getActivePlayers().size() > 0) { + activeTeamCount++; + } + } + + return activeTeamCount > 0; + } + + @Override + public void startGame() { + super.startGame(); + + this.updateTilesQueue.clear(); + this.fillTilesQueue.clear(); + + this.getEventsQueue().clear(); + this.getObjectsQueue().clear(); + } + + @Override + public void gamePrepare() { + super.gamePrepare(); + + // Despawn all previous powers + for (BattleBallPowerUp powerUp : this.activePowers) { + this.getEventsQueue().add(new DespawnObjectEvent(powerUp.getId())); + } + + this.spawnedInitialPowers = false; + + this.storedPowers.clear(); + this.activePowers.clear(); + + int ticketCharge = GameConfiguration.getInstance().getInteger("battleball.ticket.charge"); + + if (ticketCharge > 0) { + for (GamePlayer gamePlayer : this.getActivePlayers()) { + CurrencyDao.decreaseTickets(gamePlayer.getPlayer().getDetails(), 2); // BattleBall costs 2 tickets + } + } + } + + @Override + public void gamePrepareTick() { + if (!this.spawnedInitialPowers) { + if (MAX_POWERS_ACTIVE > 0) { + int initialPowers = ThreadLocalRandom.current().nextInt(0, MAX_POWERS_ACTIVE + 1); + + for (int i = 0; i < initialPowers; i++) { + this.checkSpawnPower(false); + } + + this.spawnedInitialPowers = true; + } + } + } + + @Override + public void gameStarted() { + + } + + @Override + public void gameTick() { + try { + this.checkExpirePower(); + this.checkSpawnPower(true); + this.checkStoredExpirePower(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + private void checkSpawnPower(boolean doPercentCheck) { + if (this.allowedPowerUps.isEmpty() || (this.getMapId() == 5)) { + return; + } + + if (this.activePowers.size() >= MAX_POWERS_ACTIVE) { // There's already an active power so don't spawn another one + return; + } + + if (doPercentCheck) { + if (!(Math.random() < 0.06)) { + return; + } + } + + //int powersToSpawn = MAX_POWERS_ACTIVE - this.activePowers.size(); + + //for (int i = 0; i < powersToSpawn; i++) { + BattleBallPowerUp powerUp = new BattleBallPowerUp(this.createObjectId(), this, this.getRandomTile()); + this.getEventsQueue().add(new PowerUpSpawnEvent(powerUp)); + + this.activePowers.add(powerUp); + this.getObjects().add(powerUp.getObject()); + } + + + private void checkExpirePower() { + if (this.allowedPowerUps.isEmpty() || (this.getMapId() == 5)) { + return; + } + + for (BattleBallPowerUp powerUp : this.activePowers) { + if (!expirePower(powerUp)) { + continue; + } + + this.activePowers.remove(powerUp); + this.getObjects().remove(powerUp.getObject()); + } + } + + private void checkStoredExpirePower() { + for (var powers : this.storedPowers.values()) { + List expiredPowers = new ArrayList<>(); + + for (BattleBallPowerUp power : powers) { + if (expirePower(power)) { + expiredPowers.add(power); + } + } + + powers.removeAll(expiredPowers); + } + } + + private boolean expirePower(BattleBallPowerUp powerUp) { + if (powerUp.getTimeToDespawn().get() > 0) { + if (powerUp.getTimeToDespawn().decrementAndGet() != 0) { + return false; + } + } + + this.getEventsQueue().add(new DespawnObjectEvent(powerUp.getId())); + return true; + } + + @Override + public void buildMap() { + BattleBallMap tileMap = GameManager.getInstance().getBattleballTileMap(this.getMapId()); + + this.battleballTiles = new BattleBallTile[this.getRoomModel().getMapSizeX()][this.getRoomModel().getMapSizeY()]; + this.tiles.clear(); + + for (int y = 0; y < this.getRoomModel().getMapSizeY(); y++) { + for (int x = 0; x < this.getRoomModel().getMapSizeX(); x++) { + RoomTileState tileState = this.getRoomModel().getTileState(x, y); + + BattleBallTile tile = new BattleBallTile(new Position(x, y, this.getRoomModel().getTileHeight(x, y))); + + this.battleballTiles[x][y] = tile; + tile.setState(BattleBallTileState.DEFAULT); + + if (tileState == RoomTileState.CLOSED) { + tile.setColour(BattleBallColourState.DISABLED); + continue; + } + + if (!tileMap.isGameTile(x, y)) { + tile.setColour(BattleBallColourState.DISABLED); + continue; + } + + tile.setColour(BattleBallColourState.DEFAULT); + this.tiles.add(tile); + } + } + } + + /** + * Assign spawn points to all team members + */ + @Override + public void assignSpawnPoints() { + for (GameTeam team : this.getTeams().values()) { + List gameSpawns = GameManager.getInstance().getGameSpawns(this.getGameType(), this.getMapId(), team.getId()); + + //if (gameSpawn == null) { + // continue; + //} + + + for (GamePlayer p : team.getPlayers()) { + Position spawnPosition = null; + + for (GameSpawn gameSpawn : gameSpawns) { + if (!this.battleballTiles[gameSpawn.getX()][gameSpawn.getY()].isSpawnOccupied()) { + spawnPosition = gameSpawn.copy(); + spawnPosition.setZ(this.getRoomModel().getTileHeight(gameSpawn.getX(), gameSpawn.getY())); + break; + } + } + + if (spawnPosition == null || this.getTile(spawnPosition.getX(), spawnPosition.getY()) == null) { + continue; + } + + p.setPlayerState(BattleBallPlayerState.NORMAL); + p.setHarlequinPlayer(null); + p.setGameObject(new PlayerObject(p)); + + if (p.getObjectId() == -1) { + p.setObjectId(this.createObjectId()); + } + + this.getObjects().add(p.getGameObject()); + + p.getSpawnPosition().setX(spawnPosition.getX()); + p.getSpawnPosition().setY(spawnPosition.getY()); + p.getSpawnPosition().setRotation(spawnPosition.getRotation()); + p.getSpawnPosition().setZ(spawnPosition.getZ()); + + p.getPlayer().getRoomUser().setWalking(false); + p.getPlayer().getRoomUser().setNextPosition(null); + //p.getPlayer().getRoomUser().setPosition(p.getSpawnPosition().copy()); + + // Don't allow anyone to spawn on this tile + BattleBallTile tile = (BattleBallTile) this.getTile(spawnPosition.getX(), spawnPosition.getY()); + tile.setSpawnOccupied(true); + + if (tile.getColour() != BattleBallColourState.DISABLED) { + // Set spawn colour + tile.setColour(BattleBallColourState.getColourById(team.getId())); + + if (this.getMapId() == 5) { + tile.setState(BattleBallTileState.TOUCHED); + } else { + tile.setState(BattleBallTileState.CLICKED); + } + } + } + } + } + + /** + * Find a spawn with given coordinates. + * + * @param flip whether the integers should get incremented or decremented + * @param spawnX the x coord + * @param spawnY the y coord + * @param spawnRotation the spawn rotation + */ + private void findSpawn(boolean flip, AtomicInteger spawnX, AtomicInteger spawnY, AtomicInteger spawnRotation) { + try { + while (this.battleballTiles[spawnX.get()][spawnY.get()].isSpawnOccupied()) { + if (spawnRotation.get() == 0) { + if (!flip) { + spawnX.decrementAndGet();// -= 1; + } else { + spawnX.incrementAndGet();// += 1; + } + } + + if (spawnRotation.get() == 2) { + if (!flip) { + spawnY.incrementAndGet();// -= 1; + } else { + spawnY.decrementAndGet();// += 1; + } + } + + if (spawnRotation.get() == 4) { + if (!flip) { + spawnX.incrementAndGet();// -= 1; + } else { + spawnX.decrementAndGet();// += 1; + } + } + + if (spawnRotation.get() == 6) { + if (!flip) { + spawnY.decrementAndGet();// -= 1; + } else { + spawnY.incrementAndGet();// += 1; + } + } + } + flip = (!flip); + } catch (Exception ex) { + flip = (!flip); + findSpawn(flip, spawnX, spawnY, spawnRotation); + } + } + + + /** + * Get if the game still has free tiles to use. + * + * @return true, if successful + */ + @Override + public boolean canTimerContinue() { + for (int y = 0; y < this.getRoomModel().getMapSizeY(); y++) { + for (int x = 0; x < this.getRoomModel().getMapSizeX(); x++) { + BattleBallTile tile = (BattleBallTile) this.getTile(x, y); + + if (tile == null || tile.getColour() == BattleBallColourState.DISABLED) { + continue; + } + + if (tile.getState() != BattleBallTileState.SEALED) { + return true; + } + } + } + + return false; + } + + public BattleBallTile getRandomTile() { + int mapSizeX = this.getRoomModel().getMapSizeX(); + int mapSizeY = this.getRoomModel().getMapSizeY(); + + int x = ThreadLocalRandom.current().nextInt(0, mapSizeX); + int y = ThreadLocalRandom.current().nextInt(0, mapSizeY); + + BattleBallTile battleballTile = (BattleBallTile) this.getTile(x, y); + + if (battleballTile == null || battleballTile.getColour() == BattleBallColourState.DISABLED) { + return getRandomTile(); + } + + if (this.getRoom().getMapping().getTile(x, y).getEntities().size() > 0) { + return getRandomTile(); + } + + for (BattleBallPowerUp powerUp : this.activePowers) { + if (powerUp.getPosition().equals(new Position(x, y))) { + return this.getRandomTile(); + } + } + + return battleballTile; + } + + @Override + public GameTile[][] getTileMap() { + return battleballTiles; + } + + /** + * Get the power ups allowed for this match. + * + * @return the power ups allowed + */ + public List getAllowedPowerUps() { + return this.allowedPowerUps; + } + + /** + * Get the current active powers on the board + * + * @return the list of active powers + */ + public List getActivePowers() { + return activePowers; + } + + /** + * Get the list of powers stored by player + * + * @return the list of players currently held by player + */ + public Map> getStoredPowers() { + return storedPowers; + } + + /** + * Get the queue for tiles to be updated, used by power ups + * + * @return the queue for updating tiles + */ + public BlockingQueue getUpdateTilesQueue() { + return updateTilesQueue; + } + + /** + * Get the fill tiles queue, used by power ups + * + * @return the fill tiles queue + */ + public BlockingQueue getFillTilesQueue() { + return fillTilesQueue; + } + + /** + * Return the list of tiles created for the game. + * + * @return the list of tiles + */ + public List getTiles() { + return this.tiles; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallMap.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallMap.java new file mode 100644 index 0000000..485cf7c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallMap.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.game.games.battleball; + +import org.alexdev.havana.game.games.enums.GameType; +import org.apache.commons.lang3.StringUtils; + +public class BattleBallMap { + private final String heightmap; + + private int mapId; + private GameType gameType; + private boolean battleballTileMap[][]; + + public BattleBallMap(int mapId, GameType gameType, String tileMap) { + this.mapId = mapId; + this.gameType = gameType; + this.heightmap = tileMap.replace("|", "\r"); + this.parse(); + } + + private void parse() { + String[] lines = this.heightmap.split("\r"); + + int mapSizeY = lines.length; + int mapSizeX = lines[0].length(); + + this.battleballTileMap = new boolean[mapSizeX][mapSizeY]; + + for (int y = 0; y < mapSizeY; y++) { + String line = lines[y]; + + for (int x = 0; x < mapSizeX; x++) { + String tile = Character.toString(line.charAt(x)); + + if (StringUtils.isNumeric(tile)) { + this.battleballTileMap[x][y] = tile.equals("1"); + } else { + this.battleballTileMap[x][y] = false; + } + + // Temporary fix for the two tiles on Sky Peak + if (mapId == 1 && ((x == 24 && y == 17) || (x == 24 && y == 18))) { + this.battleballTileMap[x][y] = true; + } + } + } + } + + public GameType getGameType() { + return gameType; + } + + public int getMapId() { + return mapId; + } + + public boolean isGameTile(int x, int y) { + return battleballTileMap[x][y]; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallPowerUp.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallPowerUp.java new file mode 100644 index 0000000..0813352 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallPowerUp.java @@ -0,0 +1,260 @@ +package org.alexdev.havana.game.games.battleball; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPowerType; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.battleball.events.AcquirePowerUpEvent; +import org.alexdev.havana.game.games.battleball.objects.PowerObject; +import org.alexdev.havana.game.games.battleball.objects.PowerUpUpdateObject; +import org.alexdev.havana.game.games.battleball.powerups.*; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.utils.ScoreReference; +import org.alexdev.havana.game.games.utils.TileUtil; +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.atomic.AtomicInteger; + +public class BattleBallPowerUp { + private final int id; + private final PowerObject object; + private final AtomicInteger timeToDespawn; + private final BattleBallTile tile; + private final Position position; + private final BattleBallGame game; + + private GamePlayer playerHolding; + private BattleBallPowerType powerType; + + public BattleBallPowerUp(int id, BattleBallGame game, BattleBallTile tile) { + this.id = id; + this.object = new PowerObject(this); + this.tile = tile; + this.game = game; + this.position = this.tile.getPosition().copy(); + this.timeToDespawn = new AtomicInteger(ThreadLocalRandom.current().nextInt(20, 30 + 1)); + this.powerType = BattleBallPowerType.getById(game.getAllowedPowerUps().get(ThreadLocalRandom.current().nextInt(0, game.getAllowedPowerUps().size()))); + } + + /** + * Called when a player decides to use the power they have collected + * + * @param gamePlayer the game player that uses it + * @param position the position that the power up should be used at + */ + public void usePower(GamePlayer gamePlayer, Position position) { + if (this.powerType == BattleBallPowerType.BOX_OF_PINS) { + NailBoxHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.FLASHLIGHT) { + TorchHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.LIGHT_BLUB) { + LightbulbHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.DRILL) { + VacuumHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.SPRING) { + SpringHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.HARLEQUIN) { + HarlequinHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.CANNON) { + CannonHandle.handle(this.game, gamePlayer, game.getRoom()); + } + + if (this.powerType == BattleBallPowerType.BOMB) { + BombHandle.handle(this.game, gamePlayer, game.getRoom()); + } + } + + /** + * Get whether the user has bounced and uses a tile (used for vacuum and spring powers) + * + * @param tile the tile being bounced on + * @param gamePlayer the game player bouncing on the tile + * @param updateTiles the list of tiles to update + * @param updateFillTiles the fill tile list to append + * + * @return true, if successful + */ + public static boolean hasUsedPower(BattleBallTile tile, GamePlayer gamePlayer, List updateTiles, List updateFillTiles) { + BattleBallColourState colour = tile.getColour(); + BattleBallTileState state = tile.getState(); + + if (colour == BattleBallColourState.DISABLED) { + return false; + } + + GameTeam team = gamePlayer.getTeam(); + + if (gamePlayer.getPlayerState() == BattleBallPlayerState.HIGH_JUMPS) { + if (state == BattleBallTileState.SEALED) { + return true; + } + + tile.getPointsReferece().clear(); + + tile.setColour(BattleBallColourState.getColourById(gamePlayer.getTeam().getId())); + tile.setState(BattleBallTileState.SEALED); + + //tile.(team); + tile.getNewPoints(gamePlayer, BattleBallTileState.SEALED, BattleBallColourState.getColourById(gamePlayer.getTeam().getId()));//.addScore(new ScoreReference(14, team, gamePlayer.getUserId())); + tile.checkFill(gamePlayer, updateFillTiles); + + updateTiles.add(tile); + return true; + } + + if (gamePlayer.getPlayerState() == BattleBallPlayerState.CLEANING_TILES) { + if (TileUtil.undoTileAttributes(tile, gamePlayer.getGame())) { + updateTiles.add(tile); + + } + return true; + } + + return false; + } + + /** + * Get whether the user has walked into a power up. + * + * @param tile the tile being bounced on + * @param gamePlayer the game player bouncing on the tile + * @param objects the list of objects to update for the next loop + * @param events the list of events to update for the next loop + */ + public static void checkPowerUp(BattleBallTile tile, GamePlayer gamePlayer, List objects, List events) { + BattleBallGame game = (BattleBallGame) gamePlayer.getGame(); + BattleBallPowerUp powerUp = null; + + for (BattleBallPowerUp power : game.getActivePowers()) { + if (power.getTile().getPosition().equals(tile.getPosition())) { + powerUp = power; + break; + } + } + + if (powerUp == null) { + return; + } + + if (!game.getStoredPowers().containsKey(gamePlayer)) { + game.getStoredPowers().put(gamePlayer, new CopyOnWriteArrayList<>()); + } + + + // Select random power up if it's a question mark + if (powerUp.getPowerType() == BattleBallPowerType.QUESTION_MARK) { + // Create a new list without the question mark + List powerUps = new ArrayList<>(game.getAllowedPowerUps()); + powerUps.remove(BattleBallPowerType.QUESTION_MARK.getPowerUpId()); + + powerUp.setPowerType(BattleBallPowerType.getById(powerUps.get(ThreadLocalRandom.current().nextInt(0, powerUps.size())))); + + } + + game.getStoredPowers().get(gamePlayer).clear(); + game.getStoredPowers().get(gamePlayer).add(powerUp); + + game.getActivePowers().remove(powerUp); + game.getObjects().remove(powerUp.getObject()); + + powerUp.getTimeToDespawn().set(15); + powerUp.setPlayerHolding(gamePlayer); + + events.add(new AcquirePowerUpEvent(gamePlayer, powerUp)); + objects.add(new PowerUpUpdateObject(powerUp)); + } + + + /** + * Get the game id of this power up + * @return the game id + */ + public int getId() { + return id; + } + + /** + * Get the power up type of this instance + * + * @return the power up type + */ + public BattleBallPowerType getPowerType() { + return powerType; + } + + public void setPowerType(BattleBallPowerType powerType) { + this.powerType = powerType; + } + + /** + * Get the current position of where this power up spawned + * + * @return the current position + */ + public Position getPosition() { + return this.position; + } + + /** + * Get the tile were this power up spawned on + * + * @return the tile it spawned on + */ + public BattleBallTile getTile() { + return tile; + } + + /** + * Get the time in seconds before it despawns + * + * @return the time before it despawns + */ + public AtomicInteger getTimeToDespawn() { + return timeToDespawn; + } + + /** + * Set the current player holding this power up + * + * @param playerHolding the player holding the power up + */ + public void setPlayerHolding(GamePlayer playerHolding) { + this.playerHolding = playerHolding; + } + + /** + * Get the current player id holding this power up, -1 if none + * + * @return the player id holding this power up + */ + public Integer getPlayerHolding() { + if (this.playerHolding != null) { + return this.playerHolding.getObjectId(); + } + + return -1; + } + + public GameObject getObject() { + return object; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTask.java new file mode 100644 index 0000000..163a02e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTask.java @@ -0,0 +1,179 @@ +package org.alexdev.havana.game.games.battleball; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.events.PlayerMoveEvent; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.battleball.objects.PowerUpUpdateObject; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.games.GAMESTATUS; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class BattleBallTask implements Runnable { + private final Room room; + private final BattleBallGame game; + + public BattleBallTask(Room room, BattleBallGame game) { + this.room = room; + this.game = game; + } + + @Override + public void run() { + try { + if (this.game.getActivePlayers().isEmpty() || this.game.getGameState() == GameState.ENDED) { + return; // Don't send any packets or do any logic checks during when the game is finished + } + + List objects = new ArrayList<>(); + List events = new ArrayList<>(); + + List updateTiles = new ArrayList<>(); + List fillTiles = new ArrayList<>(); + + this.game.getEventsQueue().drainTo(events); + this.game.getObjectsQueue().drainTo(objects); + this.game.getUpdateTilesQueue().drainTo(updateTiles); + this.game.getFillTilesQueue().drainTo(fillTiles); + + for (GamePlayer gamePlayer : this.game.getActivePlayers()) { + Player player = gamePlayer.getPlayer(); + + if (player.getRoomUser().getRoom() != this.room) { + continue; + } + + if (gamePlayer.getPlayerState() == BattleBallPlayerState.CLIMBING_INTO_CANNON || + gamePlayer.getPlayerState() == BattleBallPlayerState.FLYING_THROUGH_AIR) { + continue; + } + + if (this.game.getStoredPowers().containsKey(gamePlayer)) { + for (BattleBallPowerUp powerUp : this.game.getStoredPowers().get(gamePlayer)) { + objects.add(new PowerUpUpdateObject(powerUp)); + } + } + + player.getRoomUser().handleSpamTicks(); + this.processEntity(gamePlayer, objects, events, updateTiles, fillTiles); + + objects.add(new PlayerUpdateObject(gamePlayer)); + } + + this.game.send(new GAMESTATUS(this.game, this.game.getTeams().values(), objects, events, updateTiles, fillTiles)); + } catch (Exception ex) { + Log.getErrorLogger().error("GameTask crashed: ", ex); + } + } + + /** + * Process entity. + */ + private void processEntity(GamePlayer gamePlayer, List objects, List events, List updateTiles, List fillTiles) { + Entity entity = (Entity) gamePlayer.getPlayer(); + Game game = gamePlayer.getGame(); + + RoomEntity roomEntity = entity.getRoomUser(); + + Position position = roomEntity.getPosition(); + Position goal = roomEntity.getGoal(); + + if (roomEntity.isWalking()) { + // Apply next tile from the tile we removed from the list the cycle before + if (roomEntity.getNextPosition() != null) { + /*roomEntity.getPosition().setX(roomEntity.getNextPosition().getX()); + roomEntity.getPosition().setY(roomEntity.getNextPosition().getY()); + roomEntity.updateNewHeight(roomEntity.getPosition());*/ + /*RoomTile nextTile = roomEntity.getRoom().getMapping().getTile(roomEntity.getNextPosition()); + boolean isRedirected = false; + if (nextTile.getEntities().size() > 0 && !nextTile.containsEntity(entity)) { + roomEntity.setNextPosition(roomEntity.getPosition().copy()); + isRedirected = true; + }*/ + + roomEntity.getPosition().setX(roomEntity.getNextPosition().getX()); + roomEntity.getPosition().setY(roomEntity.getNextPosition().getY()); + roomEntity.updateNewHeight(roomEntity.getPosition()); + + if (roomEntity.getNextPosition() != null) { + RoomTile nextTile = roomEntity.getRoom().getMapping().getTile(roomEntity.getNextPosition()); + + if (nextTile != null && nextTile.getOtherEntities(entity).size() < 1) { + BattleBallTile tile = (BattleBallTile) game.getTile(roomEntity.getNextPosition().getX(), roomEntity.getNextPosition().getY()); + + if (tile != null) { + tile.interact(gamePlayer, objects, events, updateTiles, fillTiles); + } + } + } + } + + // We still have more tiles left, so lets continue moving + if (roomEntity.getPath().size() > 0) { + Position next = roomEntity.getPath().pop(); + + RoomTile previousTile = roomEntity.getTile(); + RoomTile nextTile = roomEntity.getRoom().getMapping().getTile(next); + + // Tile was invalid after we started walking, so lets try again! + if (nextTile == null || !RoomTile.isValidTile(this.room, entity, next) && !next.equals(goal)) { + entity.getRoomUser().getPath().clear(); + roomEntity.walkTo(goal.getX(), goal.getY()); + this.processEntity(gamePlayer, objects, events, updateTiles, fillTiles); + return; + } + + if (previousTile != null) { + previousTile.removeEntity(entity); + } + + nextTile.addEntity(entity); + + roomEntity.removeStatus(StatusType.LAY); + roomEntity.removeStatus(StatusType.SIT); + + int rotation = Rotation.calculateWalkDirection(position.getX(), position.getY(), next.getX(), next.getY()); + double height = nextTile.getWalkingHeight(); + + roomEntity.getPosition().setRotation(rotation); + roomEntity.setStatus(StatusType.MOVE, next.getX() + "," + next.getY() + "," + StringUtil.format(height)); + roomEntity.setNextPosition(next); + + // Add next position if moving + events.add(new PlayerMoveEvent(gamePlayer, roomEntity.getNextPosition().copy())); + } else { + roomEntity.stopWalking(); + + RoomTile previousTile = roomEntity.getRoom().getMapping().getTile(roomEntity.getPosition()); + RoomTile nextTile = roomEntity.getRoom().getMapping().getTile(roomEntity.getPosition().getSquareBehind()); + + // If an entity exists on the tile, push them back + if (previousTile != null && !(previousTile.getOtherEntities(entity).size() < 1)) { + previousTile.removeEntity(entity); + nextTile.addEntity(entity); + + // Set new position + entity.getRoomUser().setPosition(roomEntity.getPosition().getSquareBehind()); + } + } + + // If we're walking, make sure to tell the server + roomEntity.setNeedsUpdate(true); + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTile.java new file mode 100644 index 0000000..315d7a3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/BattleBallTile.java @@ -0,0 +1,256 @@ +package org.alexdev.havana.game.games.battleball; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.GameTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.battleball.powerups.NailBoxHandle; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.utils.FloodFill; +import org.alexdev.havana.game.games.utils.ScoreReference; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.mapping.RoomTile; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class BattleBallTile extends GameTile { + private BattleBallColourState colour; + private BattleBallTileState state; + + private CopyOnWriteArrayList pointsReferece; + + public BattleBallTile(Position position) { + super(position); + this.pointsReferece = new CopyOnWriteArrayList<>(); + } + + public List getPlayers(Game game, Position position) { + RoomTile tile = game.getRoom().getMapping().getTile(position.getX(), position.getY()); + List gamePlayers = new ArrayList<>(); + + for (Entity entity : tile.getEntities()) { + if (entity.getType() != EntityType.PLAYER/* || entity.getDetails().getId()== gamePlayer.getUserId()*/) { + continue; + } + + Player player = (Player) entity; + GamePlayer gameUser = player.getRoomUser().getGamePlayer(); + + if (gameUser == null) { + continue; + } + + if (gamePlayers.contains(gameUser)) { + continue; + } + + if (!player.getRoomUser().getPosition().equals(this.getPosition())) { + continue; + } + + gamePlayers.add(gameUser); + } + + return gamePlayers; + } + + /** + * Handle when a player jumps on a Battleball tile. + * @param gamePlayer the GamePlayer instance of the user jumping on the tile + * @param objects + * @param updateTiles the tile list to add to if the tile requires an update + * @param updateFillTiles the list to add to if these tiles require the filling in animation + */ + public void interact(GamePlayer gamePlayer, List objects, List events, List updateTiles, List updateFillTiles) { + BattleBallPowerUp.checkPowerUp(this, gamePlayer, objects, events); + + if (NailBoxHandle.checkNailTile(gamePlayer)) { + return; + } + + if (BattleBallPowerUp.hasUsedPower(this, gamePlayer, updateTiles, updateFillTiles)) { + return; + } + + this.changeState(gamePlayer, updateTiles, updateFillTiles); + } + + private void changeState(GamePlayer gamePlayer, List updateTiles, List updateFillTiles) { + if (this.getColour() == BattleBallColourState.DISABLED) { + return; + } + + BattleBallTileState state = this.getState(); + BattleBallColourState colour = this.getColour(); + + GameTeam team = gamePlayer.getTeam(); + + if (colour == BattleBallColourState.DISABLED) { + return; + } + + if (state != BattleBallTileState.SEALED) { + BattleBallTileState newState = this.getState(); + BattleBallColourState newColour = this.getColour(); + + if (colour.getColourId() == team.getId()) { + newState = BattleBallTileState.getStateById(state.getTileStateId() + 1); + } else { + if (gamePlayer.getGame().getMapId() == 5) { // Barebones classic takes 4 hits + newState = BattleBallTileState.TOUCHED; + newColour = BattleBallColourState.getColourById(team.getId()); + } else { + newState = BattleBallTileState.CLICKED; + newColour = BattleBallColourState.getColourById(team.getId()); + } + } + + this.getNewPoints(gamePlayer, newState, newColour); + + this.setColour(newColour); + this.setState(newState); + + if (newState == BattleBallTileState.SEALED) { + this.checkFill(gamePlayer, updateFillTiles); + } + + updateTiles.add(this); + } + } + + public void getNewPoints(GamePlayer gamePlayer, BattleBallTileState newState, BattleBallColourState newColour) { + GameTeam team = gamePlayer.getTeam(); + + int newPoints = -1; + //boolean sealed = false; + + if (newState == BattleBallTileState.TOUCHED) { + newPoints = 2; + } else if (newState == BattleBallTileState.CLICKED) { + newPoints = 6; + } else if (newState == BattleBallTileState.PRESSED) { + newPoints = 10; + } else if (newState == BattleBallTileState.SEALED) { + if (this.colour == newColour) { + newPoints = 14; + //sealed = true; + } + } + + // If the user stole the tile, add the points! + if (this.colour != newColour && this.colour != BattleBallColourState.DEFAULT) { + newPoints += 2; + } + + if (this.colour != newColour) { // Clear teams previous scores + this.pointsReferece.removeIf(tile -> tile.getGameTeam() != team); + } + + if (newPoints != -1) { + //if (!sealed) { // Set to sealed + if (gamePlayer.getHarlequinPlayer() != null) { + this.pointsReferece.add(new ScoreReference(newPoints, team, gamePlayer.getHarlequinPlayer().getUserId())); + } else { + this.pointsReferece.add(new ScoreReference(newPoints, team, gamePlayer.getUserId())); + } + //} else { + // this.pointsReferece.add(team); + //} + } + } + + + public void checkFill(GamePlayer gamePlayer, Collection updateFillTiles) { + GameTeam team = gamePlayer.getTeam(); + + for (BattleBallTile neighbour : FloodFill.neighbours(gamePlayer.getGame(), this.getPosition())) { + if (neighbour == null || neighbour.getState() == BattleBallTileState.SEALED || neighbour.getColour() == BattleBallColourState.DISABLED) { + continue; + } + + var fillTiles = FloodFill.getFill(gamePlayer, neighbour); + + if (fillTiles.size() > 0) { + for (BattleBallTile filledTile : FloodFill.getFill(gamePlayer, neighbour)) { + if (filledTile.getState() == BattleBallTileState.SEALED) { + continue; + } + + /*if (!filledTile.isCanFill()) { + continue; + }*/ + + //this.addSealedPoints(team); + + filledTile.setColour(this.getColour()); + filledTile.setState(BattleBallTileState.SEALED); + + updateFillTiles.add(filledTile); + } + } + } + } + + /* + public void addSealedPoints(GameTeam team) { + this.pointsReferece.clear(); + + for (GamePlayer gamePlayer : team.getPlayers()) { + this.pointsReferece.add(new ScoreReference(14, team, gamePlayer.getUserId())); + } + }*/ + + /** + * Get the current colour of this tile + * + * @return the colour + */ + public BattleBallColourState getColour() { + return colour; + } + + /** + * Set the current colour of this tile + * + * @param colour the current colour + */ + public void setColour(BattleBallColourState colour) { + this.colour = colour; + } + + /** + * Get the current state of this tile + * + * @return the state + */ + public BattleBallTileState getState() { + return state; + } + + /** + * Set the current state of this tile + * + * @param state the current colour + */ + public void setState(BattleBallTileState state) { + this.state = state; + } + + /** + * Get the list of points to reference. + * + * @return the list of points to reference + */ + public CopyOnWriteArrayList getPointsReferece() { + return pointsReferece; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallColourState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallColourState.java new file mode 100644 index 0000000..95c5884 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallColourState.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.game.games.battleball.enums; + +public enum BattleBallColourState { + DISABLED(-2), + DEFAULT(-1), + RED(0), + BLUE(1), + YELLOW(2), + GREEN(3); + + private final int tileColourId; + + BattleBallColourState(int tileColourId) { + this.tileColourId = tileColourId; + } + + public int getColourId() { + return tileColourId; + } + + public static BattleBallColourState getColourById(int id) { + for (BattleBallColourState colour : values()) { + if (colour.getColourId() == id) { + return colour; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPlayerState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPlayerState.java new file mode 100644 index 0000000..a1e2665 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPlayerState.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.games.battleball.enums; + +public enum BattleBallPlayerState { + NORMAL(0), + STUNNED(1), + TURBO_BOOST(2), + HIGH_JUMPS(3), + CLEANING_TILES(4), + COLORING_FOR_OPPONENT(5), + CLIMBING_INTO_CANNON(6), + FLYING_THROUGH_AIR(7), + BALL_BROKEN(8); + + /* STATE_NORMAL = 0 + STATE_STUNNED = 1 + STATE_TURBO_BOOST = 2 + STATE_HIGH_JUMPS = 3 + STATE_CLEANING_TILES = 4 + STATE_COLORING_FOR_OPPONENT = 5 + STATE_CLIMBING_INTO_CANNON = 6 + STATE_FLYING_THROUGH_AIR = 7 + STATE_BALL_BROKEN = 8 */ + + private final int stateId; + + BattleBallPlayerState(int stateId) { + this.stateId = stateId; + } + + public int getStateId() { + return stateId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPowerType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPowerType.java new file mode 100644 index 0000000..3a47cec --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallPowerType.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.games.battleball.enums; + +import java.util.concurrent.ThreadLocalRandom; + +public enum BattleBallPowerType { + LIGHT_BLUB(1), + SPRING(2), + FLASHLIGHT(3), + CANNON(4), + BOX_OF_PINS(5), + HARLEQUIN(6), + BOMB(7), + DRILL(8), + QUESTION_MARK(9); + + private final int powerUpId; + + BattleBallPowerType(int powerUpId) { + this.powerUpId = powerUpId; + } + + public static BattleBallPowerType random() { + return BattleBallPowerType.values()[ThreadLocalRandom.current().nextInt(0, BattleBallPowerType.values().length)]; + } + + public static BattleBallPowerType getById(int powerUpId) { + for (var powerUp : values()) { + if (powerUp.getPowerUpId() == powerUpId) { + return powerUp; + } + } + + return null; + } + + public Integer getPowerUpId() { + return powerUpId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallTileState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallTileState.java new file mode 100644 index 0000000..c5b02fa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/enums/BattleBallTileState.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.games.battleball.enums; + +public enum BattleBallTileState { + DEFAULT(0), + TOUCHED(1), + CLICKED(2), + PRESSED(3), + SEALED(4);// = 1, CLICKED = 2, PRESSED = 3, SEALED = 4 + + private final int tileStateId; + + BattleBallTileState(int tileStateId) { + this.tileStateId = tileStateId; + } + + public int getTileStateId() { + return tileStateId; + } + + public static BattleBallTileState getStateById(int id) { + for (BattleBallTileState state : values()) { + if (state.getTileStateId() == id) { + return state; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/AcquirePowerUpEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/AcquirePowerUpEvent.java new file mode 100644 index 0000000..6962884 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/AcquirePowerUpEvent.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class AcquirePowerUpEvent extends GameEvent { + private final BattleBallPowerUp powerUp; + private final GamePlayer gamePlayer; + + public AcquirePowerUpEvent(GamePlayer gamePlayer, BattleBallPowerUp powerUp) { + super(GameEventType.BATTLEBALL_POWERUP_GET); + this.gamePlayer = gamePlayer; + this.powerUp = powerUp; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(this.gamePlayer.getObjectId()); + response.writeInt(this.powerUp.getId()); + response.writeInt(this.powerUp.getPowerType().getPowerUpId()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/ActivatePowerUpEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/ActivatePowerUpEvent.java new file mode 100644 index 0000000..2d29e58 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/ActivatePowerUpEvent.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ActivatePowerUpEvent extends GameEvent { + private final BattleBallPowerUp powerUp; + private final GamePlayer gamePlayer; + + public ActivatePowerUpEvent(GamePlayer gamePlayer, BattleBallPowerUp powerUp) { + super(GameEventType.BATTLEBALL_POWERUP_ACTIVATE); + this.gamePlayer = gamePlayer; + this.powerUp = powerUp; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(this.gamePlayer.getObjectId()); + response.writeInt(this.powerUp.getId()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getRotation()); + response.writeInt(this.powerUp.getPowerType().getPowerUpId()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/DespawnObjectEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/DespawnObjectEvent.java new file mode 100644 index 0000000..cb8a16f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/DespawnObjectEvent.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class DespawnObjectEvent extends GameEvent { + private final int gameObjectId; + + public DespawnObjectEvent(int gameObjectId) { + super(GameEventType.BATTLEBALL_DESPAWN_OBJECT); + this.gameObjectId = gameObjectId; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(this.gameObjectId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PinSpawnEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PinSpawnEvent.java new file mode 100644 index 0000000..fead7b8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PinSpawnEvent.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.battleball.objects.PinObject; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PinSpawnEvent extends GameEvent { + private final int id; + private final Position position; + + public PinSpawnEvent(int id, Position position) { + super(GameEventType.BATTLEBALL_OBJECT_SPAWN); + this.id = id; + this.position = position; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(2); + new PinObject(this.id, this.position).serialiseObject(response); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerMoveEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerMoveEvent.java new file mode 100644 index 0000000..d214610 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerMoveEvent.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PlayerMoveEvent extends GameEvent { + private final GamePlayer gamePlayer; + private final Position nextPosition; + + public PlayerMoveEvent(GamePlayer gamePlayer, Position nextPosition) { + super(GameEventType.BATTLEBALL_PLAYER_EVENT); + this.gamePlayer = gamePlayer; + this.nextPosition = nextPosition; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getInstanceId()); + response.writeInt(this.nextPosition.getX()); + response.writeInt(this.nextPosition.getY()); + } + + public GamePlayer getGamePlayer() { + return gamePlayer; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerUpdateEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerUpdateEvent.java new file mode 100644 index 0000000..7703786 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PlayerUpdateEvent.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PlayerUpdateEvent extends GameEvent { + private final GamePlayer gamePlayer; + + public PlayerUpdateEvent(GamePlayer gamePlayer) { + super(GameEventType.BATTLEBALL_OBJECT_SPAWN); + this.gamePlayer = gamePlayer; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(0); + new PlayerUpdateObject(this.gamePlayer).serialiseObject(response); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PowerUpSpawnEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PowerUpSpawnEvent.java new file mode 100644 index 0000000..6e0f857 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/events/PowerUpSpawnEvent.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.game.games.battleball.events; + +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.battleball.objects.PowerObject; +import org.alexdev.havana.game.games.enums.GameEventType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PowerUpSpawnEvent extends GameEvent { + private final BattleBallPowerUp powerUp; + + public PowerUpSpawnEvent(BattleBallPowerUp powerUp) { + super(GameEventType.BATTLEBALL_OBJECT_SPAWN); + this.powerUp = powerUp; + } + + @Override + public void serialiseEvent(NettyResponse response) { + response.writeInt(1); + new PowerObject(this.powerUp).serialiseObject(response); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PinObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PinObject.java new file mode 100644 index 0000000..e66bcc8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PinObject.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.games.battleball.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PinObject extends GameObject { + private final Position position; + + public PinObject(int id, Position position) { + super(id, GameObjectType.BATTLEBALL_PIN_OBJECT); + this.position = position; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getId()); + response.writeInt(this.position.getX()); + response.writeInt(this.position.getY()); + response.writeInt((int) this.position.getZ()); + } + + public Position getPosition() { + return position; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerObject.java new file mode 100644 index 0000000..381c28f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerObject.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.game.games.battleball.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PlayerObject extends GameObject { + private final GamePlayer gamePlayer; + + public PlayerObject(GamePlayer gamePlayer) { + super(gamePlayer.getObjectId(), GameObjectType.BATTLEBALL_PLAYER_OBJECT); + this.gamePlayer = gamePlayer; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.gamePlayer.getObjectId()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getX()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getY()); + response.writeInt((int) this.gamePlayer.getPlayer().getRoomUser().getPosition().getZ()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getRotation()); + response.writeInt(this.gamePlayer.getPlayerState().getStateId()); + response.writeInt(this.gamePlayer.getColouringForOpponentId()); + response.writeString(this.gamePlayer.getPlayer().getDetails().getName()); + response.writeString(this.gamePlayer.getPlayer().getDetails().getMotto()); + response.writeString(this.gamePlayer.getPlayer().getDetails().getFigure()); + response.writeString(this.gamePlayer.getPlayer().getDetails().getSex()); + response.writeInt(this.gamePlayer.getTeamId()); + response.writeInt(this.gamePlayer.getObjectId()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerUpdateObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerUpdateObject.java new file mode 100644 index 0000000..0ad3f08 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PlayerUpdateObject.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.battleball.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PlayerUpdateObject extends GameObject { + private final GamePlayer gamePlayer; + + public PlayerUpdateObject(GamePlayer gamePlayer) { + super(gamePlayer.getPlayer().getDetails().getId(), GameObjectType.BATTLEBALL_PLAYER_OBJECT); + this.gamePlayer = gamePlayer; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.gamePlayer.getObjectId()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getX()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getY()); + response.writeInt((int) this.gamePlayer.getPlayer().getRoomUser().getPosition().getZ()); + response.writeInt(this.gamePlayer.getPlayer().getRoomUser().getPosition().getRotation()); + response.writeInt(this.gamePlayer.getPlayerState().getStateId()); + response.writeInt(this.gamePlayer.getColouringForOpponentId()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerObject.java new file mode 100644 index 0000000..0512e42 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerObject.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.battleball.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PowerObject extends GameObject { + private final BattleBallPowerUp powerUp; + + public PowerObject(BattleBallPowerUp powerUp) { + super(powerUp.getId(), GameObjectType.BATTLEBALL_POWER_OBJECT); + this.powerUp = powerUp; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.powerUp.getId()); + response.writeInt(this.powerUp.getTimeToDespawn().get()); + response.writeInt(this.powerUp.getPlayerHolding()); + response.writeInt(this.powerUp.getPowerType().getPowerUpId()); + response.writeInt(this.powerUp.getTile().getPosition().getX()); + response.writeInt(this.powerUp.getTile().getPosition().getY()); + response.writeInt((int) this.powerUp.getTile().getPosition().getZ()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerUpUpdateObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerUpUpdateObject.java new file mode 100644 index 0000000..ba9ee9e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/objects/PowerUpUpdateObject.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.game.games.battleball.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PowerUpUpdateObject extends GameObject { + private final BattleBallPowerUp powerUp; + + public PowerUpUpdateObject(BattleBallPowerUp powerUp) { + super(powerUp.getId(), GameObjectType.BATTLEBALL_POWER_OBJECT); + this.powerUp = powerUp; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.powerUp.getId()); + response.writeInt(this.powerUp.getTimeToDespawn().get()); + response.writeInt(this.powerUp.getPlayerHolding()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/BombHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/BombHandle.java new file mode 100644 index 0000000..2c1bfaf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/BombHandle.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.utils.PowerUpUtil; +import org.alexdev.havana.game.games.utils.TileUtil; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; + +import java.util.ArrayList; +import java.util.List; + +public class BombHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + gamePlayer.getPlayer().getRoomUser().stopWalking(); + gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(false); + + List stunnedPlayers = new ArrayList<>(); + + for (Position position : gamePlayer.getPlayer().getRoomUser().getPosition().getCircle(3)) { + RoomTile tile = game.getRoom().getMapping().getTile(position.getX(), position.getY()); + + if (tile == null || !RoomTile.isValidTile(gamePlayer.getGame().getRoom(), null, position)) { + continue; + } + + BattleBallTile battleballTile = (BattleBallTile) game.getTile(position.getX(), position.getY()); + + if (TileUtil.undoTileAttributes(battleballTile, gamePlayer.getGame())) { + game.getUpdateTilesQueue().add(battleballTile); + } + } + + for (Position position : gamePlayer.getPlayer().getRoomUser().getPosition().getCircle(7)) { + RoomTile tile = game.getRoom().getMapping().getTile(position.getX(), position.getY()); + + if (tile == null || !RoomTile.isValidTile(gamePlayer.getGame().getRoom(), null, position)) { + continue; + } + + BattleBallTile battleballTile = (BattleBallTile) game.getTile(position.getX(), position.getY()); + stunnedPlayers.addAll(battleballTile.getPlayers(gamePlayer.getGame(), position)); + } + + if (!stunnedPlayers.contains(gamePlayer)) { + stunnedPlayers.add(gamePlayer); + } + + for (GamePlayer stunnedPlayer : stunnedPlayers) { + stunnedPlayer.getPlayer().getRoomUser().stopWalking(); + stunnedPlayer.getPlayer().getRoomUser().setWalkingAllowed(false); + + // Move player away from blast radius: https://www.youtube.com/watch?v=cP3bvGOx53o&feature=youtu.be&t=242 + if (gamePlayer != stunnedPlayer) { + Position from = stunnedPlayer.getPlayer().getRoomUser().getPosition(); + Position towards = gamePlayer.getPlayer().getRoomUser().getPosition(); + + int temporaryRotation = Rotation.calculateWalkDirection(from, towards); + + Position pushBack = from.copy(); + pushBack.setRotation(temporaryRotation); + pushBack = pushBack.getSquareBehind(); + + BattleBallTile battleballTile = (BattleBallTile) game.getTile(pushBack.getX(), pushBack.getY()); + + if (TileUtil.isValidGameTile(stunnedPlayer, battleballTile, true)) { + stunnedPlayer.getPlayer().getRoomUser().warp(pushBack, false, false); + } + } + + PowerUpUtil.stunPlayer(game, stunnedPlayer, BattleBallPlayerState.STUNNED); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/CannonHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/CannonHandle.java new file mode 100644 index 0000000..644c917 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/CannonHandle.java @@ -0,0 +1,153 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.battleball.events.PlayerMoveEvent; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.utils.PowerUpUtil; +import org.alexdev.havana.game.games.utils.TileUtil; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class CannonHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + gamePlayer.getPlayer().getRoomUser().stopWalking(); + gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(false); + + Position firstPosition = gamePlayer.getPlayer().getRoomUser().getPosition(); + + Position nextPosition = firstPosition.copy(); + int rotation = nextPosition.getRotation(); + + LinkedList tilesToUpdate = new LinkedList<>(); + + while (TileUtil.isValidGameTile(gamePlayer, (BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY()), false)) { + nextPosition = nextPosition.getSquareInFront(); + + if (!TileUtil.isValidGameTile(gamePlayer, (BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY()), false)) { + break; + } + + BattleBallTile battleballTile = (BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY()); + tilesToUpdate.add(battleballTile); + } + + if (tilesToUpdate.isEmpty()) { + nextPosition = gamePlayer.getPlayer().getRoomUser().getPosition(); + tilesToUpdate.add((BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY())); + } + + // Stun players in direction of cannon and make them move out of the way + GameScheduler.getInstance().getService().schedule(() -> { + List> stunnedPlayers = new ArrayList<>(); + + for (BattleBallTile tile : tilesToUpdate) { + for (GamePlayer p : tile.getPlayers(gamePlayer.getGame(), tile.getPosition())) { + if (p == gamePlayer) { + continue; + } + + stunnedPlayers.add(Pair.of(p, tile.getPosition())); + } + } + + for (var kvp : stunnedPlayers) { + try { + // TODO: Move player out of the way of user using cannon https://www.youtube.com/watch?v=YX1UZky5pg0&feature=youtu.be&t=98 + GamePlayer stunnedPlayer = kvp.getKey(); + + if (stunnedPlayer.getPlayer().getRoomUser().isWalking()) { + stunnedPlayer.getPlayer().getRoomUser().stopWalking(); + } + + Position pushedFrom = kvp.getValue().copy(); + pushedFrom.setRotation(rotation); + + List pushedTo = new ArrayList<>(); + pushedTo.add(pushedFrom.getSquareRight()); + pushedTo.add(pushedFrom.getSquareLeft()); + + Position setPosition = null; + + // Find best position to move player to + for (Position position : pushedTo) { + if (TileUtil.isValidGameTile(stunnedPlayer, (BattleBallTile) game.getTile(position.getX(), position.getY()), true)) { + setPosition = position; + break; + } + } + + if (setPosition != null) { + game.addPlayerMove(new PlayerMoveEvent(stunnedPlayer, setPosition)); + } + + // Stun player + PowerUpUtil.stunPlayer(game, stunnedPlayer, BattleBallPlayerState.STUNNED); + + // Set player at teir new spot + if (setPosition != null) { + setPosition.setRotation(stunnedPlayer.getPlayer().getRoomUser().getPosition().getRotation()); + //stunnedPlayer.getPlayer().getRoomUser().setPosition(setPosition); + stunnedPlayer.getPlayer().getRoomUser().warp(setPosition, false, false); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }, 200, TimeUnit.MILLISECONDS); + + + for (BattleBallTile tile : tilesToUpdate) { + if (tile.getColour() == BattleBallColourState.DISABLED) { + continue; + } + + if (tile.getState() == BattleBallTileState.SEALED && tile.getColour().getColourId() == gamePlayer.getTeam().getId()) { + continue; + } + + + /*BattleBallTileState state = tile.getState(); + BattleBallColourState colour = tile.getColour();*/ + + BattleBallTileState newState = BattleBallTileState.SEALED; + BattleBallColourState newColour = BattleBallColourState.getColourById(gamePlayer.getTeam().getId()); + + //tile.addSealedPoints(gamePlayer.getTeam()); + tile.getNewPoints(gamePlayer, newState, newColour); + + tile.setColour(newColour); + tile.setState(newState); + + tile.checkFill(gamePlayer, game.getFillTilesQueue()); + game.getUpdateTilesQueue().add(tile); + } + + BattleBallTile lastTile = tilesToUpdate.getLast(); + + Position lastPosition = lastTile.getPosition().copy(); + lastPosition.setRotation(rotation); + + gamePlayer.setPlayerState(BattleBallPlayerState.FLYING_THROUGH_AIR); + + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + game.addPlayerMove(new PlayerMoveEvent(gamePlayer, lastPosition)); + + GameScheduler.getInstance().getService().schedule(() -> { + PowerUpUtil.stunPlayer(game, gamePlayer, BattleBallPlayerState.STUNNED); + }, 800, TimeUnit.MILLISECONDS); + + gamePlayer.getPlayer().getRoomUser().warp(lastPosition, false, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/HarlequinHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/HarlequinHandle.java new file mode 100644 index 0000000..719e9f8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/HarlequinHandle.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.room.Room; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class HarlequinHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + List affectedPlayers = new ArrayList<>(); + + for (GamePlayer p : gamePlayer.getGame().getActivePlayers()) { + if (p.getColouringForOpponentId() != -1 || p.getTeamId() == gamePlayer.getTeamId()) { + continue; + } + + if (p.getPlayerState() != BattleBallPlayerState.NORMAL) { + continue; // Don't override people using power ups + } + + p.setPlayerState(BattleBallPlayerState.COLORING_FOR_OPPONENT); + p.setHarlequinPlayer(gamePlayer); + + game.addObjectToQueue(new PlayerUpdateObject(p)); + affectedPlayers.add(p); + } + + GameScheduler.getInstance().getService().schedule(()-> { + if (game.getGameState() == GameState.ENDED) { + return; + } + + for (GamePlayer p : affectedPlayers) { + p.setPlayerState(BattleBallPlayerState.NORMAL); + p.setHarlequinPlayer(null); + + game.addObjectToQueue(new PlayerUpdateObject(p)); + } + + }, 10, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/LightbulbHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/LightbulbHandle.java new file mode 100644 index 0000000..bea4f1b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/LightbulbHandle.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; + +public class LightbulbHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + GameTeam gameTeam = gamePlayer.getTeam(); + + for (Position position : gamePlayer.getPlayer().getRoomUser().getPosition().getCircle(5)) { + BattleBallTile tile = (BattleBallTile) game.getTile(position.getX(), position.getY()); + + if (tile == null || + tile.getColour() == BattleBallColourState.DISABLED || + tile.getState() == BattleBallTileState.SEALED) { + continue; + } + + BattleBallTileState state = tile.getState(); + BattleBallColourState colour = tile.getColour(); + + if (state == BattleBallTileState.DEFAULT) { + state = BattleBallTileState.TOUCHED; // Don't make it 4 hits, make it 3 + } + + + BattleBallTileState newState = null; + + if (colour.getColourId() != gameTeam.getId()) { + newState = BattleBallTileState.CLICKED; + } else { + newState = BattleBallTileState.getStateById(state.getTileStateId() + 1); + } + + BattleBallColourState newColour = BattleBallColourState.getColourById(gameTeam.getId()); + + tile.getNewPoints(gamePlayer, newState, newColour); + tile.setColour(newColour); + tile.setState(newState); + + if (newState == BattleBallTileState.SEALED) { + tile.checkFill(gamePlayer, game.getFillTilesQueue()); + } + + //tile.addSealedPoints(gameTeam); + game.getUpdateTilesQueue().add(tile); + } + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/NailBoxHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/NailBoxHandle.java new file mode 100644 index 0000000..cd6bcb1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/NailBoxHandle.java @@ -0,0 +1,145 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.battleball.events.DespawnObjectEvent; +import org.alexdev.havana.game.games.battleball.events.PinSpawnEvent; +import org.alexdev.havana.game.games.battleball.objects.PinObject; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.utils.PowerUpUtil; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class NailBoxHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + //gamePlayer.getPlayer().getRoomUser().stopWalking(); + + List dizzyPlayers = new ArrayList<>(); + List pins = new ArrayList<>(); + + Position tilePosition = gamePlayer.getPlayer().getRoomUser().getPosition() + .getSquareInFront() + .getSquareInFront() + .getSquareInFront() + .getSquareInFront() + .getSquareInFront() + //.getSquareInFront() + .getSquareInFront(); + + /* + var tile2 = (BattleBallTile) game.getTile(tilePosition.getX(), tilePosition.getY()); + BattleBallTileState state = tile2.getState(); + BattleBallColourState colour = tile2.getColour(); + + BattleBallTileState newState = BattleBallTileState.CLICKED; + BattleBallColourState newColour = BattleBallColourState.getColourById(gamePlayer.getTeam().getId()); + + tile2.setColour(newColour); + tile2.setState(newState); + + game.getUpdateTilesQueue().add(tile2);*/ + + int maxPins = ThreadLocalRandom.current().nextInt(8, 15 + 1); + List selectedPositions = new ArrayList<>(); + List circlePositions = tilePosition.getCircle(3); + + Collections.shuffle(circlePositions); + + for (Position circlePos : circlePositions) { + if (circlePos.equals(gamePlayer.getPlayer().getRoomUser().getPosition())) { + continue; + } + + BattleBallTile tile = (BattleBallTile) game.getTile(circlePos.getX(), circlePos.getY()); + + if (tile == null || room.getMapping().getTile(circlePos) == null) { + continue; + } + + if (circlePos.equals(gamePlayer.getPlayer().getRoomUser().getPosition()) || + circlePos.equals(gamePlayer.getPlayer().getRoomUser().getNextPosition())) { + continue; + } + + circlePos.setZ(tile.getPosition().getZ()); + + if (selectedPositions.size() < maxPins) { + if (ThreadLocalRandom.current().nextBoolean()) { + PinObject pin = new PinObject(game.createObjectId(), circlePos); + pins.add(pin); + + game.getEventsQueue().add(new PinSpawnEvent(pin.getId(), pin.getPosition())); + selectedPositions.add(circlePos); + + if (room.getMapping().getTile(circlePos).getEntities().size() > 0) { + for (Entity entity : room.getMapping().getTile(circlePos).getEntities()) { + if (entity.getType() != EntityType.PLAYER) { + continue; + } + + Player player = (Player) entity; + GamePlayer gameUser = player.getRoomUser().getGamePlayer(); + + if (gameUser.isSpectator()) { + continue; + } + + dizzyPlayers.add(player.getRoomUser().getGamePlayer()); + } + } + } + } + } + + game.getObjects().addAll(pins); + + // Make all affected players dizzy + for (GamePlayer dizzyPlayer : dizzyPlayers) { + PowerUpUtil.stunPlayer(game, dizzyPlayer, BattleBallPlayerState.BALL_BROKEN); + } + + + // Despawn all pins at their irregular intervals, as seen: https://www.youtube.com/watch?v=yw0MigOIloI&feature=youtu.be&t=94 + for (GameObject pinObject : pins) { + GameScheduler.getInstance().getService().schedule(() -> { + game.getEventsQueue().add(new DespawnObjectEvent(pinObject.getId())); + game.getObjects().remove(pinObject); + + }, ThreadLocalRandom.current().nextInt(12, 16+1), TimeUnit.SECONDS); + } + } + + public static boolean checkNailTile(GamePlayer gamePlayer) { + for (GameObject gameObject : gamePlayer.getGame().getObjects()) { + if (!(gameObject instanceof PinObject)) { + continue; + } + + PinObject pinObject = (PinObject) gameObject; + + if (gamePlayer.getPlayer().getRoomUser().getPosition().equals(pinObject.getPosition())) { + gamePlayer.getGame().getEventsQueue().add(new DespawnObjectEvent(pinObject.getId())); + gamePlayer.getGame().getObjects().remove(gameObject); + + PowerUpUtil.stunPlayer(gamePlayer.getGame(), gamePlayer, BattleBallPlayerState.BALL_BROKEN); + return true; + } + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/SpringHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/SpringHandle.java new file mode 100644 index 0000000..efbc792 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/SpringHandle.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.room.Room; + +import java.util.concurrent.TimeUnit; + +public class SpringHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + gamePlayer.setPlayerState(BattleBallPlayerState.HIGH_JUMPS); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + + GameScheduler.getInstance().getService().schedule(()-> { + if (game.getGameState() == GameState.ENDED) { + return; + } + + if (gamePlayer.getPlayerState() != BattleBallPlayerState.HIGH_JUMPS) { + return; + } + + gamePlayer.setPlayerState(BattleBallPlayerState.NORMAL); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + }, 10, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/TorchHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/TorchHandle.java new file mode 100644 index 0000000..9063c57 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/TorchHandle.java @@ -0,0 +1,73 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.utils.TileUtil; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; + +import java.util.ArrayList; +import java.util.List; + +public class TorchHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + GameTeam gameTeam = gamePlayer.getTeam(); + List tilesToUpdate = new ArrayList<>(); + + Position nextPosition = gamePlayer.getPlayer().getRoomUser().getPosition(); + + while (TileUtil.isValidGameTile(gamePlayer, (BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY()), false)) { + nextPosition = nextPosition.getSquareInFront(); + + if (!TileUtil.isValidGameTile(gamePlayer, (BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY()), false)) { + break; + } + + tilesToUpdate.add((BattleBallTile) game.getTile(nextPosition.getX(), nextPosition.getY())); + + } + + for (BattleBallTile tile : tilesToUpdate) { + if (tile.getState() == BattleBallTileState.SEALED) { + continue; + } + + if (tile.getColour() == BattleBallColourState.DISABLED) { + continue; + } + + BattleBallTileState state = tile.getState(); + BattleBallColourState colour = tile.getColour(); + + if (state == BattleBallTileState.DEFAULT) { + state = BattleBallTileState.TOUCHED; // Don't make it 4 hits, make it 3 + } + + + BattleBallTileState newState = null; + + if (colour.getColourId() != gameTeam.getId()) { + newState = BattleBallTileState.CLICKED; + } else { + newState = BattleBallTileState.getStateById(state.getTileStateId() + 1); + } + + BattleBallColourState newColour = BattleBallColourState.getColourById(gameTeam.getId()); + + tile.getNewPoints(gamePlayer, newState, newColour); + + tile.setColour(newColour); + tile.setState(newState); + + if (newState == BattleBallTileState.SEALED) { + tile.checkFill(gamePlayer, game.getFillTilesQueue()); + } + + game.getUpdateTilesQueue().add(tile); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/VacuumHandle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/VacuumHandle.java new file mode 100644 index 0000000..071b746 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/battleball/powerups/VacuumHandle.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.games.battleball.powerups; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.room.Room; + +import java.util.concurrent.TimeUnit; + +public class VacuumHandle { + public static void handle(BattleBallGame game, GamePlayer gamePlayer, Room room) { + gamePlayer.setPlayerState(BattleBallPlayerState.CLEANING_TILES); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + + GameScheduler.getInstance().getService().schedule(() -> { + if (game.getGameState() == GameState.ENDED) { + return; + } + + if (gamePlayer.getPlayerState() != BattleBallPlayerState.CLEANING_TILES) { + return; + } + + gamePlayer.setPlayerState(BattleBallPlayerState.NORMAL); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + }, 10, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameEventType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameEventType.java new file mode 100644 index 0000000..5b1c8d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameEventType.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.game.games.enums; + +public enum GameEventType { + BATTLEBALL_PLAYER_EVENT(2), + BATTLEBALL_OBJECT_SPAWN(0), + BATTLEBALL_DESPAWN_OBJECT(1), + BATTLEBALL_POWERUP_GET(3), + BATTLEBALL_POWERUP_ACTIVATE(5); + + private final int eventId; + + GameEventType(int eventId) { + this.eventId = eventId; + } + + public int getEventId() { + return eventId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameObjectType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameObjectType.java new file mode 100644 index 0000000..474c71e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameObjectType.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.game.games.enums; + +public enum GameObjectType { + BATTLEBALL_PLAYER_OBJECT(0), + BATTLEBALL_POWER_OBJECT(1), + BATTLEBALL_PIN_OBJECT(2), + + SNOWWAR_AVATAR_OBJECT(5), + SNOWWAR_SNOWMACHINE_OBJECT(4), + + SNOWWAR_OBJECT_EVENT(0), + SNOWWAR_AVATAR_MOVE_EVENT(2), + SNOWWAR_AVATAR_STOP_EVENT(6), + SNOWWAR_REMOVE_OBJECT_EVENT(1), + SNOWWAR_THROW_EVENT(8), + SNOWWAR_CREATE_SNOWBALL_EVENT(7), + SNOWWAR_TARGET_THROW_EVENT(4), + SNOWWAR_MACHINE_MOVE_SNOWBALLS_EVENT(12), + SNOWWAR_MACHINE_ADD_SNOWBALL_EVENT(11), + SNOWSTORM_HIT_EVENT(5), + SNOWWAR_STUN_EVENT(9); + + private final int objectId; + + GameObjectType(int objectId) { + this.objectId = objectId; + } + + public int getObjectId() { + return objectId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameState.java new file mode 100644 index 0000000..7d7ac71 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameState.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.game.games.enums; + +public enum GameState { + WAITING(0), + STARTED(1), + ENDED(2); + + private final int stateId; + + GameState(int stateId) { + this.stateId = stateId; + } + + public int getStateId() { + return stateId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameType.java new file mode 100644 index 0000000..875f527 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/enums/GameType.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.game.games.enums; + +import org.alexdev.havana.util.config.GameConfiguration; + +public enum GameType { + BATTLEBALL("bb_lobby_1", 1), + SNOWSTORM("snowwar_lobby_1", 0), + WOBBLE_SQUABBLE("md_a", 1); + + private String lobbyModel; + private int typeId; + + GameType(String lobbyModel, int typeId) { + this.lobbyModel = lobbyModel; + this.typeId = typeId; + } + + /** + * Get the cost of tickets required to play each game + * + * @return the ticket amount required + */ + public int getTicketCost() { + return GameConfiguration.getInstance().getInteger(this.name().toLowerCase() + ".ticket.charge"); + } + + public String getLobbyModel() { + return lobbyModel; + } + + public int getTypeId() { + return typeId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameBattleShip.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameBattleShip.java new file mode 100644 index 0000000..b3046e9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameBattleShip.java @@ -0,0 +1,413 @@ +package org.alexdev.havana.game.games.gamehalls; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.gamehalls.utils.GameShip; +import org.alexdev.havana.game.games.gamehalls.utils.GameShipMove; +import org.alexdev.havana.game.games.gamehalls.utils.GameShipMoveResult; +import org.alexdev.havana.game.games.gamehalls.utils.GameShipType; +import org.alexdev.havana.game.games.triggers.GameTrigger; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.games.ITEMMSG; + +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class GameBattleShip extends GamehallGame { + private Map shipsPlaced; + private Map> playerListMap; + private Player[] players; + private int nextTurn; + private boolean isTurnUsed; + private boolean gameStarted; + private boolean gameEnded; + + public GameBattleShip(List kvp) { + super(kvp); + } + + @Override + public void gameStart() { + this.shipsPlaced = new HashMap<>(); + this.playerListMap = new HashMap<>(); + this.players = new Player[2]; + this.nextTurn = 0; + this.isTurnUsed = false; + this.gameStarted = false; + this.gameEnded = false; + } + + @Override + public void gameStop() { + this.shipsPlaced = new HashMap<>(); + this.playerListMap = new HashMap<>(); + this.players = new Player[2]; + this.nextTurn = 0; + this.isTurnUsed = false; + this.gameStarted = false; + this.gameEnded = false; + } + + @Override + public void joinGame(Player player) { + if (!this.gameStarted) { + return; + } + + if (this.getPlayerNum(player) == -1) { + if (this.players[0] == null) { + this.players[0] = player; + } else { + if (this.players[1] == null) { + this.players[1] = player; + } + } + } + + String[] opponentData = new String[2]; + + int i = 0; + for (Player p : this.players) { + opponentData[i] = this.getPlayerNum(p) + " " + this.players[i].getDetails().getName(); + i++; + } + + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "OPPONENTS", String.join(Character.toString((char) 13), opponentData)})); + this.sendMarkedMap(); + } + + @Override + public void leaveGame(Player player) { + if (this.nextTurn == getPlayerNum(player)) { + rotateTurn(); + } + + for (int i = 0; i < this.players.length; i++) { + if (this.players[i] == player) { + this.players[i] = null; + } + } + } + + @Override + public void handleCommand(Player player, Room room, Item item, String command, String[] args) { + GameTrigger trigger = (GameTrigger) item.getDefinition().getInteractionType().getTrigger(); + + if (command.equals("PLACESHIP")) { + if (this.gameStarted) { + return; + } + + int shipId = Integer.parseInt(args[0]); + int startX = Integer.parseInt(args[1]); + int startY = Integer.parseInt(args[2]); + + int endX = Integer.parseInt(args[3]); + int endY = Integer.parseInt(args[4]); + + GameShipType shipType = GameShipType.getById(shipId); + + if (shipType == null) { + return; + } + + if (this.getPlayerNum(player) == -1) { + if (this.players[0] == null) { + this.players[0] = player; + } else { + if (this.players[1] == null) { + this.players[1] = player; + } + } + } + + if (this.countShips(shipType, getPlayerNum(player)) >= shipType.getMaxAllowed()) { + return; + } + + if (!this.playerListMap.containsKey(getPlayerNum(player))) { + this.playerListMap.put(getPlayerNum(player), new ArrayList<>()); + } + + boolean isHorizontal = (startY == endY); + + this.shipsPlaced.put(new GameShip(this, shipType, new Position(startX, startY), getPlayerNum(player), isHorizontal), getPlayerNum(player)); + boolean isEveryoneFinsihed = this.hasEveryoneFinished(); + + if (isEveryoneFinsihed) { + String[] opponentData = new String[2]; + + int i = 0; + for (Player p : this.players) { + opponentData[i] = this.getPlayerNum(p) + " " + this.players[i].getDetails().getName(); + i++; + } + + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "OPPONENTS", String.join(Character.toString((char) 13), opponentData)})); + this.rotateTurn(); + this.gameStarted = true; + } + } + + if (command.equals("SHOOT")) { + if (this.nextTurn != getPlayerNum(player)) { + return; + } + + if (this.isTurnUsed) { + return; + } + + int x = Integer.parseInt(args[0]); + int y = Integer.parseInt(args[1]); + + GameShipMoveResult moveResult = GameShipMoveResult.MISS; + + if (this.isHit(x, y, getPlayerNum(player))) { + moveResult = GameShipMoveResult.HIT; + } + + var oppositePlayer = this.getOppositePlayer(player); + + if (oppositePlayer == null) { + return; + } + + GameShip gameShip = this.getShipPlaced(x, y, getPlayerNum(player)); + this.playerListMap.get(getPlayerNum(player)).add(new GameShipMove(player, x, y, moveResult, gameShip)); + + this.sendMarkedMap(); + + if (gameShip != null) { + if (gameShip.isDestroyed()) { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "SINK" })); + } else if (gameShip.isHitTwice()) { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "HITTWICE" })); + } else { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "HIT" })); + } + } else { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "MISS" })); + } + + //this.isTurnUsed = true; + GameShipMoveResult finalMoveResult = moveResult; + + //GameScheduler.getInstance().getService().schedule(() -> { + if (finalMoveResult == GameShipMoveResult.MISS) { + this.isTurnUsed = true; + GameScheduler.getInstance().getService().schedule(this::rotateTurn, 2, TimeUnit.SECONDS); + } else { + this.isTurnUsed = false; + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "TURN", String.valueOf(this.nextTurn)})); + } + //}, 5, TimeUnit.SECONDS); + + if (this.isGameOver(oppositePlayer)) { + this.gameEnded = true; + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "GAMEEND", player.getDetails().getName()})); + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "GAMEOVER"})); + this.isTurnUsed = true; + //GameManager.getInstance().giveRandomCredits(player, true); + //GameManager.getInstance().giveRandomCredits(this.getOppositePlayer(player), false); + + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + //GameScheduler.getInstance().getService().schedule(this::rotateTurn, 5, TimeUnit.SECONDS); + //GameScheduler.getInstance().getService().schedule(this::sendMarkedMap, 5, TimeUnit.SECONDS); + + } + + if (command.equals("CLOSE")) { + trigger.onEntityLeave(player, player.getRoomUser(), item); + return; + } + } + + private void rotateTurn() { + this.nextTurn = getOppositePlayerNum(this.nextTurn); + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "TURN", String.valueOf(this.nextTurn) })); + this.isTurnUsed = false; + } + + private void sendMarkedMap() { + for (Player p : this.players) { + var opponent = getOppositePlayer(p); + + if (opponent == null) { + return; + } + + if (getPlayerNum(p) == 0) { + p.send(new ITEMMSG(new String[]{this.getGameId(), "SITUATION", + "", generateHitGrid(getPlayerNum(p)), + "", generateHitGrid(getPlayerNum(opponent)), + })); + } else { + p.send(new ITEMMSG(new String[]{this.getGameId(), "SITUATION", + "", generateHitGrid(getPlayerNum(opponent)), + "", generateHitGrid(getPlayerNum(p)), + })); + } + } + } + + + private String generateHitGrid(int player) { + StringBuilder map = new StringBuilder(); + + for (int y = 0; y < 12; y++) { + for (int x = 0; x < 13; x++) { + Position position = new Position(x, y); + + GameShipMove shipMove = this.playerListMap.get(this.getOppositePlayerNum(player)).stream().filter(move -> move.getX() == position.getX() && move.getY() == position.getY()).findFirst().orElse(null); + + if (shipMove == null) { + map.append("-"); + } else { + if (shipMove.getShip() != null && shipMove.getShip().isDestroyed()) { + map.append(GameShipMoveResult.SINK.getSymbol()); + } else { + map.append(shipMove.getMoveResult().getSymbol()); + } + } + } + } + + return map.toString(); + } + + private boolean isHit(int selectX, int selectY, int player) { + return getShipPlaced(selectX, selectY, player) != null; + } + + private GameShip getShipPlaced(int x, int y, int player) { + List opponentShips = this.shipsPlaced.keySet().stream().filter(ship -> ship.getPlayer() == getOppositePlayerNum(player)).collect(Collectors.toList()); + + for (GameShip gameShip : opponentShips) { + for (int i = 0; i < gameShip.getShipType().getLength(); i++) { + int shipX = gameShip.getPosition().getX() + (gameShip.isHorizontal() ? i : 0); + int shipY = gameShip.getPosition().getY() + (gameShip.isHorizontal() ? 0 : i); + + if (x == shipX && y == shipY) { + return gameShip; + } + } + } + + return null; + } + + /** + * Get the player number for the player. + * + * @param player the player number + * @return the number + */ + public int getPlayerNum(Player player) { + var playerList = Arrays.asList(this.players); + return playerList.contains(player) ? playerList.indexOf(player) : - 1; + } + + private boolean isGameOver(Player player) { + for (var kvp : this.shipsPlaced.entrySet()) { + if (kvp.getValue() != getPlayerNum(player)) { + continue; + } + + if (!kvp.getKey().isDestroyed()) { + return false; + } + } + + return true; + } + + /** + * Get the opposite player playing + * + * @param player the player + * @return the opponent + */ + public Player getOppositePlayer(Player player) { + for (Player p : this.players) { + if (p != player) { + return p; + } + } + + return null; + } + + + public Integer getOppositePlayerNum(int player) { + return player == 0 ? 1 : 0; + } + + /** + * Gets if both players have finished placing their pieces. + * + * @return true, if successful + */ + private boolean hasEveryoneFinished() { + if (this.countShips(null, 0) != 10) { + return false; + } + + if (this.countShips(null, 1) != 10) { + return false; + } + + return true; + } + + /** + * Count the ships placed on the map. + * + * @param shipType the ship type (optional) + * @param player the player (optional) + * @return the count of the ships + */ + private int countShips(GameShipType shipType, int player) { + List gameShipTypes = null; + + if (shipType != null) { + if (player != -1) { + gameShipTypes = this.shipsPlaced.keySet().stream().filter(ship -> ship.getShipType() == shipType && ship.getPlayer() == player).collect(Collectors.toList()); + } else { + gameShipTypes = this.shipsPlaced.keySet().stream().filter(ship -> ship.getShipType() == shipType).collect(Collectors.toList()); + } + } else { + if (player != -1) { + gameShipTypes = this.shipsPlaced.keySet().stream().filter(ship -> ship.getPlayer() == player).collect(Collectors.toList()); + } else { + gameShipTypes = new ArrayList<>(this.shipsPlaced.keySet()); + } + } + + return gameShipTypes.size(); + } + + @Override + public int getMaximumPeopleRequired() { + return 2; + } + + @Override + public int getMinimumPeopleRequired() { + return 1; + } + + @Override + public String getGameFuseType() { + return "BattleShip"; + } + + public Map> getPlayerListMap() { + return playerListMap; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameChess.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameChess.java new file mode 100644 index 0000000..d8dfc8b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameChess.java @@ -0,0 +1,334 @@ +package org.alexdev.havana.game.games.gamehalls; + +import com.github.bhlangonijr.chesslib.*; +import com.github.bhlangonijr.chesslib.move.Move; +import com.github.bhlangonijr.chesslib.move.MoveGenerator; +import com.github.bhlangonijr.chesslib.move.MoveGeneratorException; +import org.alexdev.havana.game.games.triggers.GameTrigger; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.games.ITEMMSG; + +import java.util.HashMap; +import java.util.List; + +public class GameChess extends GamehallGame { + private static class GameToken { + private char token; + + private GameToken(char token) { + this.token = token; + } + + private char getToken() { + return token; + } + } + + private boolean gameFinished; + + private Board board; + private GameToken[] gameTokens; + private HashMap playerSides; + + public GameChess(List chairs) { + super(chairs); + } + + @Override + public void gameStart() { + this.playerSides = new HashMap<>(); + this.restartMap(); + } + + @Override + public void gameStop() { + this.playerSides.clear(); + this.board = null; + } + + @Override + public void joinGame(Player player) { } + + @Override + public void leaveGame(Player player) { + this.playerSides.remove(player); + } + + @Override + public void handleCommand(Player player, Room room, Item item, String command, String[] args) { + GameTrigger trigger = (GameTrigger) item.getDefinition().getInteractionType().getTrigger(); + + if (command.equals("CLOSE")) { + trigger.onEntityLeave(player, player.getRoomUser(), item); + return; + } + + if (command.equals("CHOOSETYPE")) { + char sideChosen = args[0].charAt(0); + + if (this.getToken(sideChosen) == null) { + return; + } + + if (this.getPlayerBySide(sideChosen) != null) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); + return; + } + + if (this.gameFinished) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + return; + } + + player.send(new ITEMMSG(new String[]{this.getGameId(), "SELECTTYPE " + String.valueOf(sideChosen)})); + + GameToken token = this.getToken(sideChosen); + this.playerSides.put(player, token); + + // Select the other side for the player + GameToken otherToken = null; + + for (GameToken other : this.gameTokens) { + if (other.getToken() != sideChosen) { + otherToken = other; + break; + } + } + + if (otherToken != null) { + for (Player otherPlayer : this.getPlayers()) { + if (otherPlayer != player) { + otherPlayer.send(new ITEMMSG(new String[]{this.getGameId(), "SELECTTYPE " + String.valueOf(otherToken.getToken())})); + this.playerSides.put(otherPlayer, otherToken); + break; + } + } + } + + this.restartMap(); + this.broadcastMap(); + } + + if (command.equals("MOVEPIECE")) { + char currentSide = this.board.getSideToMove() == Side.BLACK ? 'b' : 'w'; + + if (currentSide != this.playerSides.get(player).getToken()) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + this.broadcastMap(); + return; + } + + if (this.gameFinished) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + this.broadcastMap(); + return; + } + + if (this.getPlayers().size() < this.getMinimumPeopleRequired()) { + this.broadcastMap(); + return; // Can't place objects until other player has joined. + } + + if (!this.playerSides.containsKey(player)) { + this.broadcastMap(); + return; + } + + Square fromSquare = Square.valueOf(args[0].toUpperCase()); + Square toSquare = Square.valueOf(args[1].toUpperCase()); + + if (fromSquare == toSquare) { + player.getRoomUser().getTimerManager().resetRoomTimer(); + return; + } + + Move move = new Move(fromSquare, toSquare); + boolean isLegalMove = false; + + try { + var moveList = MoveGenerator.generateLegalMoves(this.board); + isLegalMove = moveList.contains(move);//.stream().anyMatch(m -> m.getFrom() == fromSquare && m.getTo() == toSquare); + + } catch (MoveGeneratorException e) { } + + if (isLegalMove) { + this.board.doMove(move, true); + + /*if (this.board.isDraw() || this.board.isInsufficientMaterial()) { + this.gameFinished = true; + this.showChat("The chess game has ended in a draw"); + return; + } else if (this.board.isStaleMate()) { + this.gameFinished = true; + this.showChat("The chess game has encountered a stalemate"); + return; + } else if (this.board.isMated()) { + this.gameFinished = true; + this.showChat(player.getDetails().getName() + " has won the chess game"); + return; + } else if (this.board.isKingAttacked()) { + this.showChat("The king is being attacked!"); + }*/ + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + this.broadcastMap(); + } + + if (command.equals("RESTART")) { + this.restartMap(); + this.broadcastMap(); + return; + } + } + + /** + * Send the game map to the opponents. + */ + private void broadcastMap() { + StringBuilder boardData = new StringBuilder(); + + for (Square square : Square.values()) { + Piece piece = this.board.getPiece(square); + + if (piece == null) { + continue; + } + + if (piece.getPieceType() == PieceType.NONE || piece.getPieceSide() == null) { + continue; + } + + String side = piece.getPieceSide() == Side.BLACK ? "B" : "W"; + String chessPiece = this.getChessPiece(piece.getPieceType()); + + boardData.append(side); + boardData.append(chessPiece); + boardData.append(square.value().toLowerCase()); + boardData.append((char)32); + + } + + String[] playerNames = this.getCurrentlyPlaying(); + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "PIECEDATA", playerNames[0], playerNames[1], boardData.toString()})); + } + + /** + * Get the CCT type of chess piece by the piece type supplied. + * + * @param pieceType the piece type instance + * @return the CCT type, else it defaults to Rook + */ + public String getChessPiece(PieceType pieceType) { + if (pieceType == PieceType.BISHOP) { + return "cr"; + } + + if (pieceType == PieceType.KNIGHT) { + return "hr"; + } + + if (pieceType == PieceType.KING) { + return "kg"; + } + + if (pieceType == PieceType.QUEEN) { + return "qu"; + } + + if (pieceType == PieceType.ROOK) { + return "tw"; + } + + return "sd"; // Pawn + } + + /** + * Get the name of the user(s) currently playing as an array for the packet + * + * @return the array with player name + */ + private String[] getCurrentlyPlaying() { + String[] playerNames = new String[]{"", ""}; + + if (this.board != null && this.board.getSideToMove() != null) { + /*for (int i = 0; i < this.playersInGame.size(); i++) { + Player player = this.playersInGame.get(i); + playerNames[i] = Character.toUpperCase(this.playerSides.get(player).getToken()) + " " + player.getDetails().getName(); + }*/ + + char currentSide = this.board.getSideToMove() == Side.BLACK ? 'b' : 'w'; + + if (this.getPlayerBySide(currentSide) != null) { + playerNames[0] = Character.toUpperCase(currentSide) + " " + this.getPlayerBySide(currentSide).getDetails().getName(); + } + } + + return playerNames; + } + + /** + * Reset the game map. + */ + private void restartMap() { + this.gameTokens = new GameToken[]{ + new GameToken('w'), + new GameToken('b') + }; + + this.gameFinished = false; + this.board = new Board(); + } + + /** + * Get token instance by character. + * + * @param side the character to compare against + * @return the instance, if successful + */ + private GameToken getToken(char side) { + GameToken token = null; + + for (GameToken t : gameTokens) { + if (t.getToken() == side) { + token = t; + break; + } + } + + return token; + } + + /** + * Locate a player instance by the side they're playing. + * + * @param side the side used + * @return the player instance, if successful + */ + private Player getPlayerBySide(char side) { + for (var kvp : this.playerSides.entrySet()) { + if (kvp.getValue().getToken() == side) { + return kvp.getKey(); + } + } + + return null; + } + + @Override + public int getMaximumPeopleRequired() { + return 2; + } + + @Override + public int getMinimumPeopleRequired() { + return 1; + } + + @Override + public String getGameFuseType() { + return "Chess"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamePoker.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamePoker.java new file mode 100644 index 0000000..be52922 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamePoker.java @@ -0,0 +1,51 @@ +package org.alexdev.havana.game.games.gamehalls; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.games.triggers.GameTrigger; + +import java.util.List; + +public class GamePoker extends GamehallGame { + public GamePoker(List kvp) { + super(kvp); + } + + @Override + public void gameStart() { } + + @Override + public void gameStop() { } + + @Override + public void joinGame(Player p) { } + + @Override + public void leaveGame(Player player) { } + + @Override + public void handleCommand(Player player, Room room, Item item, String command, String[] args) { + GameTrigger trigger = (GameTrigger) item.getDefinition().getInteractionType().getTrigger(); + + if (command.equals("CLOSE")) { + trigger.onEntityLeave(player, player.getRoomUser(), item); + return; + } + } + + @Override + public int getMaximumPeopleRequired() { + return 4; + } + + @Override + public int getMinimumPeopleRequired() { + return 2; + } + + @Override + public String getGameFuseType() { + return "Poker"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameTicTacToe.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameTicTacToe.java new file mode 100644 index 0000000..2b15163 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GameTicTacToe.java @@ -0,0 +1,496 @@ +package org.alexdev.havana.game.games.gamehalls; + +import org.alexdev.havana.game.games.gamehalls.utils.GameToken; +import org.alexdev.havana.game.games.triggers.GameTrigger; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.games.CLOSEGAMEBOARD; +import org.alexdev.havana.messages.outgoing.rooms.games.ITEMMSG; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GameTicTacToe extends GamehallGame { + private static final int NUM_IN_ROW = 5; + private static final int MAX_WIDTH = 23; + private static final int MAX_LENGTH = 24; + + private GameToken[] gameTokens; + private Map playerSides; + + private boolean gameFinished; + private char[][] gameMap; + private Player nextTurn; + + public GameTicTacToe(List chairs) { + super(chairs); + } + + @Override + public void gameStart() { + this.playerSides = new HashMap<>(); + this.restartMap(); + } + + @Override + public void gameStop() { + this.playerSides.clear(); + this.gameMap = null; + } + + @Override + public void joinGame(Player p) { } + + @Override + public void leaveGame(Player player) { + this.playerSides.remove(player); + } + + @Override + public void handleCommand(Player player, Room room, Item item, String command, String[] args) { + GameTrigger trigger = (GameTrigger) item.getDefinition().getInteractionType().getTrigger(); + + if (command.equals("CLOSE")) { + trigger.onEntityLeave(player, player.getRoomUser(), item); + return; + } + + if (command.equals("CHOOSETYPE")) { + char sideChosen = args[0].charAt(0); + + if (this.getToken(sideChosen) == null) { + return; + } + + if (this.getPlayerBySide(sideChosen) != null) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); + return; + } + + this.playerSides.put(player, sideChosen); + + player.send(new ITEMMSG(new String[]{this.getGameId(), "SELECTTYPE " + String.valueOf(sideChosen)})); + + // Select the other side for the player + GameToken otherToken = null; + + for (GameToken other : gameTokens) { + if (other.getToken() != sideChosen) { + otherToken = other; + break; + } + } + + if (otherToken != null) { + for (Player otherPlayer : this.getPlayers()) { + if (otherPlayer != player) { + otherPlayer.send(new ITEMMSG(new String[]{this.getGameId(), "SELECTTYPE " + String.valueOf(otherToken.getToken())})); + this.playerSides.put(otherPlayer, otherToken.getToken()); + break; + } + } + } + + String[] playerNames = this.getCurrentlyPlaying(); + + if (playerNames != null) { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "OPPONENTS", playerNames[0], playerNames[1]})); + } else { + player.send(new CLOSEGAMEBOARD(this.getGameId(), this.getGameFuseType())); + this.getPlayers().remove(player); + this.resetGameId(); + this.gameStop(); + } + } + + if (command.equals("RESTART")) { + this.restartMap(); + this.broadcastMap(); + return; + } + + if (command.equals("SETSECTOR")) { + if (this.getPlayers().size() < this.getMinimumPeopleRequired()) { + return; // Can't place objects until other player has joined. + } + + if (!this.playerSides.containsKey(player)) { + return; + } + + if (this.nextTurn != player) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + return; + } + + if (this.gameFinished) { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + return; + } + + char side = args[0].charAt(0); + + if (this.playerSides.get(player) != side) { + return; + } + + int Y = Integer.parseInt(args[1]); + int X = Integer.parseInt(args[2]); + + if (X >= MAX_WIDTH || Y >= MAX_LENGTH || X < 0 || Y < 0) { + return; + } + + if (this.gameMap == null) { + return; + } + + if (this.gameMap[X][Y] != '0') { + player.send(new ITEMMSG(new String[]{this.getGameId(), "TYPERESERVED"})); // Alert/error sound! + return; + } + + GameToken token = this.getToken(this.playerSides.get(player)); + token.incrementMoves(); + + this.gameMap[X][Y] = token.getToken(); + + Pair> variables = this.hasGameFinished(); + + if (variables != null) { + this.gameFinished = true; + this.announceWinningSide(variables); + } else { + this.swapTurns(player); + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + this.broadcastMap(); + } + } + + /** + * Announce the winning side, change the characters to their winning symbols, and says + * how many moves it took. + * + * @param variables the winning character and coordinates of winning tiles + */ + private void announceWinningSide(Pair> variables) { + GameToken token = null; + + for (GameToken side : gameTokens) { + if (side.getToken() == variables.getKey()) { + token = side; + } + } + + if (token != null) { + for (int[] coord : variables.getValue()) { + this.gameMap[coord[0]][coord[1]] = token.getWinningToken(); + } + + this.broadcastMap(); + + Player winner = this.getPlayerBySide(token.getToken()); + + if (winner == null) { + return; + } + + for (Player player : this.getPlayers()) { + player.send(new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), winner.getDetails().getName() + " has won the game in " + token.getMoves() + " moves", 0)); + } + + /*(for (Player p : playerSides.keySet()) { + GameManager.getInstance().giveRandomCredits(p, winner == p); + }*/ + + } + } + + /** + * Check for the winner. + * + * @return a variable containing the character who won, and the coords of the winning tiles + */ + private Pair> hasGameFinished() { + List winningCoordinates = new ArrayList<>(); + + // Check rows across + for (int i = 0; i < MAX_WIDTH; i++) { + for (int j = 0; j < MAX_LENGTH; j++) { + char letter = this.gameMap[i][j]; + winningCoordinates.clear(); + + if (letter == '0') { + continue; + } + + for (int k = 0; k < NUM_IN_ROW; k++) { + if ((j + k) >= MAX_LENGTH) { + continue; + } + + char newLetter = this.gameMap[i][j + k]; + + if (newLetter != '0' && newLetter == letter) { + winningCoordinates.add(new int[]{i, j + k}); + letter = newLetter; + + if (winningCoordinates.size() >= NUM_IN_ROW) { + return Pair.of(letter, winningCoordinates); + } + } else { + winningCoordinates.clear(); + } + } + } + } + + // Check rows down + for (int i = 0; i < MAX_WIDTH; i++) { + for (int j = 0; j < MAX_LENGTH; j++) { + char letter = this.gameMap[i][j]; + winningCoordinates.clear(); + + if (letter == '0') { + continue; + } + + for (int k = 0; k < NUM_IN_ROW; k++) { + if ((i + k) >= MAX_WIDTH) { + continue; + } + + char newLetter = this.gameMap[i + k][j]; + + if (newLetter != '0' && newLetter == letter) { + winningCoordinates.add(new int[]{i + k, j}); + letter = newLetter; + + if (winningCoordinates.size() >= NUM_IN_ROW) { + return Pair.of(letter, winningCoordinates); + } + } else { + winningCoordinates.clear(); + } + } + } + } + + // Check top left to bottom right + for (int i = 0; i < MAX_WIDTH; i++) { + for (int j = 0; j < MAX_LENGTH; j++) { + char letter = this.gameMap[i][j]; + winningCoordinates.clear(); + + if (letter == '0') { + continue; + } + + for (int k = 0; k < NUM_IN_ROW; k++) { + if ((i + k) >= MAX_WIDTH || (j + k) >= MAX_WIDTH) { + continue; + } + + char newLetter = this.gameMap[i + k][j + k]; + + if (newLetter != '0' && newLetter == letter) { + winningCoordinates.add(new int[]{i + k, j + k}); + letter = newLetter; + + if (winningCoordinates.size() >= NUM_IN_ROW) { + return Pair.of(letter, winningCoordinates); + } + } else { + winningCoordinates.clear(); + } + } + } + } + + // Check top right to bottom left + for (int i = 0; i < MAX_WIDTH; i++) { + for (int j = 0; j < MAX_LENGTH; j++) { + char letter = this.gameMap[i][j]; + winningCoordinates.clear(); + + if (letter == '0') { + continue; + } + + for (int k = 0; k < NUM_IN_ROW; k++) { + int newX = i - k; + int newY = j + k; + + if (newX < 0) { + continue; + } + + if (newX >= MAX_WIDTH || newY >= MAX_WIDTH) { + continue; + } + + char newLetter = this.gameMap[newX][newY]; + + if (newLetter != '0' && newLetter == letter) { + winningCoordinates.add(new int[]{newX, newY}); + letter = newLetter; + + if (winningCoordinates.size() >= NUM_IN_ROW) { + return Pair.of(letter, winningCoordinates); + } + } else { + winningCoordinates.clear(); + } + } + } + } + + return null; + } + + /** + * Swap who's turn it is to play. + * + * @param player the player to swap away from + */ + private void swapTurns(Player player) { + Player nextPlayer = null; + + if (this.nextTurn == player) { + for (Player p : this.getPlayers()) { + if (p != player) { + nextPlayer = p; + } + } + } + + this.nextTurn = nextPlayer; + } + + /** + * Reset the game map. + */ + private void restartMap() { + this.gameTokens = new GameToken[]{ + new GameToken('O', 'q'), + new GameToken('X', '+') + }; + + if (this.getPlayers().size() > 0) { + this.nextTurn = this.getPlayers().get(0); + } + + this.gameFinished = false; + this.gameMap = new char[MAX_WIDTH][MAX_LENGTH]; + + for (int X = 0; X < MAX_WIDTH; X++) { + for (int Y = 0; Y < MAX_LENGTH; Y++) { + this.gameMap[X][Y] = '0'; + } + } + } + + /** + * Send the game map to the opponents. + */ + private void broadcastMap() { + StringBuilder boardData = new StringBuilder(); + + for (char[] mapData : this.gameMap) { + for (char mapLetter : mapData) { + boardData.append(mapLetter == '0' ? (char) 32 : mapLetter); + } + + boardData.append((char) 32); + } + + String[] playerNames = this.getCurrentlyPlaying(); + + if (playerNames.length > 0) { + this.sendToEveryone(new ITEMMSG(new String[]{this.getGameId(), "BOARDDATA", playerNames[0], "", boardData.toString()})); + } + } + + /** + * Get the name of the user(s) currently playing as an array for the packet + * + * @return the array with player name + */ + private String[] getCurrentlyPlaying() { + try { + String[] playerNames = new String[]{"", ""}; + /*for (int i = 0; i < this.playersInGame.size(); i++) { + Player player = this.playersInGame.get(i); + playerNames[i] = Character.toUpperCase(this.playerSides.get(player).getToken()) + " " + player.getDetails().getName(); + }*/ + + if (this.nextTurn != null) { + playerNames[0] = Character.toUpperCase(this.playerSides.get(this.nextTurn)) + " " + this.nextTurn.getDetails().getName(); + } + + return playerNames; + } catch (Exception ex) { + + } + + return new String[0]; + } + + /** + * Locate a player instance by the side they're playing. + * + * @param side the side used + * @return the player instance, if successful + */ + private Player getPlayerBySide(char side) { + for (var kvp : this.playerSides.entrySet()) { + if (kvp.getValue() == side) { + return kvp.getKey(); + } + } + + return null; + } + + /** + * Get token instance by character. + * + * @param side the character to compare against + * @return the instance, if successful + */ + private GameToken getToken(char side) { + GameToken token = null; + + for (GameToken t : gameTokens) { + if (t.getToken() == side) { + token = t; + break; + } + } + + return token; + } + + @Override + public int getMaximumPeopleRequired() { + return 2; + } + + @Override + public int getMinimumPeopleRequired() { + return 1; + } + + @Override + public String getGameFuseType() { + return "TicTacToe"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamehallGame.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamehallGame.java new file mode 100644 index 0000000..92fea84 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/GamehallGame.java @@ -0,0 +1,312 @@ +package org.alexdev.havana.game.games.gamehalls; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.games.triggers.GameTrigger; +import org.alexdev.havana.messages.types.MessageComposer; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; + +public abstract class GamehallGame { + private String gameId; + private List chairCoordinates; + private List players; + private int roomId; + private MessageComposer lastMessage; + + public GamehallGame(List chairCoordinateList) { + this.chairCoordinates = chairCoordinateList; + this.players = new CopyOnWriteArrayList<>(); + } + + /** + * Handler for when the game starts. + */ + public abstract void gameStart(); + + /** + * Handler for when the game stops. + */ + public abstract void gameStop(); + + /** + * Handle the incoming packet data from the game commands. + * + * @param player the player doing the command + * @param room the room the game is in + * @param item the item that the player is sitting on + * @param args the arguments + */ + public abstract void handleCommand(Player player, Room room, Item item, String command, String[] args); + + /** + * Join game handler for player + * @param player the player that join + */ + public abstract void joinGame(Player player); + + /** + * Leave game handler for player + * @param player the player that leaves + */ + public abstract void leaveGame(Player player); + + /** + * Gets the unique game ID instance for this pair. Will + * return null if game has not initialised. + * + * @return the game id + */ + public String getGameId() { + return gameId; + } + + /** + * Generate the unique game ID instance for this pair. + */ + public void createGameId() { + String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijlmnopqrstuvwyz1234567890"; + StringBuilder gameId = new StringBuilder(); + + for (int i = 0; i < 6; i++) { + gameId.append(alphabet.charAt(ThreadLocalRandom.current().nextInt(alphabet.length()))); + } + + this.gameId = gameId.toString(); + + for (Player player : this.players) { + player.getRoomUser().setCurrentGameId(this.gameId); + } + } + + /** + * Resets the game ID back to null. + */ + public void resetGameId() { + this.gameId = null; + } + + /** + * Get the room instance this game instance is running in. + * + * @return the room instance + */ + public Room getRoom() { + return RoomManager.getInstance().getRoomById(this.roomId); + } + + /** + * Get the opponents (not including the user supplied). + * + * @param player the player to exclude + * @return the list of opponents + */ + public List getOpponents(Player player) { + return this.players.stream().filter(p -> p.getDetails().getId() != player.getDetails().getId()).collect(Collectors.toList()); + } + + /** + * Send a packet to all opponents except the user supplied + * + * @param player the player to exclude + * @param messageComposer the message to send + */ + public void sendToOpponents(Player player, MessageComposer messageComposer) { + for (Player p : this.getOpponents(player)) { + p.send(messageComposer); + } + } + + /** + * Send a packet to everyone playing + * + * @param messageComposer the packet to send + */ + public void sendToEveryone(MessageComposer messageComposer) { + this.lastMessage = messageComposer; + + for (Player p : this.players) { + p.send(messageComposer); + } + } + + /** + * Get the list of players at each table, this list dictates who is actually at a table. Create your own list + * in each {@link GamehallGame} implementation for currently active players, for example look at {@link GameTicTacToe} + * @return the list of players at each table + */ + public List getPlayers() { + return this.players; + } + + /** + * Get if the server has the correct amount of players required before the game starts. + * + * @return true, if successful + */ + public boolean hasPlayersRequired() { + return this.players.size() >= this.getMinimumPeopleRequired(); + } + + /** + * Refresh players currently playing. + * + * @return the list of new players found + */ + public List refreshPlayers() { + this.players.forEach(p -> { + if (p.getRoomUser().getRoom() == null || !this.hasPosition(p.getRoomUser().getPosition())) { + this.players.remove(p); + } + }); + + List newPlayers = new ArrayList<>(); + + for (RoomTile roomTile : this.getTiles()) { + if (roomTile.getEntities().isEmpty()) { + continue; + } + + Entity entity = roomTile.getEntities().get(0); + Player player = (Player) entity; + + if (entity.getType() != EntityType.PLAYER) { + continue; + } + + if (player.getRoomUser().getCurrentGameId() != null) { + continue; + } + + if (this.players.contains(player)) { + continue; + } + + player.getRoomUser().setCurrentGameId(this.gameId); + + this.players.add(player); + newPlayers.add(player); + } + + return newPlayers; + } + + /** + * Return the room tiles for this room. + * + * @return the list of room tiles + */ + public List getTiles() { + List tiles = new ArrayList<>(); + Room room = this.getRoom(); + + if (room == null) { + return tiles; + } + + for (var coord : this.chairCoordinates) { + RoomTile roomTile = room.getMapping().getTile(coord[0], coord[1]); + + if (roomTile == null) { + continue; + } + + tiles.add(roomTile); + } + + return tiles; + } + + /** + * If this position is invalid, as in, the position is a chair to play on + * @param position the position + * @return true, if successful + */ + private boolean hasPosition(Position position) { + for (RoomTile roomTile : this.getTiles()) { + if (roomTile.getPosition().equals(position)) { + return true; + } + } + + return false; + } + + /** + * Get FUSE game type + * + * @return the game type + */ + public abstract String getGameFuseType(); + + /** + * Get the minimum people required for a game to start + * + * @return the required amount of people + */ + public abstract int getMinimumPeopleRequired(); + + /** + * Get the maximum people required before no one else is allowed to join + * + * @return the max people required + */ + public abstract int getMaximumPeopleRequired(); + + /** + * Restarts the game. + * + * @param trigger the trigger used for this game piece + * @param item the item that the user is sitting on + */ + public void restartGame(GameTrigger trigger, Item item){ + for (Player player : this.players) { + trigger.onEntityLeave(player, player.getRoomUser(), item); + } + } + + /** + * Get the room id this gamehall game is in + * @return the room id + */ + public int getRoomId() { + return roomId; + } + + /** + * Set the room id this gamehall game is in + * + * @param roomId the room id + */ + public void setRoomId(int roomId) { + this.roomId = roomId; + } + + /** + * Return the list of chair coordinates + * + * @return the list of chair coordinates + */ + public List getChairCoordinates() { + return chairCoordinates; + } + + /** + * Get the last message sent. + * + * @return the last message sent + */ + public MessageComposer getLastMessage() { + return lastMessage; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShip.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShip.java new file mode 100644 index 0000000..a4e2c5a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShip.java @@ -0,0 +1,71 @@ +package org.alexdev.havana.game.games.gamehalls.utils; + +import org.alexdev.havana.game.games.gamehalls.GameBattleShip; +import org.alexdev.havana.game.pathfinder.Position; + +public class GameShip { + private final GameBattleShip game; + private final GameShipType shipType; + private final Position position; + private final int player; + private final boolean isHorizontal; + + public GameShip(GameBattleShip game, GameShipType shipType, Position position, int player, boolean isHorizontal) { + this.game = game; + this.shipType = shipType; + this.position = position; + this.player = player; + this.isHorizontal = isHorizontal; + } + + + public final GameShipType getShipType() { + return shipType; + } + + public final Position getPosition() { + return position; + } + + public final int getPlayer() { + return player; + } + + public int getHits() { + int hits = 0; + + for (int i = 0; i < this.shipType.getLength(); i++) { + int shipX = this.position.getX() + (isHorizontal ? i : 0); + int shipY = this.position.getY() + (isHorizontal ? 0 : i); + + GameShipMove shipMove = this.game.getPlayerListMap().get(this.game.getOppositePlayerNum(this.player)).stream() + .filter(move -> + move.getX() == shipX && + move.getY() == shipY) + .findFirst().orElse(null); + + if (shipMove == null) { + continue; + } + + if (shipMove.getMoveResult() == GameShipMoveResult.HIT) { + hits++; + } + } + + return hits; + } + + public boolean isHitTwice() { + int hits = this.getHits(); + return hits >= 2 && hits != this.shipType.getLength(); + } + + public boolean isDestroyed() { + return this.getHits() == this.shipType.getLength(); + } + + public boolean isHorizontal() { + return isHorizontal; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMove.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMove.java new file mode 100644 index 0000000..fb27f40 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMove.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.games.gamehalls.utils; + +import org.alexdev.havana.game.player.Player; + +public class GameShipMove { + private Player player; + private int x; + private int y; + private GameShipMoveResult moveResult; + private GameShip ship; + + public GameShipMove(Player player, int x, int y, GameShipMoveResult moveResult, GameShip ship) { + this.player = player; + this.x = x; + this.y = y; + this.moveResult = moveResult; + this.ship = ship; + } + + public Player getPlayer() { + return player; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public GameShipMoveResult getMoveResult() { + return moveResult; + } + + public GameShip getShip() { + return ship; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMoveResult.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMoveResult.java new file mode 100644 index 0000000..11f2328 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipMoveResult.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.game.games.gamehalls.utils; + +public enum GameShipMoveResult { + HIT("X"), + MISS("O"), + SINK("S"); + + private final String symbol; + + GameShipMoveResult(String symbol) { + this.symbol = symbol; + } + + public String getSymbol() { + return symbol; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipType.java new file mode 100644 index 0000000..09a3546 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameShipType.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.game.games.gamehalls.utils; + +public enum GameShipType { + AIRCRAFT_CARRIER(5, 1, 5), + BATTLESHIP(4, 2, 4), + CRUISER(3, 3, 3), + DESTROYER(2, 4, 2); + + private final int id; + private final int maxAllowed; + private final int length; + + GameShipType(int id, int maxAllowed, int length) { + this.id = id; + this.maxAllowed = maxAllowed; + this.length = length; + } + + public static GameShipType getById(int id) { + for (GameShipType shipType : values()) { + if (shipType.getId() == id) { + return shipType; + } + } + + return null; + } + + public int getMaxAllowed() { + return maxAllowed; + } + + public int getId() { + return id; + } + + public int getLength() { + return length; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameToken.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameToken.java new file mode 100644 index 0000000..e3eea2d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/gamehalls/utils/GameToken.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.games.gamehalls.utils; + +public class GameToken { + private char token; + private char winningToken; + private int moves; + + public GameToken(char token, char winningToken) { + this.token = token; + this.winningToken = winningToken; + this.moves = 0; + } + + public char getToken() { + return token; + } + + public char getWinningToken() { + return winningToken; + } + + public int getMoves() { + return moves; + } + + public void incrementMoves() { + this.moves = this.moves + 1; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistory.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistory.java new file mode 100644 index 0000000..b1a4b5a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistory.java @@ -0,0 +1,131 @@ +package org.alexdev.havana.game.games.history; + +import org.alexdev.havana.game.games.enums.GameType; + +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class GameHistory { + private int id; + private String name; + private String gameCreator; + private int mapId; + private int winningTeam; + private int winningTeamScore; + private String extraData; + private GameType gameType; + + private GameHistoryData gameHistoryData; + + public GameHistory(GameHistoryData gameHistoryData) { + this.gameHistoryData = gameHistoryData; + } + + public GameHistoryData getHistoryData() { + return gameHistoryData; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getGameCreator() { + return gameCreator; + } + + public void setGameCreator(String gameCreator) { + this.gameCreator = gameCreator; + } + + public int getMapId() { + return mapId; + } + + public void setMapId(int mapId) { + this.mapId = mapId; + } + + public GameType getGameType() { + return gameType; + } + + public void setGameType(GameType gameType) { + this.gameType = gameType; + } + + public GameHistoryData getGameHistoryData() { + return gameHistoryData; + } + + public void setGameHistoryData(GameHistoryData gameHistoryData) { + this.gameHistoryData = gameHistoryData; + } + + public int getWinningTeam() { + return winningTeam; + } + + public void setWinningTeam(int winningTeam) { + this.winningTeam = winningTeam; + } + + public int getWinningTeamScore() { + return winningTeamScore; + } + + public void setWinningTeamScore(int winningTeamScore) { + this.winningTeamScore = winningTeamScore; + } + + public String getExtraData() { + return extraData; + } + + public void setExtraData(String extraData) { + this.extraData = extraData; + } + + public List getAllowedPowerUps() { + if (this.extraData.length() > 0) { + return Stream.of(this.extraData.split(",")) + .map(Integer::parseInt) + .collect(Collectors.toList()); + } + + return List.of(); + } + + public Integer getGameLength() { + if (this.gameType == GameType.SNOWSTORM) { + var gameLengthChoice = Integer.parseInt(this.extraData); + + if (gameLengthChoice == 1) { + return (int) TimeUnit.MINUTES.toSeconds(2); + } + + if (gameLengthChoice == 2) { + return (int) TimeUnit.MINUTES.toSeconds(3); + } + + if (gameLengthChoice == 3) { + return (int) TimeUnit.MINUTES.toSeconds(5); + } + } + + return 0; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryData.java new file mode 100644 index 0000000..3724cbd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryData.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.game.games.history; + +import org.alexdev.havana.game.games.enums.GameType; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class GameHistoryData { + private int teamCount; + private List players; + + public GameHistoryData() { + this.players = new ArrayList<>(); + } + + public void addPlayer(int userId, int points, int teamId) { + this.players.add(new GameHistoryPlayer(points, teamId, userId)); + } + + public int getTeamCount() { + return teamCount; + } + + public void setTeamCount(int teamCount) { + this.teamCount = teamCount; + } + + public Map> getTeamData() { + var teamHistory = new HashMap>(); + + for (int i = 0; i < this.teamCount; i++) { + var teamId = i; + teamHistory.put(i, this.players.stream().filter(player -> player.getTeamId() == teamId).collect(Collectors.toList())); + } + + return teamHistory; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryPlayer.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryPlayer.java new file mode 100644 index 0000000..697d530 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/GameHistoryPlayer.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.games.history; + +import org.alexdev.havana.dao.mysql.GameDao; +import org.alexdev.havana.dao.mysql.PlayerDao; + +public class GameHistoryPlayer { + private int score; + private int teamId; + private int userId; + private String username; + + public GameHistoryPlayer(int score, int teamId, int userId) { + this.score = score; + this.teamId = teamId; + this.userId = userId; + } + + public int getScore() { + return score; + } + + public int getTeamId() { + return teamId; + } + + public int getUserId() { + return userId; + } + + public String getName() { + if (this.username == null) { + this.username = PlayerDao.getName(this.userId); + } + + return username; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/ScoreEntry.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/ScoreEntry.java new file mode 100644 index 0000000..6277af0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/history/ScoreEntry.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.games.history; + +public class ScoreEntry { + private String playerName; + private long score; + private int position; + + public ScoreEntry(String playerName, long score, int position) { + this.playerName = playerName; + this.score = score; + this.position = position; + } + + public String getPlayerName() { + return playerName; + } + + public long getScore() { + return score; + } + + public int getPosition() { + return position; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GamePlayer.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GamePlayer.java new file mode 100644 index 0000000..2d94fa0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GamePlayer.java @@ -0,0 +1,360 @@ +package org.alexdev.havana.game.games.player; + +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.utils.ScoreReference; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormAttributes; + +public class GamePlayer { + private Player player; + private GameObject gameObject; + private int userId; + private int objectId; + private int gameId; + private int teamId; + private Position position; + private boolean enteringGame; + private boolean isSpectator; + private boolean inGame; + private boolean clickedRestart; + private BattleBallPlayerState playerState; + private GamePlayer harlequinPlayer; + + private boolean assignedSpawn; + private int score; + private int xp; + + private SnowStormAttributes snowStormAttributes; + + public GamePlayer(Player player) { + this.player = player; + this.userId = player.getDetails().getId(); + this.teamId = -1; + this.gameId = -1; + this.objectId = -1; + this.harlequinPlayer = null; + this.enteringGame = false; + this.clickedRestart = false; + this.position = new Position(); + this.score = 0; + this.xp = 0; + this.snowStormAttributes = new SnowStormAttributes(); + } + + /** + * Set the score. + * + * @param score the score + */ + public void setScore(int score) { + this.score = score; + } + + /** + * Get the score of the current player, the team score is generated by adding all scores from all players + * + * @return the score + */ + public int getScore() { + if (!this.inGame) { + return 0; + } + + if (this.getGame() instanceof BattleBallGame) { + this.score = 0; + BattleBallGame battleBallGame = (BattleBallGame) this.getGame(); + + for (BattleBallTile battleBallTile : battleBallGame.getTiles()) { + for (ScoreReference scoreReference : battleBallTile.getPointsReferece()) { + if (scoreReference.getBy() != this.userId) { + continue; + } + + this.score += scoreReference.getScore(); + } + } + } + + return this.score; + } + + /** + * Get the xp of the current player + * + * @return the score + */ + public int getXp() { + return xp; + } + /** + * Sets the xp for the player, does NOT allow negative numbers + * + * @param xp the xp to set + */ + public void setXp(int xp) { + this.xp = xp; + if (this.xp < 0) { + this.xp = 0; + } + } + + + /** + * Get the game the game player is currently playing in + * + * @return the game instance + */ + public Game getGame() { + return GameManager.getInstance().getGameById(this.getGameId()); + } + + /** + * Get the player being held in this game player instance + * + * @return the game player + */ + public Player getPlayer() { + return player; + } + + /** + * Get the user id of the game player + * + * @return the user id of the game player + */ + public int getUserId() { + return userId; + } + + /** + * Get the current team the user is on, this will take the Harlequin power up into account so + * use {@getTeamId()} for their actual team id. + * + * @return the team instance + */ + public GameTeam getTeam() { + int teamId = this.harlequinPlayer != null ? this.harlequinPlayer.getTeamId() : this.getTeamId(); + return this.getGame().getTeams().get(teamId); + } + + /** + * Get the team id that the player is currently in + * + * @return the team id + */ + public int getTeamId() { + return teamId; + } + + /** + * Set the team id the user is currently in + * + * @param teamId the team id + */ + public void setTeamId(int teamId) { + this.teamId = teamId; + } + + /** + * Set the spawn position of the player, used for when the game starts and restarts + * + * @return the spawn position + */ + public Position getSpawnPosition() { + return position; + } + + /** + * Get the current game id that the gamer player is in, -1 for no game + * + * @return the game id + */ + public int getGameId() { + return gameId; + } + + /** + * Set the game id the user is currently in + * + * @param gameId the game id + */ + public void setGameId(int gameId) { + this.gameId = gameId; + } + + /** + * Get if the user is entering the game, used for disabling walking on room entry + * + * @return true, if successful + */ + public boolean isEnteringGame() { + return enteringGame; + } + + /** + * Set whether not the users are entering a game + * + * @param enteringGame whether not they're entering the game + */ + public void setEnteringGame(boolean enteringGame) { + this.enteringGame = enteringGame; + } + + /** + * Get whether the user is in game or not + * + * @return true, if successful + */ + public boolean isInGame() { + return inGame; + } + + /** + * Set whether they're in game or not + * + * @param inGame the flag to set + */ + public void setInGame(boolean inGame) { + this.inGame = inGame; + } + + /** + * Get if the user has clicked restart when the game has ended + * + * @return true, if successful + */ + public boolean isClickedRestart() { + return clickedRestart; + } + + /** + * Set whether not the gamer player clicked restart when the game ended + * + * @param clickedRestart the flag whether or not they clicked restart + */ + public void setClickedRestart(boolean clickedRestart) { + this.clickedRestart = clickedRestart; + } + + /** + * Get the opponent object id that the user is colouring for + * + * @return the opponent id, -1 for none + */ + public int getColouringForOpponentId() { + return harlequinPlayer != null ? harlequinPlayer.getObjectId() : -1; + } + + /** + * Get the player that acticated the harlequin up + * + * @return the player who activated the power up + */ + public GamePlayer getHarlequinPlayer() { + return harlequinPlayer; + } + + /** + * Set the player who activated the harlequin power up + * + * @param harlequinPlayer the game player + */ + public void setHarlequinPlayer(GamePlayer harlequinPlayer) { + this.harlequinPlayer = harlequinPlayer; + } + + /** + * Get if the user is spectating the match + * + * @return true, if successful + */ + public boolean isSpectator() { + return isSpectator; + } + + /** + * Set whether or not the user is spectating the match or not + * + * @param spectator whether or not they're spectating + */ + public void setSpectator(boolean spectator) { + isSpectator = spectator; + } + + /** + * Get the current state the player is in, the default being NORMAL. + * + * @return the player state + */ + public BattleBallPlayerState getPlayerState() { + return playerState; + } + + /** + * Set the current state the player is in + * + * @param playerState the player state + */ + public void setPlayerState(BattleBallPlayerState playerState) { + this.playerState = playerState; + } + + /** + * Get the game object attached to this player + * + * @return the game object + */ + public GameObject getGameObject() { + return gameObject; + } + + /** + * Set the game object attached to this player + * + * @param gameObject the game object + */ + public void setGameObject(GameObject gameObject) { + this.gameObject = gameObject; + } + + /** + * Get the object id attached to this player + * + * @return the object id + */ + public int getObjectId() { + return objectId; + } + + /** + * Set the object id attached to this player + * + * @param objectId the object id + */ + public void setObjectId(int objectId) { + this.objectId = objectId; + } + + /** + * Get the class for snowstorm attributes. + * + * @return the instance + */ + public SnowStormAttributes getSnowStormAttributes() { + return snowStormAttributes; + } + + public boolean isAssignedSpawn() { + return assignedSpawn; + } + + public void setAssignedSpawn(boolean assignedSpawn) { + this.assignedSpawn = assignedSpawn; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameRank.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameRank.java new file mode 100644 index 0000000..985a93a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameRank.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.game.games.player; + +import org.alexdev.havana.game.games.enums.GameType; + +public class GameRank { + private final int id; + private final GameType type; + private final String title; + private final int minPoints; + private final int maxPoints; + + public GameRank(int id, String type, String title, int minPoints, int maxPoints) { + this.id = id; + this.type = GameType.valueOf(type.toUpperCase()); + this.title = title; + this.minPoints = minPoints; + this.maxPoints = maxPoints; + } + + /** + * Get the game rank ID + * + * @return the game rank ID + */ + public int getId() { + return id; + } + + /** + * Get the game type for this rank + * + * @return the game type + */ + public GameType getType() { + return type; + } + + /** + * Get the rank title + * + * @return the rank title of this game + */ + public String getTitle() { + return title; + } + + /** + * Get the minimum amount of points required for this game + * + * @return the minimum points + */ + public int getMinPoints() { + return minPoints; + } + + /** + * Get the maximum amount of points required for this game + * + * @return the maximum amount of points + */ + public int getMaxPoints() { + return maxPoints; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameTeam.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameTeam.java new file mode 100644 index 0000000..f80e81b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/player/GameTeam.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.game.games.player; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.utils.ScoreReference; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; + +public class GameTeam { + private int id; + private Game game; + private List playerList; + private int score; + + public GameTeam(int id, Game game) { + this.id = id; + this.game = game; + this.playerList = new CopyOnWriteArrayList<>(); + this.score = 0; + } + + public int getId() { + return id; + } + + public List getPlayers() { + return playerList; + } + + public int getScore() { + if (this.game instanceof BattleBallGame) { + this.score = 0; + + BattleBallGame battleBallGame = (BattleBallGame) this.game; + + for (BattleBallTile battleBallTile : battleBallGame.getTiles()) { + for (ScoreReference scoreReference : battleBallTile.getPointsReferece()) { + if (scoreReference.getGameTeam().getId() != this.id) { + continue; + } + + this.score += scoreReference.getScore(); + } + } + } + + return this.score; + } + + public void setScore(int score) { + this.score = score; + } + + public List getActivePlayers() { + return playerList.stream().filter(GamePlayer::isInGame).collect(Collectors.toList()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormGame.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormGame.java new file mode 100644 index 0000000..bdc300c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormGame.java @@ -0,0 +1,332 @@ +package org.alexdev.havana.game.games.snowstorm; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.GameTile; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormDeleteObjectEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormHitEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormStunEvent; +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormMap; +import org.alexdev.havana.game.games.snowstorm.objects.SnowStormAvatarObject; +import org.alexdev.havana.game.games.snowstorm.objects.SnowStormMachineObject; +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; +import org.alexdev.havana.game.games.snowstorm.tasks.SnowStormGameTask; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormActivityState; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormSpawn; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class SnowStormGame extends Game { + public static final int MAX_QUICK_THROW_DISTANCE = 22; + private int gameLengthChoice; + private List executingEvents; + private long gameStarted; + + public SnowStormGame(int id, int mapId, String name, int teamAmount, Player gameCreator, int gameLengthChoice, boolean privateGame) { + super(id, mapId, GameType.SNOWSTORM, name, teamAmount, gameCreator); + this.gameLengthChoice = gameLengthChoice; + this.executingEvents = new CopyOnWriteArrayList<>(); + } + + @Override + public boolean hasEnoughPlayers() { + if (this.getTeamAmount() == 1) { + return this.getActivePlayers().size() > 0; + } else { + int activeTeamCount = 0; + + for (int i = 0; i < this.getTeamAmount(); i++) { + if (this.getTeams().get(i).getActivePlayers().size() > 0) { + activeTeamCount++; + } + } + + return activeTeamCount > 0; + } + } + + @Override + public void initialise() { + var model = new RoomModel("snowwar_arena_0", "snowwar_arena_0", 0, 0, 0, 0, + SnowStormMapsManager.getInstance().getHeightMap(this.getMapId()), null); + + int seconds = 0; + + if (this.gameLengthChoice == 1) { + seconds = (int) TimeUnit.MINUTES.toSeconds(2); + } + + if (this.gameLengthChoice == 2) { + seconds = (int) TimeUnit.MINUTES.toSeconds(3); + } + + if (this.gameLengthChoice == 3) { + seconds = (int) TimeUnit.MINUTES.toSeconds(5); + } + + if (GameManager.getInstance().getLifetimeSeconds(this.getGameType()) > 0) { + seconds = GameManager.getInstance().getLifetimeSeconds(this.getGameType()); + } + + super.initialise(seconds, "SnowStorm Arena", model); + this.gameStarted = DateUtil.getCurrentTimeSeconds(); + + for (var snowballItem : this.getMap().getItems()) { + if (snowballItem.isSnowballMachine()) { + this.getObjects().add(new SnowStormMachineObject(this.createObjectId(), snowballItem.getX(), snowballItem.getY(), 0)); + } + } + //this.getTotalSecondsLeft().set(seconds); // Override with game length choice + } + + @Override + public void gamePrepare() { + super.gamePrepare(); + + int ticketCharge = GameConfiguration.getInstance().getInteger("snowstorm.ticket.charge"); + + if (ticketCharge > 0) { + for (GamePlayer gamePlayer : this.getActivePlayers()) { + CurrencyDao.decreaseTickets(gamePlayer.getPlayer().getDetails(), 2); // BattleBall costs 2 tickets + } + } + } + + @Override + public void finishGame() { + for (GamePlayer p : this.getActivePlayers()) { + p.setScore(p.getSnowStormAttributes().getScore().get()); + } + + for (GameTeam team : this.getTeams().values()) { + team.setScore(team.getPlayers().stream().mapToInt(GamePlayer::getScore).sum()); + } + + super.finishGame(); + } + + @Override + public void assignSpawnPoints() { + this.getRoom().getMapping().regenerateCollisionMap(); + + for (GameTeam team : this.getTeams().values()) { + for (GamePlayer p : team.getPlayers()) { + p.setAssignedSpawn(false); + } + } + + for (GameTeam team : this.getTeams().values()) { + for (GamePlayer p : team.getPlayers()) { + generateSpawn(p); + p.getSnowStormAttributes().setRotation(ThreadLocalRandom.current().nextInt(0, 7)); + //p.getPlayer().getBadgeManager().tryAddBadge("SS_BETA", null); + p.getSnowStormAttributes().setActivityState(SnowStormActivityState.ACTIVITY_STATE_NORMAL); + + p.getSnowStormAttributes().setWalking(false); + p.getSnowStormAttributes().setCurrentPosition(p.getSpawnPosition().copy()); + p.getSnowStormAttributes().setWalkGoal(null); + p.getSnowStormAttributes().setNextGoal(null); + + p.getSnowStormAttributes().setImmunityExpiry(0); + p.getSnowStormAttributes().getScore().set(0); + p.getSnowStormAttributes().getSnowballs().set(5); + p.getSnowStormAttributes().getHealth().set(4); + p.getSnowStormAttributes().setGoalWorldCoordinates(null); + + p.setObjectId(this.createObjectId()); + p.setScore(0); + + p.setGameObject(new SnowStormAvatarObject(p)); + this.getObjects().add(p.getGameObject()); + + } + } + } + + private void generateSpawn(GamePlayer p) { + if (this.getMap().getSpawnClusters().length == 0) { + p.getSpawnPosition().setX(15); + p.getSpawnPosition().setY(18); + p.setAssignedSpawn(true); + return; + } + + try { + SnowStormSpawn spawn = this.getMap().getSpawnClusters()[ThreadLocalRandom.current().nextInt(this.getMap().getSpawnClusters().length)]; + + List potentialPositions = spawn.getPosition().getCircle(spawn.getRadius()); + Collections.shuffle(potentialPositions); + + Position candidate = potentialPositions.get(ThreadLocalRandom.current().nextInt(0, potentialPositions.size() - 1)); + + for (GamePlayer gamePlayer : this.getActivePlayers()) { + if (!gamePlayer.isAssignedSpawn()) { + continue; + } + + int distance = gamePlayer.getSpawnPosition().getDistanceSquared(candidate); + + if (distance < spawn.getMinDistance()) { + generateSpawn(p); + return; + } + } + + if (this.getMap().getTile(candidate) == null || !this.getMap().getTile(candidate).isWalkable()) { + generateSpawn(p); + return; + } + + p.getSpawnPosition().setX(candidate.getX()); + p.getSpawnPosition().setY(candidate.getY()); + p.setAssignedSpawn(true); + } catch (Exception ex) { + Log.getErrorLogger().error("Exception when assigning spawn point on map {}:", this.getMapId(), ex); + + p.getSpawnPosition().setX(15); + p.getSpawnPosition().setY(18); + p.setAssignedSpawn(true); + } + } + + public int getGameLength() { + if (this.getGameState() == GameState.WAITING || this.getGameState() == GameState.ENDED) { + if (this.gameLengthChoice == 1) { + return (int) TimeUnit.MINUTES.toSeconds(2); + } + + if (this.gameLengthChoice == 2) { + return (int) TimeUnit.MINUTES.toSeconds(3); + } + + if (this.gameLengthChoice == 3) { + return (int) TimeUnit.MINUTES.toSeconds(5); + } + } + + return this.getTotalSecondsLeft().get(); + } + + public static int convertToGameCoordinate(int num) { + int pAccuracyFactor = 100; + int pTileSize = 32; + int tMultiplier = pTileSize * pAccuracyFactor; + + return num / tMultiplier; + } + + public static int convertToWorldCoordinate(int num) { + int pAccuracyFactor = 100; + int pTileSize = 32; + int tMultiplier = pTileSize * pAccuracyFactor; + + return num * tMultiplier; + } + + public boolean isOppositionPlayer(GamePlayer gamePlayer, GamePlayer player) { + if (gamePlayer.getPlayer().getDetails().getId() == player.getPlayer().getDetails().getId()) { + return false; + } + + if (this.getTeamAmount() == 1) { + return true; + } + + return gamePlayer.getTeamId() != player.getTeamId(); + } + + public void handleSnowballLanding(SnowballObject snowball, boolean deleteAfterHit) { + var lastTilePosition = new Position(snowball.getTargetX(), snowball.getTargetY()); + var tile = this.getMap().getTile(lastTilePosition); + + if (tile == null) { + return; + } + + var player = this.getActivePlayers().stream().filter(p -> + this.isOppositionPlayer(p, snowball.getThrower()) && + (p.getSnowStormAttributes().getCurrentPosition().equals(lastTilePosition) || + (p.getSnowStormAttributes().getNextGoal() != null && p.getSnowStormAttributes().getNextGoal().equals(lastTilePosition))) && + p.getSnowStormAttributes().isDamageable()) + .findFirst().orElse(null); + + if (player != null && player.getSnowStormAttributes().getHealth().get() > 0) { + snowball.getThrower().getSnowStormAttributes().getScore().incrementAndGet(); + + this.getUpdateTask().sendQueue(0, 1, new SnowStormHitEvent(snowball.getThrower().getObjectId(), player.getObjectId(), + Rotation.calculateWalkDirection(snowball.getFromX(), snowball.getFromY(), lastTilePosition.getX(), lastTilePosition.getY()))); + + if (deleteAfterHit) { + this.getUpdateTask().sendQueue(0, 1, new SnowStormDeleteObjectEvent(snowball.getObjectId())); + } + + //System.out.println("Player " + gamePlayer.getPlayer().getDetails().getName() + " hits " + player.getPlayer().getDetails().getName()); + + if (player.getSnowStormAttributes().getHealth().decrementAndGet() == 0) { + stunPlayerHandler(this, snowball.getThrower(), player, lastTilePosition, snowball); + } + } else { + if (snowball.isBlocked()) { + this.getUpdateTask().sendQueue(0, 1, new SnowStormDeleteObjectEvent(snowball.getObjectId())); + } + } + } + + public static void stunPlayerHandler(SnowStormGame game, GamePlayer thrower, GamePlayer player, Position landedPosition, SnowballObject snowball) { + game.getUpdateTask().sendQueue(0, 1, new SnowStormStunEvent(player.getObjectId(), thrower.getObjectId(), + 45 * Rotation.calculateWalkDirection(snowball.getFromX(), snowball.getFromY(), landedPosition.getX(), landedPosition.getY()))); + //System.out.println("Player " + thrower.getPlayer().getDetails().getName() + " hits " + player.getPlayer().getDetails().getName()); + + thrower.getSnowStormAttributes().getScore().addAndGet(5); + player.getSnowStormAttributes().getSnowballs().set(0); + player.getSnowStormAttributes().getHealth().set(4); + + player.getSnowStormAttributes().setActivityState(SnowStormActivityState.ACTIVITY_STATE_STUNNED, () -> { + player.getSnowStormAttributes().setActivityState(SnowStormActivityState.ACTIVITY_STATE_INVINCIBLE_AFTER_STUN); + player.getSnowStormAttributes().setImmunityExpiry(System.currentTimeMillis() + SnowStormActivityState.ACTIVITY_STATE_INVINCIBLE_AFTER_STUN.getTimeInMS()); + }); + } + + public SnowStormGameTask getUpdateTask() { + return (SnowStormGameTask) this.getRoom().getTaskManager().getTask("UpdateTask"); + } + + @Override + public void gameTick() { } + + @Override + public boolean canTimerContinue() { return true; } + + @Override + public GameTile[][] getTileMap() { + return new GameTile[0][]; + } + + @Override + public void buildMap() { } + + public SnowStormMap getMap() { + return SnowStormMapsManager.getInstance().getMap(this.getMapId()); + } + + public int getGameLengthChoice() { + return gameLengthChoice; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormMapsManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormMapsManager.java new file mode 100644 index 0000000..47f2451 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormMapsManager.java @@ -0,0 +1,208 @@ +package org.alexdev.havana.game.games.snowstorm; + +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormItem; +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormMap; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormSpawn; +import org.alexdev.havana.log.Log; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Pattern; + +public class SnowStormMapsManager { + private static SnowStormMapsManager instance; + private Map snowStormMapMaps; + + public SnowStormMapsManager() { + this.snowStormMapMaps = new HashMap<>(); + + for (int i = 1; i <= 7; i++) { + parseMap(i); + } + } + + private void parseMap(int mapId) { + var filePath = Path.of("tools", "snowstorm_maps", "arena_" + mapId + ".dat"); + + if (!filePath.toFile().exists()) { + return; + } + + try { + var mapData = Files.readString(filePath); + var itemList = new ArrayList(); + + for (var itemLine : mapData.split(Character.toString(13))) { + var itemData = itemLine.split(" "); + + var item = new SnowStormItem( + itemData[0], + itemData[1], + Integer.parseInt(itemData[2]), + Integer.parseInt(itemData[3]), + Integer.parseInt(itemData[4]), + Integer.parseInt(itemData[5]), + getItemHeight(itemData[1]) + ); + + itemList.add(item); + } + + var snowmachineDataPath = Path.of("tools", "snowstorm_maps", "arena_" + mapId + "_snowmachines.dat"); + + if (snowmachineDataPath.toFile().exists()) { + var snowmachineFileContents = Files.readString(snowmachineDataPath); + + for (var snowmachineData : snowmachineFileContents.split(Character.toString(13))) { + var itemData = snowmachineData.split(" "); + + var item = new SnowStormItem("", "snowball_machine", Integer.parseInt(itemData[0]), Integer.parseInt(itemData[1]), 0, 0, 1); + itemList.add(item); + + item = new SnowStormItem("", "snowball_machine_hidden", Integer.parseInt(itemData[0]) + 1, Integer.parseInt(itemData[1]), 0, 0, 1); + itemList.add(item); + + item = new SnowStormItem("", "snowball_machine_hidden", Integer.parseInt(itemData[0]) + 2, Integer.parseInt(itemData[1]), 0, 0, 1); + itemList.add(item); + } + } + + var spawnClusters = new ArrayList(); + var spawnClusterPath = Path.of("tools", "snowstorm_maps", "arena_" + mapId + "_spawn_clusters.dat"); + + if (spawnClusterPath.toFile().exists()) { + for (String spawnClusterData : Files.readString(spawnClusterPath).split(Pattern.quote("|"))) {//Character.toString(13))) { + var spawnData = spawnClusterData.split(" "); + + var x = Integer.parseInt(spawnData[0]); + var y = Integer.parseInt(spawnData[1]); + var radius = Integer.parseInt(spawnData[2]); + var minDistance = Integer.parseInt(spawnData[3]); + + spawnClusters.add(new SnowStormSpawn(x, y, radius, minDistance)); + } + } + + this.snowStormMapMaps.put(mapId, new SnowStormMap(mapId, mapData, itemList, getHeightMap(mapId), spawnClusters)); + } catch (IOException ex) { + Log.getErrorLogger().error("Error when parsing map " + mapId + ": ", ex); + } + } + + private int getItemHeight(String spriteName) { + switch (spriteName){ + case "sw_tree1": + case "sw_tree2": + case "sw_tree3": + case "sw_tree4": + case "block_basic3": + case "obst_snowman": + case "block_arch1": + case "block_arch3": + case "block_arch1b": + case "block_arch3b": + return 3; + case "block_basic2": + case "block_ice2": + return 2; + case "block_basic": + //case "block_small": + case "obst_duck": + case "sw_fence": + case "block_ice": + return 1; + } + + return 0; + } + + public static SnowStormMapsManager getInstance() { + if (instance == null) { + instance = new SnowStormMapsManager(); + } + + return instance; + } + + public static void reset() { + instance = null; + getInstance(); + } + + public String getHeightMap(int mapId) { + if (mapId == 1) { + return "xxxxxxxxxxxxxxxxxxx00000xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx000000000xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx000000000000000xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx00000000000000000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxx0000000000000000000xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx000000000000000000000xxxxxxxxxxxxxxxxxx|xxxxxxxxxx00000000000000000000000xxxxxxxxxxxxxxxxx|xxxxxxxxx0000000000000000000000000xxxxxxxxxxxxxxxx|xxxxxxxx000000000000000000000000000xxxxxxxxxxxxxxx|xxxxxxx00000000000000000000000000000xxxxxxxxxxxxxx|xxxxxx0000000000000000000000000000000xxxxxxxxxxxxx|xxxxx000000000000000000000000000000000xxxxxxxxxxxx|xxxx00000000000000000000000000000000000xxxxxxxxxxx|xxx0000000000000000000000000000000000000xxxxxxxxxx|xx000000000000000000000000000000000000000xxxxxxxxx|x00000000000000000000000000000000000000000xxxxxxxx|00000000000000000000xxxx0xxxxxx000000000000xxxxxxx|00000000000000000000xxxx0xxxxxxx000000000000xxxxxx|00000000000000000000xxxx0xxxxxxx0000000000000xxxxx|00000000000000000000xxx000000xxx00000000000000xxxx|x0000000000000000000xxx000000xxx000000000000000xxx|xx000000000000000000xxx0000000000000000000000000xx|xxx00000000000000000xxx000000xxx00000000000000000x|xxxx0000000000000000000000000xxx000000000000000000|xxxxx000000000000000xxx000000xxx000000000000000000|xxxxxx00000000000000xxxxxxx0xxxx000000000000000000|xxxxxxx0000000000000xxxxxxx0xxxx000000000000000000|xxxxxxxx0000000000000xxxxxx0xxx0000000000000000000|xxxxxxxxx00000000000000000000000000000000000000000|xxxxxxxxxx000000000000000000000000000000000000000x|xxxxxxxxxxx0000000000000000000000000000000000000xx|xxxxxxxxxxxx00000000000000000000000000000000000xxx|xxxxxxxxxxxxx000000000000000000000000000000000xxxx|xxxxxxxxxxxxxx0000000000000000000000000000000xxxxx|xxxxxxxxxxxxxxx00000000000000000000000000000xxxxxx|xxxxxxxxxxxxxxxx000000000000000000000000000xxxxxxx|xxxxxxxxxxxxxxxxx0000000000000000000000000xxxxxxxx|xxxxxxxxxxxxxxxxxx00000000000000000000000xxxxxxxxx|xxxxxxxxxxxxxxxxxxx000000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx0000000000000000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx000000000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx00000xxxxxxxxxxxxxxxxxx|"; + } + + if (mapId == 2) { + return "xxxxxxxxxxxxxxxxxxx00000xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx000000000xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx000000000000000xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx00000000000000000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxx0000000000000000000xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx000000000000000000000xxxxxxxxxxxxxxxxxx|xxxxxxxxxx00000000000000000000000xxxxxxxxxxxxxxxxx|xxxxxxxxx0000000000000000000000000xxxxxxxxxxxxxxxx|xxxxxxxx000000000000000000000000000xxxxxxxxxxxxxxx|xxxxxxx00000000000000000000000000000xxxxxxxxxxxxxx|xxxxxx0000000000000000000000000000000xxxxxxxxxxxxx|xxxxx000000000000000000000000000000000xxxxxxxxxxxx|xxxx00000000000000000000000000000000000xxxxxxxxxxx|xxx0000000000000000000000000000000000000xxxxxxxxxx|xx000000000000000000000000000000000000000xxxxxxxxx|x00000000000000000000000000000000000000000xxxxxxxx|0000000000000000000000000000000000000000000xxxxxxx|0000000000000000000xxxxxxxxxx0xxxxxx00000000xxxxxx|0000000000000000000xxxxxxxxxx0xxxxxxx00000000xxxxx|0000000000000000000xxxxxxxxxx0xxxxxxx000000000xxxx|x000000000000000000xxx000000000000xxx0000000000xxx|xx00000000000000000xxx000000000000xxx00000000000xx|xxx0000000000000000xxx000000000000xxx000000000000x|xxxx000000000000000xxx000000000000xxx0000000000000|xxxxx00000000000000000000000000000xxx0000000000000|xxxxxx0000000000000xxx000000000000xxxx000000000000|xxxxxxx000000000000xxx000000000000xxxxxxxxxx0xxxxx|xxxxxxxx00000000000xxx000000000000xxxxxxxxxx0xxxxx|xxxxxxxxx0000000000xxx0000000000000xxxxxxxxx0xxxxx|xxxxxxxxxx000000000xxxxxxxx0000000000000000000000x|xxxxxxxxxxx00000000xxxxxxxxx00000000000000000000xx|xxxxxxxxxxxx00000000xxxxxxxx0000000000000000000xxx|xxxxxxxxxxxxx000000000000xxx000000000000000000xxxx|xxxxxxxxxxxxxx00000000000xxx00000000000000000xxxxx|xxxxxxxxxxxxxxx0000000000xxx0000000000000000xxxxxx|xxxxxxxxxxxxxxxx000000000xxx000000000000000xxxxxxx|xxxxxxxxxxxxxxxxx00000000xxx00000000000000xxxxxxxx|xxxxxxxxxxxxxxxxxx0000000xxx0000000000000xxxxxxxxx|xxxxxxxxxxxxxxxxxxx000000xxx000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx00000xxx00000000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx0000xxx0000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000xxx000000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxx00xxx00000000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx0xxx0000000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx000000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx00000xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxxxxxx|"; + } + + if (mapId == 3) { + return "xxxxxxxxxxxxxxxxxxx00000xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx000000000xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx000000000000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxx00000000000000xxxx0xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx0000000000000000xxx00xxxxxxxxxxxxxxxxxx|xxxxxxxxxx00000000000000000xxx0000xxxxxxxxxxxxxxxx|xxxxxxxxx000000000000000000xxx00000xxxxxxxxxxxxxxx|xxxxxxxx0000000000000000000xxx00000xxxxxxxxxxxxxxx|xxxxxxx00000000000000000000xxx000000xxxxxxxxxxxxxx|xxxxxx000000000000000000000xxx0000000xxxxxxxxxxxxx|xxxxx0000000000000000000000xxx00000000xxxxxxxxxxxx|xxxx00000000000000000000000xxx000000000xxxxxxxxxxx|xxx000000000000000000000000xxx0000000000xxxxxxxxxx|xx0000000000000000000000000xxx00000000000xxxxxxxxx|x00000000000000000000000000xxx000000000000xxxxxxxx|000000000000000000000000000xxx0000000000000xxxxxxx|000000000000000000000000000xxx00000000000000xxxxxx|000000000000000000000000000xxx000000000000000xxxxx|0000000000000000000000000000000000000000000000xxxx|x0000000000000000000000000000000000000000000000xxx|xx00000000000000000000000000x0000000000000000000xx|xxx000000000000000000000000xxx0000000000000000000x|xxxx00000000000000000000000x0000000000000000000000|xxxxx000000000000000000000000000000000000000000000|xxxxxx00000000000000000000000000000000000000000000|xxxxxxx00000000000000000000xxx00000000000000000000|xxxxxxxx0000000000000000000xxx00000000000000000000|xxxxxxxxx000000000000000000xxx00000000000000000000|xxxxxxxxxx00000000000000000xxx0000000000000000000x|xxxxxxxxxxx0000000000000000xxx000000000000000000xx|xxxxxxxxxxxx000000000000000xxx00000000000000000xxx|xxxxxxxxxxxxx00000000000000xxx0000000000000000xxxx|xxxxxxxxxxxxxx0000000000000xxx000000000000000xxxxx|xxxxxxxxxxxxxxx000000000000xxx00000000000000xxxxxx|xxxxxxxxxxxxxxxx00000000000xxx0000000000000xxxxxxx|xxxxxxxxxxxxxxxxx0000000000xxx000000000000xxxxxxxx|xxxxxxxxxxxxxxxxxx000000000xxx00000000000xxxxxxxxx|xxxxxxxxxxxxxxxxxxx00000000xxx0000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx0000000xxx000000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx000000xxx00000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000xxx0000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxx0000xxx000000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx000xxx00000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx00xxx0000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxx0xxx000xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|"; + } + + if (mapId == 7) { + return "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx00xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx000xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx0xxxxxxx00000xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx00xxxxxxx000000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx000xxxxxxx0000000xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx0000xxxxxxx00000000xxxxxxxxxxxxxxxxxx|xxxxxxxxxxxx00000xxxxxxx000000000xxxxxxxxxxxxxxxxx|xxxxxxxxxxx000000xxxxxxx0000000000xxxxxxxxxxxxxxxx|xxxxxxxxxx0000000xxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxxxxx00000000xxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxxxx000000000xxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxxx0000000000xxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxx00000000000xxxxxxx00000000000xxx0xxxxxxxxxxx|xxxxx000000000000xxxxxxx00000000000xxx00xxxxxxxxxx|xxxx0000000000000xxxxxxx00000000000xxx000xxxxxxxxx|xxx00000000000000000000000000000000xxx0000xxxxxxxx|0x00000000000000000000000000000000000000000xxxxxxx|x0000000000000000xxx0xxx00000000000xxx000000xxxxxx|00000000000000000xx000xx00000000000xxx0000000xxxxx|00000000000000000000x00000000000000xxx00000000xxxx|x000000000000000000xxx0000000000000xxx000000000xxx|xx000000000000000000000000000000000xxx0000000000xx|xxx00000000000000000000000000000000xxx00000000000x|xxxx000000000000000x0x0000000000000xxx000000000000|xxxxx00000000000000xxx0000000000000xxx000000000000|xxxxxx0000000000000xxx0000000xxx0xxxxx000000000000|xxxxxxx000000000000xxx000000xxxx0xxxxx000000000000|xxxxxxxx00000000000xxx000000xxxx0xxxx0000000000000|xxxxxxxxx0000000000xxx000000xxx0000000000000000000|xxxxxxxxxx000000000xxx000000xxx000000000000000000x|xxxxxxxxxxx00000000xxx000000xxx00000000000000000xx|xxxxxxxxxxxx0000000xxx000000xxx0000000000000000xxx|xxxxxxxxxxxxx000000xxxxxxxxxxxx000000000000000xxxx|xxxxxxxxxxxxxx00000xxxxxxxxxxxx00000000000000xxxxx|xxxxxxxxxxxxxxx00000xxxxxxxxxxx0000000000000xxxxxx|xxxxxxxxxxxxxxxx000000000000xxx000000000000xxxxxxx|xxxxxxxxxxxxxxxxx0000000000000000000000000xxxxxxxx|xxxxxxxxxxxxxxxxxx00000000000000000000000xxxxxxxxx|xxxxxxxxxxxxxxxxxxx0000000000x0000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx00000000xxx00000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx0000000xxx0000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000x00000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx000xx0000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxx00xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxxx|"; + } + + return "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxx00000000xxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxx00000000000xxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxx000000000000000xxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxx00000000000000000xxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxx0000000000000000000xxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxx000000000000000000000xxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxx00000000000000000000000xxxxxxxxxxxxxxxxx|" + + "xxxxxxxxx0000000000000000000000000xxxxxxxxxxxxxxxx|" + + "xxxxxxxx000000000000000000000000000xxxxxxxxxxxxxxx|" + + "xxxxxxx00000000000000000000000000000xxxxxxxxxxxxxx|" + + "xxxxxx0000000000000000000000000000000xxxxxxxxxxxxx|" + + "xxxxx000000000000000000000000000000000xxxxxxxxxxxx|" + + "xxxxx0000000000000000000000000000000000xxxxxxxxxxx|" + + "xxxxx00000000000000000000000000000000000xxxxxxxxxx|" + + "xxxxx000000000000000000000000000000000000xxxxxxxxx|" + + "xxxx00000000000000000000000000000000000000xxxxxxxx|" + + "xxxx000000000000000000000000000000000000000xxxxxxx|" + + "xxxx0000000000000000000000000000000000000000xxxxxx|" + + "xxxx00000000000000000000000000000000000000000xxxxx|" + + "0xxx000000000000000000000000000000000000000000xxxx|" + + "xxxx000000000000000000000000000000000000000000xxxx|" + + "xxxx0000000000000000000000000000000000000000000xxx|" + + "xxxx0000000000000000000000000000000000000000000xxx|" + + "xxxx0000000000000000000000000000000000000000000xxx|" + + "xxxxx000000000000000000000000000000000000000000xxx|" + + "xxxxxx00000000000000000000000000000000000000000xxx|" + + "xxxxxxx0000000000000000000000000000000000000000xxx|" + + "xxxxxxxx000000000000000000000000000000000000000xxx|" + + "xxxxxxxxx0000000000000000000000000000000000000xxxx|" + + "xxxxxxxxxx000000000000000000000000000000000000xxxx|" + + "xxxxxxxxxxx0000000000000000000000000000000000xxxxx|" + + "xxxxxxxxxxxx00000000000000000000000000000000xxxxxx|" + + "xxxxxxxxxxxxx000000000000000000000000000000xxxxxxx|" + + "xxxxxxxxxxxxxx0000000000000000000000000000xxxxxxxx|" + + "xxxxxxxxxxxxxxx00000000000000000000000000xxxxxxxxx|" + + "xxxxxxxxxxxxxxxx0000000000000000000000000xxxxxxxxx|" + + "xxxxxxxxxxxxxxxxx00000000000000000000000xxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxx0000000000000000000000xxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxx00000000000000000000xxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxx0000000000000000xxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxx0000000000000xxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxx000000000xxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxx000000xxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|" + + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|"; + } + + public SnowStormMap getMap(int mapId) { + return this.snowStormMapMaps.get(mapId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormTurn.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormTurn.java new file mode 100644 index 0000000..17577e4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/SnowStormTurn.java @@ -0,0 +1,18 @@ +package org.alexdev.havana.game.games.snowstorm; + +import org.alexdev.havana.game.games.GameObject; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class SnowStormTurn { + private List events; + + public SnowStormTurn() { + this.events = new CopyOnWriteArrayList<>(); + } + + public List getSubTurns() { + return events; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormAvatarMoveEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormAvatarMoveEvent.java new file mode 100644 index 0000000..3a06829 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormAvatarMoveEvent.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormAvatarMoveEvent extends GameObject { + private final int objectId; + private int X; + private int Y; + + public SnowStormAvatarMoveEvent(int objectId, int x, int y) { + super(objectId, GameObjectType.SNOWWAR_AVATAR_MOVE_EVENT); + this.objectId = objectId; + this.X = x; + this.Y = y; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(GameObjectType.SNOWWAR_AVATAR_MOVE_EVENT.getObjectId()); + response.writeInt(this.objectId); + response.writeInt(X);//SnowStormGame.convertToWorldCoordinate(this.X)); // move target x + response.writeInt(Y);//SnowStormGame.convertToWorldCoordinate(this.Y)); // move target y + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormCreateSnowballEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormCreateSnowballEvent.java new file mode 100644 index 0000000..472262b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormCreateSnowballEvent.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormCreateSnowballEvent extends GameObject { + private final int objectId; + + public SnowStormCreateSnowballEvent(int objectId) { + super(objectId, GameObjectType.SNOWWAR_CREATE_SNOWBALL_EVENT); + this.objectId = objectId; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(GameObjectType.SNOWWAR_CREATE_SNOWBALL_EVENT.getObjectId()); + response.writeInt(this.objectId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormDeleteObjectEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormDeleteObjectEvent.java new file mode 100644 index 0000000..08cd885 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormDeleteObjectEvent.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormDeleteObjectEvent extends GameObject { + private final int objectId; + + public SnowStormDeleteObjectEvent(int objectId) { + super(objectId, GameObjectType.SNOWWAR_REMOVE_OBJECT_EVENT); + this.objectId = objectId; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.objectId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormHitEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormHitEvent.java new file mode 100644 index 0000000..364c87b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormHitEvent.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormHitEvent extends GameObject { + private final int throwerId; + private final int targetId; + private final int hitDirection; + + public SnowStormHitEvent(int throwerId, int targetId, int hitDirection) { + super(-1, GameObjectType.SNOWSTORM_HIT_EVENT); + this.throwerId = throwerId; + this.targetId = targetId; + this.hitDirection = hitDirection; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.throwerId); + response.writeInt(this.targetId); + response.writeInt(this.hitDirection); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormLaunchSnowballEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormLaunchSnowballEvent.java new file mode 100644 index 0000000..155d880 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormLaunchSnowballEvent.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormLaunchSnowballEvent extends GameObject { + private final int objectId; + private final int x; + private final int y; + private final int trajectory; + private final int throwerId; + + public SnowStormLaunchSnowballEvent(int objectId, int throwerId, int x, int y, int trajectory) { + super(objectId, GameObjectType.SNOWWAR_THROW_EVENT); + this.objectId = objectId; + this.throwerId = throwerId; + this.x = x; + this.y = y; + this.trajectory = trajectory; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.objectId); + response.writeInt(this.throwerId); + response.writeInt(this.x); + response.writeInt(this.y); + response.writeInt(this.trajectory); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineAddSnowballEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineAddSnowballEvent.java new file mode 100644 index 0000000..2a805c7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineAddSnowballEvent.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormMachineAddSnowballEvent extends GameObject { + private final int machineId; + + public SnowStormMachineAddSnowballEvent(int machineId) { + super(machineId, GameObjectType.SNOWWAR_MACHINE_ADD_SNOWBALL_EVENT); + this.machineId = machineId; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.machineId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineMoveSnowballsEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineMoveSnowballsEvent.java new file mode 100644 index 0000000..45f59b4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormMachineMoveSnowballsEvent.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormMachineMoveSnowballsEvent extends GameObject { + private final int playerId; + private final int machineId; + + public SnowStormMachineMoveSnowballsEvent(int playerId, int machineId) { + super(-1, GameObjectType.SNOWWAR_MACHINE_MOVE_SNOWBALLS_EVENT); + this.playerId = playerId; + this.machineId = machineId; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.playerId); + response.writeInt(this.machineId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormStunEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormStunEvent.java new file mode 100644 index 0000000..3948837 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormStunEvent.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormStunEvent extends GameObject { + private final int stunnedId; + private final int throwerId; + private final int hitDirection; + + public SnowStormStunEvent(int throwerId, int hitId, int hitDirection) { + super(-1, GameObjectType.SNOWWAR_STUN_EVENT); + this.stunnedId = throwerId; + this.throwerId = hitId; + this.hitDirection = hitDirection; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.stunnedId); + response.writeInt(this.throwerId); + response.writeInt(this.hitDirection); + + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormThrowEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormThrowEvent.java new file mode 100644 index 0000000..8cf8512 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/events/SnowStormThrowEvent.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.games.snowstorm.events; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormThrowEvent extends GameObject { + private final int objectId; + private final int x; + private final int y; + private final int throwHeight; + + public SnowStormThrowEvent(int objectId, int x, int y, int throwHeight) { + super(objectId, GameObjectType.SNOWWAR_TARGET_THROW_EVENT); + this.objectId = objectId; + this.x = x; + this.y = y; + this.throwHeight = throwHeight; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(this.getGameObjectType().getObjectId()); + response.writeInt(this.objectId); + response.writeInt(this.x); + response.writeInt(this.y); + response.writeInt(this.throwHeight); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormItem.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormItem.java new file mode 100644 index 0000000..425028f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormItem.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.game.games.snowstorm.mapping; + +import org.alexdev.havana.game.pathfinder.Position; + +public class SnowStormItem { + private final String itemId; + private final String itemName; + private final int x; + private final int y; + private final int z; + private final int rotation; + private final int height; + + public SnowStormItem(String itemId, String itemName, int x, int y, int z, int rotation, int height) { + this.itemId = itemId; + this.itemName = itemName; + this.x = x; + this.y = y; + this.z = z; + this.rotation = rotation; + this.height = height; + } + + public boolean isSnowballMachine() { + return this.itemName.equalsIgnoreCase("snowball_machine"); + } + + public String getItemId() { + return itemId; + } + + public String getItemName() { + return itemName; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public int getZ() { + return z; + } + + public int getRotation() { + return rotation; + } + + public Position getPosition() { + return new Position(this.x, this.y, this.z); + } + + public int getHeight() { + return height; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormMap.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormMap.java new file mode 100644 index 0000000..5fb2a3e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormMap.java @@ -0,0 +1,109 @@ +package org.alexdev.havana.game.games.snowstorm.mapping; + +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormSpawn; + +import java.util.ArrayList; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +public class SnowStormMap { + private final int mapId; + private final ArrayList itemList; + private final ArrayList spawnClusters; + private final String compiledItems; + private String heightMap; + private int mapSizeY; + private int mapSizeX; + private SnowStormTile[][] tiles; + + public SnowStormMap(int mapId, String compiledItems, ArrayList itemList, String heightMap, ArrayList spawnClusters) { + this.mapId = mapId; + this.compiledItems = compiledItems; + this.itemList = itemList; + this.heightMap = heightMap; + this.spawnClusters = spawnClusters; + this.parseHeightMap(); + } + + public void parseHeightMap() { + String[] lines = this.heightMap.split(Pattern.quote("|")); + + this.mapSizeY = lines.length; + this.mapSizeX = lines[0].length(); + + this.tiles = new SnowStormTile[this.mapSizeX][this.mapSizeY]; + + StringBuilder temporaryHeightmap = new StringBuilder(); + + for (int y = 0; y < this.mapSizeY; y++) { + String line = lines[y]; + + for (int x = 0; x < this.mapSizeX; x++) { + String tile = Character.toString(line.charAt(x)); + + var position = new Position(x, y); + var snowStormTile = new SnowStormTile(x, y, + tile.equalsIgnoreCase("X"), + this.itemList.stream().filter(item -> + item.getX() == position.getX() + && item.getY() == position.getY()) + .collect(Collectors.toList())); + + this.tiles[x][y] = snowStormTile; + + if (!snowStormTile.isWalkable()) { + tile = "x"; + } else { + tile = "0"; + } + + temporaryHeightmap.append(tile); + } + + temporaryHeightmap.append("\r"); + } + + this.heightMap = temporaryHeightmap.toString(); + } + + public SnowStormTile getTile(Position position) { + if (position.getX() < 0 || position.getY() < 0) { + return null; + } + + if (position.getX() >= this.mapSizeX || position.getY() >= this.mapSizeY) { + return null; + } + + return this.tiles[position.getX()][position.getY()]; + } + + public int getMapSizeX() { + return mapSizeX; + } + + public int getMapSizeY() { + return mapSizeY; + } + + public int getMapId() { + return mapId; + } + + public String getHeightMap() { + return heightMap; + } + + public ArrayList getItems() { + return this.itemList; + } + + public SnowStormSpawn[] getSpawnClusters() { + return spawnClusters.toArray(new SnowStormSpawn[0]); + } + + public String getCompiledItems() { + return compiledItems; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormPathfinder.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormPathfinder.java new file mode 100644 index 0000000..b7ce454 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormPathfinder.java @@ -0,0 +1,199 @@ +package org.alexdev.havana.game.games.snowstorm.mapping; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.pathfinder.Pathfinder; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormActivityState; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; + +public class SnowStormPathfinder { + public static Position getNextDirection(SnowStormGame snowStormGame, GamePlayer gamePlayer) { + List positions = new ArrayList<>(); + + for (Position POINT : Pathfinder.DIAGONAL_MOVE_POINTS) { + var temp = gamePlayer.getSnowStormAttributes().getCurrentPosition().copy().add(POINT); + + if (!isValidTile(snowStormGame, gamePlayer, temp)) { + continue; + } + + positions.add(temp); + } + + positions.sort(Comparator.comparingDouble(pos -> pos.getDistanceSquared(gamePlayer.getSnowStormAttributes().getWalkGoal()))); + return (positions.size() > 0 ? positions.get(0) : null); + } + + private static boolean isValidTile(SnowStormGame snowStormGame, GamePlayer gamePlayer, Position tmp) { + for (GamePlayer player : snowStormGame.getActivePlayers()) { + if (player.getPlayer().getDetails().getId() == gamePlayer.getPlayer().getDetails().getId()) { + continue; + } + + if (gamePlayer.getSnowStormAttributes().getCurrentPosition().equals(tmp)) { + return false; + } + + if (gamePlayer.getSnowStormAttributes().getNextGoal() != null && gamePlayer.getSnowStormAttributes().getNextGoal().equals(tmp)) { + return false; + } + } + + var tile = snowStormGame.getMap().getTile(tmp); + + if (tile == null) { + return false; + } + + return tile.isWalkable(); + } + + /** + * Check if the point (x0, y0) can see point (x1, y1) by drawing a line + * and testing for the "blocking" property at each new tile. Returns the + * points on the line if it is, in fact, visible. Otherwise, returns an + * empty list (rather than null - Efficient Java, item #43). + * + * http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm + */ + public static LinkedList getMaxVisibility(SnowballObject snowballObject, int x0, int y0, int x1, int y1, SnowballObject.SnowballTrajectory trajectory) { + LinkedList line = new LinkedList<>(); + line.add(new Position(x0, y0)); + int dx = Math.abs(x1 - x0); + int dy = Math.abs(y1 - y0); + int sx = (x0 < x1) ? 1 : -1; + int sy = (y0 < y1) ? 1 : -1; + int err = dx - dy; + int e2; + + while (!(x0 == x1 && y0 == y1)) { + if (isBlockedTile(snowballObject, new Position(x0, y0))) { + //line.clear(); + line.add(new Position(x0, y0)); + return line; + } + + e2 = 2 * err; + + if (e2 > -dy) { + err -= dy; + x0 += sx; + } + + if (e2 < dx) { + err += dx; + y0 += sy; + } + + line.add(new Position(x0, y0)); + } + + return line; + } + + public static GamePlayer getOppositionPlayer(SnowStormGame snowStormGame, GamePlayer thrower, Position position) { + for (GamePlayer player : snowStormGame.getActivePlayers()) { + if ((player.getSnowStormAttributes().getCurrentPosition().equals(position) || (player.getSnowStormAttributes().getNextGoal() != null && player.getSnowStormAttributes().getNextGoal().equals(player)))) { + if (player.getSnowStormAttributes().getActivityState() == SnowStormActivityState.ACTIVITY_STATE_STUNNED) { + continue; + } + + if (snowStormGame.isOppositionPlayer(thrower, player)) { + return player; + } + } + } + + return null; + } + + public static boolean isBlockedTile(SnowballObject snowballObject, Position position) { + if (snowballObject.getTrajectory() != SnowballObject.SnowballTrajectory.LONG_TRAJECTORY) { + for (GamePlayer player : snowballObject.getGame().getActivePlayers()) { + if ((player.getSnowStormAttributes().getCurrentPosition().equals(position) || (player.getSnowStormAttributes().getNextGoal() != null && player.getSnowStormAttributes().getNextGoal().equals(player)))) { + if (player.getSnowStormAttributes().getActivityState() == SnowStormActivityState.ACTIVITY_STATE_STUNNED) { + continue; + } + + if (snowballObject.getGame().isOppositionPlayer(snowballObject.getThrower(), player)) { + return true; + } + } + } + } + + var tile = snowballObject.getGame().getMap().getTile(position); + + if (tile == null) { + return false; + } + + return tile.isHeightBlocking(snowballObject.getTrajectory()); + } +} + + /* + tMoveTarget = me.pGameObjectFinalTarget + tNextTarget = me.pGameObjectNextTarget + if not objectp(tMoveTarget) then + return FALSE + end if + tMoveTargetX = tMoveTarget.x + tMoveTargetY = tMoveTarget.y + if not objectp(me.pGameObjectLocation) then + return FALSE + end if + tCurrentX = me.pGameObjectLocation.x + tCurrentY = me.pGameObjectLocation.y + if not objectp(tNextTarget) then + return FALSE + end if + tNextTargetX = tNextTarget.x + tNextTargetY = tNextTarget.y + if (tCurrentX = tMoveTargetX) and (tCurrentY = tMoveTargetY) then + return FALSE + end if + if tNextTargetX <> tCurrentX or tNextTargetY <> tCurrentY then + tOldX = tCurrentX + tOldY = tCurrentY + tTargetX = tNextTarget.x + tDeltaX = (tTargetX - tCurrentX) + if tDeltaX < 0 then + if tDeltaX > -SUBTURN_MOVEMENT then + tCurrentX = tTargetX + else + tCurrentX = (tCurrentX - SUBTURN_MOVEMENT) + end if + else + if tDeltaX > 0 then + if tDeltaX < SUBTURN_MOVEMENT then + tCurrentX = tTargetX + else + tCurrentX = (tCurrentX + SUBTURN_MOVEMENT) + end if + end if + end if + tTargetY = tNextTarget.y + tDeltaY = (tTargetY - tCurrentY) + if tDeltaY < 0 then + if tDeltaY > -SUBTURN_MOVEMENT then + tCurrentY = tTargetY + else + tCurrentY = (tCurrentY - SUBTURN_MOVEMENT) + end if + else + if tDeltaY > 0 then + if tDeltaY < SUBTURN_MOVEMENT then + tCurrentY = tTargetY + else + tCurrentY = (tCurrentY + SUBTURN_MOVEMENT) + end if + end if + end if + */ diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormTile.java new file mode 100644 index 0000000..ef97394 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/mapping/SnowStormTile.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.game.games.snowstorm.mapping; + +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; + +import java.util.Comparator; +import java.util.List; + +public class SnowStormTile { + private int X; + private int Y; + private List items; + private SnowStormItem highestItem; + private boolean isBlocked; + + public SnowStormTile(int x, int y, boolean isBlocked, List items) { + this.X = x; + this.Y = y; + this.isBlocked = isBlocked; + + this.items = items; + this.items.sort(Comparator.comparingDouble((SnowStormItem item) -> item.getPosition().getZ())); + + for (var item : this.items) { + if ((this.highestItem == null) || (item.getPosition().getZ() > this.highestItem.getPosition().getZ())) { + this.highestItem = item; + } + } + } + + public boolean isWalkable() { + if (this.isBlocked) { + return false; + } + + if (this.highestItem != null) { + return false; + } + + return true; + } + + public SnowStormItem getHighestItem() { + return highestItem; + } + + public List getItems() { + return items; + } + + public boolean isHeightBlocking(SnowballObject.SnowballTrajectory trajectory) { + if (this.highestItem == null) { + return false; + } + + if (trajectory == SnowballObject.SnowballTrajectory.LONG_TRAJECTORY) { + return false; + } + + if (trajectory == SnowballObject.SnowballTrajectory.SHORT_TRAJECTORY) { + return this.highestItem.getHeight() > 1; + } + + if (trajectory == SnowballObject.SnowballTrajectory.QUICK_THROW) { + return this.highestItem.getHeight() > 0; + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/SnowStormMessageHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/SnowStormMessageHandler.java new file mode 100644 index 0000000..9a9d2e5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/SnowStormMessageHandler.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.game.games.snowstorm.messages; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.messages.incoming.SnowStormAttackPlayerMessage; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormEvent; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormMessage; +import org.alexdev.havana.game.games.snowstorm.messages.incoming.SnowStormThrowLocationMessage; +import org.alexdev.havana.game.games.snowstorm.messages.incoming.SnowStormWalkMessage; +import org.alexdev.havana.game.games.snowstorm.messages.incoming.SnowstormCreateSnowballMessage; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.util.HashMap; + +public class SnowStormMessageHandler { + private static SnowStormMessageHandler instance; + private final HashMap events; + + public SnowStormMessageHandler() { + this.events = new HashMap<>(); + this.events.put(SnowStormEvent.WALK, new SnowStormWalkMessage()); + this.events.put(SnowStormEvent.CREATE_SNOWBALL, new SnowstormCreateSnowballMessage()); + this.events.put(SnowStormEvent.THROW_SNOWBALL_AT_LOCATION, new SnowStormThrowLocationMessage()); + this.events.put(SnowStormEvent.THROW_SNOWBALL_AT_PERSON, new SnowStormAttackPlayerMessage()); + } + + public void handleMessage(int messageId, NettyRequest request, SnowStormGame snowStormGame, GamePlayer player) throws MalformedPacketException { + var event = SnowStormEvent.getEvent(messageId); + + if (event != null) { + this.events.get(event).handle(request, snowStormGame, player); + } + } + + public static SnowStormMessageHandler getInstance() { + if (instance == null) { + instance = new SnowStormMessageHandler(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormAttackPlayerMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormAttackPlayerMessage.java new file mode 100644 index 0000000..73f1eec --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormAttackPlayerMessage.java @@ -0,0 +1,87 @@ +package org.alexdev.havana.game.games.snowstorm.messages.incoming; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormLaunchSnowballEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormThrowEvent; +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormMessage; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class SnowStormAttackPlayerMessage implements SnowStormMessage { + @Override + public void handle(NettyRequest reader, SnowStormGame snowStormGame, GamePlayer gamePlayer) throws MalformedPacketException { + if (!gamePlayer.getSnowStormAttributes().isWalkable()) { + return; + } + + if ((gamePlayer.getSnowStormAttributes().getLastThrow().get() + 300) > System.currentTimeMillis()) { + return; + } + + int userId = reader.readInt(); + int trajectory = reader.readInt(); + + if (trajectory != 0 && trajectory != 2 && trajectory != 3) { + return; + } + + if (gamePlayer.getSnowStormAttributes().getSnowballs().get() <= 0) { + return; + } + + if (gamePlayer.getSnowStormAttributes().isWalking()) { + gamePlayer.getSnowStormAttributes().setWalking(false); + } + + var player = snowStormGame.getActivePlayers().stream().filter(p -> p.getObjectId() == userId).findFirst().orElse(null); + + if (player == null || !snowStormGame.isOppositionPlayer(gamePlayer, player)) { + return; + } + + //gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(false); + int objectId = snowStormGame.getObjectId().incrementAndGet(); + + var snowball = new SnowballObject(objectId, snowStormGame, gamePlayer, + gamePlayer.getSnowStormAttributes().getCurrentPosition().getX(), + gamePlayer.getSnowStormAttributes().getCurrentPosition().getY(), + player.getSnowStormAttributes().getCurrentPosition().getX(), + player.getSnowStormAttributes().getCurrentPosition().getY(), + trajectory, + Rotation.calculateWalkDirection(gamePlayer.getSnowStormAttributes().getCurrentPosition(), player.getSnowStormAttributes().getCurrentPosition())); + + snowball.setTargetPlayer(player); + gamePlayer.getSnowStormAttributes().getSnowballs().decrementAndGet(); + + var visibilityPath = snowball.getPath(); + Position lastTilePosition = visibilityPath.size() > 0 ? visibilityPath.pollLast() : null; + + // Reconsider velocity/time to live and recalculate since it's blocked + if (lastTilePosition != null && !lastTilePosition.equals(new Position(snowball.getTargetX(), snowball.getTargetY()))) { + snowball.setTargetX(lastTilePosition.getX()); + snowball.setTargetY(lastTilePosition.getY()); + snowball.setBlocked(true); + } + + snowStormGame.getUpdateTask().sendQueue(0, 1, new SnowStormThrowEvent(gamePlayer.getObjectId(), SnowStormGame.convertToWorldCoordinate(snowball.getTargetX()), SnowStormGame.convertToWorldCoordinate(snowball.getTargetY()), trajectory)); + snowStormGame.getUpdateTask().sendQueue(0, 1, new SnowStormLaunchSnowballEvent(objectId, gamePlayer.getObjectId(), SnowStormGame.convertToWorldCoordinate(snowball.getTargetX()), SnowStormGame.convertToWorldCoordinate(snowball.getTargetY()), trajectory)); + gamePlayer.getSnowStormAttributes().getLastThrow().set(System.currentTimeMillis()); + + if (trajectory == 0 && visibilityPath.size() >= SnowStormGame.MAX_QUICK_THROW_DISTANCE) { + return; + } + + snowball.scheduleMovementTask(); + /*GameScheduler.getInstance().getService().schedule(() -> { + try { + snowStormGame.handleSnowballLanding(snowball); + } catch (Exception e) { + e.printStackTrace(); + } + }, snowball.getTimeToLive() * 100, TimeUnit.MILLISECONDS);*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormThrowLocationMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormThrowLocationMessage.java new file mode 100644 index 0000000..5ec7d7b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormThrowLocationMessage.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.game.games.snowstorm.messages.incoming; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormLaunchSnowballEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormThrowEvent; +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormMessage; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class SnowStormThrowLocationMessage implements SnowStormMessage { + @Override + public void handle(NettyRequest reader, SnowStormGame snowStormGame, GamePlayer gamePlayer) throws MalformedPacketException { + if (!gamePlayer.getSnowStormAttributes().isWalkable()) { + return; + } + + if ((gamePlayer.getSnowStormAttributes().getLastThrow().get() + 300) > System.currentTimeMillis()) { + return; + } + + int X = reader.readInt(); + int Y = reader.readInt(); + int trajectory = reader.readInt(); + + if (trajectory != 2 && trajectory != 1) { + return; + } + + if (gamePlayer.getSnowStormAttributes().getSnowballs().get() <= 0) { + return; + } + + //gamePlayer.getSnowStormAttributes().getPlayer().getRoomUser().setWalkingAllowed(false); + int objectId = snowStormGame.getObjectId().incrementAndGet(); + + final var snowball = new SnowballObject( + objectId, + snowStormGame, + gamePlayer, + gamePlayer.getSnowStormAttributes().getCurrentPosition().getX(), + gamePlayer.getSnowStormAttributes().getCurrentPosition().getY(), + SnowStormGame.convertToGameCoordinate(X), + SnowStormGame.convertToGameCoordinate(Y), + trajectory, + Rotation.calculateWalkDirection(gamePlayer.getSnowStormAttributes().getCurrentPosition(), new Position(SnowStormGame.convertToGameCoordinate(X), SnowStormGame.convertToGameCoordinate(Y)))); + + gamePlayer.getSnowStormAttributes().getSnowballs().decrementAndGet(); + + var visibilityPath = snowball.getPath(); + Position lastTilePosition = visibilityPath.size() > 0 ? visibilityPath.pollLast() : null; + + // Reconsider velocity/time to live and recalculate since it's blocked + if (lastTilePosition != null && !lastTilePosition.equals(new Position(snowball.getTargetX(), snowball.getTargetY()))) { + snowball.setTargetX(lastTilePosition.getX()); + snowball.setTargetY(lastTilePosition.getY()); + snowball.setBlocked(true); + } + + snowStormGame.getUpdateTask().sendQueue(0, 1, new SnowStormThrowEvent(gamePlayer.getObjectId(), SnowStormGame.convertToWorldCoordinate(snowball.getTargetX()), SnowStormGame.convertToWorldCoordinate(snowball.getTargetY()), trajectory)); + snowStormGame.getUpdateTask().sendQueue(0, 1, new SnowStormLaunchSnowballEvent(objectId, gamePlayer.getObjectId(), SnowStormGame.convertToWorldCoordinate(snowball.getTargetX()), SnowStormGame.convertToWorldCoordinate(snowball.getTargetY()), trajectory)); + + gamePlayer.getSnowStormAttributes().getLastThrow().set(System.currentTimeMillis()); + snowball.scheduleMovementTask(); + + /*GameScheduler.getInstance().getService().schedule(() -> { + try { + snowStormGame.handleSnowballLanding(snowball); + } catch (Exception e) { + e.printStackTrace(); + } + }, snowball.getTimeToLive() * 100, TimeUnit.MILLISECONDS);*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormWalkMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormWalkMessage.java new file mode 100644 index 0000000..2826f08 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowStormWalkMessage.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.game.games.snowstorm.messages.incoming; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormMessage; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class SnowStormWalkMessage implements SnowStormMessage { + @Override + public void handle(NettyRequest reader, SnowStormGame snowStormGame, GamePlayer gamePlayer) throws MalformedPacketException { + if (!gamePlayer.getSnowStormAttributes().isWalkable() || !gamePlayer.getPlayer().getRoomUser().isWalkingAllowed()) { + return; + } + + int X = reader.readInt(); + int Y = reader.readInt(); + + int newX = SnowStormGame.convertToGameCoordinate(X); + int newY = SnowStormGame.convertToGameCoordinate(Y); + + // --System.out.println("Request: " + newX + ", " + newY); + if (gamePlayer.getSnowStormAttributes().getCurrentPosition().equals(new Position(newX, newY))) { + return; + } + + gamePlayer.getSnowStormAttributes().setGoalWorldCoordinates(new int[] { X, Y }); + gamePlayer.getSnowStormAttributes().setWalking(true); + gamePlayer.getSnowStormAttributes().setWalkGoal(new Position(newX, newY)); + + //snowStormGame.getUpdateTask().sendQueue(0, 1, + // new SnowStormAvatarMoveEvent(gamePlayer.getObjectId(), X, Y)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowstormCreateSnowballMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowstormCreateSnowballMessage.java new file mode 100644 index 0000000..55db305 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/messages/incoming/SnowstormCreateSnowballMessage.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.game.games.snowstorm.messages.incoming; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormCreateSnowballEvent; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormActivityState; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormMessage; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class SnowstormCreateSnowballMessage implements SnowStormMessage { + @Override + public void handle(NettyRequest request, SnowStormGame snowStormGame, GamePlayer gamePlayer) throws MalformedPacketException { + if (!gamePlayer.getSnowStormAttributes().isWalkable()) { + //System.out.println("Player " + gamePlayer.getPlayer().getDetails().getName() + " state " + gamePlayer.getSnowStormAttributes().getActivityState().name()); + return; + } + + if (gamePlayer.getSnowStormAttributes().getSnowballs().get() >= 5) { + //System.out.println("Player " + gamePlayer.getPlayer().getDetails().getName() + " has " + gamePlayer.getSnowStormAttributes().getSnowballs().get()); + return; + } + + if (gamePlayer.getSnowStormAttributes().isWalking()) { + gamePlayer.getSnowStormAttributes().setWalking(false); + } + + snowStormGame.getUpdateTask().sendQueue(0, 1, new SnowStormCreateSnowballEvent(gamePlayer.getObjectId())); + + gamePlayer.getSnowStormAttributes().setActivityState(SnowStormActivityState.ACTIVITY_STATE_CREATING, ()-> { + if (!gamePlayer.getSnowStormAttributes().isWalkable() || gamePlayer.getSnowStormAttributes().getHealth().get() == 0) { + return; + } + + gamePlayer.getSnowStormAttributes().getSnowballs().incrementAndGet(); + }); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormAvatarObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormAvatarObject.java new file mode 100644 index 0000000..681efb5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormAvatarObject.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.games.snowstorm.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SnowStormAvatarObject extends GameObject { + private final GamePlayer p; + public SnowStormAvatarObject(GamePlayer gamePlayer) { + super(gamePlayer.getObjectId(), GameObjectType.SNOWWAR_AVATAR_OBJECT); + this.p = gamePlayer; + } + + @Override + public void serialiseObject(NettyResponse response) { + var nextGoal = this.p.getSnowStormAttributes().getNextGoal(); + response.writeInt(GameObjectType.SNOWWAR_AVATAR_OBJECT.getObjectId()); // type id + response.writeInt(this.p.getObjectId()); // int id + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.p.getSnowStormAttributes().getCurrentPosition().getX())); + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.p.getSnowStormAttributes().getCurrentPosition().getY())); + response.writeInt(this.p.getSnowStormAttributes().getRotation()); // body direction + response.writeInt(this.p.getSnowStormAttributes().getHealth().get()); // hit points + response.writeInt(this.p.getSnowStormAttributes().getSnowballs().get()); // snowball count + response.writeInt(0); // is bot + response.writeInt(this.p.getSnowStormAttributes().getActivityTimer()); // activity timer + response.writeInt(this.p.getSnowStormAttributes().getActivityState().getStateId()); // activity state + response.writeInt(nextGoal != null ? nextGoal.getX() : this.p.getSnowStormAttributes().getCurrentPosition().getX()); // move target x + response.writeInt(nextGoal != null ? nextGoal.getY() : this.p.getSnowStormAttributes().getCurrentPosition().getY()); // move target y + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.p.getSnowStormAttributes().isWalking() ? this.p.getSnowStormAttributes().getWalkGoal().getX() : this.p.getSnowStormAttributes().getCurrentPosition().getX())); // move target x + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.p.getSnowStormAttributes().isWalking() ? this.p.getSnowStormAttributes().getWalkGoal().getY() : this.p.getSnowStormAttributes().getCurrentPosition().getY())); // move target y + response.writeInt(this.p.getSnowStormAttributes().getScore().get()); // score + response.writeInt(p.getPlayer().getDetails().getId()); // player id + response.writeInt(p.getTeamId()); // team id + response.writeInt(p.getObjectId()); // room index + response.writeString(p.getPlayer().getDetails().getName()); + response.writeString(p.getPlayer().getDetails().getMotto()); + response.writeString(p.getPlayer().getDetails().getFigure()); + response.writeString(p.getPlayer().getDetails().getSex());// Actually room user id/instance id + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormMachineObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormMachineObject.java new file mode 100644 index 0000000..40586db --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowStormMachineObject.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.games.snowstorm.objects; + +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameObjectType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.concurrent.atomic.AtomicInteger; + +public class SnowStormMachineObject extends GameObject { + private final int objectId; + private final int X; + private final int Y; + private AtomicInteger snowballCount; + private long lastRefillTime; + + public SnowStormMachineObject(int objectId, int X, int Y, int snowballCount) { + super(objectId, GameObjectType.SNOWWAR_SNOWMACHINE_OBJECT); + this.objectId = objectId; + this.X = X; + this.Y = Y; + this.snowballCount = new AtomicInteger(snowballCount); + this.lastRefillTime = 0; + } + + @Override + public void serialiseObject(NettyResponse response) { + response.writeInt(GameObjectType.SNOWWAR_SNOWMACHINE_OBJECT.getObjectId()); + response.writeInt(this.objectId); + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.X)); + response.writeInt(SnowStormGame.convertToWorldCoordinate(this.Y)); + response.writeInt(this.snowballCount.get()); + } + + public long getLastRefillTime() { + return lastRefillTime; + } + + public void setLastRefillTime(long lastRefillTime) { + this.lastRefillTime = lastRefillTime; + } + + public Position getPosition() { + return new Position(X, Y); + } + + public AtomicInteger getSnowballs() { + return snowballCount; + } + + public boolean isPlayerCollectingSnowballs(SnowStormGame game) { + var playerPosition = new Position(this.X, this.Y + 1); + var tile = game.getMap().getTile(playerPosition); + + if (tile == null) { + return false; + } + + var player = game.getActivePlayers().stream().filter(p -> p.getSnowStormAttributes().getCurrentPosition().equals(playerPosition)).findFirst().orElse(null); + + if (player == null || !player.getSnowStormAttributes().isWalkable()) { + return false; + } + + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowballObject.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowballObject.java new file mode 100644 index 0000000..f16e15f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/objects/SnowballObject.java @@ -0,0 +1,195 @@ +package org.alexdev.havana.game.games.snowstorm.objects; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormPathfinder; +import org.alexdev.havana.game.games.snowstorm.tasks.SnowballMovementTask; +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.LinkedList; +import java.util.concurrent.TimeUnit; + +public class SnowballObject { + public GamePlayer getTargetPlayer() { + return targetPlayer; + } + + public void setTargetPlayer(GamePlayer targetPlayer) { + this.targetPlayer = targetPlayer; + } + + public enum SnowballTrajectory { + QUICK_THROW(0, 3000), + SHORT_TRAJECTORY(1, 3000), + LONG_TRAJECTORY(2, 3000); + + private final int trajectoryId; + private final int velocity; + + SnowballTrajectory(int trajectoryId, int velocity) { + this.trajectoryId = trajectoryId; + this.velocity = velocity; + } + + public int getVelocity() { + return velocity; + } + + public int getTrajectoryId() { + return trajectoryId; + } + } + + private int objectId; + private SnowStormGame game; + private GamePlayer thrower; + private int fromX; + private int fromY; + private int targetX; + private int targetY; + private int trajectory; + private int direction; + private boolean isBlocked; + private GamePlayer targetPlayer; + + public SnowballObject(int objectId, SnowStormGame snowStormGame, GamePlayer thrower, int fromX, int fromY, int targetX, int targetY, int trajectory, int direction) { + this.objectId = objectId; + this.game = snowStormGame; + this.thrower = thrower; + this.fromX = fromX; + this.fromY = fromY; + this.targetX = targetX; + this.targetY = targetY; + this.direction = direction; + this.trajectory = trajectory; + } + + public int getTimeToLive() { + int tX = SnowStormGame.convertToWorldCoordinate(this.fromX); + int tY = SnowStormGame.convertToWorldCoordinate(this.fromY); + + int tDeltaX = ((SnowStormGame.convertToWorldCoordinate(this.targetX) - tX) / 200); + int tDeltaY = ((SnowStormGame.convertToWorldCoordinate(this.targetY) - tY) / 200); + + double tDistanceToTarget = Math.sqrt(((tDeltaX * tDeltaX) + (tDeltaY * tDeltaY))) * 200; + + if (this.getTrajectory() == SnowballTrajectory.QUICK_THROW) { + return (int) (tDistanceToTarget / SnowballTrajectory.QUICK_THROW.getVelocity()); + //return SnowballTrajectory.QUICK_THROW.getTimeToLive(); + } + + if (this.getTrajectory() == SnowballTrajectory.SHORT_TRAJECTORY) { + return (int) (tDistanceToTarget / SnowballTrajectory.SHORT_TRAJECTORY.getVelocity()); + + } + + if (this.getTrajectory() == SnowballTrajectory.LONG_TRAJECTORY) { + return (int) (tDistanceToTarget / SnowballTrajectory.LONG_TRAJECTORY.getVelocity()); + } + + return -1; + } + + public LinkedList getPath() { + return SnowStormPathfinder.getMaxVisibility( + this, + getFromX(), + getFromY(), + getTargetX(), + getTargetY(), + getTrajectory() + ); + } + + public void scheduleMovementTask() { + var path = this.getPath(); + + if (this.getTimeToLive() > 0 && path.size() > 0) { + var futureRunnable = new SnowballMovementTask(this); + futureRunnable.setFuture(GameScheduler.getInstance().getService().scheduleAtFixedRate(futureRunnable, 0, (this.getTimeToLive() * 100) / path.size(), TimeUnit.MILLISECONDS)); + } else { + this.game.handleSnowballLanding(this, false); + } + } + + public int getObjectId() { + return objectId; + } + + public GamePlayer getThrower() { + return thrower; + } + + public void setThrower(GamePlayer thrower) { + this.thrower = thrower; + } + + public SnowStormGame getGame() { + return game; + } + + public int getFromX() { + return fromX; + } + + public void setFromX(int fromX) { + this.fromX = fromX; + } + + public int getFromY() { + return fromY; + } + + public void setFromY(int fromY) { + this.fromY = fromY; + } + + public int getTargetX() { + return targetX; + } + + public void setTargetX(int targetX) { + this.targetX = targetX; + } + + public int getTargetY() { + return targetY; + } + + public void setTargetY(int targetY) { + this.targetY = targetY; + } + + public SnowballTrajectory getTrajectory() { + if (this.trajectory == SnowballTrajectory.QUICK_THROW.trajectoryId) { + return SnowballTrajectory.QUICK_THROW; + } + + if (this.trajectory == SnowballTrajectory.SHORT_TRAJECTORY.trajectoryId) { + return SnowballTrajectory.SHORT_TRAJECTORY; + } + + if (this.trajectory == SnowballTrajectory.LONG_TRAJECTORY.trajectoryId) { + return SnowballTrajectory.LONG_TRAJECTORY; + } + + return null; + } + + public void setTrajectory(int trajectory) { + this.trajectory = trajectory; + } + + public boolean isBlocked() { + return isBlocked; + } + + public void setBlocked(boolean blocked) { + isBlocked = blocked; + } + + public int getDirection() { + return direction; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowStormGameTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowStormGameTask.java new file mode 100644 index 0000000..9c34adc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowStormGameTask.java @@ -0,0 +1,247 @@ +package org.alexdev.havana.game.games.snowstorm.tasks; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.SnowStormTurn; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormAvatarMoveEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormMachineAddSnowballEvent; +import org.alexdev.havana.game.games.snowstorm.events.SnowStormMachineMoveSnowballsEvent; +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormPathfinder; +import org.alexdev.havana.game.games.snowstorm.objects.SnowStormMachineObject; +import org.alexdev.havana.game.games.snowstorm.util.SnowStormFuture; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.games.SNOWSTORM_GAMESTATUS; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; + +public class SnowStormGameTask implements Runnable { + private final Room room; + private final SnowStormGame game; + private List snowStormTurnList; + private List futureEvents; + private int maxGameTurns = 5; + + public SnowStormGameTask(Room room, SnowStormGame game) { + this.room = room; + this.game = game; + this.resetTurns(); + this.futureEvents = new CopyOnWriteArrayList<>(); + } + + private void resetTurns() { + this.snowStormTurnList = new CopyOnWriteArrayList<>(); + + for (int i = 0; i < maxGameTurns; i++) { + this.snowStormTurnList.add(new SnowStormTurn()); + } + } + + @Override + public void run() { + try { + if (this.game.getActivePlayers().isEmpty()) { + return; // Don't send any packets or do any logic checks during when the game is finished + } + + for (GameTeam gameTeam : this.game.getTeams().values()) { + for (GamePlayer gamePlayer : gameTeam.getPlayers()) { + Player player = gamePlayer.getPlayer(); + + if (player != null + && player.getRoomUser().getRoom() != null + && player.getRoomUser().getRoom() == this.room) { + player.getRoomUser().handleSpamTicks(); + this.processEntity(gamePlayer, this.game); + } + } + } + + } catch (Exception ex) { + Log.getErrorLogger().error("SnowstormWalkTask crashed: ", ex); + } + + try { + for (var future : futureEvents) { + if (future.getFramesFuture() == 0) { + sendQueue(0, future.getSubTurn(), future.getEvent()); + } + } + + //if (this.snowStormTurnList.stream().anyMatch(turn -> turn.getSubTurns().size() > 0)) { + for (Player player : this.game.getRoom().getEntityManager().getPlayers()) { + player.send(new SNOWSTORM_GAMESTATUS(this.snowStormTurnList)); + } + + this.resetTurns(); + //} + + this.futureEvents.removeIf(future -> future.getFramesFuture() == 0); + + for (var future : futureEvents) { + if (future.getFramesFuture() > 0) { + future.decrementFrame(); + } + } + + } catch (Exception ex) { + Log.getErrorLogger().error("SnowstormTask crashed: ", ex); + + } + } + + + public void sendQueue(int framesFuture, int subTurn, GameObject snowStormEvent) { + if (framesFuture == 0) { + try { + this.snowStormTurnList.get(subTurn - 1).getSubTurns().add(snowStormEvent); + } catch (Exception ex) { + + } + + return; + } + + this.futureEvents.add(new SnowStormFuture(framesFuture, subTurn, snowStormEvent)); + } + + /** + * Process entity. + */ + private void processEntity(GamePlayer gamePlayer, SnowStormGame game) { + if (gamePlayer.getSnowStormAttributes().isWalking()) { + if (gamePlayer.getSnowStormAttributes().getCurrentPosition().equals(gamePlayer.getSnowStormAttributes().getWalkGoal())) { + this.sendQueue(0, 1, new SnowStormAvatarMoveEvent(gamePlayer.getObjectId(), + gamePlayer.getSnowStormAttributes().getGoalWorldCoordinates()[0], + gamePlayer.getSnowStormAttributes().getGoalWorldCoordinates()[1])); + gamePlayer.getSnowStormAttributes().setRotation(Rotation.calculateWalkDirection(gamePlayer.getSnowStormAttributes().getCurrentPosition(), gamePlayer.getSnowStormAttributes().getWalkGoal())); + gamePlayer.getSnowStormAttributes().setNextGoal(null); + gamePlayer.getSnowStormAttributes().setWalking(false); + this.trySnowballMachine(gamePlayer, game); + return; + } + + var nextPosition = SnowStormPathfinder.getNextDirection(game, gamePlayer); + + if (nextPosition != null) { + gamePlayer.getSnowStormAttributes().setRotation(Rotation.calculateWalkDirection(gamePlayer.getSnowStormAttributes().getCurrentPosition(), nextPosition)); + gamePlayer.getSnowStormAttributes().setCurrentPosition(nextPosition.copy()); + gamePlayer.getSnowStormAttributes().setNextGoal(nextPosition.copy()); + this.sendQueue(0, 1, new SnowStormAvatarMoveEvent(gamePlayer.getObjectId(), + gamePlayer.getSnowStormAttributes().getGoalWorldCoordinates()[0], + gamePlayer.getSnowStormAttributes().getGoalWorldCoordinates()[1])); + } else { + gamePlayer.getSnowStormAttributes().setNextGoal(null); + gamePlayer.getSnowStormAttributes().setWalking(false); + } + } + } + + private void trySnowballMachine(GamePlayer gamePlayer, SnowStormGame game) { + //final var game = this; + var snowballItemPosition = new Position(gamePlayer.getSnowStormAttributes().getCurrentPosition().getX(), gamePlayer.getSnowStormAttributes().getCurrentPosition().getY() - 1); + var snowballMachineTile = game.getMap().getTile(snowballItemPosition); + + if (snowballMachineTile == null || snowballMachineTile.getHighestItem() == null || !snowballMachineTile.getHighestItem().isSnowballMachine()) { + return; + } + + SnowStormMachineObject obj = null;//this.game.getObjects().stream().filter((SnowStormMachineObject obj) -> obj.getPosition().) + + for (var object : game.getObjects()) { + if (!(object instanceof SnowStormMachineObject)) { + continue; + } + + SnowStormMachineObject machineObject = (SnowStormMachineObject) object; + + if (machineObject.getPosition().equals(snowballItemPosition)) { + obj = machineObject; + } + } + + if (obj == null) { + return; + } + + final var snowMachine = obj; + //final var snowballsToAdd = new AtomicInteger(0); + + var snowMachineAnimation = new FutureRunnable() { + public void run() { + try { + if (!snowMachine.isPlayerCollectingSnowballs(game)) { + this.cancelFuture(); + return; + } + + if (snowMachine.getSnowballs().get() < 5) { + snowMachine.getSnowballs().incrementAndGet(); + game.getUpdateTask().sendQueue(0, 1, new SnowStormMachineAddSnowballEvent(snowMachine.getId())); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }; + + /*var snowMachineRefill = new FutureRunnable() { + public void run() { + try { + if (!snowMachine.isPlayerCollectingSnowballs(game)) { + this.cancelFuture(); + return; + } + + if (snowMachine.getSnowballs().get() < 5 && snowballsToAdd.get() > 0) { + snowMachine.getSnowballs().incrementAndGet(); + snowballsToAdd.set(0); + ; + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } + };*/ + + var snowMachineRestock = new FutureRunnable() { + public void run() { + try { + if (!snowMachine.isPlayerCollectingSnowballs(game)) { + this.cancelFuture(); + return; + } + + if (snowMachine.getSnowballs().get() > 0) { + if (gamePlayer.getSnowStormAttributes().getSnowballs().get() < 5) { + gamePlayer.getSnowStormAttributes().getSnowballs().incrementAndGet(); + game.getUpdateTask().sendQueue(0, 1, new SnowStormMachineMoveSnowballsEvent(gamePlayer.getObjectId(), snowMachine.getId())); + snowMachine.getSnowballs().decrementAndGet(); + } + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }; + + snowMachineAnimation.setFuture(GameScheduler.getInstance().getService().scheduleWithFixedDelay(snowMachineAnimation, 0, 3, TimeUnit.SECONDS)); + snowMachineRestock.setFuture(GameScheduler.getInstance().getService().scheduleAtFixedRate(snowMachineRestock, 0, 1, TimeUnit.SECONDS)); + } + + public List getExecutingTurns() { + return new ArrayList<>(this.snowStormTurnList); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowballMovementTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowballMovementTask.java new file mode 100644 index 0000000..aab1404 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/tasks/SnowballMovementTask.java @@ -0,0 +1,115 @@ +package org.alexdev.havana.game.games.snowstorm.tasks; + +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.mapping.SnowStormPathfinder; +import org.alexdev.havana.game.games.snowstorm.objects.SnowballObject; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.LinkedList; + +public class SnowballMovementTask extends FutureRunnable { + private final SnowballObject snowball; + private final Position firstPosition; + private LinkedList path; + private long thrownTime; + private Position lastPosition; + + public SnowballMovementTask(SnowballObject snowball) { + this.snowball = snowball; + this.thrownTime = System.currentTimeMillis() + this.snowball.getTimeToLive() * 100; + this.path = snowball.getPath(); + this.firstPosition = new Position(this.snowball.getFromX(), this.snowball.getFromY(), this.snowball.getDirection()); + this.lastPosition = new Position(this.snowball.getFromX(), this.snowball.getFromY(), this.snowball.getDirection()); + } + + @Override + public void run() { + if (snowball.getTrajectory() != SnowballObject.SnowballTrajectory.LONG_TRAJECTORY) { + if (this.path.size() > 0) { + var nextPosition = this.path.poll(); + + this.lastPosition.setX(nextPosition.getX()); + this.lastPosition.setY(nextPosition.getY()); + + // --var tile = this.snowball.getGame().getMap().getTile(nextPosition); + + // --if (tile != null) { + // -- System.out.println("Trajectory: " + this.snowball.getTrajectory().name()); + // -- System.out.println("Tile: " + (tile.getHighestItem() != null ? tile.getHighestItem().getItemName() : "NULL") + " - " + nextPosition); + // -- System.out.println("Height: " + (tile.getHighestItem() != null ? tile.getHighestItem().getHeight() : "NULL") + " - " + nextPosition); + // -- } + + if (SnowStormPathfinder.isBlockedTile(this.snowball, nextPosition)) { + this.snowball.setTargetX(nextPosition.getX()); + this.snowball.setTargetY(nextPosition.getY()); + this.snowball.setBlocked(true); + this.endMovement(this.snowball, true); + return; + } + } else { + // --System.out.println("Finished flying"); + if ((this.snowball.getTrajectory() == SnowballObject.SnowballTrajectory.QUICK_THROW || this.snowball.getTrajectory() == SnowballObject.SnowballTrajectory.LONG_TRAJECTORY) && continueQuickThrowSnowball()) { + this.path = this.snowball.getPath(); + } else { + endMovement(this.snowball, true); + } + + return; + } + } + + if (System.currentTimeMillis() > this.thrownTime) { + if (this.snowball.getTrajectory() == SnowballObject.SnowballTrajectory.QUICK_THROW && continueQuickThrowSnowball()) { + this.path = this.snowball.getPath(); + } else { + endMovement(this.snowball, true); + } + } + } + + private boolean continueQuickThrowSnowball() { + boolean hasPlayer = false; + + Position nextPosition = new Position(this.snowball.getFromX(), this.snowball.getFromY(), 0, this.snowball.getDirection(), this.snowball.getDirection()); + + // Only check in straight lines... otherwise it's a goddamn heat seeking missile + while (true) { + var tile = nextPosition; + + if (snowball.getGame().getMap().getTile(nextPosition) == null) { + break; + } + + var oppositionPlayer = snowball.getGame().getActivePlayers().stream() + .filter(gamePlayer -> gamePlayer.getSnowStormAttributes().getCurrentPosition().equals(new Position(tile.getX(), tile.getY())) && + gamePlayer.getPlayer().getDetails().getId() == snowball.getTargetPlayer().getPlayer().getDetails().getId() && + gamePlayer.getSnowStormAttributes().isDamageable()).findFirst() + .orElse(null); + //SnowStormPathfinder.getOppositionPlayer(snowball.getGame(), snowball.getThrower(), nextPosition); + + if (oppositionPlayer != null) { + if (oppositionPlayer.getSnowStormAttributes().getCurrentPosition().getDistanceSquared(this.firstPosition) >= SnowStormGame.MAX_QUICK_THROW_DISTANCE) { + return false; + } + + this.snowball.setFromX(this.lastPosition.getX()); + this.snowball.setFromY(this.lastPosition.getY()); + + this.snowball.setTargetX(oppositionPlayer.getSnowStormAttributes().getCurrentPosition().getX()); + this.snowball.setTargetY(oppositionPlayer.getSnowStormAttributes().getCurrentPosition().getY()); + this.thrownTime = System.currentTimeMillis() + this.snowball.getTimeToLive() * 100; + return true; + } + + nextPosition = nextPosition.getSquareInFront(); + } + + return false; + } + + private void endMovement(SnowballObject snowball, boolean deleteAfterHit) { + this.snowball.getGame().handleSnowballLanding(this.snowball, deleteAfterHit); + this.cancelFuture(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormActivityState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormActivityState.java new file mode 100644 index 0000000..65093cc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormActivityState.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +public enum SnowStormActivityState { + ACTIVITY_STATE_INVINCIBLE_AFTER_STUN(3,60), + ACTIVITY_STATE_STUNNED(2,125), + ACTIVITY_STATE_CREATING(0, 20), + ACTIVITY_STATE_NORMAL(0, 0); + + private final int stateId; + private final int timer; + + SnowStormActivityState(int stateId, int timer) { + this.stateId = stateId; + this.timer = timer; + } + + public int getStateId() { + return stateId; + } + + public int getTimer() { + return timer; + } + + /** + * Convert the amount of frames to real world time. + * + * @return the amount of frames + */ + public int getTimeInMS() { + return timer > 0 ? (timer /5) * 300 : 0; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormAttributes.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormAttributes.java new file mode 100644 index 0000000..5f51c24 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormAttributes.java @@ -0,0 +1,154 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +public class SnowStormAttributes { + private boolean isWalking; + private Position currentPosition; + private Position walkGoal; + private Position nextGoal; + private int[] goalWorldCoordinates; + private AtomicInteger snowballs; + private AtomicInteger health; + private AtomicInteger score; + private int rotation; + private AtomicLong lastThrow; + private long immunityExpiry; + + private SnowStormActivityState activityState; + private long stateTime; + + public SnowStormAttributes() { + this.snowballs = new AtomicInteger(0); + this.health = new AtomicInteger(0); + this.score = new AtomicInteger(0); + this.lastThrow = new AtomicLong(0); + this.immunityExpiry = 0; + } + + public boolean isWalking() { + return isWalking; + } + + public void setWalking(boolean walking) { + isWalking = walking; + } + + public Position getCurrentPosition() { + return currentPosition; + } + + public void setCurrentPosition(Position currentPosition) { + this.currentPosition = currentPosition; + } + + public Position getWalkGoal() { + return walkGoal; + } + + public void setWalkGoal(Position walkGoal) { + this.walkGoal = walkGoal; + } + + public Position getNextGoal() { + return nextGoal; + } + + public void setNextGoal(Position nextGoal) { + this.nextGoal = nextGoal; + } + + public int[] getGoalWorldCoordinates() { + return goalWorldCoordinates; + } + + public void setGoalWorldCoordinates(int[] goalWorldCoordinates) { + this.goalWorldCoordinates = goalWorldCoordinates; + } + + public AtomicInteger getSnowballs() { + return snowballs; + } + + public AtomicInteger getHealth() { + return health; + } + + public int getRotation() { + return rotation; + } + + public void setRotation(int rotation) { + this.rotation = rotation; + } + + public SnowStormActivityState getActivityState() { + return activityState; + } + + public boolean isWalkable() { + return this.activityState == SnowStormActivityState.ACTIVITY_STATE_NORMAL || + this.activityState == SnowStormActivityState.ACTIVITY_STATE_INVINCIBLE_AFTER_STUN; + } + + public boolean isDamageable() { + return System.currentTimeMillis() > this.immunityExpiry && this.activityState == SnowStormActivityState.ACTIVITY_STATE_NORMAL; + } + + public void setActivityState(SnowStormActivityState activityState, Runnable runnable) { + this.activityState = activityState; + this.stateTime = System.currentTimeMillis() + activityState.getTimeInMS(); + + //System.out.println("Queued " + this.activityState.name() + " for " + activityState.getTimeInMS() + "ms"); + + if (activityState != SnowStormActivityState.ACTIVITY_STATE_NORMAL) { + GameScheduler.getInstance().getService().schedule(()-> { + this.activityState = SnowStormActivityState.ACTIVITY_STATE_NORMAL; + + if (runnable != null) + runnable.run(); + }, this.activityState.getTimeInMS(), TimeUnit.MILLISECONDS); + } + } + + public void setActivityState(SnowStormActivityState activityState) { + this.setActivityState(activityState, null); + } + + public int getActivityTimer() { + int timeRemaining = 0; + long expireTime = this.stateTime + this.activityState.getTimeInMS(); + + if (!(System.currentTimeMillis() > this.stateTime || this.activityState == SnowStormActivityState.ACTIVITY_STATE_NORMAL)) { + timeRemaining = (int) (expireTime - System.currentTimeMillis()); + timeRemaining = (timeRemaining / 300)*5; + } + + return timeRemaining; + } + + public AtomicInteger getScore() { + return score; + } + + public void setScore(AtomicInteger score) { + this.score = score; + } + + public AtomicLong getLastThrow() { + return lastThrow; + } + + public long getImmunityExpiry() { + return immunityExpiry; + } + + public void setImmunityExpiry(long immunityExpiry) { + this.immunityExpiry = immunityExpiry; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormEvent.java new file mode 100644 index 0000000..bbbf6a0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormEvent.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +public enum SnowStormEvent { + WALK(0), + CREATE_SNOWBALL(3), + THROW_SNOWBALL_AT_LOCATION(2), + THROW_SNOWBALL_AT_PERSON(1); + + private final int eventId; + + SnowStormEvent(int eventId) { + this.eventId = eventId; + } + + public static SnowStormEvent getEvent(int eventId) { + for (var event : values()) + if (event.eventId == eventId) + return event; + + return null; + } + + public int getEventId() { + return eventId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormFuture.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormFuture.java new file mode 100644 index 0000000..ca168d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormFuture.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +import org.alexdev.havana.game.games.GameObject; + +public class SnowStormFuture { + private int framesFuture; + private int subTurn; + private GameObject event; + + public SnowStormFuture(int framesFuture, int subTurn, GameObject event) { + this.framesFuture = framesFuture; + this.subTurn = subTurn; + this.event = event; + } + + public int getFramesFuture() { + return framesFuture; + } + + public int getSubTurn() { + return subTurn; + } + + public GameObject getEvent() { + return event; + } + + public void decrementFrame() { + this.framesFuture--; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormMessage.java new file mode 100644 index 0000000..c2bdd74 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormMessage.java @@ -0,0 +1,10 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public interface SnowStormMessage { + void handle(NettyRequest request, SnowStormGame snowStormGame, GamePlayer gamePlayer) throws MalformedPacketException; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormSpawn.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormSpawn.java new file mode 100644 index 0000000..2fa6187 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/snowstorm/util/SnowStormSpawn.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.games.snowstorm.util; + +import org.alexdev.havana.game.pathfinder.Position; + +public class SnowStormSpawn { + private Position position; + private int radius; + private int minDistance; + + public SnowStormSpawn(int X, int Y, int radius, int minDistance) { + this.position = new Position(X, Y); + this.radius = radius; + this.minDistance = minDistance; + } + + public Position getPosition() { + return position; + } + + public int getRadius() { + return radius; + } + + public int getMinDistance() { + return minDistance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/tasks/GameFinishTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/tasks/GameFinishTask.java new file mode 100644 index 0000000..0cd0202 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/tasks/GameFinishTask.java @@ -0,0 +1,182 @@ +package org.alexdev.havana.game.games.tasks; + +import org.alexdev.havana.Havana; +import org.alexdev.havana.dao.mysql.GameDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +public class GameFinishTask implements Runnable { + private final List players; + private final ArrayList sortedTeamList; + private final GameType gameType; + private final Game game; + private final GameHistory gameHistory; + + public GameFinishTask(Game game, GameHistory gameHistory, GameType gameType, ArrayList sortedTeamList, List players) { + this.game = game; + this.gameHistory = gameHistory; + this.gameType = gameType; + this.sortedTeamList = sortedTeamList; + this.players = players; + } + + + @Override + public void run() { + boolean saveScore = false; + + GameManager.getInstance().getFinishedGameCounter().incrementAndGet(); + + if (this.game.canIncreasePoints()) { + for (GamePlayer gamePlayer : this.game.getActivePlayers()) { + gamePlayer.getScore(); + + if (this.gameType == GameType.BATTLEBALL) { + gamePlayer.setXp(gamePlayer.getScore() > 0 ? (gamePlayer.getScore() / 294) : 0); + } else { + gamePlayer.setXp(gamePlayer.getScore() > 0 ? (gamePlayer.getScore() / 3) : 0); + } + } + } + + if (this.game.canIncreasePoints()) { + if ((this.sortedTeamList.size() == 1 && this.sortedTeamList.get(0).getPlayers().size() > 1) || (this.sortedTeamList.size() > 1 + && this.sortedTeamList.get(0).getScore() > 0 + && this.sortedTeamList.get(0).getScore() != this.sortedTeamList.get(1).getScore()) && + this.sortedTeamList.get(0).getPlayers().size() > 0 && + this.sortedTeamList.get(1).getPlayers().size() > 0) { + + saveScore = true; + + + Player firstPlayer = null;//this.sortedTeamList.get(0).getPlayers().get(0).getPlayer(); + Player secondPlayer = null;//this.sortedTeamList.get(1).getPlayers().get(0).getPlayer(); + + + if (this.sortedTeamList.size() == 1) { + firstPlayer = this.sortedTeamList.get(0).getPlayers().get(0).getPlayer(); + secondPlayer = this.sortedTeamList.get(0).getPlayers().get(1).getPlayer(); + } else { + firstPlayer = this.sortedTeamList.get(0).getPlayers().get(0).getPlayer(); + secondPlayer = this.sortedTeamList.get(1).getPlayers().get(0).getPlayer(); + } + + String firstIp = NettyPlayerNetwork.getIpAddress(firstPlayer.getNetwork().getChannel()); + String secondIp = NettyPlayerNetwork.getIpAddress(secondPlayer.getNetwork().getChannel()); + + if (!firstIp.equals(secondIp) + && !PlayerDao.getIpAddresses(firstPlayer.getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT).contains(secondIp) + && !PlayerDao.getIpAddresses(secondPlayer.getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT).contains(firstIp)) { + for (GamePlayer g : this.sortedTeamList.get(0).getPlayers()) { + Player winningPlayer = g.getPlayer(); + + if (this.gameType == GameType.BATTLEBALL) { + winningPlayer.getStatisticManager().incrementValue(PlayerStatistic.BATTLEBALL_GAMES_WON, 1); + } else { + winningPlayer.getStatisticManager().incrementValue(PlayerStatistic.SNOWSTORM_GAMES_WON, 1); + } + + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_GAME_PLAYED, winningPlayer); + } + } else { + saveScore = false; + } + } + + for (GamePlayer gamePlayer : this.players) { + var setMap = new HashMap(); + + if (saveScore) { + var score = (long) gamePlayer.getScore(); + + if (this.gameType == GameType.BATTLEBALL) { + setMap.put(PlayerStatistic.BATTLEBALL_MONTHLY_SCORES, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.BATTLEBALL_MONTHLY_SCORES) + score)); + setMap.put(PlayerStatistic.BATTLEBALL_POINTS_ALL_TIME, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.BATTLEBALL_POINTS_ALL_TIME) + score)); + } else { + setMap.put(PlayerStatistic.SNOWSTORM_MONTHLY_SCORES, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.SNOWSTORM_MONTHLY_SCORES) + score)); + setMap.put(PlayerStatistic.SNOWSTORM_POINTS_ALL_TIME, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.SNOWSTORM_POINTS_ALL_TIME) + score)); + } + + var player = gamePlayer.getPlayer(); + + setMap.put(PlayerStatistic.XP_EARNED_MONTH, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.XP_EARNED_MONTH) + (long) gamePlayer.getXp())); + setMap.put(PlayerStatistic.XP_ALL_TIME, String.valueOf(gamePlayer.getPlayer().getStatisticManager().getLongValue(PlayerStatistic.XP_ALL_TIME) + (long) gamePlayer.getXp())); + player.getStatisticManager().setValues(gamePlayer.getUserId(), setMap); + + if (gamePlayer.getXp() > 0) { + int creditsAmount = GameManager.getInstance().getRandomCredits(this.sortedTeamList.get(0).getPlayers().contains(gamePlayer)); + + if (creditsAmount > 0) { + GameScheduler.getInstance().queuePlayerCredits(player, creditsAmount); + } + } + } + } + + if (saveScore) { + String uniqueId = UUID.randomUUID().toString(); + GameDao.saveTeamHistory(uniqueId, this.gameHistory.getName(), this.game.getGameCreatorId(), this.gameHistory.getMapId(), this.gameHistory.getWinningTeam(), this.gameHistory.getWinningTeamScore(), this.gameHistory.getExtraData(), this.gameType, Havana.getGson().toJson(this.gameHistory.getGameHistoryData())); + GameManager.getInstance().refreshPlayedGames(); + } + + /*for (GameTeam team : this.sortedTeamList) { + if (team.getPlayers().isEmpty()) { + continue; + } + + GameHistoryData gamePlayedHistory = new GameHistoryData(); + + for (GamePlayer gamePlayer : team.getPlayers()) { + gamePlayedHistory.addPlayer(gamePlayer.getPlayer().getDetails().getId(), gamePlayer.calculateScore()); + } + + GameDao.saveTeamHistory(uniqueId, this.gameType, team.getId(), team.getScore(), Havana.getGson().toJson(gamePlayedHistory)); + }*/ + } + } + + /*var sortedPlayers = new ArrayList<>(this.game.getPlayers()); + sortedPlayers.sort(Comparator.comparingInt(GamePlayer::getScore).reversed()); + + boolean firstTeamHasHighscore = this.sortedTeamList.size() > 0 && this.sortedTeamList.get(0).hasHighscore(); + boolean firstPlayerHasHighscore = sortedPlayers.size() > 0 && sortedPlayers.get(0).hasHighscore(); + + // Only set highscore for top team + if (this.sortedTeamList.size() > 0) { + for (var team : this.sortedTeamList) { + team.setHasHighscore(false); + } + + this.sortedTeamList.get(0).setHasHighscore(firstTeamHasHighscore); + } + + // Only set highscore for top player + if (this.sortedTeamList.size() > 0) { + for (var player : sortedPlayers) { + player.setHasHighscore(false); + } + + sortedPlayers.get(0).setHasHighscore(firstPlayerHasHighscore); + }*/ + + /*this.game.send(new GAME_ENDING(this.game, this.sortedTeamList, + GameManager.getInstance().getTopPlayers(), + GameManager.getInstance().getTopTeams()));*/ +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/BattleShipsTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/BattleShipsTrigger.java new file mode 100644 index 0000000..74789f0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/BattleShipsTrigger.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.games.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.games.gamehalls.GameBattleShip; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; + +import java.util.ArrayList; +import java.util.List; + +public class BattleShipsTrigger extends GameTrigger { + public BattleShipsTrigger() { + for (var kvp : this.getChairGroups()) { + this.getGameInstances().add(new GameBattleShip(kvp)); + } + } + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + super.onEntityStep(entity, roomEntity, item, oldPosition); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + super.onEntityStop(entity, roomEntity, item, isRotation); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + super.onEntityLeave(entity, roomEntity, item, customArgs); + } + + /** + * Gets the list of seats as a group for when people play a game to gether. + * + * @return the map of chair groups + */ + @Override + public List> getChairGroups() { + return new ArrayList<>() {{ + add(new ArrayList<>() {{ + add(new int[]{15, 3}); + add(new int[]{13, 3}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{8, 3}); + add(new int[]{6, 3}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{2, 4}); + add(new int[]{2, 6}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{2, 10}); + add(new int[]{2, 12}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{2, 16}); + add(new int[]{2, 18}); + }}); + }}; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/ChessTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/ChessTrigger.java new file mode 100644 index 0000000..0266540 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/ChessTrigger.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.games.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.games.gamehalls.GameChess; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; + +import java.util.ArrayList; +import java.util.List; + +public class ChessTrigger extends GameTrigger { + public ChessTrigger() { + for (var kvp : this.getChairGroups()) { + this.getGameInstances().add(new GameChess(kvp)); + } + } + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + super.onEntityStep(entity, roomEntity, item, oldPosition); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + super.onEntityStop(entity, roomEntity, item, isRotation); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + super.onEntityLeave(entity, roomEntity, item, customArgs); + } + + /** + * Gets the list of seats and their pairs as coordinates + * + * @return the map of chair pairs + */ + @Override + public List> getChairGroups() { + return new ArrayList<>() {{ + add(new ArrayList<>() {{ + add(new int[]{2, 7}); + add(new int[]{2, 9}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{6, 14}); + add(new int[]{4, 14}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{12, 14}); + add(new int[]{12, 12}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{13, 7}); + add(new int[]{13, 5}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{7, 3}); + add(new int[]{9, 3}); + }}); + }}; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/GameTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/GameTrigger.java new file mode 100644 index 0000000..27ce83c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/GameTrigger.java @@ -0,0 +1,148 @@ +package org.alexdev.havana.game.games.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.gamehalls.GamehallGame; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.rooms.games.CLOSEGAMEBOARD; +import org.alexdev.havana.messages.outgoing.rooms.games.OPENGAMEBOARD; + +import java.util.ArrayList; +import java.util.List; + +public abstract class GameTrigger extends GenericTrigger { + private List gameInstances; + + public GameTrigger() { + this.gameInstances = new ArrayList<>(); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + // Call default sitting trigger + InteractionType.CHAIR.getTrigger().onEntityStop(entity, roomEntity, item, isRotation); + + + // Handle game logic from here + GamehallGame instance = this.getGameInstance(item.getPosition()); + + if (instance != null && !(instance.getRoomId() > 0)) { + instance.setRoomId(roomEntity.getRoom().getId()); + } + + if (instance == null || (instance.getPlayers().size() >= instance.getMaximumPeopleRequired())) { + return; + } + + List joinedPlayers = instance.refreshPlayers(); + + if (instance.getGameId() != null) { + if (instance.getPlayers().size() >= instance.getMinimumPeopleRequired()) { + + for (Player p : joinedPlayers) { + p.send(new OPENGAMEBOARD(instance.getGameId(), instance.getGameFuseType())); // Player joined mid-game + } + } + } + + if (instance.getGameId() == null) { + if (instance.hasPlayersRequired()) { // New game started + instance.createGameId(); + instance.gameStart(); + instance.sendToEveryone(new OPENGAMEBOARD(instance.getGameId(), instance.getGameFuseType()));; + } + } + + /*if (instance.getGameId() == null) { + if (joinedPlayers.size() >= 1) { // New game started + instance.createGameId(); + instance.gameStart(); + + for (Player p : joinedPlayers) { + p.send(new OPENGAMEBOARD(instance.getGameId(), instance.getGameFuseType())); // Player joined mid-game + } + } + } else { + player.send(new OPENGAMEBOARD(instance.getGameId(), instance.getGameFuseType())); + }*/ + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + GamehallGame instance = this.getGameInstance(item.getPosition()); + + if (instance == null) { + return; + } + + if (player.getRoomUser().getCurrentGameId() == null) { + return; + } + + if (instance.getGameId() != null) { // If game has started + int newPlayerCount = instance.getPlayers().size() - 1; + + if (newPlayerCount >= instance.getMinimumPeopleRequired()) { + player.send(new CLOSEGAMEBOARD(instance.getGameId(), instance.getGameFuseType())); + } else { + instance.sendToEveryone(new CLOSEGAMEBOARD(instance.getGameId(), instance.getGameFuseType())); + } + } + + instance.getPlayers().remove(player); + player.getRoomUser().setCurrentGameId(null); + + if (!instance.hasPlayersRequired()) { + instance.resetGameId(); + instance.gameStop(); + } + } + + /** + * Gets the game instance on this specified position. + * + * @param position the position to look for the game instance + * @return the game instance, if successful + */ + public GamehallGame getGameInstance(Position position) { + for (GamehallGame instances : this.gameInstances) { + for (int[] coordinate : instances.getChairCoordinates()) { + if (position.equals(new Position(coordinate[0], coordinate[1]))) { + return instances; + } + } + } + + return null; + } + + /** + * Get all game instances. + * + * @return the list of game instances + */ + public List getGameInstances() { + return gameInstances; + } + + /** + * Gets the list of seats and their pairs as coordinates + */ + public abstract List> getChairGroups(); +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/PokerTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/PokerTrigger.java new file mode 100644 index 0000000..330ef05 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/PokerTrigger.java @@ -0,0 +1,99 @@ +package org.alexdev.havana.game.games.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.games.gamehalls.GamePoker; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; + +import java.util.ArrayList; +import java.util.List; + +public class PokerTrigger extends GameTrigger { + public PokerTrigger() { + for (var kvp : this.getChairGroups()) { + this.getGameInstances().add(new GamePoker(kvp)); + } + } + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + super.onEntityStep(entity, roomEntity, item, oldPosition); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + super.onEntityStop(entity, roomEntity, item, isRotation); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + super.onEntityLeave(entity, roomEntity, item, customArgs); + } + + /** + * Gets the list of seats as a group for when people play a game to gether. + * + * @return the map of chair groups + */ + @Override + public List> getChairGroups() { + return new ArrayList<>() {{ + add(new ArrayList<>() {{ + add(new int[]{2, 14}); + add(new int[]{2, 16}); + add(new int[]{3, 15}); + add(new int[]{1, 15}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{8, 2}); + add(new int[]{8, 4}); + add(new int[]{9, 3}); + add(new int[]{7, 3}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{14, 2}); + add(new int[]{14, 4}); + add(new int[]{15, 3}); + add(new int[]{13, 3}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{2, 8}); + add(new int[]{2, 10}); + add(new int[]{3, 9}); + add(new int[]{1, 9}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{8, 8}); + add(new int[]{8, 10}); + add(new int[]{9, 9}); + add(new int[]{7, 9}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{14, 8}); + add(new int[]{14, 10}); + add(new int[]{15, 9}); + add(new int[]{13, 9}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{8, 14}); + add(new int[]{8, 16}); + add(new int[]{9, 15}); + add(new int[]{7, 15}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{14, 14}); + add(new int[]{14, 16}); + add(new int[]{15, 15}); + add(new int[]{13, 15}); + }}); + }}; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/TicTacToeTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/TicTacToeTrigger.java new file mode 100644 index 0000000..628f8bb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/triggers/TicTacToeTrigger.java @@ -0,0 +1,89 @@ +package org.alexdev.havana.game.games.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.games.gamehalls.GameTicTacToe; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; + +import java.util.ArrayList; +import java.util.List; + +public class TicTacToeTrigger extends GameTrigger { + public TicTacToeTrigger() { + for (var kvp : this.getChairGroups()) { + this.getGameInstances().add(new GameTicTacToe(kvp)); + } + } + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + super.onEntityStep(entity, roomEntity, item, oldPosition); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + super.onEntityStop(entity, roomEntity, item, isRotation); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + super.onEntityLeave(entity, roomEntity, item, customArgs); + } + + /** + * Gets the list of seats and their pairs as coordinates + * + * @return the map of chair pairs + */ + @Override + public List> getChairGroups() { + return new ArrayList<>() {{ + add(new ArrayList<>() {{ + add(new int[]{15, 4}); + add(new int[]{15, 5}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{15, 9}); + add(new int[]{15, 10}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{15, 14}); + add(new int[]{15, 15}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{10, 4}); + add(new int[]{10, 5}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{10, 9}); + add(new int[]{10, 10}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{10, 14}); + add(new int[]{10, 15}); + }}); + + + add(new ArrayList<>() {{ + add(new int[]{5, 4}); + add(new int[]{5, 5}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{5, 9}); + add(new int[]{5, 10}); + }}); + + add(new ArrayList<>() {{ + add(new int[]{5, 14}); + add(new int[]{5, 15}); + }}); + }}; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FinishedGame.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FinishedGame.java new file mode 100644 index 0000000..7465c0b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FinishedGame.java @@ -0,0 +1,100 @@ +package org.alexdev.havana.game.games.utils; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FinishedGame { + private int id; + private int mapId; + private String name; + private String mapCreator; + private GameType gameType; + private List powerUps; + private Map teamScores; + + private long expireTime; + + public FinishedGame(Game game) { + this.id = game.getId(); + this.mapId = game.getMapId(); + this.name = game.getName(); + this.mapCreator = game.getGameCreator(); + this.gameType = game.getGameType(); + + if (this.gameType == GameType.BATTLEBALL) { + BattleBallGame battleballGame = (BattleBallGame) game; + this.powerUps = battleballGame.getAllowedPowerUps(); + } + + this.teamScores = new HashMap<>(); + this.expireTime = DateUtil.getCurrentTimeSeconds() + GameManager.getInstance().getListingExpiryTime(); + + for (int i = 0; i < game.getTeamAmount(); i++) { + this.teamScores.put(i, new FinishedGameTeam(game.getTeams().get(i))); + } + } + + public int getId() { + return id; + } + + public int getMapId() { + return mapId; + } + + public String getMapCreator() { + return mapCreator; + } + + public Map getTeamScores() { + return teamScores; + } + + public GameType getGameType() { + return gameType; + } + + public String getName() { + return name; + } + + public List getAllowedPowerUps() { + return powerUps; + } + + public long getExpireTime() { + return expireTime; + } + + public class FinishedGameTeam { + private int score; + private List> playerScores; + + private FinishedGameTeam(GameTeam gameTeam) { + this.score = gameTeam.getScore(); + this.playerScores = new ArrayList<>(); + + for (var gamePlayer : gameTeam.getPlayers()) { + this.playerScores.add(Pair.of(gamePlayer.getPlayer().getDetails().getName(), gamePlayer.getScore())); + } + } + + public int getScore() { + return score; + } + + public List> getPlayerScores() { + return playerScores; + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FloodFill.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FloodFill.java new file mode 100644 index 0000000..4eb9992 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/FloodFill.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.game.games.utils; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.pathfinder.Pathfinder; +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.*; + +public class FloodFill { + public static Collection getFill(GamePlayer gamePlayer, BattleBallTile startTile) { + HashSet closed = new HashSet<>(); + + ArrayDeque stack = new ArrayDeque<>(); + stack.add(startTile); + + while (stack.size() > 0) { + BattleBallTile tile = stack.pollLast(); + + if (tile != null) { + for (BattleBallTile loopTile : neighbours(gamePlayer.getGame(), tile.getPosition())) { + if (loopTile == null) { + closed.clear(); + return closed; + } + + if (loopTile.getColour() == BattleBallColourState.DISABLED) { + closed.clear(); + return closed; + } + + if ((loopTile.getColour().getColourId() != gamePlayer.getTeamId() || loopTile.getState() != BattleBallTileState.SEALED) && !closed.contains(loopTile) && !stack.contains(loopTile)) { + stack.addFirst(loopTile); + } + } + + closed.add(tile); + } + } + + return closed; + } + + public static HashSet neighbours(Game game, Position position) { + HashSet battleballTiles = new HashSet<>(); + + for (Position point : Pathfinder.MOVE_POINTS) { + Position tmp = position.copy().add(point); + battleballTiles.add((BattleBallTile) game.getTile(tmp.getX(), tmp.getY())); + } + + return battleballTiles; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/PowerUpUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/PowerUpUtil.java new file mode 100644 index 0000000..a125e47 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/PowerUpUtil.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.game.games.utils; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.enums.BattleBallPlayerState; +import org.alexdev.havana.game.games.battleball.objects.PlayerUpdateObject; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; + +import java.util.concurrent.TimeUnit; + +public class PowerUpUtil { + public static void stunPlayer(Game game, GamePlayer gamePlayer, BattleBallPlayerState state) { + gamePlayer.getPlayer().getRoomUser().stopWalking(); + gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(false); + game.getRoom().getMapping().regenerateCollisionMap(); + + gamePlayer.setPlayerState(state); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + + // Restore player 5 seconds later + GameScheduler.getInstance().getService().schedule(()-> { + if (game.getGameState() != GameState.ENDED) { + gamePlayer.getPlayer().getRoomUser().setWalkingAllowed(true); + } + + gamePlayer.setPlayerState(BattleBallPlayerState.NORMAL); + game.addObjectToQueue(new PlayerUpdateObject(gamePlayer)); + }, 5, TimeUnit.SECONDS); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/ScoreReference.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/ScoreReference.java new file mode 100644 index 0000000..4b3a718 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/ScoreReference.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.games.utils; + +import org.alexdev.havana.game.games.player.GameTeam; + +public class ScoreReference { + private int score; + private GameTeam gameTeam; + private int by; + + public ScoreReference(int score, GameTeam gameTeam, int by) { + this.score = score; + this.gameTeam = gameTeam; + this.by = by; + } + + public int getScore() { + return score; + } + + public GameTeam getGameTeam() { + return gameTeam; + } + + public int getBy() { + return by; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/TileUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/TileUtil.java new file mode 100644 index 0000000..3026f32 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/utils/TileUtil.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.game.games.utils; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.battleball.enums.BattleBallColourState; +import org.alexdev.havana.game.games.battleball.enums.BattleBallTileState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.room.mapping.RoomTile; + +public class TileUtil { + public static boolean undoTileAttributes(BattleBallTile tile, Game game) { + BattleBallTileState state = tile.getState(); + BattleBallColourState colour = tile.getColour(); + + if (colour == BattleBallColourState.DEFAULT || state == BattleBallTileState.DEFAULT) { + return false; + } + + tile.getPointsReferece().clear(); + + tile.setColour(BattleBallColourState.DEFAULT); + tile.setState(BattleBallTileState.DEFAULT); + + /*int pointsToRemove = 0; + + if (state == BattleBallTileState.TOUCHED) { + pointsToRemove = 2; + } + + if (state == BattleBallTileState.CLICKED) { + pointsToRemove = 6; + } + + if (state == BattleBallTileState.PRESSED) { + pointsToRemove = 10; + } + + if (state == BattleBallTileState.SEALED) { + pointsToRemove = 14; + } + + GameTeam team = game.getTeams().get(colour.getColourId()); + + if (pointsToRemove > 0) { + int eachTeamRemove = team.getPlayers().size() / pointsToRemove; + + for (GamePlayer p : team.getPlayers()) { + //p.setScore(p.getScore() - eachTeamRemove); + } + + tile.setColour(BattleBallColourState.DEFAULT); + tile.setState(BattleBallTileState.DEFAULT); + }*/ + + return true; + } + public static boolean isValidGameTile(GamePlayer gamePlayer, BattleBallTile tile, boolean checkEntities) { + if (tile == null) {// && tile.getColour() != BattleBallColourState.DISABLED; + return false; + } + + return RoomTile.isValidTile(gamePlayer.getGame().getRoom(), checkEntities ? gamePlayer.getPlayer() : null, tile.getPosition()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleGame.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleGame.java new file mode 100644 index 0000000..d8142cc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleGame.java @@ -0,0 +1,382 @@ +package org.alexdev.havana.game.games.wobblesquabble; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.user.currencies.TICKET_BALANCE; +import org.alexdev.havana.messages.outgoing.wobblesquabble.*; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.util.DateUtil; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class WobbleSquabbleGame implements Runnable { + private static int LEFT_X = 21; + private static int LEFT_Y = 15; + + private Room room; + private WobbleSquabblePlayer firstPlayer; + private WobbleSquabblePlayer secondPlayer; + private boolean hasGameStarted; + private boolean hasGameEnded; + private long gameStarted; + + public WobbleSquabbleGame(Player firstPlayer, Player secondPlayer) { + this.room = firstPlayer.getRoomUser().getRoom(); + this.hasGameStarted = false; + this.firstPlayer = new WobbleSquabblePlayer(this, firstPlayer, -1); + this.secondPlayer = new WobbleSquabblePlayer(this, secondPlayer, -1); + + if (this.firstPlayer.getPlayer().getRoomUser().getPosition().equals(new Position(LEFT_X, LEFT_Y))) { + this.firstPlayer.setOrder(0); + this.secondPlayer.setOrder(1); + } else { + this.secondPlayer.setOrder(0); + this.firstPlayer.setOrder(1); + } + } + + /** + * Send a message to both clients. + * + * @param composer the clients to send to + */ + public void send(MessageComposer composer) { + /*this.firstPlayer.send(composer); + this.secondPlayer.send(composer);*/ + this.room.send(composer); + } + + @Override + public void run() { + try { + if (this.hasGameEnded) { + return; + } + + WobbleSquabblePlayer wsPlayer1 = this.getPlayer(0); + WobbleSquabblePlayer wsPlayer2 = this.getPlayer(1); + + if (!this.hasGameStarted) { + this.hasGameStarted = true; + this.gameStarted = DateUtil.getCurrentTimeSeconds(); + this.send(new PT_START(wsPlayer1, wsPlayer2)); + + // Set positions + wsPlayer1.setPosition(-3); + wsPlayer2.setPosition(4); + return; + } + + // If either requires a status update, send the update + if (wsPlayer1.isRequiresUpdate() || wsPlayer2.isRequiresUpdate()) { + this.updatePlayer(0); + this.updatePlayer(1); + + this.send(new PT_STATUS(wsPlayer1, wsPlayer2)); + + wsPlayer1.resetActions(); + wsPlayer2.resetActions(); + } + + // If the game has timed out, too bad! + if (DateUtil.getCurrentTimeSeconds() > this.gameStarted + WobbleSquabbleManager.WS_GAME_TIMEOUT_SECS) { + this.send(new PT_TIMEOUT()); + this.endGame(-1); // Tied! + return; + } + + int loser = -1; + int winner = -1; + + // If one of us gets a bit tipsy and off-balance, end the game! + if (!wsPlayer1.isBalancing()) { + loser = wsPlayer1.getOrder(); + winner = wsPlayer2.getOrder(); + } + + if (!wsPlayer2.isBalancing()) { + loser = wsPlayer2.getOrder(); + winner = wsPlayer1.getOrder(); + } + + // If we have a loser and a winner, end the game! + if (loser != -1 && winner != -1) { + this.endGame(winner); + } + } catch (Exception ex) { + Log.getErrorLogger().error("Wobble Squabble task crashed: ", ex); + } + } + + /** + * Update wobble squabble player. + * + * @param wsPlayerOrder the player to update + */ + private void updatePlayer(int wsPlayerOrder) { + WobbleSquabblePlayer wsPlayer = this.getPlayer(wsPlayerOrder); + WobbleSquabblePlayer wsOpponent = wsPlayer.getGame().getPlayer(wsPlayer.getOrder() == 1 ? 0 : 1); + + int opponentDistance = Math.abs(wsPlayer.getPosition() - wsOpponent.getPosition()); + + switch (wsPlayer.getMove()) { + case BALANCE_LEFT: { + int balanceCalculated = WobbleSquabbleManager.WS_BALANCE_POINTS + ThreadLocalRandom.current().nextInt(10); + wsPlayer.setBalance(wsPlayer.getBalance() - balanceCalculated); + break; + } + + case BALANCE_RIGHT: { + int balanceCalculated = WobbleSquabbleManager.WS_BALANCE_POINTS + ThreadLocalRandom.current().nextInt(10); + wsPlayer.setBalance(wsPlayer.getBalance() + balanceCalculated); + break; + } + + case HIT_LEFT: { + // Are we standing next to our opponent? + if (opponentDistance <= 2/*(wsPlayer.getPosition() + 1) == wsOpponent.getPosition() || (wsPlayer.getPosition() - 1) == wsOpponent.getPosition()*/) { + wsOpponent.setHit(true); + + int balanceCalculated = WobbleSquabbleManager.WS_HIT_POINTS + ThreadLocalRandom.current().nextInt(10); + wsOpponent.setBalance(wsOpponent.getBalance() + balanceCalculated); + } else { + int balanceCalculated = WobbleSquabbleManager.WS_HIT_BALANCE_POINTS + ThreadLocalRandom.current().nextInt(10); + wsPlayer.setBalance(wsPlayer.getBalance() + balanceCalculated); + } + + break; + } + + case HIT_RIGHT: { + // Are we standing next to our opponent? + if (opponentDistance <= 2/*(wsPlayer.getPosition() + 1) == wsOpponent.getPosition() || (wsPlayer.getPosition() - 1) == wsOpponent.getPosition()*/) { + wsOpponent.setHit(true); + + int balanceCalculated = WobbleSquabbleManager.WS_HIT_POINTS + ThreadLocalRandom.current().nextInt(10); + wsOpponent.setBalance(wsOpponent.getBalance() - balanceCalculated); + } else { + int balanceCalculated = WobbleSquabbleManager.WS_HIT_BALANCE_POINTS + ThreadLocalRandom.current().nextInt(10); + wsPlayer.setBalance(wsPlayer.getBalance() - balanceCalculated); + } + + break; + } + + case WALK_FORWARD: { + // Calculate new position + int newPosition = wsPlayer.getPosition() - 1; + + if (newPosition >= -3 && newPosition <= 4) { + if (newPosition != wsOpponent.getPosition()) { + wsPlayer.setPosition(newPosition); + } + } + + break; + } + + case WALK_BACKWARD: { + // Calculate new position + int newPosition = wsPlayer.getPosition() + 1; + + if (newPosition >= -3 && newPosition <= 4) { + if (newPosition != wsOpponent.getPosition()) { + wsPlayer.setPosition(newPosition); + } + } + + break; + } + + case REBALANCE: { + if (!wsPlayer.isRebalanced()) { + wsPlayer.setRebalanced(true); + wsPlayer.setBalance(0); + } + break; + } + } + } + + /** + * Method for ending the game. + */ + public void endGame(int winner) { + if (!this.room.getTaskManager().hasTask(WobbleSquabbleManager.getInstance().getName())) { + return; + } + + this.hasGameEnded = true; + int loser = winner == 1 ? 0 : 1; + + String firstIp = NettyPlayerNetwork.getIpAddress(this.getPlayer(0).getPlayer().getNetwork().getChannel()); + String secondIp = NettyPlayerNetwork.getIpAddress(this.getPlayer(1).getPlayer().getNetwork().getChannel()); + + if (!firstIp.equals(secondIp) + && !PlayerDao.getIpAddresses(this.getPlayer(0).getPlayer().getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT).contains(secondIp) + && !PlayerDao.getIpAddresses(this.getPlayer(1).getPlayer().getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT).contains(firstIp)) { + + WobbleSquabblePlayer winningWsPlayer = this.getPlayer(winner); + + if (winner != -1) { + // Game didn't tie! + winningWsPlayer.getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_GAMES_WON, 1); + } else { + // Game tied! + this.getPlayer(0).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_GAMES_WON, 1); + this.getPlayer(1).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_GAMES_WON, 1); + } + + if (this.getPlayer(0).getScore() > 0) { + this.getPlayer(0).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_MONTHLY_SCORES, this.getPlayer(0).getScore()); + this.getPlayer(0).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_POINTS_ALL_TIME, this.getPlayer(0).getScore()); + } + + if (this.getPlayer(1).getScore() > 0) { + this.getPlayer(1).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_MONTHLY_SCORES, this.getPlayer(1).getScore()); + this.getPlayer(1).getPlayer().getStatisticManager().incrementValue(PlayerStatistic.WOBBLE_SQUABBLE_POINTS_ALL_TIME, this.getPlayer(1).getScore()); + } + } + + // Send end game + this.send(new PT_WIN(winner)); + + // Do updates after the players have fallen + GameScheduler.getInstance().getService().schedule(()-> { + this.send(new PT_END()); + + // If it's a tie then remove both + if (winner == -1) { + this.removePlayer(0, true); + this.removePlayer(1, true); + } else { + //GameManager.getInstance().giveRandomCredits(getPlayer(winner).getPlayer(), true); + //GameManager.getInstance().giveRandomCredits(getPlayer(loser).getPlayer(), false); + + this.removePlayer(winner, false); + this.removePlayer(loser, true); + } + + // Cancel wobble squabble task + this.room.getTaskManager().cancelTask(WobbleSquabbleManager.getInstance().getName()); + + // Make users walk forward + this.moveQueuedUsers(); + + }, 1500, TimeUnit.MILLISECONDS); + /*this.send(new PT_END()); + + // If it's a tie then remove both + if (winner == -1) { + this.removePlayer(0); + this.removePlayer(1); + } else { + this.removePlayer(loser); + }*/ + + } + + /** + * Move users on the queue forward. + */ + private void moveQueuedUsers() { + for (Player player : this.room.getEntityManager().getPlayers()) { + Item item = player.getRoomUser().getCurrentItem(); + + if (item != null) { + if (item.getDefinition().getInteractionType() != InteractionType.WS_QUEUE_TILE) { + continue; + } + + Position front = player.getRoomUser().getPosition().getSquareInFront(); + player.getRoomUser().walkTo(front.getX(), front.getY()); + } + } + } + + /** + * Removes the player from the game. + * + * @param playerNum the player id + */ + public void removePlayer(int playerNum, boolean isThrown) { + WobbleSquabblePlayer wsPlayer = this.getPlayer(playerNum); + + if (wsPlayer == null) { + return; + } + + Player player = wsPlayer.getPlayer(); + player.getRoomUser().setWalkingAllowed(true); + + CurrencyDao.decreaseTickets(player.getDetails(), 1); + player.send(new TICKET_BALANCE(player.getDetails().getTickets())); + + if (isThrown) { + player.getRoomUser().setStatus(StatusType.SWIM, ""); + + int newX = player.getRoomUser().getPosition().getX() + ((wsPlayer.getBalance() < 0 ? -1 : 1)); + int newY = player.getRoomUser().getPosition().getY(); + + Position position = new Position(newX, newY); + position.setRotation(player.getRoomUser().getPosition().getRotation()); + + player.getRoomUser().warp(position, true, false); + } + } + + /** + * Gets the room that wobble squabble is running in. + * + * @return the room + */ + public Room getRoom() { + return room; + } + + /** + * Get the player, 1 or 0 is allowed only. + * + * @return the player, by integer position. + */ + public WobbleSquabblePlayer getPlayer(int num) { + for (WobbleSquabblePlayer wsPlayer : List.of(this.firstPlayer, this.secondPlayer)) { + if (wsPlayer.getOrder() == num) { + return wsPlayer; + } + } + + return null; + } + + /** + * Gets a wobble squabble player by id. + * + * @param id to the user id to get by + * @return the player instance if found + */ + public WobbleSquabblePlayer getPlayerById(int id) { + for (int i = 0; i < 2; i++) { + WobbleSquabblePlayer wsPlayer = this.getPlayer(i); + + if (wsPlayer.getPlayer().getDetails().getId() == id) { + return wsPlayer; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleManager.java new file mode 100644 index 0000000..9c96aa7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleManager.java @@ -0,0 +1,80 @@ +package org.alexdev.havana.game.games.wobblesquabble; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; + +public class WobbleSquabbleManager { + private static WobbleSquabbleManager instance; + + public static int WS_GAME_TICKET_COST = 1; + public static int WS_BALANCE_POINTS = 35; + public static int WS_HIT_POINTS = 13; + public static int WS_HIT_BALANCE_POINTS = 10; + public static int WS_GAME_TIMEOUT_SECS = 60; + + /** + * Returns true or false if the user is in a game of wobble squabble. + * + * @param player the player to check + * @return true, if they are + */ + public boolean isPlaying(Player player) { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return false; + } + + if (!room.getTaskManager().hasTask(this.getName())) { + return false; + } + + WobbleSquabbleGame wsGame = (WobbleSquabbleGame) room.getTaskManager().getTask(this.getName()); + + WobbleSquabblePlayer wsPlayer = wsGame.getPlayerById(player.getDetails().getId()); + return wsPlayer != null; + } + + /** + * Gets the wobble squabble player instance + * + * @param player the player to get for + * @return the ws player instance, if found + */ + public WobbleSquabblePlayer getPlayer(Player player) { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return null; + } + + if (!room.getTaskManager().hasTask(this.getName())) { + return null; + } + + WobbleSquabbleGame wsGame = (WobbleSquabbleGame) room.getTaskManager().getTask(this.getName()); + return wsGame.getPlayerById(player.getDetails().getId()); + } + + /** + * Get the static instance of the wobble squabble manager. + * + * @return the static instance + */ + public static WobbleSquabbleManager getInstance() { + if (instance == null) { + instance = new WobbleSquabbleManager(); + } + + return instance; + } + + /** + * Gets the name of the wobble squabble game task. + * + * @return the game task + */ + public String getName() { + return "WobbleGameTask"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleMove.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleMove.java new file mode 100644 index 0000000..2e678f6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleMove.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.games.wobblesquabble; + +public enum WobbleSquabbleMove { + BALANCE_LEFT(1, "A"), + BALANCE_RIGHT(2, "D"), + HIT_LEFT(3, "W"), + HIT_RIGHT(4, "E"), + WALK_FORWARD(5, "X"), + WALK_BACKWARD(6, "S"), + REBALANCE(7, "0"), + NONE(0, "-"); + + private int id; + private String letter; + + WobbleSquabbleMove(int id, String letter) { + this.id = id; + this.letter = letter; + } + + /** + * Get the wobble squabble move enum. + * + * @param id the id of the move + * @return the enum + */ + public static WobbleSquabbleMove getMove(int id) { + for (WobbleSquabbleMove move : values()) { + if (move.getId() == id) { + return move; + } + } + + return null; + } + + /** + * Get the id of the move. + * + * @return the id + */ + public int getId() { + return id; + } + + /** + * Get the letter of the move. + * + * @return the letter + */ + public String getLetter() { + return letter; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabblePlayer.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabblePlayer.java new file mode 100644 index 0000000..5fd5efe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabblePlayer.java @@ -0,0 +1,196 @@ +package org.alexdev.havana.game.games.wobblesquabble; + +import org.alexdev.havana.game.player.Player; + +public class WobbleSquabblePlayer { + private Player player; + private WobbleSquabbleGame wsGame; + private int position; + private int balance; + private boolean rebalanced; + private boolean hit; + private boolean requiresUpdate; + private WobbleSquabbleMove move; + private int order; + + public WobbleSquabblePlayer(WobbleSquabbleGame wsGame, Player player, int order) { + this.player = player; + this.wsGame = wsGame; + this.move = WobbleSquabbleMove.NONE; + this.order = order; + this.balance = 0; + } + + /** + * Get if the player is balancing correctly. + * + * @return true, if successful + */ + public boolean isBalancing() { + return (this.balance > -100 && this.balance < 100); + } + + public int getScore() { + if (this.isBalancing()) { + if (balance > 0 || balance == 0) + return 100 - balance; + else + return 100 + balance; + } else { + return 0; + } + } + + /** + * Reset the actions of the user. + */ + public void resetActions() { + this.move = WobbleSquabbleMove.NONE; + this.requiresUpdate = false; + this.hit = false; + } + + /** + * Get the current position of the player. + * + * @return the position + */ + public int getPosition() { + return position; + } + + /** + * Set the current position of the player. + * + * @param position the position + */ + public void setPosition(int position) { + this.position = position; + } + + /** + * Get the current balance of the player. + * + * @return the current balance + */ + public int getBalance() { + return balance; + } + + /** + * Set the balance of the player. + * + * @param balance the balance + */ + public void setBalance(int balance) { + this.balance = balance; + } + + /** + * Get whether they've used rebalance. + * + * @return true, if successful + */ + public boolean isRebalanced() { + return rebalanced; + } + + /** + * Set wehther if they've used rebalance. + * + * @param rebalanced true, if successful + */ + public void setRebalanced(boolean rebalanced) { + this.rebalanced = rebalanced; + } + + /** + * Get whether the player has been hit. + * + * @return true, if successful + */ + public boolean isHit() { + return hit; + } + + /** + * Set whether the player has been hit. + * + * @param hit true, if successful + */ + public void setHit(boolean hit) { + this.hit = hit; + } + + /** + * Get whether the wobble squabble player requires an update. + * + * @return true, if successful + */ + public boolean isRequiresUpdate() { + return requiresUpdate; + } + + /** + * Set whether the wobble squabble player requires an update. + * + * @param requiresUpdate true, if successful + */ + public void setRequiresUpdate(boolean requiresUpdate) { + this.requiresUpdate = requiresUpdate; + } + + /** + * Get the current move the player. + * + * @return the move + */ + public WobbleSquabbleMove getMove() { + return move; + } + + /** + * Set the current move the player. + * + * @param move the move + */ + public void setMove(WobbleSquabbleMove move) { + this.move = move; + } + + /** + * Get the wobble squabble game instance. + * + * @return the game instance + */ + public WobbleSquabbleGame getGame() { + return wsGame; + } + + /** + * Gets the player instance of the wobble squabble player. + * + * @return the player instance + */ + public Player getPlayer() { + return player; + } + + /** + * Get the order of the player, 1 or 0. + * + * @return the order + */ + public int getOrder() { + return order; + } + + /** + * Sets the order of the game player. + * + * @param order the order + */ + public void setOrder(int order) { + this.order = order; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleStatus.java b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleStatus.java new file mode 100644 index 0000000..d214523 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/games/wobblesquabble/WobbleSquabbleStatus.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.game.games.wobblesquabble; + +public class WobbleSquabbleStatus { + private int position; + private int balance; + private WobbleSquabbleMove move; + private boolean hit; + + public WobbleSquabbleStatus(int position, int balance, WobbleSquabbleMove move, boolean isHit) { + this.position = position; + this.balance = balance; + this.move = move; + this.hit = isHit; + } + + /** + * Get the current position of the player. + * + * @return the position + */ + public int getPosition() { + return position; + } + + /** + * Set the current position of the player. + * + * @param position the position + */ + public void setPosition(int position) { + this.position = position; + } + + /** + * Get the current balance of the player. + * + * @return the current balance + */ + public int getBalance() { + return balance; + } + + /** + * Set the balance of the player. + * + * @param balance the balance + */ + public void setBalance(int balance) { + this.balance = balance; + } + + /** + * Get the current move the player. + * + * @return the move + */ + public WobbleSquabbleMove getMove() { + return move; + } + + /** + * Get whether the player has been hit. + * + * @return true, if successful + */ + public boolean isHit() { + return hit; + } + + /** + * Set whether the player has been hit. + * + * @param hit true, if successful + */ + public void setHit(boolean hit) { + this.hit = hit; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/groups/Group.java b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/Group.java new file mode 100644 index 0000000..0fe7346 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/Group.java @@ -0,0 +1,271 @@ +package org.alexdev.havana.game.groups; + +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.GroupMemberDao; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.List; + +public class Group { + private int id; + private String name; + private String description; + private int ownerId; + private int roomId; + private String badge; + private boolean recommended; + private String background; + private int views; + private int topics; + private int groupType; + private GroupForumType forumType; + private GroupPermissionType forumPermission; + private String alias; + private long createdDate; + private List members; + private List pendingMembers; + + public Group(int id, String name, String description, int ownerId, int roomId, String badge, boolean recommended, String background, int views, int topics, int groupType, int forumType, int forumPermission, String alias, long createdDate) { + this.id = id; + this.name = WordfilterManager.filterSentence(name); + this.description = WordfilterManager.filterSentence(description); + this.ownerId = ownerId; + this.roomId = roomId; + this.badge = badge; + this.recommended = recommended; + this.background = background; + this.views = views; + this.topics = topics; + this.groupType = groupType; + this.forumType = GroupForumType.getById(forumType); + this.forumPermission = GroupPermissionType.getById(forumPermission); + this.alias = alias == null ? "" : alias; + this.createdDate = createdDate; + } + + public static boolean hasTopicAdmin(PlayerRank rank) { + return rank.getRankId() >= 5; + } + + public boolean hasAdministrator(int userId) { + var groupMember = getMember(userId); + return groupMember != null && (groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR || groupMember.getMemberRank() == GroupMemberRank.OWNER); + } + + public boolean canViewForum(GroupMember groupMember) { + if (this.forumType == GroupForumType.PUBLIC) { + return true; + } + + return groupMember != null; + } + + public boolean canReplyForum(GroupMember groupMember) { + if (this.forumType == GroupForumType.PUBLIC) { + return true; + } + + return groupMember != null; + } + + public boolean canForumPost(GroupMember groupMember) { + if (this.forumPermission == GroupPermissionType.EVERYONE) { + return true; + } + + if (groupMember != null) { + if (this.forumPermission == GroupPermissionType.ADMIN_ONLY) { + return groupMember.getMemberRank() == GroupMemberRank.OWNER || groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR; + } + + if (this.forumPermission == GroupPermissionType.MEMBER_ONLY) { + return true; + } + } + + return false; + } + + public GroupMember getMember(int userId) { + if (this.ownerId == userId) { + return new GroupMember(this.ownerId, this.id, false, 3); + } + + var member = GroupMemberDao.getMember(this.id, userId); + + if (member == null || member.isPending()) { + return null; + } + + return member; + } + + public GroupMember getPendingMember(int userId) { + if (this.ownerId == userId) { + return new GroupMember(this.ownerId, this.id, false, 3); + } + + var member = GroupMemberDao.getMember(this.id, userId); + + if (member.isPending()) { + return member; + } else { + return null; + } + } + + public boolean isMember(int userId) { + if (this.ownerId == userId) { + return true; + } + + var member = GroupMemberDao.getMember(this.id, userId); + return member != null && !member.isPending(); + } + + public boolean isPendingMember(int userId) { + if (this.ownerId == userId) { + return false; + } + + var member = GroupMemberDao.getMember(this.id, userId); + return member != null && member.isPending(); + } + + public String generateClickLink() { + String sitePath = GameConfiguration.getInstance().getString("site.path"); + + if (this.alias != null && !this.alias.isBlank()) { + return sitePath + "/groups/" + this.alias; + } else { + return sitePath + "/groups/" + this.id + "/id"; + } + } + + public String getCreatedDate() {//May 5, 2019 + return DateUtil.getDate(this.createdDate, "MMM dd, YYYY"); + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getOwnerId() { + return ownerId; + } + + public int getRoomId() { + return roomId; + } + + public void setRoomId(int roomId) { + this.roomId = roomId; + } + + public String getBadge() { + return badge.replaceAll("[^a-zA-Z0-9]", ""); + } + + public void setBadge(String badge) { + this.badge = badge; + } + + public boolean isRecommended() { + return recommended; + } + + public void setRecommended(boolean recommended) { + this.recommended = recommended; + } + + public String getBackground() { + return background; + } + + public void setBackground(String background) { + this.background = background; + } + + public int getViews() { + return views; + } + + public void setViews(int views) { + this.views = views; + } + + public int getTopics() { + return topics; + } + + public void setTopics(int topics) { + this.topics = topics; + } + + public int getGroupType() { + return groupType; + } + + public void setGroupType(int groupType) { + this.groupType = groupType; + } + + public GroupForumType getForumType() { + return forumType; + } + + public void setForumType(GroupForumType forumType) { + this.forumType = forumType; + } + + public GroupPermissionType getForumPermission() { + return forumPermission; + } + + public void setForumPermission(GroupPermissionType forumPermission) { + this.forumPermission = forumPermission; + } + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public void save() { + GroupDao.saveGroup(this); + } + + public void saveBackground() { + GroupDao.saveBackground(this); + } + + public void saveBadge() { + GroupDao.saveBadge(this); + } + + public int getMemberCount(boolean isPending) { + return GroupMemberDao.countMembers(this.id, isPending); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupForumType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupForumType.java new file mode 100644 index 0000000..3008730 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupForumType.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.game.groups; + +public enum GroupForumType { + PUBLIC(0), + PRIVATE(1); + + private final int id; + + GroupForumType(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static GroupForumType getById(int id) { + for (var forumType : values()) { + if (forumType.getId() == id) { + return forumType; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMember.java b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMember.java new file mode 100644 index 0000000..3b45d47 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMember.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.game.groups; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; + +public class GroupMember { + private int userId; + private int groupId; + private boolean isPending; + private GroupMemberRank memberRank; + private PlayerDetails playerData; + + public GroupMember(int userId, int groupId, boolean isPending, int memberRank) { + this.userId = userId; + this.groupId = groupId; + this.isPending = isPending; + this.memberRank = GroupMemberRank.getByRankId(memberRank); + this.playerData = PlayerManager.getInstance().getPlayerData(this.userId); + } + + public int getUserId() { + return userId; + } + + public PlayerDetails getUser() { + return playerData; + } + + public int getGroupId() { + return groupId; + } + + public boolean isPending() { + return isPending; + } + + public boolean isFavourite(int groupId) { + return this.playerData.getFavouriteGroupId() == groupId; + } + + public GroupMemberRank getMemberRank() { + return memberRank; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMemberRank.java b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMemberRank.java new file mode 100644 index 0000000..a004a63 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupMemberRank.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.groups; + +public enum GroupMemberRank { + MEMBER(1, 3), + ADMINISTRATOR(2, 2), + OWNER(3, 1); + + private final int rankId; + private final int clientRank; + + GroupMemberRank(int rankId, int clientRank) { + this.rankId = rankId; + this.clientRank = clientRank; + } + + public static GroupMemberRank getByRankId(int rankId) { + for (var rank : values()) { + if (rank.getRankId() == rankId) { + return rank; + } + } + + return null; + } + + public int getRankId() { + return rankId; + } + + public int getClientRank() { + return clientRank; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupPermissionType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupPermissionType.java new file mode 100644 index 0000000..ac20914 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/groups/GroupPermissionType.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.groups; + +public enum GroupPermissionType { + ADMIN_ONLY(2), + MEMBER_ONLY(1), + EVERYONE(0); + + private final int id; + + GroupPermissionType(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static GroupPermissionType getById(int id) { + for (var forumType : values()) { + if (forumType.getId() == id) { + return forumType; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideInviteTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideInviteTask.java new file mode 100644 index 0000000..b5028a2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideInviteTask.java @@ -0,0 +1,47 @@ +package org.alexdev.havana.game.guides; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.tutorial.GUIDE_FOUND; +import org.alexdev.havana.messages.outgoing.tutorial.INVITING_COMPLETED; +import org.alexdev.havana.util.DateUtil; + +import java.util.List; + +public class GuideInviteTask implements Runnable { + @Override + public void run() { + List waitingForGuides = GuideManager.getInstance().getAvaliableBeginners(); + + for (Player beginner : waitingForGuides) { + beginner.getGuideManager().getInvited().removeIf(userId -> PlayerManager.getInstance().getPlayerById(userId) == null); + + for (Player guide : GuideManager.getInstance().getGuidesAvailable()) { + if (!guide.getGuideManager().isWaitingForInvitations()) { + continue; + } + + if (guide.getGuideManager().hasInvite(beginner.getDetails().getId())) { + continue; + } + + if (beginner.getGuideManager().hasInvited(guide.getDetails().getId())) { + continue; + } + + beginner.send(new GUIDE_FOUND(guide.getDetails().getId())); + + guide.getGuideManager().addInvite(beginner.getDetails().getId(), beginner.getDetails().getName()); + beginner.getGuideManager().addInvited(guide.getDetails().getId()); + } + + if (beginner.getGuideManager().getInvited().isEmpty()) { + if (DateUtil.getCurrentTimeSeconds() > beginner.getGuideManager().getStartedForWaitingGuidesTime()) { + beginner.getGuideManager().setWaitingForGuide(false); + beginner.getGuideManager().setStartedForWaitingGuidesTime(0); + beginner.send(new INVITING_COMPLETED(INVITING_COMPLETED.InvitationResult.FAILURE)); + } + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideManager.java new file mode 100644 index 0000000..99c253b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/guides/GuideManager.java @@ -0,0 +1,253 @@ +package org.alexdev.havana.game.guides; + +import org.alexdev.havana.dao.mysql.AlertsDao; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.alerts.AlertType; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.outgoing.tutorial.INVITING_COMPLETED; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class GuideManager { + public static int MAX_SIMULTANEOUS_GUIDING = 10; + private static GuideManager instance; + private final GuideInviteTask guideTask; + + public GuideManager() { + this.guideTask = new GuideInviteTask(); + GameScheduler.getInstance().getService().scheduleAtFixedRate(this.guideTask, 0, 10, TimeUnit.SECONDS); + } + + /** + * Get if guides is disabled. + * + * @return true, if successful + */ + public boolean isDisabled() { + if (!GameConfiguration.getInstance().getBoolean("tutorial.enabled")) { + return true; + } + + int guideGroupId = GameConfiguration.getInstance().getInteger("guides.group.id"); + + if (guideGroupId < 1) { + return true; + } + + return false; + } + + /** + * Get if the user is a guide or not. + * + * @param player the player to check + * @return true, if successful + */ + public boolean isGuide(Player player) { + int guideGroupId = GameConfiguration.getInstance().getInteger("guides.group.id"); + + if (guideGroupId < 1) { + return false; + } + + var guideGroup = player.getJoinedGroup(guideGroupId); + + if (guideGroup == null) { + return false; + } + + int daysSinceJoined = (int) Math.floor(TimeUnit.SECONDS.toDays((long) (DateUtil.getCurrentTimeSeconds() - Math.floor(player.getDetails().getJoinDate())))); + + if (!(daysSinceJoined >= 30)) { + return false; + } + + return guideGroup.isMember(player.getDetails().getId()); + } + + /** + * Called when the tutor enters the room. + * + * @param guide the guide + * @param newb the new player + */ + public void tutorEnterRoom(Player guide, Player newb) { + if (newb.getStatisticManager().getIntValue(PlayerStatistic.GUIDED_BY) > 0) { + return; + } + + //guide.getGuideManager().setHasBubble(true); + + /*newb.getRoomUser().getRoom().send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeInt(newb.getRoomUser().getRoom().getId()); + } + + @Override + public short getHeader() { + return 424; + } + });*/ + + newb.send(new INVITING_COMPLETED(INVITING_COMPLETED.InvitationResult.SUCCESS)); + newb.getMessenger().addFriend(new MessengerUser(guide.getDetails())); + newb.getGuideManager().setGuidable(false); + + newb.getStatisticManager().setLongValue(PlayerStatistic.GUIDED_BY, guide.getDetails().getId()); + newb.getStatisticManager().setLongValue(PlayerStatistic.HAS_TUTORIAL, 0); + + guide.getGuideManager().refreshGuidingUsers(); + } + + /** + * Try progress guide task upon login. + * + * @param player the player to check + */ + public void tryProgress(Player player) { + /*if (player.getGuideManager().isGuide()) { + for (var user : player.getGuideManager().getGuiding()) { + if (!player.getMessenger().hasFriend(user.getUserId())) { + PlayerStatisticsDao.updateStatistic(user.getUserId(), PlayerStatistic.GUIDED_BY, "0"); + } + } + } else { + */ + var statisticsManager = player.getStatisticManager(); + int guideId = statisticsManager.getIntValue(PlayerStatistic.GUIDED_BY); + + if (guideId <= 0) { + return; + } + + long onlineTime = TimeUnit.SECONDS.toMinutes(statisticsManager.getLongValue(PlayerStatistic.ONLINE_TIME)); + long timeRequired = GameConfiguration.getInstance().getLong("guide.completion.minutes"); + boolean hasMetOnlineRequirement = onlineTime >= timeRequired; + + if (!hasMetOnlineRequirement) { + if (!MessengerDao.friendExists(player.getDetails().getId(), guideId)/*player.getMessenger().hasFriend(guideId)*/) { + statisticsManager.setLongValue(PlayerStatistic.GUIDED_BY, 0); + statisticsManager.setLongValue(PlayerStatistic.HAS_TUTORIAL, 1); + statisticsManager.setLongValue(PlayerStatistic.IS_GUIDABLE, 1); + } + } else { + statisticsManager.setLongValue(PlayerStatistic.GUIDED_BY, 0); + statisticsManager.setLongValue(PlayerStatistic.HAS_TUTORIAL, 0); + statisticsManager.setLongValue(PlayerStatistic.IS_GUIDABLE, 0); + + PlayerStatisticsDao.incrementStatistic(guideId, PlayerStatistic.PLAYERS_GUIDED, 1); + int totalGuided = (int) PlayerStatisticsDao.getStatisticLong(guideId, PlayerStatistic.PLAYERS_GUIDED); + + AlertsDao.createAlert(guideId, AlertType.TUTOR_SCORE, "You have just completed guiding another new player! You have now guided a total of " + totalGuided + " players."); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_STUDENT, player); + } + //} + } + + public void checkGuidingFriends(Player player) { + if (player.getGuideManager().isGuide()) { + for (var user : player.getGuideManager().getGuiding()) { + if (!player.getMessenger().hasFriend(user.getUserId())) { + PlayerStatisticsDao.updateStatistic(user.getUserId(), PlayerStatistic.GUIDED_BY, "0"); + } + } + } + } + + /** + * Try and clear tutorial after user doesn't want to do the tutoral nor guides. + * + * @param player the player + */ + public void tryClearTutorial(Player player) { + player.getGuideManager().setHasTutorial(false); + player.getGuideManager().setCanUseTutorial(false); + player.getGuideManager().setCancelTutorial(false); + player.getStatisticManager().setLongValue(PlayerStatistic.HAS_TUTORIAL, 0); + + if (player.getGuideManager().isGuidable()) { + player.getGuideManager().setGuidable(false); + } + } + + /** + * Get the list of guides available. + * + * @return the list of guides + */ + public List getGuidesAvailable() { + List guides = new ArrayList<>(); + + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (!player.getGuideManager().isGuide()) { + continue; + } + + if (player.getGuideManager().getGuiding().size() >= MAX_SIMULTANEOUS_GUIDING) { + continue; + } + + guides.add(player); + } + + return guides; + } + + /** + * Get a list of people waiting for a guide. + * + * @return the list of players + */ + public List getAvaliableBeginners() { + List guides = new ArrayList<>(); + + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (player.getGuideManager().isGuide()) { + continue; + } + + if (!player.getGuideManager().isGuidable()) { + continue; + } + + if (!player.getGuideManager().isWaitingForGuide()) { + continue; + } + + if (player.getRoomUser().getRoom() == null || + player.getRoomUser().getRoom().isPublicRoom() || + !player.getRoomUser().getRoom().isOwner(player.getDetails().getId())) { + continue; + } + + guides.add(player); + } + + return guides; + } + + /** + * Gets the instance + * + * @return the instance + */ + public static GuideManager getInstance() { + if (instance == null) { + instance = new GuideManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusManager.java new file mode 100644 index 0000000..7e847c5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusManager.java @@ -0,0 +1,183 @@ +package org.alexdev.havana.game.infobus; + +import org.alexdev.havana.dao.mysql.InfobusDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.infobus.BUS_DOOR; +import org.alexdev.havana.messages.outgoing.infobus.CANNOT_ENTER_BUS; +import org.alexdev.havana.messages.outgoing.infobus.POLL_QUESTION; +import org.alexdev.havana.messages.outgoing.infobus.VOTE_RESULTS; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class InfobusManager { + private static InfobusManager instance; + private boolean canUpdateResults; + private boolean isDoorOpen; + private boolean isEventActive; + private InfobusPoll currentPoll; + + public InfobusManager() { + } + + public void stopEvent() { + var room = RoomManager.getInstance().getRoomByModel("park_b"); + + if (room != null) { + for (Player player : room.getEntityManager().getPlayers()) { + var composer = new CANNOT_ENTER_BUS("The Infobus event has now ended. Please check the site for updates in future."); + + player.send(composer); + player.getRoomUser().getPacketQueueAfterRoomLeave().add(composer); + + player.getRoomUser().kick(false, true); + player.getRoomUser().setBeingKicked(false); + } + } + + this.updateDoorStatus(false); + this.currentPoll = null; + } + + public void updateDoorStatus(boolean doorStatus) { + this.isDoorOpen = doorStatus; + + var park = RoomManager.getInstance().getRoomByModel("park_a"); + + if (park != null) { ; + park.send(new BUS_DOOR(this.isDoorOpen)); + } + } + + /** + * Initiate polling to collect poll data. + */ + public void startPolling(int pollId) { + this.canUpdateResults = false; + this.currentPoll = InfobusDao.get(pollId); + + if (currentPoll == null) { + return; + } + + var room = RoomManager.getInstance().getRoomByModel("park_b"); + + if (room == null) { + return; + } + + for (Player player : room.getEntityManager().getPlayers()) { + //if (player.getNetwork().isFlashConnected()) { + // player.send(new ALERT("Polling has started, unfortunately, flash clients can't vote as it is unsupported by the client.")); + // continue; + //} + + if (!InfobusDao.hasAnswer(currentPoll.getId(), player.getDetails().getId())) { + player.send(new POLL_QUESTION(currentPoll.getPollData().getQuestion(), currentPoll.getPollData().getAnswers())); + } + + } + + // Polling timer + /*this.pollRunnable = new FutureRunnable() { + public void run() { + try { + if (!getDoorStatus() || (currentPoll != null && currentPoll.getPollData().getAnswers().isEmpty())) { + cancelFuture(); + return; + } + + if (pollSeconds.getAndDecrement() == 0) { + canUpdateResults = true; + showPollResults(); + cancelFuture(); + } + + } catch (Exception ex) { + Log.getErrorLogger().error("Error occurred in polling: ", ex); + } + } + }; + + var future = GameScheduler.getInstance().getService().scheduleAtFixedRate(this.pollRunnable, 0, 1, TimeUnit.SECONDS); + this.pollRunnable.setFuture(future);*/ + + GameScheduler.getInstance().getService().schedule(() -> { + try { + showPollResults(currentPoll.getId()); + } catch (Exception ex) { + Log.getErrorLogger().error("Error occurred in polling: ", ex); + } + }, 30, TimeUnit.SECONDS); + } + + public void showPollResults(int pollId) { + var currentPoll = InfobusDao.get(pollId); + + if (currentPoll == null) { + return; + } + + this.canUpdateResults = true; + + var room = RoomManager.getInstance().getRoomByModel("park_b"); + + if (room != null) { + var answerResults = InfobusDao.getAnswers(currentPoll.getId()); + int totalAnswers = answerResults.values().stream().mapToInt(Integer::intValue).sum(); + + room.send(new VOTE_RESULTS(currentPoll.getPollData().getQuestion(), currentPoll.getPollData().getAnswers(), answerResults, totalAnswers)); + } + } + + public boolean isDoorOpen() { + return isDoorOpen; + } + + public void setDoorOpen(boolean doorOpen) { + isDoorOpen = doorOpen; + } + + public boolean isEventActive() { + return isEventActive; + } + + public void setEventActive(boolean eventActive) { + isEventActive = eventActive; + } + + public InfobusPoll getCurrentPoll() { + return currentPoll; + } + + /** + * Get the infobus manager instance. + * + * @return the infobus manager + */ + public static InfobusManager getInstance() { + if (instance == null) { + instance = new InfobusManager(); + } + + return instance; + } + + public boolean canUpdateResults() { + return canUpdateResults; + } + + public int getDoorX() { + return 28; + } + + public int getDoorY() { + return 4; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPoll.java b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPoll.java new file mode 100644 index 0000000..3acfa7a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPoll.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.infobus; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.util.DateUtil; + +public class InfobusPoll { + private int id; + private int initiatedBy; + private InfobusPollData infobusPollData; + private long createdAt; + + public InfobusPoll(int id, int initiatedBy, InfobusPollData infobusPollData, long createdAt) { + this.id = id; + this.initiatedBy = initiatedBy; + this.infobusPollData = infobusPollData; + this.createdAt = createdAt; + } + + public int getId() { + return id; + } + + public int getInitiatedBy() { + return initiatedBy; + } + + public String getCreator() { + return PlayerDao.getName(this.initiatedBy); + } + + public InfobusPollData getPollData() { + return infobusPollData; + } + + public long getCreatedAt() { + return createdAt; + } + + public String getCreatedAtFormatted() { + return DateUtil.getDate(createdAt, DateUtil.LONG_DATE); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPollData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPollData.java new file mode 100644 index 0000000..68e013e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/infobus/InfobusPollData.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.game.infobus; + +import java.util.ArrayList; +import java.util.List; + +public class InfobusPollData { + private String question; + private List answers; + + public InfobusPollData(String question) { + this.question = question; + this.answers = new ArrayList<>(); + } + + public String getQuestion() { + return question; + } + + public List getAnswers() { + return answers; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/inventory/Inventory.java b/Havana-Server/src/main/java/org/alexdev/havana/game/inventory/Inventory.java new file mode 100644 index 0000000..8f8b7ac --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/inventory/Inventory.java @@ -0,0 +1,307 @@ +package org.alexdev.havana.game.inventory; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.inventory.INVENTORY; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +public class Inventory { + private static final int MAX_ITEMS_PER_PAGE = 9; + + private int currentPage = 0; + private Player player; + + private List items; + private List displayedItems; + private Map> paginatedItems; + + private int handStripPageIndex; + + public Inventory(Player player) { + this.player = player; + this.reload(); + } + + /** + * Reload inventory. + */ + public void reload() { + this.handStripPageIndex = 0; + this.items = ItemDao.getInventory(this.player.getDetails().getId()); + + if (this.player.getRoomUser().getRoom() != null) { + this.items.removeIf(x -> this.player.getRoomUser().getRoom().getItems().stream().anyMatch(item -> x.getDatabaseId() == item.getDatabaseId())); + } + + this.refreshPagination(); + + for (var item : this.items) { + item.assignVirtualId(); + } + } + + /** + * Refreshes the pagination by making the most recently bought items appear first. + */ + private void refreshPagination() { + this.displayedItems = new CopyOnWriteArrayList<>(); + int orderId = 0; + + for (Item item : this.items) { + // Don't show items if they are hidden + if (!item.isVisible()) { + continue; + } + + // Don't show items if they are currently in trade window + if (this.player.getRoomUser().getTradePartner() != null) { + if (this.player.getRoomUser().getTradeItems().contains(item)) { + continue; + } + } + + if (orderId != item.getOrderId()) { + item.setOrderId(orderId); + item.save(); + } + + orderId++; + this.displayedItems.add(item); + } + + this.displayedItems.sort(Comparator.comparingInt(Item::getOrderId)); + this.paginatedItems = new ConcurrentHashMap<>(StringUtil.paginate(this.displayedItems, MAX_ITEMS_PER_PAGE)); + } + + /** + * Get the view of the inventory. + * + * @param stripView the view type + */ + public void getView(String stripView) { + this.refreshPagination(); + //this.paginatedItems = StringUtil.paginate(this.items, MAX_ITEMS_PER_PAGE); + this.changeView(stripView); + + Map casts = this.getCasts(); + this.player.send(new INVENTORY(this, casts)); + + } + + /** + * Get the inventory casts for opening hand. + */ + private Map getCasts() { + LinkedHashMap casts = new LinkedHashMap<>(); + + if (this.paginatedItems.containsKey(this.handStripPageIndex)) { + int stripSlotId = this.handStripPageIndex * MAX_ITEMS_PER_PAGE; + + for (Item item : this.paginatedItems.get(this.handStripPageIndex)) { + addItemCast(casts, stripSlotId++, item); + } + } + + return casts; + } + + /** + * Add item casts. + */ + private void addItemCast(LinkedHashMap casts, int slotId, Item item) { + /*if (this.player.getRoomUser().getRoom() != null) { + var room = this.player.getRoomUser().getRoom(); + var roomItem = room.getItemManager().getByDatabaseId(item.getDatabaseId()); + + // DO NOT add item into inventory if it's already in the room. + if (roomItem != null) { + System.out.println("Duplicate item."); + return; + } + }*/ + + casts.put(slotId, item); + + } + + /** + * Change the inventory view over. + * + * @param stripView the strip view to change + */ + private void changeView(String stripView) { + if (stripView.equals("new")) { + this.handStripPageIndex = 0; + } + + if (stripView.equals("next")) { + this.handStripPageIndex++; + } + + if (stripView.equals("prev")) { + this.handStripPageIndex--; + } + + if (stripView.equals("last")) { + this.handStripPageIndex = this.paginatedItems.size() - 1; + } + + if (stripView.equals("current")) { + if (this.handStripPageIndex > this.paginatedItems.size() - 1) { + this.handStripPageIndex = this.paginatedItems.size() - 1; + } + } + + if (!this.paginatedItems.containsKey(this.handStripPageIndex)) { + this.handStripPageIndex = 0; + } + } + + /** + * Serialise item in hand. + * + * @param response the response to write the item to + * @param item the item to use the data for the packet + * @param stripSlotId the slot in the hand + */ + public void serialise(NettyResponse response, Item item, int stripSlotId) { + response.writeInt(item.getVirtualId()); + response.writeInt(stripSlotId); + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeString("I"); + } else { + response.writeString("S"); + } + + response.writeInt(item.getVirtualId()); + response.writeInt(item.getDefinition().getSpriteId()); + + switch (item.getDefinition().getSprite()) { + case "landscape": + response.writeInt(4); + break; + case "wallpaper": + response.writeInt(2); + break; + case "floor": + response.writeInt(3); + break; + case "poster": + response.writeInt(6); + break; + default: + response.writeInt(1); + break; + } + + response.writeString((item.hasBehaviour(ItemBehaviour.PRESENT) || item.hasBehaviour(ItemBehaviour.ECO_BOX)) ? "" : item.getCustomData()); + response.writeBool(item.getDefinition().isRecyclable()); // recylecable + response.writeBool(item.getDefinition().isTradable()); // tradeable + response.writeBool(true); // groupable + + //response.writeBool(false); // Marketplace can sell + response.writeInt(-1); + + if (!item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeString(""); + response.writeInt(-1); + } + } + + /** + * Get inventory item by id. + * + * @param itemId the id used to get the inventory item + * @return the inventory item + */ + public Item getItem(int itemId) { + for (Item item : this.items) { + if (item.getVirtualId() == itemId) { + return item; + } + } + + return null; + } + + /** + * Get inventory item by id. + * + * @param itemId the id used to get the inventory item + * @return the inventory item + */ + public Item getItemByDatabaseId(long itemId) { + for (Item item : this.items) { + if (item.getDatabaseId() == itemId) { + return item; + } + } + + return null; + } + + /** + * Get all soundset track IDs within the inventory. + * + * @return the list of soundsets + */ + public List getSoundsets() { + List handSoundsets = new ArrayList<>(); + + for (Item item : player.getInventory().getItems()) { + if (!item.isVisible()) { + continue; + } + + if (item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + handSoundsets.add(Integer.parseInt(item.getDefinition().getSprite().split("_")[2])); + } + } + + return handSoundsets; + } + + /** + * Add the item to the start of items list. + * + * @param item the item + */ + public void addItem(Item item) { + this.items.remove(item); + this.items.add(0, item); + } + + /** + * Get the list of inventory items. + * + * @return the list of items + */ + public List getItems() { + return items; + } + + /** + * Get the items that the user can see in their hand (non-hidden items). + * + * @return the list of displayed items + */ + public List getDisplayedItems() { + return displayedItems; + } + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/Item.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Item.java new file mode 100644 index 0000000..c4b435d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Item.java @@ -0,0 +1,860 @@ +package org.alexdev.havana.game.item; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.PhotoDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.extradata.ExtraDataManager; +import org.alexdev.havana.game.item.extradata.types.TrophyExtraData; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.types.TeleportInteractor; +import org.alexdev.havana.game.item.roller.RollingData; +import org.alexdev.havana.game.pathfinder.AffectedTile; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.room.mapping.RoomTileState; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; +import org.alexdev.havana.messages.outgoing.rooms.items.STUFFDATAUPDATE; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang.StringUtils; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; + +public class Item { + public static final String DEFAULT_ROOMDIMMER_CUSTOM_DATA = "1,1,1,#000000,255"; + public static final String PRESENT_DELIMETER = "|"; + + private int id; + private long databaseId; + private int orderId; + private int ownerId; + private int roomId; + + private ItemDefinition definition; + private int definitionId; + + private Position position; + private String wallPosition; + private String customData; + private String currentProgram; + private String currentProgramValue; + + private boolean requiresUpdate; + private boolean isCurrentRollBlocked; + private RollingData rollingData; + private boolean isHidden; + private boolean isInTrade; + private long expireTime; + private long createdAt; + private long lastPlacedTime; + private boolean isDeleted; + private String trophyData; + private Room temporaryRoom; + private Position teleportTo; + private Position swimTo; + + public Item() { + this.id = 0; + this.definition = new ItemDefinition(); + this.position = new Position(); + this.customData = ""; + this.wallPosition = ""; + this.currentProgram = ""; + this.currentProgramValue = ""; + this.requiresUpdate = false; + this.rollingData = null; + this.expireTime = -1; + this.createdAt = DateUtil.getCurrentTimeSeconds(); + this.temporaryRoom = null; + } + + public void fill(long id, int orderId, int ownerId, int roomId, int definitionId, int X, int Y, double Z, int rotation, String wallPosition, String customData, boolean isHidden, boolean isInTrade, long expireTime, long createdAt) { + this.databaseId = id; + this.orderId = orderId; + this.ownerId = ownerId; + this.roomId = roomId; + this.definition = null; + this.definitionId = definitionId; + this.position = new Position(X, Y, Z, rotation, rotation); + this.wallPosition = wallPosition; + this.customData = customData; + this.rollingData = null; + this.isHidden = isHidden; + this.isInTrade = isInTrade; + this.setDefinitionId(this.definitionId); + this.expireTime = expireTime; + this.createdAt = createdAt; + + //performPhotoDateCheck(); + } + + /** + * Temporary method to fix camera so it shows / instead of - in camera photo. + */ + private void performPhotoDateCheck() { + if (!this.getDefinition().hasBehaviour(ItemBehaviour.PHOTO)) { + return; + } + + if (!this.customData.contains(Character.toString((char) 13))) { + return; + } + + String[] parts = this.customData.split(Character.toString((char) 13)); + String photoMessage = this.customData.substring(parts[0].length() + 1); + try { + if (parts[0].contains("-")) { + Photo photo = PhotoDao.getPhoto(this.databaseId); + this.customData = DateUtil.getDate(photo.getTime(), DateUtil.CAMERA_DATE) + (char)13 + photoMessage; + ItemDao.updateItem(this); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + + /** + * Broadcast item program to current room, used for the pool lift, booth, pool ladders, etc + * for special effects like splashing, closing/open curtains, etc. + * + * @param value the new program value to show + */ + public void showProgram(String value) { + if (value != null) { + this.currentProgramValue = value; + } + + Room room = this.getRoom(); + + if (room != null) { + if (StringUtil.isNullOrEmpty(this.currentProgramValue)) { + room.send(new SHOWPROGRAM(new String[]{this.currentProgram })); + } else { + room.send(new SHOWPROGRAM(new String[]{this.currentProgram, this.currentProgramValue})); + } + } + } + + /** + * Update user statuses on items with their old position and new position. + * The old position is never null if the item is moved. + * + * @param oldPosition the old position of the item + */ + public void updateEntities(Position oldPosition) { + if (this.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + return; + } + + if (this.getRoom() == null) { + return; + } + + List entitiesToUpdate = new ArrayList<>(); + + if (oldPosition != null) { + for (Position position : AffectedTile.getAffectedTiles(this, oldPosition.getX(), oldPosition.getY(), oldPosition.getRotation())) { + RoomTile tile = this.getRoom().getMapping().getTile(position); + + if (tile == null) { + continue; + } + + entitiesToUpdate.addAll(tile.getEntireEntities()); + } + } + + for (Position position : AffectedTile.getAffectedTiles(this)) { + RoomTile tile = this.getRoom().getMapping().getTile(position); + + if (tile == null) { + continue; + } + + /*var entities = tile.getEntities(); + + for (Entity entity : entities) { + var currentItem = entity.getRoomUser().getCurrentItem(); + + if (currentItem != null) { + RoomTile tile1 = this.getRoom().getMapping().getTile(entity.getRoomUser().getPosition()); + + if (tile1.getHighestItem() != currentItem) { + if (currentItem.getDefinition().getInteractionType().getTrigger() != null) { + currentItem.getDefinition().getInteractionType().getTrigger().onEntityStop(entity, entity.getRoomUser(), currentItem); + } + } + } + }*/ + + entitiesToUpdate.addAll(tile.getEntireEntities()); + } + + for (Entity entity : entitiesToUpdate) { + entity.getRoomUser().invokeItem(oldPosition, true); + } + } + + /** + * Get the total height, which is the height of the item plus stack size. + * + * @return the total height + */ + public double getTotalHeight() { + double z = 0; + + if (this.getDefinition().getTopHeight() < 0) { + z = this.position.getZ() + ItemDefinition.DEFAULT_TOP_HEIGHT; + } else { + if (this.getDefinition().getInteractionType() == InteractionType.MULTI_HEIGHT) { + int currentState = (this.customData.length() > 0 && StringUtils.isNumeric(this.customData)) ? Integer.parseInt(this.customData) : 0; + + if (this.getDefinition().getHeights().isEmpty()) { + z += this.getDefinition().getTopHeight(); + } else{ + if (currentState + 1> this.getDefinition().getHeights().size()) { + currentState = 0; + this.customData = "0"; + } + + z += this.getDefinition().getHeights().get(currentState) + this.getDefinition().getTopHeight(); + } + + + } else { + z = this.getDefinition().getTopHeight(); + } + } + + + return this.position.getZ() + z; + } + + /** + * Get whether or not the item is walkable. + * + * @return true, if successful. + */ + public boolean isWalkable(Entity entity, Position selectedPosition) { + if (entity == null && this.hasBehaviour(ItemBehaviour.CAN_NOT_STACK_ON_TOP)) + return false; + + if (this.getDefinition().getSprite().equals("poolLift")) { + return this.currentProgramValue.equals("open"); + } + + if (this.getDefinition().getSprite().equals("poolBooth")) { + return this.currentProgramValue.equals("open"); + } + + if (this.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)) { + return true; + } + + if (this.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) { + return true; + } + + if (this.hasBehaviour(ItemBehaviour.CAN_STAND_ON_TOP)) { + return true; + } + + if (this.hasBehaviour(ItemBehaviour.TELEPORTER)) { + return this.customData.equals(TeleportInteractor.TELEPORTER_OPEN) || this.hasBehaviour(ItemBehaviour.DOOR_TELEPORTER); + } + + if (this.hasBehaviour(ItemBehaviour.GATE) || this.hasBehaviour(ItemBehaviour.ONE_WAY_GATE)) { + return this.isGateOpen(); + } + + if (this.hasBehaviour(ItemBehaviour.SOLID_SINGLE_TILE)) { + return !(this.position.equals(selectedPosition)); + } + + return false; + } + + public boolean isGateOpen() { + if (this.hasBehaviour(ItemBehaviour.GATE) || this.hasBehaviour(ItemBehaviour.ONE_WAY_GATE)) { + return this.customData.equals("1"); + } + + return false; + } + + /** + * Send status update of the item. + */ + public void updateStatus() { + Room room = this.getRoom(); + + if (room != null) { + room.send(new STUFFDATAUPDATE(this)); + } + } + + /** + * Queue item saving. + */ + public void save() { + GameScheduler.getInstance().queueSaveItem(this); + } + + /** + * Queue item deletion. + */ + public void delete() { + this.isDeleted = true; + GameScheduler.getInstance().queueDeleteItem(this.getDatabaseId()); + } + + /** + * Serialise item function for item handling packets. + * + * @param response the response to serialise to + */ + public void serialise(NettyResponse response) { + ItemDefinition definition = this.getDefinition(); + + if (definition.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + boolean hasDimensions = this.hasBehaviour(ItemBehaviour.EXTRA_PARAMETER); + + response.writeInt(hasDimensions ? 1 : 0); + response.writeString(this.customData); + response.writeString(definition.getSprite()); + response.writeInt(this.position.getX()); + response.writeInt(this.position.getY()); + response.writeInt((int) this.position.getZ()); + + if (!hasDimensions) { + response.writeInt(this.position.getRotation()); + } else { + response.writeInt(this.getDefinition().getLength()); + response.writeInt(this.getDefinition().getWidth()); + } + } else { + if (this.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeString(this.id); + response.writeInt(definition.getSpriteId()); + response.writeString(this.wallPosition); + + if (this.hasBehaviour(ItemBehaviour.POST_IT)) { + response.writeString(this.customData.substring(0, 6)); // Only show post-it colour + } else { + response.writeString(this.customData); + } + } else { + response.writeInt(this.id); + response.writeInt(definition.getSpriteId()); + response.writeInt(this.position.getX()); + response.writeInt(this.position.getY()); + response.writeInt(this.position.getRotation()); + response.writeString(StringUtil.format(this.position.getZ())); + response.writeInt(this.hasBehaviour(ItemBehaviour.ROLLER) ? 2 : 0); // Required 2 for rollers to enable animation when rollers are used! + + if (this.hasBehaviour(ItemBehaviour.PRESENT)) { + String[] presentData = this.customData.split(Pattern.quote(Item.PRESENT_DELIMETER)); + response.writeString("!" + presentData[2]); + } else if (this.hasBehaviour(ItemBehaviour.ECO_BOX)) { + response.writeString(DateUtil.getDate(this.createdAt, "dd-MM-yyyy")); + } else if (this.hasBehaviour(ItemBehaviour.REDEEMABLE)) { + response.writeString(definition.getSprite().split("_")[1]); + } else if (this.hasBehaviour(ItemBehaviour.PRIZE_TROPHY)) { + if (this.trophyData == null) { + TrophyExtraData trophyExtraData = null; + + try { + trophyExtraData = ExtraDataManager.getJsonData(this, TrophyExtraData.class); + } catch (Exception ex) { + + } + + if (trophyExtraData == null) + trophyExtraData = new TrophyExtraData(1, "", 0); + + var playerData = PlayerManager.getInstance().getPlayerData(trophyExtraData.getUserId()); + + if (playerData == null) { + playerData = new PlayerDetails(); + playerData.fill(1, "null", "", "", "M"); + } + + this.trophyData = ""; + this.trophyData += playerData.getName(); + this.trophyData += (char) 9; + this.trophyData += DateUtil.getDate(trophyExtraData.getDate(), DateUtil.SHORT_DATE); + this.trophyData += (char) 9; + this.trophyData += StringUtil.filterInput(trophyExtraData.getMessage(), true); + } + + response.writeString(trophyData); + } else { + response.writeString(this.customData); + } + + response.writeInt(this.expireTime > -1 ? (int) TimeUnit.SECONDS.toMinutes(this.expireTime - DateUtil.getCurrentTimeSeconds()) : -1); + + if (definition.getSpriteId() < 0) { + response.writeString(definition.getSprite()); + } + } + } + } + + /** + * Check if the move is valid before moving an item. Will prevent long + * furniture from being on top of rollers, will prevent placing rollers on top of other rollers. + * Will prevent items being placed on closed tile states. + * + * @param room the room to check inside + * @param x the new x to check + * @param y the new y to check + * @param rotation the new rotation to check + * @return true, if successful + */ + public boolean isValidMove(Item item, Room room, int x, int y, int rotation) { + RoomTile tile = room.getMapping().getTile(x, y); + + if (tile == null) { + return false; + } + + boolean isRotation = (item.getPosition().getRotation() != rotation) && (new Position(x, y).equals(item.getPosition()) + || (item.getRollingData() != null && new Position(x, y).equals(item.getRollingData().getNextPosition())) + || (item.getRollingData() != null && new Position(x, y).equals(item.getRollingData().getFromPosition()))); + + if (isRotation) { + if (item.getRollingData() != null) { + return false; // Don't allow rotating items when they're rolling + } + + if (item.getDefinition().getLength() <= 1 && item.getDefinition().getWidth() <= 1) { + return true; + } + } + + for (Position position : AffectedTile.getAffectedTiles(this, x, y, rotation)) { + tile = room.getMapping().getTile(position); + + if (tile == null) { + return false; + } + + if (room.getModel().getTileState(position.getX(), position.getY()) == RoomTileState.CLOSED) { + return false; + } + + if ((tile.getWalkingHeight() + item.getDefinition().getPositiveTopHeight()) > GameConfiguration.getInstance().getInteger("stack.height.limit")) { + return false; + } + + if (!isRotation/* && !this.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) && !this.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)*/) + { + if (tile.getEntireEntities().size() > 0) + return false; + } + + Item highestItem = tile.getHighestItem(); + + if (highestItem != null && highestItem.getVirtualId() != item.getVirtualId()) { + if (!this.canPlaceOnTop(item, highestItem, new Position(x, y))) { + return false; + } + } + + for (Item tileItem : tile.getItems()) { + if (tileItem.getVirtualId() == item.getVirtualId()) { + continue; + } + + if (!this.canPlaceOnTop(item, tileItem, new Position(x, y))) { + return false; + } + + if (tileItem.hasBehaviour(ItemBehaviour.ROLLER)) { + if (this.hasBehaviour(ItemBehaviour.ROLLER)) { + return false; // Can't place rollers on top of rollers + } + + if ((this.getDefinition().getLength() > 1 || this.getDefinition().getWidth() > 1) && (/*this.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) || */this.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP))) { + return false; // Chair or bed is too big to place on rollers. + } + } + } + } + + + return true; + } + + /** + * Get if placing an item on top of another item is allowed. + * @param item the item to place + * @param tileItem the item to check if they're allowed to place on top of + * @return true, if successful + */ + private boolean canPlaceOnTop(Item item, Item tileItem, Position targetTile) { + if (tileItem.hasBehaviour(ItemBehaviour.CAN_NOT_STACK_ON_TOP)) { + return false; + } + + // Don't allow putting rollers on top of stackable objects + if (item.hasBehaviour(ItemBehaviour.ROLLER) && tileItem.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP) && !tileItem.hasBehaviour(ItemBehaviour.PLACE_ROLLER_ON_TOP)) { + if (tileItem.getDefinition().getTopHeight() >= 0.1) { + return false; + } + } + + // If the item is rolling, we can place on the square + if (tileItem.rollingData != null) { + return true; + } + + // Can't place items on solid objects + if ((tileItem.hasBehaviour(ItemBehaviour.SOLID) || tileItem.hasBehaviour(ItemBehaviour.SOLID_SINGLE_TILE)) && !tileItem.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP)) { + return false; + } + + // Can't place items on objects where if only the first tile is solid and the item is placed on the furni BUT NOT placed on the solid tile + if (tileItem.hasBehaviour(ItemBehaviour.SOLID_SINGLE_TILE) && tileItem.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP)) { + return tileItem.getPosition().equals(targetTile); + } + + if (tileItem.hasBehaviour(ItemBehaviour.ONE_WAY_GATE)) { + return false; + } + + // Can't place gates on solid rollers + /*if (tileItem.hasBehaviour(ItemBehaviour.ROLLER) && (item.hasBehaviour(ItemBehaviour.GATE) || this.hasBehaviour(ItemBehaviour.ONE_WAY_GATE))) { + return false; + }*/ + + // Can't place items on sittable items + if (tileItem.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)) { + return false; + } + + // Can't place item on layable items + if (tileItem.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) { + return false; + } + + return true; + } + + /** + * Get the room tile this item is on. + * + * @return the room tile, else null + */ + public RoomTile getTile() { + Room room = this.getRoom(); + + if (room != null) { + return this.getRoom().getMapping().getTile(this.position); + } + + return null; + } + + /** + * Get if the item has a type of behaviour. + * + * @param behaviour the behaviour to check + * @return true, if successful + */ + public boolean hasBehaviour(ItemBehaviour behaviour) { + return this.getDefinition().hasBehaviour(behaviour); + } + + /** + * Gets the definition instance, if there's a instance attached, it will return that instead. + * + * @return the definition + */ + public ItemDefinition getDefinition() { + if (this.definition != null) { // Used for public room items + return this.definition; + } + + // Always use ItemManager to retrieve private flat definitions + return ItemManager.getInstance().getDefinition(this.definitionId); + } + + /** + * Sets the definition id used by the database and removes the instance. + * + * @param definitionId the definition id + */ + public void setDefinitionId(int definitionId) { + this.definition = null; + this.definitionId = definitionId; + } + + /** + * Get the virtual id of the item. + * + * @return the virtual id + */ + public int getVirtualId() { + return id; + } + + /** + * Sets the virtual id. + */ + public void assignVirtualId() { + this.id = ItemManager.getInstance().getVirtualIdCounter().incrementAndGet(); + //System.out.println("Assigned virtual id " + this.id + " to item with db id " + this.databaseId); + } + + /** + * Sets the virtual id to a specific number + */ + public void setVirtualId(int id) { + this.id = id; + } + + /** + * Get the owner of this item. + * + * @return the owner + */ + public int getOwnerId() { + return ownerId; + } + + /** + * Set the owner id of this item. + * + * @param ownerId the owner id + */ + public void setOwnerId(int ownerId) { + this.ownerId = ownerId; + } + + /** + * Get the item position. + * + * @return the item position + */ + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + public String getWallPosition() { + return wallPosition; + } + + public void setWallPosition(String wallPosition) { + this.wallPosition = wallPosition; + } + + public String getCurrentProgram() { + return currentProgram; + } + + public void setCurrentProgram(String currentProgram) { + this.currentProgram = currentProgram; + } + + public String getCustomData() { + return customData; + } + + public void setCustomData(String customData) { + this.customData = customData; + } + + public String getCurrentProgramValue() { + return currentProgramValue; + } + + public Room getRoom() { + return RoomManager.getInstance().getRoomById(this.roomId); + } + + public int getRoomId() { + return roomId; + } + + public void setRoomId(int roomId) { + this.roomId = roomId; + } + + public Item getItemBelow() { + var tile = this.getTile(); + + if (tile == null || tile.getItems() == null) { + return null; + } + + var items = tile.getItems(); + int position = items.indexOf(this); + + if (position > -1) { + int nextPosition = position - 1; + + if (nextPosition < 0) { + return null; + } + + return items.get(nextPosition); + + } + + return null; + } + + public Item getItemAbove() { + var tile = this.getTile(); + + if (tile == null || tile.getItems() == null) { + return null; + } + + var items = tile.getItems(); + int position = items.indexOf(this); + + if (position > -1) { + int nextPosition = position + 1; + + if (nextPosition >= tile.getItems().size()) { + return null; + } + + return items.get(nextPosition); + + } + + return null; + } + + public boolean getRequiresUpdate() { + return requiresUpdate; + } + + public void setRequiresUpdate(boolean requiresUpdate) { + this.requiresUpdate = requiresUpdate; + } + + public RollingData getRollingData() { + return rollingData; + } + + public void setRollingData(RollingData rollingData) { + this.rollingData = rollingData; + } + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public long getDatabaseId() { + return databaseId; + } + + public void setDatabaseId(long databaseId) { + this.databaseId = databaseId; + } + + public boolean isHidden() { + return isHidden; + } + + public void setHidden(boolean hidden) { + isHidden = hidden; + } + + public long getExpireTime() { + return expireTime; + } + + public void setExpireTime(long expireTime) { + this.expireTime = expireTime; + } + + public boolean isCurrentRollBlocked() { + return isCurrentRollBlocked; + } + + public void setCurrentRollBlocked(boolean currentRollBlocked) { + isCurrentRollBlocked = currentRollBlocked; + } + + public long getLastPlacedTime() { + return lastPlacedTime; + } + + public void setLastPlacedTime(long lastPlacedTime) { + this.lastPlacedTime = lastPlacedTime; + } + + public boolean isDeleted() { + return isDeleted; + } + + public void setDeleted(boolean deleted) { + isDeleted = deleted; + } + + public Room getTemporaryRoom() { + return temporaryRoom; + } + + public void setTemporaryRoom(Room temporaryRoom) { + this.temporaryRoom = temporaryRoom; + } + + public boolean isInTrade() { + return isInTrade; + } + + public void setInTrade(boolean inTrade) { + isInTrade = inTrade; + } + + public boolean isVisible() { + return !this.isInTrade && !this.isHidden; + } + + public Position getTeleportTo() { + return teleportTo; + } + + public void setTeleportTo(Position teleportTo) { + this.teleportTo = teleportTo; + } + + public Position getSwimTo() { + return swimTo; + } + + public void setSwimTo(Position swimTo) { + this.swimTo = swimTo; + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemManager.java new file mode 100644 index 0000000..07c7ce0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemManager.java @@ -0,0 +1,321 @@ +package org.alexdev.havana.game.item; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.DateUtil; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Pattern; + +public class ItemManager { + private static ItemManager instance; + private static AtomicInteger virtualIdCounter = new AtomicInteger(0); + + private Map itemDefinitionMap; + + public ItemManager() { + this.itemDefinitionMap = ItemDao.getItemDefinitions(); + } + + /** + * Get a item definition by the definition id. + * + * @param definitionId the definition id to get for + * @return the item definition + */ + public ItemDefinition getDefinition(int definitionId) { + if (this.itemDefinitionMap.containsKey(definitionId)) { + return this.itemDefinitionMap.get(definitionId); + } + + return null; + } + + /** + * Quick and easy method for creating gifts. + * + * @param saleCode the sprite to give + * @return the item as gift + */ + public Item createGift(int ownerId, String receivedFrom, String saleCode, String presentLabel, String extraData) { + int presentId = ThreadLocalRandom.current().nextInt(0, 7); + String sprite = "present_gen"; + + if (presentId > 0) { + sprite += presentId; + } + + ItemDefinition itemDef = ItemManager.getInstance().getDefinitionBySprite(sprite); + + Item item = new Item(); + item.setDefinitionId(itemDef.getId()); + item.setOwnerId(ownerId); + item.setCustomData(CatalogueManager.getInstance().getCatalogueItem(saleCode).getId() + + Item.PRESENT_DELIMETER + receivedFrom + + Item.PRESENT_DELIMETER + presentLabel.replace(Item.PRESENT_DELIMETER, "") + //From Habbo" + + Item.PRESENT_DELIMETER + extraData.replace(Item.PRESENT_DELIMETER, "") + + Item.PRESENT_DELIMETER + DateUtil.getCurrentTimeSeconds()); + + try { + ItemDao.newItem(item); + } catch (SQLException e) { + e.printStackTrace(); + } + + + return item; + } + + /** + * Get the saved jukebox tracks. + * + * @param itemId the jukebox item id + * @return the list of saved tracks + */ + public List getJukeboxTracks(long itemId) { + List savedTracks = new ArrayList<>(); + + for (var kvp : SongMachineDao.getTracks(itemId).entrySet()) { + int slotId = kvp.getKey(); + int songId = kvp.getValue(); + + Song song = SongMachineDao.getSong(songId); + song.setSlotId(slotId); + + savedTracks.add(song); + } + + return savedTracks; + } + + /** + * Checks for any expired rentals and removes them. + */ + public void checkExpiredRentals() { + for (Item rental : ItemDao.getExpiredItems()) { + Item item = this.resolveItem(rental); + + if (item != null) { + // Item is currently loaded in room, remove it! + if (item.getRoom() != null) { + item.getRoom().getMapping().removeItem(PlayerManager.getInstance().getPlayerById(item.getOwnerId()), item); + } else { + // Item is in players' hands, remove it! + Player itemOwner = PlayerManager.getInstance().getPlayerById(item.getOwnerId()); + + if (itemOwner != null) { + itemOwner.getInventory().getItems().removeIf(i -> i.getDatabaseId() == item.getDatabaseId()); + } + } + } + + GameScheduler.getInstance().queueDeleteItem(rental.getDatabaseId()); + } + } + + /** + * Get a item definition by sprite name. + * + * @param spriteName the name of the sprite to locate the definition + * @return the item definition + */ + public ItemDefinition getDefinitionBySprite(String spriteName) { + for (ItemDefinition definition : this.itemDefinitionMap.values()) { + if (definition.getSprite().equals(spriteName)) { + return definition; + } + } + + return null; + } + + /** + * Handle bulk item saving. + * + * @param itemSavingQueue the queue that's used for saving items + */ + public void performItemSaving(BlockingQueue itemSavingQueue) { + try { + if (itemSavingQueue.isEmpty()) { + return; + } + + List itemList = new ArrayList<>(); + itemSavingQueue.drainTo(itemList); + + if (itemList.size() > 0) { + ItemDao.updateItems(itemList); + } + } catch (Exception ex) { + Log.getErrorLogger().error("Error when attempting to save items: ", ex); + } + } + + /** + * Handle bulk item deletion. + * + * @param itemDeletionQueue the queue that's used for deleting items + */ + public void performItemDeletion(BlockingQueue itemDeletionQueue) { + try { + if (itemDeletionQueue.isEmpty()) { + return; + } + + List itemList = new ArrayList<>(); + itemDeletionQueue.drainTo(itemList); + + if (itemList.size() > 0) { + ItemDao.deleteItems(itemList); + } + } catch (Exception ex) { + Log.getErrorLogger().error("Error when attempting to save items: ", ex); + } + } + + /** + * Get the {@link ItemManager} instance + * + * @return the item manager instance + */ + public static ItemManager getInstance() { + if (instance == null) { + instance = new ItemManager(); + } + + return instance; + } + + /** + * Resets the item manager singleton. + */ + public static void reset() { + instance = null; + ItemManager.getInstance(); + } + + /** + * Get the virtual ID counter for handling more than the 32-bit integer limit of items + * + * @return the item counter + */ + public AtomicInteger getVirtualIdCounter() { + return virtualIdCounter; + } + + /** + * Resolve the active room item by database id. + * + * @param itemId the room item + * @return the instance of the item, if found + */ + public Item resolveItem(long itemId) { + Item databaseItem = ItemDao.getItem(itemId); + + if (databaseItem == null) { + return null; + } + + return this.resolveItem(databaseItem); + } + + /** + * Resolve the active room item by database instance + * + * @param databaseItem the database item instance + * @return the instance of the item, if found + */ + public Item resolveItem(Item databaseItem) { + if (RoomManager.getInstance().getRoomById(databaseItem.getRoomId()) != null) { + Room room = databaseItem.getRoom(); + + if (room != null) { + return room.getItemManager().getByDatabaseId(databaseItem.getDatabaseId()); + } + } else { + Player itemOwner = PlayerManager.getInstance().getPlayerById(databaseItem.getOwnerId()); + + if (itemOwner != null) { + return itemOwner.getInventory().getItemByDatabaseId(databaseItem.getDatabaseId()); + } + } + + return null; + } + + /** + * Get if the present inside has the same behaviour. + * + * @param item the present + * @param behaviour the behaviour to check + * @return true, if successful + */ + public boolean hasPresentBehaviour(Item item, ItemBehaviour behaviour) { + if (item.getDefinition().hasBehaviour(ItemBehaviour.PRESENT)) { + String[] presentData = item.getCustomData().split(Pattern.quote(Item.PRESENT_DELIMETER)); + int catalogueId = Integer.parseInt(presentData[0]); + + var catalogueItem = CatalogueManager.getInstance().getCatalogueItem(catalogueId); + + if (catalogueItem != null && catalogueItem.getDefinition() != null) { + return catalogueItem.getDefinition().hasBehaviour(behaviour); + } + } + + return false; + } + + /** + * Calculate song length of trax data. + * + * @param song the trax data + * @return the length in seconds + */ + public int calculateSongLength(String song) { + try { + String songData = song.substring(0, song.length() - 1); + songData = songData.replace(":4:", "|"); + songData = songData.replace(":3:", "|"); + songData = songData.replace(":2:", "|"); + songData = songData.replace("1:", ""); + + String[] data = songData.split(Pattern.quote("|")); + String[] tracks = new String[]{data[0], data[1], data[2], data[3]}; + + int songLength = 0; + + for (String track : tracks) { + String[] samples = track.split(Pattern.quote(";")); + int trackLength = 0; + + for (String sample : samples) { + int sampleSeconds = Integer.parseInt(sample.split(Pattern.quote(","))[1]) * 2; + trackLength += sampleSeconds; + } + + if (trackLength > songLength) + songLength = trackLength; + } + + return songLength; + } catch (Exception e) { + return 0; + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemVersionManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemVersionManager.java new file mode 100644 index 0000000..44a3417 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/ItemVersionManager.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.game.item; + +import org.alexdev.havana.dao.mysql.ItemDao; + +import java.util.Map; + +public class ItemVersionManager { + private static ItemVersionManager instance; + private Map itemVersions; + + public ItemVersionManager() { + itemVersions = ItemDao.getItemVersions(); + } + + /** + * Get the {@link ItemVersionManager} instance + * + * @return the item manager instance + */ + public static ItemVersionManager getInstance() { + if (instance == null) { + instance = new ItemVersionManager(); + } + + return instance; + } + + /** + * Resets the item manager singleton. + */ + public static void reset() { + instance = null; + ItemVersionManager.getInstance(); + } + + /** + * Get item versions. + * + * @return the item versions + */ + public Map getItemVersions() { + return itemVersions; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/Photo.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Photo.java new file mode 100644 index 0000000..15d1296 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Photo.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.item; + +public class Photo { + private long databaseId; + private int checksum; + private byte[] data; + private long time; + + public Photo(long id, int checksum, byte[] data, long time) { + this.databaseId = id; + this.checksum = checksum; + this.data = data; + this.time = time; + } + + public long getId() { + return databaseId; + } + + public int getChecksum() { + return checksum; + } + + public byte[] getData() { + return data; + } + + public long getTime() { + return time; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/Transaction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Transaction.java new file mode 100644 index 0000000..7ee09b6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/Transaction.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.game.item; + +import org.alexdev.havana.util.DateUtil; +import org.apache.commons.lang3.StringUtils; + +public class Transaction { + private final String description; + private final int costCoins; + private final int costPixels; + private final int amount; + private final long createdAt; + private final int itemId; + + public Transaction(String[] itemId, String description, int costCoins, int costPixels, int amount, long createdAt) { + this.itemId = itemId.length > 0 ? (StringUtils.isNumeric(itemId[0]) ? Integer.parseInt(itemId[0]) : 0) : 0; + this.description = description; + this.costCoins = costCoins; + this.costPixels = costPixels; + this.amount = amount; + this.createdAt = createdAt; + } + + public int getItemId() { + return itemId; + } + + public String getFormattedDate() { + return DateUtil.getDate(this.createdAt, "yyyy-MM-dd HH:mm a").replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public String getDescription() { + return description; + } + + public int getCostCoins() { + return costCoins; + } + + public int getCostPixels() { + return costPixels; + } + + public int getAmount() { + return amount; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemBehaviour.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemBehaviour.java new file mode 100644 index 0000000..3bb9c8f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemBehaviour.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.game.item.base; + +public enum ItemBehaviour { + SOLID, + SOLID_SINGLE_TILE, + CAN_STACK_ON_TOP, + CAN_NOT_STACK_ON_TOP, + CAN_SIT_ON_TOP, + CAN_STAND_ON_TOP, + CAN_LAY_ON_TOP, + CUSTOM_DATA_NUMERIC_ON_OFF, + REQUIRES_TOUCHING_FOR_INTERACTION, + CUSTOM_DATA_TRUE_FALSE, + PUBLIC_SPACE_OBJECT, + EXTRA_PARAMETER, + DICE, + CUSTOM_DATA_ON_OFF, + CUSTOM_DATA_NUMERIC_STATE, + TELEPORTER, + DOOR_TELEPORTER, + REQUIRES_RIGHTS_FOR_INTERACTION, + GATE, + ONE_WAY_GATE, + PRIZE_TROPHY, + ROLLER, + REDEEMABLE, + SOUND_MACHINE, + SOUND_MACHINE_SAMPLE_SET, + JUKEBOX, + WALL_ITEM, + POST_IT, + DECORATION, + WHEEL_OF_FORTUNE, + ROOMDIMMER, + PRESENT, + PHOTO, + PLACE_ROLLER_ON_TOP, + INVISIBLE, + EFFECT, + SONG_DISK, + PRIVATE_FURNITURE, + REDIRECT_ROTATION_0, + REDIRECT_ROTATION_2, + REDIRECT_ROTATION_4, + NO_HEAD_TURN, + ECO_BOX, + PET_WATER_BOWL, + PET_FOOD, + PET_CAT_FOOD, + PET_DOG_FOOD, + PET_CROC_FOOD; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemDefinition.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemDefinition.java new file mode 100644 index 0000000..c0e438b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/base/ItemDefinition.java @@ -0,0 +1,382 @@ +package org.alexdev.havana.game.item.base; + +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.texts.TextsManager; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class ItemDefinition { + public static final double DEFAULT_TOP_HEIGHT = 0.001; + + + private int id; + private String sprite; + private String name; + private String description; + private int spriteId; + private String behaviourData; + private double topHeight; + private int length; + private int width; + private int maxStatus; + private List behaviourList; + private InteractionType interactionType; + private boolean isTradable; + private boolean isRecyclable; + private int[] drinkIds; + private int rentalTime; + private List allowedRotations; + private List heights; + + public ItemDefinition() { + this.sprite = ""; + this.behaviourData = ""; + this.topHeight = DEFAULT_TOP_HEIGHT; + this.length = 1; + this.width = 1; + this.maxStatus = 0; + this.behaviourList = new ArrayList<>(); + this.interactionType = null; + this.drinkIds = new int[0]; + this.allowedRotations = new ArrayList<>(); + } + + public ItemDefinition(int id, String sprite, String name, String description, int spriteId, String behaviourData, double topHeight, int length, int width, int maxStatus, String interactor, boolean isTradable, boolean isRecyclable, String drinkList, int rentalTime, String allowedRotations, + String heights) { + this.id = id; + this.sprite = sprite; + this.name = name; + this.description = description; + this.spriteId = spriteId; + this.behaviourData = behaviourData; + this.topHeight = topHeight; + this.length = length; + this.width = width; + this.maxStatus = maxStatus; + this.behaviourList = parseBehaviour(this.behaviourData); + this.interactionType = InteractionType.valueOf(interactor.toUpperCase()); + this.isTradable = isTradable; + this.isRecyclable = isRecyclable; + + if (allowedRotations.length() > 0) { + this.allowedRotations = Stream.of(allowedRotations.split(",")) + .map(Integer::parseInt) + .collect(Collectors.toList()); + } else { + this.allowedRotations = new ArrayList<>(); + } + + if (heights != null && heights.length() > 0) { + this.heights = Stream.of(heights.split(",")) + .map(Double::parseDouble) + .collect(Collectors.toList()); + } else { + this.heights = new ArrayList<>(); + } + + if (drinkList != null) { + this.drinkIds = new int[drinkList.split(",").length]; + + if (drinkList.length() > 0) { + int i = 0; + for (String data : drinkList.split(",")) { + this.drinkIds[i++] = Integer.parseInt(data); + } + } + } + + // If the item is a gate (checked below) then the top height is set to 0 so the item can be walked in + /*if (!this.behaviourList.contains(ItemBehaviour.CAN_SIT_ON_TOP) + && !this.behaviourList.contains(ItemBehaviour.CAN_LAY_ON_TOP) + && !this.behaviourList.contains(ItemBehaviour.CAN_STACK_ON_TOP)) { + this.topHeight = 0; + }*/ + + // If the top height 0, then make it 0.001 to make it taller than the default room tile, that the + // furni collision map can be generated. + if (this.topHeight == 0) { + this.topHeight = DEFAULT_TOP_HEIGHT; + } + + this.rentalTime = rentalTime; + } + + /** + * Parse the behaviour list seperated by comma. + * + * @param behaviourData the behaviourData to parse + * @return the behaviour list + */ + private List parseBehaviour(String behaviourData) { + List behaviourList = new ArrayList<>(); + + try { + if (behaviourData.length() > 0) { + for (String behaviourEnum : behaviourData.split(",")) { + behaviourList.add(ItemBehaviour.valueOf(behaviourEnum.toUpperCase())); + } + } + } catch (Exception ex) { + System.out.println("Exception occurred for definition: " + this.id); + ex.printStackTrace(); + } + + return behaviourList; + } + + /** + * Get if the item has a type of behaviour. + * + * @param behaviour the behaviour to check + * @return true, if successful + */ + public boolean hasBehaviour(ItemBehaviour behaviour) { + return this.behaviourList.contains(behaviour); + } + + /** + * Add a behaviour to the list. + * + * @param behaviour the behaviour to add + */ + public void addBehaviour(ItemBehaviour behaviour) { + if (this.behaviourList.contains(behaviour)) { + return; + } + + this.behaviourList.add(behaviour); + } + + /** + * Remove a behaviour from the list. + * + * @param behaviour the behaviour to remove + */ + public void removeBehaviour(ItemBehaviour behaviour) { + this.behaviourList.remove(behaviour); + } + + /** + * Get the item name by creating an external text key and reading external text entries. + * + * @param specialSpriteId the special sprite id + * @return the name + */ + public String getName(int specialSpriteId) { + if (this.hasBehaviour(ItemBehaviour.DECORATION)) { + return this.sprite; + } + + String etxernalTextKey = this.getExternalTextKey(specialSpriteId); + String name = etxernalTextKey + "_name"; + + String value = TextsManager.getInstance().getValue(etxernalTextKey); + + if (value == null) { + return "null"; + } + + return name; + } + + /** + * Get the item description by creating an external text key and reading external text entries. + * + * @param specialSpriteId the special sprite id + * @return the description + */ + public String getDescription(int specialSpriteId) { + if (this.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP)) { + return this.sprite; + } + + String etxernalTextKey = this.getExternalTextKey(specialSpriteId); + String name = etxernalTextKey + "_desc"; + + String value = TextsManager.getInstance().getValue(etxernalTextKey); + + if (value == null) { + return "null"; + } + + return name; + } + + /** + * Create the catalogue icon through using the special sprite id. + * + * @param specialSpriteId the special sprite id + * @return the catalogue icon + */ + public String getIcon(int specialSpriteId) { + String icon = ""; + + icon += this.sprite; + + if (specialSpriteId > 0) { + icon += " " + specialSpriteId; + } + + return icon; + } + + /** + * Get external text key by definition. + * + * @param specialSpriteId the special sprite id + * @return the external text key + */ + private String getExternalTextKey(int specialSpriteId) { + String key = ""; + + if (specialSpriteId == 0) { + if (this.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + key = "wallitem"; + } else { + key = "furni"; + } + + key += "_"; + } + + key += this.sprite; + + if (specialSpriteId > 0) { + key += ("_" + specialSpriteId); + } + + return key; + } + + public int getId() { + return id; + } + + public String getSprite() { + return sprite; + } + + public int getColour() { + if (this.sprite.contains("*")) { + return Integer.parseInt(this.sprite.split("\\*")[1]); + } + + return 0; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public void setSprite(String sprite) { + this.sprite = sprite; + } + + public double getTopHeight() { + return topHeight; + } + + public double getPositiveTopHeight() { + if (this.topHeight < 0) { + return DEFAULT_TOP_HEIGHT; + } + + return topHeight; + } + + public int getLength() { + return length; + } + + public int getWidth() { + return width; + } + + public void setTopHeight(double topHeight) { + this.topHeight = topHeight; + } + + public String getBehaviourData() { + return behaviourData; + } + + public void setLength(int length) { + this.length = length; + } + + public void setWidth(int width) { + this.width = width; + } + + public List getBehaviourList() { + return behaviourList; + } + + public int getSpriteId() { + return spriteId; + } + + public void setSpriteId(int spriteId) { + this.spriteId = spriteId; + } + + public int getMaxStatus() { + return maxStatus; + } + + public InteractionType getInteractionType() { + return interactionType; + } + + public void setInteractionType(InteractionType interactionType) { + this.interactionType = interactionType; + } + + public boolean isTradable() { + return isTradable; + } + + public void setTradable(boolean tradable) { + isTradable = tradable; + } + + public boolean isRecyclable() { + return isRecyclable; + } + + public int[] getDrinkIds() { + return drinkIds; + } + + public int getRentalTime() { + return rentalTime; + } + + public int getRentalTimeAsMinutes() { + if (this.rentalTime > 0) { + return (int) TimeUnit.SECONDS.toMinutes(this.rentalTime); + } + + return -1; + } + + public List getAllowedRotations() { + return allowedRotations; + } + + public void setAllowedRotations(List allowedRotations) { + this.allowedRotations = allowedRotations; + } + + public List getHeights() { + return heights; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/ExtraDataManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/ExtraDataManager.java new file mode 100644 index 0000000..a321496 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/ExtraDataManager.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.item.extradata; + +import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.log.Log; + +import java.lang.reflect.InvocationTargetException; + +public class ExtraDataManager { + private static final Gson gson = new Gson(); + + /** + * Gets the json data, will try restore to default if there's invalid JSON data. + * + * @param item the item + * @param t the class type + * @return the json data + */ + public static T getJsonData(Item item, Class t) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { + T settings = null; + + if (isValidJSON(item.getCustomData(), t)) { + settings = gson.fromJson(item.getCustomData(), t); + } else { + settings = t.getDeclaredConstructor().newInstance(); + + saveExtraData(item, settings); + item.save(); + } + + return settings; + } + + /** + * Validate the input json + * @param jsonInString the json to parse + */ + public static boolean isValidJSON(String jsonInString, Class obj) { + try { + + gson.fromJson(jsonInString, obj); + return true; + } catch (JsonSyntaxException ex) { + return false; + } + } + + + /** + * Save extra data to JSON format. + * + * @param item the item + * @param src the data to serialise + */ + public static void saveExtraData(Item item, T src) { + item.setCustomData(gson.toJson(src)); + } + + /** + * Get GSON instance. + * + * @return the gson instance + */ + public static Gson getGson() { + return gson; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/types/TrophyExtraData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/types/TrophyExtraData.java new file mode 100644 index 0000000..ae555dd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/extradata/types/TrophyExtraData.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.item.extradata.types; + +public class TrophyExtraData { + private int userId; + private String message; + private long date; + + public TrophyExtraData(int userId, String message, long date) { + this.userId = userId; + this.message = message; + this.date = date; + } + + public int getUserId() { + return userId; + } + + public String getMessage() { + return message; + } + + public long getDate() { + return date; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/InteractionType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/InteractionType.java new file mode 100644 index 0000000..2e71cc5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/InteractionType.java @@ -0,0 +1,65 @@ +package org.alexdev.havana.game.item.interactors; + +import org.alexdev.havana.game.games.triggers.BattleShipsTrigger; +import org.alexdev.havana.game.games.triggers.ChessTrigger; +import org.alexdev.havana.game.games.triggers.PokerTrigger; +import org.alexdev.havana.game.games.triggers.TicTacToeTrigger; +import org.alexdev.havana.game.item.interactors.types.*; +import org.alexdev.havana.game.item.interactors.types.idol.IdolChairVoteInteractor; +import org.alexdev.havana.game.item.interactors.types.idol.IdolScoreboardInteractor; +import org.alexdev.havana.game.item.interactors.types.pool.*; +import org.alexdev.havana.game.item.interactors.types.wobblesquabble.WobbleSquabbleJoinQueue; +import org.alexdev.havana.game.item.interactors.types.wobblesquabble.WobbleSquabbleQueueTile; +import org.alexdev.havana.game.item.interactors.types.wobblesquabble.WobbleSquabbleTileStart; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public enum InteractionType { + DEFAULT(new DefaultInteractor()), + BED(new BedInteractor()), + CHAIR(new ChairInteractor()), + TELEPORT(new TeleportInteractor()), + ROOM_HIRE(new TeleportRoomHireInteractor()), + VENDING_MACHINE(new VendingMachineInteractor()), + LERT(new LertInteractor()), + SCOREBOARD(new ScoreboardInteractor()), + FORTUNE(new FortuneInteractor()), + PET_NEST(new PetNestInteractor()), + + POOL_BOOTH(new PoolBoothInteractor()), + POOL_LADDER(new PoolLadderInteractor()), + POOL_EXIT(new PoolExitInteractor()), + POOL_LIFT(new PoolLiftInteractor()), + POOL_QUEUE(new PoolQueueInteractor()), + + GAME_TIC_TAC_TOE(new TicTacToeTrigger()), + GAME_CHESS(new ChessTrigger()), + GAME_BATTLESHIPS(new BattleShipsTrigger()), + GAME_POKER(new PokerTrigger()), + + TOTEM_LEG(new TotemLegTrigger()), + TOTEM_HEAD(new TotemHeadTrigger()), + TOTEM_PLANET(new TotemPlanetTrigger()), + + WS_JOIN_QUEUE(new WobbleSquabbleJoinQueue()), + WS_QUEUE_TILE(new WobbleSquabbleQueueTile()), + WS_TILE_START(new WobbleSquabbleTileStart()), + + IDOL_VOTE_CHAIR(new IdolChairVoteInteractor()), + IDOL_SCOREBOARD(new IdolScoreboardInteractor()), + + STEP_LIGHT(new StepLightInteractor()), + LOVE_RANDOMIZER(new LoveRandomizerInteractor()), + + MULTI_HEIGHT(new MultiHeightInteractor()), + ; + + private final GenericTrigger genericTrigger; + + InteractionType(GenericTrigger genericTrigger) { + this.genericTrigger = genericTrigger; + } + + public GenericTrigger getTrigger() { + return genericTrigger; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemColour.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemColour.java new file mode 100644 index 0000000..5f0baba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemColour.java @@ -0,0 +1,8 @@ +package org.alexdev.havana.game.item.interactors.enums; + +public enum TotemColour { + NONE, + RED, + YELLOW, + BLUE +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemEffect.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemEffect.java new file mode 100644 index 0000000..e36022c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/enums/TotemEffect.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.item.interactors.enums; + +public enum TotemEffect { + NONE(-1, -1, -1, 0), + FIRE(1, 12, 8, 25), + WAND(2, 9, 8, 26), + RAIN(0, 10, 4, 24), + LEVITATION(2, 5, 0, 23); + + int planet; + int head; + int legs; + int effectId; + + TotemEffect(int planet, int levitation, int legs, int effectId) { + this.planet = planet; + this.head = levitation; + this.legs = legs; + this.effectId = effectId; + } + + public int getPlanet() { + return planet; + } + + public int getHead() { + return head; + } + + public int getLegs() { + return legs; + } + + public int getEffectId() { + return effectId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/BedInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/BedInteractor.java new file mode 100644 index 0000000..83668ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/BedInteractor.java @@ -0,0 +1,157 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.pets.PetAction; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.tasks.EntityTask; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class BedInteractor extends GenericTrigger { + @Override + public void onInteract(Player player, Room room, Item item, int status) { + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + Position destination = entity.getRoomUser().getPosition().copy(); + + if (!isValidPillowTile(item, destination)) { + destination = convertToPillow(destination, item); + } + + if (isValidPillowTile(item, destination)) { + if (!RoomTile.isValidTile(roomEntity.getRoom(), roomEntity.getEntity(), destination)) { + return; + } + + entity.getRoomUser().warp(destination, false, false); + + roomEntity.stopCarrying(); + roomEntity.stopDancing(); + + roomEntity.getPosition().setRotation(item.getPosition().getRotation()); + + double topHeight = item.getDefinition().getTopHeight(); + + if (entity.getType() == EntityType.PET) { + topHeight = 0.5 + item.getTile().getWalkingHeight(); + + Pet pet = (Pet) entity; + pet.setAction(PetAction.LAY); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(10, 30)); + } + + roomEntity.getPosition().setRotation(item.getPosition().getRotation()); + roomEntity.setStatus(StatusType.LAY, StringUtil.format(topHeight)); + } + + roomEntity.setNeedsUpdate(true); + + if (entity.getRoomUser().isUsingEffect()) { + if (!roomEntity.getRoom().getTaskManager().hasTask("EntityTask")) { + return; + } + + EntityTask entityTask = (EntityTask) roomEntity.getRoom().getTaskManager().getTask("EntityTask"); + entityTask.getQueueAfterLoop().add(new USER_AVATAR_EFFECT(roomEntity.getInstanceId(), roomEntity.getEffectId())); + } + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + + } + + /** + * Converts any coordinate within the bed dimensions to the closest pillow. + * + * @param position to check + * @param item the item checking against + * @return the pillow position + */ + public static Position convertToPillow(Position position, Item item) { + Position destination = position.copy(); + + if (!isValidPillowTile(item, position)) { + for (Position tile : getValidPillowTiles(item)) { + if (item.getPosition().getRotation() == 0) { + destination.setY(tile.getY()); + } else { + destination.setX(tile.getX()); + } + + break; + } + } + + return destination; + } + + /** + * Validates if the users tile is a valid pillow tile on a bed. + * + * @param item the bed to check for + * @param entityPosition the entity position to check against + * @return true, if successful + */ + public static boolean isValidPillowTile(Item item, Position entityPosition) { + if (entityPosition.equals(item.getPosition())) { + return true; + } else { + for (Position validTile : getValidPillowTiles(item)) { + if (validTile.equals(entityPosition)) { + return true; + } + } + } + + return false; + } + + /** + * Gets the valid pillow tile list for a bed. + * + * @param item the item to check for + * @return the list of valid coordinates + */ + public static List getValidPillowTiles(Item item) { + if (item == null || item.getPosition() == null) { + return List.of(); + } + + List tiles = new ArrayList<>(); + tiles.add(new Position(item.getPosition().getX(), item.getPosition().getY())); + + int validPillowX = -1; + int validPillowY = -1; + + if (item.getPosition().getRotation() == 0) { + validPillowX = item.getPosition().getX() + 1; + validPillowY = item.getPosition().getY(); + } + + if (item.getPosition().getRotation() == 2) { + validPillowX = item.getPosition().getX(); + validPillowY = item.getPosition().getY() + 1; + } + + tiles.add(new Position(validPillowX, validPillowY)); + return tiles; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ChairInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ChairInteractor.java new file mode 100644 index 0000000..ffea5b0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ChairInteractor.java @@ -0,0 +1,65 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.pets.PetAction; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.tasks.EntityTask; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.util.StringUtil; + +import java.util.concurrent.ThreadLocalRandom; + +public class ChairInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + boolean isRolling = entity.getRoomUser().isRolling(); + + int headRotation = roomEntity.getPosition().getHeadRotation(); + double topHeight = item.getDefinition().getTopHeight(); + + if (entity.getType() == EntityType.PET) { + topHeight = 0.5 + item.getTile().getWalkingHeight(); + + Pet pet = (Pet) entity; + pet.setAction(PetAction.SIT); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(10, 30)); + } + + roomEntity.getPosition().setRotation(item.getPosition().getRotation()); + roomEntity.stopDancing(); + roomEntity.setStatus(StatusType.SIT, StringUtil.format(topHeight)); + roomEntity.setNeedsUpdate(true); + + if (isRolling) { + if (roomEntity.getTimerManager().getLookTimer() > -1) { + roomEntity.getPosition().setHeadRotation(headRotation); + } + } + + if (entity.getRoomUser().isUsingEffect()) { + if (!roomEntity.getRoom().getTaskManager().hasTask("EntityTask")) { + return; + } + + EntityTask entityTask = (EntityTask) roomEntity.getRoom().getTaskManager().getTask("EntityTask"); + entityTask.getQueueAfterLoop().add(new USER_AVATAR_EFFECT(roomEntity.getInstanceId(), roomEntity.getEffectId())); + } + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/DefaultInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/DefaultInteractor.java new file mode 100644 index 0000000..75ae2fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/DefaultInteractor.java @@ -0,0 +1,48 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.apache.commons.lang3.StringUtils; + +public class DefaultInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + if (item.hasBehaviour(ItemBehaviour.GATE)) { + if (item.isGateOpen()) { + RoomTile tile = item.getTile(); + + if (tile.getEntireEntities().size() > 0) { + // Can't close gate if there's a user on the tile + return; + } + } + } + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER) + || item.hasBehaviour(ItemBehaviour.DICE) + || item.hasBehaviour(ItemBehaviour.PRIZE_TROPHY) + || item.hasBehaviour(ItemBehaviour.POST_IT) + || item.hasBehaviour(ItemBehaviour.ROLLER) + || item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE) + || item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + return; // Prevent dice rigging, scripting trophies, post-its, etc. + } + + if (item.getDefinition().getMaxStatus() > 0) { + int currentMode = StringUtils.isNumeric(item.getCustomData()) ? Integer.valueOf(item.getCustomData()) : 0; + int newMode = currentMode + 1; + + if (newMode >= item.getDefinition().getMaxStatus()) { + newMode = 0; + } + + + item.setCustomData(String.valueOf(newMode)); + item.updateStatus(); + item.save(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/FortuneInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/FortuneInteractor.java new file mode 100644 index 0000000..e3d4413 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/FortuneInteractor.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.apache.commons.lang3.StringUtils; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class FortuneInteractor extends GenericTrigger { + public static int FORTUNE_OFF = 8; + public static int FORTUNE_NO_STATE = -1; + + public void onInteract(Player player, Room room, Item item, int status) { + if (item.getRequiresUpdate()) { + return; + } + + int currentMode = StringUtils.isNumeric(item.getCustomData()) ? Integer.valueOf(item.getCustomData()) : FORTUNE_OFF; + int newMode; + + // Turn on + if (currentMode == FORTUNE_OFF) { + newMode = FORTUNE_NO_STATE; + } else { + newMode = FORTUNE_OFF; + } + + item.setCustomData(String.valueOf(newMode)); + item.updateStatus(); + item.save(); + + int rotation = Rotation.calculateWalkDirection(player.getRoomUser().getPosition(), item.getPosition()); + + // When sitting calculate even rotation + if (player.getRoomUser().containsStatus(StatusType.SIT)) { + var current = player.getRoomUser().getPosition(); // And now rotate their head for all sitting people. + player.getRoomUser().getPosition().setHeadRotation(Rotation.getHeadRotation(current.getRotation(), current, item.getPosition())); + + } else { + player.getRoomUser().getPosition().setRotation(rotation); + } + + player.getRoomUser().setNeedsUpdate(true); + + if (newMode == FORTUNE_NO_STATE) { + item.setRequiresUpdate(true); + + GameScheduler.getInstance().getService().schedule(() -> { + int randomNumber = ThreadLocalRandom.current().nextInt(0, 8); // 0-7 + + item.setCustomData(String.valueOf(randomNumber)); + item.updateStatus(); + + item.setRequiresUpdate(false); + item.save(); + + }, 1500, TimeUnit.MILLISECONDS); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LertInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LertInteractor.java new file mode 100644 index 0000000..ac9c57a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LertInteractor.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public class LertInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + item.setCustomData("0"); + item.updateStatus(); + + item.setCustomData("1"); + item.updateStatus(); + + item.setCustomData("0"); + item.updateStatus(); + item.save(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LoveRandomizerInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LoveRandomizerInteractor.java new file mode 100644 index 0000000..c9e1cd2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/LoveRandomizerInteractor.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class LoveRandomizerInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + // Spin already being executed, return + if (item.getRequiresUpdate()) { + return; + } + + // Send spinning animation to room + item.setCustomData("0"); + item.updateStatus(); + + item.setRequiresUpdate(true); + + GameScheduler.getInstance().getService().schedule(()->{ + if (!item.getRequiresUpdate()) { + return; + } + + item.setCustomData(String.valueOf(ThreadLocalRandom.current().nextInt(1, 5))); + item.updateStatus(); + item.save(); + + item.setRequiresUpdate(false); + }, 4250, TimeUnit.MILLISECONDS); + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + InteractionType.CHAIR.getTrigger().onEntityStop(entity, roomEntity, item, isRotation); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/MultiHeightInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/MultiHeightInteractor.java new file mode 100644 index 0000000..9e13375 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/MultiHeightInteractor.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public class MultiHeightInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + if (item.getItemAbove() != null) + return; + + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + + room.getMapping().getTile(item.getPosition()).removeItem(item); + room.getMapping().getTile(item.getPosition()).addItem(item); + + item.updateEntities(null); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/PetNestInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/PetNestInteractor.java new file mode 100644 index 0000000..834e111 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/PetNestInteractor.java @@ -0,0 +1,91 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.PetDao; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.pets.PetDetails; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public class PetNestInteractor extends GenericTrigger { + @Override + public void onItemPlaced(Player player, Room room, Item item) { + PetDetails petDetails = PetDao.getPetDetails(item.getDatabaseId()); + + if (petDetails != null) { + Pet pet = this.addPet(room, petDetails, item.getPosition()); + + PetDao.saveCoordinates(petDetails.getId(), + pet.getRoomUser().getPosition().getX(), + pet.getRoomUser().getPosition().getY(), + pet.getRoomUser().getPosition().getRotation()); + } + } + + @Override + public void onItemPickup(Player player, Room room, Item item) { + PetDetails petDetails = PetDao.getPetDetails(item.getDatabaseId()); + + if (petDetails == null) { + return; + } + + int petId = petDetails.getId(); + Pet pet = (Pet)room.getEntityManager().getById(petId, EntityType.PET); + + if (pet == null) { + return; + } + + room.getEntityManager().leaveRoom(pet, false); + } + + /*@Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PET) { + return; + } + + Pet pet = (Pet) entity; + + if (pet.getDetails().getItemId() != item.getDatabaseId()) { + return; + } + + if (pet.getRoomUser().getItem() == null || pet.getAction() != PetAction.SLEEP) { + return; + } + + pet.getRoomUser().setStatus(StatusType.SLEEP, StringUtil.format(pet.getRoomUser().getPosition().getZ()) + " null"); + pet.getRoomUser().setNeedsUpdate(true); + + pet.setAction(PetAction.SLEEP); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(20, 60)); + }*/ + + /** + * Add a pet by given pet id. + * + * @param room the room to add the pet to + * @param petDetails the details of the pet + * @param position the position of the pet + * + * @return the pet instance created + */ + public Pet addPet(Room room, PetDetails petDetails, Position position) { + Pet pet = new Pet(petDetails); + position.setZ(room.getMapping().getTile(position.getX(), position.getY()).getWalkingHeight()); + + room.getEntityManager().enterRoom(pet, position); + room.getMapping().getTile(position).addEntity(pet); + + /*GameScheduler.getInstance().getService().scheduleAtFixedRate(()-> { + pet.getRoomUser().walkTo(room.getModel().getRandomBound(0), room.getModel().getRandomBound(0)); + }, 0, 5, TimeUnit.SECONDS);*/ + + return pet; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ScoreboardInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ScoreboardInteractor.java new file mode 100644 index 0000000..5e87d50 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/ScoreboardInteractor.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.apache.commons.lang3.StringUtils; + +public class ScoreboardInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + if (status == 1) { + if (item.getDefinition().getMaxStatus() > 0) { + int currentMode = StringUtils.isNumeric(item.getCustomData()) ? Integer.valueOf(item.getCustomData()) : 0; + int newMode = currentMode - 1; + + if (newMode < 0) { + newMode = 99; + } + + item.setCustomData(String.valueOf(newMode)); + item.updateStatus(); + } + } + + if (status == 2) { + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + if (status == 0) { + if (StringUtils.isNumeric(item.getCustomData())) { + item.setCustomData("x"); + item.updateStatus(); + } else { + item.setCustomData("0"); + item.updateStatus(); + } + } + + item.save(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/StepLightInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/StepLightInteractor.java new file mode 100644 index 0000000..8809b15 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/StepLightInteractor.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.concurrent.TimeUnit; + +public class StepLightInteractor extends GenericTrigger { + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + item.setCustomData("1"); + item.updateStatus(); + + GameScheduler.getInstance().getService().schedule(()-> { + item.setCustomData("0"); + item.updateStatus(); + item.save(); + }, 500, TimeUnit.MILLISECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportInteractor.java new file mode 100644 index 0000000..3663615 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportInteractor.java @@ -0,0 +1,209 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.TeleporterDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomPlayer; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.messenger.ROOMFORWARD; +import org.alexdev.havana.messages.outgoing.rooms.user.LOGOUT; + +import java.util.concurrent.TimeUnit; + +public class TeleportInteractor extends GenericTrigger { + public static final String TELEPORTER_CLOSE = "0"; + public static final String TELEPORTER_OPEN = "1"; + public static final String TELEPORTER_EFFECTS = "2"; + + public void onInteract(Player player, Room room, Item item, int status) { + RoomPlayer roomUser = player.getRoomUser(); + + if (player.getRoomUser().getAuthenticateTelporterId() != -1) { + return; + } + + Position front = item.getPosition().getSquareInFront(); + + if (!front.equals(roomUser.getPosition()) && !item.getPosition().equals(roomUser.getPosition())) { + roomUser.walkTo(front.getX(), front.getY()); + return; + } + + long pairId = TeleporterDao.getTeleporterId(item.getDatabaseId()); + Item targetTeleporter = ItemDao.getItem(pairId); + + item.setCustomData(TELEPORTER_OPEN); + item.updateStatus(); + + roomUser.walkTo(item.getPosition().getX(), item.getPosition().getY()); + roomUser.setWalkingAllowed(false); + + // Broken link, make user walk in then walk out + if (pairId == -1 || targetTeleporter == null || targetTeleporter.getRoom() == null) { + GameScheduler.getInstance().getService().schedule(() -> { + roomUser.walkTo( + item.getPosition().getSquareInFront().getX(), + item.getPosition().getSquareInFront().getY()); + }, 1, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + item.setCustomData(TELEPORTER_CLOSE); + item.updateStatus(); + }, 2, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + roomUser.setWalkingAllowed(true); + }, 2500, TimeUnit.MILLISECONDS); + + return; + } + + var resolved = ItemManager.getInstance().resolveItem(pairId); + + Item pairedTeleporter = resolved != null ? resolved : targetTeleporter; + roomUser.setAuthenticateTelporterId(pairedTeleporter.getDatabaseId()); + + // Check if the user is inside the teleporter, if so, walk out. Useful if the user is stuck inside. + if (item.getPosition().equals(roomUser.getPosition()) && !RoomTile.isValidTile(room, player, item.getPosition().getSquareInFront())) { + item.setCustomData(TELEPORTER_EFFECTS); + item.updateStatus(); + + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + item.setCustomData(TELEPORTER_CLOSE); + item.updateStatus(); + + room.send(new LOGOUT(player.getRoomUser().getInstanceId())); + }, 1, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + if (pairedTeleporter.getRoomId() == item.getRoomId()) { + roomUser.warp(pairedTeleporter.getPosition(), true, true); + pairedTeleporter.setCustomData(TELEPORTER_EFFECTS); + pairedTeleporter.updateStatus(); + } else { + roomUser.setAuthenticateId(pairedTeleporter.getRoom().getId()); + pairedTeleporter.getRoom().forward(player, false); + //player.send(new ROOMFORWARD(pairedTeleporter.getRoom().isPublicRoom(), pairedTeleporter.getRoom().getId())); + } + }, 2, TimeUnit.SECONDS); + + // Handle teleporting in the same room + if (pairedTeleporter.getRoomId() == item.getRoomId()) { + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + pairedTeleporter.setCustomData(TELEPORTER_OPEN); + pairedTeleporter.updateStatus(); + + roomUser.walkTo( + pairedTeleporter.getPosition().getSquareInFront().getX(), + pairedTeleporter.getPosition().getSquareInFront().getY()); + + roomUser.setWalkingAllowed(true); + }, 3, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + roomUser.setAuthenticateTelporterId(-1); + + pairedTeleporter.setCustomData(TELEPORTER_CLOSE); + pairedTeleporter.updateStatus(); + }, 4, TimeUnit.SECONDS); + } + return; + } + + // Resume normal teleportation + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + item.setCustomData(TELEPORTER_EFFECTS); + item.updateStatus(); + }, 1000, TimeUnit.MILLISECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getAuthenticateTelporterId() == -1) { + return; + } + + room.send(new LOGOUT(player.getRoomUser().getInstanceId())); + item.setCustomData(TELEPORTER_CLOSE); + item.updateStatus(); + + if (pairedTeleporter.getRoomId() != item.getRoomId()) { + roomUser.setAuthenticateId(pairedTeleporter.getRoom().getId()); + pairedTeleporter.getRoom().forward(player, false); + //player.send(new ROOMFORWARD(pairedTeleporter.getRoom().isPublicRoom(), pairedTeleporter.getRoom().getId())); + } else { + roomUser.warp(pairedTeleporter.getPosition(), true, true); + } + + if (pairedTeleporter.getRoomId() == item.getRoomId()) { + pairedTeleporter.setCustomData(TELEPORTER_EFFECTS); + pairedTeleporter.updateStatus(); + } + }, 1500, TimeUnit.MILLISECONDS); + + if (pairedTeleporter.getRoomId() == item.getRoomId()) { + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getRoom().getId() != room.getId()) { + roomUser.setAuthenticateTelporterId(-1); + return; + } + /*if (roomUser.getAuthenticateTelporterId() == -1) { + return; + }*/ + + pairedTeleporter.setCustomData(TELEPORTER_OPEN); + pairedTeleporter.updateStatus(); + + roomUser.walkTo( + pairedTeleporter.getPosition().getSquareInFront().getX(), + pairedTeleporter.getPosition().getSquareInFront().getY()); + }, 3, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + if (roomUser.getRoom().getId() != room.getId()) { + roomUser.setAuthenticateTelporterId(-1); + return; + } + /*if (roomUser.getAuthenticateTelporterId() == -1) { + return; + }*/ + + roomUser.setAuthenticateTelporterId(-1); + + if (pairedTeleporter.getRoomId() == item.getRoomId()) { + pairedTeleporter.setCustomData(TELEPORTER_CLOSE); + pairedTeleporter.updateStatus(); + } else { + roomUser.getRoom().getItemManager().getByDatabaseId(pairId).setCustomData(TELEPORTER_CLOSE); + roomUser.getRoom().getItemManager().getByDatabaseId(pairId).updateStatus(); + } + + roomUser.setWalkingAllowed(true); + }, 4000, TimeUnit.MILLISECONDS); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportRoomHireInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportRoomHireInteractor.java new file mode 100644 index 0000000..1ced8f1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TeleportRoomHireInteractor.java @@ -0,0 +1,75 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomPlayer; +import org.alexdev.havana.game.room.models.RoomModelManager; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.rooms.user.LOGOUT; + +import java.util.concurrent.TimeUnit; + +public class TeleportRoomHireInteractor extends GenericTrigger { + public static final String TELEPORTER_CLOSE = "0"; + public static final String TELEPORTER_OPEN = "1"; + public static final String TELEPORTER_EFFECTS = "2"; + + public void onInteract(Player player, Room room, Item item, int status) { + RoomPlayer roomUser = player.getRoomUser(); + + if (player.getRoomUser().getAuthenticateTelporterId() != -1) { + return; + } + + Position front = item.getPosition().getSquareInFront(); + + if (!front.equals(roomUser.getPosition()) && !item.getPosition().equals(roomUser.getPosition())) { + roomUser.walkTo(front.getX(), front.getY()); + return; + } + + item.setCustomData(TELEPORTER_OPEN); + item.updateStatus(); + + roomUser.walkTo(item.getPosition().getX(), item.getPosition().getY()); + roomUser.setWalkingAllowed(false); + + // Resume normal teleportation + GameScheduler.getInstance().getService().schedule(() -> { + item.setCustomData(TELEPORTER_EFFECTS); + item.updateStatus(); + }, 1000, TimeUnit.MILLISECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + room.send(new LOGOUT(player.getRoomUser().getInstanceId())); + item.setCustomData(TELEPORTER_CLOSE); + item.updateStatus(); + + tryCreateRoom(player, room, item); + }, 1500, TimeUnit.MILLISECONDS); + } + + private void tryCreateRoom(Player player, Room sourceRoom, Item item) { + var room = item.getTemporaryRoom(); + + if (room == null) { + room = new Room(); + + room.getData().fill(0, "Hire Room", "This is hosted by the Hire-A-Room furniture"); + room.getData().setCustomRoom(true); + room.getData().setOwnerId(sourceRoom.getData().getOwnerId()); + room.getData().setCategoryId(NavigatorManager.getInstance().getCategories().values().stream().filter(x -> !x.isPublicSpaces()).findFirst().orElse(null).getId()); + room.getData().setVisitorsMax(50); + + room.setRoomModel(RoomModelManager.getInstance().getModel("model_a")); + item.setTemporaryRoom(room); + } + + // player.getDetails().setTemporaryRoom(room); + room.forward(player, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemHeadTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemHeadTrigger.java new file mode 100644 index 0000000..abe2679 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemHeadTrigger.java @@ -0,0 +1,252 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.enums.TotemColour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.List; + +public class TotemHeadTrigger extends GenericTrigger { + @Override + public void onInteract(Player player, Room room, Item item, int status) { + //InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + boolean placedOnLegs = item.getItemBelow() != null && item.getItemBelow().getDefinition().getSprite().equals("totem_leg"); + + if (placedOnLegs) { + return; + } + + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + @Override + public void onItemPlaced(Player player, Room room, Item item) { + this.onItemMoved(player, room, item, false, null, item.getItemBelow(), item.getItemAbove()); + } + + @Override + public void onItemMoved(Player player, Room room, Item item, boolean isRotation, Position oldPosition, Item itemBelow, Item itemAbove) { + Item below = item.getItemBelow(); + + if (isRotation) { + return; + } + + boolean placedOnLegs = item.getItemBelow() != null && item.getItemBelow().getDefinition().getSprite().equals("totem_leg"); + + if (!placedOnLegs) { + TotemColour headColour = getHeadColour(item); + + // Turn the legs light back on + if (itemBelow != null && itemBelow.getDefinition().getSprite().equals("totem_leg")) { + if (headColour != TotemColour.NONE || item.getCustomData().equals("11")) { // "11" for the bird with the open wings + int state = convertHeadToColour(item, TotemColour.NONE); + + if (state == 11) { + state = 2; + } + + item.setCustomData(String.valueOf(state)); + item.updateStatus(); + + itemBelow.setCustomData(String.valueOf(convertLegToColour(itemBelow, headColour))); + itemBelow.updateStatus(); + + ItemDao.updateItems(List.of(item, itemBelow)); + } + } + } else { + // Convert the head to the colour of the legs once placed + item.setCustomData(String.valueOf(convertHeadToColour(item, getLegColour(below)))); + item.updateStatus(); + + below.setCustomData(String.valueOf(convertLegToColour(below, TotemColour.NONE))); + below.updateStatus(); + + ItemDao.updateItems(List.of(item, below)); + } + } + + /** + * Gets the colour of the totem legs. + * + * @param item the item colour + * @return the totem colour + */ + public static int convertHeadToColour(Item item, TotemColour colour) { + boolean squid = item.getCustomData().equals("1") || item.getCustomData().equals("8") || item.getCustomData().equals("9") || item.getCustomData().equals("10"); + boolean bird = item.getCustomData().equals("2") || item.getCustomData().equals("11") || item.getCustomData().equals("12") || item.getCustomData().equals("13") || item.getCustomData().equals("14"); + boolean human = item.getCustomData().equals("0") || item.getCustomData().equals("4") || item.getCustomData().equals("5") || item.getCustomData().equals("6"); + + if (human) { + if (colour == TotemColour.RED) { + return 4; + } + + if (colour == TotemColour.YELLOW) { + return 5; + } + + if (colour == TotemColour.BLUE) { + return 6; + } + + return 0; + } + + if (bird) { + if (colour == TotemColour.RED) { + return 12; + } + + if (colour == TotemColour.YELLOW) { + return 13; + } + + if (colour == TotemColour.BLUE) { + return 14; + } + + return 11; // Wings still out for bird + } + + if (squid) { + if (colour == TotemColour.RED) { + return 8; + } + + if (colour == TotemColour.YELLOW) { + return 9; + } + + if (colour == TotemColour.BLUE) { + return 10; + } + + return 1; + } + + return 0; + } + + /** + * Gets the colour of the totem legs. + * + * @param item the item colour + * @return the totem colour + */ + public static TotemColour getHeadColour(Item item) { + boolean redColour = item.getCustomData().equals("4") || item.getCustomData().equals("12") || item.getCustomData().equals("8"); + boolean yellowColour = item.getCustomData().equals("5") || item.getCustomData().equals("13") || item.getCustomData().equals("9"); + boolean blueColour = item.getCustomData().equals("6") || item.getCustomData().equals("14") || item.getCustomData().equals("10"); + boolean noColour = !yellowColour && !redColour && !blueColour; + + if (redColour) { + return TotemColour.RED; + } + + if (blueColour) { + return TotemColour.BLUE; + } + + if (yellowColour) { + return TotemColour.YELLOW; + } + + return TotemColour.NONE; + } + + /** + * Gets the colour of the totem legs. + * + * @param item the item colour + * @return the totem colour + */ + public static int convertLegToColour(Item item, TotemColour colour) { + boolean squid = item.getCustomData().equals("4") || item.getCustomData().equals("5") || item.getCustomData().equals("6") || item.getCustomData().equals("7"); + boolean bird = item.getCustomData().equals("8") || item.getCustomData().equals("9") || item.getCustomData().equals("10") || item.getCustomData().equals("11"); + boolean human = item.getCustomData().equals("0") || item.getCustomData().equals("1") || item.getCustomData().equals("2") || item.getCustomData().equals("3"); + + if (human) { + if (colour == TotemColour.RED) { + return 1; + } + + if (colour == TotemColour.YELLOW) { + return 2; + } + + if (colour == TotemColour.BLUE) { + return 3; + } + + return 0; + } + + if (bird) { + if (colour == TotemColour.RED) { + return 9; + } + + if (colour == TotemColour.YELLOW) { + return 10; + } + + if (colour == TotemColour.BLUE) { + return 11; + } + + return 8; + } + + if (squid) { + if (colour == TotemColour.RED) { + return 5; + } + + if (colour == TotemColour.YELLOW) { + return 6; + } + + if (colour == TotemColour.BLUE) { + return 7; + } + + return 4; + } + + return 0; + } + + /** + * Gets the colour of the totem legs. + * + * @param item the item colour + * @return the totem colour + */ + public static TotemColour getLegColour(Item item) { + boolean redColour = item.getCustomData().equals("5") || item.getCustomData().equals("9") || item.getCustomData().equals("1"); + boolean yellowColour = item.getCustomData().equals("6") || item.getCustomData().equals("10") || item.getCustomData().equals("2"); + boolean blueColour = item.getCustomData().equals("3") || item.getCustomData().equals("7") || item.getCustomData().equals("11"); + boolean noColour = !yellowColour && !redColour && !blueColour; + + if (redColour) { + return TotemColour.RED; + } + + if (blueColour) { + return TotemColour.BLUE; + } + + if (yellowColour) { + return TotemColour.YELLOW; + } + + return TotemColour.NONE; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemLegTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemLegTrigger.java new file mode 100644 index 0000000..3421df5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemLegTrigger.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.enums.TotemColour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.rooms.items.MOVE_FLOORITEM; + +import java.util.List; + +public class TotemLegTrigger extends GenericTrigger { + @Override + public void onInteract(Player player, Room room, Item item, int status) { + Item itemAbove = item.getItemAbove(); + + if (itemAbove != null && + (itemAbove.getDefinition().getSprite().equals("totem_head") + || itemAbove.getDefinition().getSprite().equals("totem_planet"))) { + return; + } + + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + @Override + public void onItemMoved(Player player, Room room, Item item, boolean isRotation, Position oldPosition, Item itemBelow, Item itemAbove) { + if (itemAbove == null || !itemAbove.getDefinition().getSprite().equals("totem_head")) { + return; + } + + if (TotemHeadTrigger.getHeadColour(itemAbove) != TotemColour.NONE) { + itemAbove.setCustomData(String.valueOf(TotemHeadTrigger.convertHeadToColour(itemAbove, TotemColour.NONE))); + itemAbove.updateStatus(); + ItemDao.updateItems(List.of(itemAbove)); + } + } + /*@Override + public void onItemPlaced(Player player, Room room, Item item, boolean isRotation, Position oldPosition, Item itemBelow) { + Item above = item.getItemAbove(); + + if (isRotation) { + // If we rotate the head and have legs underneath, rotate the legs + if (above != null && above.getDefinition().getSprite().equals("totem_head")) { + above.getPosition().setRotation(item.getPosition().getRotation()); + room.send(new MOVE_FLOORITEM(above)); + ItemDao.updateItem(above); + } + + return; + } + }*/ +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemPlanetTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemPlanetTrigger.java new file mode 100644 index 0000000..58a1856 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/TotemPlanetTrigger.java @@ -0,0 +1,131 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.dao.mysql.EffectDao; +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.effects.EffectsManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.enums.TotemEffect; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.incoming.effects.ACTIVATE_AVATAR_EFFECT; +import org.alexdev.havana.messages.incoming.effects.USE_AVATAR_EFFECT; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECTS; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECT_ADDED; +import org.alexdev.havana.util.DateUtil; + +import java.util.concurrent.TimeUnit; + +public class TotemPlanetTrigger extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + Item itemBelow = item.getItemBelow(); + + if (itemBelow != null && + (itemBelow.getDefinition().getSprite().equals("totem_head") + || itemBelow.getDefinition().getSprite().equals("totem_leg"))) { + + checkEffect(item, player, room); + return; + } + + InteractionType.DEFAULT.getTrigger().onInteract(player, room, item, status); + } + + private void checkEffect(Item item, Player player, Room room) { + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + TotemEffect totemEffect = this.getTotemEffect(item); + + if (totemEffect == TotemEffect.NONE) { + return; + } + + for (Effect effect : player.getEffects()) { + if (effect.getEffectId() == totemEffect.getEffectId()) { + return; + } + } + + if (player.getDetails().getTotemEffectExpiry() > DateUtil.getCurrentTimeSeconds()) { + return; + } + + Effect effect = EffectDao.newEffect(player.getDetails().getId(), totemEffect.getEffectId(), -1, false); + + if (effect == null) { + return; + } + + player.getEffects().add(effect); + + player.send(new AVATAR_EFFECT_ADDED(effect)); + player.send(new AVATAR_EFFECTS(player.getEffects())); + + ACTIVATE_AVATAR_EFFECT.doAction(player, totemEffect.getEffectId()); + USE_AVATAR_EFFECT.doAction(player, totemEffect.getEffectId()); + + ItemDao.saveTotemExpire(player.getDetails().getId(), DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(1)); + } + + private TotemEffect getTotemEffect(Item totemPlanet) { + if (totemPlanet.getItemBelow() == null || !totemPlanet.getItemBelow().getDefinition().getSprite().equals("totem_head")) { + return TotemEffect.NONE; + } + + Item totemHead = totemPlanet.getItemBelow(); + + if (totemHead == null || totemHead.getItemBelow() == null || !totemHead.getItemBelow().getDefinition().getSprite().equals("totem_leg")) { + return TotemEffect.NONE; + } + + Item totemLegs = totemHead.getItemBelow(); + + // FIRE + /* + * Status planet: 1 + * Status head: 12 + * Status legs: 8 + */ + + // WAND + /* + Status planet: 2 + Status head: 9 + Status legs: 8 + */ + + // RAIN + /* + Status planet: 0 + Status head: 10 + Status legs: 4 + */ + + // LEVITATION + /* + Status planet: 2 + Status head: 5 + Status legs: 0 + */ + + int planet = Integer.parseInt(totemPlanet.getCustomData()); + int head = Integer.parseInt(totemHead.getCustomData()); + int legs = Integer.parseInt(totemLegs.getCustomData()); + + + for (TotemEffect totemEffect : TotemEffect.values()) { + if (totemEffect.getPlanet() == planet && totemEffect.getHead() == head && totemEffect.getLegs() == legs) { + return totemEffect; + } + } + + + return TotemEffect.NONE; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/VendingMachineInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/VendingMachineInteractor.java new file mode 100644 index 0000000..7ad132d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/VendingMachineInteractor.java @@ -0,0 +1,61 @@ +package org.alexdev.havana.game.item.interactors.types; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class VendingMachineInteractor extends GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { + /*if (player.getRoomUser().isUsingEffect()) { + return; + }*/ + + // Can't getInteractor to the vending machine unless we're close + Position front = item.getPosition().getSquareInFront(); + + // Let user access fridge from the side, left or right. + if (!front.touches(player.getRoomUser().getPosition()) && + !player.getRoomUser().getPosition().getSquareRight().equals(item.getPosition()) && + !player.getRoomUser().getPosition().getSquareLeft().equals(item.getPosition())) { + player.getRoomUser().walkTo(front.getX(), front.getY()); + return; + } + + // Only rotate user if they are in front + if (!player.getRoomUser().containsStatus(StatusType.SIT) && + !player.getRoomUser().containsStatus(StatusType.LAY)) { + int newRotation = Rotation.calculateWalkDirection(player.getRoomUser().getPosition(), item.getPosition()); + + if (player.getRoomUser().getPosition().getRotation() != newRotation) { + if (player.getRoomUser().isSittingOnChair()) { // Don't rotate user on chair when using vending machine + return; + } + + player.getRoomUser().getPosition().setRotation(newRotation); + player.getRoomUser().setNeedsUpdate(true); + } + } + + int randomDrinkId = item.getDefinition().getDrinkIds()[ThreadLocalRandom.current().nextInt(0, item.getDefinition().getDrinkIds().length)]; + + item.setCustomData("1"); + item.updateStatus(); + + GameScheduler.getInstance().getService().schedule(() -> { + player.getRoomUser().carryItem(randomDrinkId, null); + }, 1, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + item.setCustomData("0"); + item.updateStatus(); + }, 2, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolChairVoteInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolChairVoteInteractor.java new file mode 100644 index 0000000..d16b0c9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolChairVoteInteractor.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.item.interactors.types.idol; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.tasks.EntityTask; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.messages.outgoing.rooms.items.JUDGE_GUI_STATUS; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +public class IdolChairVoteInteractor extends GenericTrigger { + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + InteractionType.CHAIR.getTrigger().onEntityStop(entity, roomEntity, item, isRotation); + + if (isRotation) { + return; + } + + if (entity.getType() != EntityType.PLAYER) { + return; + } + + roomEntity.getRoom().getIdolManager().updatePerformer(); + + Player player = (Player) entity; + + if (roomEntity.getRoom().getIdolManager().getPerformer() == null || !item.getCustomData().equals("0") || roomEntity.getRoom().getIdolManager().getVoted().contains(player)) { + player.send(new JUDGE_GUI_STATUS(1, -1)); + } else { + player.send(new JUDGE_GUI_STATUS(2, roomEntity.getRoom().getIdolManager().getPerformer().getDetails().getId())); + } + + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + player.send(new JUDGE_GUI_STATUS(0, -1)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolScoreboardInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolScoreboardInteractor.java new file mode 100644 index 0000000..e856698 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/idol/IdolScoreboardInteractor.java @@ -0,0 +1,82 @@ +package org.alexdev.havana.game.item.interactors.types.idol; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.incoming.rooms.idol.OPEN_PERFORMER_GUI; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.HashMap; +import java.util.Map; + +public class IdolScoreboardInteractor extends GenericTrigger { + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + /*player.getRoomUser().getPosition().setRotation(item.getPosition().getRotation()); + player.getRoomUser().setNeedsUpdate(true);*/ + + if (isRotation) { + return; + } + + Player player = (Player) entity; + Map userDisks = new HashMap<>(); + + if (roomEntity.getRoom().getItemManager().getSoundMachine() != null && roomEntity.getRoom().getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE)) { + for (Item disk : player.getInventory().getItems()) { + if (!item.isVisible()) { + continue; + } + + if (!disk.hasBehaviour(ItemBehaviour.SONG_DISK)) { + continue; + } + + userDisks.put(disk, disk.getCustomData().split(Character.toString((char) 10))[5]); + } + } + + player.send(new OPEN_PERFORMER_GUI(userDisks)); + + roomEntity.getRoom().getIdolManager().resetChairs(); + roomEntity.getRoom().getIdolManager().updatePerformer(); + + if (!item.getCustomData().equals("-1")) { + item.setCustomData("-1"); + item.updateStatus(); + item.save(); + } + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + player.send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + } + + @Override + public short getHeader() { + return 492; + } + }); + + roomEntity.getRoom().getIdolManager().resetChairs(); + roomEntity.getRoom().getIdolManager().updatePerformer(); + roomEntity.getRoom().getIdolManager().forceStop(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolBoothInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolBoothInteractor.java new file mode 100644 index 0000000..f8f0679 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolBoothInteractor.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.rooms.pool.OPEN_UIMAKOPPI; + +public class PoolBoothInteractor extends GenericTrigger { + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + player.getRoomUser().setWalkingAllowed(false); + player.getRoomUser().getTimerManager().resetRoomTimer(120); // Only allow 120 seconds when changing clothes, to stop someone from just afking in the booth for 15 minutes. + player.send(new OPEN_UIMAKOPPI()); + + item.showProgram("close"); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + if (roomEntity.isWalking()) { + return; + } + + item.showProgram("open"); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolExitInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolExitInteractor.java new file mode 100644 index 0000000..adce79a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolExitInteractor.java @@ -0,0 +1,72 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.handlers.PoolHandler; + +public class PoolExitInteractor extends GenericTrigger { + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (!entity.getRoomUser().containsStatus(StatusType.SWIM)) { + return; + } + + // Don't handle step event from RoomUser when changing paths + //if (customArgs.length > 0) { + // return; + //} + + Position warp = null; + Position goal = null; + + if (item.getPosition().getX() == 21 && item.getPosition().getY() == 28) { + warp = new Position(20, 28); + goal = new Position(19, 28); + } + + if (item.getPosition().getX() == 17 && item.getPosition().getY() == 22) { + warp = new Position(17, 21); + goal = new Position(17, 20); + } + + if (item.getPosition().getX() == 31 && item.getPosition().getY() == 11) { + warp = new Position(31, 10); + goal = new Position(31, 9); + } + + if (item.getPosition().getX() == 20 && item.getPosition().getY() == 19) { + warp = new Position(19, 19); + goal = new Position(18, 19); + } + + if ((item.getPosition().getX() == 12 && item.getPosition().getY() == 11) || + (item.getPosition().getX() == 12 && item.getPosition().getY() == 12)) { + warp = new Position(11, 11); + goal = new Position(10, 11); + } + + + if (warp != null) { + PoolHandler.warpSwim(item, entity, warp, goal, true); + } + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolInteractor.java new file mode 100644 index 0000000..0979ddb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolInteractor.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; + +public class PoolInteractor { + public static boolean getTileStatus(Room room, Entity entity, Position current, Position tmp, boolean isFinalMove) { + RoomTile fromTile = room.getMapping().getTile(current); + RoomTile toTile = room.getMapping().getTile(tmp); + + if (fromTile == null || toTile == null) { + return false; + } + + Item fromItem = fromTile.getHighestItem(); + Item toItem = toTile.getHighestItem(); + + // Only check these below if the user is in a pool room. + if (room.getModel().getName().startsWith("pool_") || + room.getModel().getName().equals("md_a")) { + if (fromItem != null) { + // Check if they have swimmers before trying to enter pool + if (fromItem.getDefinition().getSprite().equals("poolEnter") || + fromItem.getDefinition().getSprite().equals("poolExit")) { + return entity.getDetails().getPoolFigure().length() > 0; + } + } + + if (toItem != null) { + // Check if they have swimmers before trying to enter pool + if (toItem.getDefinition().getSprite().equals("poolEnter") || + toItem.getDefinition().getSprite().equals("poolExit")) { + return entity.getDetails().getPoolFigure().length() > 0; + } + + // Don't allow to "enter" the pool if they're already swimming + if (entity.getRoomUser().containsStatus(StatusType.SWIM) && + toItem.getDefinition().getSprite().equals("poolEnter")) { + return false; + } + + // Don't allow to "leave" the pool if they're not swimming + if (!entity.getRoomUser().containsStatus(StatusType.SWIM) && + toItem.getDefinition().getSprite().equals("poolExit")) { + return false; + } + } + } + + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLadderInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLadderInteractor.java new file mode 100644 index 0000000..e04d1df --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLadderInteractor.java @@ -0,0 +1,113 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.handlers.PoolHandler; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PoolLadderInteractor extends GenericTrigger { + /*@Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + this.onEntityStep(entity, roomEntity, item, oldPosition); + + }*/ + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (item.getTeleportTo() == null) { + return; + } + + if (item.getDefinition().getSprite().equals("poolEnter")) { + if (roomEntity.containsStatus(StatusType.SWIM)) { + return; + } + + roomEntity.setStatus(StatusType.SWIM, ""); + } + + if (item.getDefinition().getSprite().equals("poolExit")) { + if (!roomEntity.containsStatus(StatusType.SWIM)) { + return; + } + + roomEntity.removeStatus(StatusType.SWIM); + } + + roomEntity.stopWalking(); + + //roomEntity.setWalkingAllowed(false); + + roomEntity.warp(item.getTeleportTo(), true, false); + + if (item.getSwimTo() != null) { + roomEntity.setEnableWalkingOnStop(true); + roomEntity.walkTo(item.getSwimTo().getX(), item.getSwimTo().getY()); + } + + item.showProgram(null); + + /* if (item.getRoom().getModel().equals("md_a")) { + item.showProgram(null); + } else { + */ // handle_pool_stair_splash + /*roomEntity.getRoom().send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + } + + @Override + public short getHeader() { + return 505; + } + });*/ + //} + + // Don't handle step event from RoomUser when changing paths + //if (customArgs.length > 0) { + // return; + //} + + /* + + Position warp = null; + Position goal = null; + + if (item.getPosition().getX() == 20 && item.getPosition().getY() == 28) { + warp = new Position(21, 28); + goal = new Position(22, 28); + } + + if (item.getPosition().getX() == 17 && item.getPosition().getY() == 21) { + warp = new Position(16, 22); + goal = new Position(16, 23); + } + + if (item.getPosition().getX() == 31 && item.getPosition().getY() == 10) { + warp = new Position(30, 11); + goal = new Position(30, 12); + } + + if ((item.getPosition().getX() == 11 && item.getPosition().getY() == 11) || + item.getPosition().getX() == 11 && item.getPosition().getY() == 10) { + warp = new Position(12, 11); + goal = new Position(13, 12); + } +*/ + + //if (warp != null) { + //PoolHandler.warpSwim(item, entity, warp, goal, false); + //} + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLiftInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLiftInteractor.java new file mode 100644 index 0000000..594ca0a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolLiftInteractor.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.rooms.pool.JUMPINGPLACE_OK; +import org.alexdev.havana.messages.outgoing.user.currencies.TICKET_BALANCE; + +public class PoolLiftInteractor extends GenericTrigger { + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + item.showProgram("close"); + + player.getRoomUser().setWalkingAllowed(false); + player.getRoomUser().getTimerManager().resetRoomTimer(120); // Only allow 120 seconds when diving, to stop the queue from piling up if someone goes AFK. + player.getRoomUser().setDiving(true); + + CurrencyDao.decreaseTickets(player.getDetails(), 1); + + player.send(new TICKET_BALANCE(player.getDetails().getTickets())); + player.send(new JUMPINGPLACE_OK()); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + if (roomEntity.isWalking()) { + return; + } + + item.showProgram("open"); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolQueueInteractor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolQueueInteractor.java new file mode 100644 index 0000000..5460985 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/pool/PoolQueueInteractor.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.item.interactors.types.pool; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.tasks.StatusTask; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.user.currencies.NO_TICKETS; + +public class PoolQueueInteractor extends GenericTrigger { + + @Override + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + if (player.getDetails().getTickets() == 0 || player.getDetails().getPoolFigure().isEmpty()) { + oldPosition.setRotation(2); // Make user face this way, like the original Lido behaviour + player.getRoomUser().stopWalking(); + player.getRoomUser().warp(oldPosition, false, false); + + if (player.getDetails().getTickets() == 0) { + player.send(new NO_TICKETS()); + } + } + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + if (player.getDetails().getTickets() == 0 || player.getDetails().getPoolFigure().isEmpty()) { + return; + } + + // When they stop walking, check if the player is on a pool lido queue and walk to the next one + StatusTask.processPoolQueue(player); + } + + @Override + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleJoinQueue.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleJoinQueue.java new file mode 100644 index 0000000..205c8f5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleJoinQueue.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.game.item.interactors.types.wobblesquabble; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; + +public class WobbleSquabbleJoinQueue extends GenericTrigger { + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (roomEntity.getRoom().getTaskManager().hasTask(WobbleSquabbleManager.getInstance().getName())) { + return; + } + + Player player = (Player) entity; + + if (player.getDetails().getTickets() < WobbleSquabbleManager.WS_GAME_TICKET_COST) { + player.send(new ALERT("You need at least " + WobbleSquabbleManager.WS_GAME_TICKET_COST + " ticket(s) to play Wobble Squabble!")); + return; // Too poor! + } + + String[] teleportPositionData = item.getCurrentProgram().split(","); + + Position teleportPosition = new Position( + Integer.parseInt(teleportPositionData[0]), + Integer.parseInt(teleportPositionData[1]) + ); + + teleportPosition.setRotation(Integer.parseInt(teleportPositionData[2])); + RoomTile roomTile = roomEntity.getRoom().getMapping().getTile(teleportPosition); + + if (roomTile == null || roomTile.getEntities().size() > 0) { + return; + } + + player.getRoomUser().setTeleporting(false); + roomEntity.removeStatus(StatusType.SWIM); + roomEntity.warp(teleportPosition, true, false); + + InteractionType.WS_QUEUE_TILE.getTrigger().onEntityStop(entity, roomEntity, item, isRotation); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleQueueTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleQueueTile.java new file mode 100644 index 0000000..2cfe618 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleQueueTile.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.item.interactors.types.wobblesquabble; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public class WobbleSquabbleQueueTile extends GenericTrigger { + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { + + } + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (roomEntity.getRoom().getTaskManager().hasTask(WobbleSquabbleManager.getInstance().getName())) { + return; + } + + roomEntity.setTeleporting(false); + roomEntity.walkTo(roomEntity.getPosition().getSquareInFront().getX(), roomEntity.getPosition().getSquareInFront().getY()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleTileStart.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleTileStart.java new file mode 100644 index 0000000..99d8aba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/interactors/types/wobblesquabble/WobbleSquabbleTileStart.java @@ -0,0 +1,81 @@ +package org.alexdev.havana.game.item.interactors.types.wobblesquabble; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleGame; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.wobblesquabble.PT_PREPARE; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class WobbleSquabbleTileStart extends GenericTrigger { + + @Override + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (roomEntity.getRoom().getTaskManager().hasTask(WobbleSquabbleManager.getInstance().getName())) { + return; + } + + String[] otherTilePlayer = item.getCurrentProgram().split(","); + + Position teleportPosition = new Position( + Integer.parseInt(otherTilePlayer[0]), + Integer.parseInt(otherTilePlayer[1]) + ); + + RoomTile roomTile = roomEntity.getRoom().getMapping().getTile(teleportPosition); + + if (roomTile == null || !(roomTile.getEntities().size() > 0)) { + return; + } + + entity.getRoomUser().setTeleporting(false); + + // Two players! :3 + WobbleSquabbleGame wsGame = new WobbleSquabbleGame((Player)entity, (Player) roomTile.getEntities().get(0)); + + for (int i = 0; i < 2; i++) { + Player player = wsGame.getPlayer(i).getPlayer(); + + if (player.getDetails().getTickets() < WobbleSquabbleManager.WS_GAME_TICKET_COST) { + player.send(new ALERT("You need at least " + WobbleSquabbleManager.WS_GAME_TICKET_COST + " ticket(s) to play Wobble Squabble!")); + + int newX = player.getRoomUser().getPosition().getX() + (ThreadLocalRandom.current().nextBoolean() ? -1 : 1); + int newY = player.getRoomUser().getPosition().getY(); + + Position position = new Position(newX, newY); + position.setRotation(player.getRoomUser().getPosition().getRotation()); + + player.getRoomUser().setStatus(StatusType.SWIM, ""); + player.getRoomUser().warp(position, true, false); + + return; // Too poor! + } + } + + + // Disable walking requests + wsGame.getPlayer(0).getPlayer().getRoomUser().setWalkingAllowed(false); + wsGame.getPlayer(1).getPlayer().getRoomUser().setWalkingAllowed(false); + + // Schedule worker task + String wsTaskName = WobbleSquabbleManager.getInstance().getName(); + roomEntity.getRoom().getTaskManager().scheduleTask(wsTaskName, wsGame, TimeUnit.SECONDS.toMillis(3),200, TimeUnit.MILLISECONDS); + + // Announce game starting + wsGame.send(new PT_PREPARE(wsGame.getPlayer(0), wsGame.getPlayer(1))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemData.java new file mode 100644 index 0000000..8c2569f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemData.java @@ -0,0 +1,92 @@ +package org.alexdev.havana.game.item.publicrooms; + +public class PublicItemData { + private String id; + private String roomModel; + private String sprite; + private int x; + private int y; + private double z; + private int rotation; + private double topHeight; + private int length; + private int width; + private String behaviour; + private String currentProgram; + private String teleportTo; + private String swimTo; + + public PublicItemData(String id, String roomModel, String sprite, int x, int y, double z, int rotation, double topHeight, int length, int width, String behaviour, String currentProgram, + String teleportTo, String swimTo) { + this.id = id; + this.roomModel = roomModel; + this.sprite = sprite; + this.x = x; + this.y = y; + this.z = z; + this.rotation = rotation; + this.topHeight = topHeight; + this.length = length; + this.width = width; + this.behaviour = behaviour; + this.currentProgram = currentProgram; + this.teleportTo = teleportTo; + this.swimTo = swimTo; + } + + public String getId() { + return id; + } + + public String getRoomModel() { + return roomModel; + } + + public String getSprite() { + return sprite; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public double getZ() { + return z; + } + + public int getRotation() { + return rotation; + } + + public int getLength() { + return length; + } + + public int getWidth() { + return width; + } + + public String getBehaviour() { + return behaviour; + } + + public String getCurrentProgram() { + return currentProgram; + } + + public double getTopHeight() { + return topHeight; + } + + public String[] getTeleportTo() { + return teleportTo != null ? teleportTo.split(" ") : null; + } + + public String[] getSwimTo() { + return swimTo != null ? swimTo.split(" ") : null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemParser.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemParser.java new file mode 100644 index 0000000..e47424c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/publicrooms/PublicItemParser.java @@ -0,0 +1,286 @@ +package org.alexdev.havana.game.item.publicrooms; + +import org.alexdev.havana.dao.mysql.PublicRoomsDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ThreadLocalRandom; + +public class PublicItemParser { + public static List getPublicItems(int roomId, String modelId) { + List randomPublicId = new ArrayList<>(); + Map itemTriggerMap = new HashMap<>(); + + itemTriggerMap.put("poolEnter", InteractionType.POOL_LADDER); + itemTriggerMap.put("poolExit", InteractionType.POOL_LADDER);//.POOL_EXIT); + + itemTriggerMap.put("poolLift", InteractionType.POOL_LIFT); + itemTriggerMap.put("poolBooth", InteractionType.POOL_BOOTH); + itemTriggerMap.put("queue_tile2", InteractionType.POOL_QUEUE); + itemTriggerMap.put("s_queue_tile2", InteractionType.POOL_QUEUE); + itemTriggerMap.put("gamehall_chair_wood", InteractionType.GAME_TIC_TAC_TOE); + + if (modelId.equals("hallC")) { + itemTriggerMap.put("gamehall_chair_green", InteractionType.GAME_CHESS); + itemTriggerMap.put("chess_king_chair", InteractionType.GAME_CHESS); + } + + if (modelId.equals("hallB")) { + itemTriggerMap.put("gamehall_chair_green", InteractionType.GAME_BATTLESHIPS); + } + + if (modelId.equals("hallD")) { + itemTriggerMap.put("gamehall_chair_green", InteractionType.GAME_POKER); + } + + itemTriggerMap.put("wsJoinQueue", InteractionType.WS_JOIN_QUEUE); + itemTriggerMap.put("wsQueueTile", InteractionType.WS_QUEUE_TILE); + itemTriggerMap.put("wsTileStart", InteractionType.WS_TILE_START); + + int itemId = 0; + + List items = new ArrayList<>(); + List publicItemData = PublicRoomsDao.getPublicItemData(modelId); + + for (PublicItemData itemData : publicItemData) { + String customId = null; + + String alphabet = "abcdefghijlmnopqrstuvwyz"; + + while (customId == null) { + String temp = alphabet.charAt(ThreadLocalRandom.current().nextInt(0, alphabet.length())) + "" + ThreadLocalRandom.current().nextInt(0, 999); + + if (!randomPublicId.contains(temp)) { + randomPublicId.add(temp); + customId = temp; + } + } + + Item item = new Item(); + item.setVirtualId(itemId++); + item.setRoomId(roomId); + item.setCustomData(customId); + item.getDefinition().setSpriteId(-1); + item.getDefinition().setSprite(itemData.getSprite()); + item.getDefinition().setTopHeight(itemData.getTopHeight()); + item.getDefinition().setLength(itemData.getLength()); + item.getDefinition().setWidth(itemData.getWidth()); + item.setCurrentProgram(itemData.getCurrentProgram()); + + if (itemTriggerMap.containsKey(itemData.getSprite())) { + item.getDefinition().setInteractionType(itemTriggerMap.get(itemData.getSprite())); + } + + if (itemData.getBehaviour().length() > 0) { + for (String behaviour : itemData.getBehaviour().split(",")) { + item.getDefinition().addBehaviour(ItemBehaviour.valueOf(behaviour.toUpperCase())); + } + } + + if (item.getDefinition().getInteractionType() == null) { + if (item.getDefinition().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)) { + item.getDefinition().setInteractionType(InteractionType.CHAIR); + } else { + item.getDefinition().setInteractionType(InteractionType.DEFAULT); + } + } + + item.getPosition().setX(itemData.getX()); + item.getPosition().setY(itemData.getY()); + item.getPosition().setZ(itemData.getZ()); + item.getPosition().setRotation(itemData.getRotation()); + + if (!item.getDefinition().getSprite().contains("queue_tile2")) { + item.getDefinition().addBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT); + } + + if (item.getDefinition().hasBehaviour(ItemBehaviour.PRIVATE_FURNITURE)) { + item.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite(itemData.getSprite()).getId()); + } + + if (item.getDefinition().getSprite().equals("poolLift") || + item.getDefinition().getSprite().equals("poolBooth")) { + item.showProgram("open"); + } + + if (itemData.getTeleportTo() != null) { + int X = Integer.parseInt(itemData.getTeleportTo()[0]); + int Y = Integer.parseInt(itemData.getTeleportTo()[1]); + int Z = Integer.parseInt(itemData.getTeleportTo()[2]); + + var position = new Position(X, Y, Z); + position.setBodyRotation(Integer.parseInt(itemData.getTeleportTo()[3])); + position.setHeadRotation(Integer.parseInt(itemData.getTeleportTo()[3])); + + item.setTeleportTo(position); + } + + if (itemData.getSwimTo() != null) { + int X = Integer.parseInt(itemData.getSwimTo()[0]); + int Y = Integer.parseInt(itemData.getSwimTo()[1]); + int Z = Integer.parseInt(itemData.getSwimTo()[2]); + + var position = new Position(X, Y, Z); + position.setBodyRotation(Integer.parseInt(itemData.getSwimTo()[3])); + position.setHeadRotation(Integer.parseInt(itemData.getSwimTo()[3])); + + item.setSwimTo(position); + } + + items.add(item); + } + + /*File file = Paths.get("tools", "gamedata", "publicrooms", modelId + ".dat").toFile(); + + if (!file.exists()) { + return items; + } + + int id = Integer.MAX_VALUE; + + try (BufferedReader br = new BufferedReader(new FileReader(file))) { + String line; + + while ((line = br.readLine()) != null) { + String[] data = line.split(" "); + + Item item = new Item(); + item.setVirtualId(id--); + item.getDefinition().addBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT); + item.getDefinition().setSprite(data[1]); + item.getDefinition().setTopHeight(ItemDefinition.DEFAULT_TOP_HEIGHT); + + item.setCustomData(data[0]); + item.getPosition().setX(Integer.parseInt(data[2])); + item.getPosition().setY(Integer.parseInt(data[3])); + item.getPosition().setZ(Integer.parseInt(data[4])); + item.getPosition().setRotation(Integer.parseInt(data[5])); + + if (data.length >= 7) { + String customData = data[6]; + + if (customData.equals("2")) { + item.getDefinition().addBehaviour(ItemBehaviour.EXTRA_PARAMETER); + } else { + item.setCurrentProgram(customData); + } + } + + + // Set item triggers for public room furniture + if (itemTriggerMap.containsKey(item.getDefinition().getSprite())) { + item.setItemTrigger(itemTriggerMap.get(item.getDefinition().getSprite())); + } + + if (item.getDefinition().getSprite().contains("chair") + || item.getDefinition().getSprite().contains("bench") + || item.getDefinition().getSprite().contains("seat") + || item.getDefinition().getSprite().contains("stool") + || item.getDefinition().getSprite().contains("sofa") + || item.getDefinition().getSprite().equals("l") + || item.getDefinition().getSprite().equals("m") + || item.getDefinition().getSprite().equals("k") + || item.getDefinition().getSprite().equals("shift1") + || item.getDefinition().getSprite().equals("stone") + || item.getDefinition().getSprite().startsWith("rooftop_flatcurb")) { + item.getDefinition().addBehaviour(ItemBehaviour.CAN_SIT_ON_TOP); + item.getDefinition().removeBehaviour(ItemBehaviour.CAN_STAND_ON_TOP); + item.getDefinition().setTopHeight(1.0); + + if (item.getItemTrigger() == null) { + item.setItemTrigger(ItemBehaviour.CAN_SIT_ON_TOP.getTrigger()); + } + + } else { + item.getDefinition().removeBehaviour(ItemBehaviour.CAN_SIT_ON_TOP); + item.getDefinition().removeBehaviour(ItemBehaviour.CAN_STAND_ON_TOP); + } + + if (item.getDefinition().getSprite().equals("poolEnter") + || item.getDefinition().getSprite().equals("poolExit") + || item.getDefinition().getSprite().equals("poolLift") + || item.getDefinition().getSprite().equals("poolBooth") + || item.getDefinition().getSprite().equals("queue_tile2") + || item.getDefinition().getSprite().equals("stair")) { + //item.getBehaviour().setCanSitOnTop(false); + //item.getBehaviour().setCanStandOnTop(true); + item.getDefinition().removeBehaviour(ItemBehaviour.CAN_SIT_ON_TOP); + item.getDefinition().addBehaviour(ItemBehaviour.CAN_STAND_ON_TOP); + } + + if (item.getDefinition().getSprite().equals("queue_tile2")) { + item.getDefinition().removeBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT); + } + + if (item.getDefinition().getSprite().equals("poolLift") || + item.getDefinition().getSprite().equals("poolBooth")) { + item.setCurrentProgramValue("open"); + } + + // Custom heights for these furniture + if (item.getDefinition().getSprite().equals("picnic_dummychair4")) { + item.getDefinition().setTopHeight(4.0); + } + + if (item.getDefinition().getSprite().equals("picnic_dummychair6")) { + item.getDefinition().setTopHeight(7.0); + } + + // This is the only public item I'm aware of that has a length of 2 + if (item.getDefinition().getSprite().equals("hw_shelf")) { + item.getDefinition().setLength(2); + } + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + String alphabet = "abcdefghijlmnopqrstuvwyz"; + + item.getDefinition().getBehaviourList().remove(ItemBehaviour.PUBLIC_SPACE_OBJECT); + String[] behaviourList = new String[item.getDefinition().getBehaviourList().size()]; + + for (int i = 0; i < item.getDefinition().getBehaviourList().size(); i++) { + behaviourList[i] = item.getDefinition().getBehaviourList().get(i).name().toLowerCase(); + } + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO publicrooms (id, room_model, sprite, x, y, z, rotation, top_height, length, width, behaviour, current_program) " + + "VALUES (?, ?, ?, ?, ?, ? ,?, ?, ? ,? ,? ,?)", sqlConnection); + preparedStatement.setString(1, alphabet.charAt(ThreadLocalRandom.current().nextInt(0, alphabet.length())) + "" + ThreadLocalRandom.current().nextInt(0, 999)); + preparedStatement.setString(2, modelId); + preparedStatement.setString(3, item.getDefinition().getSprite()); + preparedStatement.setInt(4, item.getPosition().getX()); + preparedStatement.setInt(5, item.getPosition().getY()); + preparedStatement.setDouble(6, item.getPosition().getZ()); + preparedStatement.setInt(7, item.getPosition().getRotation()); + preparedStatement.setDouble(8, item.getDefinition().getTopHeight()); + preparedStatement.setInt(9, item.getDefinition().getWidth()); + preparedStatement.setInt(10, item.getDefinition().getLength()); + preparedStatement.setString(11, String.join(",", behaviourList)); + preparedStatement.setString(12, item.getCurrentProgram() != null ? item.getCurrentProgram() : ""); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + items.add(item); + } + } catch (IOException e) { + return items; + }*/ + + return items; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/EntityRollingAnalysis.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/EntityRollingAnalysis.java new file mode 100644 index 0000000..6e39f25 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/EntityRollingAnalysis.java @@ -0,0 +1,202 @@ +package org.alexdev.havana.game.item.roller; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; + +public class EntityRollingAnalysis implements RollingAnalysis { + @Override + public Position canRoll(Entity entity, Item roller, Room room) { + if (entity.getRoomUser().getTile() == null) { + return null; + } + + if (entity.getRoomUser().isWalking()) { + return null; // Don't roll user if they're walking. + } + + if (entity.getRoomUser().getPosition().getZ() < roller.getPosition().getZ()) { + return null; // Don't roll user if they're below the roller + } + + if (!entity.getRoomUser().getPosition().equals(roller.getPosition())) { + return null; // Don't roll users who aren't on this tile. + } + + if (!entity.getRoomUser().getTile().hasWalkableFurni(entity)) { + return null; // Don't roll user if they are stuck, let them be unstuck... + } + + Position front = roller.getPosition().getSquareInFront(); + RoomTile frontTile = room.getMapping().getTile(front); + + if (frontTile == null) { + return null; + } + + if (!frontTile.hasWalkableFurni(entity)) { + return null; + } + + // Check all entities in the room + for (Entity e : room.getEntities()) { + if (e.getRoomUser().getRoom() == null) { + continue; + } + + // Don't roll if an entity is going to walk into the this entity + if (e.getRoomUser().getNextPosition() != null) { + if (e.getRoomUser().getNextPosition().equals(front)) { + return null; + } + } + + // Ignore people who are walking + if (e.getRoomUser().isWalking()) { + continue; + } + + // Don't roll if there's an entity rolling into you + if (e.getRoomUser().getRollingData() != null) { + if (e.getRoomUser().getRollingData().getNextPosition().equals(front)) { + return null; + } + } + + if (e.getRoomUser().getPosition().equals(front)) { + return null; + } + } + + // Check all rolling items in the room + for (Item floorItem : room.getItemManager().getFloorItems()) { + if (floorItem.getRollingData() != null) { + if (floorItem.getPosition().equals(roller.getPosition())) { + continue; + } + + // Don't roll if there's another item that's going to roll into this entity + if (floorItem.getRollingData().getNextPosition().equals(front)) { + return null; + } + } + } + + double nextHeight = entity.getRoomUser().getPosition().getZ(); + boolean subtractRollerHeight = true; + + if (frontTile.getHighestItem() != null) { + Item frontRoller = null; + + for (Item frontItem : frontTile.getItems()) { + if (!frontItem.hasBehaviour(ItemBehaviour.ROLLER)) { + continue; + } + + frontRoller = frontItem; + } + + if (frontRoller != null) { + subtractRollerHeight = false; // Since we know there's a roller, don't subtract the height. + + if (frontRoller.getPosition().getZ() != roller.getPosition().getZ()) { + if (Math.abs(frontRoller.getPosition().getZ() - roller.getPosition().getZ()) > 0.1) { + return null; // Don't roll if the height of the roller is different by >0.1 + } + } + + for (Item frontItem : frontTile.getItems()) { + if (frontItem.getPosition().getZ() < frontRoller.getPosition().getZ()) { + continue; + } + + // This is because the ItemRollingAnalysis has setHighestItem in nextTile in doRoll which blocks this + if (entity.getRoomUser().getCurrentItem() != null + && entity.getRoomUser().getCurrentItem().getVirtualId() == frontItem.getVirtualId()) { + continue; + } + + if (frontItem.hasBehaviour(ItemBehaviour.ROLLER)) { + Position frontPosition = frontRoller.getPosition().getSquareInFront(); + + // Don't roll an item into the next roller, if the next roller is facing towards the roller + // it just rolled from, and the next roller has an item on it. + if (frontPosition.equals(entity.getRoomUser().getPosition())) { + if (frontTile.getItemsAbove(frontRoller).size() > 0 || frontTile.getEntireEntities().size() > 0) { + return null; + + } + } + } else { + return null; + } + } + } else { + if (!RoomTile.isValidTile(room, entity, frontTile.getPosition())) { + return null; + } + } + } + + if (subtractRollerHeight) { + nextHeight -= roller.getDefinition().getTopHeight(); + } + + + if (entity.getRoomUser().getCurrentItem() != null && !entity.getRoomUser().getCurrentItem().hasBehaviour(ItemBehaviour.ROLLER)) { + Item currentItem = entity.getRoomUser().getCurrentItem(); + + // If we can roll but our item can't, don't roll! + if (new ItemRollingAnalysis().canRoll(currentItem, roller, room) == null) { + return null; + } + } + + Position nextPosition = new Position(front.getX(), front.getY(), nextHeight); + entity.getRoomUser().setRollingData(new RollingData(entity, roller, entity.getRoomUser().getPosition().copy(), nextPosition)); + return nextPosition; + } + @Override + public void doRoll(Entity entity, Item roller, Room room, Position fromPosition, Position nextPosition) { + RoomTile previousTile = room.getMapping().getTile(fromPosition); + RoomTile nextTile = room.getMapping().getTile(nextPosition); + + // Temporary fix if the user walks on an item and their height gets put up. + if (entity.getRoomUser().getCurrentItem() != null && entity.getRoomUser().getCurrentItem().hasBehaviour(ItemBehaviour.ROLLER)) { + if (Math.abs(entity.getRoomUser().getPosition().getZ() - roller.getPosition().getZ()) >= 0.1) { + if (nextTile.getHighestItem() != null && nextTile.getHighestItem().hasBehaviour(ItemBehaviour.ROLLER)) { + nextPosition.setZ(roller.getPosition().getZ() + roller.getDefinition().getTopHeight()); + } + } + } + + // The next height but what the client sees. + double displayNextHeight = nextPosition.getZ(); + + if (entity.getRoomUser().isSittingOnGround()) { + displayNextHeight -= 0.5; // Take away sit offset when sitting on ground, because yeah, weird stuff. + } + + // Fix bounce for sitting on chairs if the chair top height is higher 1.0 + if (entity.getRoomUser().containsStatus(StatusType.SIT)) { + double sitHeight = Double.parseDouble(entity.getRoomUser().getStatus(StatusType.SIT).getValue()); + + if (sitHeight > 1.0) { + displayNextHeight += (sitHeight - 1.0); // Add new height offset found. + } + } + + entity.getRoomUser().getRollingData().setDisplayHeight(displayNextHeight);//setZ(displayNextHeight); + + entity.getRoomUser().getPosition().setX(nextPosition.getX()); + entity.getRoomUser().getPosition().setY(nextPosition.getY()); + entity.getRoomUser().getPosition().setZ(nextPosition.getZ()); + + previousTile.removeEntity(entity); + nextTile.addEntity(entity); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/ItemRollingAnalysis.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/ItemRollingAnalysis.java new file mode 100644 index 0000000..a7ca06b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/ItemRollingAnalysis.java @@ -0,0 +1,175 @@ +package org.alexdev.havana.game.item.roller; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.util.config.GameConfiguration; + +public class ItemRollingAnalysis implements RollingAnalysis { + @Override + public Position canRoll(Item item, Item roller, Room room) { + if (roller == null || roller.getRoom() == null || roller.getTile() == null) { + return null; + } + + if (item.getVirtualId() == roller.getVirtualId()) { + return null; + } + + if (item.getPosition().getZ() < roller.getPosition().getZ()) { + return null; + } + + Position front = roller.getPosition().getSquareInFront(); + RoomTile frontTile = room.getMapping().getTile(front); + + if (frontTile == null) { + return null; + } + + // Check all entities in the room + for (Entity e : room.getEntities()) { + if (e.getRoomUser().getRoom() == null) { + continue; + } + + // Don't roll if an entity is going to walk into the furniture + if (e.getRoomUser().getNextPosition() != null) { + if (e.getRoomUser().getNextPosition().equals(front)) { + return null; + } + } + + // Ignore people who are walking + if (e.getRoomUser().isWalking()) { + continue; + } + + // Don't roll if there's an entity rolling into you + if (e.getRoomUser().getRollingData() != null) { + if (e.getRoomUser().getRollingData().getNextPosition().equals(front)) { + return null; + } + } + + if (e.getRoomUser().getPosition().equals(front)) { + return null; + } + } + + // Check all rolling items in the room + for (Item floorItem : room.getItemManager().getFloorItems()) { + if (floorItem.getRollingData() != null) { + if (floorItem.getPosition().equals(roller.getPosition())) { + continue; + } + + // Don't roll if there's another item that's going to roll into this item + if (floorItem.getRollingData().getNextPosition().equals(front)) { + return null; + } + } + } + + double nextHeight = item.getPosition().getZ();//this.room.getModel().getTileHeight(roller.getPosition().getX(), roller.getPosition().getY()); + boolean subtractRollerHeight = true; + + if (frontTile.getHighestItem() != null) { + Item frontRoller = null; + + for (Item frontItem : frontTile.getItems()) { + if (!frontItem.hasBehaviour(ItemBehaviour.ROLLER)) { + continue; + } + + frontRoller = frontItem; + } + + if (frontRoller != null) { + subtractRollerHeight = false; + + if (frontRoller.getPosition().getZ() != roller.getPosition().getZ()) { + if (Math.abs(frontRoller.getPosition().getZ() - roller.getPosition().getZ()) > 0.1) { + return null; // Don't roll if the height of the roller is different by >0.1 + } + } + + for (Item frontItem : frontTile.getItems()) { + if (frontItem.getPosition().getZ() < frontRoller.getPosition().getZ()) { + continue; + } + + if (frontItem.getDatabaseId() == item.getDatabaseId()) { + continue; + } + + if (frontItem.hasBehaviour(ItemBehaviour.ROLLER)) { + Position frontPosition = frontRoller.getPosition().getSquareInFront(); + + // Don't roll an item into the next roller, if the next roller is facing towards the roller + // it just rolled from, and the next roller has an item on it. + if (frontPosition.equals(item.getPosition())) { + if (frontTile.getItemsAbove(frontRoller).size() > 0 || frontTile.getEntireEntities().size() > 0) { + return null; + + } + } + } + } + + Item highestNextItem = frontTile.getHighestItem(); + + if (!highestNextItem.hasBehaviour(ItemBehaviour.ROLLER) && highestNextItem.getDatabaseId() != item.getDatabaseId()) { + if (highestNextItem.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP) + && item.getTile().getEntireEntities().isEmpty()) { + + for (Item frontItem : frontRoller.getTile().getItems()) { + frontItem.setCurrentRollBlocked(true); + } + + nextHeight = (highestNextItem.getPosition().getZ() + highestNextItem.getDefinition().getTopHeight()) + item.getPosition().getZ() - frontRoller.getDefinition().getTopHeight(); + } else { + return null; + } + } + } else { + if (!RoomTile.isValidTile(room, null, frontTile.getPosition())) { + return null; + } + } + } + + if (subtractRollerHeight) { + nextHeight -= roller.getDefinition().getTopHeight(); + } + + if (nextHeight > GameConfiguration.getInstance().getInteger("stack.height.limit")) { + nextHeight = GameConfiguration.getInstance().getInteger("stack.height.limit"); + } + + Position nextPosition = new Position(front.getX(), front.getY(), nextHeight); + item.setRollingData(new RollingData(item, roller, item.getPosition().copy(), nextPosition)); + return nextPosition; + } + + @Override + public void doRoll(Item item, Item roller, Room room, Position fromPosition, Position nextPosition) { + /*RoomTile roomTile; + + roomTile = room.getMapping().getTile(nextPosition); + roomTile.setDisableWalking(true); + + roomTile = room.getMapping().getTile(fromPosition); + roomTile.setDisableWalking(true);*/ + + //room.send(new SLIDE_OBJECT(item, nextPosition, roller.getVirtualId(), nextPosition.getZ())); + + item.getPosition().setX(nextPosition.getX()); + item.getPosition().setY(nextPosition.getY()); + item.getPosition().setZ(nextPosition.getZ()); + //item.setRollingData(new RollingData(item, roller, fromPosition, nextPosition)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollerEntry.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollerEntry.java new file mode 100644 index 0000000..4016a7c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollerEntry.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.game.item.roller; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; + +import java.util.ArrayList; +import java.util.List; + +public class RollerEntry { + private Item roller; + private List rollingItems; + private Entity rollingEntity; + + public RollerEntry(Item roller) { + this.roller = roller; + this.rollingItems = new ArrayList<>(); + this.rollingEntity = null; + } + + public Item getRoller() { + return roller; + } + + public List getRollingItems() { + return rollingItems; + } + + public Entity getRollingEntity() { + return rollingEntity; + } + + public void setRollingEntity(Entity rollingEntity) { + this.rollingEntity = rollingEntity; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingAnalysis.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingAnalysis.java new file mode 100644 index 0000000..79c8f5e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingAnalysis.java @@ -0,0 +1,10 @@ +package org.alexdev.havana.game.item.roller; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; + +public interface RollingAnalysis { + public Position canRoll(T rollingType, Item roller, Room room); + public void doRoll(T rollingType, Item roller, Room room, Position fromPosition, Position nextPosition); +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingData.java new file mode 100644 index 0000000..4ad356c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/item/roller/RollingData.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.game.item.roller; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; + +public class RollingData { + private Item roller; + private Item item; + private Entity entity; + private Position fromPosition; + private Position nextPosition; + private double displayHeight; + private double heightUpdate; + + public RollingData(Entity entity, Item roller, Position fromPosition, Position nextPosition) { + this.entity = entity; + this.roller = roller; + this.heightUpdate = -1; + this.fromPosition = fromPosition; + this.nextPosition = nextPosition; + } + + public RollingData(Item item, Item roller, Position fromPosition, Position nextPosition) { + this.item = item; + this.roller = roller; + this.heightUpdate = -1; + this.fromPosition = fromPosition; + this.nextPosition = nextPosition; + } + + public Entity getEntity() { + return entity; + } + + public Item getItem() { + return item; + } + + public Item getRoller() { + return roller; + } + + public double getHeightUpdate() { + return heightUpdate; + } + + public void setHeightUpdate(double heightUpdate) { + this.heightUpdate = heightUpdate; + } + + public Position getNextPosition() { + return nextPosition; + } + + public Position getFromPosition() { + return fromPosition; + } + + public double getDisplayHeight() { + return displayHeight; + } + + public void setDisplayHeight(double displayHeight) { + this.displayHeight = displayHeight; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/Messenger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/Messenger.java new file mode 100644 index 0000000..cd3eabe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/Messenger.java @@ -0,0 +1,328 @@ +package org.alexdev.havana.game.messenger; + +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.messenger.ADD_BUDDY; +import org.alexdev.havana.messages.outgoing.messenger.FRIENDS_UPDATE; +import org.alexdev.havana.messages.outgoing.messenger.FRIEND_REQUEST; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +public class Messenger { + private final boolean officialStatusUpdateSpeed; + private Player player; + private Map friends; + private Map requests; + private Map offlineMessages; + + private List messengerCategories; + + private BlockingQueue friendsUpdate; + private int friendsLimit; + private boolean allowsFriendRequests; + private MessengerUser user; + private Room followed; + + public Messenger(Player player) { + this(player.getDetails()); + this.player = player; + } + + public Messenger(PlayerDetails details) { + this.officialStatusUpdateSpeed = GameConfiguration.getInstance().getBoolean("messenger.enable.official.update.speed"); + this.user = new MessengerUser(details); + this.friends = MessengerDao.getFriends(details.getId()); + this.requests = MessengerDao.getRequests(details.getId()); + this.offlineMessages = MessengerDao.getUnreadMessages(details.getId()); + this.allowsFriendRequests = details.isAllowFriendRequests(); + + this.messengerCategories = MessengerDao.getCategories(details.getId()); + this.friendsUpdate = new LinkedBlockingQueue<>(); + + if (details.getRank().getRankId() <= 1) { + if (details.hasClubSubscription()) { + this.friendsLimit = GameConfiguration.getInstance().getInteger("messenger.max.friends.club"); + } else { + this.friendsLimit = GameConfiguration.getInstance().getInteger("messenger.max.friends.nonclub"); + } + } else { + this.friendsLimit = Integer.MAX_VALUE; + } + } + + /** + * Sends the status update when a friend enters or leaves a room, logs in or disconnects. + */ + public void sendStatusUpdate() { + if (this.user == null) { + return; + } + var onlineFriends = this.getOnlineFriends(); + + /*for (var user : this.friends.values()) { + int userId = user.getUserId(); + + Player friend = PlayerManager.getInstance().getPlayerById(userId); + + if (friend != null && friend.getMessenger() != null) { + var youAsFriend = ; + + if (youAsFriend != null) { + friend.getMessenger().queueFriendUpdate(youAsFriend); + } + } + }*/ + + for (Player friend : onlineFriends) { + friend.getMessenger().queueFriendUpdate(friend.getMessenger().getFriend(this.user.getUserId())); + } + + if (!this.officialStatusUpdateSpeed) { + for (Player friend : onlineFriends) { + friend.send(new FRIENDS_UPDATE(friend, friend.getMessenger())); + } + } + } + + /*** + * Get the list of online friends. + * + * @return the list of online friends + */ + private List getOnlineFriends() { + List friends = new ArrayList<>(); + + for (var user : this.friends.values()) { + int userId = user.getUserId(); + + Player friend = PlayerManager.getInstance().getPlayerById(userId); + + if (friend != null && friend.getMessenger() != null) { + var youAsFriend = friend.getMessenger().getFriend(this.user.getUserId()); + + if (youAsFriend != null) { + friends.add(friend); + } + } + } + + return friends; + } + + /** + * Get if the user already has a request from this user id. + * + * @param userId the user id to check for + * @return true, if successful + */ + public boolean hasRequest(int userId) { + return this.getRequest(userId) != null; + } + + /** + * Get if the user already has a friend with this user id. + * + * @param userId the user id to check for + * @return true, if successful + */ + public boolean hasFriend(int userId) { + return this.getFriend(userId) != null; + } + + /** + * Method to add new friend. + * + * @param newBuddy the new friend to add + */ + public void addFriend(MessengerUser newBuddy) { + if (this.hasFriend(newBuddy.getUserId())) { + return; + } + + MessengerDao.removeRequest(newBuddy.getUserId(), this.user.getUserId()); + + MessengerDao.newFriend(player.getDetails().getId(), newBuddy.getUserId()); + MessengerDao.newFriend(newBuddy.getUserId(), player.getDetails().getId()); + + this.player.send(new ADD_BUDDY(player, new MessengerUser(PlayerDao.getDetails(newBuddy.getUserId())))); + this.requests.remove(newBuddy.getUserId()); + this.friends.put(newBuddy.getUserId(), newBuddy); + + Player friend = PlayerManager.getInstance().getPlayerById(newBuddy.getUserId()); + + if (friend != null) { + MessengerUser meAsBuddy = player.getMessenger().getMessengerUser(); + friend.getMessenger().getFriends().put(meAsBuddy.getUserId(), meAsBuddy); + friend.send(new ADD_BUDDY(friend, meAsBuddy)); + } + } + + /** + * Add request method. + * + * @param requester method to add request + */ + public void addRequest(MessengerUser requester) { + MessengerDao.newRequest(requester.getUserId(), this.user.getUserId()); + this.requests.put(requester.getUserId(), requester); + + Player requested = PlayerManager.getInstance().getPlayerById(this.user.getUserId()); + + if (requested != null) { + requested.send(new FRIEND_REQUEST(requester)); + } + } + + /** + * Decline request by friend. + * + * @param requester the requester + */ + public void declineRequest(MessengerUser requester) { + MessengerDao.removeRequest(requester.getUserId(), this.user.getUserId()); + this.requests.remove(requester.getUserId()); + } + + /** + * Decline all friend requests. + */ + public void declineAllRequests() { + MessengerDao.removeAllRequests(this.user.getUserId()); + this.requests.clear(); + } + + /** + * Get if the friend limit is reached. Limit is dependent upon club subscription + * + * @return true, if limit reached + */ + public boolean isFriendsLimitReached() { + return this.friends.size() >= this.getFriendsLimit(); + } + + /** + * Get the friends list amount + * @return + */ + public int getFriendsLimit() { + return this.friendsLimit; + } + + /** + * Get the messenger user instance with this user id. + * + * @param userId the user id to check for + * @return the messenger user instance + */ + public MessengerUser getRequest(int userId) { + return this.requests.get(userId); + } + + /** + * Get the messenger user instance with this user id. + * + * @param userId the user to check for + * @return the messenger user instance + */ + public MessengerUser getFriend(int userId) { + return this.friends.get(userId); + } + + /** + * Remove friend from friends list + * + * @param userId + * @return boolean indicating success + */ + public boolean removeFriend(int userId) { + this.friends.remove(userId); + + MessengerDao.removeFriend(userId, this.user.getUserId()); + MessengerDao.removeFriend(this.user.getUserId(), userId); + + return true; + } + + /** + * Get the list of offline messages. + * + * @return the list of offline messages + */ + public Map getOfflineMessages() { + return offlineMessages; + } + + /** + * Get the list of friends. + * + * @return the list of friends + */ + public Map getFriends() { + return this.friends; + } + + /** + * Get the messenger user instance of this person + * @return the instance + */ + public MessengerUser getMessengerUser() { + return this.user; + } + + /** + * Get the list of friends. + * + * @return the list of friends + */ + public List getRequests() { + return new ArrayList<>(this.requests.values()); + } + + /** + * Get on whether the user allows friend requests + * @return true, if scuessful + */ + public boolean allowsFriendRequests() { + return allowsFriendRequests; + } + + /** + * Gets the queue for the next friends came online update. + * + * @return the queue + */ + public BlockingQueue getFriendsUpdate() { + return friendsUpdate; + } + + /** + * Adds a user friend left to the events update console queue, removes any previous mentions of this friend. + * + * @param friend the friend to update + */ + public void queueFriendUpdate(MessengerUser friend) { + this.friendsUpdate.removeIf(f -> f.getUserId() == friend.getUserId()); + this.friendsUpdate.add(friend); + } + + public List getCategories() { + return messengerCategories; + } + + public void hasFollowed(Room friendRoom) { + this.followed = friendRoom; + } + + public Room getFollowed() { + return followed; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerCategory.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerCategory.java new file mode 100644 index 0000000..6d1dbd1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerCategory.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.messenger; + +public class MessengerCategory { + private int id; + private int userId; + private String name; + + public MessengerCategory(int id, int userId, String name) { + this.id = id; + this.userId = userId; + this.name = name; + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public String getName() { + return name; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerError.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerError.java new file mode 100644 index 0000000..967c0ef --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerError.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.messenger; + +public class MessengerError { + private String causer; + private final MessengerErrorType error; + private final MessengerErrorReason reason; + + public MessengerError(MessengerErrorType error) { + this.error = error; + this.reason = null; + } + + public MessengerError(MessengerErrorType error, MessengerErrorReason reason) { + this.error = error; + this.reason = reason; + } + + public String getCauser() { + return causer; + } + + public void setCauser(String causer) { + this.causer = causer; + } + + public MessengerErrorType getErrorType() { + return error; + } + + public MessengerErrorReason getErrorReason() { + return reason; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorReason.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorReason.java new file mode 100644 index 0000000..b0e0a8d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorReason.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.game.messenger; + +public enum MessengerErrorReason { + FRIENDLIST_FULL_PENDING_FRIEND(1), + SENDER_FRIENDLIST_FULL(2), + CONCURRENCY(42); // Requests refresh user console in client + + private final int reasonCode; + + MessengerErrorReason(int reason) { + this.reasonCode = reason; + } + + public int getReasonCode() { + return this.reasonCode; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorType.java new file mode 100644 index 0000000..71b123b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerErrorType.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.game.messenger; + +public enum MessengerErrorType { + TARGET_FRIEND_LIST_FULL(2), + TARGET_DOES_NOT_ACCEPT(3), + FRIEND_REQUEST_NOT_FOUND(4), + BUDDYREMOVE_ERROR(37), + FRIENDLIST_FULL(39), + CONCURRENCY_ERROR(42); + + private final int errorCode; + + MessengerErrorType(int errorCode) { + this.errorCode = errorCode; + } + + public int getErrorCode() { + return this.errorCode; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerManager.java new file mode 100644 index 0000000..751bc05 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerManager.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.game.messenger; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; + +public class MessengerManager { + private static MessengerManager instance; + + public Messenger getMessengerData(int userId) { + Player player = PlayerManager.getInstance().getPlayerById(userId); + + if (player != null) { + return player.getMessenger(); + } + + return new Messenger(PlayerManager.getInstance().getPlayerData(userId)); + } + + public Messenger getMessengerData(String username) { + Player player = PlayerManager.getInstance().getPlayerByName(username); + + if (player != null) { + return player.getMessenger(); + } + + PlayerDetails details = PlayerManager.getInstance().getPlayerData(username); + + if (details == null) { + return null; + } + + return new Messenger(details); + } + + public static MessengerManager getInstance() { + if (instance == null) { + instance = new MessengerManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerMessage.java new file mode 100644 index 0000000..ee038e9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerMessage.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.game.messenger; + +public class MessengerMessage { + private int id; + private int toId; + private int fromId; + private long timeSet; + private String message; + + public MessengerMessage(int id, int toId, int fromId, long timeSet, String message) { + this.id = id; + this.toId = toId; + this.fromId = fromId; + this.timeSet = timeSet; + this.message = message; + } + + public int getId() { + return id; + } + + public int getToId() { + return toId; + } + + public int getFromId() { + return fromId; + } + + public long getTimeSet() { + return timeSet; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerUser.java b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerUser.java new file mode 100644 index 0000000..af08931 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/messenger/MessengerUser.java @@ -0,0 +1,194 @@ +package org.alexdev.havana.game.messenger; + +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; + +public class MessengerUser { + private int userId; + private String username; + private String figure; + private String sex; + private String motto; + private long lastOnline; + private boolean allowStalking; + private boolean toRemove; + private boolean toAdd; + private int categoryId; + private boolean onlineStatusVisible; + private boolean isOnline; + + public MessengerUser(PlayerDetails details) { + this.applyUserDetails(details.getId(), details.getName(), details.getFigure(), details.getMotto(), String.valueOf(details.getSex()), details.getLastOnline(), details.doesAllowStalking(), 0, details.isOnline(), details.isOnlineStatusVisible()); + } + + public MessengerUser(int userId, String username, String figure, String sex, String consoleMotto, long lastOnline, boolean allowStalking, int categoryId, boolean isOnline, boolean onlineStatusVisible) { + this.applyUserDetails(userId, username, figure, consoleMotto, sex, lastOnline, allowStalking, categoryId, isOnline, onlineStatusVisible); + } + + /** + * Geneic method for applying details, used from both constructors. + * + * @param userId the id of the user + * @param username the name of the user + * @param figure the figure of the user + * @param consoleMotto the console motto of the user + * @param sex the sex of the user + * @param lastOnline the last time the user was online in Unix time + */ + private void applyUserDetails(int userId, String username, String figure, String consoleMotto, String sex, long lastOnline, boolean allowStalking, int categoryId, boolean isOnline, boolean onlineStatusVisible) { + this.toRemove = false; + this.userId = userId; + this.username = StringUtil.filterInput(username, true); + this.figure = StringUtil.filterInput(figure, true); + this.sex = sex.toLowerCase().equals("f") ? "F" : "M"; + this.lastOnline = lastOnline; + this.motto = StringUtil.filterInput(consoleMotto, true); + this.allowStalking = allowStalking; + this.categoryId = categoryId; + this.onlineStatusVisible = onlineStatusVisible; + this.isOnline = isOnline; + } + + /** + * Serialise the player, used for console search and friends list. + * + * @param response the response to serialise for + */ + public void serialise(Player friend, NettyResponse response) { + Player player = PlayerManager.getInstance().getPlayerById(this.userId); + + if (player != null) { + this.figure = player.getDetails().getFigure(); + this.lastOnline = player.getDetails().getLastOnline(); + this.sex = player.getDetails().getSex(); + this.motto = player.getDetails().getMotto(); + this.allowStalking = player.getDetails().doesAllowStalking(); + } + + boolean isOnline = PlayerManager.getInstance().isPlayerOnline(this.userId); + + response.writeInt(this.userId); + response.writeString(this.username); + response.writeBool(this.sex.toLowerCase().equals("m")); + + response.writeBool(isOnline); + response.writeBool(this.canFollowFriend(friend)); + + response.writeString(isOnline ? this.figure : ""); + response.writeInt(this.categoryId); + response.writeString(this.motto); + response.writeString(DateUtil.getDate(this.lastOnline, DateUtil.LONG_DATE)); + } + + public boolean canFollowFriend(Player friend) { + Player player = PlayerManager.getInstance().getPlayerById(this.userId); + + if (player == null) { + return false; + } + + if (player.getRoomUser().getRoom() == null) { + return false; + } + + Room room = player.getRoomUser().getRoom(); + return (!room.getModel().getName().startsWith("bb_") && !room.getModel().getName().equals("snowwar")); + } + + + public int getUserId() { + return this.userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getFigure() { + return figure; + } + + public void setFigure(String figure) { + this.figure = figure; + } + + public String getSex() { + return sex; + } + + public String getMotto() { + return motto; + } + + public void setMotto(String motto) { + this.motto = motto; + } + + public String getFormattedLastOnline() { + return DateUtil.getDate(this.lastOnline, "dd/MM/yyyy hh:mm a").replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public String getFormatLastOnline(String format) { + return DateUtil.getDate(this.lastOnline, format); + } + + public long getLastOnline() { + return lastOnline; + } + + public void setLastOnline(long lastOnline) { + this.lastOnline = lastOnline; + } + + @Override + public String toString() { + return "[" + username + "," + motto + "," + figure + "," + sex + "," + lastOnline + "]"; + } + + public boolean removed() { + return toRemove; + } + + public void setToRemove(boolean toRemove) { + this.toRemove = toRemove; + } + + public boolean added() { + return toAdd; + } + + public void setToAdd(boolean toAdd) { + this.toAdd = toAdd; + } + + public boolean isOnline() { + if (!this.onlineStatusVisible) { + return false; + } + + if (PlayerManager.getInstance().getPlayers().size() > 0) { + return PlayerManager.getInstance().isPlayerOnline(this.userId); + } + + return isOnline; + } + + public int getCategoryId() { + return categoryId; + } + + public void setCategoryId(int categoryId) { + this.categoryId = categoryId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureColor.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureColor.java new file mode 100644 index 0000000..6ea5a9e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureColor.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.misc.figure; + +public class FigureColor { + private String colourId; + private String index; + private boolean isClubRequired; + private boolean isSelectable; + + public FigureColor(String colourId, String index, boolean isClubRequired, boolean isSelectable) { + this.colourId = colourId; + this.index = index; + this.isClubRequired = isClubRequired; + this.isSelectable = isSelectable; + } + + public String getColourId() { + return colourId; + } + + public String getIndex() { + return index; + } + + public boolean isClubRequired() { + return isClubRequired; + } + + public boolean isSelectable() { + return isSelectable; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureManager.java new file mode 100644 index 0000000..11833cd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureManager.java @@ -0,0 +1,293 @@ +package org.alexdev.havana.game.misc.figure; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FigureManager { + private static final String FIGUREDATA_FILE = "figuredata.xml"; + + private static FigureManager instance; + private Map> figurePalettes; + private Map figureSetTypes; + private Map figureSets; + + private FigureManager() { + this.figurePalettes = new HashMap<>(); + this.figureSetTypes = new HashMap<>(); + this.figureSets = new HashMap<>(); + + this.loadFigurePalettes(); + this.loadFigureSetTypes(); + this.loadFigureSets(); + } + + public int validateFigureCode(String figure, String gender, boolean hasClub) { + //System.out.println("Validating: " + figure); + String[] figureData = figure.split("\\."); + + if (figureData.length == 0) { + return 1; + } + + List sets = new ArrayList<>(); + + for (String data : figureData) { + String[] parts = data.split("-"); + + if (parts.length < 2 || parts.length > 3) { + return 2; + } + + sets.add(parts[0]); + } + + for (var figureSetType : figureSetTypes.values()) { + if (figureSetType.getSet().equalsIgnoreCase("sh")) { + continue; + } + + if (figureSetType.isMandatory() && !sets.contains(figureSetType.getSet())) { + return 3; + } + } + + for (String data : figureData) { + String[] parts = data.split("-"); + + if (parts.length < 2 || parts.length > 3) { + return 4; + } + + String set = parts[0]; + String setId = parts[1]; + + var figureSet = this.figureSets.values().stream().filter(s -> + s.getType().equalsIgnoreCase(set) && + s.getId().equalsIgnoreCase(setId) && + (s.getGender().equalsIgnoreCase(gender) || s.getGender().equalsIgnoreCase("U"))) + .findFirst().orElse(null); + + if (figureSet == null) { + return 5; + } + + if (figureSet.isClub() && !hasClub) { + return 6; + } + + if (!figureSet.isSelectable()) { + return 7; + } + + var figureSetType = this.figureSetTypes.get(set); + + if (parts.length > 2 && parts[2].length() > 0) { + var paletteId = parts[2]; + + if (this.figurePalettes.get(figureSetType.getPaletteId()).stream().noneMatch(palette -> palette.getColourId().equalsIgnoreCase(paletteId))) { + return 8; + } + } + } + + return 0; + } + + public boolean validateFigure(String figure, String gender, boolean hasClub) { + //System.out.println("Validating: " + figure); + String[] figureData = figure.split("\\."); + + if (figureData.length == 0) { + return false; + } + + List sets = new ArrayList<>(); + + for (String data : figureData) { + String[] parts = data.split("-"); + + if (parts.length < 2 || parts.length > 3) { + return false; + } + + sets.add(parts[0]); + } + + for (var figureSetType : figureSetTypes.values()) { + if (figureSetType.getSet().equalsIgnoreCase("sh")) { + continue; + } + + if (figureSetType.isMandatory() && !sets.contains(figureSetType.getSet())) { + return false; + } + } + + for (String data : figureData) { + String[] parts = data.split("-"); + + if (parts.length < 2 || parts.length > 3) { + return false; + } + + String set = parts[0]; + String setId = parts[1]; + + var figureSet = this.figureSets.values().stream().filter(s -> + s.getType().equalsIgnoreCase(set) && + s.getId().equalsIgnoreCase(setId) && + (s.getGender().equalsIgnoreCase(gender) || s.getGender().equalsIgnoreCase("U"))) + .findFirst().orElse(null); + + if (figureSet == null) { + return false; + } + + if (figureSet.isClub() && !hasClub) { + return false; + } + + if (!figureSet.isSelectable()) { + return false; + } + + var figureSetType = this.figureSetTypes.get(set); + + if (parts.length > 2 && parts[2].length() > 0) { + var paletteId = parts[2]; + + if (this.figurePalettes.get(figureSetType.getPaletteId()).stream().noneMatch(palette -> palette.getColourId().equalsIgnoreCase(paletteId))) { + return false; + } + } + } + + return true; + } + + private void loadFigurePalettes() { + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + + Document doc = dBuilder.parse(new File(FIGUREDATA_FILE)); + doc.normalize(); + + NodeList list = doc.getElementsByTagName("colors"); + + for (int i = 0; i < list.getLength(); i++) { + NodeList paletteList = list.item(i).getChildNodes(); + + for (int j = 0; j < paletteList.getLength(); j++) { + Node palette = paletteList.item(j);//.getChildNodes(); + NodeList colourList = palette.getChildNodes(); + + var paletteId = Integer.parseInt(palette.getAttributes().getNamedItem("id").getNodeValue()); + this.figurePalettes.put(paletteId, new ArrayList<>()); + + for (int k = 0; k < colourList.getLength(); k++) { + var colour = colourList.item(k); + + String colourId = colour.getAttributes().getNamedItem("id").getNodeValue(); + String index = colour.getAttributes().getNamedItem("index").getNodeValue(); + boolean isClubRequired = colour.getAttributes().getNamedItem("club").getNodeValue().equalsIgnoreCase("1"); + boolean isSelectable = colour.getAttributes().getNamedItem("selectable").getNodeValue().equalsIgnoreCase("1"); + + this.figurePalettes.get(paletteId).add(new FigureColor(colourId, index, isClubRequired, isSelectable)); + } + } + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + private void loadFigureSetTypes() { + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + + Document doc = dBuilder.parse(new File(FIGUREDATA_FILE)); + doc.normalize(); + + NodeList list = doc.getElementsByTagName("settype"); + + for (int i = 0; i < list.getLength(); i++) { + Node setType = list.item(i); + String set = setType.getAttributes().getNamedItem("type").getNodeValue(); + int paletteId = Integer.parseInt(setType.getAttributes().getNamedItem("paletteid").getNodeValue()); + boolean isMandatory = setType.getAttributes().getNamedItem("mandatory").getNodeValue().equalsIgnoreCase("1"); + + this.figureSetTypes.put(set, new FigureSetType(set, paletteId, isMandatory)); + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + private void loadFigureSets() { + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + + Document doc = dBuilder.parse(new File(FIGUREDATA_FILE)); + doc.normalize(); + + NodeList list = doc.getElementsByTagName("set"); + + for (int i = 0; i < list.getLength(); i++) { + Node set = list.item(i); + String setType = set.getParentNode().getAttributes().getNamedItem("type").getNodeValue(); + String id = set.getAttributes().getNamedItem("id").getNodeValue(); + String gender = set.getAttributes().getNamedItem("gender").getNodeValue(); + boolean club = set.getAttributes().getNamedItem("club").getNodeValue().equalsIgnoreCase("1"); + boolean colourable = set.getAttributes().getNamedItem("colorable").getNodeValue().equalsIgnoreCase("1"); + boolean selectable = set.getAttributes().getNamedItem("selectable").getNodeValue().equalsIgnoreCase("1"); + + var figureSet = new FigureSet(setType, id, gender, club, colourable, selectable); + + NodeList partList = set.getChildNodes(); + + for (int j = 0; j < partList.getLength(); j++) { + Node part = partList.item(j);//.getChildNodes(); + + if (part.getNodeName().equalsIgnoreCase("hiddenlayers")) { + continue; + } + + figureSet.getFigureParts().add(new FigurePart( + part.getAttributes().getNamedItem("id").getNodeValue(), + part.getAttributes().getNamedItem("type").getNodeValue(), + part.getAttributes().getNamedItem("colorable").getNodeValue().equalsIgnoreCase("1"), + Integer.parseInt(part.getAttributes().getNamedItem("index").getNodeValue()))); + } + + this.figureSets.put(id, figureSet); + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + + public static FigureManager getInstance() { + if (instance == null) { + instance = new FigureManager(); + } + + return instance; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigurePart.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigurePart.java new file mode 100644 index 0000000..9e6a3aa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigurePart.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.misc.figure; + +public class FigurePart { + private final String id; + private final String type; + private final boolean colorable; + private final int index; + + public FigurePart(String id, String type, boolean colorable, int index) { + this.id = id; + this.type = type; + this.colorable = colorable; + this.index = index; + } + + public String getId() { + return id; + } + + public String getType() { + return type; + } + + public boolean isColorable() { + return colorable; + } + + public int getIndex() { + return index; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSet.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSet.java new file mode 100644 index 0000000..5bfa274 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSet.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.game.misc.figure; + +import java.util.ArrayList; +import java.util.List; + +public class FigureSet { + private String type; + private String id; + private String gender; + private boolean isClub; + private boolean isColorable; + private boolean isSelectable; + private List figureParts; + + public FigureSet(String type, String id, String gender, boolean isClub, boolean isColorable, boolean isSelectable) { + this.type = type; + this.id = id; + this.gender = gender; + this.isClub = isClub; + this.isColorable = isColorable; + this.isSelectable = isSelectable; + this.figureParts = new ArrayList<>(); + } + + public String getType() { + return type; + } + + public String getId() { + return id; + } + + public String getGender() { + return gender; + } + + public boolean isClub() { + return isClub; + } + + public boolean isColorable() { + return isColorable; + } + + public boolean isSelectable() { + return isSelectable; + } + + public List getFigureParts() { + return figureParts; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSetType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSetType.java new file mode 100644 index 0000000..837ccd7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/figure/FigureSetType.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.misc.figure; + +public class FigureSetType { + private String set; + private int paletteId; + private boolean isMandatory; + + public FigureSetType(String set, int paletteId, boolean isMandatory) { + this.set = set; + this.paletteId = paletteId; + this.isMandatory = isMandatory; + } + + public String getSet() { + return set; + } + + public int getPaletteId() { + return paletteId; + } + + public boolean isMandatory() { + return isMandatory; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/misc/purse/Voucher.java b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/purse/Voucher.java new file mode 100644 index 0000000..522f4ce --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/misc/purse/Voucher.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.game.misc.purse; + +import java.util.List; + +import java.util.ArrayList; + +public class Voucher { + public final int credits; + public final List items; + private final boolean allowNewUsers; + + public Voucher(int voucherCredits, boolean allowNewUsers) { + credits = voucherCredits; + items = new ArrayList<>(); + this.allowNewUsers = allowNewUsers; + } + + /** + * Get the amount of redeemable credits. + * + * @return the redeemable credit amount + */ + public int getCredits() { + return credits; + } + + /** + * Get the item amount. + * + * @return the item amount + */ + public List getItems() { + return items; + } + + /** + * Should users less than a day old be able to redeem this? + * + * @return true, if successful + */ + public boolean isAllowNewUsers() { + return allowNewUsers; + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatManager.java new file mode 100644 index 0000000..930a951 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatManager.java @@ -0,0 +1,62 @@ +package org.alexdev.havana.game.moderation; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +public class ChatManager { + private static ChatManager instance; + private BlockingQueue chatMessageQueue; + + public ChatManager() { + this.chatMessageQueue = new LinkedBlockingQueue<>(); + } + + /** + * Queue messages to be saved to the database. + * + * @param entity the entity who sent the message + * @param message the message + * @param chatMessageType the message type + * @param room the room the message was sent in + */ + public void queue(Entity entity, Room room, String message, CHAT_MESSAGE.ChatMessageType chatMessageType) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + this.chatMessageQueue.add( + new ChatMessage(entity.getDetails().getId(), entity.getDetails().getName(), message, chatMessageType, room.getId(), DateUtil.getCurrentTimeSeconds())); + } + + /** + * Save all the chat messages. + */ + public void performChatSaving() { + List chatMessageList = new ArrayList<>(); + this.chatMessageQueue.drainTo(chatMessageList); + RoomDao.saveChatLog(chatMessageList); + } + + /** + * Get the {@link ChatManager} instance + * + * @return the item manager instance + */ + public static ChatManager getInstance() { + if (instance == null) { + instance = new ChatManager(); + } + + return instance; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatMessage.java new file mode 100644 index 0000000..e97d8a7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ChatMessage.java @@ -0,0 +1,53 @@ +package org.alexdev.havana.game.moderation; + +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; + +import java.util.Calendar; + +public class ChatMessage { + private final int playerId; + private final String message; + private final CHAT_MESSAGE.ChatMessageType chatMessageType; + private final int roomId; + private final long sentTime; + private final String playerName; + + public ChatMessage(int playerId, String playerName, String message, CHAT_MESSAGE.ChatMessageType chatMessageType, int roomId, long sentTime) { + this.playerId = playerId; + this.playerName = playerName; + this.roomId = roomId; + this.message = message; + this.chatMessageType = chatMessageType; + this.sentTime = sentTime; + } + + public Calendar getCalendar() { + var calendar = Calendar.getInstance(); + calendar.setTimeInMillis(this.sentTime * 1000L); + return calendar; + } + + public int getPlayerId() { + return playerId; + } + + public int getRoomId() { + return roomId; + } + + public String getMessage() { + return message; + } + + public CHAT_MESSAGE.ChatMessageType getChatMessageType() { + return chatMessageType; + } + + public long getSentTime() { + return sentTime; + } + + public String getPlayerName() { + return playerName; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationAction.java new file mode 100644 index 0000000..32b7fcf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationAction.java @@ -0,0 +1,10 @@ +package org.alexdev.havana.game.moderation; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public interface ModerationAction { + void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) throws MalformedPacketException; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationActionType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationActionType.java new file mode 100644 index 0000000..3fd07fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/ModerationActionType.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.moderation; + +import org.alexdev.havana.game.moderation.actions.*; + +public enum ModerationActionType { + ALERT_USER(0, 0, new ModeratorAlertUserAction()), + KICK_USER(0, 1, new ModeratorKickUserAction()), + BAN_USER(0, 2, new ModeratorBanUserAction()), + ROOM_ALERT(1, 0, new ModeratorRoomAlertAction()), + ROOM_KICK(1, 1, new ModeratorRoomKickAction()); + + int targetType; + int actionType; + ModerationAction moderationAction; + + ModerationActionType(int targetType, int actionType, ModerationAction moderationAction) { + this.targetType = targetType; + this.actionType = actionType; + this.moderationAction = moderationAction; + } + + public int getTargetType() { + return targetType; + } + + public int getActionType() { + return actionType; + } + + public ModerationAction getModerationAction() { + return moderationAction; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorAlertUserAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorAlertUserAction.java new file mode 100644 index 0000000..edcbdaf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorAlertUserAction.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.game.moderation.actions; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationAction; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class ModeratorAlertUserAction implements ModerationAction { + @Override + public void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) throws MalformedPacketException { + if (!player.hasFuse(Fuseright.ROOM_ALERT)) { + return; + } + + String alertUser = reader.readString(); + Player target = PlayerManager.getInstance().getPlayerByName(alertUser); + + if (target != null) { + target.send(new MODERATOR_ALERT(alertMessage)); + ModerationDao.addLog(ModerationActionType.ALERT_USER, player.getDetails().getId(), target.getDetails().getId(), alertMessage, notes); + } else { + player.send(new ALERT("Target user is not online.")); + } + + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorBanUserAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorBanUserAction.java new file mode 100644 index 0000000..321b653 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorBanUserAction.java @@ -0,0 +1,87 @@ +package org.alexdev.havana.game.moderation.actions; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.game.ban.BanManager; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationAction; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.DateUtil; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class ModeratorBanUserAction implements ModerationAction { + @Override + public void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) throws MalformedPacketException { + if (!player.hasFuse(Fuseright.BAN)) { + return; + } + + String name = reader.readString(); + int banHours = reader.readInt(); + boolean banMachineId = reader.readBoolean(); + boolean banIp = reader.readBoolean(); + + var response = ban(player.getDetails(), alertMessage, notes, name, TimeUnit.HOURS.toSeconds(banHours), banMachineId, banIp); + player.send(new ALERT(response)); + } + + public static String ban(PlayerDetails banningPlayerDetails, String alertMessage, String notes, String name, long banSeconds, boolean banMachineId, boolean banIp) { + Map criteria = new HashMap<>(); + PlayerDetails playerDetails = PlayerManager.getInstance().getPlayerData(name); + + if (playerDetails == null) { + return "Could not find user: " + name; + } + + if (playerDetails.getId() == banningPlayerDetails.getId()) { + return "Cannot ban yourself"; + } + + if (playerDetails.isBanned() != null) { + return "User is already banned!"; + } + + if (CommandManager.getInstance().hasPermission(playerDetails, "ban")) + return "Cannot ban a user who has permission to ban"; + + long banTime = DateUtil.getCurrentTimeSeconds() + banSeconds; + + BanDao.addBan(BanType.USER_ID, String.valueOf(playerDetails.getId()), banTime, alertMessage, banningPlayerDetails.getId()); + criteria.put(BanType.USER_ID, String.valueOf(playerDetails.getId())); + + if (banMachineId && playerDetails.getMachineId() != null) { + BanDao.addBan(BanType.MACHINE_ID, playerDetails.getMachineId(), banTime, alertMessage, banningPlayerDetails.getId()); + criteria.put(BanType.MACHINE_ID, playerDetails.getMachineId()); + } + + /*if (banIp) { + var latestIp = PlayerDao.getLatestIp(playerDetails.getId()); + InetAddressValidator validator = InetAddressValidator.getInstance(); + + // Validate an IPv4 address + if (validator.isValidInet4Address(latestIp)) { + BanDao.addBan(BanType.IP_ADDRESS, latestIp, banTime, alertMessage); + criteria.put(BanType.IP_ADDRESS, latestIp); + } + }*/ + + Player target = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + + if (target != null) { + target.getNetwork().disconnect(); + } + + BanManager.getInstance().disconnectBanAccounts(criteria); + return "The user " + playerDetails.getName() + " has been banned."; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorKickUserAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorKickUserAction.java new file mode 100644 index 0000000..6d46635 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorKickUserAction.java @@ -0,0 +1,47 @@ +package org.alexdev.havana.game.moderation.actions; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationAction; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.HOTEL_VIEW; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class ModeratorKickUserAction implements ModerationAction { + @Override + public void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) throws MalformedPacketException { + if (!player.hasFuse(Fuseright.KICK)) { + return; + } + + + String alertUser = reader.readString(); + Player target = PlayerManager.getInstance().getPlayerByName(alertUser); + + if (target != null) { + if (target.getDetails().getId() == player.getDetails().getId()) { + return; // Can't kick yourself! + } + + if (target.hasFuse(Fuseright.KICK)) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + target.getRoomUser().kick(false, true); + target.send(new HOTEL_VIEW()); + target.send(new MODERATOR_ALERT(alertMessage)); + + ModerationDao.addLog(ModerationActionType.KICK_USER, player.getDetails().getId(), target.getDetails().getId(), alertMessage, notes); + } else { + player.send(new ALERT("Target user is not online.")); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomAlertAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomAlertAction.java new file mode 100644 index 0000000..8ab72c7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomAlertAction.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.game.moderation.actions; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationAction; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class ModeratorRoomAlertAction implements ModerationAction { + @Override + public void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) { + if (!player.hasFuse(Fuseright.ROOM_ALERT)) { + return; + } + List players = player.getRoomUser().getRoom().getEntityManager().getPlayers(); + + for (Player target : players) { + target.send(new MODERATOR_ALERT(alertMessage)); + } + ModerationDao.addLog(ModerationActionType.ROOM_ALERT, player.getDetails().getId(), -1, alertMessage, notes); + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomKickAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomKickAction.java new file mode 100644 index 0000000..3861d8c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/actions/ModeratorRoomKickAction.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.game.moderation.actions; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationAction; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.HOTEL_VIEW; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class ModeratorRoomKickAction implements ModerationAction { + @Override + public void performAction(Player player, Room room, String alertMessage, String notes, NettyRequest reader) { + if (!player.hasFuse(Fuseright.ROOM_KICK)) { + return; + } + + List players = player.getRoomUser().getRoom().getEntityManager().getPlayers(); + + for (Player target : players) { + // Don't kick other moderators + if (target.hasFuse(Fuseright.ROOM_KICK)) { + continue; + } + + target.getRoomUser().kick(false, true); + + target.send(new HOTEL_VIEW()); + target.send(new MODERATOR_ALERT(alertMessage)); + } + + + ModerationDao.addLog(ModerationActionType.ROOM_KICK, player.getDetails().getId(), -1, alertMessage, notes); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelp.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelp.java new file mode 100644 index 0000000..84391eb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelp.java @@ -0,0 +1,89 @@ +package org.alexdev.havana.game.moderation.cfh; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.DateUtil; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.concurrent.TimeUnit; + +public class CallForHelp { + private final int cryId; + private final int callerId; + private final String message; + private int pickedUpBy; + private final Room room; + private final long requestTime; + private int category = 2; + private long expireTime; + private boolean isDeleted; + + CallForHelp(int cryId, int callerId, Room room, String message) { + this.cryId = cryId; + this.callerId = callerId; + this.message = message; + this.pickedUpBy = 0; + this.room = room; + this.requestTime = System.currentTimeMillis(); + this.expireTime = DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(30); + } + + public String getMessage() { + return this.message; + } + + public int getPickedUpBy() { + return this.pickedUpBy; + } + + public Room getRoom() { + return this.room; + } + + public int getCategory() { + return this.category; + } + + public int getCaller() { + return this.callerId; + } + + public int getCryId() { + return this.cryId; + } + + public boolean isOpen() { + return this.pickedUpBy == 0 && !isDeleted; + } + + public String getFormattedRequestTime() { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm d/MM/YYYY"); + Date resultDate = new Date(this.requestTime); + return sdf.format(resultDate); + } + + public void updateCategory(int newCategory) { + this.category = newCategory; + } + + public void setPickedUpBy(Player moderator) { + this.pickedUpBy = moderator.getDetails().getId(); + } + + public long getExpireTime() { + return expireTime; + } + + public void setExpireTime(long expireTime) { + this.expireTime = expireTime; + } + + public boolean isDeleted() { + return isDeleted; + } + + public void setDeleted(boolean deleted) { + isDeleted = deleted; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelpManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelpManager.java new file mode 100644 index 0000000..bdbb1cf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/moderation/cfh/CallForHelpManager.java @@ -0,0 +1,163 @@ +package org.alexdev.havana.game.moderation.cfh; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.moderation.CALL_FOR_HELP; +import org.alexdev.havana.messages.outgoing.moderation.DELETE_CRY; +import org.alexdev.havana.messages.outgoing.moderation.PICKED_CRY; +import org.alexdev.havana.messages.outgoing.moderation.CRY_RECEIVED; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.DateUtil; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +public class CallForHelpManager { + private static CallForHelpManager instance; + private Map callsForHelp; + private AtomicInteger latestCallId; + + public CallForHelpManager() { + this.callsForHelp = new ConcurrentHashMap<>(); + this.latestCallId = new AtomicInteger(); + } + + /** + * Add Call for Help to queue + * + * @param caller The person submitting the CFH + * @param message The message attached to the CFH + */ + public void submitCall(Player caller, String message) { + int callId = this.latestCallId.getAndIncrement(); + int callerId = caller.getDetails().getId(); + Room room = caller.getRoomUser().getRoom(); + + CallForHelp cfh = new CallForHelp(callId, callerId, room, message); + this.callsForHelp.put(callId, cfh); + + sendToModerators(new CALL_FOR_HELP(cfh)); + caller.send(new CRY_RECEIVED()); + } + + /** + * Get open Call for Help by Player Username + * + * @param id the ID to fetch + * @return the Call for Help, null if no open Calls for Help + */ + public CallForHelp getCall(int id) { + return this.callsForHelp.get(id); + } + + /** + * Get Call for Help by Player Username + * + * @param userId the user id to retrieve for + * @return the open Call for Help, null if no open Calls for Help + */ + public CallForHelp getPendingCall(int userId) { + for (CallForHelp cfh : this.callsForHelp.values()) { + if (cfh.isOpen() && cfh.getCaller() == userId) { + return cfh; + } + } + + return null; + } + + /** + * Get Call for Help by Player + * + * @param player the player to check for + * @return boolean indicating if there are open calls for this player + */ + public boolean hasPendingCall(Player player) { + return this.getPendingCall(player.getDetails().getId()) != null; + } + + /** + * Send a packet to all online moderators + * + * @param message the MessageComposer to send + */ + private void sendToModerators(MessageComposer message) { + for (Player p : PlayerManager.getInstance().getPlayers()) { + if (p.hasFuse(Fuseright.RECEIVE_CALLS_FOR_HELP)) { + p.send(message); + } + } + } + + /** + * Pick up a call for help + * + * @param cfh the CFH to pick up + * @param moderator the moderator who is picking it up + */ + public void pickUp(CallForHelp cfh, Player moderator) { + cfh.setPickedUpBy(moderator); + + // Send the updated CallForHelp to all moderators + sendToModerators(new PICKED_CRY(cfh)); + } + + /** + * Chnage catgeory of Call + * + * @param cfh the CFH to change + * @param newCategory the new category + */ + public void changeCategory(CallForHelp cfh, int newCategory) { + if (!this.callsForHelp.containsKey(cfh.getCryId())) { + return; + } + + cfh.updateCategory(newCategory); + sendToModerators(new CALL_FOR_HELP(cfh)); + } + + /** + * Deletes the cfh to all moderators and marks it for deletion in 30 minutes. + * + * @param cfh the cfh to delete + */ + public void deleteCall(CallForHelp cfh) { + cfh.setDeleted(true); + sendToModerators(new DELETE_CRY(cfh.getCryId())); + } + + /** + * Purges expired cfhs, server remembers them for atleast 30 minutes + */ + public void purgeExpiredCfh() { + Predicate filter = cfh -> !cfh.isOpen() || DateUtil.getCurrentTimeSeconds() > cfh.getExpireTime(); + + this.callsForHelp.values().stream().filter(filter).collect(Collectors.toList()).forEach(x -> { + sendToModerators(new DELETE_CRY(x.getCryId())); + }); + + this.callsForHelp.values().removeIf(filter); + + } + + /** + * Gets the instance + * + * @return the instance + */ + public static CallForHelpManager getInstance() { + if (instance == null) { + instance = new CallForHelpManager(); + } + + return instance; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorCategory.java b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorCategory.java new file mode 100644 index 0000000..ee77767 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorCategory.java @@ -0,0 +1,131 @@ +package org.alexdev.havana.game.navigator; + +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; + +import java.util.ArrayList; +import java.util.List; + +public class NavigatorCategory { + private int id; + private int parentId; + private int orderId; + private String name; + private boolean publicSpaces; + private boolean allowTrading; + private PlayerRank minimumRoleAccess; + private PlayerRank minimumRoleSetFlat; + private boolean isNode; + private boolean isClubOnly; + + public NavigatorCategory(int id, int parentId, int orderId, String name, boolean publicSpaces, boolean allowTrading, PlayerRank minimumRoleAccess, PlayerRank minimumRoleSetFlat, boolean isNode, boolean isClubOnly) { + this.id = id; + this.parentId = parentId; + this.orderId = orderId; + this.name = name; + this.publicSpaces = publicSpaces; + this.allowTrading = allowTrading; + this.minimumRoleAccess = minimumRoleAccess; + this.minimumRoleSetFlat = minimumRoleSetFlat; + this.isNode = isNode; + this.isClubOnly = isClubOnly; + } + + /** + * Count the active rooms under this category. + * + * @return the active room count + */ + public int getRoomCount() { + if (this.publicSpaces) { + return NavigatorDao.getRoomCountByCategory(this.id); + } else { + List rooms = new ArrayList<>(); + + for (Room room : RoomManager.getInstance().getRooms()) { + if (room.getData().getCategoryId() == this.id) { + rooms.add(room); + } + } + + return rooms.size();//NavigatorDao.getRoomCountByCategory(this.id); + } + } + + /** + * Get the current visitors within this category. + * + * @return the current visitors + */ + public int getCurrentVisitors() { + int currentVisitors = 0; + + for (Room room : this.isPublicSpaces() ? RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getRoomsByCategory(this.id)) : RoomManager.getInstance().getRooms()) { + if (room.getData().getCategoryId() == this.id) { + currentVisitors += room.getData().getVisitorsNow(); + } + + } + + return currentVisitors; + } + + /** + * Get the max visitors within this category. + * + * @return the max visitors + */ + public int getMaxVisitors() { + int maxVisitors = 0; + + for (Room room : this.isPublicSpaces() ? RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getRoomsByCategory(this.id)) : RoomManager.getInstance().getRooms()) { + if (room.getData().getCategoryId() == this.id) { + maxVisitors += room.getData().getVisitorsMax(); + } + } + + return maxVisitors; + } + + public int getId() { + return id; + } + + public int getParentId() { + return parentId; + } + + public int getOrderId() { + return orderId; + } + + public String getName() { + return name; + } + + public boolean isPublicSpaces() { + return publicSpaces; + } + + public boolean hasAllowTrading() { + return allowTrading; + } + + public PlayerRank getMinimumRoleAccess() { + return minimumRoleAccess; + } + + public PlayerRank getMinimumRoleSetFlat() { + return minimumRoleSetFlat; + } + + public boolean isNode() { + return isNode; + } + + public boolean isClubOnly() { + return isClubOnly; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorManager.java new file mode 100644 index 0000000..8f57819 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorManager.java @@ -0,0 +1,95 @@ +package org.alexdev.havana.game.navigator; + +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.*; + +public class NavigatorManager { + private static NavigatorManager instance; + private final HashMap categoryMap; + + private NavigatorManager() { + this.categoryMap = NavigatorDao.getCategories(); + //NavigatorDao.resetBadPrivateRoomCategories(); + } + + /** + * Get all categories by the parent id. + * + * @param parentId the parent id of the categories + * @param rank + * @return the list of categories + */ + public List getCategoriesByParentId(int parentId, PlayerRank rank) { + List categories = new ArrayList<>(); + + boolean hideEmptyPublicRoomCategories = GameConfiguration.getInstance().getBoolean("navigator.hide.empty.public.categories"); + + for (NavigatorCategory category : this.categoryMap.values()) { + if (hideEmptyPublicRoomCategories) { + if (category.isPublicSpaces() && category.getRoomCount() <= 0) { + continue; + } + } + + if (category.getMinimumRoleAccess().getRankId() > rank.getRankId()) { + continue; + } + + if (category.getParentId() != parentId) { + continue; + } + + categories.add(category); + } + + categories.sort(Comparator.comparingInt(NavigatorCategory::getOrderId)); + return categories; + } + + /** + * Get the {@link NavigatorCategory} by id + * + * @param categoryId the id of the category + * @return the category instance + */ + public NavigatorCategory getCategoryById(int categoryId) { + if (this.categoryMap.containsKey(categoryId)) { + return this.categoryMap.get(categoryId); + } + + return null; + } + + /** + * Get the map of navigator categories + * + * @return the list of categories + */ + public HashMap getCategories() { + return this.categoryMap; + } + + /** + * Get instance of {@link NavigatorManager} + * + * @return the manager instance + */ + public static NavigatorManager getInstance() { + if (instance == null) { + instance = new NavigatorManager(); + } + + return instance; + } + + /** + * Reloads the singleton for the {@link NavigatorManager}. + */ + public static void reset() { + instance = null; + getInstance(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorStyle.java b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorStyle.java new file mode 100644 index 0000000..4aaf884 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/navigator/NavigatorStyle.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.navigator; + +public class NavigatorStyle { + private int roomId; + private String description; + private String thumbnailUrl; + private int thumbnailLayout; + + public NavigatorStyle(int roomId, String description, String thumbnailUrl, int thumbnailLayout) { + this.roomId = roomId; + this.description = description; + this.thumbnailUrl = thumbnailUrl; + this.thumbnailLayout = thumbnailLayout; + } + + public int getRoomId() { + return roomId; + } + + public String getThumbnailUrl() { + return thumbnailUrl; + } + + public int getThumbnailLayout() { + return thumbnailLayout; + } + + public String getDescription() { + return description; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/AffectedTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/AffectedTile.java new file mode 100644 index 0000000..afc2437 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/AffectedTile.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.game.pathfinder; + +import org.alexdev.havana.game.item.Item; + +import java.util.ArrayList; +import java.util.List; + +public class AffectedTile { + + public static List getAffectedTiles(Item item) { + return AffectedTile.getAffectedTiles( + item.getDefinition().getLength(), + item.getDefinition().getWidth(), + item.getPosition().getX(), + item.getPosition().getY(), + item.getPosition().getRotation()); + } + + public static List getAffectedTiles(Item item, int x, int y, int rotation) { + return AffectedTile.getAffectedTiles( + item.getDefinition().getLength(), + item.getDefinition().getWidth(), + x, + y, + rotation); + } + + /** + * Gets the affected tiles. + * + * @param length the length + * @param width the width + * @param x the pos X + * @param y the pos Y + * @param rotation the rotation + * @return the affected tiles + */ + public static List getAffectedTiles(int length, int width, int x, int y, int rotation) { + List points = new ArrayList<>(); + + if (length != width) { + if (rotation == 0 || rotation == 4) { + int l = length; + length = width; + width = l; + } + } + + for (int newX = x; newX < x + width; newX++) { + for (int newY = y; newY < y + length; newY++) { + Position pos = new Position(newX, newY); + points.add(pos); + } + } + + return points; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Pathfinder.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Pathfinder.java new file mode 100644 index 0000000..36d9dfd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Pathfinder.java @@ -0,0 +1,252 @@ +package org.alexdev.havana.game.pathfinder; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.types.pool.PoolInteractor; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; + +import java.util.LinkedList; + +public class Pathfinder { + public static final double MAX_DROP_HEIGHT = 3.0; + public static final double MAX_LIFT_HEIGHT = 1.5; + + public static final Position[] DIAGONAL_MOVE_POINTS = new Position[]{ + new Position(0, -1, 0), + new Position(0, 1, 0), + new Position(1, 0, 0), + new Position(-1, 0, 0), + new Position(1, -1, 0), + new Position(-1, 1, 0), + new Position(1, 1, 0), + new Position(-1, -1, 0) + }; + + public static final Position[] MOVE_POINTS = new Position[]{ + new Position(0, -1), + new Position(1, 0), + new Position(0, 1), + new Position(-1, 0) + }; + + /** + * Method for the pathfinder to check if the tile next to the current tile is a valid step. + * + * @param entity the entity walking + * @param current the current tile + * @param tmp the temporary tile around the current tile to check + * @param isFinalMove if the move was final + * @return true, if a valid step + */ + public static boolean isValidStep(Room room, Entity entity, Position current, Position tmp, boolean isFinalMove) { + if (entity.getRoomUser().getRoom() == null || entity.getRoomUser().getRoom().getModel() == null) { + return false; + } + + if (!RoomTile.isValidTile(room, entity, new Position(current.getX(), current.getY()))) { + return false; + } + + if (!RoomTile.isValidTile(room, entity, new Position(tmp.getX(), tmp.getY()))) { + return false; + } + + RoomTile fromTile = room.getMapping().getTile(current); + RoomTile toTile = room.getMapping().getTile(tmp); + + if (fromTile == null || toTile == null) { + return false; + } + + double oldHeight = fromTile.getWalkingHeight(); + double newHeight = toTile.getWalkingHeight(); + + Item fromItem = fromTile.getHighestItem(); + Item toItem = toTile.getHighestItem(); + + // boolean hasPool = room.getModel().getName().startsWith("pool_") || room.getModel().getName().equals("md_a"); + // boolean isPrivateRoom = !room.isPublicRoom(); + + boolean fromItemHeightExempt = fromItem != null && (fromItem.hasBehaviour(ItemBehaviour.TELEPORTER) + || fromItem.getDefinition().getSprite().equals("wsJoinQueue") + || fromItem.getDefinition().getSprite().equals("wsQueueTile") + || (fromItem.getDefinition().getSprite().equals("poolEnter") && toItem != null && toItem.getDefinition().getSprite().equals("poolExit")) // No height check when going between pool triggers + || (fromItem.getDefinition().getSprite().equals("poolExit") && toItem != null && toItem.getDefinition().getSprite().equals("poolEnter")) // No height check when going between pool triggers + || fromItem.getDefinition().getSprite().equals("poolLift") + || fromItem.getDefinition().getSprite().equals("queue_tile2")); + + boolean toItemHeightExempt = toItem != null && (toItem.hasBehaviour(ItemBehaviour.TELEPORTER) + || toItem.getDefinition().getSprite().equals("wsJoinQueue") + || toItem.getDefinition().getSprite().equals("wsQueueTile") + || (toItem.getDefinition().getSprite().equals("poolEnter") && fromItem != null && fromItem.getDefinition().getSprite().equals("poolExit")) // No height check when going between pool triggers + || (toItem.getDefinition().getSprite().equals("poolExit") && fromItem != null && fromItem.getDefinition().getSprite().equals("poolEnter")) // No height check when going between pool triggers + || toItem.getDefinition().getSprite().equals("poolLift") + || toItem.getDefinition().getSprite().equals("queue_tile2")); + + // Pathfinder makes the path from reversed, so we compare the drop reversed (To tile height against From tile height) + if (toTile.isHeightUpwards(fromTile) && (!fromItemHeightExempt && !toItemHeightExempt)) { + if (Math.abs(newHeight - oldHeight) > MAX_LIFT_HEIGHT) { + return false; + } + } + + if (toTile.isHeightDrop(fromTile) && (!fromItemHeightExempt && !toItemHeightExempt)) { + if (Math.abs(oldHeight - newHeight) > MAX_DROP_HEIGHT) { + return false; + } + } + + if (fromTile.isHeightUpwards(toTile) && (!fromItemHeightExempt && !toItemHeightExempt)) { + if (Math.abs(newHeight - oldHeight) > MAX_LIFT_HEIGHT) { + return false; + } + } + + if (fromTile.isHeightDrop(toTile) && (!fromItemHeightExempt && !toItemHeightExempt)) { + if (Math.abs(oldHeight - newHeight) > MAX_DROP_HEIGHT) { + return false; + } + } + + if (!PoolInteractor.getTileStatus(room, entity, current, tmp, isFinalMove)) { + return false; + } + + // Don't enable diagonal checking for the Sun Terrace + // Don't allow diagonal for pool triggers + boolean canWalkDiagonal = !room.getModel().getName().startsWith("sun_terrace") && + !(fromItem != null && fromItem.getDefinition().getSprite().equals("poolExit")) && + !(fromItem != null && fromItem.getDefinition().getSprite().equals("poolEnter")) && + !(toItem != null && toItem.getDefinition().getSprite().equals("poolExit")) && + !(toItem != null && toItem.getDefinition().getSprite().equals("poolEnter")); + + // Can't walk diagonal between two non-walkable tiles + if (canWalkDiagonal) { + if (current.getX() != tmp.getX() && current.getY() != tmp.getY()) { + + boolean firstValidTile = RoomTile.isValidDiagonalTile(room, entity, new Position(tmp.getX(), current.getY())); + boolean secondValidTile = RoomTile.isValidDiagonalTile(room, entity, new Position(current.getX(), tmp.getY())); + + if (!firstValidTile && !secondValidTile) { + return false; + } + } + } + + // Avoid walking into furniture unless it's their last location + if (!current.equals(room.getModel().getDoorLocation()) && + !tmp.equals(room.getModel().getDoorLocation())) { + if (toItem != null) { + if (isFinalMove) { + // Allow walking if item is walkable or trapped inside + return toItem.isWalkable(entity, tmp) || AffectedTile.getAffectedTiles(toItem).stream().anyMatch(x -> room.getMapping().getTile(x).containsEntity(entity)); + } else { + return toItem.hasBehaviour(ItemBehaviour.CAN_STAND_ON_TOP) || toItem.hasBehaviour(ItemBehaviour.DOOR_TELEPORTER) || toItem.isGateOpen(); + } + } + } + + return true; + } + + /** + * Make path with specified last coordinates + * + * @param entity the entity to move + * @return the linked list + */ + public static LinkedList makePath(Entity entity, Position start, Position end) {//List settings) { + LinkedList squares = new LinkedList<>(); + PathfinderNode nodes = makePathReversed(entity, end, start); + + if (nodes != null) { + while (nodes.getNextNode() != null) { + squares.add(nodes.getNextNode().getPosition()); + nodes = nodes.getNextNode(); + } + } + + //Collections.reverse(squares); + return squares; + + } + + /** + * Make path reversed. + * + * @param entity the entity + * @return the pathfinder node + */ + private static PathfinderNode makePathReversed(Entity entity, Position start, Position end) { + LinkedList openList = new LinkedList<>(); + + PathfinderNode[][] map = new PathfinderNode[entity.getRoomUser().getRoom().getModel().getMapSizeX()][entity.getRoomUser().getRoom().getModel().getMapSizeY()]; + PathfinderNode node = null; + Position tmp; + + int cost; + int diff; + + PathfinderNode current = new PathfinderNode(start); + current.setCost(0); + + PathfinderNode finish = new PathfinderNode(end); + + map[current.getPosition().getX()][current.getPosition().getY()] = current; + openList.add(current); + + while (openList.size() > 0) { + current = openList.pollFirst(); + current.setInClosed(true); + + for (Position POINT : DIAGONAL_MOVE_POINTS) { + tmp = current.getPosition().add(POINT); + + boolean isFinalMove = (tmp.getX() == end.getX() && tmp.getY() == end.getY()); + + if (isValidStep(entity.getRoomUser().getRoom(), entity, new Position(current.getPosition().getX(), current.getPosition().getY(), current.getPosition().getZ()), tmp, isFinalMove)) { + if (map[tmp.getX()][tmp.getY()] == null) { + node = new PathfinderNode(tmp); + map[tmp.getX()][tmp.getY()] = node; + } else { + node = map[tmp.getX()][tmp.getY()]; + } + + if (!node.isInClosed()) { + diff = 0; + + if (current.getPosition().getX() != node.getPosition().getX()) { + diff += 2; // Reminder: It was 1 up until 29/08/2018 + } + + if (current.getPosition().getY() != node.getPosition().getY()) { + diff += 2; // Reminder: It was 1 up until 29/08/2018 + } + + cost = current.getCost() + diff + node.getPosition().getDistanceSquared(end); + + if (cost < node.getCost()) { + node.setCost(cost); + node.setNextNode(current); + } + + if (!node.isInOpen()) { + if (node.getPosition().getX() == finish.getPosition().getX() && node.getPosition().getY() == finish.getPosition().getY()) { + node.setNextNode(current); + return node; + } + + node.setInOpen(true); + openList.add(node); + } + } + } + } + } + + return null; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/PathfinderNode.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/PathfinderNode.java new file mode 100644 index 0000000..bd31dbc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/PathfinderNode.java @@ -0,0 +1,143 @@ +package org.alexdev.havana.game.pathfinder; + +public class PathfinderNode implements Comparable { + + private Position position; + private PathfinderNode nextNode; + private Integer cost = Integer.MAX_VALUE; + private boolean inOpen = false; + private boolean inClosed = false; + + /** + * Gets the position. + * + * @return the position + */ + public Position getPosition() { + return position; + } + + /** + * Sets the position. + * + * @param position the new position + */ + public void setPosition(Position position) { + this.position = position; + } + + /** + * Gets the next node. + * + * @return the next node + */ + public PathfinderNode getNextNode() { + return nextNode; + } + + /** + * Sets the next node. + * + * @param nextNode the new next node + */ + public void setNextNode(PathfinderNode nextNode) { + this.nextNode = nextNode; + } + + /** + * Gets the cost. + * + * @return the cost + */ + public Integer getCost() { + return cost; + } + + /** + * Sets the cost. + * + * @param cost the new cost + */ + public void setCost(int cost) { + this.cost = cost; + } + + /** + * Checks if is in open. + * + * @return true, if is in open + */ + public boolean isInOpen() { + return inOpen; + } + + /** + * Sets the in open. + * + * @param inOpen the new in open + */ + public void setInOpen(boolean inOpen) { + this.inOpen = inOpen; + } + + /** + * Checks if is in closed. + * + * @return true, if is in closed + */ + public boolean isInClosed() { + return inClosed; + } + + /** + * Sets the in closed. + * + * @param inClosed the new in closed + */ + public void setInClosed(boolean inClosed) { + this.inClosed = inClosed; + } + + /** + * Instantiates a new pathfinder node. + * + * @param current the current + */ + public PathfinderNode(Position current) { + this.position = current; + } + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + return (obj instanceof PathfinderNode) && ((PathfinderNode) obj).getPosition().equals(this.position); + } + + /** + * Equals. + * + * @param node the node + * @return true, if successful + */ + public boolean equals(PathfinderNode node) { + return node.getPosition().equals(this.position); + } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + return this.position.hashCode(); + } + + /* (non-Javadoc) + * @see java.lang.Comparable#compareTo(java.lang.Object) + */ + @Override + public int compareTo(PathfinderNode o) { + return this.getCost().compareTo(o.getCost()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Position.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Position.java new file mode 100644 index 0000000..c511f8a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Position.java @@ -0,0 +1,421 @@ +package org.alexdev.havana.game.pathfinder; + +import java.util.ArrayList; +import java.util.List; + +public class Position { + private int X; + private int Y; + private double Z; + private int bodyRotation; + private int headRotation; + + public Position() { + this(0, 0, 0); + } + + public Position(int x, int y) { + this.X = x; + this.Y = y; + this.Z = 0; + } + + public Position(int x, int y, double z) { + this.X = x; + this.Y = y; + this.Z = z; + } + + public Position(int x, int y, double z, int headRotation, int bodyRotation) { + this.X = x; + this.Y = y; + this.Z = z; + this.headRotation = headRotation; + this.bodyRotation = bodyRotation; + } + + /** + * Checks if current tile touches target tile + */ + public boolean touches(Position position) { + return this.getDistanceSquared(position) <= 1; + } + + /** + * Gets the x. + * + * @return the x + */ + public int getX() { + return X; + } + + /** + * Sets the x. + * + * @param x the new x + */ + public void setX(int x) { + X = x; + } + + /** + * Gets the y. + * + * @return the y + */ + public int getY() { + return Y; + } + + /** + * Sets the y. + * + * @param y the new y + */ + public void setY(int y) { + Y = y; + } + + /** + * Gets the z. + * + * @return the z + */ + public double getZ() { + return Z; + } + + /** + * Sets the z. + * + * @param z the new z + */ + public void setZ(double z) { + Z = z; + } + + /** + * Gets the body rotation. + * + * @return the body rotation + */ + public int getBodyRotation() { + return bodyRotation; + } + + /** + * Sets the body rotation. + * + * @param bodyRotation the new body rotation + */ + public void setBodyRotation(int bodyRotation) { + this.bodyRotation = bodyRotation; + } + + /** + * Gets the head rotation. + * + * @return the head rotation + */ + public int getHeadRotation() { + return headRotation; + } + + /** + * Sets the head rotation. + * + * @param headRotation the new head rotation + */ + public void setHeadRotation(int headRotation) { + this.headRotation = headRotation; + } + + /** + * Gets the rotation. + * + * @return the rotation + */ + public int getRotation() { + return bodyRotation; + } + + /** + * Sets the rotation. + * + * @param headRotation the new rotation + */ + public void setRotation(int headRotation) { + this.headRotation = headRotation; + this.bodyRotation = headRotation; + } + + /** + * Adds the. + * + * @param other the other + * @return the position + */ + public Position add(Position other) { + return new Position(other.getX() + getX(), other.getY() + getY(), other.getZ() + getZ()); + } + + /** + * Subtract. + * + * @param other the other + * @return the position + */ + public Position subtract(Position other) { + return new Position(other.getX() - getX(), other.getY() - getY(), other.getZ() - getZ()); + } + + /** + * Gets the distance squared. + * + * @param point the point + * @return the distance squared + */ + public int getDistanceSquared(Position point) { + int dx = this.getX() - point.getX(); + int dy = this.getY() - point.getY(); + + return (int) Math.sqrt((dx * dx) + (dy * dy)); + } + + /** + * Gets the square in front. + * + * @return the square in front + */ + public Position getSquareInFront() { + Position square = this.copy(); + + if (this.bodyRotation == 0) { + square.Y--; + } else if (this.bodyRotation == 1) { + square.X++; + square.Y--; + } else if (this.bodyRotation == 2) { + square.X++; + } else if (this.bodyRotation == 3) { + square.X++; + square.Y++; + } else if (this.bodyRotation == 4) { + square.Y++; + } else if (this.bodyRotation == 5) { + square.X--; + square.Y++; + } else if (this.bodyRotation == 6) { + square.X--; + } else if (this.bodyRotation == 7) { + square.X--; + square.Y--; + } + + return square; + } + + /** + * Gets the square behind + * + * @return the square behind + */ + public Position getSquareBehind() { + Position square = this.copy(); + + if (this.bodyRotation == 0) { + square.Y++; + } else if (this.bodyRotation == 1) { + square.X--; + square.Y++; + } else if (this.bodyRotation == 2) { + square.X--; + } else if (this.bodyRotation == 3) { + square.X--; + square.Y--; + } else if (this.bodyRotation == 4) { + square.Y--; + } else if (this.bodyRotation == 5) { + square.X++; + square.Y--; + } else if (this.bodyRotation == 6) { + square.X++; + } else if (this.bodyRotation == 7) { + square.X++; + square.Y++; + } + + return square; + } + + /** + * Gets the square to the right. + * + * @return the square to the right + */ + public Position getSquareRight() { + Position square = this.copy(); + + if (this.bodyRotation == 0) { + square.X++; + } else if (this.bodyRotation == 1) { + square.X++; + square.Y++; + } else if (this.bodyRotation == 2) { + square.Y++; + } else if (this.bodyRotation == 3) { + square.X--; + square.Y++; + } else if (this.bodyRotation == 4) { + square.X--; + } else if (this.bodyRotation == 5) { + square.X--; + square.Y--; + } else if (this.bodyRotation == 6) { + square.Y--; + } else if (this.bodyRotation == 7) { + square.X++; + square.Y--; + } + + return square; + } + + /** + * Gets the square to the right. + * + * @return the square to the right + */ + public Position getSquareLeft() { + Position square = this.copy(); + + if (this.bodyRotation == 0) { + square.X--; + } else if (this.bodyRotation == 1) { + square.X--; + square.Y--; + } else if (this.bodyRotation == 2) { + square.Y--; + } else if (this.bodyRotation == 3) { + square.X++; + square.Y--; + } else if (this.bodyRotation == 4) { + square.X++; + } else if (this.bodyRotation == 5) { + square.X++; + square.Y++; + } else if (this.bodyRotation == 6) { + square.Y++; + } else if (this.bodyRotation == 7) { + square.X--; + square.Y++; + } + + return square; + } + + /** + * Cords to create list of coordinates for a flat circle + * @param radius the radius + * @return the list of coordinates + */ + public List getCircle(int radius) { + var sphere = new ArrayList(); + + for (int x = -radius; x <= radius; x++) { + for (int y = -radius; y <= radius; y++) { + var b = this.add(new Position(x, y)); + + if (this.getDistanceSquared(b) <= radius) { + sphere.add(b); + } + } + } + + return sphere; + + /* for(int i = 0;i < circumference; i++) + { + double angle = i * increment; + double x = this.getX() + (radius * Math.cos(angle)); + double y = this.getY() + (radius * Math.sin(angle)); + coords.add(new Position((int)x, (int)y, this.getZ())); + } + radius = (radius * 2); // Convert radius to diameter + + return coords; + + List coords = new ArrayList<>(); + + for (int x = this.getX() - radius; x <= this.getX() + radius; x++) { + for (int y = this.getY() - radius; y <= this.getY() + radius; y++) { + double dist = new Position(x, y).getDistanceSquared(this); + + int cx = this.getX(); + int cy = (int)this.getZ(); + int cz = this.getY(); + + boolean sphere = true; + boolean hollow = false; + int h = 1; + + for (int x = cx - radius; x <= cx + radius; x++) { + for (int z = cz - radius; z <= cz + radius; z++) { + //for (int y = (sphere ? cy - radius : cy); y < (sphere ? cy + radius : cy + h); y++) { + double dist = (cx - x) * (cx - x) + (cz - z) * (cz - z);// + (sphere ? (cy - y) * (cy - y) : 0); + if (dist < radius * radius && !(hollow && dist < (radius - 1) * (radius - 1))) { + //Location l = new Location(loc.getWorld(), x, y + plus_y, z); + //circleblocks.add(l); + coords.add(new Position(x, z)); + } + //}*/ + } + + /** + * Copies the position. + * + * @return the position + */ + public Position copy() { + return new Position(this.X, this.Y, this.Z, this.headRotation, this.bodyRotation); + } + + public void override(Position newPosition) { + this.X = newPosition.getX(); + this.Y = newPosition.getY(); + this.Z = newPosition.getZ(); + this.headRotation = newPosition.getHeadRotation(); + this.bodyRotation = newPosition.getBodyRotation(); + } + + /** + * Checks if is match, only checks X and Y coordinate, which is + * intentional. + * + * @param obj the {@link Position} + * @return true, if is match + */ + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + + if (obj instanceof Position) { + Position position = (Position) obj; + return position.getX() == this.X && position.getY() == this.Y; + } + + return false; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "[" + this.X + ", " + this.Y + "]"; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Rotation.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Rotation.java new file mode 100644 index 0000000..690a61c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pathfinder/Rotation.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.game.pathfinder; + +public class Rotation { + public static int calculateHumanDirection(int x1, int y1, int X2, int Y2) { + int rotation = 0; + + if (x1 > X2 && y1 > Y2) + rotation = 7; + else if (x1 < X2 && y1 < Y2) + rotation = 3; + else if (x1 > X2 && y1 < Y2) + rotation = 5; + else if (x1 < X2 && y1 > Y2) + rotation = 1; + else if (x1 > X2) + rotation = 6; + else if (x1 < X2) + rotation = 2; + else if (y1 < Y2) + rotation = 4; + + return rotation; + } + + public static int calculateWalkDirection(Position from, Position to) { + return calculateWalkDirection(from.getX(), from.getY(), to.getX(), to.getY()); + } + + public static int calculateWalkDirection(int x, int y, int to_x, int to_y) { + if (x == to_x) { + if (y < to_y) + return 4; + else + return 0; + } else if (x > to_x) { + if (y == to_y) + return 6; + else if (y < to_y) + return 5; + else + return 7; + } else { + if (y == to_y) + return 2; + else if (y < to_y) + return 3; + else + return 1; + } + } + + public static int getHeadRotation(int rotation, Position position, Position towards) { + int headRotation = rotation; + int diff = rotation - Rotation.calculateHumanDirection(position.getX(), position.getY(), towards.getX(), towards.getY()); + + if ((position.getRotation() % 2) == 0) { + if (diff > 0) { + headRotation = (rotation - 1); + } else if (diff < 0) { + headRotation = (rotation + 1); + } + } + + return headRotation; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/Pet.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/Pet.java new file mode 100644 index 0000000..f5d6ccd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/Pet.java @@ -0,0 +1,141 @@ +package org.alexdev.havana.game.pets; + +import org.alexdev.havana.dao.mysql.PetDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.room.entities.RoomPet; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.util.DateUtil; + +import java.util.concurrent.TimeUnit; + +public class Pet extends Entity { + private PetDetails petDetails; + private PetAction petAction; + private long actionExpiry; + private RoomPet roomUser; + private boolean walkBeforeSitLay; + private int lastActionTime; + + public Pet(PetDetails petDetails) { + this.petDetails = petDetails; + this.roomUser = new RoomPet(this); + this.petAction = PetAction.NONE; + } + + public void awake() { + this.roomUser.removeStatus(StatusType.SLEEP); + this.roomUser.setNeedsUpdate(true); + + this.petAction = PetAction.NONE; + this.actionExpiry = 0; + + this.petDetails.setLastKip(DateUtil.getCurrentTimeSeconds()); + PetDao.saveDetails(this.petDetails.getId(), this.petDetails); + } + + public int getAge() { + return (int) TimeUnit.SECONDS.toDays(DateUtil.getCurrentTimeSeconds() - this.petDetails.getBorn()); + } + + public int getHunger() { + return PetManager.getInstance().getPetStats(this.petDetails.getLastEat(), PetStat.HUNGER); + } + + public int getThirst() { + return PetManager.getInstance().getPetStats(this.petDetails.getLastDrink(), PetStat.THIRST); + } + + public int getHappiness() { + return PetManager.getInstance().getPetStats(this.petDetails.getLastPlayToy(), PetStat.HAPPINESS); + } + + public int getEnergy() { + return PetManager.getInstance().getPetStats(this.petDetails.getLastKip(), PetStat.ENERGY); + } + + public int getFriendship() { + return PetManager.getInstance().getPetStats(this.petDetails.getLastPlayUser(), PetStat.FRIENDSHIP); + } + + public boolean isThirsty() { + return this.getThirst() <= 2; + } + + public boolean isHungry() { + return this.getHunger() <= 3; + } + + + @Override + public boolean hasFuse(Fuseright permission) { + return false; + } + + @Override + public PetDetails getDetails() { + return this.petDetails; + } + + @Override + public RoomPet getRoomUser() { + return this.roomUser; + } + + @Override + public EntityType getType() { + return EntityType.PET; + } + + @Override + public void dispose() { + + } + + public PetAction getAction() { + return petAction; + } + + public void setAction(PetAction petAction) { + this.petAction = petAction; + this.lastActionTime = DateUtil.getCurrentTimeSeconds(); + } + + public boolean isDoingAction() { + return !hasActionExpired() && (this.petAction == PetAction.SLEEP || this.petAction == PetAction.EAT || this.petAction == PetAction.DRINK || this.petAction == PetAction.LAY || this.petAction == PetAction.SIT); + } + + public boolean isActionAllowed() { + return (this.petAction == PetAction.NONE || this.petAction == PetAction.SIT || this.petAction == PetAction.LAY) && (this.roomUser.getCurrentItem() == null || ((!this.roomUser.getCurrentItem().getDefinition().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) && !this.roomUser.getCurrentItem().getDefinition().hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) && this.roomUser.getCurrentItem().getDatabaseId() != this.petDetails.getItemId())); + } + + public boolean hasActionExpired() { + return DateUtil.getCurrentTimeSeconds() > this.actionExpiry; + } + + public void setActionDuration(int seconds) { + this.actionExpiry = DateUtil.getCurrentTimeSeconds() + seconds; + } + + public boolean isWalkBeforeSitLay() { + return walkBeforeSitLay; + } + + public void setWalkBeforeSitLay(boolean walkBeforeSitLay) { + this.walkBeforeSitLay = walkBeforeSitLay; + } + + public boolean isTired() { + return getEnergy() <= 2; + } + + public int getLastActionTime() { + return lastActionTime; + } + + public void setLastActionTime(int lastActionTime) { + this.lastActionTime = lastActionTime; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetAction.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetAction.java new file mode 100644 index 0000000..2fd7cd3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetAction.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.pets; + +public enum PetAction { + NONE(0), + SLEEP(0), + EAT(0), + DRINK(0), + WALKING(0), + SIT(0), + LAY(0), + JUMP(0), + DEAD(0), + PLAY(0), + BEG(0); + + private final int actionLength; + + PetAction(int actionLength) { + this.actionLength = actionLength; + } + + public int getActionLength() { + return actionLength; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetDetails.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetDetails.java new file mode 100644 index 0000000..9c1f3fa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetDetails.java @@ -0,0 +1,188 @@ +package org.alexdev.havana.game.pets; + +import org.alexdev.havana.game.player.PlayerDetails; + +public class PetDetails extends PlayerDetails { + private int id; + private long itemId; + private String name; + private String type; + private String race; + private String colour; + private int naturePositive; + private int natureNegative; + private float friendship; + private long born; + private long lastKip; + private long lastEat; + private long lastDrink; + private long lastPlayToy; + private long lastPlayUser; + private int X; + private int Y; + private int Rotation; + + public PetDetails(int id, long itemId, String name, String type, String race, String colour, int naturePositive, int natureNegative, float friendship, long born, long lastKip, long lastEat, long lastDrink, long lastPlayToy, long lastPlayUser, int x, int y, int rotation) { + this.id = id; + this.itemId = itemId; + this.name = name; + this.type = type; + this.race = race; + this.colour = colour; + this.naturePositive = naturePositive; + this.natureNegative = natureNegative; + this.friendship = friendship; + this.born = born; + this.lastKip = lastKip; + this.lastEat = lastEat; + this.lastDrink = lastDrink; + this.lastPlayToy = lastPlayToy; + this.lastPlayUser = lastPlayUser; + this.X = x; + this.Y = y; + this.Rotation = rotation; + } + + @Override + public int getId() { + return id; + } + + public long getItemId() { + return itemId; + } + + @Override + public String getName() { + return name; + } + + @Override + public String getFigure() { + return this.type + " " + this.race + " " + this.colour; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getRace() { + return race; + } + + public void setRace(String race) { + this.race = race; + } + + public String getColour() { + return colour; + } + + public void setColour(String colour) { + this.colour = colour; + } + + public int getNaturePositive() { + return naturePositive; + } + + public void setNaturePositive(int naturePositive) { + this.naturePositive = naturePositive; + } + + public int getNatureNegative() { + return natureNegative; + } + + public void setNatureNegative(int natureNegative) { + this.natureNegative = natureNegative; + } + + public float getFriendship() { + return friendship; + } + + public void setFriendship(float friendship) { + this.friendship = friendship; + } + + public long getBorn() { + return born; + } + + public void setBorn(long born) { + this.born = born; + } + + public long getLastKip() { + return lastKip; + } + + public void setLastKip(long lastKip) { + this.lastKip = lastKip; + } + + public long getLastEat() { + return lastEat; + } + + public void setLastEat(long lastEat) { + this.lastEat = lastEat; + } + + public long getLastDrink() { + return lastDrink; + } + + public void setLastDrink(long lastDrink) { + this.lastDrink = lastDrink; + } + + public long getLastPlayToy() { + return lastPlayToy; + } + + public void setLastPlayToy(long lastPlayToy) { + this.lastPlayToy = lastPlayToy; + } + + public long getLastPlayUser() { + return lastPlayUser; + } + + public void setLastPlayUser(long lastPlayUser) { + this.lastPlayUser = lastPlayUser; + } + + public int getX() { + return X; + } + + public void setX(int x) { + X = x; + } + + public int getY() { + return Y; + } + + public void setY(int y) { + Y = y; + } + + public int getRotation() { + return Rotation; + } + + public void setRotation(int rotation) { + Rotation = rotation; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetManager.java new file mode 100644 index 0000000..bbed053 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetManager.java @@ -0,0 +1,402 @@ +package org.alexdev.havana.game.pets; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class PetManager { + private static PetManager instance; + public String[] petSpeeches = { + "pet.saying.play.croc.0=*Chases tail*", + "pet.saying.sleep.cat.4=Meow!", + "pet.saying.sniff.dog.2=*Grrruff! *Sniffs happily*", + "pet.saying.angry.croc.2=*licks foot*", + "pet.saying.sniff.dog.1=Grrruff! *Sniffs happily*", + "pet.saying.eat.dog.0=Woof! *wags tail excitedly*", + "pet.saying.sniff.dog.0=Grrruff! *Sniffs happily*", + "pet.saying.beg.cat.2=Meow!", + "pet.saying.play.dog.0=*Chases tail*", + "pet.saying.beg.croc.2=Snap!", + "pet.saying.play.croc.1=*Snaps happily*", + "pet.saying.generic.dog.2=*Runs happily up to Habbo*", + "pet.saying.generic.dog.3=*Jumps on Habbo happily*", + "pet.saying.sniff.croc.0=*sniffs inquisitively*", + "pet.saying.angry.dog.4=*Licks foot apologetically*", + "pet.saying.angry.dog.3=Woof! Woof!", + "pet.saying.play.dog.1=*Fetches ball*", + "pet.saying.eat.cat.2=Meow! *Licks food*", + "pet.saying.eat.cat.1=Meow! *Sniffs food*", + "pet.saying.angry.croc.3=Snap! *innocent smile*", + "pet.saying.beg.croc.1=Snap!", + "pet.saying.beg.cat.0=Purrrrrr *walks around legs*", + "pet.saying.generic.cat.4=Meow", + "pet.saying.sleep.dog.6=Woof! Zzzzzzz", + "pet.saying.angry.croc.4=Snap! *innocent smile*", + "pet.saying.play.cat.1=*Chases mouse*", + "pet.saying.sleep.dog.5=Ruff! Zzzzzzzz *wags tail*", + "pet.saying.eat.croc.4=*Smiles contently*", + "pet.saying.eat.cat.0=Meow! *Sniffs food*", + "pet.saying.sleep.dog.3=Ruff! Zzzzzzzz *wags tail*", + "pet.saying.sleep.dog.4=Ruff! Zzzzzzzz *wags tail*", + "pet.saying.generic.croc.0=Rrrr....Grrrrrg....", + "pet.saying.eat.croc.3=Snap! *Chomps on food*", + "pet.saying.eat.croc.1=Snap! *Swallows food whole*", + "pet.saying.angry.cat.2=Meow!", + "pet.saying.sleep.dog.2=Ruff! Zzzzzzzz *wags tail*", + "pet.saying.eat.croc.2=Snap! *Swallows food whole*", + "pet.saying.sleep.croc.0=Zzzzzz *dreams of wilderbeast*", + "pet.saying.sleep.croc.1=Zzzzzz *dreams of zebra*", + "pet.saying.sleep.croc.5=Zzzzzz *dreams of wilderbeast*", + "pet.saying.sleep.dog.0=Ruff! Zzzzzzzz *wags tail*", + "pet.saying.sleep.croc.3=Zzzzzz *dreams of springboekt*", + "pet.saying.angry.cat.3=Meow", + "pet.saying.sleep.cat.1=Purrr zzzzz", + "pet.saying.generic.croc.1=Snap!", + "pet.saying.sleep.dog.1=Zzzzzz", + "pet.saying.angry.cat.0=Mew *sad eyes*", + "pet.saying.sniff.croc.2=*Watches for hours until it moves*", + "pet.saying.sniff.croc.1=*Watches for hours until it moves*", + "pet.saying.sleep.croc.2=Zzzzzz *dreams of wilderbeast*", + "pet.saying.angry.cat.1=Purrrrrr ... *walks around legs*", + "pet.saying.sniff.cat.0=*sniffs inquisitively*", + "pet.saying.eat.dog.2=Woof! *chews*", + "pet.saying.eat.dog.1=Woof! *chews*", + "pet.saying.sleep.croc.6=Zzzzzz *dreams of wilderbeast*", + "pet.saying.eat.dog.3=Woof! *wags tail excitedly*", + "pet.saying.beg.croc.0=Snap!", + "pet.saying.play.cat.0=*Jumps at shadow puppet*", + "pet.saying.generic.croc.2=*Tail flip*", + "pet.saying.beg.dog.1=Woof! Woof!", + "pet.saying.generic.cat.1=Purrrr", + "pet.saying.generic.cat.0=Purrrr", + "pet.saying.eat.croc.0=Snap! *Swallows food whole*", + "pet.saying.beg.dog.2=Woof! *Sits patiently*", + "pet.saying.angry.dog.1=Ruff!", + "pet.saying.generic.cat.3=Meow", + "pet.saying.generic.dog.1=Woof! Woof!", + "pet.saying.eat.dog.4=Woof! *wags tail excitedly*", + "pet.saying.angry.croc.1=Snap! *innocent smile*", + "pet.saying.generic.croc.3=*Walks up to Habbo excitedly*", + "pet.saying.angry.croc.0=Snap!", + "pet.saying.angry.dog.0=*Puppy dog eyes*", + "pet.saying.beg.dog.0=*lifts paws onto Habbos knees*", + "pet.saying.beg.cat.1=Purrrrrr *walks around legs*", + "pet.saying.generic.cat.2=Purrrr", + "pet.saying.sleep.cat.3=Meow!", + "pet.saying.sleep.cat.0=Purrr zzzzz", + "pet.saying.generic.dog.0=Grrrrufff!", + "pet.saying.sleep.croc.4=Zzzzzz *dreams of elephant burgers*", + "pet.saying.sleep.cat.2=Purrr zzzzz", + "pet.saying.angry.dog.2=*Whines*" + }; + + /** + * Handle speech for pets. + * + * @param player the player to call it + * @param speech the speech to do + */ + public void handleSpeech(Player player, Room room, String speech) { + String[] data = speech.split(" "); + + if (data.length < 2) + return; + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + for (Pet pet : room.getEntityManager().getEntitiesByClass(Pet.class)) { + if (pet.getDetails().getName().toLowerCase().equals(data[0].toLowerCase())) { + petCommand(player, room, pet, speech.replace(data[0] + " ", "")); + } + } + } + + private void petCommand(Player player, Room room, Pet pet, String command) { + var item = pet.getRoomUser().getCurrentItem(); + boolean petCommanded = false; + + switch (command.toLowerCase()) { + case "speak": { + // Bark, meow, etc + break; + } + case "good": { + // Boosts pet's ego and makes them happy + break; + } + case "beg": { + // Beg for reward + break; + } + case "go": + case "go away": { + // Pet moves away from player + break; + } + case "bad": { + // Tells pet off + break; + } + case "come over": + case "come": + case "heel": { + // Follow player + break; + } + case "play dead": + case "dead": { + int length = ThreadLocalRandom.current().nextInt(4, 11); + + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.DEAD, StatusType.DEAD.getStatusCode(), length, null, -1, -1); + pet.getRoomUser().setNeedsUpdate(true); + + pet.setAction(PetAction.DEAD); + pet.setActionDuration(length); + petCommanded = true; + break; + } + case "sit": { + int length = ThreadLocalRandom.current().nextInt(10, 30); + + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.SIT, StringUtil.format(pet.getRoomUser().getPosition().getZ()), length, null, -1, -1); + pet.getRoomUser().setNeedsUpdate(true); + + pet.setAction(PetAction.SIT); + pet.setActionDuration(length); + petCommanded = true; + break; + } + case "lie down": + case "lay": { + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.LAY, StringUtil.format(pet.getRoomUser().getPosition().getZ()) + " null"); + pet.getRoomUser().setNeedsUpdate(true); + + pet.setAction(PetAction.LAY); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(10, 30)); + + petCommanded = true; + break; + } + case "jump": { + if (!pet.isActionAllowed()) { + return; + } + + int length = ThreadLocalRandom.current().nextInt(2, 4); + + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.JUMP, StatusType.JUMP.getStatusCode().toLowerCase(), length, null, -1, -1); + pet.getRoomUser().setNeedsUpdate(true); + + pet.setAction(PetAction.JUMP); + pet.setActionDuration(length); + petCommanded = true; + break; + } + case "sleep": { + if (pet.isDoingAction()) { + return; + } + + Item nest = room.getItemManager().getByDatabaseId(pet.getDetails().getItemId()); + pet.getRoomUser().walkTo(nest.getPosition().getX(), nest.getPosition().getY()); + + if (pet.getRoomUser().isWalking()) { + pet.setAction(PetAction.SLEEP); + } else { + if (item != null) { + if (item.getDatabaseId() == pet.getDetails().getItemId()) { + item.getDefinition().getInteractionType().getTrigger().onEntityStop(pet, pet.getRoomUser(), item, false); + pet.setAction(PetAction.SLEEP); + } + } + } + + if (pet.getAction() == PetAction.SLEEP) { + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().setNeedsUpdate(true); + } + + break; + } + case "awake": { + if (pet.getAction() != PetAction.SLEEP) { + return; + } + + pet.awake(); + break; + } + } + + if (petCommanded) { + if (pet.getRoomUser().isWalking()) { + pet.getRoomUser().stopWalking(); + } + } + } + + /** + * Get the pet stats when given the last time and stat type. + * + * @param lastTime the last time for an action + * @param stat the current pet stat + * @return the stat type + */ + public int getPetStats(long lastTime, PetStat stat) { + int a = (int) TimeUnit.SECONDS.toHours(DateUtil.getCurrentTimeSeconds() - lastTime); + + if (a < 2) { + return stat.getAttributeType(); + } + + for (int x = 1; x <= stat.getAttributeType(); x++) { + if (a > (2 * x)) + return x; + } + + return stat.getAttributeType(); + + } + + /** + * Get if the pet name is valid. + * + * @param ownerName + * @param name the name of the pet + */ + public int isValidName(String ownerName, String name) { + String[] words = StringUtil.getWords(name); + + for (String word : words) { + if (WordfilterManager.getInstance().getBannedWords().contains(word)) { + return 3; + } + } + + // Bad! + if (!StringUtil.filterInput(name, true).equals(name)) { + return 2; + } + + if (name.isBlank() || name.contains(" ")) { + return 2; + } + + if (name.length() > 15) { + return 1; + } + + if (name.length() < 1) { + return 1; + } + + if (ownerName.toLowerCase().equals(name.toLowerCase())) { + return 4; + } + + return 0; + } + + public PetType getType(Pet pet) { + switch (pet.getDetails().getType()) { + case "0": { + return PetType.DOG; + } + case "1": { + return PetType.CAT; + } + case "2": { + return PetType.CROC; + } + } + + return null; + } + + /** + * Gets a random speech element by pet type. + * + * @param pet the pet type given + * @return the speech selected + */ + public String getRandomSpeech(Pet pet) { + List possibleChatValues = new ArrayList<>(); + + String speech = null; + + if (pet.getAction() != null) { + switch (pet.getAction()) { + case SLEEP: + case DEAD: + possibleChatValues.addAll(getChatValue(this.getType(pet), "sleep")); + break; + case EAT: + possibleChatValues.addAll(getChatValue(this.getType(pet), "eat")); + break; + case BEG: + possibleChatValues.addAll(getChatValue(this.getType(pet), "beg")); + break; + case JUMP: + case PLAY: + possibleChatValues.addAll(getChatValue(this.getType(pet), "play")); + break; + } + } + + if (pet.getAction() == PetAction.NONE || pet.getAction() == PetAction.SIT || pet.getAction() == PetAction.LAY) { + possibleChatValues.addAll(getChatValue(this.getType(pet), "sniff")); + possibleChatValues.addAll(getChatValue(this.getType(pet), "generic")); + } + + if (possibleChatValues.size() > 0) { + return possibleChatValues.get(ThreadLocalRandom.current().nextInt(possibleChatValues.size())); + } + + return null; + } + + private List getChatValue(PetType type, String action) { + List speeches = new ArrayList<>(); + + for (var speech : this.petSpeeches) { + if (speech.startsWith("pet.saying." + action + "." + type.name().toLowerCase())) { + speeches.add(speech.split("=")[1]); + } + } + + return speeches; + } + + /** + * Get the {@link PetManager} instance + * + * @return the item manager instance + */ + public static PetManager getInstance() { + if (instance == null) { + instance = new PetManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetStat.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetStat.java new file mode 100644 index 0000000..da52b5d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetStat.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.game.pets; + +public enum PetStat { + HUNGER(6), + THIRST(3), + HAPPINESS(6), + ENERGY(7), + FRIENDSHIP(7); + + private int attributeType; + + PetStat(int attributeType) { + this.attributeType = attributeType; + } + + public int getAttributeType() { + return attributeType; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetType.java new file mode 100644 index 0000000..e2a6f6d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/pets/PetType.java @@ -0,0 +1,7 @@ +package org.alexdev.havana.game.pets; + +public enum PetType { + DOG, + CAT, + CROC; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/Player.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/Player.java new file mode 100644 index 0000000..c344b7c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/Player.java @@ -0,0 +1,622 @@ +package org.alexdev.havana.game.player; + +import io.netty.util.AttributeKey; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.achievements.user.UserAchievementManager; +import org.alexdev.havana.game.badges.BadgeManager; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.encryption.DiffieHellman; +import org.alexdev.havana.game.encryption.RC4; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.fuserights.FuserightsManager; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.inventory.Inventory; +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.player.guides.PlayerGuideManager; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.game.room.entities.RoomPlayer; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.alerts.HOTEL_LOGOUT; +import org.alexdev.havana.messages.outgoing.alerts.HOTEL_LOGOUT.LogoutReason; +import org.alexdev.havana.messages.outgoing.club.CLUB_GIFT; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECTS; +import org.alexdev.havana.messages.outgoing.handshake.LOGIN; +import org.alexdev.havana.messages.outgoing.handshake.RIGHTS; +import org.alexdev.havana.messages.outgoing.handshake.UniqueIDMessageEvent; +import org.alexdev.havana.messages.outgoing.openinghours.INFO_HOTEL_CLOSING; +import org.alexdev.havana.messages.outgoing.user.settings.HELP_ITEMS; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; + +public class Player extends Entity { + public static final AttributeKey PLAYER_KEY = AttributeKey.valueOf("Player"); + + private final NettyPlayerNetwork network; + private final PlayerDetails details; + private final RoomPlayer roomEntity; + + private Logger log; + private Messenger messenger; + private Inventory inventory; + private BadgeManager badgeManager; + private UserAchievementManager achievementManager; + private PlayerGuideManager guideManager; + private PlayerStatisticManager statisticManager; + + private CopyOnWriteArrayList effects; + private Set ignoredList; + + private DiffieHellman diffieHellman; + private RC4 rc4; + + private boolean loggedIn; + private boolean disconnected; + private boolean pingOK; + private boolean hasGenerateKey; + private long timeConnected; + private boolean processLoginSteps; + private List joinedGroups; + private String lastGift; + + public Player(NettyPlayerNetwork nettyPlayerNetwork) { + this.network = nettyPlayerNetwork; + this.details = new PlayerDetails(); + this.badgeManager = new BadgeManager(); + this.diffieHellman = new DiffieHellman(); + this.roomEntity = new RoomPlayer(this); + this.guideManager = new PlayerGuideManager(this); + this.statisticManager = new PlayerStatisticManager(-1, Map.of()); + this.achievementManager = new UserAchievementManager(); + this.effects = new CopyOnWriteArrayList<>(); + this.ignoredList = new HashSet<>(); + this.log = LoggerFactory.getLogger("Connection " + this.network.getConnectionId()); + this.pingOK = true; + this.disconnected = false; + this.processLoginSteps = true; + } + + /** + * Login handler for player + */ + public void login() { + this.log = LoggerFactory.getLogger("Player " + this.details.getName()); // Update logger to show name + this.loggedIn = true; + this.pingOK = true; + this.timeConnected = DateUtil.getCurrentTimeSeconds(); + + PlayerManager.getInstance().disconnectSession(this.details.getId()); // Kill other sessions with same id + PlayerManager.getInstance().addPlayer(this); // Add new connection + + this.details.setLastOnline(DateUtil.getCurrentTimeSeconds()); + + if (!this.details.getName().equals("Abigail.Ryan")) { + PlayerDao.saveLastOnline(this.details.getId(), this.details.getLastOnline(), true); + } + + SettingsDao.updateSetting("players.online", String.valueOf(PlayerManager.getInstance().getPlayers().size())); + + if (GameConfiguration.getInstance().getBoolean("reset.sso.after.login")) { + PlayerDao.resetSsoTicket(this.details.getId()); // Protect against replay attacks + } + + this.messenger = new Messenger(this); + this.inventory = new Inventory(this); + + // Bye bye! + if (this.getDetails().isBanned() != null) { + this.kickFromServer(); + return; + } + + if (this.details.getMachineId() == null || this.details.getMachineId().isBlank() || !( + this.details.getMachineId().length() == 33 && + this.details.getMachineId().startsWith("#"))) { + this.details.setMachineId(this.network.getClientMachineId()); + this.network.setSaveMachineId(true); + PlayerDao.setMachineId(this.details.getId(), this.details.getMachineId()); + } + + if (this.network.saveMachineId()) { + this.send(new UniqueIDMessageEvent(this.network.getClientMachineId())); + } + + // Update user IP address + String ipAddress = NettyPlayerNetwork.getIpAddress(this.getNetwork().getChannel()); + var latestIp = PlayerDao.getLatestIp(this.details.getId()); + + if (latestIp == null || !latestIp.equals(ipAddress)) { + PlayerDao.logIpAddress(this.getDetails().getId(), ipAddress); + } + + EffectDao.removeEffects(this.details.getId()); + this.effects = EffectDao.getEffects(this.details.getId()); + + if (!this.getDetails().getRespectDay().equals(DateUtil.getCurrentDate(DateUtil.SHORT_DATE))) { + this.getDetails().setRespectDay(DateUtil.getCurrentDate(DateUtil.SHORT_DATE)); + this.getDetails().setDailyRespectPoints(3); + + this.getDetails().setCreditsEligible(true); + CurrencyDao.updateEligibleCredits(this.details.getId(), true); + + PlayerDao.saveRespect(this.details.getId(), this.details.getDailyRespectPoints(), this.details.getRespectPoints(), this.details.getRespectDay(), this.details.getRespectGiven()); + + //CurrencyDao.increasePixels(this.details, 15); + //this.send(new ActivityPointNotification(this.details.getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_RECEIVED)); // Alert pixels received + } + + // Do pixels + TimeUnit pixelsReceived = TimeUnit.valueOf(GameConfiguration.getInstance().getString("pixels.received.timeunit")); + int intervalInSeconds = (int) pixelsReceived.toSeconds(GameConfiguration.getInstance().getInteger("pixels.received.interval")); + this.details.setLastPixelsTime(DateUtil.getCurrentTimeSeconds() + intervalInSeconds); + + // Set trade ban back to 0, easier for db querying + if (this.details.getTradeBanExpiration() > 0 && !this.details.isTradeBanned()) { + this.details.setTradeBanExpiration(0); + ItemDao.saveTradeBanExpire(this.details.getId(), 0); + } + + var stats = PlayerStatisticsDao.getStatistics(this.details.getId()); + + if (stats.isEmpty()) { + PlayerStatisticsDao.newStatistics(this.details.getId(), UUID.randomUUID().toString()); + stats = PlayerStatisticsDao.getStatistics(this.details.getId()); + } + + this.statisticManager = new PlayerStatisticManager(this.details.getId(), stats); + + this.badgeManager.loadBadges(this); + this.achievementManager.loadAchievements(this.details.getId()); + this.details.resetNextHandout(); + this.refreshJoinedGroups(); + + this.send(new RIGHTS(this.getFuserights())); + this.send(new LOGIN()); + this.send(new AVATAR_EFFECTS(this.effects)); + + if (GameConfiguration.getInstance().getBoolean("welcome.message.enabled")) { + String alertMessage = GameConfiguration.getInstance().getString("welcome.message.content"); + alertMessage = StringUtil.replaceAlertMessage(alertMessage, this); + this.send(new ALERT(alertMessage)); + } + + if (PlayerManager.getInstance().isMaintenance()) { + this.send(new INFO_HOTEL_CLOSING(PlayerManager.getInstance().getMaintenanceAt())); + } + + /*if (this.network.isFlashConnected()) { + String alertMessage = "Welcome to Classic Habbo! A reminder:\r\r"; + + alertMessage += "This hotel exists to play all the features that were available on the Shockwave client. The flash client does not have many features.\r\r"; + alertMessage += "It is advisable to use the Shockwave client if you want to experience Classic Habbo for what it is, especially when Flash becomes deprecated on the modern browsers in December 2020.\r\r"; + + alertMessage = StringUtil.replaceAlertMessage(alertMessage, this); + this.send(new ALERT(alertMessage)); + }*/ + + /*if (this.details.getXpExpiry() < DateUtil.getCurrentTimeSeconds()) { + this.details.setXp(0); + this.details.setXpExpiry(DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(30)); + PlayerDao.saveXp(this.details.getId(), this.details.getXp(), this.details.getXpExpiry()); + }*/ + + this.messenger.sendStatusUpdate(); + + // Guide checks + this.guideManager.setGuide(GuideManager.getInstance().isGuide(this)); + + if (GameConfiguration.getInstance().getBoolean("tutorial.enabled")) { + if (this.guideManager.isGuide()) { + this.guideManager.setHasTutorial(false); + this.guideManager.refreshGuidingUsers(); + } else { + this.guideManager.setHasTutorial(this.statisticManager.getIntValue(PlayerStatistic.HAS_TUTORIAL) == 1); + } + } + + + if (GameConfiguration.getInstance().getBoolean("tutorial.enabled")) { + if (this.guideManager.hasTutorial()) { + this.send(new HELP_ITEMS(List.of(1, 2, 3, 4, 5, 6, 7, 8))); + } + } + + // Guide admin + if (this.badgeManager.hasBadge("GLK")) { + int guideGroupId = GameConfiguration.getInstance().getInteger("guides.group.id"); + var group = this.getJoinedGroup(guideGroupId); + + if (group != null) { + var groupMember = group.getMember(this.getDetails().getId()); + + if (groupMember == null || (groupMember.getMemberRank() != GroupMemberRank.ADMINISTRATOR && groupMember.getMemberRank() != GroupMemberRank.OWNER)) { + this.badgeManager.removeBadge("GLK"); + } + } + } + + // Habbo eXperts group + if (this.badgeManager.hasBadge("XXX")) { + int expertsGroupId = GameConfiguration.getInstance().getInteger("habbo.experts.group.id"); + var group = this.getJoinedGroup(expertsGroupId); + + if (group != null) { + var expertsMember = group.getMember(this.getDetails().getId()); + + if (expertsMember == null) { + this.badgeManager.removeBadge("XXX"); + } + } + } + + ClubSubscription.countMemberDays(this); + } + + /** + * Refresh club for player. + */ + public void refreshClub() { + if (!this.details.hasClubSubscription()) { + // If the database still thinks we have Habbo club even after it expired, reset it back to 0. + if (this.details.getClubExpiration() > 0) { + this.details.setClubExpiration(0); + this.send(new RIGHTS(this.getFuserights())); + //ClubSubscription.resetClothes(this.details); + PlayerDao.saveSubscription(this.details.getId(), this.details.getFirstClubSubscription(), this.details.getClubExpiration()); + } + } else { + ClubSubscription.checkBadges(this); + + if (ClubSubscription.isGiftDue(this)) { + this.send(new CLUB_GIFT(this.statisticManager.getIntValue(PlayerStatistic.GIFTS_DUE))); + } + } + + ClubSubscription.sendHcDays(this); + } + + /** + * Send fuseright permissions for player. + */ + public List getFuserights() { + List fuserights = FuserightsManager.getInstance().getFuserightsForRank(this.details.getRank()); + + if (this.getDetails().hasClubSubscription()) { + fuserights.addAll(FuserightsManager.getInstance().getClubFuserights()); + } + + fuserights.removeIf(fuse -> !fuse.getFuseright().startsWith("fuse_")); + return fuserights; + } + + /** + * Check if the player has a permission for a rank. + * + * @param fuse the permission + * @return true, if successful + */ + @Override + public boolean hasFuse(Fuseright fuse) { + return FuserightsManager.getInstance().hasFuseright(fuse, this.details); + } + + /** + * Send a response to the player + * + * @param response the response + */ + public void send(MessageComposer response) { + this.network.send(response); + } + + /** + * Send a object to the player + * + * @param object the object to send + */ + public void sendObject(Object object) { + this.network.send(object); + } + + /** + * Get the messenger instance for the player + * + * @return the messenger instance + */ + public Messenger getMessenger() { + return messenger; + } + + /** + * Get the inventory handler for player. + * + * @return the inventory handler + */ + public Inventory getInventory() { + return inventory; + } + + /** + * Get the badge manager for player. + * + * @return the badge manager + */ + public BadgeManager getBadgeManager() { + return badgeManager; + } + + @Override + public PlayerDetails getDetails() { + return this.details; + } + + @Override + public RoomPlayer getRoomUser() { + return this.roomEntity; + } + + @Override + public EntityType getType() { + return EntityType.PLAYER; + } + + /** + * Get the player logger. + * + * @return the logger + */ + public Logger getLogger() { + return this.log; + } + + /** + * Get the network handler for the player + * + * @return the network handler + */ + public NettyPlayerNetwork getNetwork() { + return this.network; + } + + /** + * Get if the player has logged in or not. + * + * @return true, if they have + */ + public boolean isLoggedIn() { + return loggedIn; + } + + /** + * Get if the connection has timed out or not. + * + * @return false, if it hasn't. + */ + public boolean isPingOK() { + return pingOK; + } + + /** + * Get if the socket has been disconnected. + * + * @return true, if it has + */ + public boolean isDisconnected() { + return disconnected; + } + + /** + * Set if the connection has timed out or not. + * + * @param pingOK the value to determine of the connection has timed out + */ + public void setPingOK(boolean pingOK) { + this.pingOK = pingOK; + } + + /** + * Get rid of the player from the server. + */ + public void kickFromServer() { + try { + this.network.send(new HOTEL_LOGOUT(LogoutReason.DISCONNECT)); + this.network.disconnect(); + + this.dispose(); + } catch (Exception ignored) { + // Ignore + } + } + + /** + * Dispose player when disconnect happens. + */ + @Override + public void dispose() { + if (this.loggedIn) { + if (this.roomEntity.getRoom() != null) { + this.roomEntity.getRoom().getEntityManager().leaveRoom(this, false); + } + + if (this.roomEntity.getObservingGameId() != -1) { + this.roomEntity.stopObservingGame(); + } + + if (this.roomEntity.getGamePlayer() != null) { + this.roomEntity.getGamePlayer().getGame().leaveGame(this.roomEntity.getGamePlayer()); + } + + PlayerManager.getInstance().removePlayer(this); + ClubSubscription.countMemberDays(this); + + int loggedInTime = (int) (DateUtil.getCurrentTimeSeconds() - this.timeConnected); + this.statisticManager.incrementValue(PlayerStatistic.ONLINE_TIME, loggedInTime); + this.details.setLastOnline(DateUtil.getCurrentTimeSeconds()); + + GuideManager.getInstance().tryProgress(this); + GuideManager.getInstance().checkGuidingFriends(this); + + if (!this.details.getName().equals("Abigail.Ryan")) { + PlayerDao.saveLastOnline(this.details.getId(), this.details.getLastOnline(), false); + } + + SettingsDao.updateSetting("players.online", String.valueOf(PlayerManager.getInstance().getPlayers().size())); + + if (this.messenger != null) { + this.messenger.sendStatusUpdate(); + } + } + + this.disconnected = true; + this.loggedIn = false; + } + + /** + * Get the diffie-hellman instance of the user. + * + * @return the instance + */ + public DiffieHellman getDiffieHellman() { + return diffieHellman; + } + + /** + * Get the list of user activated effects. + * + * @return the list of effects + */ + public CopyOnWriteArrayList getEffects() { + return effects; + } + + /** + * Get if the user has used the generate key + * + * @return true, if successful + */ + public boolean hasGenerateKey() { + return hasGenerateKey; + } + + /** + * Set whether the user has generated the key + * + * @param hasGenerateKey the flag + */ + public void setHasGenerateKey(boolean hasGenerateKey) { + this.hasGenerateKey = hasGenerateKey; + } + + /** + * Get the user ignored list. + * + * @return the user ignored list + */ + public Set getIgnoredList() { + return ignoredList; + } + + /** + * Get the user achievement manager. + * + * @return the user achievement manager + */ + public UserAchievementManager getAchievementManager() { + return achievementManager; + } + + /** + * Get the guide manager for the user. + * + * @return the guide manager + */ + public PlayerGuideManager getGuideManager() { + return guideManager; + } + + /** + * Get the statistic manager for the user. + * + * @return the statistic manager + */ + public PlayerStatisticManager getStatisticManager() { + return statisticManager; + } + + /** + * Get whether we are processing login steps + * @return true, if successful + */ + public boolean isProcessLoginSteps() { + return processLoginSteps; + } + + /** + * Set whether we are processing login steps + * @param processLoginSteps the flag if we are or not + */ + public void setProcessLoginSteps(boolean processLoginSteps) { + this.processLoginSteps = processLoginSteps; + } + + /** + * Refresh the groups the user has joined + */ + public void refreshJoinedGroups() { + this.joinedGroups = GroupDao.getJoinedGroups(this.details.getId()); + } + + /** + * Get the list of groups the user has joined. + * + * @return the list of groups + */ + public List getJoinedGroups() { + return joinedGroups; + } + + /** + * Get the joined group + * @param joinedGroupId the joined group id + * @return the group + */ + public Group getJoinedGroup(int joinedGroupId) { + return joinedGroups.stream().filter(x -> x.getId() == joinedGroupId).findFirst().orElse(null); + } + + @Override + public boolean isMuted() { + //if (this.getDetails().getRank().getRankId() >= 5) + // return false; + + long mutedExpiresAt = this.statisticManager.getLongValue(PlayerStatistic.MUTE_EXPIRES_AT); + + if (mutedExpiresAt > 0) { + return mutedExpiresAt > DateUtil.getCurrentTimeSeconds(); + } + + return false; + } + + public void setLastGift(String nextSpriteGift) { + this.lastGift = nextSpriteGift; + } + + public String getLastGift() { + return lastGift; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java new file mode 100644 index 0000000..ad4f45d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerDetails.java @@ -0,0 +1,541 @@ +package org.alexdev.havana.game.player; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.GroupMemberDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.misc.figure.FigureManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.concurrent.TimeUnit; + +public class PlayerDetails { + // Basic info + private int id; + private String username; + private String email; + private String figure; + private String poolFigure; + private String motto; + private String sex; + private String ssoTicket; + private String machineId; + + // Currencies + private int credits; + private int pixels; + private long lastPixelsTime; + private int tickets; + private int film; + private PlayerRank rank; + + // Club + private long firstClubSubscription; + private long clubExpiration; + + // Settings + private boolean allowStalking; + private int selectedRoomId; + private boolean allowFriendRequests; + private boolean onlineStatusVisible; + private boolean profileVisible; + private boolean wordFilterEnabled; + private boolean tradeEnabled; + private boolean soundEnabled; + + // Timestamps + private long nextHandout; + private boolean isCreditsEligible; + private long lastOnline; + private long joinDate; + + // Game points + private int dailyRespectPoints; + private String respectDay; + private String previousRespectDay; + private int respectPoints; + private int respectGiven; + + private boolean isOnline; + private String createdAt; + private long totemEffectExpiry; + private long tradeBanExpiration; + private int favouriteGroupId; + private GroupMember groupMember; + + public PlayerDetails() { + } + + + /** + * Fill the player data for the entity. + * @param id the id to add + * @param username the username + * @param figure the figure + * @param poolFigure the pool figure + * @param credits the credits + * @param motto the motto + * @param sex the sex + * @param tickets the tickets + * @param film the film + * @param rank the rank + * @param lastOnline the last time they were online in a unix timestamp + * @param firstClubSubscription the club subscribed date in a unix timestamp + * @param clubExpiration the club expiration date in a unix timestamp + * @param allowStalking allow stalking/following + * @param soundEnabled allow playing sound from client + */ + public void fill(int id, String username, String figure, String poolFigure, int pixels, int credits, String email, String motto, String sex, String ssoTicket, int tickets, int film, int rank, long lastOnline, long joinDate, String machineId, long firstClubSubscription, + long clubExpiration, boolean allowStalking, int selectedRoom, boolean allowFriendRequests, boolean onlineStatusVisible, boolean profileVisible, boolean wordFilterEnabled, boolean tradeEnabled, boolean soundEnabled, + boolean isCreditsEligible, int respectCount, String respectDay, int respectPoints, int respectGiven, boolean isOnline, long totemEffectExpiry, long tradeBanExpiration, + int favouriteGroupId, String createdAt) { + this.id = id; + this.username = StringUtil.filterInput(username, true); + this.figure = StringUtil.filterInput(figure, true); // Format: hd-180-1.ch-255-70.lg-285-77.sh-295-74.fa-1205-91.hr-125-31.ha-1016- + this.poolFigure = StringUtil.filterInput(poolFigure, true); // Format: ch=s02/238,238,238 + this.motto = WordfilterManager.filterSentence(StringUtil.filterInput(motto, true)); + //this.consoleMotto = StringUtil.filterInput(consoleMotto, true); + this.email = email; + this.sex = sex.toLowerCase().equals("f") ? "F" : "M"; + this.ssoTicket = ssoTicket; + this.pixels = pixels; + this.lastPixelsTime = DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(15); + this.credits = credits; + this.tickets = tickets; + this.film = film; + this.rank = PlayerRank.getRankForId(rank); + this.lastOnline = lastOnline; + this.previousRespectDay = respectDay; + this.joinDate = joinDate; + this.machineId = machineId; + this.firstClubSubscription = firstClubSubscription; + this.clubExpiration = clubExpiration; + this.allowStalking = allowStalking; + this.selectedRoomId = selectedRoom; + this.allowFriendRequests = allowFriendRequests; + this.onlineStatusVisible = onlineStatusVisible; + this.profileVisible = profileVisible; + this.wordFilterEnabled = wordFilterEnabled; + this.tradeEnabled = tradeEnabled; + this.soundEnabled = soundEnabled; + this.isCreditsEligible = isCreditsEligible; + this.dailyRespectPoints = respectCount; + this.respectDay = respectDay; + this.respectPoints = respectPoints; + this.respectGiven = respectGiven; + this.isOnline = isOnline; + this.totemEffectExpiry = totemEffectExpiry; + this.tradeBanExpiration = tradeBanExpiration; + this.favouriteGroupId = favouriteGroupId; + this.createdAt = createdAt; + + if (this.credits < 0) { + this.credits = 0; + } + + if (this.tickets < 0) { + this.tickets = 0; + } + + if (this.film < 0) { + this.film = 0; + } + } + + public void fill(int id, String username, String figure, String motto, String sex) { + this.id = id; + this.username = username; + this.figure = figure; + this.motto = motto; + this.sex = sex; + this.createdAt = ""; + this.respectDay = ""; + } + + public boolean hasClubSubscription() { + if (this.clubExpiration != 0) { + if (DateUtil.getCurrentTimeSeconds() < this.clubExpiration) { + return true; + } + } + + return false; + } + + public Pair isBanned() { + var userBanCheck = BanDao.hasBan(BanType.USER_ID, String.valueOf(this.id)); + + if (userBanCheck != null) { + return userBanCheck; + } + + var machineBanCheck = BanDao.hasBan(BanType.MACHINE_ID, this.machineId); + + if (machineBanCheck != null) { + return machineBanCheck; + } + + /*var ipBanCheck = BanDao.hasBan(BanType.IP_ADDRESS, PlayerDao.getLatestIp(this.id)); + + if (ipBanCheck != null) { + return ipBanCheck; + }*/ + + return null; + } + + + public void resetNextHandout() { + if (GameConfiguration.getInstance().getInteger("daily.credits.amount") > 0) { + this.nextHandout = 0;//DateUtil.getCurrentTimeSeconds() + GameConfiguration.getInstance().getInteger("daily.credits.wait.time"); + } else { + TimeUnit unit = TimeUnit.valueOf(GameConfiguration.getInstance().getString("credits.scheduler.timeunit")); + this.nextHandout = DateUtil.getCurrentTimeSeconds() + unit.toSeconds(GameConfiguration.getInstance().getInteger("credits.scheduler.interval")); + } + } + + public int getId() { + return id; + } + + public String getName() { + return username; + } + + public String getFigure() { + return figure; + } + + public void setFigure(String figure) { + this.figure = figure; + } + + public String getPoolFigure() { + return poolFigure; + } + + public void setPoolFigure(String poolFigure) { + this.poolFigure = poolFigure; + } + + public int getPixels() { + return pixels; + } + + public void setPixels(int pixels) { + this.pixels = pixels; + } + + public long getLastPixelsTime() { + return lastPixelsTime; + } + + public void setLastPixelsTime(long lastPixelsTime) { + this.lastPixelsTime = lastPixelsTime; + } + + public int getCredits() { + return credits; + } + + public void setCredits(int credits) { + this.credits = credits; + } + + public String getMotto() { + return motto; + } + + public void setMotto(String motto) { + this.motto = motto; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public int getTickets() { + return tickets; + } + + public void setTickets(int tickets) { + this.tickets = tickets; + } + + public int getFilm() { + return film; + } + + public void setFilm(int film) { + this.film = film; + } + + public PlayerRank getRank() { + return this.rank; + } + + public void setRank(PlayerRank rank) { + this.rank = rank; + } + + public long getLastOnline() { + return lastOnline; + } + + public void setLastOnline(long lastOnline) { + this.lastOnline = lastOnline; + } + + public long getFirstClubSubscription() { + return firstClubSubscription; + } + + public void setFirstClubSubscription(long firstClubSubscription) { + this.firstClubSubscription = firstClubSubscription; + } + + public long getClubExpiration() { + return clubExpiration; + } + + public void setClubExpiration(long clubExpiration) { + this.clubExpiration = clubExpiration; + } + + public boolean doesAllowStalking() { + return allowStalking; + } + + public void setAllowStalking(boolean allowStalking) { + this.allowStalking = allowStalking; + } + + public boolean getSoundSetting() { + return soundEnabled; + } + + public void setSoundSetting(boolean soundEnabled) { + this.soundEnabled = soundEnabled; + } + + public long getNextHandout() { + return nextHandout; + } + + public void setNextHandout(long nextHandout) { + this.nextHandout = nextHandout; + } + + public boolean isAllowFriendRequests() { + return allowFriendRequests; + } + + public String getSsoTicket() { + return ssoTicket; + } + + public void setSsoTicket(String ssoTicket) { + this.ssoTicket = ssoTicket; + } + + public String getMachineId() { + return machineId; + } + + public void setMachineId(String machineId) { + this.machineId = machineId; + } + + public boolean canSelectRoom() { + return this.selectedRoomId == 0; + } + + public boolean hasSelectedRoom() { + return this.selectedRoomId > 0; + } + + public int getSelectedRoomId() { + return selectedRoomId; + } + + public void setSelectedRoomId(int selectedRoomId) { + this.selectedRoomId = selectedRoomId; + } + + public int getDailyRespectPoints() { + return dailyRespectPoints; + } + + public void setDailyRespectPoints(int dailyRespectPoints) { + this.dailyRespectPoints = dailyRespectPoints; + } + + public String getRespectDay() { + return respectDay; + } + + public void setRespectDay(String respectDay) { + this.respectDay = respectDay; + } + + public int getRespectPoints() { + return respectPoints; + } + + public void setRespectPoints(int respectPoints) { + this.respectPoints = respectPoints; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public boolean isOnline() { + if (this.isOnlineStatusVisible()) { + return isOnline; + } + + return false; + } + + public String getFormattedLastOnline() { + return DateUtil.getDate(this.lastOnline, DateUtil.SHORT_DATE); + } + + public String formatLastOnline(String format) { + return DateUtil.getDate(this.lastOnline, format); + } + + public String formatJoinDate(String format) { + return DateUtil.getDate(this.joinDate, format); + } + + public String getCreatedAt() { + return createdAt.split(" ")[0]; + } + + public long getJoinDate() { + return joinDate; + } + + public long getTotemEffectExpiry() { + return totemEffectExpiry; + } + + public void setTotemEffectExpiry(long totemEffectExpiry) { + this.totemEffectExpiry = totemEffectExpiry; + } + + public int getRespectGiven() { + return respectGiven; + } + + public void setRespectGiven(int respectGiven) { + this.respectGiven = respectGiven; + } + + public boolean isOnlineStatusVisible() { + return onlineStatusVisible; + } + + public void setOnlineStatusVisible(boolean onlineStatusVisible) { + this.onlineStatusVisible = onlineStatusVisible; + } + + public boolean isProfileVisible() { + return profileVisible; + } + + public boolean isWordFilterEnabled() { + return wordFilterEnabled; + } + + public boolean isTradeEnabled() { + return tradeEnabled; + } + + public void setTradeEnabled(boolean tradeEnabled) { + this.tradeEnabled = tradeEnabled; + } + + public boolean isCreditsEligible() { + return isCreditsEligible; + } + + public void setCreditsEligible(boolean creditsEligible) { + isCreditsEligible = creditsEligible; + } + + public long getTradeBanExpiration() { + return tradeBanExpiration; + } + + public void setTradeBanExpiration(long tradeBanExpiration) { + this.tradeBanExpiration = tradeBanExpiration; + } + + public boolean isTradeBanned() { + if (this.tradeBanExpiration > 0) { + return this.tradeBanExpiration > DateUtil.getCurrentTimeSeconds(); + } + + return false; + } + + public int getFavouriteGroupId() { + return favouriteGroupId; + } + + public void setFavouriteGroupId(int favouriteGroupId) { + this.favouriteGroupId = favouriteGroupId; + } + + public GroupMember getGroupMember() { + Group group; + + if (this.groupMember == null) { + if (this.getFavouriteGroupId() > 0) { + var player = PlayerManager.getInstance().getPlayerById(this.id); + + if (player == null) { + group = GroupDao.getGroup(this.favouriteGroupId); + } + else { + group = player.getJoinedGroups().stream().filter(x -> x.getId() == this.favouriteGroupId).findFirst().orElse(null); + } + + if (group == null) { + this.favouriteGroupId = 0; + PlayerDao.saveFavouriteGroup(this.id, 0); + } else if (group.getOwnerId() == this.id) { + return new GroupMember(this.id, this.favouriteGroupId, false, 3); + } + + this.groupMember = GroupMemberDao.getMember(this.favouriteGroupId, this.id); + } + } + + return this.groupMember; + } + + public String getPreviousRespectDay() { + return previousRespectDay; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerManager.java new file mode 100644 index 0000000..be06e2a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerManager.java @@ -0,0 +1,342 @@ +package org.alexdev.havana.game.player; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.openinghours.INFO_HOTEL_CLOSED; +import org.alexdev.havana.messages.outgoing.openinghours.INFO_HOTEL_CLOSING; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.time.Duration; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +public class PlayerManager { + private static PlayerManager instance; + private List players; + + private long dailyPlayerPeak; + private long allTimePlayerPeak; + + private boolean isMaintenanceShutdown; + private Duration maintenanceAt; + + private ScheduledFuture shutdownTimeout; + + public PlayerManager() { + this.players = new CopyOnWriteArrayList<>(); + this.dailyPlayerPeak = GameConfiguration.getInstance().getInteger("players.daily.peak"); + this.allTimePlayerPeak = GameConfiguration.getInstance().getInteger("players.all.time.peak"); + } + + /** + * Checks and sets the daily player peak. + */ + public void checkPlayerPeak() { + var playerSize = PlayerManager.getInstance().getPlayers().size(); + + if (!GameConfiguration.getInstance().getString("players.daily.peak.date").equals(DateUtil.getCurrentDate(DateUtil.SHORT_DATE))) { + this.dailyPlayerPeak = PlayerManager.getInstance().getPlayers().size(); + + GameConfiguration.getInstance().updateSetting("players.daily.peak", String.valueOf(this.dailyPlayerPeak)); + GameConfiguration.getInstance().updateSetting("players.daily.peak.date", DateUtil.getCurrentDate(DateUtil.SHORT_DATE)); + } else { + int newSize = PlayerManager.getInstance().getPlayers().size(); + + if (newSize > this.dailyPlayerPeak) { + this.dailyPlayerPeak = newSize; + GameConfiguration.getInstance().updateSetting("players.daily.peak", String.valueOf(this.dailyPlayerPeak)); + } + } + + if (playerSize > this.allTimePlayerPeak) { + this.allTimePlayerPeak = playerSize; + GameConfiguration.getInstance().updateSetting("players.all.time.peak", String.valueOf(this.allTimePlayerPeak)); + } + } + + /** + * Get a player by user id. + * + * @param userId the user id to get with + * @return the player, else null if not found + */ + public Player getPlayerById(int userId) { + for (Player player : this.players) { + if (player.getDetails().getId() == userId) { + return player; + } + } + + return null; + } + + /** + * Get the player by name. + * + * @param username the name to get with + * @return the player, else null if not found + */ + public Player getPlayerByName(String username) { + for (Player player : this.players) { + if (player.getDetails().getName().equalsIgnoreCase(username)) { + return player; + } + } + + return null; + } + + /** + * Get a player data by user id. + * + * @param userId the user id to get with + * @return the player data, else if offline will query the database + */ + public PlayerDetails getPlayerData(int userId) { + Player player = getPlayerById(userId); + + if (player != null) { + return player.getDetails(); + } + + return PlayerDao.getDetails(userId); + } + + /** + * Get a player data by username. + * + * @param username the username to get with + * @return the player data, else if offline will query the database + */ + public PlayerDetails getPlayerData(String username) { + Player player = getPlayerByName(username); + + if (player != null) { + return player.getDetails(); + } + + return PlayerDao.getDetails(username); + } + + /** + * Remove player from map, this is handled automatically when + * the socket is closed. + * + * @param player the player to remove + */ + public void removePlayer(Player player) { + if (player.getDetails().getName() == null) { + return; + } + + this.players.remove(player); + } + + /** + * Remove player from map, this is handled automatically when + * the player is logged in. + * + * @param player the player to remove + */ + public void addPlayer(Player player) { + if (player.getDetails() == null) { + return; + } + + this.players.add(player); + } + + /** + * Disconnect a session by user id. + * + * @param userId the user id of the session to disconnect + */ + public void disconnectSession(int userId) { + for (Player player : this.players) { + if (player.getDetails().getId() == userId) { + player.kickFromServer(); + } + } + } + + /** + * Get if the player is online. + * + * @param userId the id of the user to check + * @return true, if successful + */ + public boolean isPlayerOnline(int userId) { + for (Player player : this.players) { + if (player.getDetails().getId() != userId) { + continue; + } + + if (!player.getDetails().isOnlineStatusVisible()) { + return false; + } + + return true; + } + + return false; + } + + /** + * Start shutdown timeout + * + * @param maintenanceAt when to shutdown + */ + public void planMaintenance(Duration maintenanceAt) { + // Interrupt current timeout to set new maintenance countdown + if (this.shutdownTimeout != null) { + this.shutdownTimeout.cancel(true); + } + + // Start timeout that will trigger the shutdown hook + this.shutdownTimeout = GameScheduler.getInstance().getService().schedule(() -> { + System.exit(0); + }, maintenanceAt.toMillis(), TimeUnit.MILLISECONDS); + + // Let other Havana components know we are in maintenance mode + this.isMaintenanceShutdown = true; + this.maintenanceAt = maintenanceAt; + + // Notify all users of shutdown timeout + for (Player p : this.players) { + p.send(new INFO_HOTEL_CLOSING(maintenanceAt)); + } + } + + /** + * Cancel shutdown timeout + */ + public void cancelMaintenance() { + // Cancel current timeout + this.shutdownTimeout.cancel(true); + + // Let other Havana components know we are no longer in maintenance mode + this.isMaintenanceShutdown = false; + + // Notify all users maintenance has been cancelled + for (Player p : this.players) { + p.send(new ALERT(TextsManager.getInstance().getValue("maintenance_cancelled"))); + } + } + + public void sendAll(MessageComposer composer) { + for (Player p : this.players) { + p.send(composer); + } + } + + /** + * Close and dispose all users. + */ + public void dispose() { + for (Player p : new ArrayList<>(this.players)) { + // Send fancy maintenance alert if we're shutting down + p.send(new INFO_HOTEL_CLOSED(LocalTime.now(), false)); + + // Now disconnect the player + p.kickFromServer(); + } + } + + /** + * Get the collection of players on the server. + * + * @return the collection of players + */ + public List getPlayers() { + return this.players; + } + + /** + * Get the collection of active players on the server. + * + * @return the collection of active players + */ + public Collection getActivePlayers() { + List activePlayers = new ArrayList<>(); + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (player.getRoomUser().getRoom() == null) { + continue; + } + + if (player.getRoomUser().isSleeping()) { + continue; + } + + activePlayers.add(player); + } + + return activePlayers; + } + + /** + * Get daily player peak + * + * @return the daily player peak + */ + public long getDailyPlayerPeak() { + return this.dailyPlayerPeak; + } + + /** + * Get all time player peak. + * + * @return all time player peak + */ + public long getAllTimePlayerPeak() { + return allTimePlayerPeak; + } + + /** + * Get duration until shutdown + * + * @return duration until shutdown + */ + public Duration getMaintenanceAt() { + return this.maintenanceAt; + } + + /** + * Get maintenance shutdown status + * + * @return the maintenance shutdown status + */ + public boolean isMaintenance() { + return this.isMaintenanceShutdown; + } + + /** + * Gets the instance + * + * @return the instance + */ + public static PlayerManager getInstance() { + if (instance == null) { + instance = new PlayerManager(); + } + + return instance; + } + + public void showMutedAlert(Player player) { + long uptime = (player.getStatisticManager().getLongValue(PlayerStatistic.MUTE_EXPIRES_AT) - DateUtil.getCurrentTimeSeconds()) * 1000; + long days = (uptime / (1000 * 60 * 60 * 24)); + long hours = (uptime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); + + player.send(new ALERT("You are currently muted. Your mute will expire in " + days + " day(s) and " + hours + " hours(s)")); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerRank.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerRank.java new file mode 100644 index 0000000..68a5f67 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/PlayerRank.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.player; + +public enum PlayerRank { + RANKLESS(0), + NORMAL(1), + GUIDE(2), + HOBBA(3), + SUPERHOBBA(4), + MODERATOR(5), + COMMUNITY_MANAGER(6), + HOTEL_MANAGER(7), + ADMINISTRATOR(8); + + private final int rankId; + + PlayerRank(int rankId) { + this.rankId = rankId; + } + + public String getName() { + return this.name(); + } + + public int getRankId() { + return this.rankId; + } + + public static PlayerRank getRankForId(int rankId) { + for (PlayerRank rank : PlayerRank.values()) { + if (rank.getRankId() == rankId) { + return rank; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/Wardrobe.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/Wardrobe.java new file mode 100644 index 0000000..a30daa3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/Wardrobe.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.player; + +public class Wardrobe { + private int slotId; + private String sex; + private String figure; + + public Wardrobe(int slotId, String sex, String figure) { + this.slotId = slotId; + this.sex = sex; + this.figure = figure; + } + + public int getSlotId() { + return slotId; + } + + public String getSex() { + return sex; + } + + public String getFigure() { + return figure; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/GuidingData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/GuidingData.java new file mode 100644 index 0000000..107ecd1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/GuidingData.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.player.guides; + +public class GuidingData { + private int userId; + private String username; + private long lastOnline; + private long timeOnline; + + public GuidingData(int userId, String username, long lastOnline, long timeOnline) { + this.userId = userId; + this.username = username; + this.lastOnline = lastOnline; + this.timeOnline = timeOnline; + } + + public int getUserId() { + return userId; + } + + public String getUsername() { + return username; + } + + public long getLastOnline() { + return lastOnline; + } + + public long getTimeOnline() { + return timeOnline; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/PlayerGuideManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/PlayerGuideManager.java new file mode 100644 index 0000000..372b810 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/guides/PlayerGuideManager.java @@ -0,0 +1,314 @@ +package org.alexdev.havana.game.player.guides; + +import org.alexdev.havana.dao.mysql.GuideDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.guides.INVITATION; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class PlayerGuideManager { + private Player player; + private boolean hasTutorial; + private boolean isGuide; + private boolean isGuidable; + private boolean isGuidedBy; + private boolean isWaitingForInvitations; + private boolean isWaitingForGuide; + + private boolean canUseTutorial; + private boolean blockTutorial; + private boolean cancelTutorial; + + private List guiding; + private List invites; + private List invited; + + private int invitedBy; + private int startedForWaitingGuidesTime; + + public PlayerGuideManager(Player player) { + this.player = player; + this.guiding = new CopyOnWriteArrayList<>(); + this.invites = new CopyOnWriteArrayList<>(); + this.invited = new CopyOnWriteArrayList<>(); + } + + /** + * Add a guide invite from newbie. + * + * @param userId the user id from + * @param username the username from + */ + public void addInvite(Integer userId, String username) { + if (this.invites.contains(userId)) { + return; + } + + this.player.send(new INVITATION(userId, username)); + this.invites.add(userId); + } + + /** + * Get if the guide contains an invite from this user id + * + * @param id the user id to check + * @return true, if successful + */ + public boolean hasInvite(int id) { + return this.invites.contains(id); + } + + /** + * Remove user id who invited the user + * + * @param userId the user id + */ + public void removeInvite(int userId) { + this.invites.remove(Integer.valueOf(userId)); + } + + /** + * Get if this user was invitied by a newb + * + * @param id the user id to check + * @return true, if successful + */ + public boolean hasInvited(int id) { + return this.invited.contains(id); + } + + /** + * Remove user id who was invited + * + * @param userId the user id + */ + public void removeInvited(int userId) { + this.invited.remove(Integer.valueOf(userId)); + } + + /** + * Add a guide invited by newbie + * + * @param userId the user id from + */ + public void addInvited(Integer userId) { + if (this.invited.contains(userId)) { + return; + } + + this.invited.add(userId); + } + + /** + * Get whether the player is a guide. + * + * @return true, if successful + */ + public boolean isGuide() { + return isGuide; + } + + /** + * Set whether the player is guide. + * + * @param guide the flag on whether player is guide or not + */ + public void setGuide(boolean guide) { + isGuide = guide; + } + + /** + * Get the player who may or may not be a guide. + * + * @return the player + */ + public Player getPlayer() { + return player; + } + + /** + * Get is waiting for invitations. + * + * @return the value whether they're waiting for not + */ + public boolean isWaitingForInvitations() { + return isWaitingForInvitations; + } + + /** + * Set is waiting for invitations. + * + * @param waitingForInvitations the value whether they're watiting for not + */ + public void setWaitingForInvitations(boolean waitingForInvitations) { + isWaitingForInvitations = waitingForInvitations; + } + + /** + * Set if the user is waiting for a guide to pickup invite. + * + * @return true, if successful + */ + public boolean isWaitingForGuide() { + return isWaitingForGuide; + } + + /** + * Set if a player is waiting for a guide to pick up. + * + * @param waitingForGuide true, if successful + */ + public void setWaitingForGuide(boolean waitingForGuide) { + isWaitingForGuide = waitingForGuide; + } + + /** + * Get whether the player is guidable + * @return true, if successful + */ + public boolean isGuidable() { + return isGuidable; + } + + /** + * Set whether the player is guidable. + * + * @param guidable true, if successful + */ + public void setGuidable(boolean guidable) { + isGuidable = guidable; + } + + /** + * Get the list of users the user is currently guiding. + * + * @return the users the player is guiding + */ + public List getGuiding() { + return guiding; + } + + /** + * Get if the user uses the tutorial + * + * @return true, if successful + */ + public boolean hasTutorial() { + return hasTutorial; + } + + /** + * Set if the user has tutorial. + * + * @param hasTutorial true, if successful + */ + public void setHasTutorial(boolean hasTutorial) { + this.hasTutorial = hasTutorial; + } + + /** + * Get if the player can use tutorial. + * + * @return true, if successful + */ + public boolean canUseTutorial() { + return canUseTutorial; + } + + /** + * Set if the player can use tutorial. + * + * @param canUseTutorial the flag to set + */ + public void setCanUseTutorial(boolean canUseTutorial) { + this.canUseTutorial = canUseTutorial; + } + + /** + * Get if the player blocks tutorial + * + * @return true, if successful + */ + public boolean isBlockingTutorial() { + return blockTutorial; + } + + /** + * Set if the player blocks tutorial. + * + * @param blockTutorial the flag to set + */ + public void setBlockingTutorial(boolean blockTutorial) { + this.blockTutorial = blockTutorial; + } + + /** + * Get if the player has cancelled the tutorial + * + * @return true, if successful + */ + public boolean isCancelTutorial() { + return cancelTutorial; + } + + /** + * Set if the player cancelled tutorial. + * + * @param cancelTutorial the flag to set + */ + public void setCancelTutorial(boolean cancelTutorial) { + this.cancelTutorial = cancelTutorial; + } + + /** + * Get the list of user ids who have invited the guide. + * + * @return the list of users + */ + public List getInvites() { + return invites; + } + + /** + * Get the list of users this newb has invited. + * + * @return the list of users invited + */ + public List getInvited() { + return invited; + } + + /** + * Get the user id who last invited the tutor. + * + * @return the user id + */ + public int getInvitedBy() { + return invitedBy; + } + + /** + * Set the user id who invited the tutor + * + * @param invitedBy the user id + */ + public void setInvitedBy(int invitedBy) { + this.invitedBy = invitedBy; + } + + /** + * Refresh the guiding users. + */ + public void refreshGuidingUsers() { + this.guiding = GuideDao.getGuidedBy(this.player.getDetails().getId()); + } + + public int getStartedForWaitingGuidesTime() { + return startedForWaitingGuidesTime; + } + + public void setStartedForWaitingGuidesTime(int startedForWaitingGuidesTime) { + this.startedForWaitingGuidesTime = startedForWaitingGuidesTime; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatistic.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatistic.java new file mode 100644 index 0000000..070efba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatistic.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.player.statistics; + +public enum PlayerStatistic { + DAYS_LOGGED_IN_ROW("days_logged_in_row"), + GUESTBOOK_UNREAD_MESSAGES("guestbook_unread_messages"), + ONLINE_TIME("online_time"), + BATTLEBALL_POINTS_ALL_TIME("battleball_score_all_time"), + SNOWSTORM_POINTS_ALL_TIME("snowstorm_score_all_time"), + WOBBLE_SQUABBLE_POINTS_ALL_TIME("wobble_squabble_score_all_time"), + BATTLEBALL_MONTHLY_SCORES("battleball_score_month"), + SNOWSTORM_MONTHLY_SCORES("snowstorm_score_month"), + WOBBLE_SQUABBLE_MONTHLY_SCORES("wobble_squabble_score_month"), + XP_EARNED_MONTH("xp_earned_month"), + XP_ALL_TIME("xp_all_time"), + BATTLEBALL_GAMES_WON("battleball_games_won"), + SNOWSTORM_GAMES_WON("snowstorm_games_won"), + WOBBLE_SQUABBLE_GAMES_WON("wobble_squabble_games_won"), + GUIDED_BY("guided_by"), + HAS_TUTORIAL("has_tutorial"), + IS_GUIDABLE("is_guidable"), + PLAYERS_GUIDED("players_guided"), + NEWBIE_ROOM_LAYOUT("newbie_room_layout"), + NEWBIE_GIFT("newbie_gift"), + NEWBIE_GIFT_TIME("newbie_gift_time"), + GIFTS_DUE("gifts_due"), + CLUB_GIFT_DUE("club_gift_due", true), + CLUB_MEMBER_TIME("club_member_time"), + CLUB_MEMBER_TIME_UPDATED("club_member_time_updated"), + ACTIVATION_CODE("activation_code"), + FORGOT_PASSWORD_CODE("forgot_password_code"), + FORGOT_RECOVERY_REQUESTED_TIME("forgot_recovery_requested_time"), + MUTE_EXPIRES_AT("mute_expires_at"); + + private final String column; + private final boolean isDateTime; + + PlayerStatistic(String column) { + this.column = column; + this.isDateTime = false; + } + + PlayerStatistic(String column, boolean isDateTime) { + this.column = column; + this.isDateTime = isDateTime; + } + + public boolean isDateTime() { + return isDateTime; + } + + public String getColumn() { + return column; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatisticManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatisticManager.java new file mode 100644 index 0000000..6204076 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/player/statistics/PlayerStatisticManager.java @@ -0,0 +1,118 @@ +package org.alexdev.havana.game.player.statistics; + +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; + +import java.util.HashMap; +import java.util.Map; + +public class PlayerStatisticManager { + private final int userId; + private Map values; + + public PlayerStatisticManager(int userId, Map values) { + this.userId = userId; + this.values = values; + } + + /** + * Reload user statistics. + */ + public void reload() { + this.values = PlayerStatisticsDao.getStatistics(this.userId); + } + + /** + * Get the int value by player statistic key + * @param playerStatistic the key + * @return the value + */ + public int getIntValue(PlayerStatistic playerStatistic) { + if (this.values.containsKey(playerStatistic)) { + return Integer.parseInt(this.values.get(playerStatistic)); + } + + return 0; + } + + /** + * Get the long value by player statistic key + * @param playerStatistic the key + * @return the value + */ + public long getLongValue(PlayerStatistic playerStatistic) { + if (this.values.containsKey(playerStatistic)) { + return Long.parseLong(this.values.get(playerStatistic)); + } + + return 0; + } + + /** + * Set the value of the statistic. + * + * @param statistic the statistic + * @param value the value + */ + public void setLongValue(PlayerStatistic statistic, long value) { + if (!this.values.containsKey(statistic)) { + return; + } + + this.values.put(statistic, String.valueOf(value)); + PlayerStatisticsDao.updateStatistic(this.userId, statistic, this.values.get(statistic)); + } + + /** + * Set the value of the statistic. + * + * @param statistic the statistic + * @param value the value + */ + public void setValue(PlayerStatistic statistic, String value) { + if (!this.values.containsKey(statistic)) { + return; + } + + this.values.put(statistic, value); + PlayerStatisticsDao.updateStatistic(this.userId, statistic, this.values.get(statistic)); + } + + /** + * Increment the value of the statistic. + * + * @param statistic the statistic + */ + public void incrementValue(PlayerStatistic statistic, int value) { + if (!this.values.containsKey(statistic)) { + return; + } + + this.values.put(statistic, String.valueOf(this.getIntValue(statistic) + value)); + PlayerStatisticsDao.updateStatistic(this.userId, statistic, this.values.get(statistic)); + } + + /** + * Set the value of the statistic. + * + * @param statisticMap the statistic + */ + public void setValues(int userId, HashMap statisticMap) { + for (var statistic : statisticMap.entrySet()) { + if (this.values.containsKey(statistic.getKey())) { + this.values.put(statistic.getKey(), statistic.getValue()); + } + } + + PlayerStatisticsDao.updateStatistics(userId, statisticMap); + } + + /** + * Get string value. + * + * @param value the statistic + * @return the string + */ + public String getValue(PlayerStatistic value) { + return this.values.get(value); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/Room.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/Room.java new file mode 100644 index 0000000..72334e0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/Room.java @@ -0,0 +1,533 @@ +package org.alexdev.havana.game.room; + +import org.alexdev.havana.dao.mysql.PetDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.dao.mysql.RoomVoteDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.managers.*; +import org.alexdev.havana.game.room.mapping.RoomMapping; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.game.room.models.RoomModelManager; +import org.alexdev.havana.messages.outgoing.messenger.ROOMFORWARD; +import org.alexdev.havana.messages.outgoing.rooms.UPDATE_VOTES; +import org.alexdev.havana.messages.outgoing.rooms.moderation.YOUARECONTROLLER; +import org.alexdev.havana.messages.outgoing.rooms.moderation.YOUAROWNER; +import org.alexdev.havana.messages.outgoing.rooms.moderation.YOUNOTCONTROLLER; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.schedule.FutureRunnable; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.TimeUnit; + +public class Room { + private RoomModel roomModel; + private RoomData roomData; + private RoomMapping roomMapping; + private RoomEntityManager roomEntityManager; + private RoomItemManager roomItemManager; + private RoomTaskManager roomTaskManager; + private RoomIdolManager roomIdolManager; + private FutureRunnable disposeRunnable; + + private boolean isActive; + private boolean isGameArena; + private int followRedirect; + + private List entities; + private List items; + private List rights; + private List votes; + + public Room() { + this.roomData = new RoomData(this); + this.roomEntityManager = new RoomEntityManager(this); + this.roomItemManager = new RoomItemManager(this); + this.roomTaskManager = new RoomTaskManager(this); + this.roomMapping = new RoomMapping(this); + this.roomIdolManager = new RoomIdolManager(this); + this.entities = new CopyOnWriteArrayList<>(); + this.items = new CopyOnWriteArrayList<>(); + this.rights = new CopyOnWriteArrayList<>(); + this.votes = new CopyOnWriteArrayList<>(); + } + + /** + * Send a packet to all players. + * + * @param composer the message composer packet + */ + public void send(MessageComposer composer) { + this.send(composer, List.of()); + } + + /** + * Send a packet to all players but excludes to certain players when given a list + * + * @param composer the message composer packet + */ + public void send(MessageComposer composer, List playerList) { + for (Player player : this.roomEntityManager.getPlayers()) { + if (playerList.contains(player)) { + continue; + } + + player.send(composer); + } + } + + /** + * Checks if the user id is the owner of the room. + * + * @param ownerId the owner id to check for + * @return true, if successful + */ + public boolean isOwner(int ownerId) { + return this.roomData.getOwnerId() == ownerId; + } + + /** + * Get if the player has rights, include super users is enabled to true + * + * @param userId the user id to check if they have rights + * @return true, if successful + */ + public boolean hasRights(int userId) { + return this.hasRights(userId, true); + } + + /** + * Get if the player has rights. + * + * @param userId the user id to check if they have rights + * @param includeSuperUsers check if the room allows all users rights or not + * @return true, if successful + */ + public boolean hasRights(int userId, boolean includeSuperUsers) { + if (this.isPublicRoom()) { + return false; + } + + if (this.isOwner(userId)) { + return true; + } + + if (includeSuperUsers) { + if (this.roomData.allowSuperUsers()) { + return true; + } + } + + if (this.rights.contains(userId)) { + return true; + } + + return false; + } + + /** + * Check if this certain user has voted + * + * @param player the user to check + * @return boolean indicating if the user has voted + */ + public boolean hasVoted(Player player) { + int minsSinceJoined = (int) Math.floor(TimeUnit.SECONDS.toMinutes((long) (DateUtil.getCurrentTimeSeconds() - Math.floor(player.getDetails().getJoinDate())))); + + if (minsSinceJoined <= 60) { + return true; + } + + if (this.votes.stream().anyMatch(vote -> vote.getUserId() == player.getDetails().getId())) { + return true; + } + + if (this.votes.stream().anyMatch(vote -> !vote.getMachineId().isBlank() && !player.getDetails().getMachineId().isBlank() && vote.getMachineId().equalsIgnoreCase(player.getDetails().getMachineId()))) { + return true; + } + + var userIpHistory = PlayerDao.getIpAddresses(player.getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT); + + for (var voteData : this.votes) { + if (StringUtil.hasValue(userIpHistory, voteData.getIpAddresses()) || + StringUtil.hasValue(voteData.getIpAddresses(), userIpHistory)) { + return true; + } + } + + return false; + } + + /** + * Add vote to this room + * + * @param answer chosen vote + * @param player user that is voting + */ + public void addVote(int answer, Player player) { + var userIpHistory = PlayerDao.getIpAddresses(player.getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT); + this.votes.add(new VoteData(player.getDetails().getId(), answer, String.join(",", userIpHistory), player.getDetails().getMachineId())); + + int sum = this.votes.stream().mapToInt(VoteData::getVote).sum(); + + if (sum < 0) { + sum = 0; + } + + this.roomData.setRating(sum); + + RoomDao.saveRating(this.getId(), sum); + + for (Player p : this.roomEntityManager.getPlayers()) { + boolean voted = this.hasVoted(p); + + if (voted || this.isOwner(p.getDetails().getId())) { + p.send(new UPDATE_VOTES(this.roomData.getRating())); + } + } + + RoomVoteDao.vote(player.getDetails().getId(), this.roomData.getId(), answer); + } + + /** + * Refresh the room rights for the user. + * + * @param player the player to refresh the rights for + */ + public void refreshRights(Player player, boolean sendStatus) { + String rightsValue = ""; + + if (isOwner(player.getDetails().getId()) || player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + player.send(new YOUAROWNER()); + rightsValue = "useradmin"; + } + + if (hasRights(player.getDetails().getId()) || player.hasFuse(Fuseright.MOD)) { + player.send(new YOUARECONTROLLER()); + } else { + player.send(new YOUNOTCONTROLLER()); + } + + player.getRoomUser().removeStatus(StatusType.FLAT_CONTROL); + + if (hasRights(player.getDetails().getId()) || isOwner(player.getDetails().getId()) || player.hasFuse(Fuseright.MOD)) { + player.getRoomUser().setStatus(StatusType.FLAT_CONTROL, rightsValue); + } + + if (sendStatus) { + player.getRoomUser().setNeedsUpdate(true); + } + } + + /** + * Send forward packet to user. + * + * @param player the packet for the player + */ + public void forward(Player player, boolean ignoreRedirection) { + int roomId = this.getId(); + boolean isPublic = this.isPublicRoom(); + + // If you tried to follow someone in arena, send them to lobby. + if (this.getData().isGameArena()) { + String modelType = this.getData().getGameLobby(); + roomId = RoomManager.getInstance().getRoomByModel(modelType).getId(); + isPublic = true; + } + + if (isPublic) { // Some weird offset shit required... + if (!ignoreRedirection) { + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room.getData().isNavigatorHide()) { + roomId = room.getFollowRedirect(); + } + } + } + + if (isPublic) { + roomId = roomId + RoomManager.PUBLIC_ROOM_OFFSET; + } + + player.send(new ROOMFORWARD(isPublic, roomId)); + } + + /** + * Try to dispose room, it will happen when there's no users + * in the room. + * + * @return if the room was successfully disposed + */ + public boolean tryDispose() { + Room room = this; + + if (this.roomEntityManager.getPlayers().size() > 0) { + return false; + } + + // If there's an existing dispose runnable, delete it. + if (this.disposeRunnable != null) { + this.disposeRunnable.cancelFuture(); + this.disposeRunnable = null; + } + + // Add 60 second delay when disposing rooms so that there's less stress if the room wants to be reloaded instantly after leaving. + this.disposeRunnable = new FutureRunnable() { + @Override + public void run() { + if (roomEntityManager.getPlayers().size() > 0) { + return; + } + + Event event = EventsManager.getInstance().getEventByRoomId(room.getId()); + + if (event != null) { + EventsManager.getInstance().removeEvent(event); + } + + roomItemManager.resetItemStates(); + roomEntityManager.getCounter().set(0); + + for (Pet pet : room.getEntityManager().getEntitiesByClass(Pet.class)) { + PetDao.saveCoordinates(pet.getDetails().getId(), + pet.getRoomUser().getPosition().getX(), + pet.getRoomUser().getPosition().getY(), + pet.getRoomUser().getPosition().getRotation()); + } + + isActive = false; + roomTaskManager.stopTasks(); + + items.clear(); + rights.clear(); + votes.clear(); + entities.clear(); + + RoomManager.getInstance().removeRoom(roomData.getId()); + } + }; + + int defaultSeconds = GameConfiguration.getInstance().getInteger("room.dispose.timer.seconds"); + + if (!GameConfiguration.getInstance().getBoolean("room.dispose.timer.enabled")) { + defaultSeconds = 0; + } + + // Schedule new dispose runnable + this.disposeRunnable.setFuture(GameScheduler.getInstance().getService().schedule(this.disposeRunnable, defaultSeconds, TimeUnit.SECONDS)); + return true; + } + + /** + * Get the entity manager for this room. + * + * @return the entity manager + */ + public RoomEntityManager getEntityManager() { + return this.roomEntityManager; + } + + /** + * Get the item manager for this room. + * + * @return the item manager + */ + public RoomItemManager getItemManager() { + return this.roomItemManager; + } + + /** + * Get the task manager for this room. + * + * @return the task manager + */ + public RoomTaskManager getTaskManager() { + return this.roomTaskManager; + } + + /** + * Get the mapping manager for this room. + * + * @return the room mapping manager + */ + public RoomMapping getMapping() { + return this.roomMapping; + } + + /** + * Get the room data for this room. + * + * @return the room data + */ + public RoomData getData() { + return this.roomData; + } + + /** + * Get the room model instance. + * + * @return the room model + */ + public RoomModel getModel() { + if (this.roomModel != null) { + return this.roomModel; + } + + return RoomModelManager.getInstance().getModel(this.roomData.getModel()); + } + + /** + * Set the room model, override the instance + */ + public void setRoomModel(RoomModel roomModel) { + this.roomModel = roomModel; + } + + /** + * Get the {@link NavigatorCategory} for this room. + * + * @return the navigator category + */ + public NavigatorCategory getCategory() { + return NavigatorManager.getInstance().getCategoryById(this.roomData.getCategoryId()); + } + + /** + * Get the entire list of entities in the room. + * + * @return the list of entities + */ + public List getEntities() { + return this.entities; + } + + /** + * Get the entire list of items in the room. + * + * @return the list of items + */ + public List getItems() { + return this.items; + } + + /** + * Get a list of user ids with room rights. + * + * @return the room rights list + */ + public List getRights() { + return this.rights; + } + + /** + * Get a map of votes + * + * @return map of votes + */ + public List getVotes() { + return this.votes; + } + + /** + * Get whether the room is a public room or not. + * + * @return true, if successful + */ + public boolean isPublicRoom() { + return this.roomData.getOwnerId() == 0; + } + + /** + * Check if this room is for club members only + * + * @return true, if successful + */ + public boolean isClubOnly() { + return this.getCategory().isClubOnly(); + } + + /** + * Get the room id of this room. + */ + public int getId() { + return this.roomData.getId(); + } + + /** + * Get if the room is active (has players in it). + * + * @return true, if successful + */ + public boolean isActive() { + return this.isActive; + } + + /** + * Set if the room is active, if it's the first player who joined, etc. + * + * @param active the active flag + */ + public void setActive(boolean active) { + this.isActive = active; + } + + /** + * Gets the main room id for room following, used for when someone follows + * a friend into a room which requires a user to walk to it from entering the main room. + * + * @return the follow redirect room id + */ + public int getFollowRedirect() { + return this.followRedirect; + } + + /** + * Set the follow redirect room id. + * + * @param followRedirect the room id to set + */ + public void setFollowRedirect(int followRedirect) { + this.followRedirect = followRedirect; + } + + /** + * Get whether this room is a game arena (a battleball or snowstorm room) + * + * @return true, if successful + */ + public boolean isGameArena() { + return isGameArena; + } + + /** + * Set whether this room is a game arena (a battleball or snowstorm room) + * + * @param gameArena the flag on whether this is a game arena or not + */ + public void setGameArena(boolean gameArena) { + isGameArena = gameArena; + } + + /** + * Get the room idol manager. + * + * @return the room idol manager + */ + public RoomIdolManager getIdolManager() { + return roomIdolManager; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomData.java new file mode 100644 index 0000000..0472bf7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomData.java @@ -0,0 +1,394 @@ +package org.alexdev.havana.game.room; + +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.game.room.models.RoomModelTriggerType; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.List; + +public class RoomData { + //private static final int SECONDS_UNTIL_UPDATE = 60; + private Room room; + private int id; + private int ownerId; + private String ownerName; + private int categoryId; + private String name; + private String description; + private String model; + private String ccts; + private int wallpaper; + private int floor; + private String landscape; + private boolean showOwnerName; + private boolean superUsers; + private boolean isGameArena; + private String gameLobby; + private int accessType; + private String password; + private int visitorsNow; + private int visitorsMax; + private int rating; + private Game game; + private String iconData; + private int groupId; + private boolean isHidden; + private boolean isRoomMuted; + private boolean isCustomRoom; + + public RoomData(Room room) { + this.room = room; + } + + public void fill(int id, String name, String description) { + this.id = id; + this.name = name; + this.description = description; + this.ownerId = 0; + this.ccts = ""; + this.model = ""; + this.ownerName = ""; + } + + public void fill(int id, int ownerId, String ownerName, int category, String name, String description, String model, String ccts, int wallpaper, int floor, String decoration, boolean showName, boolean superUsers, int accessType, String password, int visitorsNow, int visitorsMax, int rating, + String iconData, int groupId, boolean isHidden) { + this.id = id; + this.ownerId = ownerId; + this.ownerName = StringUtil.filterInput(ownerName, true);; + this.categoryId = category; + this.name = StringUtil.filterInput(name, true); + this.description = StringUtil.filterInput(description, true); + this.model = model; + this.ccts = ccts; + this.wallpaper = wallpaper; + this.floor = floor; + this.landscape = decoration; + this.showOwnerName = showName; + this.superUsers = superUsers; + this.accessType = accessType; + this.password = password; + this.visitorsNow = visitorsNow; + this.visitorsMax = visitorsMax; + this.rating = rating; + this.iconData = iconData; + this.groupId = groupId; + this.isHidden = isHidden; + + if (WalkwaysManager.getInstance().getWalkways().stream().anyMatch(walkway -> walkway.getRoomTargetId() == this.room.getId())) { + WalkwaysManager.getInstance().getWalkways().stream().filter(walkway -> walkway.getRoomTargetId() == this.room.getId()).findFirst().ifPresent(roomData -> this.room.setFollowRedirect(roomData.getRoomId())); + } + } + + public boolean isNavigatorHide() { + if (GameConfiguration.getInstance().getBoolean("navigator.show.hidden.rooms")) { + return false; + } + + return this.isHidden; + } + + public int getTotalVisitorsNow() { + var childRooms = RoomManager.getInstance().getChildRooms(this.room); + int totalVisitors = this.getVisitorsNow(); + + if (childRooms.size() > 0) { + for (Room room : childRooms) { + totalVisitors += room.getData().getVisitorsNow(); + } + } + + return totalVisitors; + } + + public int getTotalVisitorsMax() { + var childRooms = RoomManager.getInstance().getChildRooms(this.room); + int totalMaxVisitors = this.getVisitorsMax(); + + if (childRooms.size() > 0) { + for (Room room : childRooms) { + totalMaxVisitors += room.getData().getVisitorsMax(); + } + } + + return totalMaxVisitors; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getOwnerId() { + return ownerId; + } + + public void setOwnerId(int ownerId) { + this.ownerId = ownerId; + } + + public String getOwnerName() { + return ownerName; + } + + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + public int getCategoryId() { + return categoryId; + } + + public void setCategoryId(int categoryId) { + this.categoryId = categoryId; + } + + public String getName() { + return name; + } + + public String getPublicName() { + if (this.room.isPublicRoom()) { + if (this.name.startsWith("Upper Hallways")) { + return "Upper Hallways"; + } + + if (this.name.startsWith("Lower Hallways")) { + return "Lower Hallways"; + } + + if (this.name.startsWith("Club Massiva")) { + return "Club Massiva"; + } + + if (this.name.startsWith("The Chromide Club")) { + return "The Chromide Club"; + } + + if (this.ccts.equals("hh_room_gamehall,hh_games")) { + return "Cunning Fox Gamehall"; + } + } + + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getCcts() { + return ccts; + } + + public void setCcts(String ccts) { + this.ccts = ccts; + } + + public int getWallpaper() { + return wallpaper; + } + + public void setWallpaper(int wallpaper) { + this.wallpaper = wallpaper; + } + + public int getFloor() { + return floor; + } + + public void setFloor(int floor) { + this.floor = floor; + } + + public boolean showOwnerName() { + return showOwnerName; + } + + public void setShowOwnerName(boolean showName) { + this.showOwnerName = showName; + } + + public boolean allowSuperUsers() { + return superUsers; + } + + public void setSuperUsers(boolean superUsers) { + this.superUsers = superUsers; + } + + public String getAccessType() { + if (this.accessType == 2) { + return "password"; + } + + if (this.accessType == 1) { + return "closed"; + } + + return "open"; + } + + public int getAccessTypeId() { + return accessType; + } + + public void setAccessType(int accessType) { + this.accessType = accessType; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public int getVisitorsNow() { + //return this.visitorsNow; + int visitors = this.visitorsNow; + + if (this.room.getModel().getModelTrigger() != null && this.room.getModel().getModelTrigger() == RoomModelTriggerType.BATTLEBALL_LOBBY_TRIGGER) { + visitors += GameManager.getInstance().getStartedGamesByType(GameType.BATTLEBALL).stream().mapToInt(game -> game.getActivePlayers().size()).findFirst().orElse(0); + visitors += GameManager.getInstance().getStartedGamesByType(GameType.BATTLEBALL).stream().mapToInt(game -> game.getSpectators().size()).findFirst().orElse(0); + } + + if (this.room.getModel().getModelTrigger() != null && this.room.getModel().getModelTrigger() == RoomModelTriggerType.SNOWSTORM_LOBBY_TRIGGER) { + visitors += GameManager.getInstance().getStartedGamesByType(GameType.SNOWSTORM).stream().mapToInt(game -> game.getActivePlayers().size()).findFirst().orElse(0); + visitors += GameManager.getInstance().getStartedGamesByType(GameType.SNOWSTORM).stream().mapToInt(game -> game.getSpectators().size()).findFirst().orElse(0); + } + + return visitors; + } + + public void setVisitorsNow(int visitorsNow) { + this.visitorsNow = visitorsNow; + } + + public int getVisitorsMax() { + //return this.visitorsMax; + int visitors = this.visitorsMax; + + if (this.room.getModel().getModelTrigger() != null && this.room.getModel().getModelTrigger() == RoomModelTriggerType.BATTLEBALL_LOBBY_TRIGGER) { + visitors += GameManager.getInstance().getStartedGamesByType(GameType.BATTLEBALL).stream().mapToInt(game -> game.getMaxPlayers()).sum(); + } + + if (this.room.getModel().getModelTrigger() != null && this.room.getModel().getModelTrigger() == RoomModelTriggerType.SNOWSTORM_LOBBY_TRIGGER) { + visitors += GameManager.getInstance().getStartedGamesByType(GameType.SNOWSTORM).stream().mapToInt(game -> game.getMaxPlayers()).sum(); + } + + return visitors; + } + + public void setVisitorsMax(int visitorsMax) { + this.visitorsMax = visitorsMax; + } + + public int getRating(){ + return this.rating; + } + + public void setRating(int amount){ + this.rating = amount; + } + + public boolean isGameArena() { + return isGameArena; + } + + public void setGameArena(boolean gameArena) { + isGameArena = gameArena; + } + + public String getGameLobby() { + return gameLobby; + } + + public void setGameLobby(String gameLobby) { + this.gameLobby = gameLobby; + } + + public String getLandscape() { + return landscape; + } + + public void setLandscape(String landscape) { + this.landscape = landscape; + } + + public Game getGame() { + return game; + } + + public void setGame(Game game) { + this.game = game; + } + + public String getIconData() { + return iconData; + } + + public void setIconData(String iconData) { + this.iconData = iconData; + } + + public List getTags() { + return TagDao.getRoomTags(this.id); + } + + public int getGroupId() { + return groupId; + } + + public void setGroupId(int groupId) { + this.groupId = groupId; + } + + public boolean isHidden() { + return isHidden; + } + + public void setHidden(boolean hidden) { + isHidden = hidden; + } + + public boolean isRoomMuted() { + return isRoomMuted; + } + + public void setRoomMuted(boolean roomMuted) { + isRoomMuted = roomMuted; + } + + public boolean isCustomRoom() { + return isCustomRoom; + } + + public void setCustomRoom(boolean customRoom) { + isCustomRoom = customRoom; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomManager.java new file mode 100644 index 0000000..f2d9400 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomManager.java @@ -0,0 +1,340 @@ +package org.alexdev.havana.game.room; + +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysEntrance; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.game.room.managers.VoteData; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; + +public class RoomManager { + public static final int PUBLIC_ROOM_OFFSET = 1000; // Used as the "port" for the public room, in NAVNODEINFO and friend following + private static RoomManager instance = null; + private Map> roomEntryBadges; + + private ConcurrentHashMap roomMap; + + public RoomManager() { + this.roomMap = new ConcurrentHashMap<>(); + this.roomEntryBadges = BadgeDao.getRoomBadges(); + + int stoutRoomId = GameConfiguration.getInstance().getInteger("stout.room"); + + if (stoutRoomId > 0) { + if (!this.roomEntryBadges.containsKey(stoutRoomId)) { + this.roomEntryBadges.put(stoutRoomId, List.of("STOUT")); + } + } + } + + /** + * Get the child rooms by room id - for rooms with walkways. + * + * @param room the room to check + */ + public List getChildRooms(Room room) { + List roomList = new ArrayList<>(); + + if (room.isPublicRoom()) { + getSubRooms(room.getId(), roomList); + + for (Room r : roomList) { + getSubRooms(r.getId(), roomList); + } + } + + return roomList; + } + + /** + * Get child rooms, if they have a walkway. + * + * @param id the id to check + * @param roomList the list to add to + */ + private void getSubRooms(int id, List roomList) { + for (WalkwaysEntrance walkway : WalkwaysManager.getInstance().getWalkways()) { + if (walkway.getRoomTargetId() == id && walkway.getRoomId() != id) { + if (roomList.stream().noneMatch(r -> r.getId() == walkway.getRoomId()) && + roomList.stream().noneMatch(r -> r.getId() == walkway.getRoomTargetId())) { + roomList.add(this.getRoomById(walkway.getRoomId())); + } + } + } + } + + /** + * Find a room by its model. + * + * @param model the model to find the room by + * @return the room found, else null + */ + public Room getRoomByModel(String model) { + int roomId = RoomDao.getRoomIdByModel(model); + return getRoomById(roomId); + } + + /** + * Find a room by room id. + * + * @param roomId the id of the room to find + * @return the loaded room instance, if successful, else query the db + */ + public Room getRoomById(int roomId) { + if (this.roomMap.containsKey(roomId)) { + return this.roomMap.get(roomId); + } + + return RoomDao.getRoomById(roomId); + } + + /** + * Check whether the room is active. + * + * @param roomId the room id to check + * @return true, is successful + */ + public boolean hasRoom(int roomId) { + return this.roomMap.containsKey(roomId); + } + + /** + * Removes a room from the map by room id as key. + * + * @param roomId the id of the room to remove + */ + public void removeRoom(int roomId) { + this.roomMap.remove(roomId); + } + + /** + * Add a room instance to the map. + * + * @param room the instance of the room + */ + public void addRoom(Room room) { + if (room == null) { + return; + } + + if (this.roomMap.containsKey(room.getId())) { + return; + } + + this.roomMap.put(room.getData().getId(), room); + } + + /** + * Will sort a list of rooms returned by MySQL query and + * replace any with loaded rooms that it finds. + * + * @param queryRooms the list of rooms returned by query + * @return a possible list of actual loaded rooms + */ + public List replaceQueryRooms(List queryRooms) { + List roomList = new ArrayList<>(); + + for (Room room : queryRooms) { + if (this.roomMap.containsKey(room.getId())) { + roomList.add(this.getRoomById(room.getData().getId())); + } else { + roomList.add(room); + } + } + + return roomList; + } + + /** + * Get a list of favourite rooms by user id + * + * @param userId the user to get the favourites for + * @return the list of favourites + */ + public List getFavouriteRooms(int userId, boolean privateRoomsOnly) { + List roomIds = RoomFavouritesDao.getFavouriteRooms(userId, privateRoomsOnly); + Collections.reverse(roomIds); // To most recent favourite added at the top + + List rooms = new ArrayList<>(); + + for (int roomId : roomIds) { + Room room = this.getRoomById(roomId); + + if (room != null) { + rooms.add(room); + } + } + + return rooms; + } + + /** + * Performs a santiy check and recounts the given room, to make sure + * that have had their votes expired and is recounted properly. + * + * @param roomList the list of rooms to do the santiy check for + */ + public void ratingSantiyCheck(List roomList) { + for (Room room : roomList) { + if (room.isPublicRoom()) { + continue; + } + + if (room.getData().getVisitorsNow() > 0) { + continue; + } + + if (!(room.getData().getRating() > 0)) { + return; + } + + RoomVoteDao.removeExpiredVotes(room.getId()); + int newRating = RoomVoteDao.getRatings(room.getId()).stream().mapToInt(VoteData::getVote).sum(); + + if (newRating < 0) { + newRating = 0; + } + + if (newRating != room.getData().getRating()) { + RoomDao.saveRating(room.getId(), newRating); + } + } + } + + /** + * Sort the list of rooms by higher populated rooms appearing first. + * + * @param roomList the list of rooms to sort + */ + public void sortRooms(List roomList) { + Comparator roomComparator = Comparator + .comparing((Room room) -> room.getData().getTotalVisitorsNow()) + .thenComparing((Room room) -> room.getData().getRating()).reversed(); + + roomList.sort(roomComparator); + } + + /** + * Get the entire list of rooms. + * + * @return the collection of rooms + */ + public Collection getRooms() { + return this.roomMap.values(); + } + + /** + * Get the instance of {@link RoomManager} + * + * @return the instance + */ + public static RoomManager getInstance() { + if (instance == null) { + instance = new RoomManager(); + } + + return instance; + } + + /** + * Reload badges given upon room entry. + */ + public void reloadBadges() { + this.roomEntryBadges = BadgeDao.getRoomBadges(); + } + + /** + * Give badges to everybody in the room already. + */ + public void giveBadges() { + for (Room room : this.roomMap.values()) { + if (!this.roomEntryBadges.containsKey(room.getId())) { + continue; + } + + for (String badge : this.roomEntryBadges.get(room.getId())) { + for (Player player : room.getEntityManager().getPlayers()) { + player.getBadgeManager().tryAddBadge(badge, null); + } + } + } + } + + /** + * Get list of badges to receive on room entry + * @return + */ + public Map> getRoomEntryBadges() { + return roomEntryBadges; + } + + /** + * Get rooms by flash R34 mode + * @param mode + * @param player + * @return + */ + public List getRoomsByMode(int mode, Player player) { + List roomList = new ArrayList<>(); + + switch (mode) { + case 1: // Popular rooms + { + roomList = RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getRopularRooms(30, false)); + break; + } + case 2: // Highest score + { + roomList = RoomManager.getInstance().replaceQueryRooms(RoomDao.getHighestRatedRooms(30, 0)); + break; + } + case 5: // My rooms + { + roomList = RoomManager.getInstance().replaceQueryRooms(RoomDao.getRoomsByUserId(player.getDetails().getId())); + break; + } + case 6: // My favourites + { + roomList = RoomManager.getInstance().getFavouriteRooms(player.getDetails().getId(), true); + break; + } + case 7: // My visited rooms + { + roomList = RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getRecentlyVisited(30, player.getDetails().getId())); + break; + } + case 4: // Friends in rooms + { + for (MessengerUser messengerUser : player.getMessenger().getFriends().values()) { + if (!messengerUser.isOnline()) { + continue; + } + + var friend = PlayerManager.getInstance().getPlayerById(messengerUser.getUserId()); + var friendRoom = friend.getRoomUser().getRoom(); + + if (friendRoom != null && !friendRoom.isPublicRoom()) { + if (roomList.stream().noneMatch(room -> room.getId() == friendRoom.getId())) { + roomList.add(friendRoom); + } + } + } + + break; + } + case 3: // Friends rooms + { + roomList = RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getFriendRooms(30, player.getMessenger().getFriends().values().stream().map(x -> String.valueOf(x.getUserId())).collect(Collectors.toList()))); + break; + } + } + + return roomList; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomUserStatus.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomUserStatus.java new file mode 100644 index 0000000..5972e11 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/RoomUserStatus.java @@ -0,0 +1,95 @@ +package org.alexdev.havana.game.room; + +import org.alexdev.havana.game.room.enums.StatusType; + +public class RoomUserStatus { + private StatusType key; + private String value; + private StatusType action; + + private int secActionSwitch; + private int secSwitchLifetime; + private int lifetimeCountdown; + + private int actionCountdown; + private int actionSwitchCountdown; + + public RoomUserStatus(StatusType status, String value) { + this.key = status; + this.value = value; + + this.secSwitchLifetime = -1; + this.lifetimeCountdown = -1; + this.secActionSwitch = -1; + this.actionSwitchCountdown = -1; + this.actionCountdown = -1; + } + + public RoomUserStatus(StatusType status, String value, int secLifetime, StatusType action, int secActionSwitch, int secSwitchLifetime) { + this.key = status; + this.value = value; + this.action = action; + + this.secActionSwitch = secActionSwitch; + this.secSwitchLifetime = secSwitchLifetime; + + this.lifetimeCountdown = secLifetime; + this.actionCountdown = secActionSwitch; + this.actionSwitchCountdown = -1; + } + + /** + * Swap the key and action for timed statuses, used for drinking, etc. + */ + public void swapKeyAction() { + StatusType temp = this.key; + this.key = this.action; + this.action = temp; + } + + public StatusType getKey() { + return key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getSecActionSwitch() { + return secActionSwitch; + } + + + public int getSecSwitchLifetime() { + return secSwitchLifetime; + } + + + public int getLifetimeCountdown() { + return lifetimeCountdown; + } + + public void setLifetimeCountdown(int lifetimeCountdown) { + this.lifetimeCountdown = lifetimeCountdown; + } + + public int getActionCountdown() { + return actionCountdown; + } + + public void setActionCountdown(int actionCountdown) { + this.actionCountdown = actionCountdown; + } + + public int getActionSwitchCountdown() { + return actionSwitchCountdown; + } + + public void setActionSwitchCountdown(int actionSwitchCountdown) { + this.actionSwitchCountdown = actionSwitchCountdown; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomBot.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomBot.java new file mode 100644 index 0000000..3f288f0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomBot.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.game.room.entities; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.bot.Bot; +import org.alexdev.havana.game.entity.Entity; + +import java.util.concurrent.TimeUnit; + +public class RoomBot extends RoomEntity { + private final Bot bot; + + public RoomBot(Entity entity) { + super(entity); + this.bot = (Bot) entity; + } + + @Override + public void stopWalking() { + super.stopWalking(); + + if (this.bot.getBotData() != null) { + if (this.bot.getRoomUser().getPosition().getRotation() != this.bot.getBotData().getStartPosition().getRotation()) { + GameScheduler.getInstance().getService().schedule(() -> { + this.getPosition().setRotation(this.bot.getBotData().getStartPosition().getRotation()); + this.setNeedsUpdate(true); + }, 500, TimeUnit.MILLISECONDS); + } + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomEntity.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomEntity.java new file mode 100644 index 0000000..45a1086 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomEntity.java @@ -0,0 +1,1081 @@ +package org.alexdev.havana.game.room.entities; + +import org.alexdev.havana.game.bot.BotManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.types.BedInteractor; +import org.alexdev.havana.game.item.roller.RollingData; +import org.alexdev.havana.game.moderation.ChatManager; +import org.alexdev.havana.game.pathfinder.Pathfinder; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.pets.PetManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.RoomUserStatus; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.handlers.PublicRoomRedirection; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysEntrance; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.game.room.managers.RoomTimerManager; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.messages.outgoing.rooms.user.*; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.atomic.AtomicInteger; + +public abstract class RoomEntity { + private Entity entity; + private Position position; + private Position goal; + private Position nextPosition; + private Room room; + + private RollingData rollingData; + private RoomTimerManager timerManager; + + private Map statuses; + private LinkedList path; + + private BlockingQueue packetQueueAfterRoomLeave; + private CopyOnWriteArrayList chatMessages; + + private int instanceId; + private Item lastItemInteraction; + + private boolean isTeleporting; + private boolean isWalking; + private boolean isWalkingAllowed; + private boolean beingKicked; + private boolean needsUpdate; + private boolean enableWalkingOnStop; + + private int danceId; + private int effectId; + private boolean isSleeping; + + private AtomicInteger pixelAvailableTick; + + private boolean hasItemDebug; + + private int carryId; + private String carryValue; + + public RoomEntity(Entity entity) { + this.entity = entity; + this.statuses = new ConcurrentHashMap<>(); + this.path = new LinkedList<>(); + this.packetQueueAfterRoomLeave = new LinkedBlockingQueue(); + this.timerManager = new RoomTimerManager(this); + } + + public void reset() { + this.statuses.clear(); + this.path.clear(); + this.nextPosition = null; + this.goal = null; + this.room = null; + this.rollingData = null; + this.lastItemInteraction = null; + this.isWalking = false; + this.danceId = 0; + //this.effectId = 0; + this.isSleeping = false; + this.isWalkingAllowed = true; + this.beingKicked = false; + this.instanceId = -1; + this.carryId = 0; + this.carryValue = ""; + this.pixelAvailableTick = new AtomicInteger(GameConfiguration.getInstance().getInteger("pixels.max.tries.single.room.instance")); + this.chatMessages = new CopyOnWriteArrayList<>(); + this.timerManager.resetTimers(); + } + + /** + * Kick a user from the room. + * + * @param allowWalking whether the user can interrupt themselves walking towards the door + */ + public void kick(boolean allowWalking, boolean isBeingKicked) { + try { + if (this.entity.getType() == EntityType.PET) { + return; + } + + Position doorLocation = this.getRoom().getModel().getDoorLocation(); + + if (doorLocation == null) { + this.getRoom().getEntityManager().leaveRoom(this.entity, true); + return; + } + + // If we're standing in the door, immediately leave room + if (this.getPosition().equals(doorLocation)) { + this.getRoom().getEntityManager().leaveRoom(this.entity, true); + return; + } + + // Attempt to walk to the door + this.walkTo(doorLocation.getX(), doorLocation.getY()); + this.isWalkingAllowed = allowWalking; + this.beingKicked = isBeingKicked; + + // If user isn't walking, leave immediately + if (!this.isWalking) { + this.getRoom().getEntityManager().leaveRoom(this.entity, true); + } + } catch (Exception ex) { + this.getRoom().getEntityManager().leaveRoom(this.entity, true); + } + } + + /** + * Make a user walk to specific coordinates. The goal must be valid and reachable. + * + * @param X the X coordinates + * @param Y the Y coordinate + */ + public boolean walkTo(int X, int Y) { + if (this.room == null) { + return false; + } + + if (PublicRoomRedirection.isRedirected(this, X, Y)) { + return false; + } + + if (this.nextPosition != null) { + Position oldPosition = this.position.copy(); + + this.position.setX(this.nextPosition.getX()); + this.position.setY(this.nextPosition.getY()); + this.updateNewHeight(this.position); + + var currentItem = this.getCurrentItem(); + + if (currentItem != null) { + if (currentItem.getDefinition().getInteractionType().getTrigger() != null) { + currentItem.getDefinition().getInteractionType().getTrigger().onEntityStep(entity, this, currentItem, oldPosition); + } + } + + } + + RoomTile tile = this.room.getMapping().getTile(X, Y); + + if (tile == null) { + //System.out.println("User requested " + X + ", " + Y + " from " + this.position); + return false; + } + + + this.goal = new Position(X, Y); + //System.out.println("User requested " + this.goal + " from " + this.position + " with item " + (tile.getHighestItem() != null ? tile.getHighestItem().getDefinition().getSprite() : "NULL")); + + if (this.isTeleporting) { + this.warp(new Position(X, Y), true, true); + this.getRoom().send(new FIGURE_CHANGE(this.getInstanceId(), this.entity.getDetails())); + return true; + } + + if (!RoomTile.isValidTile(this.room, this.entity, this.goal)) { + return false; + } + + if (tile.getHighestItem() != null && tile.getHighestItem().hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) { + if (!BedInteractor.isValidPillowTile(tile.getHighestItem(), this.goal)) { + Position destination = BedInteractor.convertToPillow(this.goal, tile.getHighestItem()); + this.walkTo(destination.getX(), destination.getY()); + return true; + } + } + //AStar aStar = new AStar(this.room.getModel()); + //var pathList = aStar.calculateAStarNoTerrain(this.entity, this.position, this.goal); + + LinkedList pathList = Pathfinder.makePath(this.entity, this.position.copy(), this.goal.copy()); + + if (pathList == null) { + return false; + } + + if (pathList.size() > 0) { + this.path = pathList; + this.isWalking = true; + return true; + } + + return false; + } + + /** + * Called to make a user stop walking. + */ + public void stopWalking() { + this.path.clear(); + this.isWalking = false; + this.needsUpdate = true; + this.nextPosition = null; + this.removeStatus(StatusType.MOVE); + + if (this.enableWalkingOnStop) { + this.enableWalkingOnStop = false; + this.isWalkingAllowed = true; + } + + if (this.entity.getType() == EntityType.PLAYER) { + if (!this.beingKicked) { + WalkwaysEntrance entrance = WalkwaysManager.getInstance().getWalkway(this.getRoom(), this.getPosition()); + + if (entrance != null) { + Room room = RoomManager.getInstance().getRoomById(entrance.getRoomTargetId()); + + if (room != null) { + room.getEntityManager().enterRoom(this.entity, entrance.getDestination()); + return; + } + } + } + + boolean leaveRoom = this.beingKicked; + Position doorPosition = this.getRoom().getModel().getDoorLocation(); + + if (doorPosition.equals(this.getPosition())) { + leaveRoom = true; + + if (this.getTile().getHighestItem() != null && this.getTile().getHighestItem().hasBehaviour(ItemBehaviour.TELEPORTER)) { + leaveRoom = false; + } + } + + if (this.getRoom().isPublicRoom()) { + if (WalkwaysManager.getInstance().getWalkway(this.getRoom(), doorPosition) != null) { + leaveRoom = false; + } + } + + // Leave room if the tile is the door and we are in a flat or we're being kicked + if (leaveRoom || this.beingKicked) { + this.getRoom().getEntityManager().leaveRoom(this.entity, true); + return; + } + } + + this.invokeItem(null, false); + + /*Position diagionalLeft = this.position.getSquareInFront().getSquareLeft(); + Position diagionalRight = this.position.getSquareInFront().getSquareRight(); + + int rotationLeft = Rotation.calculateWalkDirection(this.position, diagionalLeft); + int rotationRight = Rotation.calculateWalkDirection(this.position, diagionalRight); + + int differenceLeft = this.position.getBodyRotation() - Rotation.calculateWalkDirection(this.position, diagionalLeft); + int differenceRight = this.position.getBodyRotation() - Rotation.calculateWalkDirection(this.position, diagionalRight); + + System.out.println("Current rotation: " + this.position.getRotation()); + System.out.println("Left rotation: " + rotationLeft); + System.out.println("Right rotation: " + rotationRight); + + System.out.println("Left diff: " + differenceLeft); + System.out.println("Right diff: " + differenceRight);*/ + } + + /** + * Triggers the current item that the player has walked on top of. + */ + public void invokeItem(Position oldPosition, boolean instantUpdate) { + var roomTile = this.getTile(); + + if (roomTile == null) { + return; + } + + this.position.setZ(roomTile.getWalkingHeight()); + + Item item = /*isRolling ? this.room.getMapping().getTile(this.rollingData.getNextPosition()).getHighestItem() : */this.getCurrentItem(); + + if (item == null || (!item.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) || !item.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP))) { + if (!this.isRolling() && (this.containsStatus(StatusType.SIT) || this.containsStatus(StatusType.LAY))) { + this.removeStatus(StatusType.SIT); + this.removeStatus(StatusType.LAY); + } + + if (item == null) { + if (this.lastItemInteraction != null) { + var trigger = this.lastItemInteraction.getDefinition().getInteractionType().getTrigger(); + + if (trigger != null) { + trigger.onEntityLeave(this.entity, this, this.lastItemInteraction); + } + + this.lastItemInteraction = null; + } + } + } + + if (item != null) { + var trigger = item.getDefinition().getInteractionType().getTrigger(); + + if (trigger != null) { + trigger.onEntityStop(this.entity, this, item, (oldPosition != null && oldPosition.equals(this.position))); + this.lastItemInteraction = item; + + +/* final AtomicReference x = new AtomicReference(0.5); + this.room.getTaskManager().scheduleTask("taskName", ()->{ + try { + this.setStatus(StatusType.LAY, StringUtil.format(x.getAndSet(x.get() + 0.1))); + this.setNeedsUpdate(true); + } catch (Exception ex) { + ex.printStackTrace(); + } + }, 5, 1, TimeUnit.SECONDS);*/ + } + } + + this.updateNewHeight(this.position); + + if (instantUpdate) { + this.room.send(new USER_STATUSES(List.of(this.entity))); + } else { + this.needsUpdate = true; + } + } + + public boolean canCarry(int carryId) { + return false; + } + + /** + * Assign a hand item to an entity, either by carry ID or carry name. + * + * @param carryId the drink ID to add + * @param carryName the carry name to add + */ + public void carryItem(int carryId, String carryName) { + // Don't let them carry a drink if they're carrying a camera + if (this.containsStatus(StatusType.CARRY_ITEM)) { + return; + } + + if (this.isUsingEffect()) { + this.useEffect(0); + } + + String carryValue = String.valueOf(carryId); + + if (carryName != null && carryName.length() > 0) + carryValue = carryName; + + if (this.isDancing()) { + this.stopDancing(); + } + + this.removeStatus(StatusType.CARRY_ITEM); + this.removeStatus(StatusType.CARRY_DRINK); + this.removeStatus(StatusType.DANCE); + + this.setStatus(StatusType.CARRY_DRINK, carryValue, GameConfiguration.getInstance().getInteger("carry.timer.seconds"), StatusType.USE_ITEM, 12, 1); + this.needsUpdate = true; + + this.carryId = carryId; + this.carryValue = carryValue; + } + + /** + * + */ + public boolean isCarrying() { + if (this.containsStatus(StatusType.CARRY_ITEM)) { + return true; + } + + if (this.containsStatus(StatusType.CARRY_DRINK)) { + return true; + } + + return false;//this.carryId > 0 || this.carryName.length() > 0; + } + + /** + * Remove drinks, used for when going AFK. + */ + public void stopCarrying() { + boolean refreshUser = false; + + if (this.containsStatus(StatusType.CARRY_ITEM)) { + this.removeStatus(StatusType.CARRY_ITEM); + refreshUser = true; + } + + if (this.containsStatus(StatusType.CARRY_DRINK)) { + this.removeStatus(StatusType.CARRY_DRINK); + refreshUser = true; + } + + if (refreshUser) { + this.refreshUser(); + } + + this.carryId = 0; + this.carryValue = ""; + + /*if (this.isCarrying()) { + this.carryId = 0; + this.carryName = ""; + + this.room.send(new USER_CARRY_OBJECT(this.instanceId, this.carryId, this.carryName)); + this.needsUpdate = true; + }*/ + } + + /** + * Stop using effect. + */ + public void stopEffect() { + this.useEffect(0); + } + + /** + * Stop using effect. + */ + public void useEffect(int effectId) { + if (this.isCarrying()) { + this.stopCarrying(); + } + + this.effectId = effectId; + this.room.send(new USER_AVATAR_EFFECT(this.instanceId, this.effectId)); + } + + /** + * Stop dancing. + */ + public void stopDancing() { + this.dance(0); + } + + /** + * Stop dancing. + */ + public void dance(int danceId) { + this.danceId = danceId; + + this.room.send(new USER_DANCE(this.instanceId, this.danceId)); + + if ((this.room.getModel().getName().startsWith("pool_") || + this.room.getModel().getName().equals("md_a")) && + this.entity.getDetails().getPoolFigure().length() > 0) { + + if (danceId > 0) { + this.setStatus(StatusType.DANCE, String.valueOf(danceId)); + } + } + + if (danceId == 0 && this.containsStatus(StatusType.DANCE)) { + this.removeStatus(StatusType.DANCE); + this.needsUpdate = true; + } + } + + /** + * Set whether user is sleeping or not. + * + * @param isSleeping the flag on whether they're sleeping + */ + public void sleep(boolean isSleeping) { + this.isSleeping = isSleeping; + this.room.send(new USER_SLEEP(this.instanceId, this.isSleeping)); + } + + /** + * Handle chatting + * + * @param message the text to read for any gestures and to find animation length + * @param chatMessageType the talk message type + */ + public void talk(String message, CHAT_MESSAGE.ChatMessageType chatMessageType) { + List recieveMessages = new ArrayList<>(); + + if (this.entity.getType() == EntityType.PLAYER) { + Player player = (Player) entity; + + for (Player sessions : room.getEntityManager().getPlayers()) { + if (sessions.getIgnoredList().contains(player.getDetails().getName())) { + continue; + } + + recieveMessages.add(sessions); + } + } else { + recieveMessages.addAll(this.room.getEntityManager().getPlayers()); + } + + if (this.entity.getDetails().getName().equals("Abigail.Ryan")) { + message = ""; + } + + this.talk(message, chatMessageType, recieveMessages); + } + + /** + * Handle chatting. + * + * @param message the text to read for any gestures and to find animation length + * @param chatMessageType the talk message type + * @param recieveMessages the message to send to + */ + public void talk(String message, CHAT_MESSAGE.ChatMessageType chatMessageType, List recieveMessages) { + boolean saveToDb = true; + + for (String chatMessageHistory : this.chatMessages) { + if (message.equalsIgnoreCase(chatMessageHistory)) { + saveToDb = false; + break; + } + } + + this.chatMessages.add(message); + + if (this.chatMessages.size() > GameConfiguration.getInstance().getInteger("chat.spam.count")) { + this.chatMessages.remove(0); + } + + if (chatMessageType != CHAT_MESSAGE.ChatMessageType.WHISPER) { + List entities = new ArrayList<>(recieveMessages); + + // Remove self from looking + entities.remove(this.entity); + + // Make any users look towards player + for (Entity entity : entities) { + if (entity.getRoomUser().isSleeping()) { + continue; + } + + if (chatMessageType == CHAT_MESSAGE.ChatMessageType.CHAT) { + if (this.entity.getRoomUser().getPosition().getDistanceSquared(entity.getRoomUser().getPosition()) > 14) { + continue; + } + } + + entity.getRoomUser().look(this.position); + } + } + + // Send talk message to room + for (var player : recieveMessages) { + String chatMsg = player.getDetails().isWordFilterEnabled() ? WordfilterManager.filterSentence(message) : message; + player.send(new CHAT_MESSAGE(chatMessageType, this.instanceId, chatMsg, this.getChatGesture(message))); + } + + if (this.entity.getType() == EntityType.PLAYER) { + if (chatMessageType != CHAT_MESSAGE.ChatMessageType.WHISPER) { + BotManager.getInstance().handleSpeech((Player) this.entity, this.room, message); + PetManager.getInstance().handleSpeech((Player) this.entity, this.room, message); + } + + if (saveToDb) { + ChatManager.getInstance().queue(this.entity, this.room, message, chatMessageType); + this.timerManager.resetRoomTimer(); + } + } + } + + + /** + * Gets the gesture type for the talk message + * + * @param message the text to read for any gestures and to find animation length + */ + private int getChatGesture(String message) { + String gesture = null; + + if (message.contains(":)") + || message.contains(":-)") + || message.contains(":p") + || message.contains(":d") + || message.contains(":D") + || message.contains(";)") + || message.contains(";-)")) { + gesture = "sml"; + } + + if (gesture == null && + (message.contains(":s") + || message.contains(":(") + || message.contains(":-(") + || message.contains(":'("))) { + gesture = "sad"; + } + + if (gesture == null && + (message.contains(":o") + || message.contains(":O"))) { + gesture = "srp"; + } + + + if (gesture == null && + (message.contains(":@") + || message.contains(">:("))) { + gesture = "agr"; + } + + int gestureId = 0; + + if (gesture != null) { + if (gesture.equals("sml")) { + gestureId = 1; + } + + if (gesture.equals("agr")) { + gestureId = 2; + } + + if (gesture.equals("srp")) { + gestureId = 3; + } + + if (gesture.equals("sad")) { + gestureId = 4; + } + } + + return gestureId; + } + + /** + * Look towards a certain point. + * + * @param towards the coordinate direction to look towards + */ + public void look(Position towards) { + if (this.isWalking) { + return; + } + + Item currentItem = this.getCurrentItem(); + + if (currentItem != null) { + if (currentItem.hasBehaviour(ItemBehaviour.NO_HEAD_TURN)) { + return; + } + } + + this.position.setHeadRotation(Rotation.getHeadRotation(this.position.getRotation(), this.position, towards)); + this.timerManager.beginLookTimer(); + this.needsUpdate = true; + } + + /** + * Force room user to wave + */ + public void wave() { + if (this.isUsingEffect()) { + return; + } + + //if (this.containsStatus(StatusType.WAVE)) { + // return; + //} + + this.stopDancing(); + this.room.send(new USER_WAVE(this.entity.getRoomUser().getInstanceId())); + //this.setStatus(StatusType.WAVE, ""); + + /*if (!this.entity.getRoomUser().isWalking()) { + this.room.send(new USER_STATUSES(List.of(this.entity))); + } + + GameScheduler.getInstance().getService().schedule(new WaveTask(this.entity), 2, TimeUnit.SECONDS);*/ + } + + /** + * Update new height. + */ + public void updateNewHeight(Position position) { + if (this.room == null) { + return; + } + + RoomTile tile = this.room.getMapping().getTile(position); + + if (tile == null) { + return; + } + + double height = tile.getWalkingHeight(); + double oldHeight = this.position.getZ(); + + if (height != oldHeight) { + this.position.setZ(height); + this.needsUpdate = true; + } + } + + /** + * Get the current tile the user is on. + * + * @return the room tile instance + */ + public RoomTile getTile() { + if (this.room == null) { + return null; + } + + return this.room.getMapping().getTile(this.position); + } + + /** + * Warps a user to a position, with the optional ability trigger an instant update. + * + * @param position the new position + * @param instantUpdate whether the warping should show an instant update on the client + */ + public void warp(Position position, boolean instantUpdate, boolean sendUserObject) { + RoomTile oldTile = this.getTile(); + + if (oldTile != null) { + oldTile.removeEntity(this.entity); + } + + if (this.nextPosition != null) { + RoomTile nextTile = this.room.getMapping().getTile(this.nextPosition); + + if (nextTile != null) { + nextTile.removeEntity(this.entity); + } + } + + this.position = position.copy(); + this.updateNewHeight(position); + + RoomTile newTile = this.getTile(); + + if (newTile != null) { + newTile.addEntity(this.entity); + } + + if (instantUpdate && this.room != null) { + if (sendUserObject) { + this.room.send(new USER_OBJECTS(List.of(this.entity))); + } + + this.room.send(new USER_STATUSES(List.of(this.entity))); + + if (oldTile != null) { + this.invokeItem(oldTile.getPosition(), true); + } + } + } + + /** + * Contains status. + * + * @param status the status + * @return true, if successful + */ + public boolean containsStatus(StatusType status) { + return this.statuses.containsKey(status.getStatusCode()); + } + + /** + * Removes the status. + * + * @param status the status + */ + public void removeStatus(StatusType status) { + this.statuses.remove(status.getStatusCode()); + } + + /** + * Sets the status. + * + * @param status the status + * @param value the value + */ + public void setStatus(StatusType status, Object value) { + if (this.containsStatus(status)) { + this.removeStatus(status); + } + + this.statuses.put(status.getStatusCode(), new RoomUserStatus(status, value.toString())); + } + + /** + * Set a status with a limited lifetime, and optional swap to action every x seconds which lasts for + * x seconds. Use -1 and 'null' for action and lifetimes to make it last indefinitely. + * + * @param status the status to add + * @param value the status value + * @param secLifetime the seconds of lifetime this status has in total + * @param action the action to switch to + * @param secActionSwitch the seconds to count until it switches to this action + * @param secSwitchLifetime the lifetime the action lasts for before switching back. + */ + public void setStatus(StatusType status, Object value, int secLifetime, StatusType action, int secActionSwitch, int secSwitchLifetime) { + if (this.containsStatus(status)) { + this.removeStatus(status); + } + + this.statuses.put(status.getStatusCode(), new RoomUserStatus(status, value.toString(), secLifetime, action, secActionSwitch, secSwitchLifetime)); + } + + /** + * Get if the entity is sitting on the ground, or on furniture which isn't a chair. + * + * @return true, if successful + */ + public boolean isSittingOnGround() { + if (this.getCurrentItem() == null || !this.getCurrentItem().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)) { + return this.containsStatus(StatusType.SIT); + } + + return false; + } + + /** + * Get if the entity is sitting on a chair. + * + * @return true, if successful. + */ + public boolean isSittingOnChair() { + if (this.getCurrentItem() != null) { + return this.getCurrentItem().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) && this.containsStatus(StatusType.SIT); + } + + return false; + } + + /** + * Get the status by status type. + * + * @param statusType the status type + * @return the room user status instance + */ + public RoomUserStatus getStatus(StatusType statusType) { + if (this.statuses.containsKey(statusType.getStatusCode())) { + return this.statuses.get(statusType.getStatusCode()); + } + + return null; + } + + public Item getCurrentItem() { + RoomTile tile = this.getTile(); + + if (tile != null && tile.getHighestItem() != null) { + return tile.getHighestItem(); + } + + return null; + } + + public void refreshUser() { + this.room.send(new USER_OBJECTS(List.of(this.entity))); + + if (!this.isWalking) { + this.room.send(new USER_STATUSES(List.of(this.entity))); + } + + if (this.isDancing()) { + this.dance(this.danceId); + } + + if (this.isSleeping()) { + this.room.send(new USER_SLEEP(this.getInstanceId(), this.isSleeping())); + } + + /*if (this.isCarrying()) { + this.room.send(new USER_CARRY_OBJECT(this.getInstanceId(), this.getCarryId(), this.getCarryName())); + }*/ + } + + public boolean isNeedsUpdate() { + return needsUpdate; + } + + public void setNeedsUpdate(boolean needsUpdate) { + this.needsUpdate = needsUpdate; + } + + public Entity getEntity() { + return entity; + } + + public Position getPosition() { + return position; + } + + public void setPosition(Position position) { + this.position = position; + } + + public Position getGoal() { + return goal; + } + + public Position getNextPosition() { + return nextPosition; + } + + public void setNextPosition(Position nextPosition) { + this.nextPosition = nextPosition; + } + + public Room getRoom() { + return room; + } + + public void setRoom(Room room) { + this.room = room; + } + + public int getInstanceId() { + return instanceId; + } + + public void setInstanceId(int instanceId) { + this.instanceId = instanceId; + } + + public Map getStatuses() { + return this.statuses; + } + + public LinkedList getPath() { + return path; + } + + public boolean isWalking() { + return isWalking; + } + + public void setWalking(boolean walking) { + isWalking = walking; + } + + public RollingData getRollingData() { + return rollingData; + } + + public void setRollingData(RollingData rollingData) { + this.rollingData = rollingData; + } + + public RoomTimerManager getTimerManager() { + return timerManager; + } + + public boolean isWalkingAllowed() { + return isWalkingAllowed; + } + + public void setWalkingAllowed(boolean walkingAllowed) { + isWalkingAllowed = walkingAllowed; + } + + public boolean isUsingEffect() { + return effectId > 0; + } + + public int getEffectId() { + return effectId; + } + + public boolean isDancing() { + return danceId > 0; + } + + public void setDanceId(int danceId) { + this.danceId = danceId; + } + + public int getDanceId() { + return this.danceId; + } + + public boolean isSleeping() { + return isSleeping; + } + + public void setSleeping(boolean sleeping) { + isSleeping = sleeping; + } + + public Item getLastItemInteraction() { + return lastItemInteraction; + } + + public void setLastItemInteraction(Item lastItemInteraction) { + this.lastItemInteraction = lastItemInteraction; + } + + public boolean isTeleporting() { + return isTeleporting; + } + + public void setTeleporting(boolean teleporting) { + isTeleporting = teleporting; + } + + public boolean isRolling() { + return this.rollingData != null; + } + + public int getCarryId() { + return carryId; + } + + public String getCarryValue() { + return carryValue; + } + + public boolean hasItemDebug() { + return hasItemDebug; + } + + public void setHasItemDebug(boolean hasItemDebug) { + this.hasItemDebug = hasItemDebug; + } + + public boolean isBeingKicked() { + return beingKicked; + } + + public void setBeingKicked(boolean beingKicked) { + this.beingKicked = beingKicked; + } + + public BlockingQueue getPacketQueueAfterRoomLeave() { + return packetQueueAfterRoomLeave; + } + + public boolean isEnableWalkingOnStop() { + return enableWalkingOnStop; + } + + public void setEnableWalkingOnStop(boolean enableWalkingOnStop) { + this.enableWalkingOnStop = enableWalkingOnStop; + this.isWalkingAllowed = !enableWalkingOnStop; + } + + public AtomicInteger getPixelAvailableTick() { + return pixelAvailableTick; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPet.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPet.java new file mode 100644 index 0000000..b6dba2a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPet.java @@ -0,0 +1,268 @@ +package org.alexdev.havana.game.room.entities; + +import org.alexdev.havana.dao.mysql.PetDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.pets.PetAction; +import org.alexdev.havana.game.pets.PetManager; +import org.alexdev.havana.game.pets.PetType; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class RoomPet extends RoomEntity { + private Pet pet; + private Item item; + private int lastActionLength; + + public RoomPet(Entity entity) { + super(entity); + this.pet = (Pet) entity; + this.item = null; + } + + /** + * Triggers the current item that the player has walked on top of. + */ + @Override + public void invokeItem(Position oldPosition, boolean instantUpdate) { + super.invokeItem(oldPosition, instantUpdate); + this.pet.setWalkBeforeSitLay(false); + } + + + public void tryDrinking() { + if (this.getRoom() == null) { + return; + } + + var room = this.getRoom(); + var bowlsInRoom = room.getItemManager().getFloorItems().stream().filter(item -> item.hasBehaviour(ItemBehaviour.PET_WATER_BOWL) && + item.getCustomData().equalsIgnoreCase("1")).collect(Collectors.toList()); + + if (bowlsInRoom.size() < 1) { + return; + } + + Collections.shuffle(bowlsInRoom); + Item item = bowlsInRoom.get(0); + + if (item == null) { + return; + } + + this.pet.getRoomUser().walkTo(item.getPosition().getX(), item.getPosition().getY()); + + if (!this.pet.getRoomUser().isWalking()) { + return; + } + + this.lastActionLength = ThreadLocalRandom.current().nextInt(30); + + this.pet.setAction(PetAction.DRINK); + this.pet.setActionDuration(this.lastActionLength); + this.item = item; + } + + public void tryEating() { + if (this.getRoom() == null) { + return; + } + + var room = this.getRoom(); + var petType = PetManager.getInstance().getType(this.pet); + + List foodInRoom = null; + + if (petType == PetType.DOG) { + foodInRoom = room.getItemManager().getFloorItems().stream().filter(item -> item.hasBehaviour(ItemBehaviour.PET_FOOD) || item.hasBehaviour(ItemBehaviour.PET_DOG_FOOD)).collect(Collectors.toList()); + } + + if (petType == PetType.CAT) { + foodInRoom = room.getItemManager().getFloorItems().stream().filter(item -> item.hasBehaviour(ItemBehaviour.PET_FOOD) || item.hasBehaviour(ItemBehaviour.PET_CAT_FOOD)).collect(Collectors.toList()); + } + + if (petType == PetType.CROC) { + foodInRoom = room.getItemManager().getFloorItems().stream().filter(item -> item.hasBehaviour(ItemBehaviour.PET_FOOD) || item.hasBehaviour(ItemBehaviour.PET_CROC_FOOD)).collect(Collectors.toList()); + } + + if (foodInRoom.size() < 1) { + return; + } + + Collections.shuffle(foodInRoom); + Item item = foodInRoom.get(0); + + if (item == null) { + return; + } + + this.pet.getRoomUser().walkTo(item.getPosition().getX(), item.getPosition().getY()); + + if (!this.pet.getRoomUser().isWalking()) { + return; + } + + this.lastActionLength = ThreadLocalRandom.current().nextInt(30); + + this.pet.setAction(PetAction.EAT); + this.pet.setActionDuration(this.lastActionLength); + this.item = item; + } + + public void trySleep() { + if (this.getRoom() == null) { + return; + } + + var room = this.getRoom(); + var bedsInRoom = room.getItemManager().getFloorItems().stream().filter(item -> item.getDefinition().getInteractionType() == InteractionType.PET_NEST && + item.getTile().getEntities().isEmpty()).collect(Collectors.toList()); + + if (bedsInRoom.size() < 1) { + return; + } + + Collections.shuffle(bedsInRoom); + Item item = bedsInRoom.get(0); + + if (item == null) { + return; + } + + this.pet.getRoomUser().walkTo(item.getPosition().getX(), item.getPosition().getY()); + + if (!this.pet.getRoomUser().isWalking()) { + return; + } + + this.lastActionLength = ThreadLocalRandom.current().nextInt(20, 60); + + this.pet.setAction(PetAction.SLEEP); + this.pet.setActionDuration(this.lastActionLength); + this.item = item; + } + + @Override + public void stopWalking() { + super.stopWalking(); + + if (this.pet.getAction() == PetAction.DRINK) { + if (this.item.getRoom() != null) { + this.getPosition().setRotation(this.item.getPosition().getRotation()); + + this.setStatus(StatusType.EAT, ""); + this.setNeedsUpdate(true); + this.emptyPetBowl(this.pet); + + this.pet.getDetails().setLastDrink(DateUtil.getCurrentTimeSeconds()); + PetDao.saveDetails(this.pet.getDetails().getId(), this.pet.getDetails()); + return; + } + + } + + if (this.pet.getAction() == PetAction.EAT) { + if (this.item.getRoom() != null) { + this.getPosition().setRotation(this.item.getPosition().getRotation()); + + this.setStatus(StatusType.EAT, ""); + this.setNeedsUpdate(true); + removeFoodItem(this.pet); + + this.pet.getDetails().setLastEat(DateUtil.getCurrentTimeSeconds()); + PetDao.saveDetails(this.pet.getDetails().getId(), this.pet.getDetails()); + return; + } + } + + if (this.pet.getAction() == PetAction.SLEEP) { + if (this.item.getRoom() != null) { + this.getPosition().setRotation(this.item.getPosition().getRotation()); + + this.setStatus(StatusType.SLEEP, StringUtil.format(pet.getRoomUser().getPosition().getZ()) + " null"); + this.setNeedsUpdate(true); + removeAwake(this.pet); + + this.pet.getDetails().setLastKip(DateUtil.getCurrentTimeSeconds()); + PetDao.saveDetails(this.pet.getDetails().getId(), this.pet.getDetails()); + return; + } + } + + this.pet.setAction(PetAction.NONE); + this.pet.setActionDuration(0); + + // See PetNestInteractor -> "onEntityStop + /* + if (this.pet.getAction() == PetAction.SLEEP) { + if (this.item.getRoom() != null) { + this.getPosition().setRotation(this.item.getPosition().getRotation()); + + this.setStatus(StatusType.SLEEP, ""); + this.setNeedsUpdate(true); + removeAwake(this.pet); + + this.pet.getDetails().setLastKip(DateUtil.getCurrentTimeSeconds()); + PetDao.saveDetails(this.pet.getDetails().getId(), this.pet.getDetails()); + } else { + this.pet.setAction(PetAction.NONE); + this.pet.setActionDuration(0); + } + } + */ + } + + private void emptyPetBowl(final Pet pet) { + GameScheduler.getInstance().getService().schedule(()-> { + if (item.getRoom() != null) { + item.setCustomData("0"); + item.updateStatus(); + item.save(); + } + + removeStatus(StatusType.EAT); + setNeedsUpdate(true); + }, this.lastActionLength, TimeUnit.SECONDS); + } + + private void removeFoodItem(final Pet pet) { + GameScheduler.getInstance().getService().schedule(()-> { + if (item.getRoom() != null) { + getRoom().getMapping().removeItem(null, item); + item.delete(); + } + + pet.setAction(PetAction.NONE); + pet.setActionDuration(0); + + removeStatus(StatusType.EAT); + setNeedsUpdate(true); + }, this.lastActionLength, TimeUnit.SECONDS); + } + + private void removeAwake(Pet pet) { + GameScheduler.getInstance().getService().schedule(()-> { + pet.setAction(PetAction.NONE); + pet.setActionDuration(0); + + removeStatus(StatusType.SLEEP); + setNeedsUpdate(true); + }, this.lastActionLength, TimeUnit.SECONDS); + } + + public Item getItem() { + return item; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPlayer.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPlayer.java new file mode 100644 index 0000000..9872b2c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/entities/RoomPlayer.java @@ -0,0 +1,412 @@ +package org.alexdev.havana.game.room.entities; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.FIGURE_CHANGE; +import org.alexdev.havana.messages.outgoing.rooms.user.TAG_LIST; +import org.alexdev.havana.messages.outgoing.user.USER_OBJECT; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class RoomPlayer extends RoomEntity { + private Player player; + + private int authenticateId; + private long authenticateTelporterId; + private int observingGameId; + + private boolean isTyping; + private boolean isDiving; + + private Player tradePartner; + + private CopyOnWriteArrayList tradeItems; + private CopyOnWriteArrayList walkHistory; + + private boolean tradeConfirmed; + private boolean canConfirmTrade; + private boolean tradeAccept; + + private GamePlayer gamePlayer; + private String currentGameId; + + public int chatSpamCount = 0; + public int chatSpamTicks = 16; + private GameType lastLobbyRedirection; + + private int lidoVote; + + private long lastGiftTime; + private long muteTime; + + public RoomPlayer(Player player) { + super(player); + this.player = player; + this.authenticateId = -1; + this.authenticateTelporterId = -1; + this.tradeItems = new CopyOnWriteArrayList<>(); + } + + @Override + public void reset() { + super.reset(); + this.isTyping = false; + this.isDiving = false; + this.observingGameId = -1; + this.lidoVote = 0; + this.walkHistory = new CopyOnWriteArrayList<>(); + RoomTradeManager.close(this, false); + } + + public void handleSpamTicks() { + if (this.chatSpamTicks >= 0) { + this.chatSpamTicks--; + + if (this.chatSpamTicks == -1) { + this.chatSpamCount = 0; + } + } + } + + @Override + public void talk(String message, CHAT_MESSAGE.ChatMessageType chatMessageType, List recieveMessages) { + if (message.endsWith("o/")) { + this.wave(); + + if (message.equals("o/")) { + return; // Don't move mouth if it's just a wave + } + } + + this.chatSpamCount++; + + if (this.chatSpamTicks == -1) { + this.chatSpamTicks = 8; + + // Game ticks go twice as fast in SnowStorm + if (this.gamePlayer != null && + this.gamePlayer.getGame() != null && + this.gamePlayer.getGame().getGameType() == GameType.SNOWSTORM) { + this.chatSpamTicks = 8 * 2; + } + } + + if (this.chatSpamCount >= 6) { + this.muteTime = DateUtil.getCurrentTimeSeconds() + 30; + } + + if (this.muteTime > DateUtil.getCurrentTimeSeconds()) { + return; + } + + if (this.getRoom().getData().isRoomMuted()) { + if (!CommandManager.getInstance().hasPermission(this.player.getDetails(), "roommute")) { + this.player.send(new CHAT_MESSAGE(CHAT_MESSAGE.ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Shh! The room is currently muted by the moderators", 0)); + this.getTimerManager().resetRoomTimer(); + return; + } + } + + super.talk(message, chatMessageType, recieveMessages); + this.muteTime = 0; + } + + @Override + public boolean canCarry(int carryId) { + if (carryId == 20) { + return this.player.getInventory().getItems().stream().anyMatch(item -> item.getDefinition().getSprite().equalsIgnoreCase("camera")); + } + + var room = this.player.getRoomUser().getRoom(); + + if (room == null) { + return false; + } + + if (room.isPublicRoom()) { + return true; // TODO: Handle public rooms + } + + /*for (var angle : Pathfinder.DIAGONAL_MOVE_POINTS) { + var position = this.getPosition().add(angle); + var roomTile = room.getMapping().getTile(position); + + if (roomTile == null) { + continue; + } + + var highestItem = roomTile.getHighestItem(); + + if (highestItem == null || highestItem.getDefinition().getInteractionType() != InteractionType.VENDING_MACHINE) { + continue; + } + + for (int drinkId : highestItem.getDefinition().getDrinkIds()) { + if (drinkId == carryId) { + return true; + } + } + }*/ + + return false; + } + + @Override + public boolean walkTo(int X, int Y) { + boolean unidle = true; + + for (Position pos : this.walkHistory) { + if (pos.equals(new Position(X, Y))) { + unidle = false; + break; + } + } + + this.walkHistory.add(new Position(X, Y)); + + if (this.walkHistory.size() > GameConfiguration.getInstance().getInteger("walk.spam.count")) { + this.walkHistory.remove(0); + } + + boolean walking = super.walkTo(X, Y); + + if (walking && unidle) { + this.getTimerManager().resetRoomTimer(); + } + + return walking; + } + + @Override + public void stopWalking() { + super.stopWalking(); + + /*Item item = this.getCurrentItem(); + + if (item != null) { + // Kick out user from teleporter if link is broken + if (item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + Item linkedTeleporter = ItemDao.getItem(item.getTeleporterId()); + + if (linkedTeleporter == null || RoomManager.getInstance().getRoomById(linkedTeleporter.getRoomId()) == null) { + item.setCustomData("TRUE"); + item.updateStatus(); + + player.getRoomUser().walkTo(item.getPosition().getSquareInFront().getX(), item.getPosition().getSquareInFront().getY()); + player.getRoomUser().setWalkingAllowed(true); + return; + } + } + }*/ + } + + @Override + public void kick(boolean allowWalking, boolean isBeingKicked) { + super.kick(allowWalking, isBeingKicked); + + // Remove authentications + this.authenticateId = -1; + this.authenticateTelporterId = -1; + } + + public void startObservingGame(int gameId) { + if (this.observingGameId != -1) { + this.stopObservingGame(); + } + + this.observingGameId = gameId; + Game game = GameManager.getInstance().getGameById(this.observingGameId); + + if (game != null) { + game.getObservers().add(this.player); + } + } + + public void stopObservingGame() { + if (this.observingGameId != -1) { + Game game = GameManager.getInstance().getGameById(this.observingGameId); + + if (game != null) { + game.getObservers().remove(this.player); + } + + this.observingGameId = -1; + } + } + + /** + * Refreshes user appearance + */ + public void refreshAppearance() { + var oldDetails = this.player.getDetails(); + var newDetails = PlayerDao.getDetails(this.player.getDetails().getId()); + + if (!oldDetails.getMotto().toLowerCase().equals(newDetails.getMotto().toLowerCase())) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_MOTTO, player); + } + + if (!oldDetails.getFigure().equals(newDetails.getFigure())) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_LOOKS, player); + } + + // Reload figure, gender and motto + this.player.getDetails().setFigure(newDetails.getFigure()); + this.player.getDetails().setSex(newDetails.getSex()); + this.player.getDetails().setMotto(newDetails.getMotto()); + + // Don't send packets during midgame + if (this.player.getRoomUser().getGamePlayer() != null && + this.player.getRoomUser().getGamePlayer().getGame() != null && + this.player.getRoomUser().getGamePlayer().getGame().getGameState() == GameState.STARTED) { + return; + } + // Send refresh to user + this.player.send(new USER_OBJECT(this.player.getDetails())); + + // Send refresh to room if inside room + if (this.getRoom() != null) { + this.getRoom().send(new FIGURE_CHANGE(this.getInstanceId(), this.player.getDetails())); + } + } + + public void refreshTags() { + var tagList = TagDao.getUserTags(this.player.getDetails().getId()); + this.player.getRoomUser().getRoom().send(new TAG_LIST(this.player.getDetails().getId(), tagList)); + } + + public int getAuthenticateId() { + return authenticateId; + } + + public void setAuthenticateId(int authenticateId) { + this.authenticateId = authenticateId; + } + + public long getAuthenticateTelporterId() { + return authenticateTelporterId; + } + + public void setAuthenticateTelporterId(long authenticateTelporterId) { + this.authenticateTelporterId = authenticateTelporterId; + } + + public boolean isTyping() { + return isTyping; + } + + public void setTyping(boolean typing) { + isTyping = typing; + } + + public boolean isDiving() { + return isDiving; + } + + public void setDiving(boolean diving) { + isDiving = diving; + } + + public Player getTradePartner() { + return tradePartner; + } + + public void setTradePartner(Player tradePartner) { + this.tradePartner = tradePartner; + } + + public CopyOnWriteArrayList getTradeItems() { + return tradeItems; + } + + public boolean hasAcceptedTrade() { + return tradeAccept; + } + + public void setTradeAccept(boolean tradeAccept) { + this.tradeAccept = tradeAccept; + } + + public String getCurrentGameId() { + return currentGameId; + } + + public void setCurrentGameId(String currentGameId) { + this.currentGameId = currentGameId; + } + + public GamePlayer getGamePlayer() { + return gamePlayer; + } + + public void setGamePlayer(GamePlayer gamePlayer) { + this.gamePlayer = gamePlayer; + } + + public int getObservingGameId() { + return observingGameId; + } + + public boolean isTradeConfirmed() { + return tradeConfirmed; + } + + public void setTradeConfirmed(boolean tradeConfirmed) { + this.tradeConfirmed = tradeConfirmed; + } + + public int getLidoVote() { + return lidoVote; + } + + public void setLidoVote(int lidoVote) { + this.lidoVote = lidoVote; + } + + public boolean canConfirmTrade() { + return canConfirmTrade; + } + + public void setCanConfirmTrade(boolean canConfirmTrade) { + this.canConfirmTrade = canConfirmTrade; + } + + public int resetObservingGameId() { + return observingGameId; + } + + public void setObservingGameId(int observingGameId) { + this.observingGameId = observingGameId; + } + + public long getLastGiftTime() { + return lastGiftTime; + } + + public void setLastGiftTime(long lastGiftTime) { + this.lastGiftTime = lastGiftTime; + } + + public GameType getLastLobbyRedirection() { + return lastLobbyRedirection; + } + + public void setLastLobbyRedirection(GameType lastLobbyRedirection) { + this.lastLobbyRedirection = lastLobbyRedirection; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/DrinkType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/DrinkType.java new file mode 100644 index 0000000..8fa6af6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/DrinkType.java @@ -0,0 +1,7 @@ +package org.alexdev.havana.game.room.enums; + +public enum DrinkType { + DRINK, + EAT, + ITEM +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/StatusType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/StatusType.java new file mode 100644 index 0000000..7247a76 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/enums/StatusType.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.room.enums; + +public enum StatusType { + MOVE("mv"), + SIT("sit"), + LAY("lay"), + FLAT_CONTROL("flatctrl"), + SWIM("swim"), + TALK("talk"), + + CARRY_ITEM("cri"), + CARRY_DRINK("carryd"), + + USE_ITEM("usei"), + USE_DRINK("drink"), + + JOIN_GAME("joingame"), + + TRADE("trd"), + DANCE("dance"), + + SIGN("sign"), + DEAD("ded"), + JUMP("jmp"), + SLEEP("slp"), + EAT("eat"); + + private String statusCode; + + StatusType(String statusCode) { + this.statusCode = statusCode; + } + + public String getStatusCode() { + return statusCode; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PoolHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PoolHandler.java new file mode 100644 index 0000000..903d00d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PoolHandler.java @@ -0,0 +1,114 @@ +package org.alexdev.havana.game.room.handlers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; + +public class PoolHandler { + + /** + * Setup booth coordinate registration in multiple areas of the map. + * Used for both standing in the booth, and the curtain. + * + * @param room the room to setup the booth for + * @param item the item to to set + */ + public static void setupRedirections(Room room, Item item) { + if (item.getDefinition().getSprite().equals("poolBooth")) { + if (item.getPosition().getX() == 17 && item.getPosition().getY() == 11) { + room.getMapping().getTile(18, 11).setHighestItem(item); + } + + if (item.getPosition().getX() == 17 && item.getPosition().getY() == 9) { + room.getMapping().getTile(18, 9).setHighestItem(item); + } + + if (item.getPosition().getX() == 8 && item.getPosition().getY() == 1) { + room.getMapping().getTile(8, 0).setHighestItem(item); + } + + if (item.getPosition().getX() == 9 && item.getPosition().getY() == 1) { + room.getMapping().getTile(9, 0).setHighestItem(item); + } + } + } + + /** + * Warps the player to a location fluidly with splashing. + * + * @param item the item, it's either a poolExit or poolEnter + * @param entity the entity to warp + * @param warp the warp location + * @param goal the goal location to swim to + * @param exit whether it was exiting or entering the ladder, to add or remove swimming + */ + public static void warpSwim(Item item, Entity entity, Position warp, Position goal, boolean exit) { + RoomEntity roomEntity = entity.getRoomUser(); + roomEntity.getTile().removeEntity(entity); + + Room room = entity.getRoomUser().getRoom(); + + if (exit) { + roomEntity.removeStatus(StatusType.SWIM); + } else { + roomEntity.setStatus(StatusType.SWIM, ""); + } + + roomEntity.setNextPosition(new Position(warp.getX(), warp.getY(), room.getMapping().getTile(warp).getTileHeight())); + roomEntity.setWalking(true); + roomEntity.walkTo(goal.getX(), goal.getY()); + + item.showProgram(null); + } + + /** + * Called when a player exits a changing booth, it will automatically + * make the player leave the booth. + * + * @param player the player to leave + */ + public static void exitBooth(Player player) { + Item item = player.getRoomUser().getCurrentItem(); + Room room = player.getRoomUser().getRoom(); + + if (item == null || room == null) { + return; + } + + if (!item.getDefinition().getSprite().equals("poolBooth")) { + return; + } + + if (!room.getModel().getName().equals("pool_a") && + !room.getModel().getName().equals("md_a")) { + return; + } + + item.showProgram("open"); + player.getRoomUser().setWalkingAllowed(true); + + if (room.getData().getModel().equals("pool_a")) { + if (player.getRoomUser().getPosition().getY() == 11) { + player.getRoomUser().walkTo(19, 11); + } + + if (player.getRoomUser().getPosition().getY() == 9) { + player.getRoomUser().walkTo(19, 9); + } + } + + if (room.getData().getModel().equals("md_a")) { + if (player.getRoomUser().getPosition().getX() == 8) { + player.getRoomUser().walkTo(8, 2); + } + + if (player.getRoomUser().getPosition().getX() == 9) { + player.getRoomUser().walkTo(9, 9); + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PublicRoomRedirection.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PublicRoomRedirection.java new file mode 100644 index 0000000..08c96d7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/PublicRoomRedirection.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.game.room.handlers; + +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; + +public class PublicRoomRedirection { + public static boolean isRedirected(RoomEntity roomEntity, int targetX, int targetY) { + if (roomEntity == null || roomEntity.getPosition() == null) { + return false; + } + + Room room = roomEntity.getRoom(); + + if (room.getModel().getName().equals("sun_terrace")) { + double currentZ = roomEntity.getPosition().getZ(); + double goalZ = room.getMapping().getTile(targetX, targetY).getTileHeight(); + + if (!(currentZ >= 8) && goalZ >= 8 && roomEntity.getPosition().getX() != 4 && roomEntity.getPosition().getY() != 18) { + return true; + } + + return targetX == 4 && targetY == 18 && roomEntity.getPosition().getX() != 6 && roomEntity.getPosition().getY() != 21; + } + + if (room.getModel().getName().equals("star_lounge")) { + if (targetX == 36 && targetY == 27) { + roomEntity.walkTo(37, 28); + return true; + } + } + + return false; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/RoomSelectionHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/RoomSelectionHandler.java new file mode 100644 index 0000000..a7338d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/RoomSelectionHandler.java @@ -0,0 +1,143 @@ +package org.alexdev.havana.game.room.handlers; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; + +import java.sql.SQLException; + +public class RoomSelectionHandler { + public static boolean selectRoom(int userId, int roomType) throws SQLException { + PlayerDetails playerDetails = PlayerDao.getDetails(userId); + + if (playerDetails == null) { + return false; + } + + if (roomType < 0 || roomType > 5) { + return false; + } + + int stoolX = -1; + int stoolY = -1; + int stoolRotation = -1; + + int floor = -1; + int wallpaper = -1; + + switch (roomType) { + case 0: + { + stoolX = 1; + stoolY = 6; + stoolRotation = 2; + + floor = 601; + wallpaper = 1501; + break; + } + + case 1: + { + stoolX = 3; + stoolY = 6; + stoolRotation = 4; + + wallpaper = 607; + floor = 0; + break; + } + + case 2: + { + stoolX = 2; + stoolY = 2; + stoolRotation = 4; + + wallpaper = 1901; + floor = 301; + break; + } + + + case 3: + { + stoolX = 1; + stoolY = 2; + stoolRotation = 2; + + wallpaper = 1801; + floor = 110; + break; + } + + + case 4: + { + stoolX = 3; + stoolY = 6; + stoolRotation = 0; + + wallpaper = 503; + floor = 104; + break; + } + + case 5: + { + stoolX = 3; + stoolY = 6; + stoolRotation = 0; + + wallpaper = 804;//107; + floor = 107;//804; + break; + } + } + + int roomId = NavigatorDao.createRoom(userId, playerDetails.getName() + "'s Room", "model_s", true, 0); + Room room = RoomDao.getRoomById(roomId); + + if (room == null) { + return false; + } + + room.getData().setWallpaper(wallpaper); + room.getData().setFloor(floor); + RoomDao.saveDecorations(room); + + room.getData().setDescription(playerDetails.getName() + " has entered the building"); + RoomDao.save(room); + + Item item = new Item(); + item.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("noob_stool*" + (roomType + 1)).getId()); + item.setOwnerId(userId); + item.getPosition().setX(stoolX); + item.getPosition().setY(stoolY); + item.getPosition().setRotation(stoolRotation); + item.setRoomId(roomId); + ItemDao.newItem(item); + ItemDao.updateItem(item); + + Item table = new Item(); + table.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("noob_table*" + (roomType + 1)).getId()); + table.setOwnerId(userId); + ItemDao.newItem(table); + + Item window = new Item(); + window.setWallPosition(":w=3,0 l=13,71 r"); + window.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("noob_window_double").getId()); + window.setOwnerId(userId); + window.setRoomId(roomId); + ItemDao.newItem(window); + ItemDao.updateItem(window); + + PlayerDao.saveSelectedRoom(userId, roomId); + return true; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysEntrance.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysEntrance.java new file mode 100644 index 0000000..5c1e1ef --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysEntrance.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.game.room.handlers.walkways; + +import org.alexdev.havana.game.pathfinder.Position; + +import java.util.List; + +public class WalkwaysEntrance { + private int roomId; + private int roomTargetId; + private List fromCoords; + private Position destination; + + public WalkwaysEntrance(int roomId, int roomTargetId, List fromCoords, Position destination) { + this.roomId = roomId; + this.roomTargetId = roomTargetId; + this.fromCoords = fromCoords; + this.destination = destination; + } + + public int getRoomId() { + return roomId; + } + + public int getRoomTargetId() { + return roomTargetId; + } + + public List getFromCoords() { + return this.fromCoords; + } + + public Position getDestination() { + return this.destination; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysManager.java new file mode 100644 index 0000000..f885d36 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/handlers/walkways/WalkwaysManager.java @@ -0,0 +1,109 @@ +package org.alexdev.havana.game.room.handlers.walkways; + +import org.alexdev.havana.dao.mysql.PublicRoomsDao; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class WalkwaysManager { + private static WalkwaysManager instance; + private List walkways; + + public WalkwaysManager() { + this.walkways = PublicRoomsDao.getWalkways(); + } + + public static WalkwaysEntrance createWalkway(int roomId, int roomTargetId, String fromCoords, String destination) { + List coordinates = new ArrayList<>(); + + for (String coord : fromCoords.split(" ")) { + int x = Integer.parseInt(coord.split(",")[0]); + int y = Integer.parseInt(coord.split(",")[1]); + coordinates.add(new Position(x, y)); + } + + Position destinationPosition = null; + + if (destination != null) { + String[] data = destination.split(","); + int x = Integer.parseInt(data[0]); + int y = Integer.parseInt(data[1]); + int z = Integer.parseInt(data[2]); + int rotation = Integer.parseInt(data[3]); + destinationPosition = new Position(x, y, z, rotation, rotation); + } + + return new WalkwaysEntrance(roomId, roomTargetId, coordinates, destinationPosition); + } + + public WalkwaysEntrance getDestination(Room room, Position position) { + if (!room.isPublicRoom()) { + return null; + } + + for (WalkwaysEntrance entrance : this.walkways) { + if (entrance.getRoomId() != room.getId()) { + continue; + } + + Position destination = room.getModel().getDoorLocation(); + + if (entrance.getDestination() != null) { + destination = entrance.getDestination(); + } + + if (destination.equals(position)) { + return entrance; + } + } + + return null; + } + + public WalkwaysEntrance getWalkway(Room room, Position position) { + if (!room.isPublicRoom()) { + return null; + } + + for (WalkwaysEntrance entrance : this.walkways) { + if (entrance.getRoomId() != room.getId()) { + continue; + } + + for (Position coord : entrance.getFromCoords()) { + if (coord.equals(position)) { + return entrance; + } + } + } + + return null; + } + + /** + * Get walkways. + * + * @return the list of walkways + */ + public List getWalkways() { + return walkways; + } + + /** + * Get the {@link WalkwaysManager} instance + * + * @return the item manager instance + */ + public static WalkwaysManager getInstance() { + if (instance == null) { + instance = new WalkwaysManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomEntityManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomEntityManager.java new file mode 100644 index 0000000..96d6847 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomEntityManager.java @@ -0,0 +1,419 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.dao.mysql.RoomRightsDao; +import org.alexdev.havana.dao.mysql.RoomVoteDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.bot.Bot; +import org.alexdev.havana.game.bot.BotData; +import org.alexdev.havana.game.bot.BotManager; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleManager; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabblePlayer; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.types.TeleportInteractor; +import org.alexdev.havana.game.item.publicrooms.PublicItemParser; +import org.alexdev.havana.game.misc.figure.FigureManager; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.outgoing.events.ROOMEEVENT_INFO; +import org.alexdev.havana.messages.outgoing.rooms.FLATPROPERTY; +import org.alexdev.havana.messages.outgoing.rooms.ROOM_READY; +import org.alexdev.havana.messages.outgoing.rooms.UPDATE_VOTES; +import org.alexdev.havana.messages.outgoing.rooms.user.HOTEL_VIEW; +import org.alexdev.havana.messages.outgoing.rooms.user.LOGOUT; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_OBJECTS; +import org.alexdev.havana.util.FigureUtil; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class RoomEntityManager { + private Room room; + private AtomicInteger counter; + + public RoomEntityManager(Room room) { + this.room = room; + this.counter = new AtomicInteger(0); + } + + /** + * Generates a unique ID for the entities in a room. Will be used for pets + * and bots in future. + * + * @return the unique ID + */ + public int generateUniqueId() { + return this.counter.getAndIncrement(); + } + + /** + * Return the list of entities currently in this room by its + * given class. + * + * @param entityClass the entity class + * @return List list of entities + */ + public List getEntitiesByClass(Class entityClass) { + List entities = new ArrayList<>(); + + for (Entity entity : this.room.getEntities()) { + if (entity.getClass().isAssignableFrom(entityClass)) { + entities.add(entityClass.cast(entity)); + } + } + + return entities; + } + + /** + * Return the list of players currently in this room by its + * given class. + * + * @return List list of players + */ + public List getPlayers() { + return getEntitiesByClass(Player.class); + } + + /** + * Get an entity by instance id. + * + * @param instanceId the instance id to get by + * @return the entity + */ + public Entity getByInstanceId(int instanceId) { + for (Entity entity : this.room.getEntities()) { + if (entity.getRoomUser().getInstanceId() == instanceId) { + return entity; + } + } + + return null; + } + + /** + * Get an entity by id. + * + * @param id the instance id to get by + * @return the entity + */ + public Entity getById(int id, EntityType entityType) { + for (Entity entity : this.room.getEntities()) { + if (entity.getDetails().getId() == id && entity.getType() == entityType) { + return entity; + } + } + + return null; + } + + /** + * Adds a generic entity to the room. + * Will send packets if the entity is a player. + * + * @param entity the entity to add + * @param destination the (optional) destination to take the user to when they enter + */ + public void enterRoom(Entity entity, Position destination) { + this.silentlyEnterRoom(entity, destination); + + // From this point onwards we send packets for the user to enter + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + player.send(new ROOM_READY(this.room.getId(), this.room.getModel().getName())); + player.send(new FLATPROPERTY("landscape", this.room.getData().getLandscape())); + + if (this.room.getData().getWallpaper() > 0) { + player.send(new FLATPROPERTY("wallpaper", this.room.getData().getWallpaper())); + } + + if (this.room.getData().getFloor() > 0) { + player.send(new FLATPROPERTY("floor", this.room.getData().getFloor())); + } + + // Only refresh rights when in private room + if (!this.room.isPublicRoom()) { + this.room.refreshRights(player, false); + } + + // Don't let the room owner vote on it's own room + boolean voted = this.room.isOwner(player.getDetails().getId()) || this.room.hasVoted(player); + + // Send -1 to users who haven't voted yet, and vote count to others + // We do this to make the vote UI pop up + if (voted) { + player.send(new UPDATE_VOTES(this.room.getData().getRating())); + } else { + player.send(new UPDATE_VOTES(-1)); + } + + player.send(new ROOMEEVENT_INFO(EventsManager.getInstance().getEventByRoomId(this.room.getId()))); + + } + + public void silentlyEnterRoom(Entity entity, Position destination) { + if (entity.getRoomUser().getRoom() != null) { + entity.getRoomUser().getRoom().getEntityManager().leaveRoom(entity, false); + } + + // If the room is not loaded, add room, as we intend to join it. Game arena rooms don't get added. + if (!RoomManager.getInstance().hasRoom(this.room.getId()) && !this.room.isGameArena() && !this.room.getData().isCustomRoom()) { + RoomManager.getInstance().addRoom(this.room); + } + + entity.getRoomUser().reset(); + entity.getRoomUser().setRoom(this.room); + entity.getRoomUser().setInstanceId(this.generateUniqueId()); + + Position entryPosition = this.room.getModel().getDoorLocation(); + + if (destination != null) { + entryPosition = destination.copy(); + } + + entity.getRoomUser().setPosition(entryPosition); + + if (entity.getType() == EntityType.PLAYER) { + Player player = (Player) entity; + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer != null && gamePlayer.isEnteringGame()) { + entity.getRoomUser().setInstanceId(gamePlayer.getObjectId()); // Instance ID will always be player id + entity.getRoomUser().setWalkingAllowed(false); // Block walking initially when joining game + } + } + + if (entity.getType() != EntityType.PLAYER) { + if (this.getPlayers().size() > 0) { + this.room.send(new USER_OBJECTS(entity)); + } + } + + this.room.getEntities().add(entity); + this.room.getData().setVisitorsNow(this.room.getEntityManager().getPlayers().size()); + + if (entity.getType() == EntityType.BOT) { + if (entity.getDetails().getName().equals("Abigail.Ryan")) { + entity.getRoomUser().useEffect(13); // Ghost effect + } + } + + // From this point onwards we send packets for the user to enter + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + player.getRoomUser().setAuthenticateId(-1); + + this.tryInitialiseRoom(player); + + if (player.getRoomUser().getAuthenticateTelporterId() != -1) { + Item teleporter = this.room.getItemManager().getByDatabaseId(player.getRoomUser().getAuthenticateTelporterId()); + + if (teleporter != null) { + player.getRoomUser().setWalkingAllowed(false); + entity.getRoomUser().setPosition(teleporter.getPosition().copy()); + + GameScheduler.getInstance().getService().schedule(() -> { + teleporter.setCustomData(TeleportInteractor.TELEPORTER_EFFECTS); + teleporter.updateStatus(); + }, 0, TimeUnit.SECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + teleporter.setCustomData(TeleportInteractor.TELEPORTER_OPEN); + teleporter.updateStatus(); + + player.getRoomUser().walkTo( + teleporter.getPosition().getSquareInFront().getX(), + teleporter.getPosition().getSquareInFront().getY()); + }, 1000, TimeUnit.MILLISECONDS); + + GameScheduler.getInstance().getService().schedule(() -> { + teleporter.setCustomData(TeleportInteractor.TELEPORTER_CLOSE); + teleporter.updateStatus(); + + player.getRoomUser().setWalkingAllowed(true); + }, 1500, TimeUnit.MILLISECONDS); + + + } + + player.getRoomUser().setAuthenticateTelporterId(-1); + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer != null && gamePlayer.isEnteringGame()) { + gamePlayer.setEnteringGame(false); + } + + player.getMessenger().sendStatusUpdate(); // Let friends know I entered this room by updating their console :) + RoomDao.saveVisitors(this.room.getId(), this.room.getEntityManager().getPlayers().size()); // Save increased visitor count of this room + } + + /** + * Setup the room initially for room entry. + */ + private void tryInitialiseRoom(Player player) { + if (!this.room.isActive()) { + if (!this.room.isGameArena() && !this.room.getData().isCustomRoom()) { + this.room.getItems().clear(); + this.room.getRights().clear(); + this.room.getVotes().clear(); + + if (this.room.isPublicRoom()) { + this.room.getItems().addAll(PublicItemParser.getPublicItems(this.room.getId(), this.room.getModel().getId())); + } else { + this.room.getRights().addAll(RoomRightsDao.getRoomRights(this.room.getData())); + this.room.getVotes().addAll(RoomVoteDao.getRatings(this.room.getId())); + } + + this.room.getItems().addAll(ItemDao.getRoomItems(this.room.getData())); + this.room.getItemManager().resetItemStates(); + } + + this.room.getMapping().regenerateCollisionMap(); + this.room.getTaskManager().startTasks(); + }; + + if (player.getDetails().getName().equals("Abigail.Ryan")) { + player.getRoomUser().useEffect(13); // Ghost effect + } + } + + /** + * Setup the room initially for room entry. + * + * @return whether it was first entry + */ + public boolean tryRoomEntry(Player player) { + boolean isRoomActive = this.room.isActive(); + + if (!this.room.isActive()) { + this.room.setActive(true); + }; + + if (this.room.getModel().getRoomTrigger() != null) { + this.room.getModel().getRoomTrigger().onRoomEntry(player, this.room, !isRoomActive); + } + + // Load bot data if first entry + if (!isRoomActive) { + BotManager.getInstance().addBots(this.room); + } + + return !isRoomActive; + } + + /** + * Setup handler for the entity to leave room. + * + * @param entity the entity to leave + */ + public void leaveRoom(Entity entity, boolean hotelView) { + if (!this.room.getEntities().contains(entity)) { + return; + } + + this.room.getEntities().remove(entity); + + // Set up trigger for leaving a current item + if (entity.getRoomUser().getCurrentItem() != null) { + if (entity.getRoomUser().getCurrentItem().getDefinition().getInteractionType().getTrigger() != null) { + entity.getRoomUser().getCurrentItem().getDefinition().getInteractionType().getTrigger().onEntityLeave(entity, entity.getRoomUser(), entity.getRoomUser().getCurrentItem()); + } + } + + // Trigger for leaving room + if (this.room.getModel().getRoomTrigger() != null) { + this.room.getModel().getRoomTrigger().onRoomLeave(entity, this.room); + } + + // Entity tile removal + RoomTile tile = entity.getRoomUser().getTile(); + + if (tile != null) { + tile.removeEntity(entity); + } + + if (entity.getRoomUser().getNextPosition() != null) { + RoomTile nextTile = this.room.getMapping().getTile(entity.getRoomUser().getNextPosition()); + + if (nextTile != null) { + nextTile.removeEntity(entity); + } + } + + var players = this.room.getEntityManager().getPlayers(); + + // Handle the room logic behind the entity removal + this.room.getData().setVisitorsNow(this.room.getEntityManager().getPlayers().size()); + this.room.send(new LOGOUT(entity.getRoomUser().getInstanceId())); + this.room.tryDispose(); + + entity.getRoomUser().reset(); + + // From this point onwards we send packets for the user to leave + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (hotelView) { + player.send(new HOTEL_VIEW()); + } + + // End game if we leave during the middle of Wobble Squabble + if (WobbleSquabbleManager.getInstance().isPlaying(player)) { + WobbleSquabblePlayer wsPlayer = WobbleSquabbleManager.getInstance().getPlayer(player); + + // End game with a tie + wsPlayer.getGame().endGame(-1); + } + + // If we left room while in a game, leave the game + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer != null && !gamePlayer.isEnteringGame()) { + if (gamePlayer.getGame() != null) { + gamePlayer.getGame().leaveGame(gamePlayer); + } else { + player.getRoomUser().setGamePlayer(null); + } + } + + player.getMessenger().sendStatusUpdate(); + RoomDao.saveVisitors(this.room.getId(), this.room.getEntityManager().getPlayers().size()); + + } + + /** + * Get UUID counter. + * + * @return the counter + */ + public AtomicInteger getCounter() { + return counter; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomIdolManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomIdolManager.java new file mode 100644 index 0000000..25c3697 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomIdolManager.java @@ -0,0 +1,234 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.outgoing.rooms.items.JUDGE_GUI_STATUS; +import org.alexdev.havana.messages.outgoing.songs.START_PLAYING_SONG; +import org.alexdev.havana.messages.outgoing.songs.STOP_PLAYING_SONG; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class RoomIdolManager { + private Room room; + private Player performer; + private List voted; + private Song song; + + public RoomIdolManager(Room room) { + this.room = room; + this.voted = new ArrayList<>(); + } + + public void resetChairs() { + for (Item voteChair : this.room.getItemManager().getItemsByDefinition(InteractionType.IDOL_VOTE_CHAIR)) { + if (voteChair.getCustomData().equals("0")) + continue; + + voteChair.setCustomData("0"); + voteChair.updateStatus(); + voteChair.save(); + } + } + + public void startPerformance(Song song) { + if (this.performer == null) + return; + + if (this.room.getItemManager().getIdolScoreboard() == null) + return; + + this.song = song; + + for (Item voteChair : this.room.getItemManager().getItemsByDefinition(InteractionType.IDOL_VOTE_CHAIR)) { + for (Entity entity : voteChair.getTile().getEntities()) { + if (entity.getType() != EntityType.PLAYER) + continue; + + Player player = (Player) entity; + player.send(new JUDGE_GUI_STATUS(2, this.performer.getDetails().getId())); + } + } + + // Send song to players + this.startListening(); + + // Wooooooooo + Item scoreboard = this.room.getItemManager().getIdolScoreboard(); + + scoreboard.setCustomData("0"); + scoreboard.updateStatus(); + scoreboard.save(); + } + + public void stopListening() { + if (this.song == null) + return; + + // Stop song to players + if (this.room.getItemManager().getSoundMachine() != null && this.room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE)) { + this.room.send(new STOP_PLAYING_SONG(song.getId())); + + this.room.getItemManager().getSoundMachine().setCustomData("0"); + this.room.getItemManager().getSoundMachine().updateStatus(); + } + + this.song = null; + } + + public void startListening() { + if (this.song == null) + return; + + // Stop song to players + if (this.room.getItemManager().getSoundMachine() != null && this.room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE)) { + this.room.send(new START_PLAYING_SONG(song.getId())); + + this.room.getItemManager().getSoundMachine().setCustomData("1"); + this.room.getItemManager().getSoundMachine().updateStatus(); + } + } + + /** + * Update the performer instance + */ + public void updatePerformer() { + this.performer = null; + + if (this.room.getItemManager().getIdolScoreboard() == null) { + return; + } + + Item scoreboard = this.room.getItemManager().getIdolScoreboard(); + + if (scoreboard.getTile() == null) + return; + + RoomTile roomTile = scoreboard.getTile(); + var entities = roomTile.getEntireEntities(); + + if (entities.stream().anyMatch(e -> e.getType() == EntityType.PLAYER)) { + var optional = entities.stream().filter(e -> e.getType() == EntityType.PLAYER).findFirst(); + optional.ifPresent(entity -> this.performer = (Player) entity); + } + + } + + /** + * Force stop when user steps off platform + */ + public void forceStop() { + for (Item voteChair : this.room.getItemManager().getItemsByDefinition(InteractionType.IDOL_VOTE_CHAIR)) { + for (Entity entity : voteChair.getTile().getEntireEntities()) { + if (entity.getType() != EntityType.PLAYER) + continue; + + Player player = (Player) entity; + player.send(new JUDGE_GUI_STATUS(1, -1)); + } + } + + Item item = this.room.getItemManager().getIdolScoreboard(); + + if (item != null) { + item.setCustomData("-1"); + item.updateStatus(); + item.save(); + } + + this.stopListening(); + this.voted.clear(); + } + + /** + * Perform voting + * @param type the positive/negative vote + * @param player the player who voted + */ + public void vote(boolean type, Player player) { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Item chair = player.getRoomUser().getCurrentItem(); + + if (chair == null || chair.getDefinition().getInteractionType() != InteractionType.IDOL_VOTE_CHAIR) { + return; + } + + Item scoreboard = this.room.getItemManager().getIdolScoreboard(); + + if (scoreboard == null) { + return; + } + + Integer value = StringUtils.isNumeric(scoreboard.getCustomData()) ? Integer.parseInt(scoreboard.getCustomData()) : 0; + + if (type) { + chair.setCustomData("1"); + chair.updateStatus(); + + value++; + + scoreboard.setCustomData(String.valueOf(value)); + scoreboard.updateStatus(); + } + else { + chair.setCustomData("2"); + chair.updateStatus(); + + if (value > 0) { + value--; + } + + scoreboard.setCustomData(String.valueOf(value)); + scoreboard.updateStatus(); + } + + var voteChairs = this.room.getItemManager().getItemsByDefinition(InteractionType.IDOL_VOTE_CHAIR).stream().filter(item -> item.getCustomData().equals("0") && item.getTile().getEntireEntities().size() > 0).collect(Collectors.toList()); + + if (voteChairs.isEmpty()) { + this.forceStop(); + } + + if (this.performer != null) { + if (this.performer.getAchievementManager().getPossibleAchievements().stream().anyMatch(achievementInfo -> achievementInfo.getName().equals("ACH_AIPerformanceVote"))) { + String firstIp = NettyPlayerNetwork.getIpAddress(player.getNetwork().getChannel()); + String secondIp = NettyPlayerNetwork.getIpAddress(this.performer.getNetwork().getChannel()); + + if (firstIp != null && !(firstIp.equals(secondIp) || PlayerDao.getIpAddresses(player.getDetails().getId(), RoomTradeManager.TRADE_BAN_IP_HISTORY_LIMIT).contains(secondIp))) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_AIPERFORMANCEVOTE, this.performer); + } + } + } + + this.voted.add(player); + } + + public List getVoted() { + return voted; + } + + /** + * Get the current performer. + * + * @return the performer + */ + public Player getPerformer() { + return performer; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomItemManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomItemManager.java new file mode 100644 index 0000000..3a999bc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomItemManager.java @@ -0,0 +1,290 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomMapping; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.rooms.items.CANNOT_PLACE_STUFF_FROM_STRIP; + +import java.util.ArrayList; +import java.util.List; + +public class RoomItemManager { + private Room room; + + private Item soundMachine; + private Item moodlight; + private Item idolScoreboard; + + public RoomItemManager(Room room) { + this.room = room; + } + + /** + * Silently reset item extra data states in a room. + * Will not function if the room is a battleball/snowstorm arena. + */ + public void resetItemStates() { + if (this.room.isGameArena() || this.room.getData().isCustomRoom()) { + return; + } + + List itemsToSave = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (RoomMapping.resetExtraData(item, true)) { + itemsToSave.add(item); + } + } + + ItemDao.updateItems(itemsToSave); + } + + /** + * Get if the room has too many of a certain item. + * + * @param player the player placing the item + * @param item the item being placed + * @return true, if successful + */ + public boolean hasTooMany(Player player, Item item) { + if (this.room.getItemManager().getSoundMachine() != null && (item.hasBehaviour(ItemBehaviour.SOUND_MACHINE) || item.hasBehaviour(ItemBehaviour.JUKEBOX))) { + player.send(new CANNOT_PLACE_STUFF_FROM_STRIP(23)); + return true; + } + + if (this.room.getItemManager().getMoodlight() != null && (item.hasBehaviour(ItemBehaviour.ROOMDIMMER))) { + player.send(new ALERT(TextsManager.getInstance().getValue("roomdimmer_furni_limit"))); + return true; + } + + + if (this.room.getItemManager().getIdolScoreboard() != null && (item.getDefinition().getInteractionType() == InteractionType.IDOL_SCOREBOARD)) { + player.send(new ALERT("You can only place one American Idol scoreboard per room")); + return true; + } + + /*if (((this.room.getItemManager().getSoundMachine() == null) || !this.room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE) && item.getDefinition().getInteractionType() == InteractionType.IDOL_SCOREBOARD)) { + player.send(new ALERT("You must have a trax machine in your room before you place the American Idol hotspot")); + return true; + }*/ + + int postItSize = 25; + int rollerSize = 35; + int petNest = 3; + + if (player.getDetails().hasClubSubscription()) { + rollerSize = 60; + } + + if (this.getItemsByDefinition(ItemBehaviour.POST_IT).size() >= postItSize && (item.hasBehaviour(ItemBehaviour.POST_IT))) { + player.send(new CANNOT_PLACE_STUFF_FROM_STRIP(12)); + return true; + } + + if (this.getItemsByDefinition(ItemBehaviour.ROLLER).size() >= rollerSize && (item.hasBehaviour(ItemBehaviour.ROLLER))) { + player.send(new CANNOT_PLACE_STUFF_FROM_STRIP(22)); + return true; + } + + if (this.getItemsByDefinition(InteractionType.PET_NEST).size() >= petNest && (item.getDefinition().getInteractionType() == InteractionType.PET_NEST)) { + player.send(new CANNOT_PLACE_STUFF_FROM_STRIP(21)); + return true; + } + + return false; + } + + /** + * Get an item in the room by its item id. + * + * @param itemId the item id to retrieve the item instance. + * @return the new item + */ + public Item getById(int itemId) { + for (Item item : this.room.getItems()) { + if (item.getVirtualId() == itemId) { + return item; + } + } + + return null; + } + + /** + * Get an item in the room by its item id. + * + * @param itemId the item id to retrieve the item instance. + * @return the new item + */ + public Item getByDatabaseId(long itemId) { + for (Item item : this.room.getItems()) { + if (item.getDatabaseId() == itemId) { + return item; + } + } + + return null; + } + + /** + * Get the list of public items, used for rendering public room items. + * @return the list of public room items + */ + public List getPublicItems() { + List items = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (item.hasBehaviour(ItemBehaviour.INVISIBLE)) { + continue; + } + + if (item.hasBehaviour(ItemBehaviour.PRIVATE_FURNITURE)) { + continue; + } + + if (!item.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + continue; + } + + items.add(item); + } + + return items; + } + + /** + * Get the list of floor items, used for rendering purchased floor items through the catalogue. + * @return the list of floor items + */ + public List getFloorItems() { + List items = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (item.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + continue; + } + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + continue; + } + + items.add(item); + } + + return items; + } + + /** + * Get the list of wall items, used for rendering purchased wall items through the catalogue. + * @return the list of wall items + */ + public List getWallItems() { + List items = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (item.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + continue; + } + + if (!item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + continue; + } + + items.add(item); + } + + return items; + } + + /** + * Get a list of items by item behaviour + * @return the items + */ + public List getItemsByDefinition(ItemBehaviour itemBehaviour) { + List items = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (item.hasBehaviour(itemBehaviour)) { + items.add(item); + } + } + + return items; + } + + /** + * Get a list of items by interaction type + * @return the items + */ + public List getItemsByDefinition(InteractionType interactionType) { + List items = new ArrayList<>(); + + for (Item item : this.room.getItems()) { + if (item.getDefinition().getInteractionType() == interactionType) { + items.add(item); + } + } + + return items; + } + + /** + * Get the rooms' trax machine instance. + * + * @return the trax machine + */ + public Item getSoundMachine() { + return soundMachine; + } + + /** + * Set the rooms' trax instance. + * + * @param soundMachine the trax machine instance + */ + public void setSoundMachine(Item soundMachine) { + this.soundMachine = soundMachine; + } + + /** + * Get the rooms' moodlight instance. + * + * @return the moodlight + */ + public Item getMoodlight() { + return moodlight; + } + + /** + * Set the moodlight instance. + * + * @param moodlight the moodlight instance + */ + public void setMoodlight(Item moodlight) { + this.moodlight = moodlight; + } + + /** + * Get the idol scoreboard in the room + * + * @return the scoreboard + */ + public Item getIdolScoreboard() { + return idolScoreboard; + } + + /** + * Set the scoreboard. + * + * @param idolScoreboard the scoreboard to set + */ + public void setIdolScoreboard(Item idolScoreboard) { + this.idolScoreboard = idolScoreboard; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTaskManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTaskManager.java new file mode 100644 index 0000000..91f9cce --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTaskManager.java @@ -0,0 +1,136 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallTask; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.tasks.SnowStormGameTask; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.tasks.EntityTask; +import org.alexdev.havana.game.room.tasks.RollerTask; +import org.alexdev.havana.game.room.tasks.StatusTask; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +public class RoomTaskManager { + private Room room; + private ScheduledExecutorService executorService; + private Map, Runnable>> processTasks; + + public RoomTaskManager(Room room) { + this.room = room; + this.processTasks = new ConcurrentHashMap<>(); + } + + /** + * Start all needed room tasks, called when there's at least 1 player in the room. + */ + public void startTasks() { + this.executorService = GameScheduler.getInstance().getService(); + + if (this.room.isGameArena()) { + this.loadGameTasks(); + return; + } + + this.scheduleTask("EntityTask", new EntityTask(this.room), 0, 500, TimeUnit.MILLISECONDS); + this.scheduleTask("StatusTask", new StatusTask(this.room), 0, 1, TimeUnit.SECONDS); + + // Only allow roller tasks to be created for private rooms + if (!this.room.isPublicRoom()) { + int rollerMillisTask = GameConfiguration.getInstance().getInteger("roller.tick.default"); + this.scheduleTask("RollerTask", new RollerTask(this.room), 250, rollerMillisTask, TimeUnit.MILLISECONDS); + } + } + + private void loadGameTasks() { + Game game = this.room.getData().getGame(); + + if (game == null) { + return; + } + + if (game instanceof BattleBallGame) { + BattleBallGame battleballGame = (BattleBallGame) game; + this.scheduleTask("GameTask", new BattleBallTask(this.room, battleballGame), 0, 500, TimeUnit.MILLISECONDS); + } + + if (game instanceof SnowStormGame) { + SnowStormGame snowStormGame = (SnowStormGame) game; + this.scheduleTask("UpdateTask", new SnowStormGameTask(this.room, snowStormGame), 0, 300, TimeUnit.MILLISECONDS); + } + } + + /** + * Stop tasks, called when there's no players in the room. + */ + public void stopTasks() { + for (var tasksKvp : this.processTasks.entrySet()) { + tasksKvp.getValue().getLeft().cancel(false); + } + + this.processTasks.clear(); + } + + /** + * Schedule a custom task with a delay. + * + * @param taskName the task name identifier + * @param runnableTask the runnable task instance + * @param interval the interval of the task + * @param delay the time to wait before the task starts + * @param timeUnit the time unit of the interval + */ + public void scheduleTask(String taskName, Runnable runnableTask, long delay, long interval, TimeUnit timeUnit) { + this.cancelTask(taskName); + + var future = this.executorService.scheduleAtFixedRate(runnableTask, delay, interval, timeUnit); + this.processTasks.put(taskName, Pair.of( + future, + runnableTask + )); + } + + /** + * Cancels a custom task by task name. + * + * @param taskName the name of the task to cancel + */ + public void cancelTask(String taskName) { + if (this.processTasks.containsKey(taskName)) { + this.processTasks.get(taskName).getLeft().cancel(false); + this.processTasks.remove(taskName); + } + } + + /** + * Gets the task by the task name + * + * @param taskName the task name to locate task + * @return the task instance + */ + public Runnable getTask(String taskName) { + if (this.processTasks.containsKey(taskName)) { + return this.processTasks.get(taskName).getValue(); + } + + return null; + } + + /** + * Get if the task is registered. + * + * @param taskName the task name to check for + * @return true, if successful + */ + public boolean hasTask(String taskName) { + return this.processTasks.containsKey(taskName); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTimerManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTimerManager.java new file mode 100644 index 0000000..89f799c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTimerManager.java @@ -0,0 +1,120 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +public class RoomTimerManager { + private Entity entity; + private RoomEntity roomEntity; + private int lookTimer; + private long afkTimer; + private long sleepTimer; + private long chatBubbleTimer; + + public RoomTimerManager(RoomEntity roomEntity) { + this.roomEntity = roomEntity; + this.entity = roomEntity.getEntity(); + } + + /** + * Reset all timers, used for first entry into room. + */ + public void resetTimers() { + this.resetRoomTimer(); + this.stopChatBubbleTimer(); + this.stopLookTimer(); + } + + /** + * Set the room timer, make it 10 minutes by default + */ + public void resetRoomTimer() { + this.resetRoomTimer(GameConfiguration.getInstance().getInteger("afk.timer.seconds")); + } + + /** + * Set the room timer, but with an option to override it. + * + * @param afkTimer the timer to override + */ + public void resetRoomTimer(long afkTimer) { + /*if (this.entity.getRoomUser().getRoom() != null) { + Room room = this.entity.getRoomUser().getRoom(); + + if (room.getData().getAccessTypeId() > 0 && idleResetReason == IdleResetReason.ALL) { + return; + } + }*/ + + this.afkTimer = DateUtil.getCurrentTimeSeconds() + afkTimer; + this.sleepTimer = DateUtil.getCurrentTimeSeconds() + GameConfiguration.getInstance().getInteger("sleep.timer.seconds"); + + // If the user was sleeping, remove the sleep and tell the room cycle to update our character + if (this.roomEntity.isSleeping()) { + this.roomEntity.sleep(false); + } + } + + /** + * Begin head look timer. + */ + public void beginLookTimer() { + this.beginLookTimer(6); + } + + /** + * Begin head look timer with custom time + * + * @param time the time in seconds before the head rotates + */ + public void beginLookTimer(int time) { + this.lookTimer = DateUtil.getCurrentTimeSeconds() + time; + } + + /** + * Stop head look timer. + */ + public void stopLookTimer() { + this.lookTimer = -1; + } + + /** + * Begin talk time out. + */ + public void beginChatBubbleTimer() { + int timeout = GameConfiguration.getInstance().getInteger("talk.bubble.timeout.seconds"); + + if (timeout > 0) { + this.chatBubbleTimer = DateUtil.getCurrentTimeSeconds() + timeout; + } + } + + /** + * Stop talk time out. + */ + public void stopChatBubbleTimer() { + this.chatBubbleTimer = -1; + } + + public Entity getEntity() { + return entity; + } + + public long getChatBubbleTimer() { + return chatBubbleTimer; + } + + public int getLookTimer() { + return lookTimer; + } + + public long getAfkTimer() { + return afkTimer; + } + + public long getSleepTimer() { + return sleepTimer; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java new file mode 100644 index 0000000..8c88a1a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/RoomTradeManager.java @@ -0,0 +1,174 @@ +package org.alexdev.havana.game.room.managers; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.entities.RoomPlayer; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.trade.TRADE_CLOSE; +import org.alexdev.havana.messages.outgoing.trade.TRADE_ITEMS; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class RoomTradeManager { + public static final int TRADE_BAN_IP_HISTORY_LIMIT = 20; + + /** + * Close trade window, called when user leaves room, or closes + * the trade window. Will close the partners trade window too. + * + * @param roomEntity the room user to close the trade window for + */ + public static void close(RoomPlayer roomEntity, boolean serverClosed) { + Player player = (Player) roomEntity.getEntity(); + + if (roomEntity.getTradePartner() != null) { + player.send(new TRADE_CLOSE(serverClosed ? player.getDetails().getId() : player.getDetails().getId())); + player.getInventory().getView("new"); + + roomEntity.getTradePartner().send(new TRADE_CLOSE(serverClosed ? player.getRoomUser().getTradePartner().getDetails().getId() : player.getDetails().getId())); + roomEntity.getTradePartner().getInventory().getView("new"); + + reset(roomEntity.getTradePartner().getRoomUser()); + } + + reset(roomEntity); + } + + /** + * Finishes trade window with user. + * + * @param roomEntity the room user to close the trade window for + */ + public static void finish(RoomPlayer roomEntity) { + Player player1 = (Player) roomEntity.getEntity(); + Player player2 = null; + + if (roomEntity.getTradePartner() != null) { + player2 = roomEntity.getTradePartner(); + reset(player2.getRoomUser()); + } + + reset(roomEntity); + + if (player1 != null) { + player1.getInventory().getView("new"); + } + + if (player2 != null) { + player2.getInventory().getView("new"); + } + } + + /** + * Resets all trade variables. + * + * @param roomEntity the room user to reset the trade variables for + */ + private static void reset(RoomPlayer roomEntity) { + ItemDao.updateTradeStates(roomEntity.getTradeItems(), false); + + roomEntity.getTradeItems().clear(); + roomEntity.setTradeConfirmed(false); + roomEntity.setTradeAccept(false); + roomEntity.setTradePartner(null); + roomEntity.setCanConfirmTrade(false); + + roomEntity.removeStatus(StatusType.TRADE); + roomEntity.setNeedsUpdate(true); + } + + /** + * Refresh the trade window, called when a user agrees/unagrees or adds + * an item to the trade window. Will be ignored if they have no trade + * partner. + * + * @param player the player to refresh the trade window for + */ + public static void refreshWindow(Player player) { + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + Player tradePartner = player.getRoomUser().getTradePartner(); + + player.send(new TRADE_ITEMS( + player, + new ArrayList<>(player.getRoomUser().getTradeItems()), + tradePartner, + new ArrayList<>(tradePartner.getRoomUser().getTradeItems()) + )); + } + + /** + * Adds an item from the trade partners offered items into the first parameter + * players' inventory. + * + * @param player the player to add the items into + * @param tradePartner the player to get the items offered from + */ + public static void addItems(Player player, Player tradePartner) { + List itemsToUpdate = new ArrayList<>(); + + for (Item item : tradePartner.getRoomUser().getTradeItems()) { + tradePartner.getInventory().getItems().remove(item); + player.getInventory().addItem(item); + + try { + TransactionDao.createTransaction(player.getDetails().getId(), + String.valueOf(item.getDatabaseId()), String.valueOf(item.getDefinition().getId()), 1, + "Traded " + item.getDefinition().getName() + " from " + tradePartner.getDetails().getName(), + 0, tradePartner.getDetails().getId(), false); + + TransactionDao.createTransaction(tradePartner.getDetails().getId(), + String.valueOf(item.getDatabaseId()), String.valueOf(item.getDefinition().getId()), 1, + "Traded " + item.getDefinition().getName() + " to " + player.getDetails().getName(), + 0, player.getDetails().getId(), false); + } catch (Exception ex) { + + } + + item.setOwnerId(player.getDetails().getId()); + item.setRoomId(0); + + itemsToUpdate.add(item); + } + + ItemDao.updateItemOwnership(itemsToUpdate); + } + + /** + * Do trade ban. + * + * @param tradeBanned the person that is trade banned. + */ + public static void addTradeBan(Player tradeBanned) { + tradeBanned.send(new ALERT("You have been trade banned for 7 days for suspicious activity. Do not give credits to other users.
Read for more info: https://classichabbo.com/articles/22-trade-banned")); + tradeBanned.getDetails().setTradeBanExpiration(DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(7)); + ItemDao.saveTradeBanExpire(tradeBanned.getDetails().getId(), tradeBanned.getDetails().getTradeBanExpiration()); + } + + /** + * Shows the trade ban alert to player. + * + * @param player the player + */ + public static String showTradeBanAlert(Player player) { + long uptime = (player.getDetails().getTradeBanExpiration() - DateUtil.getCurrentTimeSeconds()) * 1000; + long days = (uptime / (1000 * 60 * 60 * 24)); + long hours = (uptime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); + /*long minutes = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); + long seconds = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60) - minutes * (1000 * 60)) / (1000);*/ + + return "You are temporarily banned from trading.
The ban will expire in " + days + " day(s) and " + hours + " hours(s)"; + + //player.send(new ALERT("You are temporarily banned from trading.
The ban will expire in " + days + " day(s) and " + hours + " hours(s)")); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/VoteData.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/VoteData.java new file mode 100644 index 0000000..def9cec --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/managers/VoteData.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.game.room.managers; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class VoteData { + private final int userId; + private final int vote; + private final List ipAddresses; + private final String machineId; + + public VoteData(int userId, int vote, String ipAddresses, String machineId) { + this.userId = userId; + this.vote = vote; + this.ipAddresses = ipAddresses.split(",").length == 0 ? new ArrayList<>() : Arrays.asList(ipAddresses.split(",")); + this.machineId = machineId; + } + + public int getUserId() { + return userId; + } + + public int getVote() { + return vote; + } + + public List getIpAddresses() { + return ipAddresses; + } + + public String getMachineId() { + return machineId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomMapping.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomMapping.java new file mode 100644 index 0000000..419b1d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomMapping.java @@ -0,0 +1,617 @@ +package org.alexdev.havana.game.room.mapping; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.enums.TotemColour; +import org.alexdev.havana.game.item.interactors.types.FortuneInteractor; +import org.alexdev.havana.game.item.interactors.types.TeleportInteractor; +import org.alexdev.havana.game.item.interactors.types.TotemHeadTrigger; +import org.alexdev.havana.game.pathfinder.AffectedTile; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.handlers.PoolHandler; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.rooms.HEIGHTMAP_UPDATE; +import org.alexdev.havana.messages.outgoing.rooms.items.*; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class RoomMapping { + private Room room; + private RoomModel roomModel; + private RoomTile[][] roomMap; + private List tileList; + + public RoomMapping(Room room) { + this.room = room; + } + + /** + * Regenerate the entire collision map used for + * furniture and entity detection + */ + public void regenerateCollisionMap() { + this.tileList = new CopyOnWriteArrayList<>(); + this.roomModel = this.room.getModel(); + this.roomMap = new RoomTile[this.roomModel.getMapSizeX()][this.roomModel.getMapSizeY()]; + + for (int x = 0; x < this.roomModel.getMapSizeX(); x++) { + for (int y = 0; y < this.roomModel.getMapSizeY(); y++) { + var roomTile = new RoomTile(this.room, new Position(x, y), this.roomModel.getTileHeight(x, y)); + this.roomMap[x][y] = roomTile; + this.tileList.add(roomTile); + } + } + + try { + this.room.getItemManager().setSoundMachine(null); + this.room.getItemManager().setMoodlight(null); + this.room.getItemManager().setIdolScoreboard(null); + + if (!this.room.isGameArena()) { + List items = new ArrayList<>(this.room.getItems()); + items.sort(Comparator.comparingDouble((Item item) -> item.getPosition().getZ())); + + for (Item item : items) { + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + continue; + } + + RoomTile tile = item.getTile(); + + if (tile == null) { + continue; + } + + for (Position position : AffectedTile.getAffectedTiles(item)) { + RoomTile affectedTile = this.getTile(position); + + if (affectedTile == null) { + continue; + } + + affectedTile.addItem(item); + + if (item.hasBehaviour(ItemBehaviour.PUBLIC_SPACE_OBJECT)) { + PoolHandler.setupRedirections(this.room, item); + } + } + } + } + + } catch (Exception ex) { + Log.getErrorLogger().error(String.format("Generate collision map failed for room %s", this.room.getId()), ex); + } + + try { + for (Entity entity : this.room.getEntities()) { + RoomTile tile = entity.getRoomUser().getTile(); + + if (tile == null) { + continue; + } + + tile.addEntity(entity); + } + + } catch (Exception ex) { + Log.getErrorLogger().error(String.format("Generate entity map failed for room %s", this.room.getId()), ex); + } + + refreshRoomItems(); + } + + public void refreshRoomItems() { + this.room.getItemManager().setSoundMachine(null); + this.room.getItemManager().setIdolScoreboard(null); + this.room.getItemManager().setMoodlight(null); + + for (Item item : room.getItemManager().getFloorItems()) { + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + continue; + } + + RoomTile tile = item.getTile(); + + if (tile == null) { + continue; + } + + // Method to set only one jukebox per room + if (this.room.getItemManager().getSoundMachine() == null) { + if (item.hasBehaviour(ItemBehaviour.JUKEBOX) || item.hasBehaviour(ItemBehaviour.SOUND_MACHINE)) { + this.room.getItemManager().setSoundMachine(item); + } + } + + if (this.room.getItemManager().getIdolScoreboard() == null) { + if (item.getDefinition().getInteractionType() == InteractionType.IDOL_SCOREBOARD) { + this.room.getItemManager().setIdolScoreboard(item); + } + } + } + + // Method to set only one moodlight per room + for (Item item : this.room.getItemManager().getWallItems()) { + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + this.room.getItemManager().setMoodlight(item); + break; + } + } + } + + /** + * Try and send heightmap + */ + public void sendMap() { + try { + this.room.send(new HEIGHTMAP_UPDATE(this.room, this.roomModel)); + } catch (Exception ex) { + Log.getErrorLogger().error(String.format("Send heightmap failed for room %s", this.room.getId()), ex); + } + } + + /** + * Add a specific item to the room map + * + * @param item the item to add + */ + public void addItem(Player player, Item item) { + item.setRoomId(this.room.getId()); + item.setOwnerId(this.room.getData().getOwnerId()); + item.setRollingData(null); + item.setOrderId(-1); + item.setLastPlacedTime(System.currentTimeMillis()); + + resetExtraData(item, false); + this.room.getItems().add(item); + + if (item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + item.setCustomData(TeleportInteractor.TELEPORTER_CLOSE); + } + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + this.room.send(new PLACE_WALLITEM(item)); + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + this.room.getItemManager().setMoodlight(item); + } + } else { + this.handleItemAdjustment(item, false); + + for (Position position : AffectedTile.getAffectedTiles(item)) { + RoomTile affectedTile = this.getTile(position); + + if (affectedTile == null) { + continue; + } + + affectedTile.addItem(item); + } + + this.sendMap(); + this.room.send(new PLACE_FLOORITEM(item)); + } + + item.updateEntities(null); + item.save(); + + ItemDao.updateItemOwnership(item); + + if (!item.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + item.getDefinition().getInteractionType().getTrigger().onItemPlaced(player, this.room, item); + } + + refreshRoomItems(); + } + + /** + * Move an item, will regenerate the map if the item is a floor item. + * + * @param item the item that is moving + */ + public void moveItem(Player player, Item item, Position newPosition, Position oldPosition) { + boolean isRotation = false; + + Item itemBelow = item.getItemBelow(); + Item itemAbove = item.getItemAbove(); + + if (item.getPosition().equals(new Position(newPosition.getX(), newPosition.getY())) && item.getPosition().getRotation() != newPosition.getRotation()) { + isRotation = true; + } + + for (Position position : AffectedTile.getAffectedTiles(item)) { + RoomTile affectedTile = this.getTile(position); + + if (affectedTile == null) { + continue; + } + + affectedTile.removeItem(item); + } + + item.getPosition().setX(newPosition.getX()); + item.getPosition().setY(newPosition.getY()); + item.getPosition().setRotation(newPosition.getRotation()); + item.setRoomId(this.room.getId()); + item.setRollingData(null); + item.setLastPlacedTime(System.currentTimeMillis()); + resetExtraData(item, false); + + if (!item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + this.handleItemAdjustment(item, isRotation); + + for (Position position : AffectedTile.getAffectedTiles(item)) { + RoomTile affectedTile = this.getTile(position); + + if (affectedTile == null) { + continue; + } + + affectedTile.addItem(item); + } + + this.sendMap(); + this.room.send(new MOVE_FLOORITEM(item)); + } + + if (!isRotation) { + // Reset people teleporting + if (item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + for (Entity entity : item.getRoom().getEntities()) { + if (entity.getType() == EntityType.PLAYER) { + + Player p = (Player) entity; + + if (p.getRoomUser().getPosition().equals(oldPosition) || + p.getRoomUser().getAuthenticateTelporterId() == item.getVirtualId()) { + p.getRoomUser().setAuthenticateTelporterId(-1); + p.getRoomUser().setWalkingAllowed(true); + } + } + } + } + } + + item.updateEntities(oldPosition); + item.save(); + + item.getDefinition().getInteractionType().getTrigger().onItemMoved(player, this.room, item, isRotation, oldPosition, itemBelow, itemAbove); + refreshRoomItems(); + } + + /** + * Remove an item from the room. + * + * @param item the item that is being removed + */ + public void removeItem(Player player, Item item) { + item.getDefinition().getInteractionType().getTrigger().onItemPickup(player, this.room, item); + this.room.getItems().remove(item); + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + this.room.send(new REMOVE_WALLITEM(item)); + } else { + for (Position position : AffectedTile.getAffectedTiles(item)) { + RoomTile affectedTile = this.getTile(position); + + if (affectedTile == null) { + continue; + } + + affectedTile.removeItem(item); + } + + this.sendMap(); + this.room.send(new REMOVE_FLOORITEM(item)); + } + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + if (item.getCustomData().isEmpty()) { + item.setCustomData(Item.DEFAULT_ROOMDIMMER_CUSTOM_DATA); + } + + if (item.getCustomData().charAt(0) == '2') { // Roomdimmer is enabled, turn it off. + item.setCustomData("1" + item.getCustomData().substring(1)); + } + + this.room.getItemManager().setMoodlight(null); + } + + if (item.getDefinition().getSprite().equals("totem_head")) { + TotemColour headColour = TotemHeadTrigger.getHeadColour(item); + + if (headColour != TotemColour.NONE || item.getCustomData().equals("11")) { // "11" for the bird with the open wings + int state = TotemHeadTrigger.convertHeadToColour(item, TotemColour.NONE); + + if (state == 11) { + state = 2; + } + + item.setCustomData(String.valueOf(state)); + } + } + + resetExtraData(item, false); + item.updateEntities(null); + + item.getPosition().setX(0); + item.getPosition().setY(0); + item.getPosition().setZ(0); + item.getPosition().setRotation(0); + item.setRoomId(0); + item.setRollingData(null); + item.save(); + + refreshRoomItems(); + } + + /** + * Reset item extra data when moving or picking up item. + * + * @param item the item to reset + */ + public static boolean resetExtraData(Item item, boolean roomLoad) { + if (item.hasBehaviour(ItemBehaviour.DICE)) { + item.setRequiresUpdate(false); + + // For some reason the client expects the HC dice to have a default of 1 while the normal dice a default of 0 (off) + // Client expects default of 1 for HC dices + /*switch (item.getDefinition().getSprite()) { + case "edicehc": + if (roomLoad) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + } else { + if (!item.getCustomData().equals("1")) { + item.setCustomData("1"); + return true; + } + } + break; + case "edice": + // Client expects default of 0 (off) for 'normal'/'oldskool' dices + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + break; + default: + // Handle custom furniture dices (TODO: define behaviour differences between HC dice and 'oldskool' dices) + if (!item.getCustomData().equals("1")) { + item.setCustomData("1"); + return true; + } + break; + }*/ + } + + if (!item.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + int currentRotation = item.getPosition().getRotation(); + + if (item.getDefinition().getAllowedRotations().size() > 0) { + if (!item.getDefinition().getAllowedRotations().contains(currentRotation)) { + item.getPosition().setRotation(item.getDefinition().getAllowedRotations().get(0)); + return true; + } + } + } + + if (item.getDefinition().getInteractionType() == InteractionType.LERT) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + } + + if (item.getDefinition().getInteractionType() == InteractionType.IDOL_VOTE_CHAIR) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + } + + if (item.getDefinition().getInteractionType() == InteractionType.IDOL_SCOREBOARD) { + if (!item.getCustomData().equals("-1")) { + item.setCustomData("-1"); + return true; + } + } + + if (item.hasBehaviour(ItemBehaviour.ONE_WAY_GATE)) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + } + + if (item.getDefinition().getInteractionType() == InteractionType.FORTUNE) { + if (!item.getCustomData().equals(String.valueOf(FortuneInteractor.FORTUNE_OFF))) { + item.setCustomData(String.valueOf(FortuneInteractor.FORTUNE_OFF)); + return true; + } + + item.setRequiresUpdate(false); + } + + if (item.getDefinition().getInteractionType() == InteractionType.VENDING_MACHINE) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + + item.setRequiresUpdate(false); + } + + if (item.getDefinition().getInteractionType() == InteractionType.LOVE_RANDOMIZER) { + if (!item.getCustomData().equals("0")) { + item.setCustomData("0"); + return true; + } + + item.setRequiresUpdate(false); + } + + if (item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + if (!item.getCustomData().equals(TeleportInteractor.TELEPORTER_CLOSE)) { + item.setCustomData(TeleportInteractor.TELEPORTER_CLOSE); + return true; + } + + } + + if (item.isCurrentRollBlocked()) { + item.setCurrentRollBlocked(false); + } + + return false; + } + + /** + * Handle item adjustment. + * + * @param item the item + * @param isRotation the rotation only + */ + private void handleItemAdjustment(Item item, boolean isRotation) { + RoomTile tile = this.getTile(item.getPosition()); + + if (tile == null) { + return; + } + + if (!isRotation) { + Item highestItem = tile.getHighestItem(); + double tileHeight = tile.getTileHeight(); + + if (highestItem != null && highestItem.getDatabaseId() == item.getDatabaseId()) { + tileHeight -= highestItem.getTotalHeight(); + + double defaultHeight = this.room.getModel().getTileHeight(item.getPosition().getX(), item.getPosition().getY()); + + if (tileHeight < defaultHeight) { + tileHeight = defaultHeight; + } + } + + item.getPosition().setZ(tileHeight); + + if (highestItem != null && highestItem.getRollingData() != null) { + Item roller = highestItem.getRollingData().getRoller(); + + if (highestItem.getItemBelow() != null && highestItem.getItemBelow().hasBehaviour(ItemBehaviour.ROLLER)) { + // If the difference between the roller, and the next item up is more than 0.5, then set the item below the floating item + if (Math.abs(highestItem.getPosition().getZ() - roller.getPosition().getZ()) >= 0.5) { + item.getPosition().setZ(roller.getPosition().getZ() + roller.getDefinition().getPositiveTopHeight()); + } + } + + item.getPosition().setZ(roller.getPosition().getZ() + roller.getDefinition().getPositiveTopHeight()); + + /*if (!highestItem.hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP)) { + item.getPosition().setZ(roller.getPosition().getZ() + roller.getDefinition().getTopHeight()); + + /*for (Item tileItem : tile.getItems()) { + if (tileItem.getPosition().getZ() >= item.getPosition().getZ()) { + tileItem.getRollingData().setHeightUpdate(item.getDefinition().getTopHeight()); + } + } + }*/ + } + }/* else { + Item nextItem = item.getItemAbove(); + + while (nextItem != null) { + if (nextItem.getPosition().getRotation() != item.getPosition().getRotation()) { + nextItem.getPosition().setRotation(item.getPosition().getRotation()); + nextItem.save(); + + item.getRoom().send(new MOVE_FLOORITEM(nextItem)); + } else { + break; + } + + nextItem = nextItem.getItemAbove(); + } + }*/ + + if (item.getPosition().getZ() > GameConfiguration.getInstance().getInteger("stack.height.limit")) { + item.getPosition().setZ(GameConfiguration.getInstance().getInteger("stack.height.limit")); + } + } + + /** + * Get the tile by {@link Position} instance + * + * @param position the position class to find tile + * @return the tile, found, else null + */ + public RoomTile getTile(Position position) { + return getTile(position.getX(), position.getY()); + } + + /** + * Get the tile by specified coordinates. + * + * @param x the x coordinate + * @param y the y coordinate + * @return the tile, found, else null + */ + public RoomTile getTile(int x, int y) { + if (x < 0 || y < 0) { + return null; + } + + if (this.roomModel == null) { + return null; + } + + if (x >= this.room.getModel().getMapSizeX() || y >= this.room.getModel().getMapSizeY()) { + return null; + } + + if (x >= this.roomModel.getMapSizeX() || y >= this.roomModel.getMapSizeY()) { + return null; + } + + if (this.roomModel.getTileState(x, y) == RoomTileState.CLOSED) { + return null; + } + + return this.roomMap[x][y]; + } + + public Position getRandomWalkableBound(Entity entity) { + Position position = null; + + boolean isWalkable = false; + int attempts = 0; + int maxAttempts = 10; + + while (attempts < maxAttempts) { + attempts++; + + int randomX = this.room.getModel().getRandomBound(0); + int randomY = this.room.getModel().getRandomBound(1); + position = new Position(randomX, randomY); + + if (RoomTile.isValidTile(this.room, entity, position)) { + return position; + } + } + + return null; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTile.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTile.java new file mode 100644 index 0000000..a99e1b7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTile.java @@ -0,0 +1,493 @@ +package org.alexdev.havana.game.room.mapping; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.pathfinder.Pathfinder; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysEntrance; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +public class RoomTile { + private static List ignorePoolTiles = new ArrayList<>() {{ + add(new Position(20, 28)); + add(new Position(19, 28)); + add(new Position(17, 21)); + add(new Position(17, 20)); + add(new Position(31, 10)); + add(new Position(31, 9)); + add(new Position(19, 19)); + add(new Position(18, 19)); + add(new Position(11, 11)); + add(new Position(10, 11)); + add(new Position(21, 28)); + add(new Position(22, 28)); + add(new Position(16, 22)); + add(new Position(16, 23)); + add(new Position(30, 11)); + add(new Position(30, 12)); + add(new Position(12, 11)); + add(new Position(13, 12)); + }}; + + private Room room; + private Position position; + private CopyOnWriteArrayList entities; + private CopyOnWriteArrayList nonBlockingEntities; + private ConcurrentHashMap items; + + private double tileHeight; + private double defaultHeight; + + private Item highestItem; + private boolean chairTile; + + public RoomTile(Room room, Position position, double tileHeight) { + this.room = room; + this.position = position; + this.tileHeight = tileHeight; + this.defaultHeight = tileHeight; + this.entities = new CopyOnWriteArrayList<>(); + this.nonBlockingEntities = new CopyOnWriteArrayList<>(); + this.items = new ConcurrentHashMap<>(); + } + + /** + * Gets if the tile was valid. + * + * @param entity the entity checking + * @param position the position of the tile + * @return true, if successful + */ + public static boolean isValidTile(Room room, Entity entity, Position position) { + if (room == null ) { + return false; + } + + RoomTile tile = room.getMapping().getTile(position); + + if (tile == null) { + return false; + } + + if (entity != null) { + if (room.getModel().getName().equals("park_a")) { + if (!InfobusManager.getInstance().isDoorOpen()) { + if (position.equals(new Position(InfobusManager.getInstance().getDoorX(), InfobusManager.getInstance().getDoorY()))) { + return false; + } + } + } + + if (tile.getHighestItem() != null) { + Item item = tile.getHighestItem(); + + if (item.getDefinition().getSprite().equals("poolExit") && item.getPosition().equals(new Position(19, 19))) { + return entity.getRoomUser().containsStatus(StatusType.SWIM); + } + + // Allow pets to walk to their own pet bed. + if (entity.getType() == EntityType.PET) { + Pet pet = (Pet) entity; + + if (pet.getDetails().getItemId() == item.getDatabaseId()) { + return true; + } + } + } + } + + if (tile.getEntities().size() > 0) { // Allow walk if you exist already in the tile + if (tile.getHighestItem() != null && tile.getHighestItem().hasBehaviour(ItemBehaviour.TELEPORTER)) { + return true; + } + + /*if (room.isGameArena()) { + return true; + } else { + return entity == null || tile.containsEntity(entity); + }*/ + return entity == null || tile.containsEntity(entity); + } + + + if (!tile.hasWalkableFurni(entity)) { + if (entity != null) { + return tile.getHighestItem() != null && tile.getHighestItem().getPosition().equals(entity.getRoomUser().getPosition()); + } + + return false; + } + + return true; + } + + /** + * Gets if the tile was valid, but if there's chairs in the way it will not be valid. + * + * @param entity the entity checking + * @param position the position of the tile + * @return true, if successful + */ + public static boolean isValidDiagonalTile(Room room, Entity entity, Position position) { + if (room == null) { + return false; + } + + RoomTile tile = room.getMapping().getTile(position); + + if (tile == null) { + return false; + } + + if (tile.getEntities().size() > 0) { // Allow walk if you exist already in the tile + return entity == null || tile.containsEntity(entity); + } + + if (tile.getHighestItem() != null) { + if (tile.getHighestItem().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)) { + return false; + } + + if (!tile.getHighestItem().isWalkable(entity, position)) { + return false; + } + } + + return true; + } + + /** + * Get if the highest item has walkable furni, true if no furni is on the tile. + * + * @return true, if successful. + */ + public boolean hasWalkableFurni(Entity entity) { + if (this.highestItem != null) { + return this.highestItem.isWalkable(entity, this.position); + } + + return true; + } + + /** + * Get the next avaliable tile around this tile. + * + * @param entity the entity to check for, can be null + * @return a valid position, else null + */ + public Position getNextAvailablePosition(Entity entity) { + List positions = new ArrayList<>(); + + for (Position POINT : Pathfinder.DIAGONAL_MOVE_POINTS) { + Position tmp = this.position.copy().add(POINT); + + if (RoomTile.isValidTile(this.room, entity, tmp)) { + positions.add(tmp); + } + } + + positions.sort(Position::getDistanceSquared); + return (positions.size() > 0 ? positions.get(0) : null); + } + + /** + * Sets the entity. + * + * @param entity the new entity + */ + public void addEntity(Entity entity) { + // Don't add a user to the tile in a doorway. + var currentPosition = new Position(this.position.getX(), this.position.getY()); + + if (currentPosition.equals(this.room.getModel().getDoorLocation())) { + return; + } + + // If the position is a destination in a walkway, don't add a user to the tile. + if (this.room.isPublicRoom()) { + WalkwaysEntrance destination = WalkwaysManager.getInstance().getDestination(this.room, this.position); + + if (destination != null) { + return; + } + + if (this.room.getModel().getName().equals("pool_a") || + this.room.getModel().getName().equals("pool_b") || + this.room.getModel().getName().equals("md_a")) { + + for (Position pos : ignorePoolTiles) { + if (pos.equals(this.position)) { + return; + } + } + } + + if (this.highestItem != null && this.highestItem.getDefinition().getInteractionType() == InteractionType.WS_JOIN_QUEUE) { + return; + } + } + + if (!this.room.isGameArena()) { + if (currentPosition.equals(this.room.getModel().getDoorLocation().getSquareInFront())) { + this.nonBlockingEntities.add(entity); + return; + } + + if (currentPosition.equals(this.room.getModel().getDoorLocation().getSquareInFront().getSquareLeft())) { + this.nonBlockingEntities.add(entity); + return; + } + + if (currentPosition.equals(this.room.getModel().getDoorLocation().getSquareInFront().getSquareRight())) { + this.nonBlockingEntities.add(entity); + return; + } + } + + this.entities.add(entity); + } + + /** + * Contains the entity. + * + * @param entity the entity + * @return true, if successful + */ + public boolean containsEntity(Entity entity) { + if (entities.contains(entity)) + return true; + + if (nonBlockingEntities.contains(entity)) + return true; + + return false; + } + + /** + * Contains the entity. + * + * @param entity the entity + * @return true, if successful + */ + public List getOtherEntities(Entity entity) { + List temp = new ArrayList<>(this.entities); + temp.removeIf(e -> e.getRoomUser().getInstanceId() == entity.getRoomUser().getInstanceId()); + + return temp; + } + + /** + * Removes the entity. + * + * @param entity the entity + */ + public void removeEntity(Entity entity) { + this.entities.remove(entity); + this.nonBlockingEntities.remove(entity); + } + + public void addItem(Item item) + { + if (item == null) + return; + + items.put(item.getVirtualId(), item); + + if (item.getTotalHeight() < tileHeight) // TODO: Stack helper? + return; + + resetHighestItem(); + } + + public void removeItem(Item item) + { + if (item == null) + return; + + items.remove(item.getVirtualId()); + + if (highestItem == null || item.getVirtualId() != highestItem.getVirtualId()) // TODO: Stack helper? + return; + + resetHighestItem(); + } + + public void resetHighestItem() { + highestItem = null; + tileHeight = defaultHeight; + + // List tempItems = new ArrayList<>(this.room.getItems()); + // tempItems.sort(Comparator.comparingDouble((Item item) -> item.getPosition().getZ())); + + Item chair = null;//this.items.values().stream().anyMatch(x -> x.getDefinition().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP)); + + for (var item : items.values()) + { + if (item == null) + continue; + + if (item.getDefinition().hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) || + item.getDefinition().hasBehaviour(ItemBehaviour.TELEPORTER) || + item.getDefinition().hasBehaviour(ItemBehaviour.DOOR_TELEPORTER)) { + chair = item; + } + + double height = item.getTotalHeight(); + + if (height < tileHeight) + continue; + + highestItem = item; + tileHeight = height; + } + + final Item temp = chair; + + if (chair != null && + this.items.values().stream().anyMatch(x -> x.getDatabaseId() != temp.getDatabaseId() && x.getPosition().getZ() > temp.getPosition().getZ())) { + chairTile = true; + highestItem = chair; + tileHeight = chair.getTotalHeight(); + } + } + + /** + * Get the current position of the tile. + * + * @return the position + */ + public Position getPosition() { + return position; + } + + /** + * Get the current height of the tile. + * + * @return the tile height + */ + public double getTileHeight() { + return tileHeight; + } + + /** + * Get the current height of the tile, but take away the offset of chairs + * and beds so users can sit on them properly. + * + * @return the interactive tile height + */ + public double getWalkingHeight() { + double height = this.tileHeight; + var highestItem = this.highestItem; + + if (highestItem != null) { + if (highestItem.hasBehaviour(ItemBehaviour.CAN_SIT_ON_TOP) || highestItem.hasBehaviour(ItemBehaviour.CAN_LAY_ON_TOP)) { + height -= highestItem.getDefinition().getPositiveTopHeight(); + } + } + + return height; + } + + /** + * Is the next tile lower than our current tile in walking height + * @param otherTile the tile adjacent to this one + * @return whether it is lower or not + */ + public boolean isHeightDrop(RoomTile otherTile) { + return this.getWalkingHeight() > otherTile.getWalkingHeight(); + } + + /** + * Is the next tile higher than our current tile in walking height + * @param otherTile the tile adjacent to this one + * @return whether it is higher or not + */ + public boolean isHeightUpwards(RoomTile otherTile) { + return this.getWalkingHeight() < otherTile.getWalkingHeight(); + } + + /** + * Get the highest item in this tile. + * + * @return the highest item + */ + public Item getHighestItem() { + return highestItem; + } + + /** + * Set the highest item in this tile. + */ + public void setHighestItem(Item item) { + highestItem = item; + } + + /** + * Get list of entities on this tile. + * + * @return the list of entities + */ + public List getEntities() { + return this.entities; + } + + /** + * Get list of non-blocking entities on this tile. + * + * @return the list of entities + */ + public List getNonBlockingEntities() { + return this.nonBlockingEntities; + } + + /** + * Get all entities, including ones on non-blocking tiles, used for furni interactions + */ + public List getEntireEntities() { + List entityList = new ArrayList<>(); + entityList.addAll(this.entities); + entityList.addAll(this.nonBlockingEntities); + return entityList; + } + /** + * Get the list of items on this tile. + * + * @return the list of items + */ + public ArrayList getItems() { + var items = new ArrayList<>(this.items.values()); + items.sort(Comparator.comparingDouble(item -> item.getPosition().getZ())); + return items; + } + + public double getDefaultHeight() { + return defaultHeight; + } + + public ArrayList getItemsAbove(Item item) { + var items = getItems(); + items.removeIf(x -> x.getDatabaseId() == item.getDatabaseId() || x.getPosition().getZ() < item.getPosition().getZ()); + return items; + } + + public boolean isChairTile() { + return chairTile; + } + + public void setChairTile(boolean chairTile) { + this.chairTile = chairTile; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTileState.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTileState.java new file mode 100644 index 0000000..64bd7e6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/RoomTileState.java @@ -0,0 +1,6 @@ +package org.alexdev.havana.game.room.mapping; + +public enum RoomTileState { + OPEN, + CLOSED +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/select_side_tictactoe.txt b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/select_side_tictactoe.txt new file mode 100644 index 0000000..1ce4baa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/mapping/select_side_tictactoe.txt @@ -0,0 +1,46 @@ + if (command == "CHOOSETYPE") { + char sideChosen = args[0].ToCharArray()[0]; + + if (GetToken(sideChosen) == null) { + return; + } + + if (GetPlayerBySide(sideChosen) != null) { + // Say that this side can't be picked as it's already chosen + player.Send(new ITEMMSG(new string[]{GameId, "TYPERESERVED"})); + return; + } + + PlayerSides.Add(player, sideChosen); + player.Send(new ITEMMSG(new string[]{GameId, "SELECTTYPE " + sideChosen})); + + GameToken otherToken = null; + + // Select the other side for the player (we do this by looping through possible tokens and selecting the first available) + foreach (var other in gameTokens) { + if (other.Token != sideChosen) { + otherToken = other; + break; + } + } + + if (otherToken != null) { + foreach (var otherPlayer in Players) { + if (otherPlayer != player) { + // Broadcast the side the player chose to the other player + otherPlayer.Send(new ITEMMSG(new string[]{GameId, "SELECTTYPE " + otherToken.Token})); + PlayerSides.Add(otherPlayer, otherToken.Token); + break; + } + } + } + + // Send the message to both opponents the current side/token (X or O) that each opponent had chosen + SendToEveryone(new ITEMMSG(new string[]{GameId, "OPPONENTS", CurrentlyPlaying[0], CurrentlyPlaying[1]})); + } + + if (command == "RESTART") { + RestartMap(); + BroadcastMap(); + return; + } \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModel.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModel.java new file mode 100644 index 0000000..1eefa8c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModel.java @@ -0,0 +1,178 @@ +package org.alexdev.havana.game.room.models; + +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.mapping.RoomTileState; +import org.apache.commons.lang3.StringUtils; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.util.StringUtil; + +import java.util.concurrent.ThreadLocalRandom; +import java.util.regex.Pattern; + +public class RoomModel { + private String modelId; + private String modelName; + private int doorX; + private int doorY; + private double doorZ; + private int doorRotation; + private int mapSizeX; + private int mapSizeY; + private String heightmap; + + private RoomTileState[][] tileStates; + private double[][] tileHeights; + + private RoomModelTriggerType modelTrigger; + + public RoomModel(String modelId, String modelName, int doorX, int doorY, double doorZ, int doorRotation, String heightmap, String triggerClass) { + this.modelId = modelId; + this.modelName = modelName; + this.doorX = doorX; + this.doorY = doorY; + this.doorZ = doorZ; + this.doorRotation = doorRotation; + this.heightmap = heightmap; + + if (!StringUtil.isNullOrEmpty(triggerClass)) { + try { + this.modelTrigger = RoomModelTriggerType.valueOf(triggerClass.toUpperCase()); + } catch (Exception e) { + e.printStackTrace(); + } + } + + this.parse(); + } + + /** + * Parse heightmap, add invalid tiles and the tile heights used + * for walking, stairs, etc. + */ + private void parse() { + String[] lines = this.heightmap.split(Pattern.quote("|")); + + this.mapSizeY = lines.length; + this.mapSizeX = lines[0].length(); + + this.tileStates = new RoomTileState[this.mapSizeX][this.mapSizeY]; + this.tileHeights = new double[this.mapSizeX][this.mapSizeY]; + + StringBuilder temporaryHeightmap = new StringBuilder(); + + for (int y = 0; y < this.mapSizeY; y++) { + String line = lines[y]; + + for (int x = 0; x < this.mapSizeX; x++) { + String tile = Character.toString(line.charAt(x)); + + if (StringUtils.isNumeric(tile)) { + this.tileStates[x][y] = RoomTileState.OPEN; + this.tileHeights[x][y] = Double.parseDouble(tile); + } else { + this.tileStates[x][y] = RoomTileState.CLOSED; + this.tileHeights[x][y] = 0; + } + + if (x == this.doorX && y == this.doorY) { + this.tileStates[x][y] = RoomTileState.OPEN; + this.tileHeights[x][y] = this.doorZ; + } + + temporaryHeightmap.append(tile); + } + + temporaryHeightmap.append("\r"); + } + + this.heightmap = temporaryHeightmap.toString(); + } + + /** + * Get the tile state by given coordinates. This + * doesn't include room furniture. + * + * @param x the x coordinate + * @param y the y coordinate + * @return the room state + */ + public RoomTileState getTileState(int x, int y) { + if (x < 0 || y < 0) { + return RoomTileState.CLOSED; + } + + if (x >= this.mapSizeX || y >= this.mapSizeY) { + return RoomTileState.CLOSED; + } + + return tileStates[x][y]; + } + + /** + * Get the tile height, this doesn't include + * furniture heights. + * + * @param x the x coordinate + * @param y the y coordinate + * @return the room height + */ + public double getTileHeight(int x, int y) { + if (x < 0 || y < 0) { + return 0; + } + + if (x >= this.mapSizeX || y >= this.mapSizeY) { + return 0; + } + + return tileHeights[x][y]; + } + + + public String getId() { + return modelId; + } + + public String getName() { + return modelName; + } + + public Position getDoorLocation() { + return new Position(this.doorX, this.doorY, this.doorZ, this.doorRotation, this.doorRotation); + } + + public int getMapSizeX() { + return mapSizeX; + } + + public int getMapSizeY() { + return mapSizeY; + } + + public String getHeightmap() { + return heightmap; + } + + public RoomModelTriggerType getModelTrigger() { + return modelTrigger; + } + + public GenericTrigger getRoomTrigger() { + if (modelTrigger != null ) + return modelTrigger.getRoomTrigger(); + else + return null; + } + + public int getRandomBound(int boundId) { + if (boundId == 0) { + return ThreadLocalRandom.current().nextInt(0, this.mapSizeX); + } + + if (boundId == 1) { + return ThreadLocalRandom.current().nextInt(0, this.mapSizeY); + } + + return -1; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelManager.java new file mode 100644 index 0000000..2cca075 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelManager.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.game.room.models; + +import org.alexdev.havana.dao.mysql.RoomModelDao; + +import java.util.concurrent.ConcurrentHashMap; + +public class RoomModelManager { + private static RoomModelManager instance = null; + private ConcurrentHashMap modelMap; + + public RoomModelManager() { + this.modelMap = RoomModelDao.getModels(); + } + + /** + * Get the instance of {@link RoomModelManager} + * + * @return the instance + */ + public static RoomModelManager getInstance() { + if (instance == null) { + instance = new RoomModelManager(); + } + + return instance; + } + + /** + * Reload the instance of {@link RoomModelManager} + * + * @return the instance + */ + public static void reset() { + instance = null; + RoomModelManager.getInstance(); + } + + /** + * Get the map of models. + * + * @return the model map + */ + public RoomModel getModel(String modelId) { + return modelMap.get(modelId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelTriggerType.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelTriggerType.java new file mode 100644 index 0000000..4a5ee59 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/RoomModelTriggerType.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.game.room.models; + +import org.alexdev.havana.game.room.models.triggers.*; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public enum RoomModelTriggerType { + FLAT_TRIGGER(new FlatTrigger()), + BATTLEBALL_LOBBY_TRIGGER(new BattleballLobbyTrigger()), + SNOWSTORM_LOBBY_TRIGGER(new SnowStormLobbyTrigger()), + SPACE_CAFE_TRIGGER(new SpaceCafeTrigger()), + HABBO_LIDO_TRIGGER(new HabboLidoTrigger()), + ROOFTOP_RUMBLE_TRIGGER(new RooftopRumbleTrigger()), + DIVING_DECK_TRIGGER(new DivingDeckTrigger()), + INFOBUS_PARK(new InfobusParkTrigger()), + INFOBUS_POLL(new InfobusPollTrigger()), + NONE(null); + + private GenericTrigger roomTrigger; + + RoomModelTriggerType(GenericTrigger trigger) { + this.roomTrigger = trigger; + } + + public GenericTrigger getRoomTrigger() { + return roomTrigger; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/BattleballLobbyTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/BattleballLobbyTrigger.java new file mode 100644 index 0000000..fa66330 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/BattleballLobbyTrigger.java @@ -0,0 +1,100 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.LOUNGEINFO; +import org.alexdev.havana.messages.outgoing.games.GAMEPLAYERINFO; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class BattleballLobbyTrigger extends GameLobbyTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + // Don't show panel and lounge info if create game is disabled + if (!GameConfiguration.getInstance().getBoolean(this.getGameType().name().toLowerCase() + ".create.game.enabled")) { + return; + } + + Player player = (Player) entity; + + player.send(new LOUNGEINFO()); + player.send(new GAMEPLAYERINFO(this.getGameType(), room.getEntityManager().getPlayers())); + + this.showPoints(player, room); + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getObservingGameId() != -1) { + player.getRoomUser().stopObservingGame(); + } + } + + @Override + public void createGame(Player gameCreator, Map gameParameters) { + int mapId = (int) gameParameters.get("fieldType"); + + if (mapId < 1 || mapId > 5) { + return; + } + + int teams = (int) gameParameters.get("numTeams"); + + if (teams < 2 || teams > 4) { + return; + } + + String name = (String) gameParameters.get("name"); + + if (name.isEmpty()) { + return; + } + + List allowedPowerUps = new ArrayList<>(); + + String powerUps = (String) gameParameters.get("allowedPowerups"); + + for (String powerUp : powerUps.split(",")) { + if (StringUtils.isNumeric(powerUp)) { + allowedPowerUps.add(Integer.parseInt(powerUp)); + } + } + + BattleBallGame game = new BattleBallGame(GameManager.getInstance().createId(), mapId, this.getGameType(), name, teams, gameCreator, allowedPowerUps, false); + + GamePlayer gamePlayer = new GamePlayer(gameCreator); + gamePlayer.setGameId(game.getId()); + gamePlayer.setTeamId(0); + + gameCreator.getRoomUser().setGamePlayer(gamePlayer); + game.movePlayer(gamePlayer, -1, 0); + + GameManager.getInstance().getGames().add(game); + } + + @Override + public GameType getGameType() { + return GameType.BATTLEBALL; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/DivingDeckTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/DivingDeckTrigger.java new file mode 100644 index 0000000..433ccc0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/DivingDeckTrigger.java @@ -0,0 +1,156 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class DivingDeckTrigger extends GenericTrigger { + public static class PoolCamera implements Runnable { + private final Room room; + private Player player; + private int cameraType; + + public PoolCamera(Room room) { + this.room = room; + } + + @Override + public void run() { + try { + if (this.player == null) { + this.spectateNewPlayer(); + this.newCameraMode(-1); + return; + } + + int cameraType = ThreadLocalRandom.current().nextInt(0, 3); + + switch (cameraType) { + case 0: { + this.spectateNewPlayer(); + break; + } + case 1: { + this.newCameraMode(1); + break; + } + case 2: { + this.newCameraMode(2); + break; + } + } + } catch (Exception ex) { + Log.getErrorLogger().error("PoolCamera crashed: ", ex); + } + } + + /** + * Finds a new player to spectate on the camera. + */ + public void spectateNewPlayer() { + try { + List playerList = this.room.getEntityManager().getPlayers(); + + if (playerList.isEmpty()) { + return; + } + + this.player = null; + + if (playerList.size() > 1) { + this.player = playerList.get(ThreadLocalRandom.current().nextInt(playerList.size())); + } else { + this.player = playerList.get(0); + } + + if (this.player != null) { + this.room.send(new SHOWPROGRAM(new String[]{"cam1", "targetcamera", String.valueOf(this.player.getRoomUser().getInstanceId())})); + } + } catch (Exception ex) { + Log.getErrorLogger().error("Error when trying to find player to spectate: ", ex); + } + } + + /** + * Creates a new camera mode for the camera and sends it to all the users. + */ + public void newCameraMode(int mode) { + this.cameraType = mode > 0 ? mode : ThreadLocalRandom.current().nextInt(1, 3); + this.room.send(new SHOWPROGRAM(new String[]{"cam1", "setcamera", String.valueOf(this.cameraType)})); + } + + /** + * Gets the current active player being spectated + * + * @return the player being spectated + */ + public Player getPlayer() { + return player; + } + + /** + * Get the camera type (zoomed in or zoomed out) + * + * @return the camera type + */ + public int getCameraType() { + return cameraType; + } + } + + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + if (room.getTaskManager().hasTask("DivingCamera")) { + DivingDeckTrigger.PoolCamera task = (DivingDeckTrigger.PoolCamera) room.getTaskManager().getTask("DivingCamera"); + + if (task.getPlayer() == null) { + task.spectateNewPlayer(); + } + + if (task.getPlayer() != null) { + player.send(new SHOWPROGRAM(new String[]{"cam1", "setcamera", String.valueOf(task.getCameraType())})); + } + } else { + room.getTaskManager().scheduleTask("DivingCamera", new DivingDeckTrigger.PoolCamera(room), 3, 10, TimeUnit.SECONDS); + } + + if (player.getRoomUser().getPosition().getZ() == 1.0) { // User entered room from the other pool + player.getRoomUser().setStatus(StatusType.SWIM, ""); + player.getRoomUser().setNeedsUpdate(true); + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (room.getEntityManager().getPlayers().isEmpty()) { + return; + } + + Player player = (Player)entity; + + DivingDeckTrigger.PoolCamera task = (DivingDeckTrigger.PoolCamera) room.getTaskManager().getTask("DivingCamera"); + + if (task.getPlayer() == player) { + task.spectateNewPlayer(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/FlatTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/FlatTrigger.java new file mode 100644 index 0000000..a4b9062 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/FlatTrigger.java @@ -0,0 +1,82 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.dao.mysql.PetDao; +import org.alexdev.havana.dao.mysql.RoomVisitsDao; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.item.interactors.types.PetNestInteractor; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pets.PetDetails; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.stream.Collectors; + +public class FlatTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (!(entity instanceof Player)) { + return; + } + + if (room.getData().isCustomRoom()) + return; + + Player player = (Player) entity; + + /*player.send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeBool(true); + } + + @Override + public short getHeader() { + return 356; // Ed + } + });*/ + + RoomVisitsDao.addVisit(player.getDetails().getId(), room.getId()); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_ROOMENTRY, player); + + if (player.getGuideManager().isGuide() && player.getGuideManager().getInvitedBy() > 0) { + int invitedBy = player.getGuideManager().getInvitedBy(); + + if (room.getData().getOwnerId() == invitedBy) { + room.getEntityManager().getPlayers().stream() + .filter(p -> p.getDetails().getId() == invitedBy) + .findFirst() + .ifPresent(newb -> { + GuideManager.getInstance().tutorEnterRoom(player, newb); + }); + + player.getGuideManager().setInvitedBy(0); + } + } + + if (firstEntry) { + for (Item item : room.getItemManager().getFloorItems().stream().filter(item -> item.getDefinition().getInteractionType() == InteractionType.PET_NEST).collect(Collectors.toList())) { + PetNestInteractor interactor = (PetNestInteractor) InteractionType.PET_NEST.getTrigger(); + + PetDetails petDetails = PetDao.getPetDetails(item.getDatabaseId()); + + if (petDetails != null) { + Position position = new Position(petDetails.getX(), petDetails.getY()); + position.setRotation(petDetails.getRotation()); + + interactor.addPet(room, petDetails, position); + } + } + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/HabboLidoTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/HabboLidoTrigger.java new file mode 100644 index 0000000..35f8431 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/HabboLidoTrigger.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.triggers.GenericTrigger; + +public class HabboLidoTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + /*if (player.getNetwork().isFlashConnected()) { + if (player.getDetails().getPoolFigure().isEmpty()) { + String[] swimColors = new String[] { + "250,56,49", + "253,146,160", + "42,199,210", + "53,51,44", + "239,255,146", + "198,255,152" + }; + + String swimColor = swimColors[ThreadLocalRandom.current().nextInt(swimColors.length)]; + player.getDetails().setPoolFigure(String.format("ch=s02/%s", swimColor)); + PlayerDao.saveDetails(player.getDetails().getId(), player.getDetails().getFigure(), player.getDetails().getPoolFigure(), player.getDetails().getSex()); + } + }*/ + + if (player.getRoomUser().getPosition().getZ() == 1.0) { // User entered room from the other pool + player.getRoomUser().setStatus(StatusType.SWIM, ""); + player.getRoomUser().setNeedsUpdate(true); + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusParkTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusParkTrigger.java new file mode 100644 index 0000000..0e8e672 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusParkTrigger.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.infobus.BUS_DOOR; +import org.alexdev.havana.messages.types.MessageComposer; + +import java.util.ArrayList; +import java.util.List; + +public class InfobusParkTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + player.send(new BUS_DOOR(InfobusManager.getInstance().isDoorOpen())); + + List messageComposers = new ArrayList<>(); + player.getRoomUser().getPacketQueueAfterRoomLeave().drainTo(messageComposers); + + for (var composer : messageComposers) { + player.send(composer); + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusPollTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusPollTrigger.java new file mode 100644 index 0000000..021ccac --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/InfobusPollTrigger.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.dao.mysql.InfobusDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.infobus.BUS_DOOR; +import org.alexdev.havana.messages.outgoing.infobus.POLL_QUESTION; + +public class InfobusPollTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + /*var infobusPoll = InfobusManager.getInstance().getCurrentPoll(); + + if (infobusPoll != null) { + if (!InfobusDao.hasAnswer(infobusPoll.getId(), player.getDetails().getId())) { + player.send(new POLL_QUESTION(infobusPoll.getPollData().getQuestion(), infobusPoll.getPollData().getAnswers())); + } + }*/ + + //player.send(new POLL_QUESTION("How about I fuck your shit up?", new String[] { "Yes please", "No please", "How about both?"})); + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/RooftopRumbleTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/RooftopRumbleTrigger.java new file mode 100644 index 0000000..db8f05a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/RooftopRumbleTrigger.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GenericTrigger; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; + +import java.util.concurrent.TimeUnit; + +public class RooftopRumbleTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player)entity; + + if (room.getTaskManager().hasTask("DivingCamera")) { + DivingDeckTrigger.PoolCamera task = (DivingDeckTrigger.PoolCamera) room.getTaskManager().getTask("DivingCamera"); + + if (task.getPlayer() == null) { + task.spectateNewPlayer(); + } + + if (task.getPlayer() != null) { + player.send(new SHOWPROGRAM(new String[]{"cam1", "setcamera", String.valueOf(task.getCameraType())})); + } + } else { + room.getTaskManager().scheduleTask("DivingCamera", new DivingDeckTrigger.PoolCamera(room), 3, 10, TimeUnit.SECONDS); + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + if (room.getEntityManager().getPlayers().isEmpty()) { + return; + } + + Player player = (Player)entity; + + DivingDeckTrigger.PoolCamera task = (DivingDeckTrigger.PoolCamera) room.getTaskManager().getTask("DivingCamera"); + + if (task.getPlayer() == player) { + task.spectateNewPlayer(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SnowStormLobbyTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SnowStormLobbyTrigger.java new file mode 100644 index 0000000..f9074a6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SnowStormLobbyTrigger.java @@ -0,0 +1,98 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.games.GAMEPLAYERINFO; +import org.alexdev.havana.messages.outgoing.games.LOUNGEINFO; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.Map; + +public class SnowStormLobbyTrigger extends GameLobbyTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + // Don't show panel and lounge info if create game is disabled + if (!GameConfiguration.getInstance().getBoolean(this.getGameType().name().toLowerCase() + ".create.game.enabled")) { + return; + } + + Player player = (Player) entity; + + player.send(new LOUNGEINFO()); + player.send(new GAMEPLAYERINFO(this.getGameType(), room.getEntityManager().getPlayers())); + + if (GameConfiguration.getInstance().getBoolean("snowstorm.alpha.alert")) { + player.send(new ALERT("Welcome to SnowStorm testing!

The game is almost complete but may have a few quirks to figure out. Please report any issues (aside from desync) to Alex.

Thanks to the following for making it possible:
- Sefhriloff
- Ascii")); + } + } + + @Override + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { + if (entity.getType() != EntityType.PLAYER) { + return; + } + + Player player = (Player) entity; + + if (player.getRoomUser().getObservingGameId() != -1) { + player.getRoomUser().stopObservingGame(); + } + } + + /* new GameParameter("fieldType", true, "1", 1, 5), + new GameParameter("numTeams", true, "2", 2, 4), + new GameParameter("gameLengthChoice", true, "1", 1, 3), + new GameParameter("name", true, "") + };*/ + + @Override + public void createGame(Player gameCreator, Map gameParameters) { + int mapId = (int) gameParameters.get("fieldType"); + + if (mapId < 1 || mapId > 7) { + return; + } + + int teams = (int) gameParameters.get("numTeams"); + + if (teams < 1 || teams > 4) { + return; + } + + String name = (String) gameParameters.get("name"); + + if (name.isEmpty()) { + return; + } + + int lengthChoice = (int) gameParameters.get("gameLengthChoice"); + + SnowStormGame game = new SnowStormGame(GameManager.getInstance().createId(), mapId, name, teams, gameCreator, lengthChoice, false); + + GamePlayer gamePlayer = new GamePlayer(gameCreator); + gamePlayer.setGameId(game.getId()); + gamePlayer.setTeamId(0); + + gameCreator.getRoomUser().setGamePlayer(gamePlayer); + game.movePlayer(gamePlayer, -1, 0); + + GameManager.getInstance().getGames().add(game); + } + + @Override + public GameType getGameType() { + return GameType.SNOWSTORM; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SpaceCafeTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SpaceCafeTrigger.java new file mode 100644 index 0000000..a41bd54 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/models/triggers/SpaceCafeTrigger.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.game.room.models.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.tasks.SpaceCafeTask; +import org.alexdev.havana.game.triggers.GenericTrigger; + +import java.util.concurrent.TimeUnit; + +public class SpaceCafeTrigger extends GenericTrigger { + @Override + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { + if (!firstEntry) { + return; + } + + if (entity.getType() != EntityType.PLAYER) { + return; + } + + room.getTaskManager().scheduleTask("SpaceCafeTask", new SpaceCafeTask(room), 0, 500, TimeUnit.MILLISECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/BotTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/BotTask.java new file mode 100644 index 0000000..e20b5a2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/BotTask.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.bot.Bot; +import org.alexdev.havana.game.bot.BotSpeech; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.concurrent.ThreadLocalRandom; + +public class BotTask implements Runnable { + private final Room room; + + private int MIN_WALK_TIME = 3; + private int MAX_WALK_TIME = 10; + + private int MIN_SPEAK_TIME = 20; + private int MAX_SPEAK_TIME = 50; + private BotSpeech lastSpeech; + + public BotTask(Room room) { + this.room = room; + + for (Bot bot : this.room.getEntityManager().getEntitiesByClass(Bot.class)) { + bot.setNextWalkTime(DateUtil.getCurrentTimeSeconds() + ThreadLocalRandom.current().nextInt(MIN_WALK_TIME, MAX_WALK_TIME)); + bot.setNextSpeechTime(DateUtil.getCurrentTimeSeconds() + ThreadLocalRandom.current().nextInt(MIN_SPEAK_TIME, MAX_SPEAK_TIME)); + } + } + + @Override + public void run() { + for (Bot bot : this.room.getEntityManager().getEntitiesByClass(Bot.class)) { + if (DateUtil.getCurrentTimeSeconds() > bot.getNextWalkTime()) { + if (bot.getBotData().getWalkspace().size() > 0) { + Position walkDestination = bot.getBotData().getWalkspace().get(ThreadLocalRandom.current().nextInt(0, bot.getBotData().getWalkspace().size())); + bot.getRoomUser().walkTo(walkDestination.getX(), walkDestination.getY()); + bot.setNextWalkTime(DateUtil.getCurrentTimeSeconds() + ThreadLocalRandom.current().nextInt(MIN_WALK_TIME, MAX_WALK_TIME)); + + if (GameConfiguration.getInstance().getBoolean("april.fools")) { + bot.getRoomUser().dance(ThreadLocalRandom.current().nextInt(0, 5)); + } + } + } + + if (DateUtil.getCurrentTimeSeconds() > bot.getNextSpeechTime()) { + if (bot.getBotData().getSpeeches().size() > 0) { + BotSpeech speech = bot.getBotData().getSpeeches().get(ThreadLocalRandom.current().nextInt(0, bot.getBotData().getSpeeches().size())); + bot.setNextSpeechTime(DateUtil.getCurrentTimeSeconds() + ThreadLocalRandom.current().nextInt(MIN_SPEAK_TIME, MAX_SPEAK_TIME)); + + if (this.lastSpeech != speech) { + bot.getRoomUser().talk(speech.getSpeech(), speech.getChatMessageType()); + } + + this.lastSpeech = speech; + } + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/CameraTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/CameraTask.java new file mode 100644 index 0000000..d053b3a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/CameraTask.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_STATUSES; + +import java.util.List; + +public class CameraTask implements Runnable { + private final Entity entity; + + public CameraTask(Entity entity) { + this.entity = entity; + } + + @Override + public void run() { + if (this.entity.getRoomUser().getRoom() == null) { + return; + } + + String item = entity.getRoomUser().getStatus(StatusType.USE_ITEM).getValue(); + + this.entity.getRoomUser().removeStatus(StatusType.USE_ITEM); + this.entity.getRoomUser().setStatus(StatusType.CARRY_ITEM, item); + + if (!this.entity.getRoomUser().isWalking()) { + this.entity.getRoomUser().getRoom().send(new USER_STATUSES(List.of(this.entity))); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/DiceTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/DiceTask.java new file mode 100644 index 0000000..c7f70f2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/DiceTask.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.outgoing.rooms.items.DICE_VALUE; + +import java.util.concurrent.ThreadLocalRandom; + +public class DiceTask implements Runnable { + private final Item dice; + + public DiceTask(Item dice) { + this.dice = dice; + } + + @Override + public void run() { + if (!this.dice.getRequiresUpdate()) { + return; + } + + int maxNumber = 6; + + if (this.dice.getDefinition().getSprite().equals("bottle")) { + maxNumber = 8; + } + + int randomNumber = ThreadLocalRandom.current().nextInt(1, maxNumber + 1); // between 1 and 6 + this.dice.getRoom().send(new DICE_VALUE(this.dice.getVirtualId(), false, randomNumber)); + + this.dice.setCustomData(Integer.toString(randomNumber)); + this.dice.updateStatus(); + this.dice.setRequiresUpdate(false); + this.dice.save(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/EntityTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/EntityTask.java new file mode 100644 index 0000000..35cdcde --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/EntityTask.java @@ -0,0 +1,422 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.pets.PetAction; +import org.alexdev.havana.game.pets.PetManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_STATUSES; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadLocalRandom; + +public class EntityTask implements Runnable { + private final Room room; + private final BlockingQueue queueAfterLoop; + + public EntityTask(Room room) { + this.room = room; + this.queueAfterLoop = new LinkedBlockingQueue(); + } + + public boolean isMoonwalkEnabled(Entity entity) { + if (entity instanceof Player) { + return GameConfiguration.getInstance().getBoolean("april.fools"); + } + + return false; + } + + @Override + public void run() { + if (this.room.getEntities().isEmpty()) { + return; + } + + List entitiesToUpdate = new ArrayList<>(); + + for (Entity entity : this.room.getEntities()) { + if (entity != null + && entity.getRoomUser().getRoom() != null + && entity.getRoomUser().getRoom() == this.room) { + + if (entity.getType() == EntityType.PET) { + this.processPet((Pet) entity); + } + + if (entity.getType() == EntityType.PLAYER) { + ((Player) entity).getRoomUser().handleSpamTicks(); + } + + try { + this.processEntity(entity); + } catch (Exception ex) { + Log.getErrorLogger().error("EntityTask crashed: ", ex); + } + + RoomEntity roomEntity = entity.getRoomUser(); + + if (roomEntity.isNeedsUpdate()) { + roomEntity.setNeedsUpdate(false); + entitiesToUpdate.add(entity); + } + } + } + + if (entitiesToUpdate.size() > 0) { + this.room.send(new USER_STATUSES(entitiesToUpdate)); + } + + this.handleMessageQueue(); + } + + /** + * Handles messages to be queued after the main room loop was sent + */ + private void handleMessageQueue() { + try { + List queueSending = new ArrayList<>(); + this.queueAfterLoop.drainTo(queueSending); + + for (MessageComposer messageComposer : queueSending) { + this.room.send(messageComposer); + } + } catch (Exception ex) { + Log.getErrorLogger().error("EntityTask crashed: ", ex); + } + } + + /** + * Process entity. + * + * @param entity the entity + */ + private void processEntity(Entity entity) { + RoomEntity roomEntity = entity.getRoomUser(); + + Position position = roomEntity.getPosition(); + Position goal = roomEntity.getGoal(); + + if (roomEntity.isWalking()) { + // Apply next tile from the tile we removed from the list the cycle before + if (roomEntity.getNextPosition() != null) { + Position oldPosition = roomEntity.getPosition().copy(); + + roomEntity.getPosition().setX(roomEntity.getNextPosition().getX()); + roomEntity.getPosition().setY(roomEntity.getNextPosition().getY()); + roomEntity.updateNewHeight(roomEntity.getPosition()); + + if (roomEntity.getCurrentItem() != null) { + if (roomEntity.getCurrentItem().getDefinition().getInteractionType().getTrigger() != null) { + roomEntity.getCurrentItem().getDefinition().getInteractionType().getTrigger().onEntityStep(entity, roomEntity, roomEntity.getCurrentItem(), oldPosition); + } + } + } + + // We still have more tiles left, so lets continue moving + if (roomEntity.getPath().size() > 0) { + Position next = roomEntity.getPath().pop(); + + // Tile was invalid after we started walking, so lets try again! + if (!RoomTile.isValidTile(this.room, entity, next)) { + entity.getRoomUser().getPath().clear(); + this.processEntity(entity); + roomEntity.walkTo(goal.getX(), goal.getY()); + return; + } + + // Try and stop any other entities first from getting to tile + /*var otherEntity = roomEntity.getRoom().getEntities().stream().filter(e -> + entity.getDetails().getId() != e.getDetails().getId() && + entity.getRoomUser().getGoal().equals(e.getRoomUser().getGoal()) && + e.getRoomUser().getPosition().getDistanceSquared(e.getRoomUser().getGoal()) <= 2).findFirst().orElse(null); + + if (otherEntity != null) { + entity.getRoomUser().getPath().clear(); + this.processEntity(entity); + return; + }*/ + + RoomTile previousTile = roomEntity.getTile(); + + if (previousTile != null) + previousTile.removeEntity(entity); + + RoomTile nextTile = roomEntity.getRoom().getMapping().getTile(next); + + if (nextTile == null) { + entity.getRoomUser().getPath().clear(); + this.processEntity(entity); + roomEntity.walkTo(goal.getX(), goal.getY()); + return; + } + + nextTile.addEntity(entity); + + double newPosition = nextTile.getWalkingHeight(); + double oldPosition = position.getZ(); + + if (entity.getRoomUser().getRoom().getModel().getName().startsWith("pool_") || + entity.getRoomUser().getRoom().getModel().getName().equals("md_a")) { + + int minDifference = 3; + + if (entity.getRoomUser().getRoom().getModel().getName().equals("md_a")) { + minDifference = 2; + } + + if ((newPosition > oldPosition) && Math.abs(newPosition - oldPosition) >= minDifference) {//(next.getZ() - roomEntity.getPosition().getZ()) > 3) { + if (roomEntity.containsStatus(StatusType.SWIM)) { + roomEntity.removeStatus(StatusType.SWIM); + + if (roomEntity.containsStatus(StatusType.DANCE)) { + roomEntity.removeStatus(StatusType.DANCE); + } + } + + if (roomEntity.containsStatus(StatusType.CARRY_DRINK)) { + roomEntity.removeStatus(StatusType.CARRY_DRINK); + } + + if (roomEntity.containsStatus(StatusType.CARRY_ITEM)) { + roomEntity.removeStatus(StatusType.CARRY_ITEM); + } + } + + if ((newPosition < oldPosition) && Math.abs(oldPosition - newPosition) >= minDifference) { + if (!roomEntity.containsStatus(StatusType.SWIM)) { + roomEntity.setStatus(StatusType.SWIM, ""); + + if (roomEntity.containsStatus(StatusType.DANCE)) { + roomEntity.removeStatus(StatusType.DANCE); + } + } + + if (roomEntity.containsStatus(StatusType.CARRY_DRINK)) { + roomEntity.removeStatus(StatusType.CARRY_DRINK); + } + + if (roomEntity.containsStatus(StatusType.CARRY_ITEM)) { + roomEntity.removeStatus(StatusType.CARRY_ITEM); + } + } + } + + // Set up trigger for leaving a current item + if (roomEntity.getLastItemInteraction() != null) { + if (roomEntity.getLastItemInteraction().getDefinition().getInteractionType().getTrigger() != null) { + roomEntity.getLastItemInteraction().getDefinition().getInteractionType().getTrigger().onEntityLeave(entity, roomEntity, roomEntity.getCurrentItem()); + } + + roomEntity.setLastItemInteraction(null); + } + + roomEntity.removeStatus(StatusType.LAY); + roomEntity.removeStatus(StatusType.SIT); + + int rotation = isMoonwalkEnabled(entity) ? + Rotation.calculateWalkDirection(next.getX(), next.getY(), position.getX(), position.getY()) : + Rotation.calculateWalkDirection(position.getX(), position.getY(), next.getX(), next.getY()); + + double height = nextTile.getWalkingHeight(); + + roomEntity.getPosition().setRotation(rotation); + roomEntity.setStatus(StatusType.MOVE, next.getX() + "," + next.getY() + "," + StringUtil.format(height)); + roomEntity.setNextPosition(next); + } else { + roomEntity.stopWalking(); + } + + // If we're walking, make sure to tell the server + roomEntity.setNeedsUpdate(true); + } + } + + /** + * Process pet actions. + * + * @param pet the pet to process + */ + private void processPet(Pet pet) { + if (pet.hasActionExpired() && pet.getAction() != PetAction.NONE) { + if (pet.getAction() == PetAction.SLEEP) { + pet.awake(); + } + + pet.getRoomUser().getStatuses().clear(); + pet.getRoomUser().setNeedsUpdate(true); + pet.setAction(PetAction.NONE); + } else { + switch (ThreadLocalRandom.current().nextInt(0, 6)) { + case 1: { + pet.getRoomUser().removeStatus(StatusType.SIT); + pet.getRoomUser().removeStatus(StatusType.LAY); + pet.getRoomUser().removeStatus(StatusType.SLEEP); + + if (pet.getRoomUser().containsStatus(StatusType.EAT) || + pet.getRoomUser().containsStatus(StatusType.DEAD) || + pet.getRoomUser().containsStatus(StatusType.JUMP)) { + return; + } + + if (pet.isDoingAction()) { + return; + } + + switch (ThreadLocalRandom.current().nextInt(0, 9)) { + case 0: { + if (pet.isThirsty()) { + pet.getRoomUser().tryDrinking(); + return; + } + break; + } + case 1: { + if (pet.isHungry()) { + pet.getRoomUser().tryEating(); + return; + } + break; + } + case 2: { + if (pet.isTired()) { + pet.getRoomUser().trySleep(); + return; + } + break; + } + } + + + Position availableTile = this.room.getMapping().getRandomWalkableBound(pet); + + if (availableTile != null) { + pet.getRoomUser().walkTo(availableTile.getX(), availableTile.getY()); + } + + break; + } + } + + if (!pet.isWalkBeforeSitLay() && pet.isActionAllowed()) { + switch (ThreadLocalRandom.current().nextInt(0, 15)) { + case 1: { + if (!pet.getRoomUser().isWalking() && pet.getAction() == PetAction.NONE) { + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.SIT, StringUtil.format(pet.getRoomUser().getPosition().getZ())); + pet.setWalkBeforeSitLay(true); + + pet.setAction(PetAction.SIT); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(15, 30)); + + if (ThreadLocalRandom.current().nextInt(0, 3) == 0) { + List playerList = this.room.getEntityManager().getEntitiesByClass(Player.class); + playerList.sort(Comparator.comparingInt(p -> p.getRoomUser().getPosition().getDistanceSquared(pet.getRoomUser().getPosition()))); + + if (playerList.size() > 0) { + pet.getRoomUser().getPosition().setRotation(Rotation.calculateWalkDirection( + pet.getRoomUser().getPosition(), + playerList.get(0).getRoomUser().getPosition())); + } + } + + pet.getRoomUser().setNeedsUpdate(true); + } + break; + } + case 2: { + if (!pet.getRoomUser().isWalking() && pet.getAction() == PetAction.NONE) { + pet.getRoomUser().getPosition().setRotation(pet.getRoomUser().getPosition().getBodyRotation()); + pet.getRoomUser().setStatus(StatusType.LAY, StringUtil.format(pet.getRoomUser().getPosition().getZ()) + " null"); + pet.setWalkBeforeSitLay(true); + + pet.setAction(PetAction.LAY); + pet.setActionDuration(ThreadLocalRandom.current().nextInt(15, 30)); + + if (ThreadLocalRandom.current().nextInt(0, 5) == 0) { + List playerList = this.room.getEntityManager().getEntitiesByClass(Player.class); + playerList.sort(Comparator.comparingInt(p -> p.getRoomUser().getPosition().getDistanceSquared(pet.getRoomUser().getPosition()))); + + if (playerList.size() > 0) { + pet.getRoomUser().getPosition().setRotation(Rotation.calculateWalkDirection( + pet.getRoomUser().getPosition(), + playerList.get(0).getRoomUser().getPosition())); + } + } + + pet.getRoomUser().setNeedsUpdate(true); + } + break; + } + } + } + + if (pet.getAction() == PetAction.SIT || pet.getAction() == PetAction.LAY || pet.getAction() == PetAction.NONE) { + if (ThreadLocalRandom.current().nextInt(0, 8) == 0) { + if (!pet.getRoomUser().isWalking()) { + List playerList = this.room.getEntityManager().getEntitiesByClass(Player.class); + playerList.sort(Comparator.comparingInt(p -> p.getRoomUser().getPosition().getDistanceSquared(pet.getRoomUser().getPosition()))); + + if (playerList.size() > 0) { + pet.getRoomUser().getPosition().setHeadRotation(Rotation.getHeadRotation( + pet.getRoomUser().getPosition().getRotation(), + pet.getRoomUser().getPosition(), + playerList.get(0).getRoomUser().getPosition())); + pet.getRoomUser().setNeedsUpdate(true); + } + } + } + } + } + + int maxRange = 25; + + if (pet.getAction() != PetAction.NONE && pet.getAction() != PetAction.SIT && pet.getAction() != PetAction.LAY) { + maxRange = 8; + } + + switch (ThreadLocalRandom.current().nextInt(0, maxRange)) { + case 2: { + var talkMessage = PetManager.getInstance().getRandomSpeech(pet); + + if (talkMessage != null) { + /*if (pet.getAction() != PetAction.NONE && pet.getAction() != PetAction.SIT && pet.getAction() != PetAction.LAY) { + pet.getRoomUser().talk(talkMessage, CHAT_MESSAGE.ChatMessageType.CHAT); + } else {*/ + if (ThreadLocalRandom.current().nextInt(0, 10/* 8 */) == 0) { + pet.getRoomUser().talk(talkMessage, CHAT_MESSAGE.ChatMessageType.CHAT); + } + //} + } + + break; + } + } + } + + + /** + * Used for sending packets after the loop has completed. + * + * @return the queue to add composers into + */ + public BlockingQueue getQueueAfterLoop() { + return queueAfterLoop; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/FortuneTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/FortuneTask.java new file mode 100644 index 0000000..e849b88 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/FortuneTask.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; + +import java.util.concurrent.ThreadLocalRandom; + +public class FortuneTask implements Runnable { + private final Item fortune; + + public FortuneTask(Item item) { + this.fortune = item; + } + + public void run() { + if (!fortune.getRequiresUpdate()) { + return; + } + + // Set random number that gets picked up by the FortuneTask + int randomNumber = ThreadLocalRandom.current().nextInt(1, 11); // between 1 and 10 + + this.fortune.setCustomData(Integer.toString(randomNumber)); + this.fortune.updateStatus(); + this.fortune.setRequiresUpdate(false); + this.fortune.save(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RainbowTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RainbowTask.java new file mode 100644 index 0000000..d1baef3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RainbowTask.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.Room; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class RainbowTask implements Runnable { + private final Room room; + private int colourIndex; + + private static Map HEX_COLOURS; + + public RainbowTask(Room room) { + if (HEX_COLOURS == null) { + HEX_COLOURS = new LinkedHashMap<>(); + + double frequency = 0.5; + + for (var i = 0; i < 32; ++i) { + double red = Math.sin(frequency * i + 0) * 127 + 128; + double green = Math.sin(frequency * i + 2) * 127 + 128; + double blue = Math.sin(frequency * i + 4) * 127 + 128; + + String hex = String.format("#%02x%02x%02x", (int)red, (int)green, (int)blue); + HEX_COLOURS.put(i, hex); + } + } + + this.room = room; + this.colourIndex = -1; + } + + @Override + public void run() { + Item moodlight = this.room.getItemManager().getMoodlight(); + + if (moodlight == null) { + this.room.getTaskManager().cancelTask("RainbowTask"); + return; + } + + this.colourIndex++; + + if (!HEX_COLOURS.containsKey(this.colourIndex)) { + this.colourIndex = 0; + } + + String hexColour = HEX_COLOURS.get(this.colourIndex); + + // 2,1,1,#0053F7,211 + // enable moodlight, preset id, background state, hex colour, strength (middle) + + String newCustomData = "2,1,1," + hexColour + ",211"; + + moodlight.setCustomData(newCustomData); + moodlight.updateStatus(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerCompleteTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerCompleteTask.java new file mode 100644 index 0000000..aa37321 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerCompleteTask.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.Room; + +import java.util.Collection; +import java.util.Set; + +public class RollerCompleteTask implements Runnable { + private final Room room; + private final Collection rollingItems; + private final Set rollingEntities; + + public RollerCompleteTask(Collection rollingItems, Set rollingEntities, Room room) { + this.rollingItems = rollingItems; + this.rollingEntities = rollingEntities; + this.room = room; + } + + @Override + public void run() { + for (Item item : this.rollingItems) { + if (item.getRollingData() == null) { + continue; + } + + /*if (item.getRollingData().getHeightUpdate() > 0) { + item.getPosition().setZ(item.getPosition().getZ() + item.getRollingData().getHeightUpdate()); + this.room.send(new MOVE_FLOORITEM(item)); + }*/ + + item.setCurrentRollBlocked(false); + item.setRollingData(null); + } + + for (Entity entity : this.rollingEntities) { + if (entity.getRoomUser().getRollingData() == null) { + continue; + } + + entity.getRoomUser().invokeItem(null, true); + entity.getRoomUser().setRollingData(null); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerTask.java new file mode 100644 index 0000000..cf72a93 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/RollerTask.java @@ -0,0 +1,141 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.roller.EntityRollingAnalysis; +import org.alexdev.havana.game.item.roller.ItemRollingAnalysis; +import org.alexdev.havana.game.item.roller.RollerEntry; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.rooms.items.SLIDEOBJECTBUNDLE; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class RollerTask implements Runnable { + private final Room room; + + public RollerTask(Room room) { + this.room = room; + } + + @Override + public void run() { + try { + Map> itemsRolling = new LinkedHashMap<>(); + Map> entitiesRolling = new LinkedHashMap<>(); + + List rollerEntries = new ArrayList<>(); + + ItemRollingAnalysis itemRollingAnalysis = new ItemRollingAnalysis(); + EntityRollingAnalysis entityRollingAnalysis = new EntityRollingAnalysis(); + + if (this.room.getItems().stream().anyMatch(item -> item.hasBehaviour(ItemBehaviour.ROLLER))) { + this.room.getMapping().regenerateCollisionMap(); + } + + for (Item roller : this.room.getItems()) { + if (roller.getTile() == null) { + continue; + } + + var rollerTile = roller.getTile(); + + if (!roller.hasBehaviour(ItemBehaviour.ROLLER)) { + continue; + } + + RollerEntry rollerEntry = new RollerEntry(roller); + + // Process items on rollers + for (Item item : rollerTile.getItems()) { + if (!item.getPosition().equals(rollerTile.getPosition())) { // Only roll items placed on the roller + continue; + } + + if (item.hasBehaviour(ItemBehaviour.ROLLER)) { + continue; + } + + if (itemsRolling.containsKey(item)) { + continue; + } + + Position nextPosition = itemRollingAnalysis.canRoll(item, roller, this.room); + + if (nextPosition != null) { + itemsRolling.put(item, Pair.of(roller, nextPosition)); + rollerEntry.getRollingItems().add(item.getRollingData()); + } + + } + + // Process entities on rollers + //for (Entity entity : roller.getTile().getEntities()) { + var rollerEntities = rollerTile.getEntireEntities(); + + if (rollerEntities != null && rollerEntities.size() > 0) { + var entity = rollerEntities.stream().findFirst().orElse(null); + + if (entitiesRolling.containsKey(entity)) { + continue; + } + + Position nextPosition = entityRollingAnalysis.canRoll(entity, roller, this.room); + + if (nextPosition != null) { + entitiesRolling.put(entity, Pair.of(roller, nextPosition)); + rollerEntry.setRollingEntity(entity); + } + } + //} + + // Roller entry has items or entities to roll so make sure the packet gets senr + if (rollerEntry.getRollingEntity() != null || rollerEntry.getRollingItems().size() > 0) { + rollerEntries.add(rollerEntry); + } + } + + // Perform roll animation for entity + for (var kvp : entitiesRolling.entrySet()) { + entityRollingAnalysis.doRoll(kvp.getKey(), kvp.getValue().getLeft(), this.room, kvp.getKey().getRoomUser().getPosition(), kvp.getValue().getRight()); + } + + // Perform roll animation for item + for (var kvp : itemsRolling.entrySet()) { + Item item = kvp.getKey(); + + if (!item.isCurrentRollBlocked()) { + itemRollingAnalysis.doRoll(kvp.getKey(), kvp.getValue().getLeft(), this.room, kvp.getKey().getPosition(), kvp.getValue().getRight()); + } + + item.save(); + } + + // Send roller packets + for (RollerEntry entry : rollerEntries) { + var rollingItems = new ArrayList<>(entry.getRollingItems()); + rollingItems.removeIf(item -> item.getItem().isCurrentRollBlocked()); + + var entityRollerData = entry.getRollingEntity() == null ? null : + (entry.getRollingEntity().getRoomUser() == null ? null : entry.getRollingEntity().getRoomUser().getRollingData()); + + this.room.send(new SLIDEOBJECTBUNDLE(entry.getRoller(), rollingItems, entityRollerData)); + } + + if (itemsRolling.size() > 0 || entitiesRolling.size() > 0) { + this.room.getMapping().regenerateCollisionMap(); + GameScheduler.getInstance().getService().schedule(new RollerCompleteTask(itemsRolling.keySet(), entitiesRolling.keySet(), this.room), 800, TimeUnit.MILLISECONDS); + } + } catch (Exception ex) { + Log.getErrorLogger().error("RollerTask crashed: ", ex); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/SpaceCafeTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/SpaceCafeTask.java new file mode 100644 index 0000000..64c29bd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/SpaceCafeTask.java @@ -0,0 +1,114 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; + +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; + +public class SpaceCafeTask implements Runnable { + public static final int FLIPBOARD_TIME = 60; + public static final int LIGHT_TIME = 5; + + private static final int[] FLIPBOARD_ORDER = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, }; + private final Room room; + + private int stageIndex; + private long timeToNextStage; + private long timeToNextLight; + + private int firstColour; + private int secondColour; + private int thirdColour; + + public SpaceCafeTask(Room room) { + this.room = room; + this.stageIndex = 2; + this.timeToNextStage = convertToInterval(FLIPBOARD_TIME); + this.timeToNextLight = convertToInterval(LIGHT_TIME); + } + + @Override + public void run() { + if (timeToNextStage > 0) { + timeToNextStage--; + } + + if (this.timeToNextStage == 0) { + processBoardFlip(); + } + + if (this.timeToNextLight > 0) { + this.timeToNextLight--; + } + + if (this.timeToNextLight == 0) { + this.processLightColor(); + } + } + + private void processLightColor() { + int[] numbers = new int[] {4, 1, 2}; + + int tempFirstColour = findNewColour(this.firstColour, numbers); + int tempSecondColour = findNewColour(this.secondColour, numbers); + int tempThirdColour = findNewColour(this.thirdColour, numbers); + + if (tempFirstColour != this.firstColour) { + this.firstColour = tempFirstColour; + this.room.send(new SHOWPROGRAM(new String[]{"lmpa", "ufol", String.valueOf(this.firstColour)})); + this.room.send(new SHOWPROGRAM(new String[]{"liga", "litecol", String.valueOf(this.firstColour)})); + } + + if (tempSecondColour != this.secondColour) { + this.secondColour = tempSecondColour; + this.room.send(new SHOWPROGRAM(new String[]{"lmpb", "ufol", String.valueOf(this.secondColour)})); + this.room.send(new SHOWPROGRAM(new String[]{"ligb", "litecol", String.valueOf(this.secondColour)})); + } + + if (tempThirdColour != this.thirdColour) { + this.thirdColour = tempThirdColour; + this.room.send(new SHOWPROGRAM(new String[]{"lmpc", "ufol", String.valueOf(this.thirdColour)})); + this.room.send(new SHOWPROGRAM(new String[]{"ligc", "litecol", String.valueOf(this.thirdColour)})); + } + + this.timeToNextLight = convertToInterval(LIGHT_TIME); + } + + private void processBoardFlip() { + this.stageIndex++; + + if (this.stageIndex >= FLIPBOARD_ORDER.length) { + this.stageIndex = 0; + } + + int previousBoard = this.stageIndex; + int nextBoard = (previousBoard + 1) >= FLIPBOARD_ORDER.length ? 0 : previousBoard + 1; + + room.send(new SHOWPROGRAM(new String[]{"flipflop" + FLIPBOARD_ORDER[previousBoard], "visible", String.valueOf(0)})); + room.send(new SHOWPROGRAM(new String[]{"flipflop" + FLIPBOARD_ORDER[nextBoard], "visible", String.valueOf(1)})); + + boolean isStillBoard = (previousBoard == 2 && nextBoard == 3) || (previousBoard == 5 && nextBoard == 6) || (previousBoard == 8 && nextBoard == 0); + + if (isStillBoard) { + this.timeToNextStage = convertToInterval(FLIPBOARD_TIME); + } else { + this.timeToNextStage = 1; + } + } + + public int findNewColour(int currentColour, int[] selection) { + return selection[ThreadLocalRandom.current().nextInt(0, selection.length)]; + /*int newColour = currentColour; + + while (newColour == currentColour) { + newColour = selection[ThreadLocalRandom.current().nextInt(0, selection.length)]; + } + + return newColour;*/ + } + + public static int convertToInterval(int seconds) { + return seconds * 2; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/StatusTask.java b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/StatusTask.java new file mode 100644 index 0000000..33da329 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/room/tasks/StatusTask.java @@ -0,0 +1,188 @@ +package org.alexdev.havana.game.room.tasks; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomUserStatus; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.rooms.user.TYPING_STATUS; +import org.alexdev.havana.util.DateUtil; + +import java.util.ArrayList; +import java.util.List; + +public class StatusTask implements Runnable { + private final Room room; + + public StatusTask(Room room) { + this.room = room; + } + + @Override + public void run() { + if (this.room.getEntities().size() == 0) { + return; + } + + for (Entity entity : this.room.getEntities()) { + if (entity != null) { + if (entity.getRoomUser().getRoom() != null && entity.getRoomUser().getRoom() == this.room) { + this.processEntity(entity); + } + } + } + } + + /** + * Process entity. + * + * @param entity the entity + */ + private void processEntity(Entity entity) { + try { + List toRemove = new ArrayList<>(); + + if (entity.getType() == EntityType.PLAYER || + entity.getType() == EntityType.BOT || + entity.getType() == EntityType.PET) { + + processHeadRotation(entity); + processPoolQueue(entity); + } + + if (entity.getType() == EntityType.PLAYER) { + processChatBubble((Player)entity); + } + + /*if (entity.getRoomUser().getDrinkCycleRefresh().get() != -1 && DateUtil.getCurrentTimeSeconds() >= entity.getRoomUser().getDrinkCycleRefresh().get()) { + if (entity.getRoomUser().getDrinkLoopCount().decrementAndGet() > 0) { + int loopCount = entity.getRoomUser().getDrinkLoopCount().get(); + entity.getRoomUser().carryItem(entity.getRoomUser().getCarryId(), entity.getRoomUser().getCarryName()); + entity.getRoomUser().getDrinkLoopCount().set(loopCount); + } else { + entity.getRoomUser().carryItem(0, null); + entity.getRoomUser().getDrinkCycleRefresh().set(-1); + entity.getRoomUser().getDrinkLoopCount().set(-1); + entity.getRoomUser().setNeedsUpdate(true); + } + }*/ + + for (var kvp : entity.getRoomUser().getStatuses().entrySet()) { + String key = kvp.getKey(); + RoomUserStatus rus = kvp.getValue(); + + if (rus.getActionSwitchCountdown() > 0) { + rus.setActionSwitchCountdown(rus.getActionSwitchCountdown() - 1); + } else if (rus.getActionSwitchCountdown() == 0) { + rus.setActionSwitchCountdown(-1); + rus.setActionCountdown(rus.getSecActionSwitch()); + + // Swap back to original key and update status + rus.swapKeyAction(); + entity.getRoomUser().setNeedsUpdate(true); + } + + if (rus.getActionCountdown() > 0) { + rus.setActionCountdown(rus.getActionCountdown() - 1); + } else if (rus.getActionCountdown() == 0) { + rus.setActionCountdown(-1); + rus.setActionSwitchCountdown(rus.getSecSwitchLifetime()); + + // Swap key to action and update status + rus.swapKeyAction(); + entity.getRoomUser().setNeedsUpdate(true); + } + + if (rus.getLifetimeCountdown() > 0) { + rus.setLifetimeCountdown(rus.getLifetimeCountdown() - 1); + } else if (rus.getLifetimeCountdown() == 0) { + rus.setLifetimeCountdown(-1); + toRemove.add(rus); + + entity.getRoomUser().setNeedsUpdate(true); + } + } + + boolean refreshUser = false; + + for (RoomUserStatus keyRemove : toRemove) { + entity.getRoomUser().getStatuses().remove(keyRemove.getKey().getStatusCode()); + + if (keyRemove.getKey() == StatusType.CARRY_DRINK) { + refreshUser = true; + } + } + + if (refreshUser) { + entity.getRoomUser().refreshUser(); + } + + } catch (Exception ex) { + Log.getErrorLogger().error("StatusTask crashed: ", ex); + } + } + + /** + * Make the user walk to the next tile on a pool lido queue, if they're in the diving deck and + * they have tickets. + * + * @param player the player to force walking + */ + public static void processPoolQueue(Entity player) { + if (player.getDetails().getTickets() == 0 || player.getDetails().getPoolFigure().isEmpty()) { + return; + } + + if (player.getRoomUser().getRoom() != null && !player.getRoomUser().getRoom().getModel().getName().equals("pool_b")) { + return; + } + + if (player.getRoomUser().isWalking()) { + return; + } + + var currentItem = player.getRoomUser().getCurrentItem(); + + if (currentItem != null) { + if (currentItem.getDefinition().getSprite().contains("queue_tile2")) { + Position front = currentItem.getPosition().getSquareInFront(); + player.getRoomUser().walkTo(front.getX(), front.getY()); + } + } + } + + /** + * Check the talk bubble timer expiry. + * + * @param player the player to check for + */ + public static void processChatBubble(Player player) { + if (player.getRoomUser().getTimerManager().getChatBubbleTimer() != -1 && + DateUtil.getCurrentTimeSeconds() > player.getRoomUser().getTimerManager().getChatBubbleTimer()) { + + player.getRoomUser().setTyping(false); + player.getRoomUser().getTimerManager().stopChatBubbleTimer(); + player.getRoomUser().getRoom().send(new TYPING_STATUS(player.getRoomUser().getInstanceId(), false)); + } + } + + + /** + * Check head rotation expiry. + * + * @param player the player to check for + */ + public static void processHeadRotation(Entity player) { + if (player.getRoomUser().getTimerManager().getLookTimer() != -1 && + DateUtil.getCurrentTimeSeconds() > player.getRoomUser().getTimerManager().getLookTimer()) { + + player.getRoomUser().getTimerManager().stopLookTimer(); + player.getRoomUser().getPosition().setHeadRotation(player.getRoomUser().getPosition().getBodyRotation()); + player.getRoomUser().setNeedsUpdate(true); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/song/Song.java b/Havana-Server/src/main/java/org/alexdev/havana/game/song/Song.java new file mode 100644 index 0000000..b34481c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/song/Song.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.game.song; + +public class Song { + private int id; + private String title; + private long itemId; + private int userId; + private String data; + private int slotId; + private boolean isBurnt; + + public Song() { } + + public Song(int id, String title, long itemId, int userId, int length, String data, boolean isBurnt) { + this.id = id; + this.title = title; + this.itemId = itemId; + this.userId = userId; + this.data = data; + this.isBurnt = isBurnt; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public long getItemId() { + return itemId; + } + + public void setItemId(int itemId) { + this.itemId = itemId; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public boolean isBurnt() { + return isBurnt; + } + + public void setBurnt(boolean burnt) { + isBurnt = burnt; + } + + public int getSlotId() { + return slotId; + } + + public void setSlotId(int slotId) { + this.slotId = slotId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/song/SongPlaylist.java b/Havana-Server/src/main/java/org/alexdev/havana/game/song/SongPlaylist.java new file mode 100644 index 0000000..75e98c7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/song/SongPlaylist.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.song; + +public class SongPlaylist { + private long itemId; + private Song song; + private int slotId; + + public SongPlaylist(long itemId, Song song, int slotId) { + this.itemId = itemId; + this.song = song; + this.slotId = slotId; + } + + public long getItemId() { + return itemId; + } + + public Song getSong() { + return song; + } + + public int getSlotId() { + return slotId; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/BurnedDisk.java b/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/BurnedDisk.java new file mode 100644 index 0000000..097c18f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/BurnedDisk.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.game.song.jukebox; + +public class BurnedDisk { + private long itemId; + private int soundmachineId; + private int slotId; + private int songId; + private long burned; + + public BurnedDisk(long itemId, int soundmachineId, int slotId, int songId, long burned) { + this.itemId = itemId; + this.soundmachineId = soundmachineId; + this.slotId = slotId; + this.songId = songId; + this.burned = burned; + } + + public long getItemId() { + return itemId; + } + + public int getSoundmachineId() { + return soundmachineId; + } + + public int getSlotId() { + return slotId; + } + + public int getSongId() { + return songId; + } + + public long getBurned() { + return burned; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/JukeboxManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/JukeboxManager.java new file mode 100644 index 0000000..aa6574b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/song/jukebox/JukeboxManager.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.game.song.jukebox; + +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.song.Song; + +import java.util.HashMap; +import java.util.Map; + +public class JukeboxManager { + private static JukeboxManager instance; + + /** + * Get the disks for the jukebox. + * + * @param soundmachineId the jukebox id + * @return the list of disks + */ + public Map getDisks(long soundmachineId) { + Map jukeboxDisks = new HashMap<>(); + + for (BurnedDisk burnedDisk : JukeboxDao.getDisks(soundmachineId)) { + Song song = SongMachineDao.getSong(burnedDisk.getSongId()); + + if (song != null) { + jukeboxDisks.put(burnedDisk, song); + } + } + + return jukeboxDisks; + } + + /** + * Get the instance of {@link JukeboxManager} + * + * @return the instance + */ + public static JukeboxManager getInstance() { + if (instance == null) { + instance = new JukeboxManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/tags/HabboTag.java b/Havana-Server/src/main/java/org/alexdev/havana/game/tags/HabboTag.java new file mode 100644 index 0000000..854e9a1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/tags/HabboTag.java @@ -0,0 +1,79 @@ +package org.alexdev.havana.game.tags; + +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.player.PlayerDetails; + +import java.util.ArrayList; +import java.util.List; + +public class HabboTag { + private final String tag; + private final int roomId; + private final int userId; + private final int groupId; + private Group groupData; + private PlayerDetails userData; + private List tagList; + + public HabboTag(String tag, int roomId, int userId, int groupId) { + this.tag = tag; + this.roomId = roomId; + this.userId = userId; + this.groupId = groupId; + this.tagList = new ArrayList<>(); + } + + public List getTagList() { + if (this.groupId > 0) { + this.getGroupData(); + } + + if (this.userId > 0) { + this.getUserData(); + } + + return tagList; + } + + + public String getTag() { + return tag; + } + + public int getRoomId() { + return roomId; + } + + public int getUserId() { + return userId; + } + + public int getGroupId() { + return groupId; + } + + public Group getGroupData() { + if (this.groupData == null) { + if (this.groupId > 0) { + this.groupData = GroupDao.getGroup(this.groupId); + this.tagList = TagDao.getGroupTags(this.groupId); + } + } + + return groupData; + } + + public PlayerDetails getUserData() { + if (this.userData == null) { + if (this.userId > 0) { + this.userData = PlayerDao.getDetails(this.userId); + this.tagList = TagDao.getUserTags(this.userId); + } + } + + return userData; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/texts/TextsManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/texts/TextsManager.java new file mode 100644 index 0000000..38130c1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/texts/TextsManager.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.game.texts; + +import org.alexdev.havana.dao.mysql.SettingsDao; + +import java.util.Map; + +public class TextsManager { + private static TextsManager instance; + private Map textsMap; + + public TextsManager() { + this.textsMap = SettingsDao.getTexts(); + } + + /** + * Get a external text value by key + * + * @param key the external text key to get + * @return the external text value + */ + public String getValue(String key) { + return this.textsMap.getOrDefault(key, key); + } + + /** + * Reload the texts manager + */ + public static void reset() { + instance = null; + TextsManager.getInstance(); + } + + /** + * Get the {@link TextsManager} instance + * + * @return the item manager instance + */ + public static TextsManager getInstance() { + if (instance == null) { + instance = new TextsManager(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GameLobbyTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GameLobbyTrigger.java new file mode 100644 index 0000000..b969219 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GameLobbyTrigger.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.game.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.games.GAMEPLAYERINFO; +import org.alexdev.havana.messages.outgoing.games.INSTANCELIST; +import org.alexdev.havana.messages.types.MessageComposer; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public abstract class GameLobbyTrigger extends GenericTrigger { + public void onRoomEntry(Entity entity, Room room, Object... customArgs) { } + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { } + + public void showPoints(Player player, Room room) { + room.send(new GAMEPLAYERINFO(this.getGameType(), List.of(player))); + } + + public abstract void createGame(Player gameCreator, Map gameParameters); + public abstract GameType getGameType(); + + public MessageComposer getInstanceList() { + return new INSTANCELIST(GameManager.getInstance().getGamesByType(this.getGameType()), GameManager.getInstance().getLastPlayedGames(this.getGameType())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GenericTrigger.java b/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GenericTrigger.java new file mode 100644 index 0000000..08ad239 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/triggers/GenericTrigger.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.game.triggers; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; + +public abstract class GenericTrigger { + public void onInteract(Player player, Room room, Item item, int status) { } + public void onItemPlaced(Player player, Room room, Item item) { } + public void onItemMoved(Player player, Room room, Item item, boolean isRotation, Position oldPosition, Item itemBelow, Item itemAbove) { } + public void onItemPickup(Player player, Room room, Item item) { } + public void onRoomEntry(Entity entity, Room room, boolean firstEntry, Object... customArgs) { } + public void onRoomLeave(Entity entity, Room room, Object... customArgs) { } + public void onEntityStep(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { } + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Position oldPosition) { } + public void onEntityStop(Entity entity, RoomEntity roomEntity, Item item, boolean isRotation) { } + public void onEntityLeave(Entity entity, RoomEntity roomEntity, Item item, Object... customArgs) { } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterManager.java b/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterManager.java new file mode 100644 index 0000000..defd2b6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterManager.java @@ -0,0 +1,139 @@ +package org.alexdev.havana.game.wordfilter; + +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.dao.mysql.WordfilterDao; +import org.alexdev.havana.game.ban.BanManager; +import org.alexdev.havana.game.ban.BanType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class WordfilterManager { + private static WordfilterManager instance; + private List bannedWords; + + public WordfilterManager() { + this.bannedWords = WordfilterDao.getBadWords(); + this.bannedWords.sort(Comparator.comparingInt((WordfilterWord word) -> word.getWord().length()).reversed()); + } + + /** + * Filter sentence, mandatory filtered words + * + * @param sentence the sentence to filter + * @return the filtered sentence + */ + public static boolean hasBannableSentence(Player player, String sentence) { + int minsSinceJoined = (int) Math.floor(TimeUnit.SECONDS.toMinutes((long) (DateUtil.getCurrentTimeSeconds() - Math.floor(player.getDetails().getJoinDate())))); + + if (minsSinceJoined > 30) { + return false; + } + + if (GameConfiguration.getInstance().getBoolean("wordfitler.enabled")) { + for (WordfilterWord filterWord : WordfilterManager.getInstance().getBannedWords()) { + if (!filterWord.isBannable()) { + continue; + } + + if (sentence.toLowerCase().contains(filterWord.getWord().toLowerCase())) { + return true; + } + } + } + + return false; + } + + /** + * Filter sentence, mandatory filtered words + * + * @param sentence the sentence to filter + * @return the filtered sentence + */ + public static String filterMandatorySentence(String sentence) { + if (GameConfiguration.getInstance().getBoolean("wordfitler.enabled")) { + for (WordfilterWord filterWord : WordfilterManager.getInstance().getBannedWords()) { + if (filterWord.isFilterable()) { + continue; + } + + var word = filterWord.getWord(); + + if (sentence.toLowerCase().contains(word.toLowerCase())) { + sentence = sentence.toLowerCase().replace(word.toLowerCase(), GameConfiguration.getInstance().getString("wordfilter.word.replacement")); + } + } + } + + return sentence; + } + + /** + * Filter sentence, if wordfilter is enabled. + * + * @param sentence the sentence to filter + * @return the filtered sentence + */ + public static String filterSentence(String sentence) { + if (GameConfiguration.getInstance().getBoolean("wordfitler.enabled")) { + for (WordfilterWord filterWord : WordfilterManager.getInstance().getBannedWords()) { + var word = filterWord.getWord(); + + if (sentence.toLowerCase().contains(word.toLowerCase())) { + sentence = sentence.toLowerCase().replace(word.toLowerCase(), GameConfiguration.getInstance().getString("wordfilter.word.replacement")); + } + } + } + + return sentence; + } + + /** + * Perform wordfiler ban + * @param player the player to ban + */ + public static void performBan(Player player) { + long in20Years = DateUtil.getCurrentTimeSeconds() + (TimeUnit.DAYS.toSeconds(365) * 20); + BanDao.addBan(BanType.USER_ID, String.valueOf(player.getDetails().getId()), in20Years, "Banned for breaking the Habbo Way", -1); + + BanManager.getInstance().disconnectBanAccounts(new HashMap<>() {{ + put(BanType.USER_ID, String.valueOf(player.getDetails().getId())); + }}); + } + + /** + * Get a list of banned words. + * + * @return the list of banned words + */ + public List getBannedWords() { + return bannedWords; + } + + /** + * Get the {@link WordfilterManager} instance + * + * @return the item manager instance + */ + public static WordfilterManager getInstance() { + if (instance == null) { + instance = new WordfilterManager(); + } + + return instance; + } + + /** + * Reloads the singleton for the {@link WordfilterManager}. + */ + public static void reset() { + instance = null; + getInstance(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterWord.java b/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterWord.java new file mode 100644 index 0000000..7bd09dd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/game/wordfilter/WordfilterWord.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.game.wordfilter; + +public class WordfilterWord { + private final String word; + private final boolean isBannable; + private final boolean isFilterable; + + public WordfilterWord(String word, boolean isBannable, boolean isFilterable) { + this.word = word; + this.isBannable = isBannable; + this.isFilterable = isFilterable; + } + + public String getWord() { + return word; + } + + public boolean isBannable() { + return isBannable; + } + + public boolean isFilterable() { + return isFilterable; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/log/Log.java b/Havana-Server/src/main/java/org/alexdev/havana/log/Log.java new file mode 100644 index 0000000..bb7b38e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/log/Log.java @@ -0,0 +1,11 @@ +package org.alexdev.havana.log; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Log { + + public static Logger getErrorLogger() { + return LoggerFactory.getLogger("ErrorLogger"); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/MessageHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/MessageHandler.java new file mode 100644 index 0000000..35c4f24 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/MessageHandler.java @@ -0,0 +1,664 @@ +package org.alexdev.havana.messages; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.incoming.catalogue.GET_ALIAS_LIST; +import org.alexdev.havana.messages.incoming.catalogue.GET_CATALOGUE_PAGE; +import org.alexdev.havana.messages.incoming.catalogue.GET_CATALOG_INDEX; +import org.alexdev.havana.messages.incoming.catalogue.GRPC; +import org.alexdev.havana.messages.incoming.club.GET_CLUB; +import org.alexdev.havana.messages.incoming.club.SCR_GIFT_APPROVAL; +import org.alexdev.havana.messages.incoming.club.SUBSCRIBE_CLUB; +import org.alexdev.havana.messages.incoming.ecotron.GET_RECYCLER_PRIZES; +import org.alexdev.havana.messages.incoming.ecotron.GET_RECYCLER_STATUS; +import org.alexdev.havana.messages.incoming.ecotron.RECYCLE_ITEMS; +import org.alexdev.havana.messages.incoming.effects.ACTIVATE_AVATAR_EFFECT; +import org.alexdev.havana.messages.incoming.effects.PURCHASE_AND_WEAR; +import org.alexdev.havana.messages.incoming.effects.USE_AVATAR_EFFECT; +import org.alexdev.havana.messages.incoming.events.*; +import org.alexdev.havana.messages.incoming.games.*; +import org.alexdev.havana.messages.incoming.handshake.*; +import org.alexdev.havana.messages.incoming.infobus.CHANGEWORLD; +import org.alexdev.havana.messages.incoming.infobus.TRYBUS; +import org.alexdev.havana.messages.incoming.infobus.VOTE; +import org.alexdev.havana.messages.incoming.inventory.GETSTRIP; +import org.alexdev.havana.messages.incoming.jukebox.*; +import org.alexdev.havana.messages.incoming.messenger.*; +import org.alexdev.havana.messages.incoming.moderation.*; +import org.alexdev.havana.messages.incoming.navigator.*; +import org.alexdev.havana.messages.incoming.pets.APPROVE_PET_NAME; +import org.alexdev.havana.messages.incoming.pets.GETPETSTAT; +import org.alexdev.havana.messages.incoming.purse.GETUSERCREDITLOG; +import org.alexdev.havana.messages.incoming.purse.REDEEM_VOUCHER; +import org.alexdev.havana.messages.incoming.rooms.*; +import org.alexdev.havana.messages.incoming.rooms.dimmer.MSG_ROOMDIMMER_CHANGE_STATE; +import org.alexdev.havana.messages.incoming.rooms.dimmer.MSG_ROOMDIMMER_GET_PRESETS; +import org.alexdev.havana.messages.incoming.rooms.dimmer.MSG_ROOMDIMMER_SET_PRESET; +import org.alexdev.havana.messages.incoming.rooms.idol.START_PERFORMANCE; +import org.alexdev.havana.messages.incoming.rooms.idol.VOTE_PERFORMANCE; +import org.alexdev.havana.messages.incoming.rooms.items.*; +import org.alexdev.havana.messages.incoming.rooms.moderation.*; +import org.alexdev.havana.messages.incoming.rooms.pool.*; +import org.alexdev.havana.messages.incoming.rooms.settings.*; +import org.alexdev.havana.messages.incoming.rooms.user.*; +import org.alexdev.havana.messages.incoming.songs.*; +import org.alexdev.havana.messages.incoming.trade.*; +import org.alexdev.havana.messages.incoming.tutorial.*; +import org.alexdev.havana.messages.incoming.user.*; +import org.alexdev.havana.messages.incoming.user.badges.GETAVAILABLEBADGES; +import org.alexdev.havana.messages.incoming.user.badges.GETSELECTEDBADGES; +import org.alexdev.havana.messages.incoming.user.badges.SETBADGE; +import org.alexdev.havana.messages.incoming.user.latency.PONG; +import org.alexdev.havana.messages.incoming.user.settings.GET_ACCOUNT_PREFERENCES; +import org.alexdev.havana.messages.incoming.wobblesquabble.PTM; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_BADGES; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_INFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +public class MessageHandler { + private ConcurrentHashMap> messages; + + private static final Logger log = LoggerFactory.getLogger(MessageHandler.class); + private static MessageHandler instance; + + private MessageHandler() { + this.messages = new ConcurrentHashMap<>(); + + registerHandshakePackets(); + registerPursePackets(); + registerUserPackets(); + registerClubPackets(); + registerNavigatorPackets(); + registerRoomPackets(); + registerRoomUserPackets(); + registerRoomBadgesPackets(); + registerRoomPoolPackets(); + registerRoomSettingsPackets(); + registerRoomItemPackets(); + //registerRoomTeleporterPackets(); + registerModerationPackets(); + registerRoomModerationPackets(); + registerRoomEventPackets(); + registerMessengerPackets(); + registerCataloguePackets(); + registerInventoryPackets(); + registerTradePackets(); + registerSongPackets(); + registerGamePackets(); + //registerJoystick(); + registerEcotron(); + registerEffects(); + registerInfobus(); + registerPetPackets(); + registerJukeboxPackets(); + registerPollPackets(); + registerTutorPackets(); + + registerEvent(230, (player, reader) -> { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + HashMap groupBadges = new HashMap<>(); + + for (Player p : room.getEntityManager().getPlayers()) { + if (p.getDetails().getFavouriteGroupId() > 0) { + if (groupBadges.containsKey(p.getDetails().getFavouriteGroupId())) { + continue; + } + + var group = player.getJoinedGroup(p.getDetails().getFavouriteGroupId()); + + if (group == null) { + continue; + } + + groupBadges.put(group.getId(), group.getBadge()); + } + } + + player.send(new GROUP_BADGES(groupBadges)); + }); + + registerEvent(231, (player, reader) -> { + if (player.getRoomUser().getRoom() == null) { + return; + } + + int groupId = reader.readInt(); + + Room room = player.getRoomUser().getRoom(); + + for (Player p : room.getEntityManager().getPlayers()) { + var group = p.getJoinedGroup(groupId); + + if (group == null) { + continue; + } + + player.send(new GROUP_INFO(group)); + break; + } + }); + } + + /** + * Register games packets + */ + private void registerGamePackets() { + registerEvent(159, new GETINSTANCELIST()); + registerEvent(160, new OBSERVEINSTANCE()); + registerEvent(161, new UNOBSERVEINSTANCE()); + registerEvent(162, new INITIATECREATEGAME()); + registerEvent(163, new GAMEPARAMETERVALUES()); + registerEvent(165, new INITIATEJOINGAME()); + registerEvent(167, new LEAVEGAME()); + registerEvent(168, new KICKPLAYER()); + registerEvent(169, new WATCHGAME()); + registerEvent(170, new STARTGAME()); + registerEvent(171, new GAMEEVENT()); + registerEvent(172, new GAMERESTART()); + registerEvent(250, new REQUEST_GAME_LOBBY()); + registerEvent(173, new REQUESTFULLGAMESTATUS()); + /*registerEvent(173, (player, reader) -> { + List objects = new ArrayList<>(); + objects.add(new SnowStormSpawnPlayerEvent(player.getRoomUser().getGamePlayer())); + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + SnowStormGame game = (SnowStormGame) gamePlayer.getGame(); + + gamePlayer.getTurnContainer().calculateChecksum(objects); + gamePlayer.getTurnContainer().getCurrentTurn().incrementAndGet(); + + player.send(new SNOWSTORM_GAMESTATUS((SnowStormGame) game, List.of(), gamePlayer));//.compose(response); + });*/ + } + + /** + * Register handshake packets. + */ + private void registerHandshakePackets() { + registerEvent(206, new INIT_CRYPTO()); + registerEvent(2002, new GENERATEKEY()); + registerEvent(204, new SSO()); + registerEvent(415, new SSO()); + registerEvent(4, new TRY_LOGIN()); + registerEvent(756, new TRY_LOGIN()); + registerEvent(1817, new GET_SESSION_PARAMETERS()); + registerEvent(813, new UNIQUEID()); + registerEvent(1170, new VERSIONCHECK()); + } + + /** + * Register purse packets. + */ + private void registerPursePackets() { + registerEvent(8, new GET_CREDITS()); + registerEvent(127, new GETUSERCREDITLOG()); + registerEvent(129, new REDEEM_VOUCHER()); + } + + /** + * Register general purpose user packets. + */ + private void registerUserPackets() { + registerEvent(7, new GET_INFO()); + registerEvent(228, new GET_ACCOUNT_PREFERENCES()); + registerEvent(196, new PONG()); + registerEvent(370, new GET_POSSIBLE_ACHIEVEMENTS()); + registerEvent(360, new GET_IGNORE_LIST()); + registerEvent(319, new IGNORE_USER()); + registerEvent(322, new UNIGNORE_USER()); + //registerEvent(315, new TEST_LATENCY()); + } + + private void registerClubPackets() { + registerEvent(26, new GET_CLUB()); + registerEvent(190, new SUBSCRIBE_CLUB()); + registerEvent(210, new SCR_GIFT_APPROVAL()); + } + + /** + * Register navigator packets. + */ + private void registerNavigatorPackets() { + registerEvent(150, new NAVIGATE()); + registerEvent(16, new SUSERF()); + registerEvent(151, new GETUSERFLATCATS()); + registerEvent(264, new RECOMMENDED_ROOMS()); + registerEvent(17, new SRCHF()); + registerEvent(154, new GETSPACENODEUSERS()); + registerEvent(18, new GETFVRF()); + registerEvent(19, new ADD_FAVORITE_ROOM()); + registerEvent(20, new DEL_FAVORITE_ROOM()); + } + + /** + * Register room packets. + */ + private void registerRoomPackets() { + registerEvent(57, new TRYFLAT()); + registerEvent(59, new GOTOFLAT()); + registerEvent(182, new GETINTEREST()); + registerEvent(2, new ROOM_DIRECTORY()); + registerEvent(126, new GETROOMAD()); + registerEvent(60, new G_HMAP()); + registerEvent(394, new GET_FLOORMAP()); + registerEvent(62, new G_OBJS()); + registerEvent(61, new G_USRS()); + registerEvent(64, new G_STAT()); + registerEvent(63, new G_ITEMS()); + registerEvent(98, new LETUSERIN()); + registerEvent(261, new RATEFLAT()); + } + + /** + * Register room user packets. + */ + private void registerRoomUserPackets() { + registerEvent(53, new QUIT()); + registerEvent(75, new WALK()); + registerEvent(115, new GOAWAY()); + registerEvent(52, new CHAT()); + registerEvent(55, new SHOUT()); + registerEvent(56, new WHISPER()); + registerEvent(317, new USER_START_TYPING()); + registerEvent(318, new USER_CANCEL_TYPING()); + registerEvent(79, new LOOKTO()); + registerEvent(80, new CARRYDRINK()); + registerEvent(87, new CARRYITEM()); + registerEvent(94, new WAVE()); + registerEvent(93, new DANCE()); + registerEvent(88, new STOP()); + registerEvent(229, new SET_SOUND_SETTING()); + registerEvent(117, new IIM()); + registerEvent(371, new RESPECT_USER()); + registerEvent(114, new PTM()); + registerEvent(263, new GET_USER_TAGS()); + } + + + /** + * Register room badges packets; + */ + private void registerRoomBadgesPackets() { + registerEvent(157, new GETAVAILABLEBADGES()); + registerEvent(158, new SETBADGE()); + registerEvent(159, new GETSELECTEDBADGES()); + } + + /** + * Register room settings packets. + */ + private void registerRoomSettingsPackets() { + registerEvent(21, new GETFLATINFO()); + registerEvent(29, new CREATEFLAT()); + registerEvent(25, new SETFLATINFO()); + registerEvent(24, new UPDATEFLAT()); + registerEvent(153, new SETFLATCAT()); + registerEvent(152, new GETFLATCAT()); + registerEvent(23, new DELETEFLAT()); + } + + /** + * Register room item packets. + */ + private void registerRoomItemPackets() { + registerEvent(90, new PLACESTUFF()); + registerEvent(73, new MOVESTUFF()); + registerEvent(67, new ADDSTRIPITEM()); + registerEvent(83, new G_IDATA()); + registerEvent(89, new USEITEM()); + registerEvent(84, new SETITEMDATA()); + registerEvent(393, new USEWALLITEM()); + registerEvent(85, new REMOVEITEM()); + registerEvent(183, new CONVERT_FURNI_TO_CREDITS()); + registerEvent(76, new THROW_DICE()); + registerEvent(77, new DICE_OFF()); + registerEvent(247, new SPIN_WHEEL_OF_FORTUNE()); + registerEvent(341, new MSG_ROOMDIMMER_GET_PRESETS()); + registerEvent(342, new MSG_ROOMDIMMER_SET_PRESET()); + registerEvent(343, new MSG_ROOMDIMMER_CHANGE_STATE()); + registerEvent(78, new PRESENTOPEN()); + registerEvent(392, new USEFURNITURE()); + registerEvent(314, new SET_RANDOM_STATE()); + registerEvent(232, new ENTER_ONEWAY_DOOR()); + registerEvent(410, new START_PERFORMANCE()); + registerEvent(411, new VOTE_PERFORMANCE()); + } + + /** + * Register room pool packets. + */ + private void registerRoomPoolPackets() { + registerEvent(116, new SWIMSUIT()); + registerEvent(108, new CLOSE_UIMAKOPPI()); + registerEvent(104, new SIGN()); + registerEvent(105, new BTCKS()); + registerEvent(106, new DIVE()); + registerEvent(107, new SPLASH_POSITION()); + } + + /** + * Register moderation packets + */ + private void registerModerationPackets() { + registerEvent(200, new MODERATORACTION()); + registerEvent(237, new REQUEST_CFH()); + registerEvent(86, new SUBMIT_CFH()); + registerEvent(48, new PICK_CALLFORHELP()); + registerEvent(199, new MESSAGETOCALLER()); + registerEvent(198, new CHANGECALLCATEGORY()); + registerEvent(238, new DELETE_CRY()); + registerEvent(323, new FOLLOW_CRYFORHELP()); + } + + /** + * Register room moderation packets + */ + private void registerRoomModerationPackets() { + registerEvent(95, new KICK()); + registerEvent(96, new ASSIGNRIGHTS()); + registerEvent(97, new REMOVERIGHTS()); + registerEvent(155, new REMOVEALLRIGHTS()); + registerEvent(320, new BANUSER()); + } + + /** + * Register room trade packets + */ + private void registerTradePackets() { + registerEvent(71, new TRADE_OPEN()); + registerEvent(72, new TRADE_ADDITEM()); + registerEvent(70, new TRADE_CLOSE()); + registerEvent(69, new TRADE_ACCEPT()); + registerEvent(68, new TRADE_UNACCEPT()); + registerEvent(402, new TRADE_CONFIRM_ACCEPT()); + registerEvent(403, new TRADE_UNACCEPT()); + registerEvent(405, new TRADE_REMOVE_ITEM()); + } + + /** + * Register messenger packets. + */ + private void registerMessengerPackets() { + registerEvent(12, new MESSENGERINIT()); + registerEvent(41, new FINDUSER()); + registerEvent(39, new MESSENGER_REQUESTBUDDY()); + registerEvent(38, new MESSENGER_DECLINEBUDDY()); + registerEvent(37, new MESSENGER_ACCEPTBUDDY()); + registerEvent(233, new MESSENGER_GETREQUESTS()); + //registerEvent(191, new MESSENGER_GETMESSAGES()); + //registerEvent(36, new MESSENGER_ASSIGNPERSMSG()); + registerEvent(40, new MESSENGER_REMOVEBUDDY()); + registerEvent(33, new MESSENGER_SENDMSG()); + registerEvent(32, new MESSENGER_MARKREAD()); + registerEvent(262, new FOLLOW_FRIEND()); + registerEvent(15, new FRIENDLIST_UPDATE()); + registerEvent(34, new INVITE_FRIEND()); + } + + /** + * Register catalogue packets + */ + private void registerCataloguePackets() { + registerEvent(101, new GET_CATALOG_INDEX()); + registerEvent(102, new GET_CATALOGUE_PAGE()); + registerEvent(100, new GRPC()); + registerEvent(215, new GET_ALIAS_LIST()); + } + + /** + * Register inventory packets. + */ + private void registerInventoryPackets() { + registerEvent(65, new GETSTRIP()); + registerEvent(66, new FLATPROPBYITEM()); + + // Flash + registerEvent(404, new GETSTRIP()); + } + + /** + * Register song packets. + */ + private void registerSongPackets() { + registerEvent(244, new GET_SONG_LIST()); + registerEvent(246, new GET_SONG_LIST()); + registerEvent(239, new NEW_SONG()); + registerEvent(219, new INSERT_SOUND_PACKAGE()); + registerEvent(220, new EJECT_SOUND_PACKAGE()); + registerEvent(240, new SAVE_SONG_NEW()); + registerEvent(243, new UPDATE_PLAY_LIST()); + registerEvent(221, new GET_SONG_INFO()); + registerEvent(245, new GET_PLAY_LIST()); + registerEvent(248, new DELETE_SONG()); + registerEvent(241, new EDIT_SONG()); + registerEvent(242, new SAVE_SONG_EDIT()); + registerEvent(254, new BURN_SONG()); + } + + /** + * Register effect packets + */ + private void registerEffects() { + registerEvent(372, new USE_AVATAR_EFFECT()); + registerEvent(373, new ACTIVATE_AVATAR_EFFECT()); + registerEvent(374, new PURCHASE_AND_WEAR()); + } + + /** + * Register recycler packets + */ + private void registerEcotron() { + registerEvent(414, new RECYCLE_ITEMS()); + registerEvent(413, new GET_RECYCLER_STATUS()); + registerEvent(412, new GET_RECYCLER_PRIZES()); + } + + /** + * Register infobus packets + */ + private void registerInfobus() { + registerEvent(111, new CHANGEWORLD()); + registerEvent(112, new VOTE()); + registerEvent(113, new TRYBUS()); + } + + /** + * Register room event packets + */ + private void registerRoomEventPackets() { + registerEvent(345, new CAN_CREATE_ROOMEVENT()); + registerEvent(346, new CREATE_ROOMEVENT()); + registerEvent(348, new EDIT_ROOMEVENT()); + registerEvent(347, new QUIT_ROOMEVENT()); + registerEvent(349, new GET_ROOMEVENT_TYPE_COUNT()); + registerEvent(350, new GET_ROOMEVENTS_BY_TYPE()); + } + + /** + * Register pet packets. + */ + private void registerPetPackets() { + registerEvent(42, new APPROVE_PET_NAME()); + registerEvent(128, new GETPETSTAT()); + } + + /** + * Register jukebox packets. + */ + private void registerJukeboxPackets() { + registerEvent(258, new GET_JUKEBOX_DISCS()); + registerEvent(259, new GET_USER_SONG_DISCS()); + registerEvent(255, new ADD_JUKEBOX_DISC()); + registerEvent(256, new REMOVE_JUKEBOX_DISC()); + registerEvent(257, new JUKEBOX_PLAYLIST_ADD()); + registerEvent(260, new RESET_JUKEBOX()); + } + + /** + * Register polling packets. + */ + private void registerPollPackets() { + //registerEvent(234, new POLL_START()); + } + + /** + * Register tutor packets. + */ + private void registerTutorPackets() { + registerEvent(356, new MSG_INVITE_TUTORS()); + registerEvent(355, new MSG_GET_TUTORS_AVAILABLE()); + registerEvent(362, new MSG_WAIT_FOR_TUTOR_INVITATIONS()); + registerEvent(363, new MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS()); + registerEvent(313, new MSG_REMOVE_ACCOUNT_HELP_TEXT()); + registerEvent(357, new MSG_ACCEPT_TUTOR_INVITATION()); + registerEvent(358, new MSG_REJECT_TUTOR_INVITATION()); + registerEvent(359, new MSG_CANCEL_TUTOR_INVITATIONS()); + registerEvent(249, new RESET_TUTORIAL()); + } + + /** + * Register event. + * + * @param header the header + * @param messageEvent the message event + */ + private void registerEvent(int header, MessageEvent messageEvent) { + if (!this.messages.containsKey(header)) { + this.messages.put(header, new ArrayList<>()); + } + + + this.messages.get(header).add(messageEvent); + } + + /** + * Handle request. + * + * @param message the message + */ + public void handleRequest(Player player, NettyRequest message) { + if (ServerConfiguration.getBoolean("log.received.packets")) { + if (this.messages.containsKey(message.getHeaderId())) { + MessageEvent event = this.messages.get(message.getHeaderId()).get(0); + player.getLogger().info("Received ({}): {} / {}", event.getClass().getSimpleName(), message.getHeaderId(), message.getMessageBody()); + } else { + player.getLogger().info("Received ({}): {} / {}", "Unknown", message.getHeaderId(), message.getMessageBody()); + } + } + + invoke(player, message.getHeaderId(), message); + } + + /** + * Invoke the request. + * + * @param messageId the message id + * @param message the message + */ + private void invoke(Player player, int messageId, NettyRequest message) { + ByteBuf byteBuf = null; + + if (this.messages.containsKey(messageId)) { + List events = this.messages.get(messageId); + + for (var event : events) { + if (events.size() > 0) { + NettyRequest nettyRequest = null; + + try { + nettyRequest = new NettyRequest(messageId, Unpooled.copiedBuffer(message.remainingBytes())); + event.handle(player, nettyRequest); + } catch (Exception ex) { + handlePacketException(player, ex, message); + } finally { + if (nettyRequest != null) { + nettyRequest.dispose(); + } + } + } else { + try { + event.handle(player, message); + } catch (Exception ex) { + handlePacketException(player, ex, message); + } + } + } + } + } + + /** + * Global exception handler for packet errors. + * + * @param player the player where the error occurred + * @param ex the exception message + * @param message the message that was sent to the server + */ + private void handlePacketException(Player player, Exception ex, NettyRequest message) { + String name = "[NOT LOGGED IN/" + NettyPlayerNetwork.getIpAddress(player.getNetwork().getChannel()) + "]"; + + if (player.isLoggedIn()) { + name = player.getDetails().getName(); + } + + if (ex instanceof MalformedPacketException) { + ex.printStackTrace(); + //Log.getErrorLogger().error("An invalid packet was sent to the server by " + name + ", kicking off client."); + //Log.getErrorLogger().error("Packet contents: " + message.getHeaderId() + " / " + message.getMessageBody()); + /*if (GameConfiguration.getInstance().getBoolean("enforce.strict.packet.policy")) { + long banExpiry = DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(60); + BanDao.addBan(BanType.USER_ID, String.valueOf(player.getDetails().getId()), banExpiry, "Automatic ban for scripting (temporary 1 hr / 60 minute ban)"); + + BanManager.getInstance().disconnectBanAccounts(new HashMap<>() {{ + put(BanType.USER_ID, String.valueOf(player.getDetails().getId())); + }}); + } else { + player.getNetwork().disconnect(); + }*/ + return; + } + + Log.getErrorLogger().error("Error occurred when handling (" + message.getHeaderId() + ") for user (" + name + "):", ex); + //Log.getErrorLogger().error("Packet contents: " + message.getHeaderId() + " / " + message.getHeader() + " / " + message.getMessageBody()); + } + + /** + * Gets the messages. + * + * @return the messages + */ + private ConcurrentHashMap> getMessages() { + return messages; + } + + /** + * Get the instance of {@link RoomManager} + * + * @return the instance + */ + public static MessageHandler getInstance() { + if (instance == null) { + instance = new MessageHandler(); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_ALIAS_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_ALIAS_LIST.java new file mode 100644 index 0000000..e4137d6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_ALIAS_LIST.java @@ -0,0 +1,15 @@ +package org.alexdev.havana.messages.incoming.catalogue; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.catalogue.ALIAS_TOGGLE; +import org.alexdev.havana.messages.outgoing.catalogue.SPRITE_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_ALIAS_LIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new SPRITE_LIST()); + player.send(new ALIAS_TOGGLE()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOGUE_PAGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOGUE_PAGE.java new file mode 100644 index 0000000..1cd4616 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOGUE_PAGE.java @@ -0,0 +1,65 @@ +package org.alexdev.havana.messages.incoming.catalogue; + +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.CataloguePage; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.catalogue.CATALOGUE_PAGE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.List; + +public class GET_CATALOGUE_PAGE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + CataloguePage cataloguePage = CatalogueManager.getInstance().getCataloguePage(reader.readInt()); + + if (cataloguePage == null) { + return; + } + + if (!cataloguePage.isNavigatable()) { + return; + } + + if (cataloguePage.isClubOnly() && !player.getDetails().hasClubSubscription()) { + return; + } + + if (!cataloguePage.isValidSeasonal()) { + return; + } + + if (player.getDetails().getRank().getRankId() >= cataloguePage.getMinRole().getRankId()) { + if (GameConfiguration.getInstance().getInteger("rare.cycle.page.id") == cataloguePage.getId()) { + if (GameConfiguration.getInstance().getBoolean("rare.cycle.pixels.only")) { + cataloguePage.setLayout("pixelrent"); + } else { + cataloguePage.setLayout("cars"); + } + } + + if (CollectablesManager.getInstance().getCollectableDataByPage(cataloguePage.getId()) != null) { + var item = CollectablesManager.getInstance().getCollectableDataByPage(cataloguePage.getId()).getActiveItem(); + + if (item != null) { + cataloguePage = cataloguePage.copy(); + + if (item.getPricePixels() > 0 && item.getPriceCoins() > 0) { + cataloguePage.setLayout("cars"); + } else if (item.getPriceCoins() > 0 && item.getPricePixels() <= 0) { + cataloguePage.setLayout("default_3x3"); + } else if (item.getPricePixels() > 0 && item.getPriceCoins() <= 0) { + cataloguePage.setLayout("pixelrent"); + } + } + } + + List catalogueItemList = CatalogueManager.getInstance().getCataloguePageItems(cataloguePage.getId(), false); + player.send(new CATALOGUE_PAGE(cataloguePage, catalogueItemList)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOG_INDEX.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOG_INDEX.java new file mode 100644 index 0000000..da6b16c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GET_CATALOG_INDEX.java @@ -0,0 +1,15 @@ +package org.alexdev.havana.messages.incoming.catalogue; + +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.catalogue.CATALOGUE_PAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_CATALOG_INDEX implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) { + player.send(new CATALOGUE_PAGES(player.getDetails().getRank().getRankId(), player.getDetails().hasClubSubscription(), + CatalogueManager.getInstance().getChildPages(-1, player.getDetails().getRank().getRankId(), player.getDetails().hasClubSubscription()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java new file mode 100644 index 0000000..b8d856c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/catalogue/GRPC.java @@ -0,0 +1,318 @@ +package org.alexdev.havana.messages.incoming.catalogue; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.CataloguePackage; +import org.alexdev.havana.game.catalogue.CataloguePage; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.alerts.NO_USER_FOUND; +import org.alexdev.havana.messages.outgoing.catalogue.NO_CREDITS; +import org.alexdev.havana.messages.outgoing.openinghours.INFO_HOTEL_CLOSING; +import org.alexdev.havana.messages.outgoing.user.currencies.ActivityPointNotification; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.HexValidator; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.StringUtils; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class GRPC implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + reader.readInt(); + + if (PlayerManager.getInstance().isMaintenance()) { + player.send(new INFO_HOTEL_CLOSING(PlayerManager.getInstance().getMaintenanceAt())); + return; + } + + CatalogueItem item = CatalogueManager.getInstance().getCatalogueItem(reader.readInt()); + + if (item == null || item.isHidden()) { + System.out.println("Failed to buy reason (" + player.getDetails().getName() + "): 0"); + return; + } + + final CatalogueItem finalItem = item; + CatalogueItem seasonalItem = CatalogueManager.getInstance().getSeasonalItems().stream() + .filter(seasonal -> seasonal.getId() == finalItem.getId()).findFirst().orElse(null); + + if (seasonalItem != null) { + item = seasonalItem; + } else { + // If the item is not a buyable special rare, then check if they can actually buy it + if (!CollectablesManager.getInstance().isCollectable(item)) { + CataloguePage page = CatalogueManager.getInstance().getCataloguePages().stream().filter(p -> finalItem.hasPage(p.getId())).findFirst().orElse(null); + + if (page == null) {// || pageStream.get().getMinRole().getRankId() > player.getDetails().getRank().getRankId()) { + return; + } + + if (page.getMinRole().getRankId() > player.getDetails().getRank().getRankId()) { + return; + } + + if (page.isClubOnly() && !player.getDetails().hasClubSubscription()) { + return; + } + } + } + + List items = new ArrayList<>(); + + int priceCoins = item.getPriceCoins(); + int pricePixels = item.getPricePixels(); + + if (!(player.getDetails().getRank().getRankId() >= PlayerRank.COMMUNITY_MANAGER.getRankId())) { + if (CollectablesManager.getInstance().isCollectable(item)) { + priceCoins = CollectablesManager.getInstance().getCollectableDataByItem(item.getId()).getActiveItem().getPriceCoins(); + pricePixels = CollectablesManager.getInstance().getCollectableDataByItem(item.getId()).getActiveItem().getPricePixels(); + } + } + + if (priceCoins > player.getDetails().getCredits()) { + player.send(new NO_CREDITS(true, false)); + return; + } + + if (pricePixels > player.getDetails().getPixels()) { + player.send(new NO_CREDITS(false, true)); + return; + } + + /*player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_RECEIVED)); // Alert pixels received*/ + + String extraData = reader.readString(); + boolean isGift = reader.readBoolean(); + + String giftedUser = null; + PlayerDetails giftedUserDetails = null; + + if (isGift) { // It's a gift! + giftedUser = reader.readString(); + + if (player.getDetails().getRank().getRankId() < PlayerRank.MODERATOR.getRankId() && !giftedUser.equalsIgnoreCase(player.getDetails().getName())) { + if ((player.getRoomUser().getLastGiftTime() + TimeUnit.MINUTES.toSeconds(1)) > DateUtil.getCurrentTimeSeconds()) { + player.send(new ALERT("Not so fast! Please wait until you can send a gift again.")); + return; + } + } + + + giftedUserDetails = PlayerManager.getInstance().getPlayerData(PlayerDao.getId(giftedUser)); + + //if (!data[6].toLowerCase().equals(player.getDetails().getName().toLowerCase())) { + if (giftedUserDetails == null) { + player.send(new NO_USER_FOUND(giftedUser)); + return; + } + //} + + if (!player.hasFuse(Fuseright.MUTE) && giftedUserDetails.getId() != player.getDetails().getId()) { + if (player.getDetails().isTradeBanned()) { + player.send(new ALERT(RoomTradeManager.showTradeBanAlert(player))); + return; + } + } + + // Giving credits to self on same IP is suspicious behaviour + if (item.getDefinition() != null) { + if (item.getDefinition().hasBehaviour(ItemBehaviour.EFFECT)) { + return; + } + + //if (item.getDefinition().hasBehaviour(ItemBehaviour.REDEEMABLE)) { + if (!player.hasFuse(Fuseright.MUTE) + && giftedUserDetails.getId() != player.getDetails().getId()) { + RoomTradeManager.addTradeBan(player); + return; + } + //} + } + + String presentNote = reader.readString(); + + if (presentNote == null || presentNote.isEmpty()) { + presentNote = ""; + } + + extraData = extraData.replace(Item.PRESENT_DELIMETER, ""); + presentNote = presentNote.replace(Item.PRESENT_DELIMETER, ""); + + if (!item.getItemSpecialId().isBlank() && StringUtils.isNumeric(item.getItemSpecialId())) { + extraData = item.getItemSpecialId(); + } + + Item present = ItemManager.getInstance().createGift(giftedUserDetails.getId(), player.getDetails().getName(), item.getSaleCode(), StringUtil.filterInput(presentNote, true), extraData);//new Item(); + Player receiver = PlayerManager.getInstance().getPlayerById(giftedUserDetails.getId()); + + if (receiver != null) { + receiver.getInventory().addItem(present); + receiver.getInventory().getView("new"); + //receiver.send(new ITEM_DELIVERED()); + } + + items.add(present); + player.send(new ALERT(TextsManager.getInstance().getValue("successfully_purchase_gift_for").replace("%user%", giftedUserDetails.getName()))); + player.getRoomUser().setLastGiftTime(DateUtil.getCurrentTimeSeconds()); + //player.send(new DELIVER_PRESENT(present)); + } else { + if (!item.isPackage() && + item.getDefinition() != null && + item.getDefinition().getInteractionType() == InteractionType.PET_NEST) { + if (extraData != null) { + String[] petData = extraData.split(Character.toString((char) 10)); + String hex = petData[2]; + + if (hex.length() > 6) { + hex = hex.substring(0, 6); + } + + String color = StringUtil.filterInput(hex, true); + + if (!HexValidator.validate(color)) { + return; + } + } + } + + items = CatalogueManager.getInstance().purchase(player.getDetails(), item, extraData, null, DateUtil.getCurrentTimeSeconds()); + + // Don't charge if nothing was given. + var itemDefinition = item.getDefinition(); + if (items.size() == 0 && !(itemDefinition != null && (itemDefinition.hasBehaviour(ItemBehaviour.EFFECT) || itemDefinition.getSprite().equals("film")))) + return; + + boolean showItemDelivered = player.getRoomUser().getRoom() != null; + + // Don't send item delivered if they just buy film + if (item.getDefinition() != null && item.getDefinition().getSprite().equals("film")) { + showItemDelivered = false; + } + + if (item.getDefinition() != null && item.getDefinition().hasBehaviour(ItemBehaviour.EFFECT)) { + showItemDelivered = false; + } + + if (showItemDelivered) { + //player.send(new ITEM_DELIVERED()); + player.getInventory().getView("new"); + } + } + + if (priceCoins > 0) { + CurrencyDao.decreaseCredits(player.getDetails(), priceCoins); + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + } + + if (pricePixels > 0) { + CurrencyDao.decreasePixels(player.getDetails(), pricePixels); + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_SOUND)); + } + + String transactionDscription = getTransactionDescription(item); + + if (transactionDscription != null) { + boolean isCollectable = CollectablesManager.getInstance().isCollectable(item); + + if (isCollectable) { + TransactionDao.createTransaction(player.getDetails().getId(), + items.stream().map(e -> String.valueOf(e.getDatabaseId())).collect(Collectors.joining(",")), + item.getId() + "", + item.getAmount(), + "Collectible - " + transactionDscription, priceCoins, pricePixels, true); + } else { + TransactionDao.createTransaction(player.getDetails().getId(), + items.stream().map(e -> String.valueOf(e.getDatabaseId())).collect(Collectors.joining(",")), + item.getId() + "", + item.getAmount(), transactionDscription, priceCoins, pricePixels, true); + } + + if (giftedUserDetails != null) { + TransactionDao.createTransaction(giftedUserDetails.getId(), + items.stream().map(e -> String.valueOf(e.getDatabaseId())).collect(Collectors.joining(",")), + item.getId() + "", + item.getAmount(), + "Gift purchase from " + player.getDetails().getName() + " for " + giftedUser + " - " + transactionDscription, priceCoins, pricePixels, true); + + TransactionDao.createTransaction(player.getDetails().getId(), + items.stream().map(e -> String.valueOf(e.getDatabaseId())).collect(Collectors.joining(",")), + item.getId() + "", + item.getAmount(), + "Gift purchase from " + player.getDetails().getName() + " for " + giftedUser + " - " + transactionDscription, priceCoins, pricePixels, true); + } + } + + if (CatalogueManager.getInstance().getBadgeRewards().containsKey(item.getSaleCode())) { + for (var badgeCode : CatalogueManager.getInstance().getBadgeRewards().get(item.getSaleCode())) { + player.getBadgeManager().tryAddBadge(badgeCode, null); + } + } + + boolean canRedeemPoints = true; + + if (item.getDefinition() != null && (item.getDefinition().hasBehaviour(ItemBehaviour.REDEEMABLE) || item.getDefinition().hasBehaviour(ItemBehaviour.PRESENT))) { + canRedeemPoints = false; + } + } + + public static String getTransactionDescription(CatalogueItem item) { + if (!item.isPackage()) { + return getItemDescription(item.getDefinition(), item.getAmount()); + } else { + List descriptions = new ArrayList<>(); + + for (CataloguePackage cataloguePackage : item.getPackages()) { + var description = getItemDescription(cataloguePackage.getDefinition(), 1); + + if (description != null) { + descriptions.add(description); + } + } + + return "Package purchase (" + String.join(", ", descriptions) + ")"; + } + } + + private static String getItemDescription(ItemDefinition definition, int amount) { + if (definition == null) { + return null; + } + + if (definition.hasBehaviour(ItemBehaviour.EFFECT)) { + return "Effect " + definition.getSprite().replace("avatar_effect", "") + " purchase"; + } + + if (definition.getSprite().equals("film")) { + return "Film purchase"; + } + + return definition.getName() + " purchase"; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/GET_CLUB.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/GET_CLUB.java new file mode 100644 index 0000000..102f7f1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/GET_CLUB.java @@ -0,0 +1,12 @@ +package org.alexdev.havana.messages.incoming.club; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_CLUB implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.refreshClub(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SCR_GIFT_APPROVAL.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SCR_GIFT_APPROVAL.java new file mode 100644 index 0000000..69b32c5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SCR_GIFT_APPROVAL.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.incoming.club; + +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.sql.SQLException; + +public class SCR_GIFT_APPROVAL implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (ClubSubscription.isGiftDue(player)) { + + try { + while (player.getStatisticManager().getIntValue(PlayerStatistic.GIFTS_DUE) > 0) { + ClubSubscription.tryNextGift(player); + } + + } catch (SQLException e) { + Log.getErrorLogger().error("Error trying to process club gift for user (" + player.getDetails().getName() + "): ", e); + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SUBSCRIBE_CLUB.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SUBSCRIBE_CLUB.java new file mode 100644 index 0000000..edc1e0b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/club/SUBSCRIBE_CLUB.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.messages.incoming.club; + +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class SUBSCRIBE_CLUB implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + reader.readString(); + int choice = reader.readInt(); + + if (ClubSubscription.subscribeClub(player.getDetails(), choice)) { + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + player.refreshClub(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_PRIZES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_PRIZES.java new file mode 100644 index 0000000..3d228aa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_PRIZES.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.messages.incoming.ecotron; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.ecotron.RECYCLER_PRIZES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_RECYCLER_PRIZES implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new RECYCLER_PRIZES()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_STATUS.java new file mode 100644 index 0000000..1bd8e76 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/GET_RECYCLER_STATUS.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.messages.incoming.ecotron; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.ecotron.RECYCLER_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_RECYCLER_STATUS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new RECYCLER_STATUS(1)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/RECYCLE_ITEMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/RECYCLE_ITEMS.java new file mode 100644 index 0000000..2dd82e2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/ecotron/RECYCLE_ITEMS.java @@ -0,0 +1,116 @@ +package org.alexdev.havana.messages.incoming.ecotron; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.ecotron.RECYCLER_STATUS; +import org.alexdev.havana.messages.outgoing.rooms.items.ITEM_DELIVERED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; + +public class RECYCLE_ITEMS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int amount = reader.readInt(); + + if (amount < 5) { + return; + } + + List itemsToDelete = new ArrayList<>(); + + for (int i = 0; i < amount; i++) { + Item item = player.getInventory().getItem(reader.readInt()); + + if (item == null || !item.getDefinition().isRecyclable()) { + continue; + } + + if (itemsToDelete.stream().anyMatch(listItem -> listItem.getDatabaseId() == item.getDatabaseId())) { + continue; + } + + itemsToDelete.add(item); + } + + if (itemsToDelete.size() != 5) { + return; + } + + /*int chance = 0; + int[] chances = {2000, 200, 40, 5}; + + for (int chanceCheck : chances) { + int randomID = ThreadLocalRandom.current().nextInt(1, chanceCheck + 1); + + if (randomID == chanceCheck) { + chance = chanceCheck; + break; + } + } + + List potentialPrizes = EcotronManager.getInstance().getRewardsByChance(chance); + + if (potentialPrizes.isEmpty()) { + return; // OOPS! Something happened + } + + EcotronItem ecotronItem = potentialPrizes.get(ThreadLocalRandom.current().nextInt(0, potentialPrizes.size())); + + if (ecotronItem == null) { + return; + } + + ItemDefinition prize = ItemManager.getInstance().getDefinitionBySprite(ecotronItem.getSpriteName()); + + if (prize == null) { + return; + } + + CatalogueItem catalogueItem = CatalogueManager.getInstance().getCatalogueBySprite(prize.getSpriteId()); + + if (catalogueItem == null) { + return; + }*/ + + + Item present = new Item(); + present.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("ecotron_box").getId()); + present.setOwnerId(player.getDetails().getId()); + + if (itemsToDelete.stream().anyMatch(x -> + x.getDefinition().getSprite().startsWith("chair_plasty") || + x.getDefinition().getSprite().startsWith("chair_plasto") || + x.getDefinition().getSprite().startsWith("table_plasto"))) { + final int percentage = 100; + + var chance = Math.random() * percentage; + var rainbowChance = 1.0; + + if ((percentage - rainbowChance) < chance) { + present.setCustomData("FLAG:RAINBOW_FURNI"); + } + } + + ItemDao.newItem(present); + + //Item present = ItemManager.getInstance().createGift(player.getDetails().getId(), player.getDetails().getName(), catalogueItem.getSaleCode(), "", "", true);//new Item(); + + for (Item item : itemsToDelete) { + player.getInventory().getItems().remove(item); + item.delete(); + } + + player.getInventory().addItem(present); + player.getInventory().getView("last"); + + player.send(new ITEM_DELIVERED()); + player.send(new RECYCLER_STATUS(1)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/ACTIVATE_AVATAR_EFFECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/ACTIVATE_AVATAR_EFFECT.java new file mode 100644 index 0000000..7d75829 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/ACTIVATE_AVATAR_EFFECT.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.incoming.effects; + +import org.alexdev.havana.dao.mysql.EffectDao; +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.effects.EffectsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.effects.AVATAR_EFFECTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; + +public class ACTIVATE_AVATAR_EFFECT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int effectId = reader.readInt(); + doAction(player, effectId); + } + + public static void doAction(Player player, int effectId) { + Effect toActivate = null; + var activatedEffectCheck = player.getEffects().stream().filter(effect -> effect.getEffectId() == effectId && !effect.isActivated()).findFirst(); + + if (activatedEffectCheck.isPresent()) { + toActivate = activatedEffectCheck.get(); + } + + if (toActivate == null) { + return; + } + + int effectTime = EffectsManager.getInstance().getEffectTime(effectId); + long expireTime = (DateUtil.getCurrentTimeSeconds() + effectTime); + + toActivate.setActivated(true); + toActivate.setExpiryDate(expireTime); + + player.send(new AVATAR_EFFECTS(player.getEffects())); + EffectDao.saveEffect(toActivate); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/PURCHASE_AND_WEAR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/PURCHASE_AND_WEAR.java new file mode 100644 index 0000000..6a8cfd7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/PURCHASE_AND_WEAR.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.effects; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.catalogue.NO_CREDITS; +import org.alexdev.havana.messages.outgoing.user.currencies.ActivityPointNotification; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; + +public class PURCHASE_AND_WEAR implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + reader.readInt(); + CatalogueItem item = CatalogueManager.getInstance().getCatalogueItem(reader.readInt()); + + if (item == null || item.isHidden() || !item.getDefinition().hasBehaviour(ItemBehaviour.EFFECT)) { + return; + } + + int priceCoins = item.getPriceCoins(); + int pricePixels = item.getPricePixels(); + + if (priceCoins > player.getDetails().getCredits()) { + player.send(new NO_CREDITS(true, false)); + return; + } + + if (pricePixels > player.getDetails().getPixels()) { + player.send(new NO_CREDITS(false, true)); + return; + } + + CatalogueManager.getInstance().purchase(player.getDetails(), item, "", null, DateUtil.getCurrentTimeSeconds()); + + if (priceCoins > 0) { + CurrencyDao.decreaseCredits(player.getDetails(), priceCoins); + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + } + + if (pricePixels > 0) { + CurrencyDao.decreasePixels(player.getDetails(), pricePixels); + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_SOUND)); + } + + ACTIVATE_AVATAR_EFFECT.doAction(player, Integer.parseInt(item.getItemSpecialId())); + USE_AVATAR_EFFECT.doAction(player, Integer.parseInt(item.getItemSpecialId())); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/USE_AVATAR_EFFECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/USE_AVATAR_EFFECT.java new file mode 100644 index 0000000..9338163 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/effects/USE_AVATAR_EFFECT.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.effects; + +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class USE_AVATAR_EFFECT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int effectId = reader.readInt(); + doAction(player, effectId); + } + + public static void doAction(Player player, int effectId) { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (effectId > 0) { + Effect toActivate = null; + var activatedEffectCheck = player.getEffects().stream().filter(effect -> effect.getEffectId() == effectId && effect.isActivated()).findFirst(); + + if (activatedEffectCheck.isPresent()) { + toActivate = activatedEffectCheck.get(); + } + + if (toActivate == null) { + return; + } + + player.getRoomUser().useEffect(effectId); + } else { + player.getRoomUser().useEffect(0); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CAN_CREATE_ROOMEVENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CAN_CREATE_ROOMEVENT.java new file mode 100644 index 0000000..425a02d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CAN_CREATE_ROOMEVENT.java @@ -0,0 +1,15 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.events.ROOMEVENT_PERMISSION; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CAN_CREATE_ROOMEVENT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + boolean canCreateEvent = EventsManager.getInstance().canCreateEvent(player); + player.send(new ROOMEVENT_PERMISSION(canCreateEvent)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CREATE_ROOMEVENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CREATE_ROOMEVENT.java new file mode 100644 index 0000000..4777e13 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/CREATE_ROOMEVENT.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.events.ROOMEEVENT_INFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class CREATE_ROOMEVENT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!EventsManager.getInstance().canCreateEvent(player)) { + return; + } + + int category = reader.readInt(); + + if (category < 1 || category > 11) { + return; + } + + String name = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + String description = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + + Event event = EventsManager.getInstance().createEvent(player, category, name, description, new ArrayList<>()); + player.getRoomUser().getRoom().send(new ROOMEEVENT_INFO(event)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/EDIT_ROOMEVENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/EDIT_ROOMEVENT.java new file mode 100644 index 0000000..82bde92 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/EDIT_ROOMEVENT.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.dao.mysql.EventsDao; +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.events.ROOMEEVENT_INFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class EDIT_ROOMEVENT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId())) { + return; + } + + if (!EventsManager.getInstance().hasEvent(room.getId())) { + return; + } + + Event event = EventsManager.getInstance().getEventByRoomId(room.getId()); + + if (event == null) { + return; + } + + int category = reader.readInt(); + + if (category < 1 || category > 11) { + return; + } + + String name = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + String description = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + + event.setCategoryId(category); + event.setName(name); + event.setDescription(description); + + room.send(new ROOMEEVENT_INFO(event)); + EventsDao.save(event); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENTS_BY_TYPE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENTS_BY_TYPE.java new file mode 100644 index 0000000..33568d3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENTS_BY_TYPE.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.events.ROOMEVENT_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class GET_ROOMEVENTS_BY_TYPE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int categoryId = reader.readInt(); + + if (categoryId < 0 || categoryId > 11) { + return; + } + + List eventList = EventsManager.getInstance().getEvents(categoryId); + player.send(new ROOMEVENT_LIST(categoryId, eventList)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENT_TYPE_COUNT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENT_TYPE_COUNT.java new file mode 100644 index 0000000..77d4425 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/GET_ROOMEVENT_TYPE_COUNT.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.events.ROOMEVENT_TYPES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +public class GET_ROOMEVENT_TYPE_COUNT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new ROOMEVENT_TYPES(GameConfiguration.getInstance().getInteger("events.category.count"))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/QUIT_ROOMEVENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/QUIT_ROOMEVENT.java new file mode 100644 index 0000000..fc0fb68 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/events/QUIT_ROOMEVENT.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.events; + +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.events.EventsManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.events.ROOMEEVENT_INFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class QUIT_ROOMEVENT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId())) { + return; + } + + if (!EventsManager.getInstance().hasEvent(room.getId())) { + return; + } + + Event event = EventsManager.getInstance().getEventByRoomId(room.getId()); + + if (event == null) { + return; + } + + EventsManager.getInstance().removeEvent(event); + room.send(new ROOMEEVENT_INFO(null)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEEVENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEEVENT.java new file mode 100644 index 0000000..8d5978a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEEVENT.java @@ -0,0 +1,96 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.battleball.BattleBallPowerUp; +import org.alexdev.havana.game.games.battleball.events.ActivatePowerUpEvent; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.snowstorm.messages.SnowStormMessageHandler; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GAMEEVENT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getRoomUser().isWalkingAllowed()) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = gamePlayer.getGame(); + int eventType = reader.readInt(); + + if (game.getGameType() == GameType.SNOWSTORM) { + SnowStormMessageHandler.getInstance().handleMessage(eventType, reader, (SnowStormGame)game, gamePlayer); + } else { + + // Walk request + /*if (eventType == 0) { + if (!player.getRoomUser().isWalkingAllowed()) { + return; + } + + int X = reader.readInt(); + int Y = reader.readInt(); + + SnowStormHandler.doWalk((SnowStormGame)game, gamePlayer, X, Y); + }*/ + + // Pickup Snowballs request + /*if (eventType == 3) { + SnowStormHandler.pickupSnowball((SnowStormGame)game, gamePlayer); + }*/ + + // Jump request + if (eventType == 2) { + if (!player.getRoomUser().isWalkingAllowed()) { + return; + } + + int X = reader.readInt(); + int Y = reader.readInt(); + + player.getRoomUser().walkTo(X, Y); + } + + // Use power up request + if (eventType == 4) { + int powerId = reader.readInt(); + + if (game instanceof BattleBallGame) { + BattleBallGame battleballGame = (BattleBallGame) game; + + if (!battleballGame.getStoredPowers().containsKey(gamePlayer)) { + return; + } + + var powerList = battleballGame.getStoredPowers().get(gamePlayer); + + BattleBallPowerUp powerUp = null; + + for (BattleBallPowerUp power : powerList) { + if (power.getId() == powerId) { + powerUp = power; + break; + } + } + + if (powerUp != null) { + battleballGame.getEventsQueue().add(new ActivatePowerUpEvent(gamePlayer, powerUp)); + powerList.remove(powerUp); + + powerUp.usePower(gamePlayer, player.getRoomUser().getPosition()); + } + } + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEPARAMETERVALUES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEPARAMETERVALUES.java new file mode 100644 index 0000000..a43e20a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMEPARAMETERVALUES.java @@ -0,0 +1,51 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.HashMap; +import java.util.Map; + +public class GAMEPARAMETERVALUES implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + // BcPA@IfieldTypeHI@HnumTeamsHJ@OallowedPowerupsI@O1,2,3,4,5,6,7,8@DnameI@DtestH + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + GameLobbyTrigger gameLobbyTrigger = (GameLobbyTrigger) room.getModel().getRoomTrigger(); + + Map gameParameters = new HashMap<>(); + + int parameters = reader.readInt(); + + for (int i = 0; i < parameters; i++) { + String parameter = reader.readString(); + boolean isTextValue = reader.readBoolean(); + Object value; + + if (isTextValue) { + value = StringUtil.filterInput(reader.readString(), true); + } else { + value = reader.readInt(); + } + + gameParameters.put(parameter, value); + } + + gameLobbyTrigger.createGame(player, gameParameters); + + room.send(gameLobbyTrigger.getInstanceList()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMERESTART.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMERESTART.java new file mode 100644 index 0000000..02e2b80 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GAMERESTART.java @@ -0,0 +1,98 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.games.PLAYERREJOINED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; + +public class GAMERESTART implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = GameManager.getInstance().getGameById(gamePlayer.getGameId()); + + if (game == null || !game.isGameFinished() || gamePlayer.isClickedRestart()) { + return; + } + + // Only allow restart once everyone has clicked they'd like to restart + gamePlayer.setClickedRestart(true); + game.send(new PLAYERREJOINED(player.getRoomUser().getInstanceId())); + + List players = new ArrayList<>(); // Players who wanted to restart + List afkPlayers = new ArrayList<>(); // Players who didn't touch any button + + for (GamePlayer p : game.getActivePlayers()) { + if (!p.isClickedRestart()) { + afkPlayers.add(p); + } else { + players.add(p); + } + } + + if (afkPlayers.isEmpty()) { // Everyone clicked restart + for (GamePlayer p : game.getActivePlayers()) { + p.setClickedRestart(false); // Reset whether or not they clicked restart, for next game + } + + if (players.size() >= GameConfiguration.getInstance().getInteger(game.getGameType().name().toLowerCase() + ".start.minimum.active.teams")) { + game.restartGame(players); + } else { + afkPlayers.addAll(players); + } + + // Send spectators to lobby too + afkPlayers.addAll(game.getSpectators()); + + for (var afkPlayer : afkPlayers) { + game.sendToLobby(afkPlayer); + } + } + + +/* for (GameTeam gameTeam : game.getTeams().values()) { + for (GamePlayer p : gameTeam.getActivePlayers()) { + if (!p.isClickedRestart()) { + return; + } + } + + }*/ + /*Game restartGame = new Game(game.getId(), game.getMapId(), game.getGameType(), game.getName(), game.getTeamAmount(), game.getGameCreator().getDetails().getId()); + + List restartedPlayers = new ArrayList<>(); + + for (var gameUser : newPlayers) { + var gp = new GamePlayer(gameUser.getPlayer()); + gp.setGameId(game.getId()); + gp.setTeamId(gameUser.getTeamId()); + gp.setInGame(true); + + gameUser.getPlayer().getRoomUser().setGamePlayer(gp); + + game.leaveGame(gameUser); + restartGame.movePlayer(gp, -1, gp.getTeamId()); + + restartedPlayers.add(gp); + } + + restartGame.assignSpawnPoints();*/ + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GETINSTANCELIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GETINSTANCELIST.java new file mode 100644 index 0000000..ceccd96 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/GETINSTANCELIST.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +public class GETINSTANCELIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + GameLobbyTrigger gameLobbyTrigger = (GameLobbyTrigger) room.getModel().getRoomTrigger(); + + // Don't show panel and lounge info if create game is disabled + if (!GameConfiguration.getInstance().getBoolean(gameLobbyTrigger.getGameType().name().toLowerCase() + ".create.game.enabled")) { + return; + } + + player.send(gameLobbyTrigger.getInstanceList()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATECREATEGAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATECREATEGAME.java new file mode 100644 index 0000000..dc5751b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATECREATEGAME.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.GameParameter; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.CREATEFAILED; +import org.alexdev.havana.messages.outgoing.games.GAMEPARAMETERS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class INITIATECREATEGAME implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + + GameLobbyTrigger gameLobbyTrigger = (GameLobbyTrigger) room.getModel().getRoomTrigger(); + GameParameter[] parameters = null; + + if (gameLobbyTrigger.getGameType() == GameType.BATTLEBALL) { + parameters = new GameParameter[]{ + new GameParameter("fieldType", true, "1", 1, 5), + new GameParameter("numTeams", true, "2", 2, 4), + new GameParameter("allowedPowerups", true, "1,2,3,4,5,6,7,8"), + new GameParameter("name", true, "") + }; + } + + if (gameLobbyTrigger.getGameType() == GameType.SNOWSTORM) { + parameters = new GameParameter[]{ + new GameParameter("fieldType", true, "1", 1, 7), + new GameParameter("numTeams", true, "2", 2, 4), + new GameParameter("gameLengthChoice", true, "1", 1, 3), + new GameParameter("name", true, "") + }; + } + + if (player.getDetails().getTickets() < gameLobbyTrigger.getGameType().getTicketCost()) { + player.send(new CREATEFAILED(CREATEFAILED.FailedReason.TICKETS_NEEDED)); + return; + } + + if (parameters != null) + player.send(new GAMEPARAMETERS(parameters)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATEJOINGAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATEJOINGAME.java new file mode 100644 index 0000000..fdb24ac --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/INITIATEJOINGAME.java @@ -0,0 +1,71 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.JOINFAILED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class INITIATEJOINGAME implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + int instanceId = reader.readInt(); + int teamId = reader.readInt(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + /*GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + }*/ + + Game game = GameManager.getInstance().getGameById(instanceId); + + if (game == null || game.getGameState() != GameState.WAITING) { + return; + } + + if (player.getDetails().getTickets() < game.getTicketCost()) { + player.send(new JOINFAILED(JOINFAILED.FailedReason.TICKETS_NEEDED, null)); + return; + } + + if (!game.canSwitchTeam(teamId)) { + player.send(new JOINFAILED(JOINFAILED.FailedReason.TEAMS_FULL, "join")); + return; + } + + var currentGamePlayer = player.getRoomUser().getGamePlayer(); + + // If player was initially a spectator, they need to leave + if (currentGamePlayer != null && currentGamePlayer.isSpectator()) { + game.leaveGame(currentGamePlayer); + } + + // Their game player instance will always be null after leaveGame() + if (player.getRoomUser().getGamePlayer() == null) { + player.getRoomUser().setGamePlayer(new GamePlayer(player)); + player.getRoomUser().getGamePlayer().setGameId(game.getId()); + player.getRoomUser().getGamePlayer().setTeamId(teamId); + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + game.getObservers().remove(player); // Player was a viewer + game.getSpectators().remove(gamePlayer); + game.movePlayer(gamePlayer, gamePlayer.getTeamId(), teamId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/KICKPLAYER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/KICKPLAYER.java new file mode 100644 index 0000000..64f350e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/KICKPLAYER.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.CREATEFAILED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class KICKPLAYER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = GameManager.getInstance().getGameById(gamePlayer.getGameId()); + + if (game == null || game.getGameCreatorId() != player.getDetails().getId()) { + return; + } + + int instanceId = reader.readInt(); + + GamePlayer teamPlayer = null; + + for (GameTeam team : game.getTeams().values()) { + for (GamePlayer p : team.getActivePlayers()) { + if (p.getPlayer().getRoomUser().getInstanceId() == instanceId) { + teamPlayer = p; + break; + } + } + } + + if (teamPlayer == null) { + return; + } + + game.leaveGame(teamPlayer); + teamPlayer.getPlayer().send(new CREATEFAILED(CREATEFAILED.FailedReason.KICKED)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/LEAVEGAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/LEAVEGAME.java new file mode 100644 index 0000000..4550c86 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/LEAVEGAME.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class LEAVEGAME implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = gamePlayer.getGame(); + + if (game == null) { + return; + } + + game.leaveGame(gamePlayer); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/OBSERVEINSTANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/OBSERVEINSTANCE.java new file mode 100644 index 0000000..bd16ba8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/OBSERVEINSTANCE.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.GAMEINSTANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class OBSERVEINSTANCE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + int gameId = reader.readInt(); + + Game game = GameManager.getInstance().getGameById(gameId); + + if (game != null && game.getGameState() != GameState.ENDED) { + player.send(new GAMEINSTANCE(game)); + player.getRoomUser().setObservingGameId(gameId); + + game.getObservers().add(player); + return; + } + + var lobbyTrigger = (GameLobbyTrigger)room.getModel().getRoomTrigger(); + GameHistory finishedGame = GameManager.getInstance().getFinishedGameById(lobbyTrigger.getGameType(), gameId); + + if (finishedGame != null) { + player.send(new GAMEINSTANCE(finishedGame)); + } + + /*if (game.getGameState() == GameState.WAITING) { + if (player.getDetails().getTickets() <= 1) { + player.send(new JOINFAILED(JOINFAILED.FailedReason.TICKETS_NEEDED)); + return; + } + + // Find team with lowest team members to add to + List sortedTeamList = new ArrayList<>(game.getTeams().values()); + sortedTeamList.sort(Comparator.comparingInt(team -> team.getPlayers().size())); + + // Select game team + GameTeam gameTeam = sortedTeamList.get(0); + + if (gameTeam == null) { + return; + } + + if (!game.canSwitchTeam(gameTeam.getId())) { + return; + } + + player.getRoomUser().setGamePlayer(new GamePlayer(player)); + player.getRoomUser().getGamePlayer().setGameId(game.getId()); + player.getRoomUser().getGamePlayer().setTeamId(gameTeam.getId()); + + game.movePlayer(player.getRoomUser().getGamePlayer(), -1, gameTeam.getId()); + game.send(new GAMEINSTANCE(game)); + }*/ + + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUESTFULLGAMESTATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUESTFULLGAMESTATUS.java new file mode 100644 index 0000000..b60b444 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUESTFULLGAMESTATUS.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.games.FULLGAMESTATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class REQUESTFULLGAMESTATUS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = GameManager.getInstance().getGameById(gamePlayer.getGameId()); + + if (!(game instanceof SnowStormGame)) { + return; + } + + player.send(new FULLGAMESTATUS(game)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUEST_GAME_LOBBY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUEST_GAME_LOBBY.java new file mode 100644 index 0000000..6031aaa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/REQUEST_GAME_LOBBY.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.concurrent.ThreadLocalRandom; + +public class REQUEST_GAME_LOBBY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.isLoggedIn() || player.getRoomUser().getGamePlayer() != null) { + return; + } + + if (player.getRoomUser().getLastLobbyRedirection() == null) { + if (ThreadLocalRandom.current().nextBoolean()) { + player.getRoomUser().setLastLobbyRedirection(GameType.BATTLEBALL); + } else { + player.getRoomUser().setLastLobbyRedirection(GameType.SNOWSTORM); + } + } else { + if (player.getRoomUser().getLastLobbyRedirection() == GameType.BATTLEBALL) { + player.getRoomUser().setLastLobbyRedirection(GameType.SNOWSTORM); + } else { + player.getRoomUser().setLastLobbyRedirection(GameType.BATTLEBALL); + } + } + + RoomManager.getInstance().getRoomByModel(player.getRoomUser().getLastLobbyRedirection().getLobbyModel()).forward(player, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/STARTGAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/STARTGAME.java new file mode 100644 index 0000000..3c765a0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/STARTGAME.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.games.STARTFAILED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class STARTGAME implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer == null) { + return; + } + + Game game = GameManager.getInstance().getGameById(gamePlayer.getGameId()); + + if (game.getGameState() != GameState.WAITING) { + return; + } + + if (game.getGameCreatorId() != player.getDetails().getId()) { + return; + } + + if (!game.canGameStart()) { + if (game.getGameType() == GameType.SNOWSTORM && game.getTeamAmount() == 1) { + player.send(new ALERT("There needs to be at least two players to start this match")); + } else { + player.send(new STARTFAILED(STARTFAILED.FailedReason.MINIMUM_TEAMS_REQUIRED, null)); + } + return; + } + + game.startGame(); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/UNOBSERVEINSTANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/UNOBSERVEINSTANCE.java new file mode 100644 index 0000000..a34b06b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/UNOBSERVEINSTANCE.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.games.GAMEINSTANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class UNOBSERVEINSTANCE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getObservingGameId() != -1) { + player.getRoomUser().stopObservingGame(); + } + + /* + if (player.getRoomUser().getGamePlayer() != null) { + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + Game game = gamePlayer.getGame(); + + if (game != null) { + if (gamePlayer.getGame().getSpectators().contains(gamePlayer)) { + gamePlayer.getGame().leaveGame(gamePlayer); + } + } + } + */ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/WATCHGAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/WATCHGAME.java new file mode 100644 index 0000000..da4b341 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/games/WATCHGAME.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.triggers.GameLobbyTrigger; +import org.alexdev.havana.messages.outgoing.games.GAMEINSTANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class WATCHGAME implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!(room.getModel().getRoomTrigger() instanceof GameLobbyTrigger)) { + return; + } + + if (player.getRoomUser().getGamePlayer() != null) { + return; + } + + int gameId = reader.readInt(); + + Game game = GameManager.getInstance().getGameById(gameId); + + if (game == null) { + return; + } + + GamePlayer gamePlayer = new GamePlayer(player); + gamePlayer.setGameId(gameId); + gamePlayer.setSpectator(true); + + player.getRoomUser().setGamePlayer(gamePlayer); + + game.getSpectators().add(gamePlayer); + + if (game.getGameState() == GameState.STARTED) { + game.sendSpectatorToArena(gamePlayer); + } else { + game.send(new GAMEINSTANCE(game)); + game.sendObservers(new GAMEINSTANCE(game)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GENERATEKEY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GENERATEKEY.java new file mode 100644 index 0000000..bf48323 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GENERATEKEY.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.game.encryption.DiffieHellman; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.handshake.SECRET_KEY; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GENERATEKEY implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.isLoggedIn()) { + return; + } + + String publicKey = reader.readString(); + + player.getDiffieHellman().generateSharedKey(publicKey); + player.setHasGenerateKey(true); + + player.send(new SECRET_KEY(DiffieHellman.generateRandomNumString(24)));//player.getDetails())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GET_SESSION_PARAMETERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GET_SESSION_PARAMETERS.java new file mode 100644 index 0000000..61fb257 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/GET_SESSION_PARAMETERS.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.handshake.SESSION_PARAMETERS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_SESSION_PARAMETERS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new SESSION_PARAMETERS(player.getDetails())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/INIT_CRYPTO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/INIT_CRYPTO.java new file mode 100644 index 0000000..3044912 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/INIT_CRYPTO.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.handshake.CRYPTO_PARAMETERS; +import org.alexdev.havana.messages.outgoing.handshake.SESSION_PARAMETERS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.concurrent.TimeUnit; + +public class INIT_CRYPTO implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.isLoggedIn()) { + return; + } + + //String prime = Util.getRSA().sign(dh.getPrime().toString()); + //String generator = Util.getRSA().sign(dh.getGenerator().toString()); + + //player.sendObject("DAQBHIIIKHJIPAIQAdd-MM-yyyy\u0002SAHPB/client\u0002QBHIJWVVVSNKQCFUBJASMSLKUUOJCOLJQPNSBIRSVQBRXZQOTGPMNJIHLVJCRRULBLUO" + (char)1); + + player.send(new CRYPTO_PARAMETERS()); + + // Try again + this.retrySend(player); + } + + /** + * Retry sending the crypto parameters if after a second we received no response from the client. + * + * @param player the player to send the parameters to + */ + private void retrySend(Player player) { + GameScheduler.getInstance().getService().schedule(() -> { + if (player.isDisconnected()) { + return; + } + + if (player.hasGenerateKey()) { + return; + } + + player.send(new CRYPTO_PARAMETERS()); + }, 1, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/SSO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/SSO.java new file mode 100644 index 0000000..b0debf2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/SSO.java @@ -0,0 +1,51 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class SSO implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader){ + if (player.isLoggedIn()) { + return; + } + + String ticket = null; + try { + ticket = reader.readString(); + } catch (MalformedPacketException e) { + e.printStackTrace(); + } + + /* + if (GameConfiguration.getInstance().getBoolean("bot.connection.allow")) { + if (ticket.startsWith(GameConfiguration.getInstance().getString("bot.connection.sso.prefix"))) { + String sex = ThreadLocalRandom.current().nextBoolean() ? "M" : "F"; + int userId = ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE); + String name = ticket.replace(GameConfiguration.getInstance().getString("bot.connection.sso.prefix") + "-", ""); + + try { + player.getDetails().fill(userId, name, FigureUtil.getRandomFigure(sex, ThreadLocalRandom.current().nextBoolean()), "I'm here to test things up!", sex); + player.getDetails().setRank(PlayerRank.NORMAL); + } catch (Exception e) { + e.printStackTrace(); + } + + player.login(); + return; + } + } + */ + + if (!PlayerDao.loginTicket(player, ticket)) { + //player.send(new LOCALISED_ERROR("Incorrect SSO ticket")); + player.kickFromServer(); + } else { + player.login(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/TRY_LOGIN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/TRY_LOGIN.java new file mode 100644 index 0000000..731d571 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/TRY_LOGIN.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.alerts.LOCALISED_ERROR; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.StringUtil; + +public class TRY_LOGIN implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.isLoggedIn()) { + return; + } + + String username = StringUtil.filterInput(reader.readString(), true); + String password = StringUtil.filterInput(reader.readString(), true); + + if (!PlayerDao.login(player.getDetails(), username, password)) { + player.send(new LOCALISED_ERROR("Login incorrect")); + } else { + player.login(); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/UNIQUEID.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/UNIQUEID.java new file mode 100644 index 0000000..6a04cb8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/UNIQUEID.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.handshake.UniqueIDMessageEvent; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.UUID; + +public class UNIQUEID implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String machineId = reader.readString(); + + if (machineId == null) { + player.kickFromServer(); + return; + } + + if (machineId.isBlank() || !(machineId.length() == 33 && machineId.startsWith("#"))) { + player.getNetwork().setClientMachineId("#" + UUID.randomUUID().toString().toUpperCase().replace("-", "")); + player.getNetwork().setSaveMachineId(true); + } else { + player.getNetwork().setClientMachineId(machineId); + player.send(new UniqueIDMessageEvent(machineId)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/VERSIONCHECK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/VERSIONCHECK.java new file mode 100644 index 0000000..9e41b4e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/handshake/VERSIONCHECK.java @@ -0,0 +1,12 @@ +package org.alexdev.havana.messages.incoming.handshake; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class VERSIONCHECK implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/CHANGEWORLD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/CHANGEWORLD.java new file mode 100644 index 0000000..44a3acc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/CHANGEWORLD.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.messages.incoming.infobus; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CHANGEWORLD implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + // Do not process public room items + if (!player.getRoomUser().getRoom().isPublicRoom()) { + return; + } + + player.getRoomUser().walkTo(11,2); // Walk to exit square + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/TRYBUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/TRYBUS.java new file mode 100644 index 0000000..53f0c26 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/TRYBUS.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.incoming.infobus; + +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.infobus.CANNOT_ENTER_BUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRYBUS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + // Do not process public room items + if (!player.getRoomUser().getRoom().isPublicRoom()) { + return; + } + + if (!InfobusManager.getInstance().isDoorOpen()) { + player.send(new CANNOT_ENTER_BUS("The Infobus is closed, there is no event right now. Please check back later.")); + return; + } + + player.getRoomUser().walkTo( + InfobusManager.getInstance().getDoorX(), + InfobusManager.getInstance().getDoorY()); // Walk to enter square + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/VOTE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/VOTE.java new file mode 100644 index 0000000..e12433f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/infobus/VOTE.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.incoming.infobus; + +import org.alexdev.havana.dao.mysql.InfobusDao; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.infobus.POLL_QUESTION; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class VOTE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null || !player.getRoomUser().getRoom().getModel().getName().equals("park_b")) { + return; + } + + if (InfobusManager.getInstance().getCurrentPoll() == null) { + return; + } + + int choice = reader.readInt(); + var currentPoll = InfobusManager.getInstance().getCurrentPoll(); + + if (choice <= 0 || choice > currentPoll.getPollData().getAnswers().size()) { + return; + } + + if (InfobusDao.hasAnswer(currentPoll.getId(), player.getDetails().getId())) { + return; + } + + InfobusDao.addAnswer(currentPoll.getId(), choice - 1, player.getDetails().getId()); + + if (InfobusManager.getInstance().canUpdateResults()) { + InfobusManager.getInstance().showPollResults(InfobusManager.getInstance().getCurrentPoll().getId()); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/inventory/GETSTRIP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/inventory/GETSTRIP.java new file mode 100644 index 0000000..6ebdc7d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/inventory/GETSTRIP.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.messages.incoming.inventory; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETSTRIP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int stripId = reader.readInt(); + String stripView = null; + + if (stripId == 0) { + stripView = "last"; + } + + if (stripId == 1) { + stripView = "next"; + } + + if (stripId == 2) { + stripView = "prev"; + } + + if (stripId == 3) { + stripView = "new"; + } + + if (stripId == 4) { + stripView = "current"; + } + + if (stripView == null) { + return; + } + + player.getInventory().getView(stripView); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/ADD_JUKEBOX_DISC.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/ADD_JUKEBOX_DISC.java new file mode 100644 index 0000000..e3b255c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/ADD_JUKEBOX_DISC.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.game.song.jukebox.JukeboxManager; +import org.alexdev.havana.messages.outgoing.jukebox.JUKEBOX_DISCS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class ADD_JUKEBOX_DISC implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + int itemId = reader.readInt(); + int slotId = reader.readInt(); + + Item songDisk = null; + + for (Item item : player.getInventory().getItems()) { + if (item.getVirtualId() == itemId && item.isVisible()) { + songDisk = item; + break; + } + } + + if (songDisk == null) { + return; + } + + songDisk.setHidden(true); + songDisk.save(); + + player.getInventory().getView("new"); // Refresh hand + + int songId = JukeboxDao.getSongIdByItem(songDisk.getDatabaseId()); + Song song = SongMachineDao.getSong(songId); + + if (song == null) { + return; + } + + if (slotId < 1 || slotId > 10) { + return; + } + + JukeboxDao.editDisk(songDisk.getDatabaseId(), room.getItemManager().getSoundMachine().getDatabaseId(), slotId); + + room.send(new JUKEBOX_DISCS(JukeboxManager.getInstance().getDisks(room.getItemManager().getSoundMachine().getDatabaseId()))); + new GET_USER_SONG_DISCS().handle(player, null); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_JUKEBOX_DISCS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_JUKEBOX_DISCS.java new file mode 100644 index 0000000..59f375c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_JUKEBOX_DISCS.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.jukebox.BurnedDisk; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.game.song.jukebox.JukeboxManager; +import org.alexdev.havana.messages.outgoing.jukebox.JUKEBOX_DISCS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.HashMap; +import java.util.Map; + +public class GET_JUKEBOX_DISCS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + + player.send(new JUKEBOX_DISCS(JukeboxManager.getInstance().getDisks(room.getItemManager().getSoundMachine().getDatabaseId()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_USER_SONG_DISCS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_USER_SONG_DISCS.java new file mode 100644 index 0000000..29c15d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/GET_USER_SONG_DISCS.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.jukebox.USER_SONG_DISKS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.HashMap; +import java.util.Map; + +public class GET_USER_SONG_DISCS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + Map userDisks = new HashMap<>(); + + for (Item item : player.getInventory().getItems()) { + if (!item.isVisible()) { + continue; + } + + if (item.hasBehaviour(ItemBehaviour.SONG_DISK)) { + userDisks.put(item, item.getVirtualId()); + } + } + + player.send(new USER_SONG_DISKS(userDisks)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/JUKEBOX_PLAYLIST_ADD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/JUKEBOX_PLAYLIST_ADD.java new file mode 100644 index 0000000..36e50e8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/JUKEBOX_PLAYLIST_ADD.java @@ -0,0 +1,55 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.SongPlaylist; +import org.alexdev.havana.game.song.jukebox.BurnedDisk; +import org.alexdev.havana.game.song.jukebox.JukeboxManager; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +public class JUKEBOX_PLAYLIST_ADD implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + //return; + } + + int songId = reader.readInt(); + SongMachineDao.removePlaylistSong(songId, room.getItemManager().getSoundMachine().getDatabaseId()); + + var playList = SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()); + var loadedDiscs = JukeboxManager.getInstance().getDisks(room.getItemManager().getSoundMachine().getDatabaseId()); + + // Don't load a song if it's not in the jukebox + if (loadedDiscs.keySet().stream().noneMatch(disc -> disc.getSongId() == songId)) { + return; + } + + List sortedDisks = new ArrayList<>(loadedDiscs.keySet()); + sortedDisks.sort(Comparator.comparingInt(BurnedDisk::getSlotId)); + + int newSlotId = (sortedDisks.size() > 0 ? sortedDisks.get(0).getSlotId() : 0) + 1; + SongMachineDao.addPlaylist(room.getItemManager().getSoundMachine().getDatabaseId(), songId, newSlotId); + + playList.add(new SongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId(), SongMachineDao.getSong(songId), newSlotId)); + room.send(new SONG_PLAYLIST(playList)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/REMOVE_JUKEBOX_DISC.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/REMOVE_JUKEBOX_DISC.java new file mode 100644 index 0000000..0e65678 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/REMOVE_JUKEBOX_DISC.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.jukebox.BurnedDisk; +import org.alexdev.havana.game.song.jukebox.JukeboxManager; +import org.alexdev.havana.messages.outgoing.jukebox.JUKEBOX_DISCS; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class REMOVE_JUKEBOX_DISC implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + int slotId = reader.readInt(); + BurnedDisk burnedDisk = JukeboxDao.getDisk(room.getItemManager().getSoundMachine().getDatabaseId(), slotId); + + if (burnedDisk == null) { + return; + } + + Item songDisk = null; + + for (Item item : player.getInventory().getItems()) { + if ((burnedDisk.getItemId() == item.getDatabaseId()) && !item.isVisible()) { + songDisk = item; + break; + } + } + + if (songDisk == null) { + return; + } + + songDisk.setHidden(false); + player.getInventory().addItem(songDisk); // Re-add at start. + + songDisk.save(); + + SongMachineDao.removePlaylistSong(burnedDisk.getSongId(), room.getItemManager().getSoundMachine().getDatabaseId()); + JukeboxDao.editDisk(songDisk.getDatabaseId(), 0, 0); + + player.getInventory().getView("new"); // Refresh hand + new GET_USER_SONG_DISCS().handle(player, null); + + room.send(new SONG_PLAYLIST(SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()))); + room.send(new JUKEBOX_DISCS(JukeboxManager.getInstance().getDisks(room.getItemManager().getSoundMachine().getDatabaseId()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/RESET_JUKEBOX.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/RESET_JUKEBOX.java new file mode 100644 index 0000000..b8e999f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/jukebox/RESET_JUKEBOX.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.incoming.jukebox; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class RESET_JUKEBOX implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + SongMachineDao.clearPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()); + room.send(new SONG_PLAYLIST(List.of())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FINDUSER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FINDUSER.java new file mode 100644 index 0000000..67e3614 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FINDUSER.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_SEARCH; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.List; + +public class FINDUSER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String searchQuery = reader.readString(); + + List userList = MessengerDao.search(searchQuery.toLowerCase()); + + List friends = new ArrayList<>(); + List others = new ArrayList<>(); + + for (int userId : userList) { + if (player.getMessenger().hasFriend(userId)) { + friends.add(PlayerManager.getInstance().getPlayerData(userId)); + } else { + others.add(PlayerManager.getInstance().getPlayerData(userId)); + } + } + + friends.removeIf(playerDetails -> playerDetails.getId() == player.getDetails().getId()); + + others.removeIf(playerDetails -> playerDetails.getId() == player.getDetails().getId()); + others.removeIf(playerDetails -> playerDetails.getName().equals("Abigail.Ryan")); + + player.send(new MESSENGER_SEARCH(friends, others)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FOLLOW_FRIEND.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FOLLOW_FRIEND.java new file mode 100644 index 0000000..1a5182c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FOLLOW_FRIEND.java @@ -0,0 +1,61 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.messenger.FOLLOW_ERROR; +import org.alexdev.havana.messages.outgoing.messenger.ROOMFORWARD; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class FOLLOW_FRIEND implements MessageEvent { + private enum FollowErrors { + NOT_FRIEND(0), + OFFLINE(1), + ON_HOTELVIEW(2), + NO_CREEPING_ALLOWED(3); + + private int id; + + FollowErrors(int id) { + this.id = id; + } + + public int getErrorId(){ + return id; + } + } + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int friendId = reader.readInt(); + + if (!player.getMessenger().hasFriend(friendId)) { + player.send(new FOLLOW_ERROR(FollowErrors.NOT_FRIEND.getErrorId())); // Not their friend + return; + } + + Player friend = PlayerManager.getInstance().getPlayerById(friendId); + + if (friend == null) { + player.send(new FOLLOW_ERROR(FollowErrors.OFFLINE.getErrorId())); // Friend is not online + return; + } + + if (friend.getRoomUser().getRoom() == null || !new MessengerUser(friend.getDetails()).canFollowFriend(player)) { + player.send(new FOLLOW_ERROR(FollowErrors.ON_HOTELVIEW.getErrorId())); // Friend is on hotelview + return; + } + + if (!friend.getDetails().doesAllowStalking()) { + player.send(new FOLLOW_ERROR(FollowErrors.NO_CREEPING_ALLOWED.getErrorId())); // Friend does not allow stalking + return; + } + + Room friendRoom = friend.getRoomUser().getRoom(); + player.getMessenger().hasFollowed(friendRoom); + friendRoom.forward(player, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FRIENDLIST_UPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FRIENDLIST_UPDATE.java new file mode 100644 index 0000000..e0c28a8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/FRIENDLIST_UPDATE.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.messenger.FRIENDS_UPDATE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class FRIENDLIST_UPDATE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new FRIENDS_UPDATE(player, player.getMessenger())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/INVITE_FRIEND.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/INVITE_FRIEND.java new file mode 100644 index 0000000..414ed17 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/INVITE_FRIEND.java @@ -0,0 +1,53 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.messenger.INSTANT_MESSAGE_INVITATION; +import org.alexdev.havana.messages.outgoing.messenger.INVITATION_ERROR; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class INVITE_FRIEND implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + + int users = reader.readInt(); + + List friends = new ArrayList<>(); + + for (int i = 0; i < users; i++) { + int userId = reader.readInt(); + + if (!player.getMessenger().hasFriend(userId)) { + player.send(new INVITATION_ERROR()); + break; + } + + Player friend = PlayerManager.getInstance().getPlayerById(userId); + + if (friend == null) { + player.send(new INVITATION_ERROR()); + continue; + } + + friends.add(friend); + } + + String message = StringUtil.filterInput(reader.readString(), false); + + for (Player friend : friends) { + friend.send(new INSTANT_MESSAGE_INVITATION(player.getDetails().getId(), message)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGERINIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGERINIT.java new file mode 100644 index 0000000..075e898 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGERINIT.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_INIT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSENGERINIT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Messenger messenger = MessengerManager.getInstance().getMessengerData(player.getDetails().getId()); + player.send(new MESSENGER_INIT(player, messenger)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_ACCEPTBUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_ACCEPTBUDDY.java new file mode 100644 index 0000000..f934ddd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_ACCEPTBUDDY.java @@ -0,0 +1,73 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.messenger.*; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.messenger.ADD_BUDDY; +import org.alexdev.havana.messages.outgoing.messenger.BUDDY_REQUEST_RESULT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.util.ArrayList; +import java.util.List; + +public class MESSENGER_ACCEPTBUDDY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + List errors = new ArrayList<>(); + + int amount = reader.readInt(); + + for (int i = 0; i < amount; i++) { + int userId = reader.readInt(); + + MessengerUser newBuddy = player.getMessenger().getRequest(userId); + + if (newBuddy == null) { + MessengerError error = new MessengerError(MessengerErrorType.FRIEND_REQUEST_NOT_FOUND); + error.setCauser(""); + + errors.add(error); + continue; + } + + Messenger newBuddyData = MessengerManager.getInstance().getMessengerData(userId); + + if (newBuddyData == null) { + // log warning + continue; + } + + if (player.getMessenger().isFriendsLimitReached()) { + MessengerError error = new MessengerError(MessengerErrorType.FRIENDLIST_FULL); + error.setCauser(newBuddy.getUsername()); + + errors.add(error); + continue; + } + + if (newBuddyData.isFriendsLimitReached()) { + MessengerError error = new MessengerError(MessengerErrorType.TARGET_FRIEND_LIST_FULL); + error.setCauser(newBuddy.getUsername()); + + errors.add(error); + continue; + } + + /*if (!newBuddyData.allowsFriendRequests()) { + MessengerError error = new MessengerError(MessengerErrorType.TARGET_DOES_NOT_ACCEPT); + error.setCauser(newBuddy.getUsername()); + + errors.add(error); + continue; + }*/ + + player.getMessenger().addFriend(newBuddy); + } + + player.send(new BUDDY_REQUEST_RESULT(errors)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_DECLINEBUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_DECLINEBUDDY.java new file mode 100644 index 0000000..000833b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_DECLINEBUDDY.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSENGER_DECLINEBUDDY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + boolean declineAll = reader.readBoolean(); + + if (declineAll) { + player.getMessenger().declineAllRequests(); + return; + } + + int amount = reader.readInt(); + + for (int i = 0; i < amount; i++) { + int userId = reader.readInt(); + + if (!player.getMessenger().hasRequest(userId)) { + continue; + } + + MessengerUser requester = player.getMessenger().getRequest(userId); + player.getMessenger().declineRequest(requester); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETMESSAGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETMESSAGES.java new file mode 100644 index 0000000..aab3b84 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETMESSAGES.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.MessengerMessage; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_MSG; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSENGER_GETMESSAGES implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + for (MessengerMessage offlineMessage : player.getMessenger().getOfflineMessages().values()) { + player.send(new MESSENGER_MSG(offlineMessage)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETREQUESTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETREQUESTS.java new file mode 100644 index 0000000..5be4b8b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_GETREQUESTS.java @@ -0,0 +1,13 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.messenger.FRIEND_REQUESTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSENGER_GETREQUESTS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new FRIEND_REQUESTS(player.getMessenger().getRequests())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_MARKREAD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_MARKREAD.java new file mode 100644 index 0000000..5b67cf2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_MARKREAD.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; + +public class MESSENGER_MARKREAD implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + int messageId = reader.readInt(); + + MessengerDao.markMessageRead(messageId); + player.getMessenger().getOfflineMessages().remove(messageId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REMOVEBUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REMOVEBUDDY.java new file mode 100644 index 0000000..7f8d854 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REMOVEBUDDY.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.*; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_ERROR; +import org.alexdev.havana.messages.outgoing.messenger.REMOVE_BUDDY; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.List; + +public class MESSENGER_REMOVEBUDDY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + // How many friends to remove? + int size = reader.readInt(); + + // List for removed friends + List friendsRemoved = new ArrayList<>(); + + // Friend instance, used later + MessengerUser meAsFriend = player.getMessenger().getMessengerUser(); + + // Remove all friends requested to be removed + for (int i = 0; i < size; i++) { + int friendId = reader.readInt(); + + MessengerUser friend = player.getMessenger().getFriend(friendId); + + // If the clients requests a friend to be removed whom is not a friend, something has gone terribly wrong. + if (!player.getMessenger().hasFriend(friendId)) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.CONCURRENCY_ERROR))); + return; + } + + // Remove friend from our messenger + if (!player.getMessenger().removeFriend(friendId)) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.CONCURRENCY_ERROR))); + return; + } + + // Get messenger data of friend + Messenger friendMessenger = MessengerManager.getInstance().getMessengerData(friendId); + + // Remove myself from friend's messenger + if (!friendMessenger.removeFriend(meAsFriend.getUserId())) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.CONCURRENCY_ERROR))); + return; + } + + // Get player instance of friend, will return null if not online + Player playerFriend = PlayerManager.getInstance().getPlayerById(friendId); + + // If friend is online, send remove friend message + if (playerFriend != null) { + playerFriend.send(new REMOVE_BUDDY(playerFriend, meAsFriend)); + } + + // Add removed friend to list + friendsRemoved.add(friend); + + // Send list of removed friends + player.send(new REMOVE_BUDDY(player, friend)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REQUESTBUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REQUESTBUDDY.java new file mode 100644 index 0000000..6707c7f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_REQUESTBUDDY.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerError; +import org.alexdev.havana.game.messenger.MessengerErrorType; +import org.alexdev.havana.game.messenger.MessengerManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_ERROR; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSENGER_REQUESTBUDDY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String username = reader.readString(); + Messenger target = MessengerManager.getInstance().getMessengerData(username); + + if (username.equalsIgnoreCase("Abigail.Ryan")) { + target = null; + } + + if (target == null) { + // Error type in external texts has it defined as "There was an error finding the user for the friend request" + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.FRIEND_REQUEST_NOT_FOUND))); + return; + } + + Messenger callee = player.getMessenger(); + + if (username.toLowerCase().equals(player.getDetails().getName())) { + return; + } + + if (callee.isFriendsLimitReached()) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.FRIENDLIST_FULL))); + return; + } + + if (target.hasFriend(player.getDetails().getId())) { + return; + } + + if (target.hasRequest(player.getDetails().getId())) { + return; + } + + if (target.isFriendsLimitReached()) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.TARGET_FRIEND_LIST_FULL))); + return; + } + + if (!target.allowsFriendRequests()) { + player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.TARGET_DOES_NOT_ACCEPT))); + return; + } + + + target.addRequest(callee.getMessengerUser()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_SENDMSG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_SENDMSG.java new file mode 100644 index 0000000..14b16d6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/messenger/MESSENGER_SENDMSG.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.messages.incoming.messenger; + +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.game.messenger.MessengerMessage; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.messenger.INSTANT_MESSAGE_ERROR; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_MSG; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; + +public class MESSENGER_SENDMSG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + //int amount = reader.readInt(); + + /*List friends = new ArrayList<>(); + + for (int i = 0; i < amount; i++) { + int friend_id = reader.readInt(); + friends.add(friend_id); + }*/ + + int userId = reader.readInt(); + + String originalMessage = reader.readString(); + String message = WordfilterManager.filterMandatorySentence(StringUtil.filterInput(originalMessage, false)); + + if (message.isBlank()) { + return; + } + + if (WordfilterManager.hasBannableSentence(player, originalMessage)) { + WordfilterManager.performBan(player); + return; + } + + if (player.isMuted()) { + PlayerManager.getInstance().showMutedAlert(player); + return; + } + + MessengerUser friend = player.getMessenger().getFriend(userId); + + if (friend == null) { + player.send(new INSTANT_MESSAGE_ERROR(6, userId)); + return; + } + + Player friendPlayer = PlayerManager.getInstance().getPlayerById(userId); + + if (friendPlayer == null) { + player.send(new INSTANT_MESSAGE_ERROR(5, userId)); + return; + } + + String chatMessage = friendPlayer.getDetails().isWordFilterEnabled() ? WordfilterManager.filterSentence(message) : message; + int messageId = MessengerDao.newMessage(player.getDetails().getId(), userId, originalMessage); + + MessengerMessage msg = new MessengerMessage( + messageId, userId, player.getDetails().getId(), DateUtil.getCurrentTimeSeconds(), chatMessage); + + friendPlayer.send(new MESSENGER_MSG(msg)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/CHANGECALLCATEGORY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/CHANGECALLCATEGORY.java new file mode 100644 index 0000000..fbc90ee --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/CHANGECALLCATEGORY.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CHANGECALLCATEGORY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.hasFuse(Fuseright.RECEIVE_CALLS_FOR_HELP)) { + return; + } + + int callId = Integer.parseInt(reader.readString()); + int category = reader.readInt(); + + CallForHelp cfh = CallForHelpManager.getInstance().getCall(callId); + CallForHelpManager.getInstance().changeCategory(cfh, category); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/DELETE_CRY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/DELETE_CRY.java new file mode 100644 index 0000000..9e833c6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/DELETE_CRY.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.moderation.CFH_ACK; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class DELETE_CRY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + CallForHelp cfh = CallForHelpManager.getInstance().getPendingCall(player.getDetails().getId()); + + if (cfh == null) { + return; + } + + CallForHelpManager.getInstance().deleteCall(cfh); + player.send(new CFH_ACK(null)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/FOLLOW_CRYFORHELP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/FOLLOW_CRYFORHELP.java new file mode 100644 index 0000000..f216627 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/FOLLOW_CRYFORHELP.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class FOLLOW_CRYFORHELP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.hasFuse(Fuseright.RECEIVE_CALLS_FOR_HELP)) { + return; + } + + int callId = Integer.parseInt(reader.readString()); + CallForHelp cfh = CallForHelpManager.getInstance().getCall(callId); + + if (cfh == null) { + return; + } + + if (cfh.getRoom() == null) { + return; + } + + cfh.getRoom().forward(player, false); + CallForHelpManager.getInstance().deleteCall(cfh); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MESSAGETOCALLER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MESSAGETOCALLER.java new file mode 100644 index 0000000..0250cf5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MESSAGETOCALLER.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.moderation.CRY_REPLY; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MESSAGETOCALLER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.hasFuse(Fuseright.RECEIVE_CALLS_FOR_HELP)) { + return; + } + + int callId = Integer.parseInt(reader.readString()); + String message = reader.readString(); + + CallForHelp cfh = CallForHelpManager.getInstance().getCall(callId); + + if (cfh == null) { + return; + } + + Player caller = PlayerManager.getInstance().getPlayerById(cfh.getCaller()); + + if (caller == null) { + return; + } + + caller.send(new CRY_REPLY(message)); + CallForHelpManager.getInstance().deleteCall(cfh); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MODERATORACTION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MODERATORACTION.java new file mode 100644 index 0000000..55cc90d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/MODERATORACTION.java @@ -0,0 +1,104 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.dao.mysql.ModerationDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.moderation.ModerationActionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.rooms.user.HOTEL_VIEW; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.moderation.MODERATOR_ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class MODERATORACTION implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int targetType = reader.readInt(); + int actionType = reader.readInt(); + + String alertMessage = reader.readString(); + String notes = reader.readString(); + + for (ModerationActionType moderationActionType : ModerationActionType.values()) { + if (moderationActionType.getTargetType() == targetType && + moderationActionType.getActionType() == actionType) { + moderationActionType.getModerationAction().performAction(player, player.getRoomUser().getRoom(), alertMessage, notes, reader); + } + } + + // TODO: refactor this if-else mess in something more syntactically pleasing + /*if (commandCat == 0) { + // User Command + if (commandId == 0 && player.hasFuse(Fuseright.ROOM_ALERT)) { + String alertUser = reader.readString(); + + Player target = PlayerManager.getInstance().getPlayerByName(alertUser); + + if (target != null) { + target.send(new MODERATOR_ALERT(alertMessage)); + ModerationDao.addLog(ModerationActionType.ALERT_USER, player.getDetails().getId(), target.getDetails().getId(), alertMessage, notes); + } else { + player.send(new ALERT("Target user is not online.")); + } + } else if (commandId == 1 && player.hasFuse(Fuseright.KICK)) { + // Kick + String alertUser = reader.readString(); + Player target = PlayerManager.getInstance().getPlayerByName(alertUser); + + if (target != null) { + if (target.getDetails().getId() == player.getDetails().getId()) { + return; // Can't kick yourself! + } + + if (target.hasFuse(Fuseright.KICK)) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + target.getRoomUser().kick(false); + target.send(new HOTEL_VIEW()); + target.send(new MODERATOR_ALERT(alertMessage)); + + ModerationDao.addLog(ModerationActionType.KICK_USER, player.getDetails().getId(), target.getDetails().getId(), alertMessage, notes); + } else { + player.send(new ALERT("Target user is not online.")); + } + } else if (commandId == 2 && player.hasFuse(Fuseright.BAN)) { + //Ban + // TODO: Banning + } + } else if (commandCat == 1) { + // Room Command + if (commandId == 0 && player.hasFuse(Fuseright.ROOM_ALERT)) { + List players = player.getRoomUser().getRoom().getEntityManager().getPlayers(); + + for (Player target : players) { + target.send(new MODERATOR_ALERT(alertMessage)); + } + + ModerationDao.addLog(ModerationActionType.ROOM_ALERT, player.getDetails().getId(), -1, alertMessage, notes); + } else if (commandId == 1 && player.hasFuse(Fuseright.ROOM_KICK)) { + // Room Kick + List players = player.getRoomUser().getRoom().getEntityManager().getPlayers(); + + for (Player target : players) { + // Don't kick other moderators + if (target.hasFuse(Fuseright.ROOM_KICK)) { + continue; + } + + target.getRoomUser().kick(false); + + target.send(new HOTEL_VIEW()); + target.send(new MODERATOR_ALERT(alertMessage)); + + ModerationDao.addLog(ModerationActionType.ROOM_KICK, player.getDetails().getId(), -1, alertMessage, notes); + } + } + }*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/PICK_CALLFORHELP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/PICK_CALLFORHELP.java new file mode 100644 index 0000000..1b8a04b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/PICK_CALLFORHELP.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class PICK_CALLFORHELP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.hasFuse(Fuseright.RECEIVE_CALLS_FOR_HELP)) { + return; + } + + int callId = Integer.parseInt(reader.readString()); + boolean blockCfh = reader.readBoolean(); + + CallForHelp cfh = CallForHelpManager.getInstance().getCall(callId); + + if (cfh == null) { + return; + } + + CallForHelpManager.getInstance().pickUp(cfh, player); + + if (blockCfh) { + CallForHelpManager.getInstance().deleteCall(cfh); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/REQUEST_CFH.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/REQUEST_CFH.java new file mode 100644 index 0000000..acd5bf8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/REQUEST_CFH.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.moderation.CFH_ACK; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class REQUEST_CFH implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + // Retrieve open calls from the current user + CallForHelp call = CallForHelpManager.getInstance().getPendingCall(player.getDetails().getId()); + + // Send details + player.send(new CFH_ACK(call)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/SUBMIT_CFH.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/SUBMIT_CFH.java new file mode 100644 index 0000000..e48c8cc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/moderation/SUBMIT_CFH.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelpManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SUBMIT_CFH implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + String message = StringUtil.filterInput(reader.readString(), false); + + if (message.length() == 0) { + return; + } + + if (CallForHelpManager.getInstance().hasPendingCall(player)) { + return; + } + + CallForHelpManager.getInstance().submitCall(player, message); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/ADD_FAVORITE_ROOM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/ADD_FAVORITE_ROOM.java new file mode 100644 index 0000000..c691045 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/ADD_FAVORITE_ROOM.java @@ -0,0 +1,53 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.RoomFavouritesDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class ADD_FAVORITE_ROOM implements MessageEvent { + public static final int MAX_FAVOURITES = 30; + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomType = reader.readInt(); + int roomId = reader.readInt(); + + if (roomType == 1) { + roomId = (roomId - RoomManager.PUBLIC_ROOM_OFFSET); + } + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; // Room was null, ignore request + } + + List favouritesList = RoomManager.getInstance().getFavouriteRooms(player.getDetails().getId(), false); + + for (Room favroom : favouritesList) { + if (favroom.getId() == roomId) { + return; // Room already added, ignore request + } + } + + if (RoomManager.getInstance().getRoomById(roomId) == null) { + return; + } + + // Only count private rooms since there's a limited number of public rooms + int finalRoomId = roomId; + + var privateFavouriteRooms = RoomManager.getInstance().getFavouriteRooms(player.getDetails().getId(), false); + if (privateFavouriteRooms.size() >= MAX_FAVOURITES || privateFavouriteRooms.stream().anyMatch(r -> r.getId() == finalRoomId)) { + //player.send(new FLASH_ADD_FAVOURITE_FAILED()); + return; + } + + RoomFavouritesDao.addFavouriteRoom(player.getDetails().getId(), roomId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/DEL_FAVORITE_ROOM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/DEL_FAVORITE_ROOM.java new file mode 100644 index 0000000..9c72169 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/DEL_FAVORITE_ROOM.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.RoomFavouritesDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class DEL_FAVORITE_ROOM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomType = reader.readInt(); + int roomId = reader.readInt(); + + if (roomType == 1) { + roomId = (roomId - RoomManager.PUBLIC_ROOM_OFFSET); + } + + RoomFavouritesDao.removeFavouriteRoom(player.getDetails().getId(), roomId); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETFVRF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETFVRF.java new file mode 100644 index 0000000..8f65c87 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETFVRF.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.FAVOURITEROOMRESULTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; +import java.util.stream.Collectors; + +public class GETFVRF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + List favouriteRooms = RoomManager.getInstance().getFavouriteRooms(player.getDetails().getId(), false); + + List favouritePublicRooms = favouriteRooms.stream().filter(Room::isPublicRoom).collect(Collectors.toList()); + List favouriteFlatRooms = favouriteRooms.stream().filter(room -> !room.isPublicRoom()).collect(Collectors.toList()); + + player.send(new FAVOURITEROOMRESULTS(player, favouritePublicRooms, favouriteFlatRooms)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETSPACENODEUSERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETSPACENODEUSERS.java new file mode 100644 index 0000000..4f88180 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETSPACENODEUSERS.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.NODESPACEUSERS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.List; + +public class GETSPACENODEUSERS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = RoomManager.getInstance().getRoomById(reader.readInt() - RoomManager.PUBLIC_ROOM_OFFSET); + + if (room == null) { + return; + } + + var players = room.getEntityManager().getPlayers(); + + List childRooms; + + if (room.isPublicRoom()) { + childRooms = RoomManager.getInstance().getChildRooms(room); + } else { + childRooms = new ArrayList<>(); + } + + if (childRooms.size() > 0) { + for (Room childRoom : childRooms) { + players.addAll(childRoom.getEntityManager().getPlayers()); + } + } + + player.send(new NODESPACEUSERS(players)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETUSERFLATCATS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETUSERFLATCATS.java new file mode 100644 index 0000000..68c3e5e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/GETUSERFLATCATS.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.navigator.USERFLATCATS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +public class GETUSERFLATCATS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + List categoryList = new ArrayList<>(); + + for (NavigatorCategory category : NavigatorManager.getInstance().getCategories().values()) { + if (category.isPublicSpaces()) { + continue; + } + + if (category.getMinimumRoleAccess().getRankId() > player.getDetails().getRank().getRankId()) { + continue; + } + + if (category.isNode()) { + continue; + } + categoryList.add(category); + } + + categoryList.sort(Comparator.comparingInt(NavigatorCategory::getOrderId)); + player.send(new USERFLATCATS(categoryList)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/NAVIGATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/NAVIGATE.java new file mode 100644 index 0000000..9266055 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/NAVIGATE.java @@ -0,0 +1,97 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.NAVNODEINFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +public class NAVIGATE implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + boolean hideFull = reader.readInt() == 1; + int categoryId = reader.readInt(); + + boolean wasFollow = false; + int originalCategoryId = categoryId; + + if (categoryId >= RoomManager.PUBLIC_ROOM_OFFSET) { // Public room follow, there should not any categories with an ID of 1000 or over... lol + Room room = RoomManager.getInstance().getRoomById(categoryId - RoomManager.PUBLIC_ROOM_OFFSET); + + if (room != null) { + wasFollow = true; + categoryId = room.getCategory().getId(); + } + } + + NavigatorCategory category = NavigatorManager.getInstance().getCategoryById(categoryId); + + if (category == null) { + return; + } + + if (category.getMinimumRoleAccess().getRankId() > player.getDetails().getRank().getRankId()) { + return; + } + + List subCategories = NavigatorManager.getInstance().getCategoriesByParentId(category.getId(), player.getDetails().getRank()); + subCategories.sort(Comparator.comparingInt(NavigatorCategory::getOrderId)); + + List rooms = new ArrayList<>(); + + int categoryCurrentVisitors = category.getCurrentVisitors(); + int categoryMaxVisitors = category.getMaxVisitors(); + + if (category.isPublicSpaces()) { + for (Room room : RoomManager.getInstance().replaceQueryRooms(RoomDao.getRoomsByUserId(0))) { + if (room.getData().isNavigatorHide()) { + continue; + } + + if (room.getData().getCategoryId() != category.getId()) { + continue; + } + + if (hideFull && (room.getData().getVisitorsNow() >= room.getData().getVisitorsMax())) { + continue; + } + + rooms.add(room); + } + } else { + List roomList = RoomManager.getInstance().replaceQueryRooms(NavigatorDao.getRecentRooms(30, category.getId())); + + for (Room room : roomList) { + if (room.getData().getCategoryId() != category.getId()) { + continue; + } + + if (hideFull && (room.getData().getVisitorsNow() >= room.getData().getVisitorsMax())) { + continue; + } + + rooms.add(room); + } + } + + RoomManager.getInstance().sortRooms(rooms); + RoomManager.getInstance().ratingSantiyCheck(rooms); + + player.send(new NAVNODEINFO(player, category, rooms, hideFull, subCategories, categoryCurrentVisitors, categoryMaxVisitors, player.getDetails().getRank().getRankId())); + + if (wasFollow && player.getMessenger().getFollowed() != null) { + player.getMessenger().getFollowed().forward(player, false); + player.getMessenger().hasFollowed(null); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/RECOMMENDED_ROOMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/RECOMMENDED_ROOMS.java new file mode 100644 index 0000000..8063826 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/RECOMMENDED_ROOMS.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.RECOMMENDED_ROOM_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class RECOMMENDED_ROOMS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + List roomList = RoomManager.getInstance().replaceQueryRooms(RoomDao.getRecommendedRooms(3, 0)); + + RoomManager.getInstance().sortRooms(roomList); + RoomManager.getInstance().ratingSantiyCheck(roomList); + + /*if (roomList.size() < roomLimit) { + //int difference = roomLimit - roomList.size(); + + for (Room room : RoomManager.getInstance().replaceQueryRooms(RoomDao.getHighestRatedRooms(roomLimit, false))) { + if (roomList.size() == roomLimit) { + break; + } + + roomList.add(room); + } + }*/ + + player.send(new RECOMMENDED_ROOM_LIST(player, roomList)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SRCHF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SRCHF.java new file mode 100644 index 0000000..11084d8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SRCHF.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.NOFLATS; +import org.alexdev.havana.messages.outgoing.navigator.SEARCH_FLAT_RESULTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.SearchUtil; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public class SRCHF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String searchQuery = reader.readString(); + int roomOwner = -1; + + if (searchQuery.contains("owner:")) { + var ownerTag = SearchUtil.getOwnerTag(searchQuery); + + if (ownerTag != null) { + roomOwner = PlayerDao.getId(ownerTag.replaceFirst("owner:", "")); + } + + searchQuery = Arrays.stream(searchQuery.split(" ")).filter(s -> !s.toLowerCase().startsWith("owner:")).collect(Collectors.joining(",")); + } + + List roomList = RoomManager.getInstance().replaceQueryRooms(RoomDao.searchRooms(searchQuery, roomOwner, RoomDao.SHOCKWAVE_SEARCH_LIMIT)); + + if (roomList.size() > 0) { + RoomManager.getInstance().sortRooms(roomList); + RoomManager.getInstance().ratingSantiyCheck(roomList); + + player.send(new SEARCH_FLAT_RESULTS(roomList, player)); + } else { + player.send(new NOFLATS()); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SUSERF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SUSERF.java new file mode 100644 index 0000000..47ab4f6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/navigator/SUSERF.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.navigator; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.NOFLATSFORUSER; +import org.alexdev.havana.messages.outgoing.navigator.FLAT_RESULTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class SUSERF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + List roomList = RoomManager.getInstance().replaceQueryRooms(RoomDao.getRoomsByUserId(player.getDetails().getId())); + + if (roomList.size() > 0) { + RoomManager.getInstance().sortRooms(roomList); + RoomManager.getInstance().ratingSantiyCheck(roomList); + + player.send(new FLAT_RESULTS(roomList)); + } else { + player.send(new NOFLATSFORUSER(player.getDetails().getName())); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/APPROVE_PET_NAME.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/APPROVE_PET_NAME.java new file mode 100644 index 0000000..609cf44 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/APPROVE_PET_NAME.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.incoming.pets; + +import org.alexdev.havana.game.pets.PetManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.pets.NAMEAPPROVED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class APPROVE_PET_NAME implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String name = reader.readString(); + int approveStatus = PetManager.getInstance().isValidName(player.getDetails().getName(), name); + player.send(new NAMEAPPROVED(approveStatus)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/GETPETSTAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/GETPETSTAT.java new file mode 100644 index 0000000..96c8c90 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/pets/GETPETSTAT.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.incoming.pets; + +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.pets.PETSTAT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETPETSTAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + int petId = reader.readInt(); + String petName = reader.readString(); + + Pet pet = (Pet) room.getEntityManager().getById(petId, EntityType.PET); + + if (pet == null) { + return; + } + + player.send(new PETSTAT(pet)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/polls/POLL_START.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/polls/POLL_START.java new file mode 100644 index 0000000..f19b104 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/polls/POLL_START.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.messages.incoming.polls; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class POLL_START implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeInt(1); + response.writeString("123"); + response.writeString("456"); + + int questions = 1; + response.writeInt(questions); + + for (int i = 0; i < questions; i++) { + response.writeInt(1); // Question ID + response.writeInt(1); // Question number + + response.writeInt(1); // Question type + response.writeString("Question?"); + + response.writeInt(2); // Selection count + response.writeInt(1); // Minimum select + response.writeInt(1); // Maximum select + + response.writeString("test1"); + response.writeString("test2"); + } + } + + @Override + public short getHeader() { + return 317; // tMsgs.setaProp(317, #handle_poll_contents) + } + }); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/GETUSERCREDITLOG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/GETUSERCREDITLOG.java new file mode 100644 index 0000000..5501d7b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/GETUSERCREDITLOG.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.messages.incoming.purse; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETUSERCREDITLOG implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/REDEEM_VOUCHER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/REDEEM_VOUCHER.java new file mode 100644 index 0000000..bd41a2c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/purse/REDEEM_VOUCHER.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.incoming.purse; + +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.voucher.VoucherManager; +import org.alexdev.havana.game.catalogue.voucher.VoucherRedeemMode; +import org.alexdev.havana.game.catalogue.voucher.VoucherRedeemStatus; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.purse.VOUCHER_REDEEM_ERROR; +import org.alexdev.havana.messages.outgoing.purse.VOUCHER_REDEEM_OK; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.concurrent.atomic.AtomicInteger; + +public class REDEEM_VOUCHER implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + if (!player.isLoggedIn()) { + return; + } + + AtomicInteger redeemedCredits = new AtomicInteger(0); + var redeemedItem = new ArrayList(); + + var voucherStatus = VoucherManager.getInstance().redeem(player.getDetails(), VoucherRedeemMode.IN_GAME, reader.readString(), redeemedItem, redeemedCredits); + + if (voucherStatus == VoucherRedeemStatus.FAILURE) { + player.send(new VOUCHER_REDEEM_ERROR(VOUCHER_REDEEM_ERROR.RedeemError.INVALID)); + return; + } + + if (voucherStatus == VoucherRedeemStatus.FAILURE_NEW_ACCOUNT) { + player.send(new ALERT("Sorry, your account is too new and cannot redeem this voucher")); + return; + } + + player.send(new VOUCHER_REDEEM_OK(redeemedItem)); + + if (redeemedCredits.get() > 0) { + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + } + + if (redeemedItem.size() > 0) { + player.getInventory().reload(); + + if (player.getRoomUser().getRoom() != null) + player.getInventory().getView("new"); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/FLATPROPBYITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/FLATPROPBYITEM.java new file mode 100644 index 0000000..fca7472 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/FLATPROPBYITEM.java @@ -0,0 +1,62 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.FLATPROPERTY; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; + +public class FLATPROPBYITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + //String contents = reader.contents(); + //String property = contents.split("/")[0]; + + int itemId = reader.readInt();//Integer.parseInt(contents.split("/")[1]); + + Item item = player.getInventory().getItem(itemId); + + if (item == null) { + return; + } + + String property = item.getDefinition().getSprite(); + String value = item.getCustomData(); + + if (property.equals("wallpaper")) { + room.getData().setWallpaper(Integer.parseInt(value)); + } + + if (property.equals("floor")) { + room.getData().setFloor(Integer.parseInt(value)); + } + + if (property.equals("landscape")) { + room.getData().setLandscape(value); + } + + item.delete(); + RoomDao.saveDecorations(room); + + room.send(new FLATPROPERTY(property, value)); + + player.getInventory().getItems().remove(item); + player.getInventory().getView("new"); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETINTEREST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETINTEREST.java new file mode 100644 index 0000000..fca13aa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETINTEREST.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.ads.Advertisement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.rooms.INTERSITIALDATA; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.concurrent.ThreadLocalRandom; + +public class GETINTEREST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!GameConfiguration.getInstance().getBoolean("room.intersitial.ads")) { + player.send(new INTERSITIALDATA(null, null)); + return; + } + + if (player.getRoomUser().isTeleporting()) { + player.send(new INTERSITIALDATA(null, null)); + return; + } + + if (ThreadLocalRandom.current().nextInt(5 + 1) != 5) { + player.send(new INTERSITIALDATA(null, null)); + return; + } + + String image = null; + String url = null; + + Advertisement advertisement = AdManager.getInstance().getRandomLoadingAd(); + + if (advertisement != null) { + /*image = GameConfiguration.getInstance().getString("advertisement.api"); + image = image.replace("{roomId}", String.valueOf(room.getId())); + image = image.replace("{pictureName}", advertisement.getImage());*/ + + if (advertisement.getImage() != null) { + image = GameConfiguration.getInstance().getString("site.path").replace("https", "http") + "/api/advertisement/get_img?ad=" + advertisement.getId(); + } + + if (advertisement.getUrl() != null) { + url = GameConfiguration.getInstance().getString("site.path").replace("https", "http") + "/api/advertisement/get_url?ad=" + advertisement.getId(); + } + } + + player.send(new INTERSITIALDATA(image, url)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETROOMAD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETROOMAD.java new file mode 100644 index 0000000..a22701d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GETROOMAD.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.ads.Advertisement; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.ROOMAD; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; + +public class GETROOMAD implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + String image = null; + String url = null; + + if (room.isPublicRoom()) { + Advertisement advertisement = AdManager.getInstance().getRandomAd(room.getId()); + + if (advertisement != null) { + /*image = GameConfiguration.getInstance().getString("advertisement.api"); + image = image.replace("{roomId}", String.valueOf(room.getId())); + image = image.replace("{pictureName}", advertisement.getImage());*/ + + if (advertisement.getImage() != null) { + image = GameConfiguration.getInstance().getString("site.path").replace("https", "http") + "/api/advertisement/get_img?ad=" + advertisement.getId(); + } + + if (advertisement.getUrl() != null) { + url = GameConfiguration.getInstance().getString("site.path").replace("https", "http") + "/api/advertisement/get_url?ad=" + advertisement.getId(); + } + } + } + + if (!GameConfiguration.getInstance().getBoolean("room.ads")) { + image = null; + url = null; + } + + player.send(new ROOMAD(image, url)); + + + /*player.send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeString("http://localhost/api/get_ad?roomId=123&picture=ad_lido_L.gif"); + response.writeString("http://localhost/"); + } + + @Override + public short getHeader() { + return 208; + } + });*/ + + /* response.writeString("http://localhost/c_images/billboards/getad.php?picture=ad_lido_L.gif"); + response.writeString("http://localhost/");*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GET_FLOORMAP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GET_FLOORMAP.java new file mode 100644 index 0000000..7cdbde5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GET_FLOORMAP.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.rooms.FLOOR_MAP; +import org.alexdev.havana.messages.outgoing.rooms.HEIGHTMAP; +import org.alexdev.havana.messages.outgoing.rooms.HEIGHTMAP_UPDATE; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_OBJECTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class GET_FLOORMAP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + player.send(new FLOOR_MAP(player.getRoomUser().getRoom().getModel())); + + if (!player.getRoomUser().getRoom().isPublicRoom()) { + player.send(new HEIGHTMAP_UPDATE(player.getRoomUser().getRoom(), player.getRoomUser().getRoom().getModel())); + } + + player.send(new USER_OBJECTS(List.of())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GOTOFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GOTOFLAT.java new file mode 100644 index 0000000..0b04ae6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/GOTOFLAT.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GOTOFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + + if (player.getRoomUser().getAuthenticateId() != roomId) { + return; + } + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + room.getEntityManager().enterRoom(player, null); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_HMAP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_HMAP.java new file mode 100644 index 0000000..8b84e69 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_HMAP.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.games.FULLGAMESTATUS; +import org.alexdev.havana.messages.outgoing.rooms.FLOOR_MAP; +import org.alexdev.havana.messages.outgoing.rooms.HEIGHTMAP; +import org.alexdev.havana.messages.outgoing.rooms.HEIGHTMAP_UPDATE; +import org.alexdev.havana.messages.outgoing.rooms.OBJECTS_WORLD; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_OBJECTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class G_HMAP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (gamePlayer != null && gamePlayer.getGame() instanceof SnowStormGame) { + SnowStormGame game = (SnowStormGame) gamePlayer.getGame(); + player.send(new HEIGHTMAP(game.getMap().getHeightMap())); + } else { + player.send(new HEIGHTMAP(player.getRoomUser().getRoom().getModel())); + } + + if (gamePlayer != null) { + player.send(new FULLGAMESTATUS(gamePlayer.getGame())); + + if (gamePlayer.getGame() instanceof SnowStormGame) { + SnowStormGame game = (SnowStormGame) gamePlayer.getGame(); + player.send(new OBJECTS_WORLD(game.getMap().getCompiledItems())); + } + + return; + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_ITEMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_ITEMS.java new file mode 100644 index 0000000..a7f9886 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_ITEMS.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.ITEMS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class G_ITEMS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + player.send(new ITEMS(room)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_OBJS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_OBJS.java new file mode 100644 index 0000000..642542c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_OBJS.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class G_OBJS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + player.sendObject("DuHH" + (char)1); + player.sendObject("DiHH" + (char)1); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_STAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_STAT.java new file mode 100644 index 0000000..e327e74 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_STAT.java @@ -0,0 +1,164 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.effects.USER_AVATAR_EFFECT; +import org.alexdev.havana.messages.outgoing.games.GAMESTART; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_BADGES; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_MEMBERSHIP_UPDATE; +import org.alexdev.havana.messages.outgoing.rooms.items.DICE_VALUE; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; +import org.alexdev.havana.messages.outgoing.rooms.items.STUFFDATAUPDATE; +import org.alexdev.havana.messages.outgoing.rooms.user.*; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class G_STAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (player.getRoomUser().getGamePlayer() != null && player.getRoomUser().getGamePlayer().isSpectator()) { + player.send(new YOUARESPECTATOR()); + + Game game = player.getRoomUser().getGamePlayer().getGame(); + + if (game.isGameStarted()) { + player.send(new GAMESTART(game.getTotalSecondsLeft().get())); + } + return; + } + + if (player.getRoomUser().getGamePlayer() != null && player.getRoomUser().getGamePlayer().isInGame()) { + return; // Not needed for game arenas + } + + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + room.getEntityManager().tryRoomEntry(player); + + /*if (!(room.getEntityManager().getPlayers().size() > 1)) { + room.getEntityManager().tryInitialiseRoom(); + + boolean isCancelled = PluginManager.getInstance().callEvent(PluginEvent.ROOM_FIRST_ENTRY_EVENT, new LuaValue[]{ + CoerceJavaToLua.coerce(player), + CoerceJavaToLua.coerce(room) + }); + + if (isCancelled) { + room.getEntityManager().leaveRoom(player, true); + } + }*/ + + player.send(new USER_OBJECTS(room.getEntities())); + room.send(new USER_OBJECTS(player), List.of(player)); + player.send(new USER_STATUSES(room.getEntities())); + + if (player.getRoomUser().isUsingEffect()) { + room.send(new USER_AVATAR_EFFECT(player.getRoomUser().getInstanceId(), player.getRoomUser().getEffectId())); + } + + for (Entity roomEntity : room.getEntities()) { + if (roomEntity.getDetails().getFavouriteGroupId() > 0 && roomEntity.getDetails().getId() != player.getDetails().getId()) { + var groupMember = roomEntity.getDetails().getGroupMember(); + player.send(new GROUP_MEMBERSHIP_UPDATE(roomEntity.getRoomUser().getInstanceId(), groupMember.getGroupId(), groupMember.getMemberRank().getClientRank())); + } + + if (roomEntity.getRoomUser().isUsingEffect()) { + player.send(new USER_AVATAR_EFFECT(roomEntity.getRoomUser().getInstanceId(), roomEntity.getRoomUser().getEffectId())); + } + + if (roomEntity.getRoomUser().isDancing()) { + player.send(new USER_DANCE(roomEntity.getRoomUser().getInstanceId(), roomEntity.getRoomUser().getDanceId())); + } + + if (roomEntity.getRoomUser().isSleeping()) { + player.send(new USER_SLEEP(roomEntity.getRoomUser().getInstanceId(), roomEntity.getRoomUser().isSleeping())); + } + } + + for (Item item : room.getItems()) { + if (item.getCurrentProgramValue().length() > 0) { + player.send(new SHOWPROGRAM(new String[] { item.getCurrentProgram(), item.getCurrentProgramValue() })); + } + + if (item.hasBehaviour(ItemBehaviour.INVISIBLE)) { + continue; + } + + // If item is requiring an update, apply animations etc + if (item.getRequiresUpdate()) { + // For some reason the wheel of fortune doesn't spin when the custom data on initial road equals -1, thus we send it again + if (item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE)) { + player.send(new STUFFDATAUPDATE(item)); + } + + // Dices use a separate packet for rolling animation + if (item.hasBehaviour(ItemBehaviour.DICE)) { + player.send(new DICE_VALUE(item.getVirtualId(), true, 0)); + } + } + } + + if (player.getDetails().getFavouriteGroupId() > 0) { + var groupMember = player.getDetails().getGroupMember(); + + room.send(new GROUP_BADGES(new HashMap<>() {{ + put(groupMember.getGroupId(), player.getJoinedGroup(player.getDetails().getFavouriteGroupId()).getBadge()); + }})); + + room.send(new GROUP_MEMBERSHIP_UPDATE(player.getRoomUser().getInstanceId(), groupMember.getGroupId(), groupMember.getMemberRank().getClientRank())); + } + + if (RoomManager.getInstance().getRoomEntryBadges().containsKey(room.getId())) { + for (String badge : RoomManager.getInstance().getRoomEntryBadges().get(room.getId())) { + player.getBadgeManager().tryAddBadge(badge, null); + } + } + + List tempItems = new ArrayList(player.getInventory().getItems()); + boolean updateInventory = false; + + for (Item item : tempItems) { + for (Item roomItem : room.getItems()) { + if (roomItem.getDatabaseId() == item.getDatabaseId()) { + player.getInventory().getItems().removeIf(y -> y.getDatabaseId() == item.getDatabaseId()); + updateInventory = true; + } + } + } + + + if (updateInventory) { + player.getInventory().getView("new"); + } + + /*player.send(new MessageComposer() { + @Override + public void compose(NettyResponse response) { + response.writeInt(1); + response.writeString("We're currently collecting data through an online poll on how you found the server. Would you help answer our poll?"); + } + + @Override + public short getHeader() { + return 316; // #handle_poll_offer + } + });*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_USRS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_USRS.java new file mode 100644 index 0000000..0faf617 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/G_USRS.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.ACTIVE_OBJECTS; +import org.alexdev.havana.messages.outgoing.rooms.OBJECTS_WORLD; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class G_USRS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + player.send(new OBJECTS_WORLD(room.getItemManager().getPublicItems())); + + if (room.getModel().getName().equals("park_a")) { + player.sendObject("@`SGSBMRDPBPA0.0\u0002I2\u0002Mqueue_tile2\u0002JMPGRAH0.0\u0002I2\u0002Mqueue_tile2\u0002SAMPFSAJ0.0\u0002I2\u0002Mqueue_tile2\u0002QBMRFSAPA0.0\u0002I2\u0002Mqueue_tile2\u0002SFMSERBJ0.0\u0002I2\u0002Mqueue_tile2\u0002SCMRFPBPA0.0\u0002I2\u0002Mqueue_tile2\u0002REMPGQBH0.0\u0002I2\u0002Mqueue_tile2\u0002PGMPFRBH0.0\u0002I2\u0002Mqueue_tile2\u0002PCMPEPBH0.0\u0002I2\u0002Mqueue_tile2\u0002QGMRFRBJ0.0\u0002I2\u0002Mqueue_tile2\u0002QDMRDQBPA0.0\u0002I2\u0002Mqueue_tile2\u0002RFMRERBJ0.0\u0002I2\u0002Mqueue_tile2\u0002PFMSDRBJ0.0\u0002I2\u0002Mqueue_tile2\u0002PDMPGPBH0.0\u0002I2\u0002Mqueue_tile2\u0002RGMSFRBJ0.0\u0002I2\u0002Mqueue_tile2\u0002RAMRESAPA0.0\u0002I2\u0002Mqueue_tile2\u0002RBMPGSAH0.0\u0002I2\u0002Mqueue_tile2\u0002SDMREQBPA0.0\u0002I2\u0002Mqueue_tile2\u0002QEMRFQBPA0.0\u0002I2\u0002Mqueue_tile2\u0002RCMPFPBH0.0\u0002I2\u0002Mqueue_tile2\u0002KMRDSAPA0.0\u0002I2\u0002Mqueue_tile2\u0002PAMPESAJ0.0\u0002I2\u0002Mqueue_tile2\u0002PBMQFSAJ0.0\u0002I2\u0002Mqueue_tile2\u0002IMPGQAH0.0\u0002I2\u0002Mqueue_tile2\u0002SEMRDRBJ0.0\u0002I2\u0002Mqueue_tile2\u0002QCMREPBPA0.0\u0002I2\u0002Mqueue_tile2\u0002SGMPGRBH0.0\u0002I2\u0002Mqueue_tile2\u0002QAMQESAJ0.0\u0002I2\u0002Mqueue_tile2\u0002QFMPERBH0.0\u0002I2\u0002Mqueue_tile2\u0002RDMPEQBH0.0\u0002I2\u0002Mqueue_tile2\u0002PEMPFQBH0.0\u0002I2\u0002Mqueue_tile2\u0002" + (char)1); + } else { + player.send(new ACTIVE_OBJECTS(room)); + } + + player.getMessenger().sendStatusUpdate(); + + /*Bot bot = new Bot(); + bot.getDetails().fill(0, "Test", player.getDetails().getFigure(), "Hello loser!", "M"); + room.getEntityManager().enterRoom(bot, null); + + for (Bot n : room.getEntityManager().getEntitiesByClass(Bot.class)) { + n.getRoomUser().talk("Hello, nerd!", CHAT_MESSAGE.ChatMessageType.WHISPER, List.of(player)); + }*/ + + + /* if (!(room.getEntityManager().getPlayers().size() > 1)) { + room.getEntityManager().tryInitialiseRoom(); + + boolean isCancelled = PluginManager.getInstance().callEvent(PluginEvent.ROOM_FIRST_ENTRY_EVENT, new LuaValue[]{ + CoerceJavaToLua.coerce(player), + CoerceJavaToLua.coerce(room) + }); + + if (isCancelled) { + room.getEntityManager().leaveRoom(player, true); + } + } + + player.send(new USER_OBJECTS(room.getEntities())); + room.send(new USER_OBJECTS(player), List.of(player));*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/ROOM_DIRECTORY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/ROOM_DIRECTORY.java new file mode 100644 index 0000000..484e452 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/ROOM_DIRECTORY.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.navigator.CANTCONNECT; +import org.alexdev.havana.messages.outgoing.navigator.CANTCONNECT.QueueError; +import org.alexdev.havana.messages.outgoing.rooms.OPEN_CONNECTION; +import org.alexdev.havana.messages.outgoing.rooms.ROOM_URL; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class ROOM_DIRECTORY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + reader.readInt(); + int roomId = reader.readInt(); + + GamePlayer gamePlayer = player.getRoomUser().getGamePlayer(); + + if (roomId == -1 && gamePlayer != null && gamePlayer.isEnteringGame()) { + Room room = gamePlayer.getGame().getRoom(); + room.getEntityManager().enterRoom(player, gamePlayer.getSpawnPosition()); + return; + } + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (room.isClubOnly() && !player.getDetails().hasClubSubscription()) { + if (player.getRoomUser().getRoom() != null) + player.getRoomUser().getRoom().getEntityManager().leaveRoom(player, false); + + player.send(new CANTCONNECT(QueueError.CLUB_ONLY)); + return; + } + + /*if (room.isClubOnly()) { + player.send(new ROOMQUEUEDATA(3)); + + GameScheduler.getInstance().getService().schedule(()->{ + player.send(new ROOMQUEUEDATA(2)); + }, 3, TimeUnit.SECONDS); + return; + }*/ + + if (room.isPublicRoom()) { + if (room.getData().getTotalVisitorsNow() >= room.getData().getTotalVisitorsMax() && !player.hasFuse(Fuseright.ENTER_FULL_ROOMS)) { + player.send(new CANTCONNECT(CANTCONNECT.ConnectError.ROOM_FULL)); + return; + } + } + + player.send(new OPEN_CONNECTION()); + player.send(new ROOM_URL()); + + if (room.isPublicRoom()) { + room.getEntityManager().enterRoom(player, null); + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/TRYFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/TRYFLAT.java new file mode 100644 index 0000000..873bbb8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/TRYFLAT.java @@ -0,0 +1,98 @@ +package org.alexdev.havana.messages.incoming.rooms; + +import org.alexdev.havana.dao.mysql.RoomBanDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.alerts.LOCALISED_ERROR; +import org.alexdev.havana.messages.outgoing.navigator.CANTCONNECT; +import org.alexdev.havana.messages.outgoing.rooms.DOORBELL_WAIT; +import org.alexdev.havana.messages.outgoing.rooms.FLATNOTALLOWEDTOENTER; +import org.alexdev.havana.messages.outgoing.rooms.FLAT_LETIN; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRYFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.remainingBytes().length > 0 ? reader.readInt() : player.getRoomUser().getRoom().getId(); + String password = ""; + + if (reader.remainingBytes().length > 0) { + password = reader.readString(); + } + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + room = RoomDao.getRoomById(roomId); + } + + if (room == null) { + return; + + } + + /* + if (room == null) { + if (player.getDetails().getTemporaryRoom() != null) { + room = player.getDetails().getTemporaryRoom(); + } else { + return; + } + } + + */ + + if (room.getData().getTotalVisitorsNow() >= room.getData().getTotalVisitorsMax() && !player.hasFuse(Fuseright.ENTER_FULL_ROOMS)) { + player.send(new CANTCONNECT(CANTCONNECT.ConnectError.ROOM_FULL)); + return; + } + + if (!player.hasFuse(Fuseright.ENTER_LOCKED_ROOMS)) { + if (RoomBanDao.hasBan(player.getDetails().getId(), roomId)) { + player.send(new CANTCONNECT(CANTCONNECT.ConnectError.BANNED)); + return; + } + + if (player.getRoomUser().getAuthenticateId() != roomId){ + if (room.getData().getAccessTypeId() == 1 && !room.hasRights(player.getDetails().getId(), false) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (rangDoorbell(room, player)) { + player.send(new DOORBELL_WAIT()); + } else { + player.send(new FLATNOTALLOWEDTOENTER()); + } + + return; + } + + if (room.getData().getAccessTypeId() == 2 && !room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (!password.equals(room.getData().getPassword())) { + player.send(new LOCALISED_ERROR(-100002)); + return; + } + } + } + } + + player.getRoomUser().setAuthenticateId(roomId); + player.send(new FLAT_LETIN()); + } + + private boolean rangDoorbell(Room room, Player player) { + boolean sentWithRights = false; + + for (Player user : room.getEntityManager().getPlayers()) { + if (!room.hasRights(user.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + continue; + } + + user.send(new DOORBELL_WAIT(player.getDetails().getName())); + sentWithRights = true; + } + + return sentWithRights; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_CHANGE_STATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_CHANGE_STATE.java new file mode 100644 index 0000000..f3ebf9f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_CHANGE_STATE.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.messages.incoming.rooms.dimmer; + +import org.alexdev.havana.dao.mysql.MoodlightDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; + +public class MSG_ROOMDIMMER_CHANGE_STATE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + Item item = room.getItemManager().getMoodlight(); + + if (item == null) { + return; + } + + if (!item.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + return; + } + + if (room.isOwner(player.getDetails().getId()) || player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (!MoodlightDao.containsPreset(item.getDatabaseId())) { + MoodlightDao.createPresets(item.getDatabaseId()); + } + } + + // Cancel RainbowTask because the operator decided to use their own moodlight settings. + if (room.getTaskManager().hasTask("RainbowTask")) { + room.getTaskManager().cancelTask("RainbowTask"); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Rainbow room dimmer cycle has stopped", 0)); + } + + Pair> presetData = MoodlightDao.getPresets(item.getDatabaseId()); + + if (presetData == null) { + return; + } + + int currentPreset = presetData.getLeft(); + ArrayList presets = presetData.getRight(); + + boolean isEnabled = !(item.getCustomData().charAt(0) == '2'); + + item.setCustomData((isEnabled ? "2" : "1") + "," + currentPreset + "," + presets.get(currentPreset - 1)); + item.updateStatus(); + item.save(); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_GET_PRESETS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_GET_PRESETS.java new file mode 100644 index 0000000..459ce02 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_GET_PRESETS.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.rooms.dimmer; + +import org.alexdev.havana.dao.mysql.MoodlightDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.dimmer.MOODLIGHT_PRESETS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; + +public class MSG_ROOMDIMMER_GET_PRESETS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + Item item = room.getItemManager().getMoodlight(); + + if (item == null) { + return; + } + + if (room.isOwner(player.getDetails().getId()) || player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (!MoodlightDao.containsPreset(item.getDatabaseId())) { + MoodlightDao.createPresets(item.getDatabaseId()); + } + } + + Pair> presetData = MoodlightDao.getPresets(item.getDatabaseId()); + + if (presetData == null) { + return; + } + + int currentPreset = presetData.getLeft(); + ArrayList presets = presetData.getRight(); + + player.send(new MOODLIGHT_PRESETS(currentPreset, presets)); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_SET_PRESET.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_SET_PRESET.java new file mode 100644 index 0000000..e077bae --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/dimmer/MSG_ROOMDIMMER_SET_PRESET.java @@ -0,0 +1,86 @@ +package org.alexdev.havana.messages.incoming.rooms.dimmer; + +import org.alexdev.havana.dao.mysql.MoodlightDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.List; + +public class MSG_ROOMDIMMER_SET_PRESET implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + Item item = room.getItemManager().getMoodlight(); + + if (item == null) { + return; + } + + if (!item.hasBehaviour(ItemBehaviour.ROOMDIMMER)) { + return; + } + + if (room.isOwner(player.getDetails().getId()) || player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (!MoodlightDao.containsPreset(item.getDatabaseId())) { + MoodlightDao.createPresets(item.getDatabaseId()); + } + } + + int presetId = reader.readInt(); + int backgroundState = reader.readInt(); + String presetColour = reader.readString(); + int presetStrength = reader.readInt(); + + //if (!GameConfiguration.getInstance().getBoolean("roomdimmer.scripting.allowed")) { + // Only check if roomdimmer scripting is allowed + if (!(presetColour.equals("#74F5F5") || + presetColour.equals("#0053F7") || + presetColour.equals("#E759DE") || + presetColour.equals("#EA4532") || + presetColour.equals("#F2F851") || + presetColour.equals("#82F349") || + presetColour.equals("#000000"))) { + return; // Nope, no scripting room dimmers allowed here! + } + + // Cancel RainbowTask because the operator decided to use their own moodlight settings. + if (room.getTaskManager().hasTask("RainbowTask")) { + room.getTaskManager().cancelTask("RainbowTask"); + player.send(new CHAT_MESSAGE(ChatMessageType.WHISPER, player.getRoomUser().getInstanceId(), "Rainbow room dimmer cycle has stopped", 0)); + } + + Pair> presetData = MoodlightDao.getPresets(item.getDatabaseId()); + + if (presetData == null) { + return; + } + + List presets = presetData.getRight(); + + presets.set(presetId - 1, backgroundState + "," + presetColour + "," + presetStrength); + + item.setCustomData("2," + presetId + "," + backgroundState + "," + presetColour + "," + presetStrength); + item.updateStatus(); + item.save(); + + MoodlightDao.updatePresets(item.getDatabaseId(), presetId, presets); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/OPEN_PERFORMER_GUI.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/OPEN_PERFORMER_GUI.java new file mode 100644 index 0000000..1a3e4a5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/OPEN_PERFORMER_GUI.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.incoming.rooms.idol; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Map; + +public class OPEN_PERFORMER_GUI extends MessageComposer { + private final Map userDisks; + + public OPEN_PERFORMER_GUI(Map userDisks) { + this.userDisks = userDisks; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userDisks.size()); + + for (var kvp : this.userDisks.entrySet()) { + response.writeInt(kvp.getKey().getVirtualId()); + response.writeString(kvp.getValue()); + + } + } + + @Override + public short getHeader() { + return 491; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/START_PERFORMANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/START_PERFORMANCE.java new file mode 100644 index 0000000..28d8482 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/START_PERFORMANCE.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.messages.incoming.rooms.idol; + +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class START_PERFORMANCE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + + } + + if (player.getRoomUser().getRoom().getIdolManager().getPerformer() != player) { + return; + } + + int itemId = reader.readInt(); + Item songDisk = null; + + for (Item item : player.getInventory().getItems()) { + if (item.getVirtualId() == itemId) { + songDisk = item; + break; + } + } + + Song song = null; + + if (songDisk != null) { + int songId = JukeboxDao.getSongIdByItem(songDisk.getDatabaseId()); + song = SongMachineDao.getSong(songId); + } + + player.getRoomUser().getRoom().getIdolManager().startPerformance(song); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/VOTE_PERFORMANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/VOTE_PERFORMANCE.java new file mode 100644 index 0000000..51a49ee --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/idol/VOTE_PERFORMANCE.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.rooms.idol; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.stream.Collectors; + +public class VOTE_PERFORMANCE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) + return; + + Item chair = player.getRoomUser().getCurrentItem(); + + if (chair == null) { + return; + } + + if (chair.getDefinition().getInteractionType() != InteractionType.IDOL_VOTE_CHAIR) { + return; + } + + Item scoreboard = player.getRoomUser().getRoom().getItemManager().getIdolScoreboard(); + + if (scoreboard == null) { + return; + } + + player.getRoomUser().getRoom().getIdolManager().vote(reader.readBoolean(), player); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ADDSTRIPITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ADDSTRIPITEM.java new file mode 100644 index 0000000..a1cec73 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ADDSTRIPITEM.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class ADDSTRIPITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + //String content = reader.contents(); + //String[] data = content.split(" "); + + reader.readInt(); + + int itemId = reader.readInt();//Integer.parseInt(data[2]); + + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.POST_IT)) { + return; // The client does not allow picking up post-it's, thus neither will the server + } + + if (item.getOwnerId() != player.getDetails().getId()) { + item.setOwnerId(player.getDetails().getId()); + ItemDao.updateItemOwnership(item); + } + + room.getMapping().removeItem(player, item); + + player.getInventory().addItem(item); + player.getInventory().getView("update"); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/CONVERT_FURNI_TO_CREDITS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/CONVERT_FURNI_TO_CREDITS.java new file mode 100644 index 0000000..9e0495e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/CONVERT_FURNI_TO_CREDITS.java @@ -0,0 +1,77 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CONVERT_FURNI_TO_CREDITS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + int itemId = reader.readInt(); + + if (itemId < 0) { + return; + } + + Item item = room.getItemManager().getById(itemId); + + if (item == null || !item.hasBehaviour(ItemBehaviour.REDEEMABLE) || item.isDeleted()) { + return; + } + + // Sprite is of format CF_50_goldbar. This retrieves the 50 part + Integer amount = Integer.parseInt(item.getDefinition().getSprite().split("_")[1]); + + // Delete item and update credits amount in one atomic operation + player.getInventory().getItems().forEach(x -> { + if (x.getDatabaseId() == item.getDatabaseId()) { + x.setDeleted(true); + } + }); + + room.getItems().forEach(x -> { + if (x.getDatabaseId() == item.getDatabaseId()) { + x.setDeleted(true); + } + }); + + int currentAmount = ItemDao.redeemCreditItem(amount, item.getDatabaseId(), player.getDetails().getId()); + + // Couldn't redeem item (database error) + if (currentAmount == -1) { + // TODO: find real composer for this. Maybe use error composer? + player.send(new ALERT("Unable to redeem furniture! Contact staff or support team.")); + return; + } + + TransactionDao.createTransaction(player.getDetails().getId(), + String.valueOf(item.getDatabaseId()), "", 1, + "Exchanged " + item.getDefinition().getName() + " into " + amount + " credits", + amount, 0, false); + + // Notify room of item removal and set credits of player + room.getMapping().removeItem(player, item); + player.getDetails().setCredits(currentAmount); + + // Send new credit amount + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/DICE_OFF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/DICE_OFF.java new file mode 100644 index 0000000..eb13a67 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/DICE_OFF.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.DICE_VALUE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + + +public class DICE_OFF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null || !item.hasBehaviour(ItemBehaviour.DICE)) { + return; + } + + if (!player.getRoomUser().getPosition().touches(item.getPosition())) { + return; + } + + // Return if dice is already being rolled + if (item.getRequiresUpdate()) { + return; + } + + item.setCustomData("0"); + item.updateStatus(); + item.save(); + + room.send(new DICE_VALUE(itemId, false, 0)); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ENTER_ONEWAY_DOOR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ENTER_ONEWAY_DOOR.java new file mode 100644 index 0000000..7c2a48b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/ENTER_ONEWAY_DOOR.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.outgoing.rooms.items.CHANGESTATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.concurrent.TimeUnit; + +public class ENTER_ONEWAY_DOOR implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null || !item.hasBehaviour(ItemBehaviour.ONE_WAY_GATE)) { + return; + } + + if (!item.getPosition().getSquareInFront().equals(player.getRoomUser().getPosition())) { + return; + } + + Position destination = item.getPosition().getSquareBehind(); + + if (!RoomTile.isValidTile(room, player, destination)) { + return; + } + + room.send(new CHANGESTATUS(itemId, 1)); + item.setCustomData("1"); + + player.getRoomUser().walkTo(destination.getX(), destination.getY()); + + if (!player.getRoomUser().isWalking()) { + return; + } + + player.getRoomUser().setEnableWalkingOnStop(true); + + GameScheduler.getInstance().getService().schedule(()->{ + room.send(new CHANGESTATUS(itemId, 0)); + item.setCustomData("0"); + }, 1, TimeUnit.SECONDS); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/G_IDATA.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/G_IDATA.java new file mode 100644 index 0000000..8d8968e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/G_IDATA.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.IDATA; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class G_IDATA implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.POST_IT)) { + String colour = item.getCustomData().substring(0, 6); + String text = ""; + + if (item.getCustomData().length() > 6) { + text = item.getCustomData().substring(6); + } + + player.send(new IDATA(item, colour, text)); + } else { + player.send(new IDATA(item)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/MOVESTUFF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/MOVESTUFF.java new file mode 100644 index 0000000..6f6d3d8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/MOVESTUFF.java @@ -0,0 +1,81 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.MOVE_FLOORITEM; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MOVESTUFF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + //String content = reader.contents(); + //String[] data = content.split(" "); + + int itemId = reader.readInt();//Integer.parseInt(data[0]); + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + return; + } + + if (item.getRequiresUpdate()) { + return; + } + + int x = reader.readInt();//(int) Double.parseDouble(data[1]); + int y = reader.readInt();//(int) Double.parseDouble(data[2]); + int rotation = reader.readInt();//(int) Double.parseDouble(data[3]); + + Position oldPosition = item.getPosition().copy(); + + boolean isRotation = false; + + if (item.getPosition().equals(new Position(x, y)) && item.getPosition().getRotation() != rotation) { + isRotation = true; + } + + if (isRotation) { + if (item.getRollingData() != null) { + return; // Don't allow rotating when rolling. + } + } + + if ((oldPosition.getX() == x && + oldPosition.getY() == y && + oldPosition.getRotation() == rotation) || !item.isValidMove(item, room, x, y, rotation)) { + // Send item update even though we cancelled, otherwise the client will be confused. + player.send(new MOVE_FLOORITEM(item)); + return; + } + + + // Validate placed item rotation + if (!item.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + if (!item.getDefinition().getAllowedRotations().contains(rotation)) { + return; + } + } + + room.getMapping().moveItem(player, item, new Position(x, y, item.getPosition().getZ(), rotation, rotation), oldPosition); + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java new file mode 100644 index 0000000..7d8a9d3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PLACESTUFF.java @@ -0,0 +1,176 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.apache.commons.lang3.StringUtils; + +import java.sql.SQLException; + +public class PLACESTUFF implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + String content = reader.readString(); + String[] data = content.split(" "); + + if (data.length == 0) { + return; + } + + // Make sure provided data is numeric + if (!StringUtils.isNumeric(data[0])) { + return; + } + + int itemId = Integer.parseInt(data[0]); + Item item = player.getInventory().getItem(itemId); + + if (item == null || !item.isVisible()) { + return; + } + + // Prevent users from placing non-tradable objects in users' rooms + if (!player.hasFuse(Fuseright.MUTE) && room.getData().getOwnerId() != player.getDetails().getId()) { + if (!item.getDefinition().isTradable()) { + return; + } + } + + if (!player.hasFuse(Fuseright.MUTE) && room.getData().getOwnerId() != player.getDetails().getId()) { + if (player.getDetails().isTradeBanned()) { + player.send(new ALERT(RoomTradeManager.showTradeBanAlert(player))); + return; + } + } + + // Giving credits to self on same IP is suspicious behaviour + //if (item.hasBehaviour(ItemBehaviour.REDEEMABLE) || ItemManager.getInstance().hasPresentBehaviour(item, ItemBehaviour.REDEEMABLE)) { + if (!player.hasFuse(Fuseright.MUTE) + && room.getData().getOwnerId() != player.getDetails().getId()) { + RoomTradeManager.addTradeBan(player); + return; + } + //} + + var ownerData = PlayerManager.getInstance().getPlayerData(room.getData().getOwnerId()); + + if (ownerData != null && ownerData.isTradeBanned()) { + if (room.getData().getOwnerId() != player.getDetails().getId()) { + player.send(new ALERT("The room owner is trade banned.")); + return; + } + } + + if (room.getData().getOwnerId() != player.getDetails().getId()) { + TransactionDao.createTransaction(player.getDetails().getId(), + String.valueOf(item.getDatabaseId()), String.valueOf(item.getDefinition().getId()), 1, + "Placed item " + item.getDefinition().getName() + " into " + room.getData().getOwnerName() + "'s room: " + room.getData().getId(), + room.getId(), room.getData().getOwnerId(), false); + } + + if (item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + String wallPosition = content.substring(data[0].length() + 1); + + // if (!ValidationUtil.validateWallPosition(wallPosition)) { + // player.send(new CANNOT_PLACE_STUFF_FROM_STRIP(11)); + // return; + // } + + if (item.hasBehaviour(ItemBehaviour.POST_IT)) { + String defaultColour = "FFFF33"; + + Item sticky = new Item(); + sticky.setOwnerId(room.getData().getOwnerId()); + sticky.setDefinitionId(item.getDefinition().getId()); + sticky.setCustomData(defaultColour); + sticky.setWallPosition(wallPosition); + sticky.setRoomId(room.getId()); + + ItemDao.newItem(sticky); + room.getMapping().addItem(player, sticky); + + // Set custom data as 1 for 1 post-it, if for some reason they have no number for the post-it. + if (!StringUtils.isNumeric(item.getCustomData())) { + item.setCustomData("1"); + } + + if (StringUtils.isNumeric(item.getCustomData())) { + int totalStickies = Integer.parseInt(item.getCustomData()) - 1; + + if (totalStickies <= 0) { + player.getInventory().getItems().remove(item); + item.delete(); + } else { + item.setCustomData(String.valueOf(totalStickies)); + item.save(); + } + } + return; + } + + item.setWallPosition(wallPosition); + } else { + int x = Integer.parseInt(data[1]); + int y = Integer.parseInt(data[2]); + int rotation = Integer.parseInt(data[3]); + + if (item.hasBehaviour(ItemBehaviour.REDIRECT_ROTATION_0)) { + rotation = 0; + } + + if (item.hasBehaviour(ItemBehaviour.REDIRECT_ROTATION_2)) { + rotation = 2; + } + + if (item.hasBehaviour(ItemBehaviour.REDIRECT_ROTATION_4)) { + rotation = 4; + } + + // Validate placed item rotation + if (!item.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + if (!item.getDefinition().getAllowedRotations().contains(rotation)) { + rotation = item.getDefinition().getAllowedRotations().get(0); + } + } + + if (!item.isValidMove(item, room, x, y, rotation)) { + return; + } + + if (room.getMapping().getTile(x, y) != null) { + item.getPosition().setX(x); + item.getPosition().setY(y); + item.getPosition().setRotation(rotation); + } + } + + if (room.getItemManager().hasTooMany(player, item)) + return; + + room.getMapping().addItem(player, item); + + player.getInventory().getItems().remove(item); + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PRESENTOPEN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PRESENTOPEN.java new file mode 100644 index 0000000..dd5f5b2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/PRESENTOPEN.java @@ -0,0 +1,194 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.ecotron.EcotronItem; +import org.alexdev.havana.game.ecotron.EcotronManager; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.catalogue.DELIVER_PRESENT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.regex.Pattern; + +public class PRESENTOPEN implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + int itemId = reader.readInt();//Integer.parseInt(reader.contents()); + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.ECO_BOX) && item.getCustomData().startsWith("FLAG:")) { + String[] possibleFurni = null; + + switch (item.getCustomData().replace("FLAG:", "")) { + case "RAINBOW_FURNI": + { + possibleFurni = new String[] { + "table_plasto_sq_lm1", + "table_plasto_round_lm1", + "table_plasto_bigsq_lm1", + "table_plasto_4leg_lm1", + "chair_plasty_lm1", + "chair_plasto_lm1", + + }; + + break; + } + } + + if (possibleFurni == null) + return; + + String saleCode = possibleFurni[ThreadLocalRandom.current().nextInt(possibleFurni.length)]; + CatalogueItem catalogueItem = CatalogueManager.getInstance().getCatalogueItem(saleCode); + + if (catalogueItem != null) { + room.getMapping().removeItem(player, item); + + item.setDefinitionId(catalogueItem.getDefinition().getId()); + ItemDao.updateItem(item); + + player.send(new DELIVER_PRESENT(item)); + + player.getInventory().addItem(item); + player.getInventory().getView("new"); + + return; + } + } + + if (item.hasBehaviour(ItemBehaviour.PRESENT)) { + String[] presentData = item.getCustomData().split(Pattern.quote(Item.PRESENT_DELIMETER)); + + int saleCode = Integer.parseInt(presentData[0]); + String receivedFrom = presentData[1]; + String extraData = presentData[3]; + long timestamp = DateUtil.getCurrentTimeSeconds(); + + try { + timestamp = Long.parseLong(presentData[4]); + } catch (Exception ex) { + + } + //System.out.println("Present data: " + String.join(",", presentData)); + //System.out.println("Custom data: " + item.getCustomData()); + //System.out.println(receivedFrom); + + CatalogueItem catalogueItem = CatalogueManager.getInstance().getCatalogueItem(saleCode); + + if (catalogueItem == null) { + room.getMapping().removeItem(player, item); + item.delete(); + return; + } + + // Don't create a new item instance, reuse if the item isn't a trophy or teleporter, etc + if (!catalogueItem.isPackage() && !catalogueItem.getDefinition().hasBehaviour(ItemBehaviour.PRIZE_TROPHY) && + !catalogueItem.getDefinition().hasBehaviour(ItemBehaviour.TELEPORTER) && + (catalogueItem.getDefinition().getInteractionType() != InteractionType.PET_NEST) && + !catalogueItem.getDefinition().hasBehaviour(ItemBehaviour.ROOMDIMMER) && + !catalogueItem.getDefinition().hasBehaviour(ItemBehaviour.DECORATION) && + !catalogueItem.getDefinition().hasBehaviour(ItemBehaviour.POST_IT) && + !catalogueItem.getDefinition().getSprite().equalsIgnoreCase("film")) { + room.getMapping().removeItem(player, item); + + item.setDefinitionId(catalogueItem.getDefinition().getId()); + item.setCustomData(extraData); + + ItemDao.updateItem(item); + + player.send(new DELIVER_PRESENT(item)); + + player.getInventory().addItem(item); + player.getInventory().getView("new"); + } else { + List itemList = CatalogueManager.getInstance().purchase(player.getDetails(), catalogueItem, extraData, receivedFrom, timestamp); + + if (!itemList.isEmpty()) { + player.send(new DELIVER_PRESENT(itemList.get(0))); + player.getInventory().getView("new"); + } + + room.getMapping().removeItem(player, item); + item.delete(); + } + } + + if (item.hasBehaviour(ItemBehaviour.ECO_BOX)) { + int chance = 0; + int[] chances = {2000, 200, 40, 5}; + + for (int chanceCheck : chances) { + int randomID = ThreadLocalRandom.current().nextInt(1, chanceCheck + 1); + + if (randomID == chanceCheck) { + chance = chanceCheck; + break; + } + } + + List potentialPrizes = EcotronManager.getInstance().getRewardsByChance(chance); + + if (potentialPrizes.isEmpty()) { + return; // OOPS! Something happened + } + + EcotronItem ecotronItem = potentialPrizes.get(ThreadLocalRandom.current().nextInt(0, potentialPrizes.size())); + + if (ecotronItem == null) { + return; + } + + ItemDefinition prize = ItemManager.getInstance().getDefinitionBySprite(ecotronItem.getSpriteName()); + + if (prize == null) { + return; + } + + CatalogueItem catalogueItem = CatalogueManager.getInstance().getCatalogueBySprite(prize.getSpriteId()); + + if (catalogueItem == null) { + return; + } + + room.getMapping().removeItem(player, item); + + item.setDefinitionId(catalogueItem.getDefinition().getId()); + item.setCustomData(""); + + ItemDao.updateItem(item); + player.send(new DELIVER_PRESENT(item)); + + player.getInventory().addItem(item); + player.getInventory().getView("new"); + + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/REMOVEITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/REMOVEITEM.java new file mode 100644 index 0000000..b9e4717 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/REMOVEITEM.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; + +public class REMOVEITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && + !((item.hasBehaviour(ItemBehaviour.PHOTO) && player.hasFuse(Fuseright.REMOVE_PHOTOS)) || + (item.hasBehaviour(ItemBehaviour.POST_IT) && player.hasFuse(Fuseright.REMOVE_STICKIES)))) { + return; + } + + + // Set up trigger for leaving a current item + if (player.getRoomUser().getCurrentItem() != null) { + if (player.getRoomUser().getCurrentItem().getDefinition().getInteractionType().getTrigger() != null) { + player.getRoomUser().getCurrentItem().getDefinition().getInteractionType().getTrigger().onEntityLeave(player, player.getRoomUser(), player.getRoomUser().getCurrentItem()); + } + } + + room.getMapping().removeItem(player, item); + item.delete(); + + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SETITEMDATA.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SETITEMDATA.java new file mode 100644 index 0000000..2fceb18 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SETITEMDATA.java @@ -0,0 +1,81 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SETITEMDATA implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + //if (!room.hasRights(player.getDetails().getVirtualId())) { + // return; + //} + + //String contents = reader.contents(); + + int itemId = reader.readInt(); + String contents = reader.readString(); + + String colour = contents.substring(0, 6); + String newMessage = StringUtil.filterInput(contents.substring(7), false); + + if (!colour.equals("FFFFFF") && + !colour.equals("FFFF33") && + !colour.equals("FF9CFF") && + !colour.equals("9CFF9C") && + !colour.equals("9CCEFF")) { + return; + } + + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (!item.hasBehaviour(ItemBehaviour.POST_IT)) { + return; + } + + String oldText = ""; + String oldColour = "FFFFFF"; + + if (item.getCustomData().length() > 6) { // Strip colour code + oldText = item.getCustomData().substring(6); + oldColour = item.getCustomData().substring(0, 6); + } + + // If the user doesn't have rights, make sure they can only append to the sticky, not remove the existing information before it + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + if (oldText.length() > 0 && !newMessage.startsWith(oldText)) { + return; + } + } + + // Validate the colour is the same if the user doesn't have any rights + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + if (!oldColour.equals(colour)) { + return; + } + } + + if (newMessage.length() > 684) { + newMessage = newMessage.substring(0, 684); + } + + item.setCustomData(colour + newMessage); + item.updateStatus(); + item.save(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SET_RANDOM_STATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SET_RANDOM_STATE.java new file mode 100644 index 0000000..a0b17d6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SET_RANDOM_STATE.java @@ -0,0 +1,68 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class SET_RANDOM_STATE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER) + || item.hasBehaviour(ItemBehaviour.DICE) + || item.hasBehaviour(ItemBehaviour.PRIZE_TROPHY) + || item.hasBehaviour(ItemBehaviour.POST_IT) + || item.hasBehaviour(ItemBehaviour.ROLLER) + || item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE) + || item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + return; // Prevent dice rigging, scripting trophies, post-its, etc. + } + + if (item.hasBehaviour(ItemBehaviour.REQUIRES_RIGHTS_FOR_INTERACTION) + && !room.hasRights(player.getDetails().getId()) + && !player.hasFuse(Fuseright.MOD)) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.REQUIRES_TOUCHING_FOR_INTERACTION)) { + if (!item.getPosition().touches(player.getRoomUser().getPosition())) { + Position nextPosition = item.getPosition().getSquareInFront(); + + if (!item.hasBehaviour(ItemBehaviour.TELEPORTER)) { + if (!RoomTile.isValidTile(room, player, nextPosition)) { + nextPosition = item.getTile().getNextAvailablePosition(player); + } + + if (nextPosition != null) { + player.getRoomUser().walkTo( + nextPosition.getX(), + nextPosition.getY() + ); + } + + return; + } + } + } + + item.getDefinition().getInteractionType().getTrigger().onInteract(player, room, item, -1); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SPIN_WHEEL_OF_FORTUNE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SPIN_WHEEL_OF_FORTUNE.java new file mode 100644 index 0000000..0c2ada9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/SPIN_WHEEL_OF_FORTUNE.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.tasks.FortuneTask; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.concurrent.TimeUnit; + + +public class SPIN_WHEEL_OF_FORTUNE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + RoomEntity roomEntity = player.getRoomUser(); + Room room = roomEntity.getRoom(); + + if (room == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + int itemId = reader.readInt(); + + // Get item by ID + Item item = room.getItemManager().getById(itemId); + + // Check if item exists and if it is a wheel of fortune + if (item == null || !item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE)) { + return; + } + + // Spin already being executed, return + if (item.getRequiresUpdate()) { + return; + } + + // Send spinning animation to room + item.setCustomData("-1"); + item.updateStatus(); + + item.setRequiresUpdate(true); + + GameScheduler.getInstance().getService().schedule(new FortuneTask(item), 4250, TimeUnit.MILLISECONDS); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/THROW_DICE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/THROW_DICE.java new file mode 100644 index 0000000..bd8f5ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/THROW_DICE.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.room.tasks.DiceTask; +import org.alexdev.havana.messages.outgoing.rooms.items.DICE_VALUE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.concurrent.TimeUnit; + + +public class THROW_DICE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + RoomEntity roomEntity = player.getRoomUser(); + Room room = roomEntity.getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + Item item = room.getItemManager().getById(itemId); + + if (item == null || !item.hasBehaviour(ItemBehaviour.DICE)) { + return; + } + + // Return if dice is already being rolled + if (item.getRequiresUpdate()) { + return; + } + + // Check if user is next to dice + if (!roomEntity.getPosition().touches(item.getPosition())) { + return; + } + + // We reset the room timer here too as in casinos you might be in the same place for a while + // And you don't want to get kicked while you're still actively rolling dices for people :) + player.getRoomUser().getTimerManager().resetRoomTimer(); + + room.send(new DICE_VALUE(itemId, true, -1)); + + // Send spinning animation to room + //item.setCustomData("1"); + //item.updateStatus(); + + item.setRequiresUpdate(true); + + GameScheduler.getInstance().getService().schedule(new DiceTask(item), 2, TimeUnit.SECONDS); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEFURNITURE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEFURNITURE.java new file mode 100644 index 0000000..fc19478 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEFURNITURE.java @@ -0,0 +1,89 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class USEFURNITURE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + int status = reader.readInt(); + + Item item = room.getItemManager().getById(itemId); + + if (item == null ) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER) + || item.hasBehaviour(ItemBehaviour.DICE) + || item.hasBehaviour(ItemBehaviour.PRIZE_TROPHY) + || item.hasBehaviour(ItemBehaviour.POST_IT) + || item.hasBehaviour(ItemBehaviour.ROLLER) + || item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE) + || item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + return; // Prevent dice rigging, scripting trophies, post-its, etc. + } + + if (item.hasBehaviour(ItemBehaviour.REQUIRES_RIGHTS_FOR_INTERACTION) && !room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + if (item.hasBehaviour(ItemBehaviour.REQUIRES_TOUCHING_FOR_INTERACTION)) { + if (!item.getPosition().touches(player.getRoomUser().getPosition())) { + Position nextPosition = item.getPosition().getSquareInFront(); + + if (!RoomTile.isValidTile(room, player, nextPosition)) { + var tile = item.getTile(); + + if (tile != null) { + nextPosition = item.getTile().getNextAvailablePosition(player); + } + } + + if (nextPosition != null) { + player.getRoomUser().walkTo(nextPosition.getX(), nextPosition.getY()); + } + return; + } + } + + if (player.getRoomUser().hasItemDebug()) { + StringBuilder alert = new StringBuilder(); + alert.append("Name: " + item.getDefinition().getName()); + alert.append("
"); + alert.append("Description: " + item.getDefinition().getDescription()); + alert.append("
"); + alert.append("Definition ID: " + item.getDefinition().getId()); + alert.append("
"); + alert.append("Sprite ID: " + item.getDefinition().getSpriteId()); + alert.append("
"); + alert.append("Sprite Name: " + item.getDefinition().getSprite()); + alert.append("
"); + alert.append("Top Height: " + item.getDefinition().getTopHeight()); + alert.append("
"); + alert.append("Total Height: " + item.getTotalHeight()); + alert.append("
"); + alert.append("Z Height: " + item.getPosition().getZ()); + alert.append("
"); + alert.append("X Y: " + item.getPosition().toString()); + player.send(new ALERT(alert.toString())); + } + + item.getDefinition().getInteractionType().getTrigger().onInteract(player, room, item, status); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEWALLITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEWALLITEM.java new file mode 100644 index 0000000..2d1acbf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/items/USEWALLITEM.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.messages.incoming.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class USEWALLITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + int itemId = reader.readInt(); + + Item item = room.getItemManager().getById(itemId); + + if (item == null ) { + return; + } + + if (!item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + return; // Prevent dice rigging, scripting trophies, post-its, etc. + } + + if (item.hasBehaviour(ItemBehaviour.ROOMDIMMER) + || item.hasBehaviour(ItemBehaviour.DICE) + || item.hasBehaviour(ItemBehaviour.PRIZE_TROPHY) + || item.hasBehaviour(ItemBehaviour.POST_IT) + || item.hasBehaviour(ItemBehaviour.ROLLER) + || item.hasBehaviour(ItemBehaviour.WHEEL_OF_FORTUNE) + || item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + return; // Prevent dice rigging, scripting trophies, post-its, etc. + } + + if (item.hasBehaviour(ItemBehaviour.REQUIRES_RIGHTS_FOR_INTERACTION) + && !room.hasRights(player.getDetails().getId()) + && !player.hasFuse(Fuseright.MOD)) { + return; + } + + item.getDefinition().getInteractionType().getTrigger().onInteract(player, room, item, -1); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/ASSIGNRIGHTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/ASSIGNRIGHTS.java new file mode 100644 index 0000000..e191b25 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/ASSIGNRIGHTS.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.dao.mysql.RoomRightsDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; + +public class ASSIGNRIGHTS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + Player target = PlayerManager.getInstance().getPlayerByName(reader.contents()); + + if (target == null || target.getRoomUser().getRoom() == null || target.getRoomUser().getRoom().getId() != room.getId()) { + return; + } + + Integer userId = target.getDetails().getId(); + + if (room.getRights().contains(userId)) { + return; + } + + room.getRights().add(userId); + room.refreshRights(target, true); + + target.getRoomUser().setNeedsUpdate(true); + RoomRightsDao.addRights(target.getDetails(), room.getData()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/BANUSER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/BANUSER.java new file mode 100644 index 0000000..6605255 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/BANUSER.java @@ -0,0 +1,53 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.dao.mysql.RoomBanDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.navigator.CANTCONNECT; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; + +import java.util.concurrent.TimeUnit; + +public class BANUSER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + Player target = PlayerManager.getInstance().getPlayerByName(reader.contents()); + + if (target == null || target.getRoomUser().getRoom() == null || target.getRoomUser().getRoom().getId() != room.getId()) { + return; + } + + if (target.getDetails().getId() == player.getDetails().getId()) { + return; // Can't kick yourself! + } + + // Don't allow kicking if they are room moderators / room owners + if (target.hasFuse(Fuseright.KICK) || room.isOwner(target.getDetails().getId())) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + // Don't allow kicking if you aren't room owner or don't have fuse rights + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.KICK)) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + target.send(new CANTCONNECT(CANTCONNECT.ConnectError.BANNED)); + target.getRoomUser().kick(false, true); + + RoomBanDao.addBan(target.getDetails().getId(), room.getId(), DateUtil.getCurrentTimeSeconds() + TimeUnit.HOURS.toSeconds(6)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/KICK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/KICK.java new file mode 100644 index 0000000..b29794d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/KICK.java @@ -0,0 +1,47 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.rooms.user.HOTEL_VIEW; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class KICK implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + Player target = PlayerManager.getInstance().getPlayerByName(reader.contents()); + + if (target == null || target.getRoomUser().getRoom() == null || target.getRoomUser().getRoom().getId() != room.getId()) { + return; + } + + if (target.getDetails().getId() == player.getDetails().getId()) { + return; // Can't kick yourself! + } + + // Don't allow kicking if they are room moderators / room owners + if (target.hasFuse(Fuseright.KICK) || room.isOwner(target.getDetails().getId())) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + // Don't allow kicking if you don't have room rights and don't have fuse rights + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.KICK)) { + player.send(new ALERT(TextsManager.getInstance().getValue("modtool_rankerror"))); + return; + } + + target.send(new HOTEL_VIEW()); + target.getRoomUser().kick(false, true); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/LETUSERIN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/LETUSERIN.java new file mode 100644 index 0000000..435c076 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/LETUSERIN.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.FLATNOTALLOWEDTOENTER; +import org.alexdev.havana.messages.outgoing.rooms.FLAT_LETIN; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class LETUSERIN implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId())&& !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + String username = reader.readString(); + boolean canEnter = reader.readBoolean(); + + Player enteringPlayer = PlayerManager.getInstance().getPlayerByName(username); + + if (enteringPlayer == null || enteringPlayer.getRoomUser().getAuthenticateId() == room.getId()) { + return; + } + + if (canEnter) { + enteringPlayer.getRoomUser().setAuthenticateId(room.getId()); + enteringPlayer.send(new FLAT_LETIN()); + } else { + enteringPlayer.send(new FLATNOTALLOWEDTOENTER()); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVEALLRIGHTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVEALLRIGHTS.java new file mode 100644 index 0000000..f40fc89 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVEALLRIGHTS.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.dao.mysql.RoomRightsDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class REMOVEALLRIGHTS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + room.getRights().clear(); + + for (Player roomPlayer : room.getEntityManager().getPlayers()) { + room.refreshRights(roomPlayer, true); + } + + RoomRightsDao.deleteRoomRights(room.getData()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVERIGHTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVERIGHTS.java new file mode 100644 index 0000000..3713eb5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/moderation/REMOVERIGHTS.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.messages.incoming.rooms.moderation; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomRightsDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class REMOVERIGHTS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + + List targets = List.of(PlayerDao.getId(reader.contents())); + + for (int targetId : targets) { + if (!room.getRights().contains(targetId)) { + continue; + } + + var target = PlayerManager.getInstance().getPlayerById(targetId); + + if (target != null) { + if (target.getRoomUser().getRoom() == null || target.getRoomUser().getRoom().getId() != room.getId()) { + continue; + } + + room.refreshRights(target, true); + } + + room.getRights().remove(Integer.valueOf(targetId)); + RoomRightsDao.removeRights(targetId, room.getData()); + } + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/BTCKS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/BTCKS.java new file mode 100644 index 0000000..0eabb37 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/BTCKS.java @@ -0,0 +1,86 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.catalogue.NO_CREDITS; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.outgoing.alerts.NO_USER_FOUND; +import org.alexdev.havana.messages.outgoing.user.currencies.TICKET_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class BTCKS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int mode = reader.readInt(); + String ticketsFor = reader.readString(); + + if (ticketsFor == null) { + return; + } + + int costCredits; + int ticketsAmount; + + if (mode == 1) { + costCredits = 1; + ticketsAmount = 2; + } else { + costCredits = 6; + ticketsAmount = 20; + } + + if (costCredits > player.getDetails().getCredits()) { + player.send(new NO_CREDITS(true, false)); + return; + } + + int userId = PlayerDao.getId(ticketsFor); + + if (userId == -1) { + player.send(new NO_USER_FOUND(ticketsFor)); + return; + } + + PlayerDetails details = PlayerManager.getInstance().getPlayerData(userId); + CurrencyDao.increaseTickets(details, ticketsAmount); + + Player ticketPlayer = PlayerManager.getInstance().getPlayerByName(ticketsFor); + + if (ticketPlayer != null) { + if (userId != player.getDetails().getId()) { + ticketPlayer.send(new ALERT(player.getDetails().getName() + " has gifted you tickets!")); + } + + ticketPlayer.send(new TICKET_BALANCE(details.getTickets())); + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + + CurrencyDao.decreaseCredits(player.getDetails(), costCredits); + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + + // Join queue after buying ticket + if (player.getRoomUser().getRoom().getModel().getName().equals("md_a")) { + Item item = player.getRoomUser().getCurrentItem(); + + if (item != null && item.getDefinition().getInteractionType() == InteractionType.WS_JOIN_QUEUE) { + item.getDefinition().getInteractionType().getTrigger().onEntityStop(player, player.getRoomUser(), item, false); + } + } + + /*Room room = player.getRoomUser().getRoom(); + + if (room != null && room.getModel().getModelTrigger() instanceof GameLobbyTrigger) { + GameLobbyTrigger gameLobbyTrigger = (GameLobbyTrigger) room.getModel().getModelTrigger(); + player.send(gameLobbyTrigger.getInstanceList()); + }*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/CLOSE_UIMAKOPPI.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/CLOSE_UIMAKOPPI.java new file mode 100644 index 0000000..0243bca --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/CLOSE_UIMAKOPPI.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.handlers.PoolHandler; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CLOSE_UIMAKOPPI implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.getData().getModel().equals("pool_a") && !room.getData().getModel().equals("md_a")) { + return; + } + + PoolHandler.exitBooth(player); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/DIVE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/DIVE.java new file mode 100644 index 0000000..74b8788 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/DIVE.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.pool.JUMPDATA; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class DIVE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (!player.getRoomUser().isDiving()) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + String divingHandle = reader.contents(); + room.send(new JUMPDATA(player.getRoomUser().getInstanceId(), divingHandle)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SIGN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SIGN.java new file mode 100644 index 0000000..e869a62 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SIGN.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.StringUtils; + +public class SIGN implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + String contents = reader.contents(); + + if (!StringUtils.isNumeric(contents)) { + return; + } + + int vote = Integer.parseInt(contents); + + if (vote < 0) { + return; + } + + if (vote <= 7) { + player.getRoomUser().setLidoVote(vote + 3); + } + + player.getRoomUser().setStatus(StatusType.SIGN, contents, 5, null, -1, -1); + player.getRoomUser().setNeedsUpdate(true); + + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SPLASH_POSITION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SPLASH_POSITION.java new file mode 100644 index 0000000..8d244ab --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SPLASH_POSITION.java @@ -0,0 +1,82 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.items.SHOWPROGRAM; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.concurrent.TimeUnit; + +public class SPLASH_POSITION implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (!player.getRoomUser().isDiving()) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.getModel().getName().equals("pool_b")) { + return; + } + + Item currentItem = player.getRoomUser().getCurrentItem(); + + if (currentItem == null || !currentItem.getDefinition().getSprite().equals("poolLift")) { + return; + } + + Position destination = new Position(23, 19, 0); + String contents = destination.getX() + "," + destination.getY(); + + player.getRoomUser().setStatus(StatusType.SWIM, ""); + player.getRoomUser().warp(destination, true, false); + + room.send(new SHOWPROGRAM(new String[] { "BIGSPLASH", "POSITION", contents,})); + + player.getRoomUser().setDiving(false); + player.getRoomUser().walkTo(20, 19); + player.getRoomUser().setEnableWalkingOnStop(true); + + currentItem.showProgram("open"); + + GameScheduler.getInstance().getService().schedule(() -> { + int total = 0; + int sum = 0; + double finalScore = 0; + + for (Player p : room.getEntityManager().getPlayers()) { + if (p.getDetails().getId() == player.getDetails().getId()) { + continue; + } + + if (p.getRoomUser().getLidoVote() > 0) { + sum += p.getRoomUser().getLidoVote(); + total++; + } + } + + room.send(new SHOWPROGRAM(new String[]{"cam1", "targetcamera", String.valueOf(player.getRoomUser().getInstanceId())})); + + if (total > 0) { + finalScore = StringUtil.format((double) sum / total); + } + + room.send(new SHOWPROGRAM(new String[]{"cam1", "showtext", (player.getDetails().getName() + "'s\n score: " + finalScore)})); + + for (Player p : room.getEntityManager().getPlayers()) { + p.getRoomUser().setLidoVote(0); + } + }, 1, TimeUnit.SECONDS); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SWIMSUIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SWIMSUIT.java new file mode 100644 index 0000000..75ef1b1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/pool/SWIMSUIT.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.messages.incoming.rooms.pool; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_OBJECTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SWIMSUIT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.getData().getModel().equals("pool_a") && + !room.getData().getModel().equals("md_a")) { + return; + } + + String swimsuit = StringUtil.filterInput(reader.contents(), true); + player.getDetails().setPoolFigure(swimsuit); + + room.send(new USER_OBJECTS(player)); + + PlayerDao.saveDetails( + player.getDetails().getId(), + player.getDetails().getFigure(), + player.getDetails().getPoolFigure(), + player.getDetails().getSex()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/CREATEFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/CREATEFLAT.java new file mode 100644 index 0000000..b67d91e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/CREATEFLAT.java @@ -0,0 +1,72 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.dao.mysql.NavigatorDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.models.RoomModelManager; +import org.alexdev.havana.game.texts.TextsManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.rooms.settings.GOTO_FLAT; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.StringUtil; + +import java.sql.SQLException; + +public class CREATEFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + String roomName = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + String roomModel = reader.readString(); + String roomAccess = reader.remainingBytes().length > 0 ? reader.readString() : ""; + boolean roomShowName = reader.remainingBytes().length <= 0 || reader.readBoolean(); + + if (roomName.replace(" ", "").isEmpty()) { + player.send(new ALERT(TextsManager.getInstance().getValue("roomatic_givename"))); + return; + } + + if (!roomModel.startsWith("model_")) { + return; + } + + if (RoomModelManager.getInstance().getModel(roomModel) == null) { + return; + } + + String modelType = roomModel.replace("model_", ""); + + if (!modelType.equals("a") && + !modelType.equals("b") && + !modelType.equals("c") && + !modelType.equals("d") && + !modelType.equals("e") && + !modelType.equals("f") && + !modelType.equals("i") && + !modelType.equals("j") && + !modelType.equals("k") && + !modelType.equals("l") && + !modelType.equals("m") && + !modelType.equals("n") && + !player.hasFuse(Fuseright.USE_SPECIAL_ROOM_LAYOUTS)) { + return; // Fuck off, scripter. + } + + int accessType = 0; + + if (roomAccess.equals("password")) { + accessType = 2; + } + + if (roomAccess.equals("closed")) { + accessType = 1; + } + + int roomId = NavigatorDao.createRoom(player.getDetails().getId(), roomName, roomModel, roomShowName, accessType); + + player.getRoomUser().setAuthenticateId(roomId); + player.send(new GOTO_FLAT(roomId, roomName)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/DELETEFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/DELETEFLAT.java new file mode 100644 index 0000000..793211a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/DELETEFLAT.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class DELETEFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + delete(roomId, player.getDetails().getId()); + } + + public static void delete(int roomId, int userId) throws SQLException { + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (!room.isOwner(userId)) { + return; + } + + for (var item : room.getItems()) { + item.delete(); + } + + List entities = new ArrayList<>(room.getEntities()); + + for (Entity entity : entities) { + room.getEntityManager().leaveRoom(entity, true); + } + + if (!room.tryDispose()) { + Log.getErrorLogger().error("Room " + roomId + " did not want to get disposed by player id " + userId); + } + + TagDao.removeTags(0, roomId, 0); + GroupDao.deleteHomeRoom(roomId); + RoomDao.delete(room); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATCAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATCAT.java new file mode 100644 index 0000000..ce90e92 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATCAT.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.rooms.settings.FLATCAT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETFLATCAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + player.send(new FLATCAT(room.getId(), room.getData().getCategoryId())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATINFO.java new file mode 100644 index 0000000..b32ea7a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/GETFLATINFO.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.outgoing.rooms.settings.FLATINFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETFLATINFO implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + boolean overrideLock = false; + + if (player.getRoomUser().getAuthenticateId() == roomId) { + overrideLock = true; + } + + player.send(new FLATINFO(player, room, overrideLock)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATCAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATCAT.java new file mode 100644 index 0000000..58ba1bd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATCAT.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.navigator.NavigatorManager; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class SETFLATCAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + int categoryId = reader.readInt(); + + NavigatorCategory category = NavigatorManager.getInstance().getCategoryById(categoryId); + + if (category == null) { + return; + } + + if (category.getMinimumRoleSetFlat().getRankId() > player.getDetails().getRank().getRankId()) { + return; + } + + if (category.isNode() || category.isPublicSpaces()) { + categoryId = 2; + } + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId())) { + return; + } + + room.getData().setCategoryId(categoryId); + RoomDao.save(room); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATINFO.java new file mode 100644 index 0000000..eebeee5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/SETFLATINFO.java @@ -0,0 +1,53 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SETFLATINFO implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String contents = reader.contents(); + + if (contents.startsWith("/")) { + contents = contents.substring(1); + } + + int roomId = reader.readInt(); + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId())) { + return; + } + + String description = WordfilterManager.filterSentence(reader.readString()); + String password = reader.readString(); + int allSuperUser = reader.readInt(); + + room.getData().setDescription(StringUtil.filterInput(description, true)); + room.getData().setPassword(StringUtil.filterInput(password, true)); + room.getData().setSuperUsers(allSuperUser == 1); + + if (reader.remainingBytes().length > 0) { + int maxVisitors = reader.readInt(); + + if (maxVisitors < 10 || maxVisitors > 50) { + maxVisitors = 25; + } + + room.getData().setVisitorsMax(maxVisitors); + } + + RoomDao.save(room); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/UPDATEFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/UPDATEFLAT.java new file mode 100644 index 0000000..1d9f407 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/settings/UPDATEFLAT.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.rooms.settings; + +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class UPDATEFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int roomId = reader.readInt(); + + Room room = RoomManager.getInstance().getRoomById(roomId); + + if (room == null) { + return; + } + + if (!room.isOwner(player.getDetails().getId())) { + return; + } + + String roomName = WordfilterManager.filterSentence(StringUtil.filterInput(reader.readString(), true)); + String accessType = reader.readString(); + boolean showOwner = reader.readBoolean(); + + int accessTypeId = 0; + + if (accessType.equals("closed")) { + accessTypeId = 1; + } + + if (accessType.equals("password")) { + accessTypeId = 2; + } + + room.getData().setName(roomName); + room.getData().setAccessType(accessTypeId); + room.getData().setShowOwnerName(showOwner); + RoomDao.save(room); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYDRINK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYDRINK.java new file mode 100644 index 0000000..9e0f32e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYDRINK.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_DANCE; +import org.alexdev.havana.messages.outgoing.user.currencies.FILM; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CARRYDRINK implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + int carryId = reader.readInt(); + + if (carryId > 0 && !player.getRoomUser().canCarry(carryId)) { + return; + } + + // Use old carry status for camera else when user walks, the camera doesn't get used + if (carryId == 20) { + player.getRoomUser().stopCarrying(); + player.getRoomUser().setStatus(StatusType.CARRY_ITEM, "20"); + player.getRoomUser().setNeedsUpdate(true); + + player.send(new FILM(player.getDetails())); + return; + } + + if (carryId == 0 && player.getRoomUser().containsStatus(StatusType.CARRY_ITEM)) { + // Remove carrying item status + player.getRoomUser().removeStatus(StatusType.CARRY_ITEM); + player.getRoomUser().setNeedsUpdate(true); + + if (player.getRoomUser().containsStatus(StatusType.SIT)) { + player.getRoomUser().refreshUser(); + } else { + player.getRoomUser().getRoom().send(new USER_DANCE(player.getRoomUser().getInstanceId(), 1)); + player.getRoomUser().getRoom().send(new USER_DANCE(player.getRoomUser().getInstanceId(), 0)); + } + } + + if (carryId > 0) { + player.getRoomUser().carryItem(carryId, null); + } else { + if (player.getRoomUser().isCarrying()) { + player.getRoomUser().stopCarrying(); + } + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYITEM.java new file mode 100644 index 0000000..54918ea --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CARRYITEM.java @@ -0,0 +1,52 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_DANCE; +import org.alexdev.havana.messages.outgoing.user.currencies.FILM; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class CARRYITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + int carryId = reader.readInt(); + + if (carryId > 0 && !player.getRoomUser().canCarry(carryId)) { + return; + } + + if (carryId == 20) { + player.getRoomUser().stopCarrying(); + player.getRoomUser().setStatus(StatusType.CARRY_ITEM, "20"); + player.getRoomUser().setNeedsUpdate(true); + + player.send(new FILM(player.getDetails())); + return; + } + + if (carryId == 0 && player.getRoomUser().containsStatus(StatusType.CARRY_ITEM)) { + // Remove carrying item status + player.getRoomUser().removeStatus(StatusType.CARRY_ITEM); + player.getRoomUser().setNeedsUpdate(true); + + // Hacky fix to remove "Carrying: camera" + player.getRoomUser().getRoom().send(new USER_DANCE(player.getRoomUser().getInstanceId(), 1)); + player.getRoomUser().getRoom().send(new USER_DANCE(player.getRoomUser().getInstanceId(), 0)); + } + + + /*if (StringUtils.isNumeric(contents)) { + player.getRoomUser().carryItem(Integer.parseInt(contents), null); + } else { + player.getRoomUser().carryItem(-1, contents); + }*/ + + player.getRoomUser().carryItem(carryId, null); + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CHAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CHAT.java new file mode 100644 index 0000000..9a0b3b6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/CHAT.java @@ -0,0 +1,106 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.TYPING_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class CHAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + String originalMessage = reader.readString(); + String message = WordfilterManager.filterMandatorySentence(StringUtil.filterInput(originalMessage, true)); + + if (message.isBlank()) { + return; + } + + if (WordfilterManager.hasBannableSentence(player, originalMessage)) { + WordfilterManager.performBan(player); + return; + } + + if (CommandManager.getInstance().hasCommand(player, originalMessage)) { + CommandManager.getInstance().invokeCommand(player, originalMessage); + return; + } + + if (player.isMuted()) { + PlayerManager.getInstance().showMutedAlert(player); + return; + } + + player.getRoomUser().setTyping(false); + room.send(new TYPING_STATUS(player.getRoomUser().getInstanceId(), player.getRoomUser().isTyping())); + + if (message.isEmpty()) { + return; + } + + player.getRoomUser().talk(message, CHAT_MESSAGE.ChatMessageType.CHAT); + // Make talk hard to read for long distance in public rooms + /*if (room.isPublicRoom() && GameConfiguration.getInstance().getBoolean("talk.garbled.text") && !room.getModel().getName().contains("_arena_")) { + int sourceX = player.getRoomUser().getPosition().getX(); + int sourceY = player.getRoomUser().getPosition().getY(); + + for (Player roomPlayer : room.getEntityManager().getPlayers()) { + int distX = Math.abs(sourceX - roomPlayer.getRoomUser().getPosition().getX()) - 1; + int distY = Math.abs(sourceY - roomPlayer.getRoomUser().getPosition().getY()) - 1; + + if (distX < 9 && distY < 9) {// User can hear + if (distX <= 6 && distY <= 6) {// User can hear full message + roomPlayer.send(new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), message, gestureId)); + } else { + int garbleIntensity = distX; + + if (distY < distX) { + garbleIntensity = distY; + } + + garbleIntensity -= 4; + char[] garbleMessage = message.toCharArray(); + + for (int pos = 0; pos < garbleMessage.length; pos++) { + int intensity = ThreadLocalRandom.current().nextInt(garbleIntensity, 6); + + if (intensity > 3 && + garbleMessage[pos] != ' ' && + garbleMessage[pos] != ',' && + garbleMessage[pos] != '?' && + garbleMessage[pos] != '!') { + garbleMessage[pos] = '.'; + } + } + + roomPlayer.send(new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), new String(garbleMessage), gestureId)); + } + } else { + // Disappearing talk bubble + roomPlayer.send(new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), "", gestureId)); + } + } + } else { + var chatMsg = new CHAT_MESSAGE(ChatMessageType.CHAT, player.getRoomUser().getInstanceId(), message, gestureId); + + for (Player sessions : room.getEntityManager().getPlayers()) { + if (sessions.getIgnoredList().contains(player.getDetails().getName())) { + continue; + } + + sessions.send(chatMsg); + } + }*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/DANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/DANCE.java new file mode 100644 index 0000000..e6d4b6b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/DANCE.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class DANCE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().containsStatus(StatusType.SWIM) || player.getRoomUser().containsStatus(StatusType.SIT) || player.getRoomUser().containsStatus(StatusType.LAY)) { + return; // Don't allow dancing if they're sitting or laying. + } + + int danceId = reader.readInt(); + + if (danceId == 0) { + player.getRoomUser().stopDancing(); + } else if (danceId == 1) { + player.getRoomUser().dance(danceId); + } else if (danceId > 1 && danceId < 5) { + if (!player.hasFuse(Fuseright.USE_CLUB_DANCE)) { + return; + } + + player.getRoomUser().dance(danceId); + } + + player.getRoomUser().stopCarrying(); + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GET_USER_TAGS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GET_USER_TAGS.java new file mode 100644 index 0000000..aae63c5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GET_USER_TAGS.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.TAG_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_USER_TAGS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + Player p = PlayerManager.getInstance().getPlayerById(reader.readInt()); + + if (p == null) { + return; + } + + player.send(new TAG_LIST(p.getDetails().getId(), TagDao.getUserTags(p.getDetails().getId()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GOAWAY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GOAWAY.java new file mode 100644 index 0000000..244b8dc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/GOAWAY.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.handlers.walkways.WalkwaysManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GOAWAY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (!player.getRoomUser().isWalkingAllowed()) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.isPublicRoom()) { + Position doorPosition = room.getModel().getDoorLocation(); + + if (WalkwaysManager.getInstance().getWalkway(room, doorPosition) != null) { + return; + } + } + + player.getRoomUser().kick(true, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/IIM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/IIM.java new file mode 100644 index 0000000..2b6a972 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/IIM.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.games.gamehalls.GamehallGame; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.entities.RoomEntity; +import org.alexdev.havana.game.games.triggers.GameTrigger; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class IIM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String contents = reader.contents(); + String[] commandArgs = reader.contents().split(" "); + + RoomEntity roomEntity = player.getRoomUser(); + + if (roomEntity.getRoom() == null) { + return; + } + + Room room = roomEntity.getRoom(); + Item currentItem = roomEntity.getCurrentItem(); + + // If we're on a current item and the current item has a valid trigger + if (currentItem == null) { + return; + } + + // If the trigger isn't a game trigger then ignore it + if (currentItem.getDefinition().getInteractionType().getTrigger() == null || !(currentItem.getDefinition().getInteractionType().getTrigger() instanceof GameTrigger)) { + return; + } + + GameTrigger trigger = (GameTrigger) currentItem.getDefinition().getInteractionType().getTrigger(); + GamehallGame game = trigger.getGameInstance(roomEntity.getPosition()); + + if (game == null) { + return; + } + + String gameId = commandArgs[0]; + String command = commandArgs[1]; + + if (!gameId.equals(game.getGameId())) { + return; + } + + String arguments = contents.replace(gameId + " " + command, ""); + + if (arguments.startsWith(" ")) { + arguments = arguments.trim(); + } + + game.handleCommand(player, room, player.getRoomUser().getCurrentItem(), command, arguments.split(" ")); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/LOOKTO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/LOOKTO.java new file mode 100644 index 0000000..f6720ba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/LOOKTO.java @@ -0,0 +1,87 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.item.interactors.InteractionType; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.pathfinder.Rotation; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class LOOKTO implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Item item = player.getRoomUser().getCurrentItem(); + + // Don't allow LOOKTO to be handled on wobble squabble tiles. + if (item != null) { + if (item.getDefinition().getInteractionType() == InteractionType.WS_JOIN_QUEUE || + item.getDefinition().getInteractionType() == InteractionType.WS_QUEUE_TILE || + item.getDefinition().getInteractionType() == InteractionType.WS_TILE_START) { + return; // Don't process :sit command on furniture that the user is already on. + } + } + + int x = 0; + int y = 0; + + if (reader.contents().contains(" ")) { + String[] contents = reader.contents().split(" "); + x = Integer.parseInt(contents[0]); + y = Integer.parseInt(contents[1]); + } else { + x = reader.readInt(); + y = reader.readInt(); + } + + Position lookDirection = new Position(x, y); + + if (player.getRoomUser().containsStatus(StatusType.LAY)) { + return; + } + + if (player.getRoomUser().getCurrentItem() != null) { + if (player.getRoomUser().getCurrentItem().hasBehaviour(ItemBehaviour.NO_HEAD_TURN)) { + return; + } + } + + if (player.getRoomUser().getPosition().equals(lookDirection)) { + return; + } + + int rotation = Rotation.calculateHumanDirection( + player.getRoomUser().getPosition().getX(), + player.getRoomUser().getPosition().getY(), + lookDirection.getX(), + lookDirection.getY()); + + // When sitting calculate even rotation + if (player.getRoomUser().containsStatus(StatusType.SIT)) { + Position current = player.getRoomUser().getPosition(); + + // If they're sitting on the ground also rotate body. + //if (player.getRoomUser().isSittingOnGround()) { + // rotation = rotation / 2 * 2; + // player.getRoomUser().getPosition().setBodyRotation(rotation); + //} + + // And now rotate their head for all sitting people. + player.getRoomUser().getPosition().setHeadRotation(Rotation.getHeadRotation(current.getRotation(), current, lookDirection)); + + } else { + player.getRoomUser().getPosition().setRotation(rotation); + } + + player.getRoomUser().setNeedsUpdate(true); + + player.getRoomUser().getTimerManager().beginLookTimer(); // 1 minute looking at them + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/QUIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/QUIT.java new file mode 100644 index 0000000..6e737ae --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/QUIT.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class QUIT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + // Remove authentication values when user manually leaves + player.getRoomUser().setAuthenticateTelporterId(-1); + player.getRoomUser().setAuthenticateId(-1); + + player.getRoomUser().getRoom().getEntityManager().leaveRoom(player, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RATEFLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RATEFLAT.java new file mode 100644 index 0000000..d9b70ed --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RATEFLAT.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class RATEFLAT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null || room.isPublicRoom()) { + return; + } + + // Room owner is not allowed to vote on his own room + if (room.getData().getOwnerId() == player.getDetails().getId()) { + return; + } + + int answer = reader.readInt(); + + // It's either negative or positive + if (answer != 1 && answer != -1) { + return; + } + + if (room.hasVoted(player)) { + return; + } + + room.addVote(answer, player); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RESPECT_USER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RESPECT_USER.java new file mode 100644 index 0000000..8c4a32f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/RESPECT_USER.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.RESPECT_NOTIFICATION; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class RESPECT_USER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!(player.getDetails().getDailyRespectPoints() > 0)) { + return; + } + + int userId = reader.readInt(); + + Player target = PlayerManager.getInstance().getPlayerById(userId); + + if (target == null) { + return; + } + + if (target.getDetails().getId() == player.getDetails().getId()) { + return; + } + + if (target.getRoomUser().getRoom() == null || target.getRoomUser().getRoom().getId() != room.getId()) { + return; + } + + // Add respect given + player.getDetails().setRespectGiven(player.getDetails().getRespectGiven() + 1); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_RESPECT_GIVEN, player); + + // Increase respect points for target + // target.getDetails().setRespectPoints(target.getDetails().getRespectPoints() + 1); + room.send(new RESPECT_NOTIFICATION(target.getDetails().getId(), 1)); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_RESPECT_EARNED, target); + + // Lower daily respect points for user + player.getDetails().setDailyRespectPoints(player.getDetails().getDailyRespectPoints() - 1); + + // Save both users + PlayerDao.saveRespect(target.getDetails().getId(), target.getDetails().getDailyRespectPoints(), target.getDetails().getRespectPoints(), target.getDetails().getRespectDay(), target.getDetails().getRespectGiven()); + PlayerDao.saveRespect(player.getDetails().getId(), player.getDetails().getDailyRespectPoints(), player.getDetails().getRespectPoints(), player.getDetails().getRespectDay(), player.getDetails().getRespectGiven()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SET_SOUND_SETTING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SET_SOUND_SETTING.java new file mode 100644 index 0000000..ffb1058 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SET_SOUND_SETTING.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class SET_SOUND_SETTING implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + boolean enabled = reader.readBoolean(); + player.getDetails().setSoundSetting(enabled); + + PlayerDao.saveSoundSetting(player.getDetails().getId(), player.getDetails().getSoundSetting()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SHOUT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SHOUT.java new file mode 100644 index 0000000..67316a0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/SHOUT.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.outgoing.rooms.user.TYPING_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SHOUT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + String originalMessage = reader.readString(); + String message = WordfilterManager.filterMandatorySentence(StringUtil.filterInput(originalMessage, true)); + + if (message.isBlank()) { + return; + } + + if (WordfilterManager.hasBannableSentence(player, originalMessage)) { + WordfilterManager.performBan(player); + return; + } + + if (CommandManager.getInstance().hasCommand(player, originalMessage)) { + CommandManager.getInstance().invokeCommand(player, originalMessage); + return; + } + + if (player.isMuted()) { + PlayerManager.getInstance().showMutedAlert(player); + return; + } + + player.getRoomUser().setTyping(false); + room.send(new TYPING_STATUS(player.getRoomUser().getInstanceId(), player.getRoomUser().isTyping())); + + if (message.isEmpty()) { + return; + } + + player.getRoomUser().talk(message, CHAT_MESSAGE.ChatMessageType.SHOUT); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/STOP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/STOP.java new file mode 100644 index 0000000..e48983f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/STOP.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class STOP implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String stopWhat = reader.contents(); + + if (stopWhat.equals("Dance")) { + player.getRoomUser().stopDancing(); + } + + if (stopWhat.equals("CarryItem")) { + player.getRoomUser().stopCarrying(); + } + + player.getRoomUser().getTimerManager().resetRoomTimer(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USEITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USEITEM.java new file mode 100644 index 0000000..c4c18da --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USEITEM.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.GameScheduler; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.tasks.CameraTask; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_STATUSES; +import org.alexdev.havana.messages.outgoing.rooms.user.USER_USE_OBJECT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class USEITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + if (player.getRoomUser().containsStatus(StatusType.CARRY_ITEM)) { + String item = player.getRoomUser().getStatus(StatusType.CARRY_ITEM).getValue(); + + player.getRoomUser().getStatuses().remove(StatusType.CARRY_ITEM.getStatusCode()); + player.getRoomUser().setStatus(StatusType.USE_ITEM, item); + + if (!player.getRoomUser().isWalking()) { + player.getRoomUser().getRoom().send(new USER_STATUSES(List.of(player))); + } + + GameScheduler.getInstance().getService().schedule(new CameraTask(player), 1, TimeUnit.SECONDS); + } else { + //player.getRoomUser().getRoom().send(new USER_USE_OBJECT(player.getRoomUser().getInstanceId(), player.getRoomUser().getCarryId())); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_CANCEL_TYPING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_CANCEL_TYPING.java new file mode 100644 index 0000000..1f9c712 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_CANCEL_TYPING.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.TYPING_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class USER_CANCEL_TYPING implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null || !player.getRoomUser().isTyping()) { + return; + } + + if (player.getRoomUser().getGamePlayer() != null && player.getRoomUser().getGamePlayer().isInGame()) { + return; // Not needed for game arenas + } + + player.getRoomUser().getTimerManager().stopChatBubbleTimer(); + player.getRoomUser().setTyping(false); + + room.send(new TYPING_STATUS(player.getRoomUser().getInstanceId(), player.getRoomUser().isTyping())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_START_TYPING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_START_TYPING.java new file mode 100644 index 0000000..ae5b3c0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/USER_START_TYPING.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.rooms.user.TYPING_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class USER_START_TYPING implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null || player.getRoomUser().isTyping()) { + return; + } + + if (player.getRoomUser().getGamePlayer() != null && player.getRoomUser().getGamePlayer().isInGame()) { + return; // Not needed for game arenas + } + + player.getRoomUser().getTimerManager().beginChatBubbleTimer(); + player.getRoomUser().setTyping(true); + + room.send(new TYPING_STATUS(player.getRoomUser().getInstanceId(), player.getRoomUser().isTyping())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WALK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WALK.java new file mode 100644 index 0000000..915b810 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WALK.java @@ -0,0 +1,86 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.mapping.RoomTile; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public class WALK implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getRoomUser().isWalkingAllowed()) { + return; + } + + if (player.getRoomUser().getRoom() == null) { + return; + } + + int goalX = reader.readInt(); + int goalY = reader.readInt(); + + if (player.getRoomUser().getRoom().getModel().getName().equals("md_a")) { + if (reader.contents().equals("@U@S")|| reader.contents().equals("@U@G")) { + if (player.getRoomUser().getCurrentItem() != null && player.getRoomUser().getCurrentItem().getDefinition().getSprite().equals("wsQueueTile")) { + return; + } + } + if (reader.contents().equals("@U@S")) { // If using older CCT + player.getRoomUser().walkTo(21, 19); + } + + if (reader.contents().equals("@U@G")) { // If using older CCT + player.getRoomUser().walkTo(21, 7); + } + } + + + if (player.getRoomUser().getRoom().getModel().getName().equals("park_a")) { + if (goalX == 28 && goalY == 4) { + return; + } + } + + RoomTile roomTile = player.getRoomUser().getRoom().getMapping().getTile(goalX, goalY); + + /*if (roomTile != null && roomTile.getHighestItem() != null) { + var highestItem = roomTile.getHighestItem(); + + if (highestItem.getLastPlacedTime() > 0) { + if (System.currentTimeMillis() - highestItem.getLastPlacedTime() < 50) { + return; // Woah there buddy, that's wayyy too quick to request an item being placed! + } + } + }*/ + + if (player.getRoomUser().hasItemDebug()) { + if (roomTile != null && roomTile.getHighestItem() != null) { + var item = roomTile.getHighestItem(); + StringBuilder alert = new StringBuilder(); + alert.append("Name: " + item.getDefinition().getName()); + alert.append("
"); + alert.append("Description: " + item.getDefinition().getDescription()); + alert.append("
"); + alert.append("Definition ID: " + item.getDefinition().getId()); + alert.append("
"); + alert.append("Sprite ID: " + item.getDefinition().getSpriteId()); + alert.append("
"); + alert.append("Sprite Name: " + item.getDefinition().getSprite()); + alert.append("
"); + alert.append("Top Height: " + item.getDefinition().getTopHeight()); + alert.append("
"); + alert.append("Total Height: " + item.getTotalHeight()); + alert.append("
"); + alert.append("Z Height: " + item.getPosition().getZ()); + alert.append("
"); + alert.append("X Y: " + item.getPosition().toString()); + player.send(new ALERT(alert.toString())); + return; + } + } + + player.getRoomUser().walkTo(goalX, goalY); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WAVE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WAVE.java new file mode 100644 index 0000000..17d06f7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WAVE.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class WAVE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.getRoomUser().wave(); + player.getRoomUser().getTimerManager().resetRoomTimer(); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WHISPER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WHISPER.java new file mode 100644 index 0000000..29a1704 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/rooms/user/WHISPER.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.incoming.rooms.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE.ChatMessageType; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class WHISPER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + String contents = reader.readString(); + + String username = contents.substring(0, contents.indexOf(" ")); + String message = WordfilterManager.filterMandatorySentence(StringUtil.filterInput(contents.substring(username.length() + 1), true)); + + if (message.isBlank()) { + return; + } + + if (WordfilterManager.hasBannableSentence(player, StringUtil.filterInput(contents.substring(username.length() + 1), true))) { + WordfilterManager.performBan(player); + return; + } + + if (player.isMuted()) { + PlayerManager.getInstance().showMutedAlert(player); + return; + } + + List receieveMessages = new ArrayList<>(); + receieveMessages.add(player); + + Player whisperUser = PlayerManager.getInstance().getPlayerByName(username); + + if (whisperUser != null) { + if (!whisperUser.getIgnoredList().contains(player.getDetails().getName())) { + receieveMessages.add(whisperUser); + } + } + + player.getRoomUser().talk(message, ChatMessageType.WHISPER, receieveMessages); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/BURN_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/BURN_SONG.java new file mode 100644 index 0000000..1382597 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/BURN_SONG.java @@ -0,0 +1,72 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.JukeboxDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.Calendar; + +public class BURN_SONG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (!room.hasRights(player.getDetails().getId()) && !player.hasFuse(Fuseright.MOD)) { + return; + } + + if (player.getDetails().getCredits() <= 0) { + return; + } + + int songId = reader.readInt(); + + Song song = SongMachineDao.getSong(songId); + + if (song == null) { + return; + } + + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(System.currentTimeMillis()); + + Item item = new Item(); + item.setOwnerId(player.getDetails().getId()); + item.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("song_disk").getId()); + item.setCustomData(player.getDetails().getName() + (char)10 + + cal.get(Calendar.DAY_OF_MONTH) + (char)10 + + cal.get(Calendar.MONTH) + (char)10 + + cal.get(Calendar.YEAR) + (char)10 + + ItemManager.getInstance().calculateSongLength(song.getData()) + (char)10 + + song.getTitle()); + + ItemDao.newItem(item); + + player.getInventory().addItem(item); + player.getInventory().getView("new"); + + JukeboxDao.addDisk(item.getDatabaseId(), 0, songId); + JukeboxDao.setBurned(songId, true); + + CurrencyDao.decreaseCredits(player.getDetails(), 1); + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/DELETE_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/DELETE_SONG.java new file mode 100644 index 0000000..4650fe9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/DELETE_SONG.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class DELETE_SONG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + int songId = reader.readInt(); + var song = SongMachineDao.getSong(songId); + + if (song == null) { + return; + } + + if (song.getUserId() != player.getDetails().getId()) { + return; + } + + SongMachineDao.deleteSong(songId); + SongMachineDao.removePlaylistSong(songId, room.getItemManager().getSoundMachine().getDatabaseId()); + + if (room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE)) { + player.send(new SONG_PLAYLIST(SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()))); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EDIT_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EDIT_SONG.java new file mode 100644 index 0000000..cb2075a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EDIT_SONG.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.outgoing.songs.SONG_LOCKED; +import org.alexdev.havana.messages.outgoing.songs.USER_SOUND_PACKAGES; +import org.alexdev.havana.messages.outgoing.songs.SONG_INFO; +import org.alexdev.havana.messages.outgoing.songs.SOUND_PACKAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class EDIT_SONG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + int songId = reader.readInt(); + var song = SongMachineDao.getSong(songId); + + if (song == null) { + return; + } + + if (song.getUserId() != player.getDetails().getId()) { + return; + } + + if (song.isBurnt()) { + player.send(new SONG_LOCKED()); + } + + player.send(new SONG_INFO(song)); + player.send(new SOUND_PACKAGES(SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()))); + player.send(new USER_SOUND_PACKAGES(player.getInventory().getSoundsets())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EJECT_SOUND_PACKAGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EJECT_SOUND_PACKAGE.java new file mode 100644 index 0000000..0a67cc2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/EJECT_SOUND_PACKAGE.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.USER_SOUND_PACKAGES; +import org.alexdev.havana.messages.outgoing.songs.SOUND_PACKAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.Map; + +public class EJECT_SOUND_PACKAGE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + int slotId = reader.readInt(); + Map tracks = SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()); + + if (!tracks.containsKey(slotId)) { + return; + } + + SongMachineDao.removeTrack(room.getItemManager().getSoundMachine().getDatabaseId(), slotId); + + int songSoundId = tracks.get(slotId); + Item soundset = null; + + for (Item item : player.getInventory().getItems()) { + if (item.isVisible()) { + continue; + } + + if (!item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET)) { + continue; + } + + if (Integer.parseInt(item.getDefinition().getSprite().replace("sound_set_", "")) == songSoundId) { + soundset = item; + break; + } + } + + if (soundset == null) { + return; + } + + + soundset.setHidden(false); + player.getInventory().addItem(soundset); // Re-add at start. + soundset.save(); + + player.getInventory().getView("new"); + + player.send(new SOUND_PACKAGES(SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()))); + player.send(new USER_SOUND_PACKAGES(player.getInventory().getSoundsets())); + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_PLAY_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_PLAY_LIST.java new file mode 100644 index 0000000..648e4c8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_PLAY_LIST.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_PLAY_LIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + if (room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.SOUND_MACHINE) || + room.getItemManager().getSoundMachine().hasBehaviour(ItemBehaviour.JUKEBOX)) { + player.send(new SONG_PLAYLIST(SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()))); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_INFO.java new file mode 100644 index 0000000..afa161c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_INFO.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_INFO; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_SONG_INFO implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + int songId = reader.readInt(); + + player.send(new SONG_INFO(SongMachineDao.getSong(songId))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_LIST.java new file mode 100644 index 0000000..0e5bafd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/GET_SONG_LIST.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.outgoing.songs.SONG_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class GET_SONG_LIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + List songList = SongMachineDao.getSongList(room.getItemManager().getSoundMachine().getDatabaseId()); + + player.send(new SONG_LIST(songList)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/INSERT_SOUND_PACKAGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/INSERT_SOUND_PACKAGE.java new file mode 100644 index 0000000..40d4537 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/INSERT_SOUND_PACKAGE.java @@ -0,0 +1,79 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.USER_SOUND_PACKAGES; +import org.alexdev.havana.messages.outgoing.songs.SOUND_PACKAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +import java.sql.SQLException; +import java.util.Map; + +public class INSERT_SOUND_PACKAGE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws SQLException, MalformedPacketException { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + Map tracks = SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()); + + int soundSetId = reader.readInt(); + int slotId = 1;//reader.readInt() - 1; + + while (tracks.containsKey(slotId)) { + slotId++; + } + + if (tracks.containsKey(slotId) || slotId >= 5 || slotId < 0) { + return; + } + + int trackId = -1; + Item trackItem = null; + + for (Item item : player.getInventory().getItems()) { + if (item.hasBehaviour(ItemBehaviour.SOUND_MACHINE_SAMPLE_SET) && item.isVisible()) { + int songId = Integer.parseInt(item.getDefinition().getSprite().split("_")[2]); + + if (songId == soundSetId) { + trackItem = item; + trackId = songId; + break; + } + } + } + + if (trackId == -1) { + return; + } + + trackItem.setHidden(true); + trackItem.save(); + + player.getInventory().getView("new"); + SongMachineDao.addTrack(room.getItemManager().getSoundMachine().getDatabaseId(), soundSetId, slotId); + + player.send(new SOUND_PACKAGES(SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()))); + player.send(new USER_SOUND_PACKAGES(player.getInventory().getSoundsets())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/NEW_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/NEW_SONG.java new file mode 100644 index 0000000..b841abb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/NEW_SONG.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.USER_SOUND_PACKAGES; +import org.alexdev.havana.messages.outgoing.songs.SOUND_PACKAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class NEW_SONG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + player.send(new SOUND_PACKAGES(SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()))); + player.send(new USER_SOUND_PACKAGES(player.getInventory().getSoundsets())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_EDIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_EDIT.java new file mode 100644 index 0000000..21e41a8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_EDIT.java @@ -0,0 +1,71 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.outgoing.songs.*; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SAVE_SONG_EDIT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + int songId = reader.readInt(); + String title = StringUtil.filterInput(reader.readString(), true); + String data = StringUtil.filterInput(reader.readString(), true); + + Song song = SongMachineDao.getSong(songId); + + if (song == null) { + return; + } + + if (song.getUserId() != player.getDetails().getId()) { + return; + } + + var songList = SongMachineDao.getSongList(room.getItemManager().getSoundMachine().getDatabaseId()); + + // Don't allow overriding burnt song, alert user + if (song.isBurnt()) { + for (Song s : songList) { + if (s.getId() == songId && s.getTitle().equals(title)) { + player.send(new SONG_LOCKED()); + return; + } + } + + SongMachineDao.addSong(player.getDetails().getId(), room.getItemManager().getSoundMachine().getDatabaseId(), title, ItemManager.getInstance().calculateSongLength(data), data); + songList = SongMachineDao.getSongList(room.getItemManager().getSoundMachine().getDatabaseId()); + } else { + SongMachineDao.saveSong(songId, title, ItemManager.getInstance().calculateSongLength(data), data); + } + + player.send(new SONG_INFO(SongMachineDao.getSong(songId))); + player.send(new SONG_UPDATE()); + player.send(new SONG_LIST(songList)); + + room.send(new SONG_PLAYLIST(SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_NEW.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_NEW.java new file mode 100644 index 0000000..f163fab --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/SAVE_SONG_NEW.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_NEW; +import org.alexdev.havana.messages.outgoing.songs.SOUND_PACKAGES; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.StringUtil; + +public class SAVE_SONG_NEW implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + String title = StringUtil.filterInput(reader.readString(), true); + String data = StringUtil.filterInput(reader.readString(), true); + + SongMachineDao.addSong(player.getDetails().getId(), + room.getItemManager().getSoundMachine().getDatabaseId(), + title, + ItemManager.getInstance().calculateSongLength(data), + data); + + player.send(new SOUND_PACKAGES(SongMachineDao.getTracks(room.getItemManager().getSoundMachine().getDatabaseId()))); + player.send(new SONG_NEW(room.getItemManager().getSoundMachine().getVirtualId(), title)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/UPDATE_PLAY_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/UPDATE_PLAY_LIST.java new file mode 100644 index 0000000..313c7ce --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/songs/UPDATE_PLAY_LIST.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.incoming.songs; + +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.songs.SONG_PLAYLIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class UPDATE_PLAY_LIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getRoomUser().getRoom() == null) { + return; + } + + Room room = player.getRoomUser().getRoom(); + + if (!room.isOwner(player.getDetails().getId()) && !player.hasFuse(Fuseright.ANY_ROOM_CONTROLLER)) { + return; + } + + if (room.getItemManager().getSoundMachine() == null) { + return; + } + + int amount = reader.readInt(); + + if (amount >= 6) { + return; + } + + // We don't want a user to get kicked when making cool beats + player.getRoomUser().getTimerManager().resetRoomTimer(); + + SongMachineDao.clearPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()); + + for (int i = 0; i < amount; i++) { + int songId = reader.readInt(); + SongMachineDao.addPlaylist(room.getItemManager().getSoundMachine().getDatabaseId(), songId, i); + } + + room.send(new SONG_PLAYLIST(SongMachineDao.getSongPlaylist(room.getItemManager().getSoundMachine().getDatabaseId()))); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ACCEPT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ACCEPT.java new file mode 100644 index 0000000..ed670f5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ACCEPT.java @@ -0,0 +1,51 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.outgoing.trade.TRADEACCEPT; +import org.alexdev.havana.messages.outgoing.trade.TRADECONFIRM; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_ACCEPT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + if (!player.getDetails().isTradeEnabled() || !player.getRoomUser().getTradePartner().getDetails().isTradeEnabled()) { + return; + } + + player.getRoomUser().setTradeAccept(true); + + player.send(new TRADEACCEPT(player.getDetails().getId(), player.getRoomUser().hasAcceptedTrade())); + player.getRoomUser().getTradePartner().send(new TRADEACCEPT(player.getDetails().getId(), player.getRoomUser().hasAcceptedTrade())); + //RoomTradeManager.refreshWindow(player); + //RoomTradeManager.refreshWindow(player.getRoomUser().getTradePartner()); + + if (player.getRoomUser().hasAcceptedTrade() && + player.getRoomUser().getTradePartner().getRoomUser().hasAcceptedTrade()) { + + /*RoomTradeManager.addItems(player, player.getRoomUser().getTradePartner()); + RoomTradeManager.addItems(player.getRoomUser().getTradePartner(), player); + + RoomTradeManager.close(player.getRoomUser());*/ + player.send(new TRADECONFIRM()); + player.getRoomUser().getTradePartner().send(new TRADECONFIRM()); + + player.getRoomUser().setCanConfirmTrade(true); + player.getRoomUser().getTradePartner().getRoomUser().setCanConfirmTrade(true); + + player.getRoomUser().setTradeAccept(false); + player.getRoomUser().setTradeAccept(false); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ADDITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ADDITEM.java new file mode 100644 index 0000000..3981a2e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_ADDITEM.java @@ -0,0 +1,58 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.trade.ITEM_NOT_TRADABLE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_ADDITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + if (!player.getDetails().isTradeEnabled() || !player.getRoomUser().getTradePartner().getDetails().isTradeEnabled()) { + return; + } + + if (player.getRoomUser().isTradeConfirmed() && player.getRoomUser().getTradePartner().getRoomUser().isTradeConfirmed()) { + return; + } + + if (player.getRoomUser().hasAcceptedTrade() && player.getRoomUser().getTradePartner().getRoomUser().hasAcceptedTrade()) { + return; + } + + int itemId = reader.readInt();//Integer.parseInt(reader.contents()); + Item inventoryItem = player.getInventory().getItem(itemId); + + if (inventoryItem == null || player.getRoomUser().getTradeItems().contains(inventoryItem) || !inventoryItem.isVisible() || inventoryItem.isInTrade()) { + return; + } + + if (!inventoryItem.getDefinition().isTradable()) { + player.send(new ITEM_NOT_TRADABLE()); + return; + } + + player.getRoomUser().setTradeAccept(false); + player.getRoomUser().getTradePartner().getRoomUser().setTradeAccept(false); + player.getRoomUser().getTradeItems().add(inventoryItem); + + ItemDao.updateTradeState(inventoryItem, true); + + RoomTradeManager.refreshWindow(player); + RoomTradeManager.refreshWindow(player.getRoomUser().getTradePartner()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CLOSE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CLOSE.java new file mode 100644 index 0000000..f1b5e64 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CLOSE.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_CLOSE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + RoomTradeManager.close(player.getRoomUser(), false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CONFIRM_ACCEPT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CONFIRM_ACCEPT.java new file mode 100644 index 0000000..71df07c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_CONFIRM_ACCEPT.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.trade.TRADE_COMPLETED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_CONFIRM_ACCEPT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + if (!player.getDetails().isTradeEnabled() || !player.getRoomUser().getTradePartner().getDetails().isTradeEnabled()) { + return; + } + + if (!player.getRoomUser().canConfirmTrade() || !player.getRoomUser().getTradePartner().getRoomUser().canConfirmTrade()) { + return; + } + + player.getRoomUser().setTradeConfirmed(true); + + if (player.getRoomUser().isTradeConfirmed() && + player.getRoomUser().getTradePartner().getRoomUser().isTradeConfirmed()) { + + player.send(new TRADE_COMPLETED()); + player.getRoomUser().getTradePartner().send(new TRADE_COMPLETED()); + + RoomTradeManager.addItems(player, player.getRoomUser().getTradePartner()); + RoomTradeManager.addItems(player.getRoomUser().getTradePartner(), player); + + RoomTradeManager.finish(player.getRoomUser()); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_OPEN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_OPEN.java new file mode 100644 index 0000000..610b24a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_OPEN.java @@ -0,0 +1,88 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.openinghours.INFO_HOTEL_CLOSING; +import org.alexdev.havana.messages.outgoing.trade.TRADEOPEN; +import org.alexdev.havana.messages.outgoing.trade.TRADE_ALREADY_OPEN; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_OPEN implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (!room.getCategory().hasAllowTrading()) { + return; + } + + if (player.getRoomUser().getTradePartner() != null) { + return; + } + + if (player.getDetails().isTradeBanned()) { + player.send(new ALERT(RoomTradeManager.showTradeBanAlert(player))); + return; + } + + int instanceId = reader.readInt(); + Entity targetPartner = room.getEntityManager().getByInstanceId(instanceId); + + if (targetPartner == null) { + return; + } + + if (targetPartner.getType() != EntityType.PLAYER) { + return; + } + + Player tradePartner = (Player) targetPartner; + + if (tradePartner.getDetails().isTradeBanned()) { + player.send(new ALERT("You cannot trade with this user")); + return; + } + + if (tradePartner.getRoomUser().getTradePartner() != null) { + player.send(new TRADE_ALREADY_OPEN()); + return; + } + + if (PlayerManager.getInstance().isMaintenance()) { + player.send(new INFO_HOTEL_CLOSING(PlayerManager.getInstance().getMaintenanceAt())); + return; + } + + RoomTradeManager.close(player.getRoomUser(), false); + RoomTradeManager.close(tradePartner.getRoomUser(), false); + + player.send(new TRADEOPEN(player.getDetails().getId(), player.getDetails().isTradeEnabled(), tradePartner.getDetails().getId(), tradePartner.getDetails().isTradeEnabled())); + tradePartner.send(new TRADEOPEN(tradePartner.getDetails().getId(), tradePartner.getDetails().isTradeEnabled(), player.getDetails().getId(), player.getDetails().isTradeEnabled())); + + if (!player.getDetails().isTradeEnabled() && !tradePartner.getDetails().isTradeEnabled()) { + return; + } + + player.getRoomUser().setStatus(StatusType.TRADE, ""); + player.getRoomUser().setNeedsUpdate(true); + player.getRoomUser().setTradePartner(tradePartner); + + tradePartner.getRoomUser().setStatus(StatusType.TRADE, ""); + tradePartner.getRoomUser().setNeedsUpdate(true); + tradePartner.getRoomUser().setTradePartner(player); + + //RoomTradeManager.refreshWindow(player); + //RoomTradeManager.refreshWindow(tradePartner); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_REMOVE_ITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_REMOVE_ITEM.java new file mode 100644 index 0000000..edea351 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_REMOVE_ITEM.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.trade.ITEM_NOT_TRADABLE; +import org.alexdev.havana.messages.outgoing.trade.TRADEACCEPT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class TRADE_REMOVE_ITEM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + if (!player.getDetails().isTradeEnabled() || !player.getRoomUser().getTradePartner().getDetails().isTradeEnabled()) { + return; + } + + if (player.getRoomUser().isTradeConfirmed() && player.getRoomUser().getTradePartner().getRoomUser().isTradeConfirmed()) { + return; + } + + if (player.getRoomUser().hasAcceptedTrade() && player.getRoomUser().getTradePartner().getRoomUser().hasAcceptedTrade()) { + return; + } + + int itemId = reader.readInt();//Integer.parseInt(reader.contents()); + Item inventoryItem = player.getInventory().getItem(itemId); + + if (inventoryItem == null) { + return; + } + + if (!inventoryItem.getDefinition().isTradable()) { + player.send(new ITEM_NOT_TRADABLE()); + return; + } + + player.getRoomUser().getTradeItems().remove(inventoryItem); + ItemDao.updateTradeState(inventoryItem, false); + + for (Player tradeUser : List.of(player, player.getRoomUser().getTradePartner())) { + if (tradeUser.getRoomUser().hasAcceptedTrade()) { + tradeUser.getRoomUser().setTradeAccept(false); + + tradeUser.send(new TRADEACCEPT(tradeUser.getDetails().getId(), tradeUser.getRoomUser().hasAcceptedTrade())); + tradeUser.getRoomUser().getTradePartner().send(new TRADEACCEPT(tradeUser.getDetails().getId(), tradeUser.getRoomUser().hasAcceptedTrade())); + } + } + + RoomTradeManager.refreshWindow(player); + RoomTradeManager.refreshWindow(player.getRoomUser().getTradePartner()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_UNACCEPT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_UNACCEPT.java new file mode 100644 index 0000000..b64aa46 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/trade/TRADE_UNACCEPT.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.messages.incoming.trade; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.managers.RoomTradeManager; +import org.alexdev.havana.messages.outgoing.trade.TRADEACCEPT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TRADE_UNACCEPT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + Room room = player.getRoomUser().getRoom(); + + if (room == null) { + return; + } + + if (player.getRoomUser().getTradePartner() == null) { + return; + } + + if (!player.getDetails().isTradeEnabled() || !player.getRoomUser().getTradePartner().getDetails().isTradeEnabled()) { + return; + } + + if (!player.getRoomUser().canConfirmTrade() && player.getRoomUser().hasAcceptedTrade()) { + player.getRoomUser().setTradeAccept(false); + + player.send(new TRADEACCEPT(player.getDetails().getId(), player.getRoomUser().hasAcceptedTrade())); + player.getRoomUser().getTradePartner().send(new TRADEACCEPT(player.getDetails().getId(), player.getRoomUser().hasAcceptedTrade())); + } else { + RoomTradeManager.close(player.getRoomUser(), false); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_ACCEPT_TUTOR_INVITATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_ACCEPT_TUTOR_INVITATION.java new file mode 100644 index 0000000..c1bd3f8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_ACCEPT_TUTOR_INVITATION.java @@ -0,0 +1,61 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.tutorial.INVITE_FOLLOW_FAILED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.StringUtils; + +public class MSG_ACCEPT_TUTOR_INVITATION implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuide()) { + return; + } + + if (player.getGuideManager().getInvites().isEmpty()) { + return; + } + + String data = reader.readString(); + + if (!StringUtils.isNumeric(data)) { + return; + } + + int userId = Integer.parseInt(data); + + if (!player.getGuideManager().hasInvite(userId)) { + return; + } + + Player newb = PlayerManager.getInstance().getPlayerById(userId); + + if (newb == null || newb.getRoomUser().getRoom() == null || !newb.getRoomUser().getRoom().isOwner(newb.getDetails().getId())) { + player.send(new INVITE_FOLLOW_FAILED()); + return; + } + + // TODO: Error checking + //on handleInvitationFollowFailed me, tMsg + // executeMessage(#alert, "invitation_follow_failed") + //end + // + //on handleInvitationCancelled me, tMsg + // me.getComponent().cancelInvitation() + //end + player.getGuideManager().removeInvite(userId); + player.getGuideManager().setInvitedBy(newb.getDetails().getId()); + + if (player.getRoomUser().getRoom() == null || player.getRoomUser().getRoom() != newb.getRoomUser().getRoom()) { + player.getRoomUser().setAuthenticateId(newb.getRoomUser().getRoom().getId()); + newb.getRoomUser().getRoom().forward(player, false); + } else { + if (player.getRoomUser().getRoom() == newb.getRoomUser().getRoom()) { + GuideManager.getInstance().tutorEnterRoom(player, newb); + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_TUTOR_INVITATIONS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_TUTOR_INVITATIONS.java new file mode 100644 index 0000000..811c8c9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_TUTOR_INVITATIONS.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MSG_CANCEL_TUTOR_INVITATIONS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuidable()) { + return; + } + + if (!player.getGuideManager().isWaitingForGuide()) { + return; + } + + player.getGuideManager().setWaitingForGuide(false); + player.getGuideManager().setGuidable(false); + player.getGuideManager().getInvited().clear(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS.java new file mode 100644 index 0000000..2398bbe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MSG_CANCEL_WAIT_FOR_TUTOR_INVITATIONS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuide()) { + return; + } + + player.getGuideManager().setWaitingForInvitations(false); + player.getGuideManager().getInvites().clear(); + + // Remove your user from the newbs that invited you + PlayerManager.getInstance().getPlayers().forEach(p -> p.getGuideManager().getInvited().removeIf(i -> i == player.getDetails().getId())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_GET_TUTORS_AVAILABLE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_GET_TUTORS_AVAILABLE.java new file mode 100644 index 0000000..7b916dc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_GET_TUTORS_AVAILABLE.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.outgoing.tutorial.TUTORS_AVAILABLE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MSG_GET_TUTORS_AVAILABLE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + //int daysSinceJoined = (int) Math.floor(TimeUnit.SECONDS.toDays((long) (DateUtil.getCurrentTimeSeconds() - Math.floor(player.getDetails().getJoinDate())))); + if (player.getStatisticManager().getIntValue(PlayerStatistic.IS_GUIDABLE) != 1) { + GuideManager.getInstance().tryClearTutorial(player); + return; + } + + if (!player.getGuideManager().canUseTutorial()) { + GuideManager.getInstance().tryClearTutorial(player); + return; + } + + player.getGuideManager().setGuidable(true); + player.getGuideManager().setBlockingTutorial(true); + + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_GRADUATE, player); + player.send(new TUTORS_AVAILABLE(1));//GuideManager.getInstance().getGuidesAvailable().size())); + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_INVITE_TUTORS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_INVITE_TUTORS.java new file mode 100644 index 0000000..97d0461 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_INVITE_TUTORS.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.tutorial.INVITATION_SENT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.concurrent.TimeUnit; + +public class MSG_INVITE_TUTORS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuidable()) { + return; + } + + if (player.getGuideManager().isWaitingForGuide()) { + return; + } + + player.send(new INVITATION_SENT()); + + player.getGuideManager().setStartedForWaitingGuidesTime((int) (DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(GameConfiguration.getInstance().getInteger("guide.search.timeout.minutes")))); + player.getGuideManager().setWaitingForGuide(true); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REJECT_TUTOR_INVITATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REJECT_TUTOR_INVITATION.java new file mode 100644 index 0000000..4cee7a7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REJECT_TUTOR_INVITATION.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.tutorial.INVITE_CANCELLED; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.apache.commons.lang3.StringUtils; + +public class MSG_REJECT_TUTOR_INVITATION implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuide()) { + return; + } + + if (player.getGuideManager().getInvites().isEmpty()) { + return; + } + + String data = reader.readString(); + + if (!StringUtils.isNumeric(data)) { + return; + } + + int userId = Integer.parseInt(data); + + if (!player.getGuideManager().getInvites().contains(userId)) { + return; + } + + Player newb = PlayerManager.getInstance().getPlayerById(userId); + + if (newb == null || newb.getRoomUser().getRoom() == null) { + return; + } + + // TODO: Error checking + player.getGuideManager().removeInvite(userId); + player.send(new INVITE_CANCELLED()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REMOVE_ACCOUNT_HELP_TEXT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REMOVE_ACCOUNT_HELP_TEXT.java new file mode 100644 index 0000000..fe08381 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_REMOVE_ACCOUNT_HELP_TEXT.java @@ -0,0 +1,63 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MSG_REMOVE_ACCOUNT_HELP_TEXT implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().hasTutorial()) { + return; + } + + if (player.getGuideManager().isBlockingTutorial()) { + player.getGuideManager().setBlockingTutorial(false); + player.getGuideManager().setCancelTutorial(true); + return; + } + + int id = reader.readInt(); + + if (player.getGuideManager().isCancelTutorial()) { + player.getGuideManager().setCancelTutorial(false); + GuideManager.getInstance().tryClearTutorial(player); + player.getStatisticManager().setLongValue(PlayerStatistic.IS_GUIDABLE, 0); + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_GRADUATE, player); + return; + } + + /*if (id == 1) { + player.getDetails().getTutorialFlags().clear(); + } else { + player.getDetails().getTutorialFlags().remove(Integer.valueOf(id)); + }*/ + + //TutorialDao.updateTutorialFlags(player.getDetails().getId(), player.getDetails().getTutorialFlags()); + + if (!player.getGuideManager().canUseTutorial()) + player.getGuideManager().setCanUseTutorial(true); + + /*if (player.getDetails().getTutorialFlags().isEmpty()) { + if (!player.getGuideManager().isGuidable() && id == 2) { + player.getDetails().getTutorialFlags().clear(); + player.getGuideManager().setGuidable(false); + + PlayerStatisticsDao.updateStatistic(player.getDetails().getId(), PlayerStatistic.IS_GUIDABLE, 0); + TutorialDao.updateTutorialFlags(player.getDetails().getId(), player.getDetails().getTutorialFlags()); + } else if (id == 1 && !player.getDetails().getTutorialFlags().contains(1)) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_GRADUATE, player); + + player.getDetails().getTutorialFlags().addAll(List.of(1, 2, 3, 4, 5, 6, 7, 8)); + + + player.getGuideManager().setTutorialFinished(true); + player.getGuideManager().setGuidable(true); + } + }*/ + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_WAIT_FOR_TUTOR_INVITATIONS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_WAIT_FOR_TUTOR_INVITATIONS.java new file mode 100644 index 0000000..51baa3a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/MSG_WAIT_FOR_TUTOR_INVITATIONS.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.guides.GuideManager; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.guides.PlayerGuideManager; +import org.alexdev.havana.messages.outgoing.tutorial.ENABLE_TUTOR_SERVICE_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class MSG_WAIT_FOR_TUTOR_INVITATIONS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.getGuideManager().isGuide()) { + return; + } + + if (player.getGuideManager().isWaitingForInvitations()) { + return; + } + + if (GuideManager.getInstance().isDisabled()) { + player.send(new ENABLE_TUTOR_SERVICE_STATUS(ENABLE_TUTOR_SERVICE_STATUS.TutorEnableStatus.SERVICE_DISABLED)); + return; + } + + if (player.getMessenger().isFriendsLimitReached()) { + player.send(new ENABLE_TUTOR_SERVICE_STATUS(ENABLE_TUTOR_SERVICE_STATUS.TutorEnableStatus.FRIENDSLIST_FULL)); + return; + } + + if (player.getGuideManager().getGuiding().size() >= GuideManager.MAX_SIMULTANEOUS_GUIDING) { + player.send(new ENABLE_TUTOR_SERVICE_STATUS(ENABLE_TUTOR_SERVICE_STATUS.TutorEnableStatus.MAX_NEWBIES)); + return; + } + + + player.getGuideManager().setWaitingForInvitations(true); + //player.send(new INVITATION(player.getDetails())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/RESET_TUTORIAL.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/RESET_TUTORIAL.java new file mode 100644 index 0000000..d4367d5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/tutorial/RESET_TUTORIAL.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.incoming.tutorial; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class RESET_TUTORIAL implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.isLoggedIn()) { + return; + } + + if (player.getGuideManager().isGuide()) { + player.send(new ALERT("You cannot restart the tutorial while as a guide.")); + return; + } + + player.getStatisticManager().setLongValue(PlayerStatistic.HAS_TUTORIAL, 1); + + if (!player.getBadgeManager().hasBadge("ACH_Student1")) { + player.getStatisticManager().setLongValue(PlayerStatistic.IS_GUIDABLE, 1); + } + + player.send(new ALERT("You may now do the tutorial again, please relog for it to take effect.")); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_CREDITS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_CREDITS.java new file mode 100644 index 0000000..cccf2cf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_CREDITS.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.currencies.ActivityPointNotification; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_CREDITS implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new CREDIT_BALANCE(player.getDetails().getCredits())); + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.NO_SOUND)); + + /*if (DateUtil.getCurrentTimeSeconds() > (player.getDetails().getLastPixelsTime() + TimeUnit.MINUTES.toSeconds(15))) { + player.getDetails().setLastPixelsTime(DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(15)); + + CurrencyDao.increasePixels(player.getDetails(), 15); + PlayerDao.saveLastPixelHandout(player.getDetails()); + + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.PIXELS_RECEIVED)); + } else { + player.send(new ActivityPointNotification(player.getDetails().getPixels(), ActivityPointNotification.ActivityPointAlertType.NO_SOUND)); + }*/ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_IGNORE_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_IGNORE_LIST.java new file mode 100644 index 0000000..f667349 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_IGNORE_LIST.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.dao.mysql.UsersMutesDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.user.IGNORED_LIST; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.List; + +public class GET_IGNORE_LIST implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (player.getIgnoredList().size() > 0) { + return; + } + + List ignoreList = UsersMutesDao.getMutedUsers(player.getDetails().getId()); + + for (int userId : ignoreList) { + var playerData = PlayerManager.getInstance().getPlayerData(userId); + + if (playerData == null) { + continue; + } + + player.getIgnoredList().add(PlayerManager.getInstance().getPlayerData(userId).getName()); + } + + player.send(new IGNORED_LIST(player.getIgnoredList())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_INFO.java new file mode 100644 index 0000000..c7ef994 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_INFO.java @@ -0,0 +1,18 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.USER_OBJECT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_INFO implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.isLoggedIn()) { + return; + } + + player.send(new USER_OBJECT(player.getDetails())); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_POSSIBLE_ACHIEVEMENTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_POSSIBLE_ACHIEVEMENTS.java new file mode 100644 index 0000000..746ee2b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/GET_POSSIBLE_ACHIEVEMENTS.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.POSSIBLE_ACHIEVEMENTS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +import java.util.ArrayList; + +public class GET_POSSIBLE_ACHIEVEMENTS implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + var possibleAchievements = new ArrayList<>(player.getAchievementManager().getPossibleAchievements()); + + if (!player.getGuideManager().isGuide()) { + possibleAchievements.removeIf(ach -> ach.getName().equals("GL")); + } + + player.send(new POSSIBLE_ACHIEVEMENTS(possibleAchievements)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/IGNORE_USER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/IGNORE_USER.java new file mode 100644 index 0000000..8491f12 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/IGNORE_USER.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.UsersMutesDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.IGNORE_USER_RESULT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class IGNORE_USER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String username = reader.readString(); + + if (player.getIgnoredList().contains(username)) { + return; + } + + int userId = PlayerDao.getId(username); + UsersMutesDao.addMuted(player.getDetails().getId(), userId); + + player.getIgnoredList().add(username); + player.send(new IGNORE_USER_RESULT(1)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/UNIGNORE_USER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/UNIGNORE_USER.java new file mode 100644 index 0000000..2aa9377 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/UNIGNORE_USER.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.incoming.user; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.UsersMutesDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.IGNORE_USER_RESULT; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class UNIGNORE_USER implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + String username = reader.readString(); + + if (!player.getIgnoredList().contains(username)) { + return; + } + + int userId = PlayerDao.getId(username); + UsersMutesDao.removeMuted(player.getDetails().getId(), userId); + + player.getIgnoredList().remove(username); + player.send(new IGNORE_USER_RESULT(3)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETAVAILABLEBADGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETAVAILABLEBADGES.java new file mode 100644 index 0000000..aab4be7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETAVAILABLEBADGES.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.incoming.user.badges; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.guides.INIT_TUTOR_SERVICE_STATUS; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETAVAILABLEBADGES implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!player.isLoggedIn()) { + return; + } + + if (player.isProcessLoginSteps()) { + player.getBadgeManager().refreshBadges(); + player.getAchievementManager().processAchievements(player, true); + player.setProcessLoginSteps(false); + } + + if (player.getGuideManager().isGuide()) { + player.send(new INIT_TUTOR_SERVICE_STATUS(1)); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETSELECTEDBADGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETSELECTEDBADGES.java new file mode 100644 index 0000000..bc3ec03 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/GETSELECTEDBADGES.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.incoming.user.badges; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.outgoing.user.badges.USERBADGE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GETSELECTEDBADGES implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (reader.contents().isEmpty()) { + return; + } + + if (player.getRoomUser().getRoom() == null) { + return; + } + + //if (player.getRoomUser().getLastBadgeRequest() > DateUtil.getCurrentTimeSeconds()) { + // return; + //} + + int userId = reader.readInt(); + + Player badgePlayer = PlayerManager.getInstance().getPlayerById(userId); + + if (badgePlayer == null) { + return; + } + + player.send(new USERBADGE(userId, badgePlayer.getBadgeManager().getEquippedBadges())); + //player.getRoomUser().setLastBadgeRequest(DateUtil.getCurrentTimeSeconds() + 5); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/SETBADGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/SETBADGE.java new file mode 100644 index 0000000..26fdf88 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/badges/SETBADGE.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.incoming.user.badges; + +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.badges.USERBADGE; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class SETBADGE implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + // Unequip all previous badges + for (Badge badge : player.getBadgeManager().getBadges()) { + player.getBadgeManager().changeBadge(badge.getBadgeCode(), false, 0); + } + + // Equip new badges + while (reader.contents().length() > 0) { + int slotId = reader.readInt(); + String badgeCode = reader.readString(); + + if (slotId > 0 && slotId < 6 && badgeCode.length() > 0) { + player.getBadgeManager().changeBadge(badgeCode, true, slotId); + } + } + + // Notify users of badge updates + if (player.getRoomUser().getRoom() != null) { + player.getRoomUser().getRoom().send(new USERBADGE(player.getDetails().getId(), player.getBadgeManager().getEquippedBadges())); + } + + player.getBadgeManager().refreshBadges(); + player.getBadgeManager().saveQueuedBadges(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/PONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/PONG.java new file mode 100644 index 0000000..d0edd5d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/PONG.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.messages.incoming.user.latency; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class PONG implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + // Nice pong :^) + player.setPingOK(true); + + if (!player.isLoggedIn()) { + return; + } + + player.getAchievementManager().processAchievements(player, false); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/TEST_LATENCY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/TEST_LATENCY.java new file mode 100644 index 0000000..aa54e26 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/latency/TEST_LATENCY.java @@ -0,0 +1,14 @@ +package org.alexdev.havana.messages.incoming.user.latency; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.LATENCY; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class TEST_LATENCY implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + int latency = reader.readInt(); + player.send(new LATENCY(latency)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/settings/GET_ACCOUNT_PREFERENCES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/settings/GET_ACCOUNT_PREFERENCES.java new file mode 100644 index 0000000..9db0df2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/user/settings/GET_ACCOUNT_PREFERENCES.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.incoming.user.settings; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.settings.ACCOUNT_PREFERENCES; +import org.alexdev.havana.messages.outgoing.user.settings.HELP_ITEMS; +import org.alexdev.havana.messages.outgoing.user.settings.SOUND_SETTING; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class GET_ACCOUNT_PREFERENCES implements MessageEvent { + + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + player.send(new SOUND_SETTING(player.getDetails())); + //player.send(new HELP_ITEMS()); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/wobblesquabble/PTM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/wobblesquabble/PTM.java new file mode 100644 index 0000000..98fca3a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/incoming/wobblesquabble/PTM.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.incoming.wobblesquabble; + +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleManager; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleMove; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabblePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageEvent; +import org.alexdev.havana.server.netty.streams.NettyRequest; + +public class PTM implements MessageEvent { + @Override + public void handle(Player player, NettyRequest reader) throws Exception { + if (!WobbleSquabbleManager.getInstance().isPlaying(player)) { + return; + } + + int moveId = reader.readInt(); + + if (moveId < 0 || moveId > 8) { + return; + } + + WobbleSquabblePlayer wsPlayer = WobbleSquabbleManager.getInstance().getPlayer(player); + + if (wsPlayer == null || WobbleSquabbleMove.getMove(moveId) == null) { + return; + } + + wsPlayer.setMove(WobbleSquabbleMove.getMove(moveId)); + wsPlayer.setRequiresUpdate(true); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/ALERT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/ALERT.java new file mode 100644 index 0000000..77265dc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/ALERT.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.alerts; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ALERT extends MessageComposer { + private String message; + + public ALERT(String message) { + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.message); + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public short getHeader() { + return 139; // "BK" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/HOTEL_LOGOUT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/HOTEL_LOGOUT.java new file mode 100644 index 0000000..99762bb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/HOTEL_LOGOUT.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.messages.outgoing.alerts; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class HOTEL_LOGOUT extends MessageComposer { + public enum LogoutReason { + DISCONNECT(-1), + LOGGED_OUT(1), + LOGOUT_CONCURRENT(2), + LOGOUT_TIMEOUT(3); + + private final int msgId; + + LogoutReason(int msgId) { + this.msgId = msgId; + } + + public int getMsgId() { + return msgId; + } + } + private LogoutReason reason; + + public HOTEL_LOGOUT(LogoutReason reason) { + this.reason = reason; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(reason.getMsgId()); + } + + @Override + public short getHeader() { + return 287; // "D_" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/LOCALISED_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/LOCALISED_ERROR.java new file mode 100644 index 0000000..110420a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/LOCALISED_ERROR.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.alerts; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class LOCALISED_ERROR extends MessageComposer { + private final String externalTextEntry; + private final int errorCode; + + public LOCALISED_ERROR(String externalTextEntry) { + this.externalTextEntry = externalTextEntry; + this.errorCode = -1; + } + + public LOCALISED_ERROR(int errorCode) { + this.externalTextEntry = null; + this.errorCode = errorCode; + } + + @Override + public void compose(NettyResponse response) { + if (this.externalTextEntry != null) { + response.write(this.externalTextEntry); + } else { + response.writeInt(this.errorCode); + } + } + + @Override + public short getHeader() { + return 33; // "@a" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/NO_USER_FOUND.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/NO_USER_FOUND.java new file mode 100644 index 0000000..cb7175c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/alerts/NO_USER_FOUND.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.alerts; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NO_USER_FOUND extends MessageComposer { + private final String username; + + public NO_USER_FOUND(String username) { + this.username = username; + } + + @Override + public void compose(NettyResponse response) { + response.write(this.username); + } + + @Override + public short getHeader() { + return 76; // "AL" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/ALIAS_TOGGLE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/ALIAS_TOGGLE.java new file mode 100644 index 0000000..eded422 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/ALIAS_TOGGLE.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ALIAS_TOGGLE extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeBool(false); + } + + @Override + public short getHeader() { + return 297; // "Di" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGE.java new file mode 100644 index 0000000..453764a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGE.java @@ -0,0 +1,90 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.CataloguePackage; +import org.alexdev.havana.game.catalogue.CataloguePage; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.ArrayList; +import java.util.List; + +public class CATALOGUE_PAGE extends PlayerMessageComposer { + private final CataloguePage page; + private final List catalogueItems; + private final List images; + private final List texts; + + public CATALOGUE_PAGE(CataloguePage cataloguePage, List cataloguePageItems) { + this.page = cataloguePage; + this.catalogueItems = cataloguePageItems; + this.images = cataloguePage.getImages(); + this.texts = cataloguePage.getTexts(); + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.page.getId()); + response.writeString(this.page.getLayout()); + response.writeInt(this.images.size()); + + for (String image : this.images) { + response.writeString(image); + } + + response.writeInt(this.texts.size()); + + for (String text : this.texts) { + response.writeString(text); + } + + response.writeInt(this.catalogueItems.size()); + + for (CatalogueItem catalogueItem : this.catalogueItems) { + response.writeInt(catalogueItem.getId()); + + if (!catalogueItem.isPackage() && + (catalogueItem.getDefinition().getSprite().equals("poster") || + catalogueItem.getDefinition().getSprite().equals("landscape") || + catalogueItem.getDefinition().getSprite().equals("wallpaper") || + catalogueItem.getDefinition().getSprite().equals("floor"))) { + response.writeString(catalogueItem.getDefinition().getSprite() + " " + catalogueItem.getItemSpecialId()); + } else { + response.writeString(catalogueItem.getSaleCode()); + } + + response.writeInt(catalogueItem.getPriceCoins()); + response.writeInt(catalogueItem.getPricePixels()); + + response.writeInt(catalogueItem.getPackages().size()); + + for (CataloguePackage packageItem : catalogueItem.getPackages()) { + if (packageItem.getDefinition().hasBehaviour(ItemBehaviour.EFFECT)) { + response.writeString("e"); + } else if (packageItem.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeString("i"); + } else { + response.writeString("s"); + } + + if (packageItem.getDefinition().hasBehaviour(ItemBehaviour.EFFECT)) { + response.writeInt(Integer.parseInt(packageItem.getSpecialSpriteId())); + } else { + response.writeInt(packageItem.getDefinition().getSpriteId()); + } + + response.writeString(packageItem.getSpecialSpriteId()); + response.writeInt(packageItem.getAmount()); + response.writeInt(packageItem.getDefinition().getRentalTimeAsMinutes()); + + } + } + + } + + @Override + public short getHeader() { + return 127; // "A" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGES.java new file mode 100644 index 0000000..44a5a4d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/CATALOGUE_PAGES.java @@ -0,0 +1,61 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.CataloguePage; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class CATALOGUE_PAGES extends MessageComposer { + private final int rank; + private final boolean hasClub; + private final List parentTabs; + + public CATALOGUE_PAGES(int rank, boolean hasClub, List parentTabs) { + this.rank = rank; + this.hasClub = hasClub; + this.parentTabs = parentTabs; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(0); // Navigatable + response.writeInt(0); // Colour + response.writeInt(0); // Icon + response.writeInt(-1); // Page id + response.writeString(""); + response.writeInt(0); + + response.writeInt(this.parentTabs.size()); + + for (CataloguePage childTab : this.parentTabs) { + appendIndexNode(childTab, response); + recursiveIndexNode(childTab, response); + } + } + + public void appendIndexNode(CataloguePage cataloguePage, NettyResponse response) { + response.writeBool(true); // Navigatable + response.writeInt(cataloguePage.getColour()); // Colour + response.writeInt(cataloguePage.getIcon()); // Icon + response.writeInt(cataloguePage.getId()); // Page id + response.writeString(cataloguePage.getName()); + response.writeInt(0); + } + + private void recursiveIndexNode(CataloguePage parentTab, NettyResponse response) { + List childTabs = CatalogueManager.getInstance().getChildPages(parentTab.getId(), this.rank, this.hasClub); + response.writeInt(childTabs.size()); + + for (CataloguePage childTab : childTabs) { + appendIndexNode(childTab, response); + recursiveIndexNode(childTab, response); + } + } + + @Override + public short getHeader() { + return 126; // "A~" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/DELIVER_PRESENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/DELIVER_PRESENT.java new file mode 100644 index 0000000..35bc182 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/DELIVER_PRESENT.java @@ -0,0 +1,48 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class DELIVER_PRESENT extends MessageComposer { + private final Item present; + + public DELIVER_PRESENT(Item present) { + this.present = present; + } + + @Override + public void compose(NettyResponse response) { + if (this.present.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeString("i"); + } else { + response.writeString("s"); + } + + response.writeInt(this.present.getDefinition().getSpriteId()); + + if (this.present.getDefinition().getSprite().equals("poster")) { + response.writeString(this.present.getDefinition().getSprite() + " " + this.present.getCustomData()); + } else { + response.writeString(this.present.getDefinition().getSprite()); + } + /*response.write(this.present.getDefinition().getSprite(), (char)13); + response.write(this.present.getDefinition().getSprite()); + + if (this.present.getDefinition().hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.write(" "); + response.writeString(this.present.getDefinition().getColour()); + } else { + response.write((char)13); + response.write(this.present.getDefinition().getLength(), (char)30); + response.write(this.present.getDefinition().getWidth(), (char)30); + response.write(this.present.getDefinition().getColour()); + }*/ + } + + @Override + public short getHeader() { + return 129; // "BA" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/NO_CREDITS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/NO_CREDITS.java new file mode 100644 index 0000000..cca9c0f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/NO_CREDITS.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NO_CREDITS extends MessageComposer { + private boolean notEnoughCredits; + private boolean notEnoughPixels; + + public NO_CREDITS(boolean notEnoughCredits, boolean notEnoughPixels) { + this.notEnoughCredits = notEnoughCredits; + this.notEnoughPixels = notEnoughPixels; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.notEnoughCredits); + response.writeBool(this.notEnoughPixels); + } + + @Override + public short getHeader() { + return 68; // "AD" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/SPRITE_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/SPRITE_LIST.java new file mode 100644 index 0000000..2ee6eb9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/catalogue/SPRITE_LIST.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.catalogue; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SPRITE_LIST extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + } + + @Override + public short getHeader() { + return 295; // "Dg" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_GIFT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_GIFT.java new file mode 100644 index 0000000..039a2ce --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_GIFT.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.club; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CLUB_GIFT extends MessageComposer { + private final int giftCount; + + public CLUB_GIFT(int giftCount) { + this.giftCount = giftCount; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.giftCount); + } + + @Override + public short getHeader() { + return 280; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_INFO.java new file mode 100644 index 0000000..ee024d5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/club/CLUB_INFO.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.club; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CLUB_INFO extends MessageComposer { + private final int remainingDaysThisMonth; + private final int sinceMonths; + private final int prepaidMonths; + + public CLUB_INFO(int remaining_days_for_this_month, int since_months, int prepaid_months) { + this.remainingDaysThisMonth = remaining_days_for_this_month; + this.sinceMonths = since_months; + this.prepaidMonths = prepaid_months; + } + + @Override + public void compose(NettyResponse response) { + response.writeString("club_habbo"); + response.writeInt(this.remainingDaysThisMonth); + response.writeInt(this.sinceMonths); + response.writeInt(this.prepaidMonths); + response.writeInt(1); // When set to 2, the Habbo club dialogue opens. + } + + @Override + public short getHeader() { + return 7; // "@G" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_PRIZES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_PRIZES.java new file mode 100644 index 0000000..c8d7ecd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_PRIZES.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.outgoing.ecotron; + +import org.alexdev.havana.game.ecotron.EcotronManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class RECYCLER_PRIZES extends MessageComposer { + @Override + public void compose(NettyResponse response) { + EcotronManager.getInstance().appendRewards(response); + } + + @Override + public short getHeader() { + return 506; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_STATUS.java new file mode 100644 index 0000000..fb9ecfd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/ecotron/RECYCLER_STATUS.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.ecotron; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class RECYCLER_STATUS extends MessageComposer { + private final int status; + + public RECYCLER_STATUS(int status) { + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.status); + } + + @Override + public short getHeader() { + return 507; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECTS.java new file mode 100644 index 0000000..0054375 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECTS.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class AVATAR_EFFECTS extends PlayerMessageComposer { + private final List effects; + + public AVATAR_EFFECTS(List effects) { + this.effects = effects; + } + + /* + + public function _SafeStr_2762(_arg_1:_SafeStr_610):Boolean + { + var _local_4:_SafeStr_85; + _SafeStr_6493 = new Array(); + var _local_2:int = _arg_1.ReadInteger(); + var _local_3:int; + while (_local_3 < _local_2) { + _local_4 = new _SafeStr_85(); + _local_4.type = _arg_1.ReadInteger(); + _local_4.duration = _arg_1.ReadInteger(); + _local_4._SafeStr_3430 = _arg_1.ReadInteger(); + _local_4._SafeStr_3431 = _arg_1.ReadInteger(); + _SafeStr_6493.push(_local_4); + _local_3++; + }; + return (true); + } + + */ + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.effects.size()); + + for (Effect effect : this.effects) { + response.writeInt(effect.getEffectId()); + response.writeInt(effect.getTimeDuration()); + response.writeInt((int) this.effects.stream().filter(e -> e.getEffectId() == effect.getEffectId()).count()); + response.writeInt(effect.isActivated() ? effect.getTimeLeft() : -1); + } + } + + @Override + public short getHeader() { + return 460; // "GL" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ACTIVATED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ACTIVATED.java new file mode 100644 index 0000000..01ee353 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ACTIVATED.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class AVATAR_EFFECT_ACTIVATED extends MessageComposer { + private final Effect effect; + + public AVATAR_EFFECT_ACTIVATED(Effect effect) { + this.effect = effect; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.effect.getEffectId()); + response.writeInt(this.effect.getTimeLeft()); + } + + @Override + public short getHeader() { + return 462; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ADDED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ADDED.java new file mode 100644 index 0000000..850f050 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_ADDED.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class AVATAR_EFFECT_ADDED extends MessageComposer { + private final Effect effect; + + public AVATAR_EFFECT_ADDED(Effect effect) { + this.effect = effect; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.effect.getEffectId()); + response.writeInt(this.effect.getTimeLeft()); + } + + @Override + public short getHeader() { + return 461; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_EXPIRED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_EXPIRED.java new file mode 100644 index 0000000..19e0b12 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_EFFECT_EXPIRED.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class AVATAR_EFFECT_EXPIRED extends MessageComposer { + private final int effectId; + + public AVATAR_EFFECT_EXPIRED(int effectId) { + this.effectId = effectId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.effectId); + } + + @Override + public short getHeader() { + return 463; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_SELECTED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_SELECTED.java new file mode 100644 index 0000000..031b0fe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/AVATAR_SELECTED.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.game.effects.Effect; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class AVATAR_SELECTED extends MessageComposer { + private final Effect activatedEffect; + + public AVATAR_SELECTED(Effect activatedEffect) { + this.activatedEffect = activatedEffect; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.activatedEffect.getEffectId()); + } + + @Override + public short getHeader() { + return 464; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/USER_AVATAR_EFFECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/USER_AVATAR_EFFECT.java new file mode 100644 index 0000000..680e190 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/effects/USER_AVATAR_EFFECT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.effects; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_AVATAR_EFFECT extends MessageComposer { + private final int instanceId; + private final int effectId; + + public USER_AVATAR_EFFECT(int instanceId, int effectId) { + this.instanceId = instanceId; + this.effectId = effectId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeInt(this.effectId); + } + + @Override + public short getHeader() { + return 485; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEEVENT_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEEVENT_INFO.java new file mode 100644 index 0000000..09171b2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEEVENT_INFO.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.events; + +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOMEEVENT_INFO extends PlayerMessageComposer { + private final Event event; + + public ROOMEEVENT_INFO(Event event) { + this.event = event; + } + + @Override + public void compose(NettyResponse response) { + if (this.event == null) { + response.writeString(-1); + } else { + response.writeString(this.event.getEventHoster().getId()); + response.writeString(this.event.getEventHoster().getName()); + response.writeString(this.event.getRoomId()); + response.writeInt(this.event.getCategoryId()); + response.writeString(this.event.getName()); + response.writeString(this.event.getDescription()); + response.writeString(this.event.getStartedDate()); + } + } + + @Override + public short getHeader() { + return 370; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_LIST.java new file mode 100644 index 0000000..7879c70 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_LIST.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.messages.outgoing.events; + +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class ROOMEVENT_LIST extends MessageComposer { + private final List events; + private final int typeId; + + public ROOMEVENT_LIST(int typeId, List events) { + this.typeId = typeId; + this.events = events; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.typeId); + response.writeInt(this.events.size()); + + for (Event event : this.events) { + response.writeString(event.getRoomId()); + response.writeString(event.getEventHoster().getName()); + response.writeString(event.getName()); + response.writeString(event.getDescription()); + response.writeString(event.getStartedDate()); + } + } + + @Override + public short getHeader() { + return 369; // "Eq" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_PERMISSION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_PERMISSION.java new file mode 100644 index 0000000..455c9a2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_PERMISSION.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.events; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOMEVENT_PERMISSION extends MessageComposer { + private final boolean canCreateEvent; + + public ROOMEVENT_PERMISSION(boolean canCreateEvent) { + this.canCreateEvent = canCreateEvent; + } + + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.canCreateEvent); + } + + @Override + public short getHeader() { + return 367; // "Eo" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_TYPES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_TYPES.java new file mode 100644 index 0000000..85ca6ae --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/events/ROOMEVENT_TYPES.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.events; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOMEVENT_TYPES extends MessageComposer { + private final int count; + + public ROOMEVENT_TYPES(int count) { + this.count = count; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.count); + } + + @Override + public short getHeader() { + return 368; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/CREATEFAILED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/CREATEFAILED.java new file mode 100644 index 0000000..74d9915 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/CREATEFAILED.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CREATEFAILED extends MessageComposer { + public enum FailedReason { + KICKED(6), + TICKETS_NEEDED(2); + + private final int reasonId; + + FailedReason(int reasonId) { + this.reasonId = reasonId; + } + + public int getReasonId() { + return reasonId; + } + } + + private final FailedReason failedReason; + + public CREATEFAILED(FailedReason failedReason) { + this.failedReason = failedReason; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.failedReason.getReasonId()); + } + + @Override + public short getHeader() { + return 236; // "Cl" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/FULLGAMESTATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/FULLGAMESTATUS.java new file mode 100644 index 0000000..43dde5c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/FULLGAMESTATUS.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FULLGAMESTATUS extends MessageComposer { + private final Game game; + + public FULLGAMESTATUS(Game game) { + this.game = game; + } + + @Override + public void compose(NettyResponse response) { + if (this.game.getGameType() == GameType.BATTLEBALL) { + response.writeInt(GameState.STARTED.getStateId()); + response.writeInt(this.game.getPreparingGameSecondsLeft().get()); + response.writeInt(GameManager.getInstance().getPreparingSeconds(game.getGameType())); + response.writeInt(this.game.getObjects().size()); // TODO: Objects here + + if (this.game.getGameType() == GameType.BATTLEBALL) { + for (var gameObject : this.game.getObjects()) { + response.writeInt(gameObject.getGameObjectType().getObjectId()); // type, 0 = player + gameObject.serialiseObject(response); + } + + response.writeInt(this.game.getRoomModel().getMapSizeY()); + response.writeInt(this.game.getRoomModel().getMapSizeX()); + + for (int y = 0; y < this.game.getRoomModel().getMapSizeY(); y++) { + for (int x = 0; x < this.game.getRoomModel().getMapSizeX(); x++) { + BattleBallTile tile = (BattleBallTile) this.game.getTile(x, y); + + if (tile == null) { + response.writeInt(-1); + response.writeInt(0); + } else { + response.writeInt(tile.getColour().getColourId()); + response.writeInt(tile.getState().getTileStateId()); + } + } + } + + response.writeInt(1); + response.writeInt(0); // TODO: Show events on game load + } + } + else { + var objects = this.game.getObjects(); + var turns = ((SnowStormGame)this.game).getUpdateTask().getExecutingTurns(); + + response.writeInt(this.game.getGameState().getStateId()); + response.writeInt(this.game.getPreparingGameSecondsLeft().get()); + response.writeInt(GameManager.getInstance().getPreparingSeconds(game.getGameType())); + response.writeInt(this.game.getObjects().size()); // TODO: Objects here + + for (var obj : objects) { + obj.serialiseObject(response); + } + + response.writeBool(false); + response.writeInt(this.game.getTeamAmount()); + + new SNOWSTORM_GAMESTATUS(turns).compose(response); + } + } + + @Override + public short getHeader() { + return 243; // "Cs" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEDELETED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEDELETED.java new file mode 100644 index 0000000..6b5bbf4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEDELETED.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GAMEDELETED extends MessageComposer { + private int gameId; + + public GAMEDELETED(int gameId) { + this.gameId = gameId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.gameId); + } + + @Override + public short getHeader() { + return 237; // "Cm" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEEND.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEEND.java new file mode 100644 index 0000000..081f9aa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEEND.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Map; + +public class GAMEEND extends MessageComposer { + private final GameType gameType; + private final Map teams; + + public GAMEEND(GameType game, Map teams) { + this.gameType = game; + this.teams = teams; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(GameManager.getInstance().getRestartSeconds(this.gameType)); + response.writeInt(this.teams.size()); + + for (GameTeam team : this.teams.values()) { + var players = team.getPlayers(); + response.writeInt(players.size()); + + if (players.size() > 0) { + for (GamePlayer gamePlayer : players) { + response.writeInt(gamePlayer.getObjectId()); + response.writeString(gamePlayer.getPlayer().getDetails().getName()); + response.writeInt(gamePlayer.getScore()); + } + + response.writeInt(team.getScore()); + } + } + } + + @Override + public short getHeader() { + return 248; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEINSTANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEINSTANCE.java new file mode 100644 index 0000000..4a988f4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEINSTANCE.java @@ -0,0 +1,162 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.history.GameHistoryPlayer; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.battleball.BattleBallGame; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class GAMEINSTANCE extends MessageComposer { + private Game game; + private GameHistory finishedGame; + + public GAMEINSTANCE(Game game) { + this.game = game; + } + + public GAMEINSTANCE(GameHistory game) { + this.finishedGame = game; + } + + @Override + public void compose(NettyResponse response) { + if (this.finishedGame == null) { + response.writeInt(this.game.getGameState().getStateId()); + + if (this.game.getGameState() == GameState.WAITING) { + response.writeInt(this.game.getId()); + response.writeString(this.game.getName()); + + // Host + response.writeInt(this.game.getGameCreatorId()); + response.writeString(this.game.getGameCreator()); + + if (this.game.getGameType() == GameType.SNOWSTORM) { + SnowStormGame snowStormGame = (SnowStormGame) this.game; + response.writeInt(snowStormGame.getGameLengthChoice()); + } + + response.writeInt(this.game.getMapId()); + response.writeInt(this.game.getSpectators().size()); + response.writeInt(this.game.getTeamAmount()); + + for (int i = 0; i < this.game.getTeamAmount(); i++) { + List playerList = this.game.getTeams().get(i).getPlayers(); + + response.writeInt(playerList.size()); + + for (GamePlayer player : playerList) { + response.writeInt(player.getPlayer().getRoomUser().getInstanceId()); + response.writeString(player.getPlayer().getDetails().getName()); + } + } + + if (this.game.getGameType() == GameType.BATTLEBALL) { + BattleBallGame battleballGame = (BattleBallGame) this.game; + List allowedPowerUps = battleballGame.getAllowedPowerUps(); + + String[] powerUps = new String[allowedPowerUps.size()]; + + for (int i = 0; i < allowedPowerUps.size(); i++) { + powerUps[i] = String.valueOf(allowedPowerUps.get(i)); + } + + response.writeString(String.join(",", powerUps)); + } + } + + if (this.game.getGameState() == GameState.STARTED) { + response.writeInt(this.game.getId()); + response.writeString(this.game.getName()); + response.writeString(this.game.getGameCreator()); + + if (this.game.getGameType() == GameType.SNOWSTORM) { + SnowStormGame snowStormGame = (SnowStormGame) this.game; + response.writeInt(snowStormGame.getGameLengthChoice()); + } + + response.writeInt(this.game.getMapId()); + response.writeInt(this.game.getTeamAmount()); + + for (int i = 0; i < this.game.getTeamAmount(); i++) { + List playerList = this.game.getTeams().get(i).getActivePlayers(); + + response.writeInt(playerList.size()); + + for (GamePlayer player : playerList) { + //response.writeInt(player.getPlayer().getRoomUser().getInstanceId()); + response.writeString(player.getPlayer().getDetails().getName()); + } + } + + // TODO: Special SnowStorm parameters + + if (this.game.getGameType() == GameType.BATTLEBALL) { + BattleBallGame battleballGame = (BattleBallGame) this.game; + List allowedPowerUps = battleballGame.getAllowedPowerUps(); + + String[] powerUps = new String[allowedPowerUps.size()]; + + for (int i = 0; i < allowedPowerUps.size(); i++) { + powerUps[i] = String.valueOf(allowedPowerUps.get(i)); + } + + response.writeString(String.join(",", powerUps)); + } + + } + } else { + response.writeInt(GameState.ENDED.getStateId()); + response.writeInt(this.finishedGame.getId()); + response.writeString(this.finishedGame.getName()); + response.writeString(this.finishedGame.getGameCreator()); + + if (this.finishedGame.getGameType() == GameType.SNOWSTORM) { + response.writeInt(Integer.valueOf(this.finishedGame.getExtraData())); + } + + var teamData = this.finishedGame.getHistoryData().getTeamData(); + + response.writeInt(this.finishedGame.getMapId()); + response.writeInt(teamData.size()); + + for (int i = 0; i < teamData.size(); i++) { + var players = teamData.get(i); + var teamScore = players.stream().mapToInt(GameHistoryPlayer::getScore).sum(); + + response.writeInt(players.size()); + + for (var kvp : players) { + response.writeString(kvp.getName()); + response.writeInt(kvp.getScore()); + } + + response.writeInt(teamScore); + } + + if (this.finishedGame.getGameType() == GameType.BATTLEBALL) { + List allowedPowerUps = this.finishedGame.getAllowedPowerUps(); + + String[] powerUps = new String[allowedPowerUps.size()]; + + for (int i = 0; i < allowedPowerUps.size(); i++) { + powerUps[i] = String.valueOf(allowedPowerUps.get(i)); + } + + response.writeString(String.join(",", powerUps)); + } + } + } + + @Override + public short getHeader() { + return 233; // "Ci" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMELOCATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMELOCATION.java new file mode 100644 index 0000000..f5e8088 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMELOCATION.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GAMELOCATION extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeInt(-1); + } + + @Override + public short getHeader() { + return 241; // "Cq" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPARAMETERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPARAMETERS.java new file mode 100644 index 0000000..a7f3702 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPARAMETERS.java @@ -0,0 +1,93 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.GameParameter; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GAMEPARAMETERS extends MessageComposer { + private GameParameter[] parameters; + + public GAMEPARAMETERS(GameParameter[] gameParameters) { + this.parameters = gameParameters; + + /* + + For snowstorm: + + on setNumberOfTeams(me, tValue) + tOldElem = "gs_radio_" & pGameParameters.getAt("numTeams") & "teams" + tNewElem = "gs_radio_" & tValue & "teams" + pGameParameters.setAt("numTeams", tValue) + pRenderObj.updateRadioButton("", [tOldElem]) + pRenderObj.updateRadioButton(tNewElem, []) + return(1) + exit + end + + on setGameLength(me, tValue) + tOldElem = "gs_radio_gamelength_" & pGameParameters.getAt("gameLengthChoice") + tNewElem = "gs_radio_gamelength_" & tValue + pGameParameters.setAt("gameLengthChoice", tValue) + pRenderObj.updateRadioButton("", [tOldElem]) + pRenderObj.updateRadioButton(tNewElem, []) + return(1) + exit + end + + on setFieldType(me, tValue) + pGameParameters.setAt("fieldType", integer(tValue)) + tWndObj = getWindow(pMainWindowId) + tDropDown = tWndObj.getElement("gs_dropmenu_gamefield") + if not ilk(tDropDown, #instance) then + return(error(me, "Unable to retrieve dropdown:" && tDropDown, #setFieldType)) + end if + tFieldTxtItems = [] + tFieldKeyItems = [] + i = 1 + repeat while i <= 7 + tFieldTxtItems.setAt(i, getText("sw_fieldname_" & i)) + tFieldKeyItems.setAt(i, string(i)) + i = 1 + i + end repeat + tDropDown.updateData(tFieldTxtItems, tFieldKeyItems, void(), tValue) + return(1) + exit +end + + */ + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.parameters.length); + + for (GameParameter parameter : this.parameters) { + response.writeString(parameter.getName()); + response.writeBool(!parameter.hasMinMax()); + response.writeInt(parameter.isEditable() ? 2 : 0); + + if (parameter.hasMinMax()) { + response.writeInt(Integer.parseInt(parameter.getDefaultValue())); + + if (parameter.getMin() != -1) { + response.writeBool(true); + response.writeInt(parameter.getMin()); + } + + if (parameter.getMax() != -1) { + response.writeBool(true); + response.writeInt(parameter.getMax()); + } + + } else { + response.writeString(parameter.getDefaultValue()); + response.writeInt(0); + } + } + } + + @Override + public short getHeader() { + return 235; // "Ck" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPLAYERINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPLAYERINFO.java new file mode 100644 index 0000000..bac929d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMEPLAYERINFO.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.GameManager; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class GAMEPLAYERINFO extends MessageComposer { + private final List players; + private final GameType type; + + public GAMEPLAYERINFO(GameType type, List players) { + this.type = type; + this.players = players; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.players.size()); + + for (Player player : this.players) { + response.writeInt(player.getRoomUser().getInstanceId()); + + if (this.type == GameType.BATTLEBALL) { + response.writeString(player.getStatisticManager().getIntValue(PlayerStatistic.BATTLEBALL_POINTS_ALL_TIME)); + } + + if (this.type == GameType.SNOWSTORM) { + response.writeString(player.getStatisticManager().getIntValue(PlayerStatistic.SNOWSTORM_POINTS_ALL_TIME)); + } + + response.writeString(GameManager.getInstance().getRankByPoints(this.type, player).getTitle()); + } + } + + @Override + public short getHeader() { + return 250; // "Cz" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMERESET.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMERESET.java new file mode 100644 index 0000000..fdc3ad0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMERESET.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GamePlayer; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class GAMERESET extends MessageComposer { + private final Game game; + private int timeUntilGameStart; + private List gamePlayerList; + + public GAMERESET(int timeUntilGameStart, List gamePlayerList, Game game) { + this.timeUntilGameStart = timeUntilGameStart; + this.gamePlayerList = gamePlayerList; + this.game = game; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.timeUntilGameStart); + + if (this.game.getGameType() == GameType.BATTLEBALL) { + response.writeInt(this.gamePlayerList.size()); + + for (GamePlayer gamePlayer : this.gamePlayerList) { + response.writeInt(gamePlayer.getObjectId()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getX()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getY()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getRotation()); + } + } else { + response.writeInt(this.game.getObjects().size()); + + for (GameObject gamePlayer : this.game.getObjects()) { + // -- System.out.println("OBJECT: " +gamePlayer.getGameObjectType().name()); + gamePlayer.serialiseObject(response); + } + } + } + + @Override + public short getHeader() { + return 249; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTART.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTART.java new file mode 100644 index 0000000..01aed6f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTART.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GAMESTART extends MessageComposer { + private final int gameLengthSeconds; + + public GAMESTART(int gameLengthSeconds) { + this.gameLengthSeconds = gameLengthSeconds; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.gameLengthSeconds); + } + + @Override + public short getHeader() { + return 247; // "Cw" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTATUS.java new file mode 100644 index 0000000..686a87c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/GAMESTATUS.java @@ -0,0 +1,110 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.GameEvent; +import org.alexdev.havana.game.games.GameObject; +import org.alexdev.havana.game.games.battleball.BattleBallTile; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.player.GameTeam; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Collection; +import java.util.List; + +public class GAMESTATUS extends MessageComposer { + private final Game game; + + private final Collection gameTeams; + + private final List objects; + private final List events; + + private List updateTiles; + private List fillTiles; + + public GAMESTATUS(Game game, Collection gameTeams, List objects, List events, List updateTiles, List fillTiles) { + this.game = game; + this.gameTeams = gameTeams; + this.objects = objects; + this.events = events; + this.updateTiles = updateTiles; + this.fillTiles = fillTiles; + } + + public GAMESTATUS(SnowStormGame game, Collection gameTeams, List objects, List events) { + this.game = game; + this.gameTeams = gameTeams; + this.objects = objects; + this.events = events; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.objects.size()); // TODO: Handle more than just objects events (power ups, etc) + + for (GameObject gameObject : this.objects) { + response.writeInt(gameObject.getGameObjectType().getObjectId()); + gameObject.serialiseObject(response); + } + + /*for (GamePlayer gamePlayer : this.objects) { + response.writeInt(0); // type, 0 = player + response.writeInt(gamePlayer.getPlayer().getRoomUser().getInstanceId()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getX()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getY()); + response.writeInt((int) gamePlayer.getPlayer().getRoomUser().getPosition().getZ()); + response.writeInt(gamePlayer.getPlayer().getRoomUser().getPosition().getRotation()); + response.writeInt(0); + response.writeInt(-1); + }*/ + + if (this.game.getGameType() == GameType.BATTLEBALL) { + response.writeInt(this.updateTiles.size()); + + for (BattleBallTile tile : this.updateTiles) { + response.writeInt(tile.getPosition().getX()); + response.writeInt(tile.getPosition().getY()); + response.writeInt(tile.getColour().getColourId()); + response.writeInt(tile.getState().getTileStateId()); + } + + response.writeInt(this.fillTiles.size()); + + for (BattleBallTile tile : this.fillTiles) { + response.writeInt(tile.getPosition().getX()); + response.writeInt(tile.getPosition().getY()); + response.writeInt(tile.getColour().getColourId()); + response.writeInt(tile.getState().getTileStateId()); + } + } + + response.writeInt(this.gameTeams.size()); + + for (GameTeam team : this.gameTeams) { + response.writeInt(team.getScore()); + } + + response.writeInt(1); + response.writeInt(this.events.size()); + + for (GameEvent gameEvent : this.events) { + response.writeInt(gameEvent.getGameEventType().getEventId()); + gameEvent.serialiseEvent(response); + } + /*response.writeInt(this.movingPlayers.size()); + + for (var kvp : this.movingPlayers.entrySet()) { + response.writeInt(2); + response.writeInt(kvp.getKey().getPlayer().getRoomUser().getInstanceId()); + response.writeInt(kvp.getValue().getX()); + response.writeInt(kvp.getValue().getY()); + }*/ + } + + @Override + public short getHeader() { + return 244; // "Ct" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/INSTANCELIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/INSTANCELIST.java new file mode 100644 index 0000000..7dd3625 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/INSTANCELIST.java @@ -0,0 +1,78 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.havana.game.games.history.GameHistory; +import org.alexdev.havana.game.games.snowstorm.SnowStormGame; +import org.alexdev.havana.game.games.Game; +import org.alexdev.havana.game.games.enums.GameState; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.stream.Collectors; + +public class INSTANCELIST extends MessageComposer { + private final List createdGames; + private final List startedGames; + private final List finishedGames; + + public INSTANCELIST(List gamesByType, List finishedGames) { + this.createdGames = gamesByType.stream().filter(game -> game.getGameState() == GameState.WAITING).collect(Collectors.toList()); + this.startedGames = gamesByType.stream().filter(game -> game.getGameState() == GameState.STARTED).collect(Collectors.toList()); + this.finishedGames = finishedGames; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.createdGames.size()); + + for (Game game : this.createdGames) { + response.writeInt(game.getId()); + response.writeString(game.getName()); + + response.writeInt(game.getGameCreatorId()); + response.writeString(game.getGameCreator()); + + if (game.getGameType() == GameType.SNOWSTORM) { + SnowStormGame snowStormGame = (SnowStormGame) game; + response.writeInt(snowStormGame.getGameLength()); + } + + response.writeInt(game.getMapId()); + } + + response.writeInt(this.startedGames.size()); + + for (Game game : this.startedGames) { + response.writeInt(game.getId()); + response.writeString(game.getName()); + response.writeString(game.getGameCreator()); + + if (game.getGameType() == GameType.SNOWSTORM) { + SnowStormGame snowStormGame = (SnowStormGame) game; + response.writeInt(snowStormGame.getGameLength()); + } + + response.writeInt(game.getMapId()); + } + + response.writeInt(this.finishedGames.size()); + + for (GameHistory game : this.finishedGames) { + response.writeInt(game.getId()); + response.writeString(game.getName()); + response.writeString(game.getGameCreator()); + + if (game.getGameType() == GameType.SNOWSTORM) { + response.writeInt(game.getGameLength()); + } + + response.writeInt(game.getMapId()); + } + } + + @Override + public short getHeader() { + return 232; // "Ch" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/JOINFAILED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/JOINFAILED.java new file mode 100644 index 0000000..2c410e9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/JOINFAILED.java @@ -0,0 +1,43 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class JOINFAILED extends MessageComposer { + public enum FailedReason { + TICKETS_NEEDED(2), + TEAMS_FULL(0); + + private final int reasonId; + + FailedReason(int reasonId) { + this.reasonId = reasonId; + } + + public int getReasonId() { + return reasonId; + } + } + + private final FailedReason reason; + private final String key; + + public JOINFAILED(FailedReason reason, String key) { + this.reason = reason; + this.key = key; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.reason.getReasonId()); + + if (this.key != null) { + response.writeString(this.key); + } + } + + @Override + public short getHeader() { + return 239; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/LOUNGEINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/LOUNGEINFO.java new file mode 100644 index 0000000..16eb70e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/LOUNGEINFO.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class LOUNGEINFO extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + //response.writeString("Rank name"); // Rank name here + //response.writeInt(1); // Minimum points + //response.writeInt(1); // Maximum points + } + + @Override + public short getHeader() { + return 231; // "Cg" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/PLAYERREJOINED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/PLAYERREJOINED.java new file mode 100644 index 0000000..668bdf9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/PLAYERREJOINED.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PLAYERREJOINED extends MessageComposer { + private final int instanceId; + + public PLAYERREJOINED(int instanceId) { + this.instanceId = instanceId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + } + + @Override + public short getHeader() { + return 245; // "Cu" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/SNOWSTORM_GAMESTATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/SNOWSTORM_GAMESTATUS.java new file mode 100644 index 0000000..ee6bda6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/SNOWSTORM_GAMESTATUS.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.game.games.snowstorm.SnowStormTurn; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class SNOWSTORM_GAMESTATUS extends MessageComposer { + private final List turns; + + public SNOWSTORM_GAMESTATUS(List events) { + this.turns = events; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(1); + response.writeInt(1); + response.writeInt(this.turns.size() == 0 ? 1 : this.turns.size()); + + for (var turn : this.turns) { + response.writeInt(turn.getSubTurns().size()); + + for (var gameObject : turn.getSubTurns()) { + gameObject.serialiseObject(response); + } + } + } + + @Override + public short getHeader() { + return 244; // "Cs" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/STARTFAILED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/STARTFAILED.java new file mode 100644 index 0000000..67f9441 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/games/STARTFAILED.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.messages.outgoing.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class STARTFAILED extends MessageComposer { + public enum FailedReason { + MINIMUM_TEAMS_REQUIRED(8); + + private final int reasonId; + + FailedReason(int reasonId) { + this.reasonId = reasonId; + } + + public int getReasonId() { + return reasonId; + } + } + + private final FailedReason reason; + private final String key; + + public STARTFAILED(FailedReason reason, String key) { + this.reason = reason; + this.key = key; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.reason.getReasonId()); + + if (this.key != null) { + response.writeString(this.key); + } + } + + @Override + public short getHeader() { + return 242; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INIT_TUTOR_SERVICE_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INIT_TUTOR_SERVICE_STATUS.java new file mode 100644 index 0000000..63cd3d7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INIT_TUTOR_SERVICE_STATUS.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.guides; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INIT_TUTOR_SERVICE_STATUS extends MessageComposer { + private final int status; + + public INIT_TUTOR_SERVICE_STATUS(int status) { + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.status); + } + + @Override + public short getHeader() { + return 425; // "Fi" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INVITATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INVITATION.java new file mode 100644 index 0000000..5a7eed9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/guides/INVITATION.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.guides; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITATION extends MessageComposer { + private final Integer userId; + private final String username; + + public INVITATION(Integer userId, String username) { + this.userId = userId; + this.username = username; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.userId); + response.writeString(this.username); + } + + @Override + public short getHeader() { + return 355; // "Ec" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/CRYPTO_PARAMETERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/CRYPTO_PARAMETERS.java new file mode 100644 index 0000000..ce8273f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/CRYPTO_PARAMETERS.java @@ -0,0 +1,19 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.game.encryption.DiffieHellman; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CRYPTO_PARAMETERS extends MessageComposer { + + @Override + public void compose(NettyResponse response) { + response.writeString(DiffieHellman.generateRandomNumString(32)); + response.writeInt(0); + } + + @Override + public short getHeader() { + return 277; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/HELLO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/HELLO.java new file mode 100644 index 0000000..b923fe1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/HELLO.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class HELLO extends MessageComposer { + + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 0; // "@@" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/LOGIN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/LOGIN.java new file mode 100644 index 0000000..f3f0a3b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/LOGIN.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class LOGIN extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 3; // "@C" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/RIGHTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/RIGHTS.java new file mode 100644 index 0000000..43c63f3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/RIGHTS.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class RIGHTS extends MessageComposer { + private final List avaliableFuserights; + + public RIGHTS(List avaliableFuserights) { + this.avaliableFuserights = avaliableFuserights; + } + + @Override + public void compose(NettyResponse response) { + for (Fuseright fuseright : this.avaliableFuserights) { + response.writeString(fuseright.getFuseright()); + } + } + + @Override + public short getHeader() { + return 2; // "@B" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SECRET_KEY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SECRET_KEY.java new file mode 100644 index 0000000..890bede --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SECRET_KEY.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SECRET_KEY extends MessageComposer { + private final String key; + + public SECRET_KEY(String key) { + this.key = key; + } + + @Override + public void compose(NettyResponse response) { + response.write(this.key); + } + + @Override + public short getHeader() { + return 1; // "@A" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SESSION_PARAMETERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SESSION_PARAMETERS.java new file mode 100644 index 0000000..0252aa7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/SESSION_PARAMETERS.java @@ -0,0 +1,105 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.HashMap; +import java.util.Map; + +public class SESSION_PARAMETERS extends PlayerMessageComposer { + public enum SessionParamType { + // conf_coppa is enabled when value higher than 0, + // conf_strong_coppa_required is enabled when value is higher than 1 + REGISTER_COPPA(0), + + // conf_voucher. Determines if vouchers are enabled in the client (in-game) + VOUCHER_ENABLED(1), + + // conf_parent_email_request. I think this is to switch parent email on/off + REGISTER_REQUIRE_PARENT_EMAIL(2), + + // conf_parent_email_request_reregistration. ??? + REGISTER_SEND_PARENT_EMAIL(3), + + // conf_allow_direct_mail. ??? + ALLOW_DIRECT_MAIL(4), + + // Configures date formatting. Value is date string. + DATE_FORMAT(5), + + // conf_partner_integration. Value is either 1 or 0 (enabled or disabled) + PARTNER_INTEGRATION_ENABLED(6), + + // allow_profile_editing. Enables the client (in-game) profile editor + ALLOW_PROFILE_EDITING(7), + + // tracking_header. Value is unknown + TRACKING_HEADER(8), + + // tutorial_enabled. Value is either 1 or 0 (enabled or disabled) + TUTORIAL_ENABLED(9); + + private final int paramID; + + SessionParamType(int paramID) { + this.paramID = paramID; + } + + public int getParamID() { + return this.paramID; + } + } + + private PlayerDetails details; + + public SESSION_PARAMETERS(PlayerDetails details) { + this.details = details; + } + + @Override + public void compose(NettyResponse response) { + Map parameters = new HashMap<>(); + + parameters.put(SessionParamType.VOUCHER_ENABLED, GameConfiguration.getInstance().getBoolean("vouchers.enabled") ? "1" : "0"); // conf_voucher. Determines if vouchers are enabled in the client (in-game) + parameters.put(SessionParamType.REGISTER_REQUIRE_PARENT_EMAIL, "0"); // conf_parent_email_request. I think this is to switch parent email on/off + parameters.put(SessionParamType.REGISTER_SEND_PARENT_EMAIL, "0"); // conf_parent_email_request_reregistration. ??? + parameters.put(SessionParamType.ALLOW_DIRECT_MAIL, "0"); // conf_allow_direct_mail. ??? + parameters.put(SessionParamType.DATE_FORMAT, "yyyy-MM-dd"); // Configures date formatting. Value is date string. + parameters.put(SessionParamType.PARTNER_INTEGRATION_ENABLED, "0"); // conf_partner_integration. Value is either 1 or 0 (enabled or disabled) + parameters.put(SessionParamType.ALLOW_PROFILE_EDITING, GameConfiguration.getInstance().getBoolean("profile.editing") ? "1" : "0"); // allow_profile_editing. Enables the client (in-game) profile editor + parameters.put(SessionParamType.TRACKING_HEADER, ""); // tracking_header. Value is unknown + parameters.put(SessionParamType.TUTORIAL_ENABLED, isTutorialEnabled(getPlayer()) ? "1" : "0");//GameConfiguration.getInstance().getBoolean("tutorial.enabled") ? "1" : "0"); // tutorial_enabled. Value is either 1 or 0 (enabled or disabled) + + response.writeInt(parameters.size()); + + for (Map.Entry entry : parameters.entrySet()) { + SessionParamType key = entry.getKey(); + String value = entry.getValue(); + + response.writeInt(key.getParamID()); + + if (value.length() > 0 && Character.isDigit(value.charAt(0))) { + response.writeInt(Integer.parseInt(value)); + } else { + response.writeString(value); + } + } + } + + private boolean isTutorialEnabled(Player player) { + if (!GameConfiguration.getInstance().getBoolean("tutorial.enabled")) { + return false; + } + + return true; + } + + @Override + public short getHeader() { + return 257; // "DA" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/UniqueIDMessageEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/UniqueIDMessageEvent.java new file mode 100644 index 0000000..3eb3622 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/handshake/UniqueIDMessageEvent.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.handshake; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class UniqueIDMessageEvent extends MessageComposer { + private final String uuid; + + public UniqueIDMessageEvent(String uuid) { + this.uuid = uuid; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.uuid); + } + + @Override + public short getHeader() { + return 439; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/BUS_DOOR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/BUS_DOOR.java new file mode 100644 index 0000000..1ba11da --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/BUS_DOOR.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.infobus; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class BUS_DOOR extends MessageComposer { + private final boolean status; + + public BUS_DOOR(boolean status) { + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.status); + } + + @Override + public short getHeader() { + return 503; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/CANNOT_ENTER_BUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/CANNOT_ENTER_BUS.java new file mode 100644 index 0000000..d9d1151 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/CANNOT_ENTER_BUS.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.infobus; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CANNOT_ENTER_BUS extends MessageComposer { + private final String message; + + public CANNOT_ENTER_BUS(String message) { + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.message); + } + + @Override + public short getHeader() { + return 81; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/POLL_QUESTION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/POLL_QUESTION.java new file mode 100644 index 0000000..2625122 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/POLL_QUESTION.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.outgoing.infobus; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class POLL_QUESTION extends MessageComposer { + private final String question; + private final List answers; + + public POLL_QUESTION(String question, List answers) { + this.question = question; + this.answers = answers; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.question); + response.writeInt(this.answers.size()); + + int index = 0; + + for (String answer : this.answers) { + response.writeInt(index); + response.writeString(answer); + index++; + } + } + + @Override + public short getHeader() { + return 79; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/VOTE_RESULTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/VOTE_RESULTS.java new file mode 100644 index 0000000..3051e39 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/infobus/VOTE_RESULTS.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.messages.outgoing.infobus; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.Map; + +public class VOTE_RESULTS extends MessageComposer { + private final String question; + private final List answers; + private final Map answerResults; + private final int totalAnswers; + + public VOTE_RESULTS(String question, List answers, Map answerResults, int totalAnswers) { + this.question = question; + this.answers = answers; + this.answerResults = answerResults; + this.totalAnswers = totalAnswers; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.question); + response.writeInt(this.answers.size()); + + int i = 0; + for (String answer : this.answers) { + response.writeInt(i); + response.writeString(answer); + response.writeInt(this.answerResults.getOrDefault(i, 0)); + i++; + } + + response.writeInt(this.totalAnswers); + } + + @Override + public short getHeader() { + return 80; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/inventory/INVENTORY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/inventory/INVENTORY.java new file mode 100644 index 0000000..028896f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/inventory/INVENTORY.java @@ -0,0 +1,34 @@ +package org.alexdev.havana.messages.outgoing.inventory; + +import org.alexdev.havana.game.inventory.Inventory; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Map; + +public class INVENTORY extends MessageComposer { + private final Inventory inventory; + private final Map casts; + + public INVENTORY(Inventory inventory, Map casts) { + this.inventory = inventory; + this.casts = casts; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.casts.size()); + + for (var kvp : this.casts.entrySet()) { + this.inventory.serialise(response, kvp.getValue(), kvp.getKey()); + } + + response.writeInt(this.inventory.getDisplayedItems().size()); + } + + @Override + public short getHeader() { + return 140; // "BL" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/JUKEBOX_DISCS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/JUKEBOX_DISCS.java new file mode 100644 index 0000000..1126ce6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/JUKEBOX_DISCS.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.messages.outgoing.jukebox; + +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.song.jukebox.BurnedDisk; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Map; + +public class JUKEBOX_DISCS extends MessageComposer { + private final Map disks; + + public JUKEBOX_DISCS(Map savedTracks) { + this.disks = savedTracks; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(10); + response.writeInt(this.disks.size()); + + for (var kvp : this.disks.entrySet()) { + BurnedDisk burnedDisk = kvp.getKey(); + Song song = kvp.getValue(); + + response.writeInt(burnedDisk.getSlotId()); + response.writeInt(song.getId()); + response.writeInt(ItemManager.getInstance().calculateSongLength(song.getData()) / 2); + + response.writeString(song.getTitle()); + response.writeString(PlayerManager.getInstance().getPlayerData(song.getUserId()).getName()); + } + } + + @Override + public short getHeader() { + return 334; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/USER_SONG_DISKS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/USER_SONG_DISKS.java new file mode 100644 index 0000000..1df9faf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/jukebox/USER_SONG_DISKS.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.outgoing.jukebox; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.Map; + +public class USER_SONG_DISKS extends MessageComposer { + private final Map userDisks; + + public USER_SONG_DISKS(Map userDisks) { + this.userDisks = userDisks; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userDisks.size()); + + for (var kvp : this.userDisks.entrySet()) { + response.writeInt(kvp.getValue()); + response.writeString(kvp.getKey().getCustomData().split(Character.toString((char)10))[5]); + } + } + + @Override + public short getHeader() { + return 333; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ADD_BUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ADD_BUDDY.java new file mode 100644 index 0000000..bc7d9f2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ADD_BUDDY.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerCategory; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ADD_BUDDY extends MessageComposer { + private final MessengerUser friend; + private final Player player; + + public ADD_BUDDY(Player player, MessengerUser friend) { + this.friend = friend; + this.player = player; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.player.getMessenger().getCategories().size()); + + for (var category : this.player.getMessenger().getCategories()) { + response.writeInt(category.getId()); + response.writeString(category.getName()); + } + + response.writeInt(1); + response.writeInt(1); + + this.friend.serialise(this.player, response); + } + + @Override + public short getHeader() { + return 13; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/BUDDY_REQUEST_RESULT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/BUDDY_REQUEST_RESULT.java new file mode 100644 index 0000000..0d13453 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/BUDDY_REQUEST_RESULT.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerError; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class BUDDY_REQUEST_RESULT extends MessageComposer { + private List errors; + + public BUDDY_REQUEST_RESULT(List errors) { + this.errors = errors; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.errors.size()); + + for (MessengerError error : this.errors) { + response.writeString(error.getCauser()); + response.writeInt(error.getErrorType().getErrorCode()); + } + } + + @Override + public short getHeader() { + return 315; // "D{" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FOLLOW_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FOLLOW_ERROR.java new file mode 100644 index 0000000..8105324 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FOLLOW_ERROR.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FOLLOW_ERROR extends MessageComposer { + private final int errorId; + + public FOLLOW_ERROR(int errorId) { + this.errorId = errorId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.errorId); + } + + @Override + public short getHeader() { + return 349; // "E]" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDLIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDLIST.java new file mode 100644 index 0000000..3cbd4b6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDLIST.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class FRIENDLIST extends MessageComposer { + private final Player player; + private final List friends; + + public FRIENDLIST(Player player, List friends) { + this.player = player; + this.friends = friends; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.friends.size()); + + for (MessengerUser friend : this.friends) { + friend.serialise(player, response); + } + } + + @Override + public short getHeader() { + return 263; // "DG" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDS_UPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDS_UPDATE.java new file mode 100644 index 0000000..5065e56 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIENDS_UPDATE.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.ArrayList; +import java.util.List; + +public class FRIENDS_UPDATE extends MessageComposer { + private final Messenger messenger; + private final Player player; + private final List friendsUpdated; + + public FRIENDS_UPDATE(Player player, Messenger messenger) { + this.messenger = messenger; + this.player = player; + + this.friendsUpdated = new ArrayList<>(); + this.messenger.getFriendsUpdate().drainTo(this.friendsUpdated); + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.messenger.getCategories().size()); + + for (var category : this.messenger.getCategories()) { + response.writeInt(category.getId()); + response.writeString(category.getName()); + } + + response.writeInt(this.friendsUpdated.size()); + + for (MessengerUser friend : this.friendsUpdated) { + response.writeInt(0); + friend.serialise(this.player, response); + } + } + + @Override + public short getHeader() { + return 13; // "@M" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUEST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUEST.java new file mode 100644 index 0000000..0dcbe26 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUEST.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FRIEND_REQUEST extends MessageComposer { + private final MessengerUser requester; + + public FRIEND_REQUEST(MessengerUser requester) { + this.requester = requester; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.requester.getUserId()); + response.writeString(this.requester.getUsername()); + response.writeString(String.valueOf(this.requester.getUserId())); + } + + @Override + public short getHeader() { + return 132; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUESTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUESTS.java new file mode 100644 index 0000000..c536d27 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/FRIEND_REQUESTS.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class FRIEND_REQUESTS extends MessageComposer { + private final List requests; + + public FRIEND_REQUESTS(List requests) { + this.requests = requests; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.requests.size()); + response.writeInt(this.requests.size()); + + for (MessengerUser messengerUser : this.requests) { + response.writeInt(messengerUser.getUserId()); + response.writeString(messengerUser.getUsername()); + response.writeString(messengerUser.getUserId()); + } + } + + @Override + public short getHeader() { + return 314; // "BD" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_ERROR.java new file mode 100644 index 0000000..cae1c75 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_ERROR.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INSTANT_MESSAGE_ERROR extends MessageComposer { + private int errorCode; + private int chatId; + + public INSTANT_MESSAGE_ERROR(int errorCode, int chatId) { + this.errorCode = errorCode; + this.chatId = chatId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.errorCode); + response.writeInt(this.chatId); + } + + @Override + public short getHeader() { + return 261; // "DE" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_INVITATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_INVITATION.java new file mode 100644 index 0000000..00f5387 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INSTANT_MESSAGE_INVITATION.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INSTANT_MESSAGE_INVITATION extends MessageComposer { + private final int userId; + private final String message; + + public INSTANT_MESSAGE_INVITATION(int userId, String message) { + this.userId = userId; + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeString(this.message); + } + + @Override + public short getHeader() { + return 135; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INVITATION_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INVITATION_ERROR.java new file mode 100644 index 0000000..d8bdf6b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/INVITATION_ERROR.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITATION_ERROR extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + } + + @Override + public short getHeader() { + return 262; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_ERROR.java new file mode 100644 index 0000000..eb47302 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_ERROR.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerError; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class MESSENGER_ERROR extends MessageComposer { + private int clientMessageId; // The client likes to log the message id that caused this error + private final MessengerError error; + + public MESSENGER_ERROR(MessengerError error) { + this.error = error; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.clientMessageId); + response.writeInt(this.error.getErrorType().getErrorCode()); + + if (this.error.getErrorReason() != null) { + response.writeInt(this.error.getErrorReason().getReasonCode()); + } + } + + @Override + public short getHeader() { + return 260; // "DD" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_INIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_INIT.java new file mode 100644 index 0000000..d4b5915 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_INIT.java @@ -0,0 +1,61 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.ArrayList; +import java.util.List; + +public class MESSENGER_INIT extends MessageComposer { + private final Player player; + private final int friendsLimit; + private List friends; + + public MESSENGER_INIT(Player player, Messenger data) { + this.player = player; + this.friendsLimit = data.getFriendsLimit(); + this.friends = new ArrayList<>(data.getFriends().values()); + } + + @Override + public void compose(NettyResponse response) { + //response.writeString(this.persistentMessage); + +// if (this.isClubMember) { +// response.writeInt(clubFriendsLimit); +// } else { +// response.writeInt(normalFriendsLimit); +// } + + int normalFriendsLimit = GameConfiguration.getInstance().getInteger("messenger.max.friends.nonclub"); + int clubFriendsLimit = GameConfiguration.getInstance().getInteger("messenger.max.friends.club"); + + response.writeInt(this.friendsLimit); + response.writeInt(normalFriendsLimit); + response.writeInt(clubFriendsLimit); + response.writeInt(this.player.getMessenger().getCategories().size()); + + for (var category : this.player.getMessenger().getCategories()) { + response.writeInt(category.getId()); + response.writeString(category.getName()); + } + + response.writeInt(this.friends.size()); + + for (MessengerUser friend : this.friends) { + friend.serialise(player, response); + } + + response.writeInt(0); + response.writeInt(0); + } + + @Override + public short getHeader() { + return 12; // "@L" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_MSG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_MSG.java new file mode 100644 index 0000000..505e271 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_MSG.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerMessage; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class MESSENGER_MSG extends MessageComposer { + private final MessengerMessage message; + + public MESSENGER_MSG(MessengerMessage message) { + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + //response.writeInt(this.message.getVirtualId()); + response.writeInt(this.message.getFromId()); + //response.writeString(DateUtil.getDateAsString(this.message.getTimeSet())); + response.writeString(this.message.getMessage()); + } + + public MessengerMessage getMessage() { + return message; + } + + @Override + public short getHeader() { + return 134; // "BF" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_SEARCH.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_SEARCH.java new file mode 100644 index 0000000..000c935 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/MESSENGER_SEARCH.java @@ -0,0 +1,57 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.DateUtil; + +import java.util.List; + +public class MESSENGER_SEARCH extends MessageComposer { + private final List friends; + private final List others; + + public MESSENGER_SEARCH(List friends, List others) { + this.friends = friends; + this.others = others; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.friends.size()); + + for (PlayerDetails playerDetails : this.friends) { + this.serialiseSearch(response, playerDetails); + } + + response.writeInt(this.others.size()); + + for (PlayerDetails playerDetails : this.others) { + this.serialiseSearch(response, playerDetails); + } + } + + private void serialiseSearch(NettyResponse response, PlayerDetails playerDetails) { + response.writeInt(playerDetails.getId()); + response.writeString(playerDetails.getName()); + response.writeString(playerDetails.getMotto()); + + Player player = PlayerManager.getInstance().getPlayerById(playerDetails.getId()); + boolean isOnline = PlayerManager.getInstance().isPlayerOnline(playerDetails.getId()); + + response.writeBool(isOnline); + response.writeBool(isOnline && player.getRoomUser().getRoom() != null); + response.writeString((isOnline && player.getRoomUser().getRoom() != null) ? player.getRoomUser().getRoom().getData().getName() : ""); + + response.writeBool(playerDetails.getSex().toUpperCase().equals("M")); + response.writeString(isOnline ? playerDetails.getFigure() : ""); + response.writeString(DateUtil.getDate(playerDetails.getLastOnline(), DateUtil.LONG_DATE)); + } + + @Override + public short getHeader() { + return 435; // Fs + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/REMOVE_BUDDY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/REMOVE_BUDDY.java new file mode 100644 index 0000000..c837edc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/REMOVE_BUDDY.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class REMOVE_BUDDY extends MessageComposer { + private final MessengerUser friend; + private final Player player; + + public REMOVE_BUDDY(Player player, MessengerUser friend) { + this.friend = friend; + this.player = player; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.player.getMessenger().getCategories().size()); + + for (var category : this.player.getMessenger().getCategories()) { + response.writeInt(category.getId()); + response.writeString(category.getName()); + } + + + response.writeInt(1); + response.writeInt(-1); + + response.writeInt(friend.getUserId()); + } + + @Override + public short getHeader() { + return 13; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ROOMFORWARD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ROOMFORWARD.java new file mode 100644 index 0000000..ca53f1f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/messenger/ROOMFORWARD.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.messenger; + +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOMFORWARD extends MessageComposer { + private final boolean isPublic; + private int roomId; + + public ROOMFORWARD(boolean isPublic, int roomId) { + this.isPublic = isPublic; + this.roomId = roomId; + } + + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.isPublic); + response.writeInt(this.roomId); + } + + @Override + public short getHeader() { + return 286; // "D^" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CALL_FOR_HELP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CALL_FOR_HELP.java new file mode 100644 index 0000000..0487b69 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CALL_FOR_HELP.java @@ -0,0 +1,44 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CALL_FOR_HELP extends MessageComposer { + private CallForHelp cfh; + + public CALL_FOR_HELP(CallForHelp cfh){ + this.cfh = cfh; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.cfh.getCryId()); + response.writeInt(this.cfh.getCategory()); + response.writeString(this.cfh.getFormattedRequestTime()); + response.writeString(this.cfh.getCaller()); + response.writeString(this.cfh.getMessage()); + response.writeString(this.cfh.getCaller()); + response.writeString(this.cfh.getRoom().getData().getName()); + + if (this.cfh.getRoom() != null) { + if (this.cfh.getRoom().isPublicRoom()) { + response.writeInt(0); + response.writeString(this.cfh.getRoom().getData().getCcts()); + response.writeInt(this.cfh.getRoom().getId() + RoomManager.PUBLIC_ROOM_OFFSET); + response.writeInt(this.cfh.getRoom().getId()); + } else { + response.writeInt(1); + response.writeString(this.cfh.getRoom().getData().getName()); + response.writeInt(this.cfh.getRoom().getId() ); + response.writeString(this.cfh.getRoom().getData().getOwnerName()); + } + } + } + + @Override + public short getHeader() { + return 148; // "BT" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CFH_ACK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CFH_ACK.java new file mode 100644 index 0000000..347fb4f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CFH_ACK.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CFH_ACK extends MessageComposer { + private final CallForHelp call; + + public CFH_ACK(CallForHelp call){ + this.call = call; + } + + @Override + public void compose(NettyResponse response) { + // TODO: verify if structure and packet name is correct by looking at the lingo + response.writeBool(call != null); + + if (call != null) { + response.writeString(call.getCryId()); + response.writeString(call.getFormattedRequestTime()); + response.writeString(call.getMessage()); + } + } + + @Override + public short getHeader() { + return 319; // "D" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_RECEIVED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_RECEIVED.java new file mode 100644 index 0000000..adf486f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_RECEIVED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CRY_RECEIVED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeString("H"); + } + + @Override + public short getHeader() { + return 321; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_REPLY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_REPLY.java new file mode 100644 index 0000000..f3001c9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/CRY_REPLY.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CRY_REPLY extends MessageComposer { + private final String message; + + public CRY_REPLY(String message){ + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.message); + } + + @Override + public short getHeader() { + return 274; // "DR" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/DELETE_CRY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/DELETE_CRY.java new file mode 100644 index 0000000..adc2f03 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/DELETE_CRY.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class DELETE_CRY extends MessageComposer { + private int cryId; + + public DELETE_CRY(int cryId){ + this.cryId = cryId; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(cryId); + } + + @Override + public short getHeader() { + return 273; // "DQ" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/MODERATOR_ALERT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/MODERATOR_ALERT.java new file mode 100644 index 0000000..acb481d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/MODERATOR_ALERT.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class MODERATOR_ALERT extends MessageComposer { + private final String message; + + public MODERATOR_ALERT(String message){ + this.message = message; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.message); + response.writeString(""); + } + + @Override + public short getHeader() { + return 161; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/PICKED_CRY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/PICKED_CRY.java new file mode 100644 index 0000000..78cc97a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/moderation/PICKED_CRY.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.moderation; + +import org.alexdev.havana.game.moderation.cfh.CallForHelp; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PICKED_CRY extends MessageComposer { + + private CallForHelp cfh; + + public PICKED_CRY(CallForHelp cfh){ + this.cfh = cfh; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(cfh.getCryId()); + response.writeString(cfh.getPickedUpBy()); + } + + @Override + public short getHeader() { + return 149; // "BU" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/CANTCONNECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/CANTCONNECT.java new file mode 100644 index 0000000..3ac7b31 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/CANTCONNECT.java @@ -0,0 +1,69 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CANTCONNECT extends MessageComposer { + public enum QueueError { + RESET("queue_reset"), + FULL("queue_full"), + STAFF_ONLY("na"), + EVENT_PARTICIPENTS_ONLY_COPY("e2"), + EVENT_PARTICIPENTS_ONLY("e1"), + CLUB_ONLY("c"); + + private final String reasonType; + + QueueError(String reasonType) { + this.reasonType = reasonType; + } + + public String getReasonType() { + return this.reasonType; + } + } + + public enum ConnectError { + ROOM_FULL(1), + ROOM_CLOSED(2), + QUEUE_ERROR(3), + BANNED(4); + + private final int errorId; + + ConnectError(int errorId) { + this.errorId = errorId; + } + + public int getErrorId() { + return this.errorId; + } + } + + private final ConnectError connectError; + private final QueueError queueError; + + public CANTCONNECT(ConnectError error) { + this.connectError = error; + this.queueError = null; + } + + public CANTCONNECT(QueueError error) { + this.connectError = ConnectError.QUEUE_ERROR; + this.queueError = error; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.connectError.getErrorId()); + + if (this.queueError != null) { + response.writeString(this.queueError.getReasonType()); + } + } + + @Override + public short getHeader() { + return 224; // "C`" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FAVOURITEROOMRESULTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FAVOURITEROOMRESULTS.java new file mode 100644 index 0000000..8d2b4db --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FAVOURITEROOMRESULTS.java @@ -0,0 +1,88 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class FAVOURITEROOMRESULTS extends MessageComposer { + private final int nodeType; + private final List favouritePublicRooms; + private final List favouriteFlatRooms; + private final Player viewer; + + public FAVOURITEROOMRESULTS(Player viewer, List favouritePublicRooms, List favouriteFlatRooms) { + this.nodeType = 2; + this.viewer = viewer; + this.favouritePublicRooms = favouritePublicRooms; + this.favouriteFlatRooms = favouriteFlatRooms; + } + + @Override + public void compose(NettyResponse response) { + /* tNodeMask = tConn.GetIntFrom() + tNodeId = tConn.GetIntFrom() + tNodeType = tConn.GetIntFrom() + tNodeInfo = [#id:string(tNodeId), #nodeType:tNodeType, #name:tConn.GetStrFrom(), #usercount:tConn.GetIntFrom(), #maxUsers:tConn.GetIntFrom(), #parentid:string(tConn.GetIntFrom())]*/ + response.writeInt(0); + response.writeInt(0); + response.writeInt(this.nodeType); // Node type: 2 to show private rooms + response.writeString(""); + response.writeInt(0); + response.writeInt(0); + response.writeInt(0); + + if (this.nodeType == 2) { + response.writeInt(this.favouriteFlatRooms.size()); + + for (Room room : this.favouriteFlatRooms) { + response.writeInt(room.getId()); + response.writeString(room.getData().getName()); + + if (room.isOwner(this.viewer.getDetails().getId())|| room.getData().showOwnerName() || this.viewer.hasFuse(Fuseright.SEE_ALL_ROOMOWNERS)) { + response.writeString(room.getData().getOwnerName()); + } else { + response.writeString("-"); + } + + response.writeString(room.getData().getAccessType()); + response.writeInt(room.getData().getVisitorsNow()); + response.writeInt(room.getData().getVisitorsMax()); + response.writeString(room.getData().getDescription()); + } + } + + for (Room room : this.favouritePublicRooms) { + int door = 0; + String description = room.getData().getDescription(); + + if (room.getData().getDescription().contains("/")) { + String[] data = description.split("/"); + description = data[0]; + door = Integer.parseInt(data[1]); + } + + response.writeInt(room.getId() + RoomManager.PUBLIC_ROOM_OFFSET); + response.writeInt(1); + response.writeString(room.getData().getName()); + response.writeInt(room.getData().getTotalVisitorsNow()); + response.writeInt(room.getData().getTotalVisitorsMax()); + response.writeInt(room.getData().getCategoryId()); + response.writeString(description); + response.writeInt(room.getId()); + response.writeInt(door); + response.writeString(room.getData().getCcts()); + response.writeInt(0); + response.writeInt(1); + } + } + + @Override + public short getHeader() { + return 61; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FLAT_RESULTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FLAT_RESULTS.java new file mode 100644 index 0000000..4e6f8f4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/FLAT_RESULTS.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class FLAT_RESULTS extends MessageComposer { + private final List roomList; + + public FLAT_RESULTS(List roomList) { + this.roomList = roomList; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roomList.size()); + + for (Room room : this.roomList) { + response.writeInt(room.getId()); + response.writeString(room.getData().getName()); + response.writeString(room.getData().getOwnerName()); + response.writeString(room.getData().getAccessType()); + response.writeInt(room.getData().getVisitorsNow()); + response.writeInt(room.getData().getVisitorsMax()); + response.writeString(room.getData().getDescription()); + } + } + + @Override + public short getHeader() { + return 16; // "@P" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NAVNODEINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NAVNODEINFO.java new file mode 100644 index 0000000..1ec5305 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NAVNODEINFO.java @@ -0,0 +1,106 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class NAVNODEINFO extends MessageComposer { + private Player viewer; + private NavigatorCategory parentCategory; + private List rooms; + private boolean hideFull; + private List subCategories; + private int categoryCurrentVisitors; + private int categoryMaxVisitors; + private int rank; + + public NAVNODEINFO(Player viewer, NavigatorCategory parentCategory, List rooms, boolean hideFull, List subCategories, int categoryCurrentVisitors, int categoryMaxVisitors, int rank) { + this.viewer = viewer; + this.parentCategory = parentCategory; + this.rooms = rooms; + this.hideFull = hideFull; + this.subCategories = subCategories; + this.categoryCurrentVisitors = categoryCurrentVisitors; + this.categoryMaxVisitors = categoryMaxVisitors; + this.rank = rank; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.hideFull); + response.writeInt(this.parentCategory.getId()); + response.writeInt(this.parentCategory.isPublicSpaces() ? 0 : 2); + response.writeString(this.parentCategory.getName()); + response.writeInt(this.categoryCurrentVisitors); + response.writeInt(this.categoryMaxVisitors); + response.writeInt(this.parentCategory.getParentId()); + + if (!this.parentCategory.isPublicSpaces()) { + response.writeInt(this.rooms.size()); + } + + for (Room room : this.rooms) { + if (room.isPublicRoom()) { + int door = 0; + String description = room.getData().getDescription(); + + if (room.getData().getDescription().contains("/")) { + String[] data = description.split("/"); + description = data[0]; + door = Integer.parseInt(data[1]); + } + + response.writeInt(room.getId() + RoomManager.PUBLIC_ROOM_OFFSET); + response.writeInt(1); + response.writeString(room.getData().getName()); + response.writeInt(room.getData().getTotalVisitorsNow()); + response.writeInt(room.getData().getTotalVisitorsMax()); + response.writeInt(room.getData().getCategoryId()); + response.writeString(description); + response.writeInt(room.getId()); + response.writeInt(door); + response.writeString(room.getData().getCcts()); + response.writeInt(0); + response.writeInt(1); + } else { + response.writeInt(room.getId()); + response.writeString(room.getData().getName()); + + if (room.isOwner(this.viewer.getDetails().getId())|| room.getData().showOwnerName() || this.viewer.hasFuse(Fuseright.SEE_ALL_ROOMOWNERS)) { + response.writeString(room.getData().getOwnerName()); + } else { + response.writeString("-"); + } + + response.writeString(room.getData().getAccessType()); + response.writeInt(room.getData().getVisitorsNow()); + response.writeInt(room.getData().getVisitorsMax()); + response.writeString(room.getData().getDescription()); + } + } + + for (NavigatorCategory subCategory : this.subCategories) { + if (subCategory.getMinimumRoleAccess().getRankId() > this.rank) { + continue; + } + response.writeInt(subCategory.getId()); + response.writeInt(0); + response.writeString(subCategory.getName()); + response.writeInt(subCategory.getCurrentVisitors()); + response.writeInt(subCategory.getMaxVisitors()); + response.writeInt(this.parentCategory.getId()); + } + + } + + @Override + public short getHeader() { + return 220; // "C\" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NODESPACEUSERS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NODESPACEUSERS.java new file mode 100644 index 0000000..3aad4d4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NODESPACEUSERS.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class NODESPACEUSERS extends MessageComposer { + private final List players; + + public NODESPACEUSERS(List players) { + this.players = players; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(-1); // tNodeId = string(tConn.GetIntFrom()) + response.writeInt(this.players.size()); + + for (Player player : this.players) { + response.writeString(player.getDetails().getName()); + } + } + + @Override + public short getHeader() { + return 223; // "C_" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATS.java new file mode 100644 index 0000000..30cb396 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATS.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NOFLATS extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 58; // "@z + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATSFORUSER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATSFORUSER.java new file mode 100644 index 0000000..a4df02b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/NOFLATSFORUSER.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NOFLATSFORUSER extends MessageComposer { + private String username; + + public NOFLATSFORUSER(String username) { + this.username = username; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.username); + } + + @Override + public short getHeader() { + return 57; // "@y" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/RECOMMENDED_ROOM_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/RECOMMENDED_ROOM_LIST.java new file mode 100644 index 0000000..60b4372 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/RECOMMENDED_ROOM_LIST.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class RECOMMENDED_ROOM_LIST extends MessageComposer { + private final Player player; + private final List roomList; + + public RECOMMENDED_ROOM_LIST(Player player, List roomList) { + this.player = player; + this.roomList = roomList; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roomList.size()); + + for (Room room : this.roomList) { + response.writeInt(room.getId()); + response.writeString(room.getData().getName()); + + if (room.isOwner(this.player.getDetails().getId()) || room.getData().showOwnerName() || this.player.hasFuse(Fuseright.SEE_ALL_ROOMOWNERS)) { + response.writeString(room.getData().getOwnerName()); + } else { + response.writeString("-"); + } + + response.writeString(room.getData().getAccessType()); + response.writeInt(room.getData().getVisitorsNow()); + response.writeInt(room.getData().getVisitorsMax()); + response.writeString(room.getData().getDescription()); + } + } + + @Override + public short getHeader() { + return 351; // "E_" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/SEARCH_FLAT_RESULTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/SEARCH_FLAT_RESULTS.java new file mode 100644 index 0000000..af5765c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/SEARCH_FLAT_RESULTS.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class SEARCH_FLAT_RESULTS extends MessageComposer { + private final List roomList; + private final Player player; + + public SEARCH_FLAT_RESULTS(List roomList, Player player) { + this.roomList = roomList; + this.player = player; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roomList.size()); + + for (Room room : this.roomList) { + response.writeInt(room.getId()); + response.writeString(room.getData().getName()); + + if (room.isOwner(this.player.getDetails().getId()) || room.getData().showOwnerName() || this.player.hasFuse(Fuseright.SEE_ALL_ROOMOWNERS)) { + response.writeString(room.getData().getOwnerName()); + } else { + response.writeString("-"); + } + + response.writeString(room.getData().getAccessType()); + response.writeInt(room.getData().getVisitorsNow()); + response.writeInt(room.getData().getVisitorsMax()); + response.writeString(room.getData().getDescription()); + } + } + + @Override + public short getHeader() { + return 55; // "@w" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/USERFLATCATS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/USERFLATCATS.java new file mode 100644 index 0000000..79ee298 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/navigator/USERFLATCATS.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.navigator; + +import org.alexdev.havana.game.navigator.NavigatorCategory; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class USERFLATCATS extends MessageComposer { + private final List categoryList; + + public USERFLATCATS(List categoryList) { + this.categoryList = categoryList; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.categoryList.size()); + + for (NavigatorCategory category : this.categoryList) { + response.writeInt(category.getId()); + response.writeString(category.getName()); + } + } + + @Override + public short getHeader() { + return 221; // "C]" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSED.java new file mode 100644 index 0000000..e5eb2e1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSED.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.outgoing.openinghours; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.time.LocalTime; + +public class INFO_HOTEL_CLOSED extends MessageComposer { + private final LocalTime openTime; + + // Denotes if the ugly popup is used or the more fancy one + private final boolean disconnect; + + public INFO_HOTEL_CLOSED(LocalTime openTime, boolean disconnect) { + this.openTime = openTime; + this.disconnect = disconnect; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.openTime.getHour()); + response.writeInt(this.openTime.getMinute()); + response.writeBool(this.disconnect); + } + + @Override + public short getHeader() { + return 292; // "Dd" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSING.java new file mode 100644 index 0000000..df11f25 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/openinghours/INFO_HOTEL_CLOSING.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.openinghours; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.time.Duration; + +public class INFO_HOTEL_CLOSING extends MessageComposer { + private Duration minutesUntil; + + public INFO_HOTEL_CLOSING(Duration minutesUntil) { + this.minutesUntil = minutesUntil; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(Math.toIntExact(minutesUntil.toMinutes())); + } + + @Override + public short getHeader() { + return 291; // "Dc" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/NAMEAPPROVED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/NAMEAPPROVED.java new file mode 100644 index 0000000..e44c85c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/NAMEAPPROVED.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.pets; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NAMEAPPROVED extends MessageComposer { + private final int approveStatus; + + public NAMEAPPROVED(int approveStatus) { + this.approveStatus = approveStatus; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.approveStatus); + } + + @Override + public short getHeader() { + return 36; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/PETSTAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/PETSTAT.java new file mode 100644 index 0000000..d07e0cd --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/pets/PETSTAT.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.pets; + +import org.alexdev.havana.game.pets.Pet; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PETSTAT extends MessageComposer { + private final Pet pet; + + public PETSTAT(Pet pet) { + this.pet = pet; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.pet.getRoomUser().getInstanceId()); + response.writeInt(this.pet.getAge()); + response.writeInt(this.pet.getHunger()); + response.writeInt(this.pet.getThirst()); + response.writeInt(this.pet.getHappiness()); + response.writeInt(this.pet.getDetails().getNatureNegative()); + response.writeInt(this.pet.getDetails().getNaturePositive()); + } + + @Override + public short getHeader() { + return 210; // "CR" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_ERROR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_ERROR.java new file mode 100644 index 0000000..f64a215 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_ERROR.java @@ -0,0 +1,49 @@ +package org.alexdev.havana.messages.outgoing.purse; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class VOUCHER_REDEEM_ERROR extends MessageComposer { + public enum RedeemError { + TECHNICAL_ERROR(0), + INVALID(1), + PRODUCT_DELIVERY_FAILED(2), + WEB_ONLY(3); + + private int errorCode; + + RedeemError(int errorCode) { + this.errorCode = errorCode; + } + + public int getErrorCode() { + return this.errorCode; + } + } + + private final RedeemError error; + + public VOUCHER_REDEEM_ERROR(RedeemError error) { + this.error = error; + } + + @Override + public void compose(NettyResponse response) { + // if ERROR = 213 then + // me.getInterface().setVoucherInput(1) + // tDelim = the itemDelimiter + // the itemDelimiter = "\t" + // -- UNK_B0 257 + // tErrorCode = 1.getPropRef().getProp(#item, 1) + // the itemDelimiter = tDelim + // -- UNK_65 1 + // return(executeMessage(#alert, [#Msg:"purse_vouchers_error" & tErrorCode])) + // end if + response.writeString(this.error.getErrorCode()); + } + + @Override + public short getHeader() { + return 213; // "CU" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_OK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_OK.java new file mode 100644 index 0000000..a003fe4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/purse/VOUCHER_REDEEM_OK.java @@ -0,0 +1,50 @@ +package org.alexdev.havana.messages.outgoing.purse; + +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.stream.Collectors; + +public class VOUCHER_REDEEM_OK extends MessageComposer { + private final List redeemableItems; + + public VOUCHER_REDEEM_OK(List redeemableItems) { + this.redeemableItems = redeemableItems; + } + + @Override + public void compose(NettyResponse response) { +// tProductName = tConn.GetStrFrom() +// if tProductName <> "" then +// tResultStr = getText("purse_vouchers_furni_success") & "\r" & "\r" +// repeat while tProductName <> "" +// tDescription = tConn.GetStrFrom() +// tResultStr = tResultStr & tProductName & "\r" +// tProductName = tConn.GetStrFrom() +// end repeat +// -- UNK_65 1 +// return(executeMessage(#alert, [#Msg:tResultStr])) +// else +// -- UNK_65 1 +// return(executeMessage(#alert, [#Msg:"purse_vouchers_success"])) +// end if + + if (this.redeemableItems != null && this.redeemableItems.size() > 0) { + if (this.redeemableItems.size() == 1) { + response.writeString(this.redeemableItems.get(0).getDefinition().getName()); + response.writeString(this.redeemableItems.get(0).getDefinition().getDescription()); + } else { + response.writeString(this.redeemableItems.stream().map(item -> item.getDefinition().getName()).collect(Collectors.joining(", " ))); + response.writeString(""); + } + } + } + + @Override + public short getHeader() { + return 212; // "CT" + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ACTIVE_OBJECTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ACTIVE_OBJECTS.java new file mode 100644 index 0000000..ce43f37 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ACTIVE_OBJECTS.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class ACTIVE_OBJECTS extends MessageComposer { + private final List items; + + public ACTIVE_OBJECTS(Room room) { + this.items = room.getItemManager().getFloorItems(); + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.items.size()); + + for (Item item : this.items) { + item.serialise(response); + } + } + @Override + public short getHeader() { + return 32; // "@`" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/DOORBELL_WAIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/DOORBELL_WAIT.java new file mode 100644 index 0000000..9f8d5eb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/DOORBELL_WAIT.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class DOORBELL_WAIT extends MessageComposer { + private final String username; + + public DOORBELL_WAIT() { + this.username = ""; + } + + public DOORBELL_WAIT(String username) { + this.username = username; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.username); + } + + @Override + public short getHeader() { + return 91; // "A[" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATNOTALLOWEDTOENTER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATNOTALLOWEDTOENTER.java new file mode 100644 index 0000000..d0ae6a5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATNOTALLOWEDTOENTER.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLATNOTALLOWEDTOENTER extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 131; // "BC" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATPROPERTY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATPROPERTY.java new file mode 100644 index 0000000..4a0ee04 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLATPROPERTY.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLATPROPERTY extends MessageComposer { + private final String property; + private final String value; + + public FLATPROPERTY(String property, Object value) { + this.property = property; + this.value = String.valueOf(value); + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.property); + response.writeString(this.value); + } + + @Override + public short getHeader() { + return 46; // "@n" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLAT_LETIN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLAT_LETIN.java new file mode 100644 index 0000000..fb88076 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLAT_LETIN.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLAT_LETIN extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 41; // "@i" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLOOR_MAP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLOOR_MAP.java new file mode 100644 index 0000000..e8a6fde --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/FLOOR_MAP.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLOOR_MAP extends MessageComposer { + private final RoomModel roomModel; + + public FLOOR_MAP(RoomModel roomModel) { + this.roomModel = roomModel; + } + + @Override + public void compose(NettyResponse response) { + String[] lines = roomModel.getHeightmap().split("\r"); + + for (int y = 0; y < roomModel.getMapSizeY(); y++) { + String line = lines[y]; + + for (int x = 0; x < roomModel.getMapSizeX(); x++) { + char tile = line.charAt(x); + + if (x == roomModel.getDoorLocation().getX() && y == roomModel.getDoorLocation().getY()) { + response.write((int) roomModel.getDoorLocation().getZ()); + } else { + response.write(tile); + } + } + + response.write((char)13); + } + } + + @Override + public short getHeader() { + return 470; // "GV" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP.java new file mode 100644 index 0000000..edac32c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class HEIGHTMAP extends MessageComposer { + private final String heightmap; + + public HEIGHTMAP(String heightmap) { + this.heightmap = heightmap; + } + + public HEIGHTMAP(RoomModel roomModel) { + this.heightmap = roomModel.getHeightmap(); + } + + @Override + public void compose(NettyResponse response) { + response.write(this.heightmap); + } + + @Override + public short getHeader() { + return 31; // "@_" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP_UPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP_UPDATE.java new file mode 100644 index 0000000..34b5652 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/HEIGHTMAP_UPDATE.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.models.RoomModel; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class HEIGHTMAP_UPDATE extends MessageComposer { + private final String heightmap; + + public HEIGHTMAP_UPDATE(Room room, RoomModel roomModel) { + String[] lines = roomModel.getHeightmap().split("\r"); + + StringBuilder updateMap = new StringBuilder(); + + for (int y = 0; y < roomModel.getMapSizeY(); y++) { + String line = lines[y]; + + for (int x = 0; x < roomModel.getMapSizeX(); x++) { + char tile = line.charAt(x); + + if (Character.isDigit(tile)) { + var roomTile = room.getMapping().getTile(x, y); + + if (roomTile == null) { + continue; + } + + int height = (int) Math.round(roomTile.getWalkingHeight());//Character.getNumericValue(tile); + + if (height < 0 || height > 8) { + height = 0; + } + + /*if (room.getMapping().getTile(x, y).getHighestItem() != null && + room.getMapping().getTile(x, y).getHighestItem().hasBehaviour(ItemBehaviour.CAN_STACK_ON_TOP)) { + //char updateChar = (char) (height + 65); + updateMap.append(height); + } else { +*/ + //char updateChar = (char) (height + 65); + updateMap.append(height); + // } + } else { + updateMap.append("x"); + } + } + + updateMap.append("\r"); + } + + this.heightmap = updateMap.toString(); + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.heightmap); + } + + @Override + public short getHeader() { + return 219; // "@_" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/INTERSITIALDATA.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/INTERSITIALDATA.java new file mode 100644 index 0000000..98d808b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/INTERSITIALDATA.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INTERSITIALDATA extends MessageComposer { + private final String image; + private final String url; + + public INTERSITIALDATA(String image, String url) { + this.image = image; + this.url = url; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.image); + response.writeString(this.url); + } + + @Override + public short getHeader() { + return 258; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ITEMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ITEMS.java new file mode 100644 index 0000000..5123cd8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ITEMS.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class ITEMS extends MessageComposer { + private final List items; + + public ITEMS(Room room) { + this.items = room.getItemManager().getWallItems(); + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.items.size()); + + for (Item item : this.items) { + item.serialise(response); + } + } + @Override + public short getHeader() { + return 45; // "@m" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OBJECTS_WORLD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OBJECTS_WORLD.java new file mode 100644 index 0000000..5a611fa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OBJECTS_WORLD.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; +import java.util.UUID; + +public class OBJECTS_WORLD extends MessageComposer { + private List items; + private String[] data; + + public OBJECTS_WORLD(List items) { + this.items = items; + } + + public OBJECTS_WORLD(String old) { + this.data = old.split("\r"); + } + + @Override + public void compose(NettyResponse response) { + if (items != null) { + response.writeInt(this.items.size()); + + for (Item item : this.items) { + item.serialise(response); + } + } + else { + response.writeInt(this.data.length); + + for (String entry : data) { + response.writeBool(false); + response.writeString(UUID.randomUUID().toString().split("-")[0]); + response.writeString(entry.split(" ")[1]); + + response.writeInt(Integer.parseInt(entry.split(" ")[2])); + response.writeInt(Integer.parseInt(entry.split(" ")[3])); + response.writeInt(Integer.parseInt(entry.split(" ")[4])); + response.writeInt(Integer.parseInt(entry.split(" ")[5])); + } + } + /* response.writeInt(hasDimensions ? 1 : 0); + response.writeString(this.customData); + response.writeString(definition.getSprite()); + response.writeInt(this.position.getX()); + response.writeInt(this.position.getY()); + response.writeInt((int) this.position.getZ()); + + if (!hasDimensions) { + response.writeInt(this.position.getRotation());*/ + } + + @Override + public short getHeader() { + return 30; // "@^" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OPEN_CONNECTION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OPEN_CONNECTION.java new file mode 100644 index 0000000..83a71d2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/OPEN_CONNECTION.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class OPEN_CONNECTION extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 19; // "@S" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOMAD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOMAD.java new file mode 100644 index 0000000..9b6723e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOMAD.java @@ -0,0 +1,30 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOMAD extends MessageComposer { + private final String image; + private final String url; + + public ROOMAD(String image, String url) { + this.image = image; + this.url = url; + + } + + @Override + public void compose(NettyResponse response) { + if (this.image != null) { + response.writeString(this.image); + response.writeString(this.url); + } else { + response.writeString(""); + } + } + + @Override + public short getHeader() { + return 208; // "CP" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_AD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_AD.java new file mode 100644 index 0000000..e7f7492 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_AD.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOM_AD extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.write(0); + } + + @Override + public short getHeader() { + return 208; // "CP" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_READY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_READY.java new file mode 100644 index 0000000..54adbba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_READY.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOM_READY extends MessageComposer { + private final int roomId; + private final String model; + + public ROOM_READY(int roomId, String model) { + this.roomId = roomId; + this.model = model; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.model); + response.writeInt(this.roomId); + } + + @Override + public short getHeader() { + return 69; // "AE" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_URL.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_URL.java new file mode 100644 index 0000000..d13c704 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/ROOM_URL.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ROOM_URL extends MessageComposer { + + @Override + public void compose(NettyResponse response) { + response.writeString("/client/"); + } + + @Override + public short getHeader() { + return 166; // "Bf" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/UPDATE_VOTES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/UPDATE_VOTES.java new file mode 100644 index 0000000..a10c2c4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/UPDATE_VOTES.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.rooms; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class UPDATE_VOTES extends MessageComposer { + private final int rating; + + public UPDATE_VOTES(int rating) { + this.rating = rating; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.rating); + } + + @Override + public short getHeader() { + return 345; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/dimmer/MOODLIGHT_PRESETS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/dimmer/MOODLIGHT_PRESETS.java new file mode 100644 index 0000000..d182c19 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/dimmer/MOODLIGHT_PRESETS.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.outgoing.rooms.dimmer; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class MOODLIGHT_PRESETS extends MessageComposer { + private final int currentPreset; + private final List presets; + + public MOODLIGHT_PRESETS(int currentPreset, List presets) { + this.currentPreset = currentPreset; + this.presets = presets; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.presets.size()); + response.writeInt(this.currentPreset); + + int i = 1; + for (String preset : this.presets) { + String[] presetData = preset.split(","); + + response.writeInt(i); + response.writeInt(Integer.parseInt(presetData[0])); + response.writeString(presetData[1].replace("#", "")); + response.writeInt(Integer.parseInt(presetData[2])); + i++; + } + } + + @Override + public short getHeader() { + return 365; // "Em" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/CLOSEGAMEBOARD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/CLOSEGAMEBOARD.java new file mode 100644 index 0000000..de7feb9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/CLOSEGAMEBOARD.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.outgoing.rooms.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CLOSEGAMEBOARD extends MessageComposer { + private final String gameId; + private final String type; + + public CLOSEGAMEBOARD(String gameId, String type) { + this.gameId = gameId; + this.type = type; + } + + @Override + public void compose(NettyResponse response) { + response.write(this.gameId, (char)9); + response.write(this.type, (char)9); + //response.write("xo", (char)9); + } + + @Override + public short getHeader() { + return 146; // "BQ" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/ITEMMSG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/ITEMMSG.java new file mode 100644 index 0000000..76ab3e7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/ITEMMSG.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.rooms.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ITEMMSG extends MessageComposer { + private final String[] commands; + + public ITEMMSG(String[] commands) { + this.commands = commands; + } + + @Override + public void compose(NettyResponse response) { + response.write(String.join(Character.toString((char)13), this.commands)); + } + + @Override + public short getHeader() { + return 144; // "BP" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/OPENGAMEBOARD.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/OPENGAMEBOARD.java new file mode 100644 index 0000000..3cd0dd9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/games/OPENGAMEBOARD.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.outgoing.rooms.games; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class OPENGAMEBOARD extends MessageComposer { + private final String gameId; + private final String type; + + public OPENGAMEBOARD(String gameId, String type) { + this.gameId = gameId; + this.type = type; + } + + @Override + public void compose(NettyResponse response) { + response.write(this.gameId, (char)9); + response.write(this.type, (char)9); + //response.write("xo", (char)9); + } + + @Override + public short getHeader() { + return 145; // "BQ" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_BADGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_BADGES.java new file mode 100644 index 0000000..8978639 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_BADGES.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.rooms.groups; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.HashMap; + +public class GROUP_BADGES extends MessageComposer { + private final HashMap groupBadges; + + public GROUP_BADGES(HashMap groupBadges) { + this.groupBadges = groupBadges; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.groupBadges.size()); + + for (var entry : this.groupBadges.entrySet()) { + response.writeInt(entry.getKey()); + response.writeString(entry.getValue()); + } + } + + @Override + public short getHeader() { + return 309; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_INFO.java new file mode 100644 index 0000000..6c39691 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_INFO.java @@ -0,0 +1,36 @@ +package org.alexdev.havana.messages.outgoing.rooms.groups; + +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GROUP_INFO extends MessageComposer { + private final Group group; + + public GROUP_INFO(Group group) { + this.group = group; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.group.getId()); + response.writeString(this.group.getName()); + response.writeString(this.group.getDescription()); + + var room = RoomManager.getInstance().getRoomById(this.group.getRoomId()); + + if (this.group.getRoomId() > 0 && room != null) { + response.writeInt(this.group.getRoomId()); + response.writeString(room.getData().getName()); + } else { + response.writeInt(-1); + response.writeString(""); + } + } + + @Override + public short getHeader() { + return 311; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_MEMBERSHIP_UPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_MEMBERSHIP_UPDATE.java new file mode 100644 index 0000000..89b6a0a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/groups/GROUP_MEMBERSHIP_UPDATE.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.rooms.groups; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GROUP_MEMBERSHIP_UPDATE extends MessageComposer { + private final int instanceId; + private final int groupId; + private final int rankId; + + public GROUP_MEMBERSHIP_UPDATE(int instanceId, int groupId, int rankId) { + this.instanceId = instanceId; + this.groupId = groupId; + this.rankId = rankId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeInt(this.groupId); + response.writeInt(this.rankId); + } + + @Override + public short getHeader() { + return 310; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/BROADCAST_TELEPORTER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/BROADCAST_TELEPORTER.java new file mode 100644 index 0000000..55b3868 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/BROADCAST_TELEPORTER.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class BROADCAST_TELEPORTER extends MessageComposer { + private final Item item; + private final String name; + private final boolean disappearUser; + + public BROADCAST_TELEPORTER(Item item, String name, boolean disappearUser) { + this.item = item; + this.name = name; + this.disappearUser = disappearUser; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.item.getVirtualId()); + response.writeString(this.name); + } + + @Override + public short getHeader() { + if (this.disappearUser) { + return 89; // "AY" + } else { + return 92; // "A\" + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CANNOT_PLACE_STUFF_FROM_STRIP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CANNOT_PLACE_STUFF_FROM_STRIP.java new file mode 100644 index 0000000..3039088 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CANNOT_PLACE_STUFF_FROM_STRIP.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CANNOT_PLACE_STUFF_FROM_STRIP extends MessageComposer { + private final int reasonCode; + + public CANNOT_PLACE_STUFF_FROM_STRIP(int reasonCode) { + this.reasonCode = reasonCode; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.reasonCode); + } + + @Override + public short getHeader() { + return 516; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CHANGESTATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CHANGESTATUS.java new file mode 100644 index 0000000..8612a32 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/CHANGESTATUS.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CHANGESTATUS extends MessageComposer { + private final int status; + private final int itemId; + + public CHANGESTATUS(int itemId, int status) { + this.itemId = itemId; + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.itemId); + response.writeInt(this.status); + } + + @Override + public short getHeader() { + return 312; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/DICE_VALUE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/DICE_VALUE.java new file mode 100644 index 0000000..b3cb4f2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/DICE_VALUE.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class DICE_VALUE extends MessageComposer { + private final int itemId; + private final boolean spin; + private final int randomNumber; + + public DICE_VALUE(int itemId, boolean spin, int randomNumber) { + this.itemId = itemId; + this.spin = spin; + this.randomNumber = randomNumber; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.itemId); + response.writeInt(this.randomNumber); + /* (!this.spin) { + if (this.randomNumber > 0) { + response.writeInt((this.itemId * 38) + this.randomNumber); + } else { + response.writeInt(this.itemId * 38); + } + }*/ + } + + @Override + public short getHeader() { + return 90; // "AZ" + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/IDATA.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/IDATA.java new file mode 100644 index 0000000..1d17929 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/IDATA.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class IDATA extends MessageComposer { + private String colour; + private String text; + private Item item; + + public IDATA(Item item, String colour, String text) { + this.item = item; + this.colour = colour; + this.text = text; + } + + public IDATA(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.item.getVirtualId()); + + if (this.item.hasBehaviour(ItemBehaviour.POST_IT)) { + response.write(this.colour, ' '); + response.writeString(this.text); + } else { + response.writeString(Long.toString(item.getVirtualId()) + " " + item.getCustomData()); + } + } + + @Override + public short getHeader() { + return 48; // "@p" + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/ITEM_DELIVERED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/ITEM_DELIVERED.java new file mode 100644 index 0000000..34e3d84 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/ITEM_DELIVERED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ITEM_DELIVERED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 67; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/JUDGE_GUI_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/JUDGE_GUI_STATUS.java new file mode 100644 index 0000000..861f27b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/JUDGE_GUI_STATUS.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class JUDGE_GUI_STATUS extends MessageComposer { + private final int status; + private final int userId; + + public JUDGE_GUI_STATUS(int status, int userId) { + this.status = status; + this.userId = userId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.status); + + if (this.status == 2) + response.writeInt(this.userId); + } + + @Override + public short getHeader() { + return 490; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/MOVE_FLOORITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/MOVE_FLOORITEM.java new file mode 100644 index 0000000..76f3ce2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/MOVE_FLOORITEM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class MOVE_FLOORITEM extends MessageComposer { + private final Item item; + + public MOVE_FLOORITEM(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + this.item.serialise(response); + } + + @Override + public short getHeader() { + return 95; // "A_ + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_FLOORITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_FLOORITEM.java new file mode 100644 index 0000000..5929518 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_FLOORITEM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PLACE_FLOORITEM extends MessageComposer { + private final Item item; + + public PLACE_FLOORITEM(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + this.item.serialise(response); + } + + @Override + public short getHeader() { + return 93; // "A]" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_WALLITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_WALLITEM.java new file mode 100644 index 0000000..84c42a7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/PLACE_WALLITEM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PLACE_WALLITEM extends MessageComposer { + private final Item item; + + public PLACE_WALLITEM(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + this.item.serialise(response); + } + + @Override + public short getHeader() { + return 83; // "AS" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_FLOORITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_FLOORITEM.java new file mode 100644 index 0000000..9d1419d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_FLOORITEM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class REMOVE_FLOORITEM extends MessageComposer { + private final Item item; + + public REMOVE_FLOORITEM(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.item.getVirtualId()); + } + + @Override + public short getHeader() { + return 94; // "A^" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_WALLITEM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_WALLITEM.java new file mode 100644 index 0000000..cc43503 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/REMOVE_WALLITEM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class REMOVE_WALLITEM extends MessageComposer { + private final Item item; + + public REMOVE_WALLITEM(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.item.getVirtualId()); + } + + @Override + public short getHeader() { + return 84; // "AT" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SHOWPROGRAM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SHOWPROGRAM.java new file mode 100644 index 0000000..d0303df --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SHOWPROGRAM.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SHOWPROGRAM extends MessageComposer { + private final String[] arguments; + public SHOWPROGRAM(String[] arguments) { + this.arguments = arguments; + } + + @Override + public void compose(NettyResponse response) { + response.write(String.join(" ", this.arguments)); + } + + @Override + public short getHeader() { + return 71; // "AG" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SLIDEOBJECTBUNDLE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SLIDEOBJECTBUNDLE.java new file mode 100644 index 0000000..04beec5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/SLIDEOBJECTBUNDLE.java @@ -0,0 +1,56 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.roller.RollingData; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class SLIDEOBJECTBUNDLE extends MessageComposer { + private Item roller; + private List rollingItems; + private RollingData rollingEntity; + + public SLIDEOBJECTBUNDLE(Item roller, List rollingItems, RollingData rollingEntity) { + this.roller = roller; + this.rollingItems = rollingItems; + this.rollingEntity = rollingEntity; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roller.getPosition().getX()); + response.writeInt(this.roller.getPosition().getY()); + response.writeInt(this.roller.getPosition().getSquareInFront().getX()); + response.writeInt(this.roller.getPosition().getSquareInFront().getY()); + response.writeInt(this.rollingItems.size()); + + for (RollingData item : this.rollingItems) { + response.writeInt(item.getItem().getVirtualId()); + response.writeString(StringUtil.format(item.getFromPosition().getZ())); + response.writeString(StringUtil.format(item.getNextPosition().getZ())); + } + + boolean hasEntity = this.rollingEntity != null && this.rollingEntity.getEntity().getRoomUser().getRoom() != null; + + response.writeInt(this.roller.getVirtualId()); + response.writeInt(hasEntity ? 2 : 0); + + if (hasEntity) { + response.writeInt(this.rollingEntity.getEntity().getRoomUser().getInstanceId()); + response.writeString(StringUtil.format(this.rollingEntity.getFromPosition().getZ())); + response.writeString(StringUtil.format(this.rollingEntity.getDisplayHeight())); + } + } + + @Override + public short getHeader() { + return 230; // "Cf" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/STUFFDATAUPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/STUFFDATAUPDATE.java new file mode 100644 index 0000000..9a7fe60 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/STUFFDATAUPDATE.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class STUFFDATAUPDATE extends MessageComposer { + private final Item item; + + public STUFFDATAUPDATE(Item item) { + this.item = item; + } + + @Override + public void compose(NettyResponse response) { + if (this.item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + this.item.serialise(response); + } else { + response.writeString(this.item.getVirtualId()); + response.writeString(this.item.getCustomData()); + } + } + + @Override + public short getHeader() { + if (this.item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + return 85; // "AU" + } else { + return 88; // "AX" + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/TELEPORTER_INIT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/TELEPORTER_INIT.java new file mode 100644 index 0000000..1cf57a2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/items/TELEPORTER_INIT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.items; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TELEPORTER_INIT extends MessageComposer { + private final int teleporterId; + private final int roomId; + + public TELEPORTER_INIT(int teleporterId, int roomId) { + this.teleporterId = teleporterId; + this.roomId = roomId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.teleporterId); + response.writeInt(this.roomId); + } + + @Override + public short getHeader() { + return 62; // "@~" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUARECONTROLLER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUARECONTROLLER.java new file mode 100644 index 0000000..829fc7c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUARECONTROLLER.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class YOUARECONTROLLER extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 42; // "@j" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUAROWNER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUAROWNER.java new file mode 100644 index 0000000..d97aaa3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUAROWNER.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class YOUAROWNER extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 47; // "@o" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUNOTCONTROLLER.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUNOTCONTROLLER.java new file mode 100644 index 0000000..10db4d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/moderation/YOUNOTCONTROLLER.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.moderation; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class YOUNOTCONTROLLER extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 43; // "@k" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPDATA.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPDATA.java new file mode 100644 index 0000000..12719a3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPDATA.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.pool; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class JUMPDATA extends MessageComposer { + private final int instanceId; + private final String divingHandle; + + public JUMPDATA(int instanceId, String divingHandle) { + this.instanceId = instanceId; + this.divingHandle = divingHandle; + } + + @Override + public void compose(NettyResponse response) { + response.write(this.instanceId, (char)13); + response.write(this.divingHandle); + } + + @Override + public short getHeader() { + return 74; // "AJ" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPINGPLACE_OK.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPINGPLACE_OK.java new file mode 100644 index 0000000..5796ac3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/JUMPINGPLACE_OK.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.pool; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class JUMPINGPLACE_OK extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 125; // "A}" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/OPEN_UIMAKOPPI.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/OPEN_UIMAKOPPI.java new file mode 100644 index 0000000..01d7690 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/pool/OPEN_UIMAKOPPI.java @@ -0,0 +1,17 @@ +package org.alexdev.havana.messages.outgoing.rooms.pool; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class OPEN_UIMAKOPPI extends MessageComposer { + + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 96; // "A`" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATCAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATCAT.java new file mode 100644 index 0000000..97a9e74 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATCAT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.settings; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLATCAT extends MessageComposer { + private final int roomId; + private final int categoryId; + + public FLATCAT(int roomId, int categoryId) { + this.roomId = roomId; + this.categoryId = categoryId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roomId); + response.writeInt(this.categoryId); + } + + @Override + public short getHeader() { + return 222; // "C^" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATINFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATINFO.java new file mode 100644 index 0000000..68bfb1c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/FLATINFO.java @@ -0,0 +1,46 @@ +package org.alexdev.havana.messages.outgoing.rooms.settings; + +import org.alexdev.havana.game.fuserights.Fuseright; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FLATINFO extends MessageComposer { + private final boolean overrideLock; + private Player player; + private Room room; + + public FLATINFO(Player player, Room room, boolean overrideLock) { + this.player = player; + this.room = room; + this.overrideLock = overrideLock; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.room.getData().allowSuperUsers()); + response.writeInt(this.overrideLock ? 0 : this.room.getData().getAccessTypeId()); + response.writeInt(this.room.getId()); + + if (this.room.isOwner(player.getDetails().getId())|| this.room.getData().showOwnerName() || this.player.hasFuse(Fuseright.SEE_ALL_ROOMOWNERS)) { + response.writeString(this.room.getData().getOwnerName()); + } else { + response.writeString("-"); + } + + response.writeString(this.room.getModel().getName()); // Is called "marker" in Lingo code + response.writeString(this.room.getData().getName()); + response.writeString(this.room.getData().getDescription()); + response.writeBool(this.room.getData().showOwnerName()); + response.writeBool(this.room.getCategory().hasAllowTrading()); // Allow trading + response.writeInt(this.room.getData().getVisitorsNow()); + response.writeInt(this.room.getData().getVisitorsMax()); + } + + @Override + public short getHeader() { + return 54; // "@v" + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/GOTO_FLAT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/GOTO_FLAT.java new file mode 100644 index 0000000..c22a1c5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/settings/GOTO_FLAT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.settings; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GOTO_FLAT extends MessageComposer { + private final int roomId; + private final String roomName; + + public GOTO_FLAT(int roomId, String roomName) { + this.roomId = roomId; + this.roomName = roomName; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.roomId); + response.writeString(this.roomName); + } + + @Override + public short getHeader() { + return 59; // "@{" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/CHAT_MESSAGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/CHAT_MESSAGE.java new file mode 100644 index 0000000..710a2a8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/CHAT_MESSAGE.java @@ -0,0 +1,54 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CHAT_MESSAGE extends MessageComposer { + public enum ChatMessageType { + CHAT (24), // @X + SHOUT (26), // @Z + WHISPER (25); // @Y + + private final short header; + + ChatMessageType(int header) { + this.header = (short) header; + } + + public short getHeader() { + return header; + } + } + + private final ChatMessageType type; + private final int instanceId; + private String message; + private final int gestureId; + + public CHAT_MESSAGE(ChatMessageType type, int instanceId, String message, int gestureId) { + this.type = type; + this.instanceId = instanceId; + this.message = message; + this.gestureId = gestureId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeString(this.message); + response.writeInt(this.gestureId); + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public short getHeader() { + return this.type.getHeader(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/FIGURE_CHANGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/FIGURE_CHANGE.java new file mode 100644 index 0000000..53dfd35 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/FIGURE_CHANGE.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FIGURE_CHANGE extends MessageComposer { + private final int instanceId; + private final PlayerDetails details; + + public FIGURE_CHANGE(int instanceId, PlayerDetails details) { + this.instanceId = instanceId; + this.details = details; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeString(this.details.getFigure()); + response.writeString(this.details.getSex()); + response.writeString(this.details.getMotto()); + } + + @Override + public short getHeader() { + return 266; // "DJ" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/HOTEL_VIEW.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/HOTEL_VIEW.java new file mode 100644 index 0000000..9416178 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/HOTEL_VIEW.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class HOTEL_VIEW extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 18; // "@R" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/LOGOUT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/LOGOUT.java new file mode 100644 index 0000000..dd7c7fc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/LOGOUT.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class LOGOUT extends MessageComposer { + private final int instanceId; + + public LOGOUT(int instanceId) { + this.instanceId = instanceId; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.instanceId); + } + + @Override + public short getHeader() { + return 29; // "@] + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/RESPECT_NOTIFICATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/RESPECT_NOTIFICATION.java new file mode 100644 index 0000000..2225e89 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/RESPECT_NOTIFICATION.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class RESPECT_NOTIFICATION extends MessageComposer { + private final int userId; + private final int respectPoints; + + public RESPECT_NOTIFICATION(int userId, int respectPoints) { + this.userId = userId; + this.respectPoints = respectPoints; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeInt(this.respectPoints); + } + + @Override + public short getHeader() { + return 440; // "Fx" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TAG_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TAG_LIST.java new file mode 100644 index 0000000..3338ef2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TAG_LIST.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class TAG_LIST extends MessageComposer { + private final List tags; + private final int userId; + + public TAG_LIST(int userId, List tags) { + this.userId = userId; + this.tags = tags; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeInt(this.tags.size()); + + for (String tag : this.tags) { + response.writeString(tag); + } + } + + @Override + public short getHeader() { + return 350; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TYPING_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TYPING_STATUS.java new file mode 100644 index 0000000..4fe043b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/TYPING_STATUS.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TYPING_STATUS extends MessageComposer { + private final int instanceId; + private final boolean typing; + + public TYPING_STATUS(int instanceId, boolean typing) { + this.instanceId = instanceId; + this.typing = typing; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeBool(this.typing); + } + + @Override + public short getHeader() { + return 361; // "Ei" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_CARRY_OBJECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_CARRY_OBJECT.java new file mode 100644 index 0000000..b462d34 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_CARRY_OBJECT.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_CARRY_OBJECT extends MessageComposer { + private final int userId; + private final int carryId; + private final String carryName; + + public USER_CARRY_OBJECT(int userId, int carryId, String carryName) { + this.userId = userId; + this.carryId = carryId; + this.carryName = carryName; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeInt(this.carryId); + response.writeString(this.carryName); + } + + @Override + public short getHeader() { + return 482; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_DANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_DANCE.java new file mode 100644 index 0000000..b6114e0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_DANCE.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_DANCE extends MessageComposer { + private final int instanceId; + private final int danceId; + + public USER_DANCE(int instanceId, int danceId) { + this.instanceId = instanceId; + this.danceId = danceId; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeInt(this.danceId); + } + + @Override + public short getHeader() { + return 480; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_OBJECTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_OBJECTS.java new file mode 100644 index 0000000..e6b7499 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_OBJECTS.java @@ -0,0 +1,131 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityState; +import org.alexdev.havana.game.entity.EntityType; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ConcurrentLinkedQueue; + +public class USER_OBJECTS extends MessageComposer { + private List states; + + public USER_OBJECTS(ConcurrentLinkedQueue entities) { + createEntityStates(new ArrayList<>(entities)); + } + + public USER_OBJECTS(List users) { + createEntityStates(users); + } + + public USER_OBJECTS(Entity entity) { + createEntityStates(List.of(entity)); + } + + private void createEntityStates(List entities) { + this.states = new ArrayList<>(); + + for (Entity user : entities) { + this.states.add(new EntityState( + user.getDetails().getId(), + user.getRoomUser().getInstanceId(), + user.getType(), + user.getDetails(), + user.getRoomUser().getRoom(), + user.getRoomUser().getPosition().copy(), + user.getRoomUser().getStatuses(), + user)); + } + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.states.size()); + + for (EntityState states : states) { + response.writeInt(states.getEntityId()); + response.writeString(states.getDetails().getName()); + response.writeString(states.getDetails().getMotto() + " "); + response.writeString(states.getDetails().getFigure()); + response.writeInt(states.getInstanceId()); + response.writeInt(states.getPosition().getX()); + response.writeInt(states.getPosition().getY()); + response.writeString(StringUtil.format(states.getPosition().getZ())); + response.writeInt(states.getPosition().getRotation()); + + response.writeInt(states.getEntityType().getTypeId()); // TODO: Types + + if (states.getEntityType() == EntityType.PLAYER) { + Player player = (Player) states.getEntity(); + int xp = player.getStatisticManager().getIntValue(PlayerStatistic.XP_EARNED_MONTH); + + response.writeString(states.getDetails().getSex().toUpperCase()); + response.writeInt(xp == 0 ? -1 : xp); + + if (states.getGroupMember() != null) { + response.writeInt(states.getGroupMember().getGroupId()); // Group id + response.writeInt(states.getGroupMember().getMemberRank().getClientRank()); // Group status + } else { + response.writeInt(-1); // Group id + response.writeInt(-1); // Group status + } + + if (states.getRoom() != null && (states.getRoom().getModel().getName().startsWith("pool_") || states.getRoom().getModel().getName().equals("md_a")) && states.getDetails().getPoolFigure().length() > 0) { + response.writeString(states.getDetails().getPoolFigure()); + } else { + response.writeString(""); + } + } + } + + /*for (EntityState states : states) { + response.writeInt(states.getEntityId()); + response.writeString(states.getDetails().getName()); + response.writeString(states.getDetails().getFigure()); + response.writeString(states.getDetails().getName()); + response.writeString(states.getDetails().getMotto()); + response.writeString(states.getDetails().getFigure()); + response.writeInt(states.getInstanceId()); + response.writeInt(states.getPosition().getX()); + response.writeInt(states.getPosition().getY()); + response.writeString(StringUtil.format(states.getPosition().getZ())); + response.writeInt(states.getPosition().getRotation()); + response.writeInt(1); // TODO: Types + response.writeString(Character.toString(Character.toUpperCase(states.getDetails().getSex()))); + + response.writeInt(0); // Group id + response.writeInt(0); // Group status + + response.writeString(""); + + /*response.writeKeyValue("l", states.getPosition().getX() + " " + states.getPosition().getY() + " " + Double.toString(StringUtil.format(states.getPosition().getZ()))); + + if (states.getDetails().getMotto().length() > 0) { + response.writeKeyValue("c", states.getDetails().getMotto()); + } + + if (states.getDetails().getShowBadge()) { + response.writeKeyValue("b", states.getDetails().getCurrentBadge()); + } + + if (states.getRoom().getModel().getName().startsWith("pool_") || + states.getRoom().getModel().getName().equals("md_a")) { + + if (states.getDetails().getPoolFigure().length() > 0) { + response.writeKeyValue("p", states.getDetails().getPoolFigure()); + } + } + }*/ + } + + @Override + public short getHeader() { + return 28; // "@\" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_SLEEP.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_SLEEP.java new file mode 100644 index 0000000..4084137 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_SLEEP.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_SLEEP extends MessageComposer { + private final int instanceId; + private final boolean isSleeping; + + public USER_SLEEP(int instanceId, boolean isSleeping) { + this.instanceId = instanceId; + this.isSleeping = isSleeping; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + response.writeBool(this.isSleeping); + } + + @Override + public short getHeader() { + return 486; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_STATUSES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_STATUSES.java new file mode 100644 index 0000000..7c2e3f0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_STATUSES.java @@ -0,0 +1,111 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.game.entity.Entity; +import org.alexdev.havana.game.entity.EntityState; +import org.alexdev.havana.game.room.enums.StatusType; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; + +public class USER_STATUSES extends PlayerMessageComposer { + private List states; + + public USER_STATUSES(List users) { + createEntityStates(users); + } + + private void createEntityStates(List entities) { + this.states = new ArrayList<>(); + + for (Entity user : entities) { + this.states.add(new EntityState( + user.getDetails().getId(), + user.getRoomUser().getInstanceId(), + user.getType(), + user.getDetails(), + user.getRoomUser().getRoom(), + user.getRoomUser().getPosition().copy(), + user.getRoomUser().getStatuses(), + user)); + } + } + + @Override + public void compose(NettyResponse response) { + var player = getPlayer(); + + response.writeInt(this.states.size()); + + for (EntityState states : states) { + response.writeInt(states.getInstanceId()); + response.writeInt(states.getPosition().getX()); + response.writeInt(states.getPosition().getY()); + + /*if (player.getRoomUser().getRoom().getModel().getName().equals("picnic")) { + if (states.getPosition().getX() == 7 && + states.getPosition().getY() == 24) { + + if (player.getNetwork().isFlashConnected()) { + response.writeString(StringUtil.format(2.0)); + } else { + response.writeString(StringUtil.format(4.0)); + } + } else if (states.getPosition().getX() == 8 && + states.getPosition().getY() == 24) { + if (player.getNetwork().isFlashConnected()) { + response.writeString(StringUtil.format(4.0)); + } else { + response.writeString(StringUtil.format(7.0)); + } + } else { + response.writeString(StringUtil.format(states.getPosition().getZ())); + } + } + else { + response.writeString(StringUtil.format(states.getPosition().getZ())); + }*/ + + //} else { + response.writeString(StringUtil.format(states.getPosition().getZ())); + //} + + response.writeInt(states.getPosition().getHeadRotation()); + response.writeInt(states.getPosition().getBodyRotation()); + response.write("/"); + + for (var status : states.getStatuses().values()) { + response.write(status.getKey().getStatusCode()); + + if (status.getValue().length() > 0) { + response.write(" "); + + if (status.getKey() == StatusType.SIT && + player.getRoomUser().getRoom() != null && + player.getRoomUser().getRoom().getModel().getName().equals("picnic")) { + + if (states.getPosition().getX() == 8 && + states.getPosition().getY() == 24) { + response.writeString(StringUtil.format(7.0)); + } else { + response.write(status.getValue()); + } + } else { + response.write(status.getValue()); + } + } + + response.write("/"); + } + + response.write((char)2); + } + } + + @Override + public short getHeader() { + return 34; // "@b" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_USE_OBJECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_USE_OBJECT.java new file mode 100644 index 0000000..e739541 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_USE_OBJECT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_USE_OBJECT extends MessageComposer { + private final int userId; + private final int carryId; + + public USER_USE_OBJECT(int userId, int carryId) { + this.userId = userId; + this.carryId = carryId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeInt(this.carryId); + } + + @Override + public short getHeader() { + return 488; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_WAVE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_WAVE.java new file mode 100644 index 0000000..7ca8e70 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/USER_WAVE.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_WAVE extends MessageComposer { + private final int instanceId; + + public USER_WAVE(int instanceId) { + this.instanceId = instanceId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.instanceId); + } + + @Override + public short getHeader() { + return 481; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/YOUARESPECTATOR.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/YOUARESPECTATOR.java new file mode 100644 index 0000000..81be5cc --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/rooms/user/YOUARESPECTATOR.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.rooms.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class YOUARESPECTATOR extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 254; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_INFO.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_INFO.java new file mode 100644 index 0000000..38296c2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_INFO.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SONG_INFO extends MessageComposer { + private final Song song; + + public SONG_INFO(Song song) { + this.song = song; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.song.getId()); + response.writeString(this.song.getTitle()); + response.writeString(this.song.getData()); + } + + @Override + public short getHeader() { + return 300; // "Dl" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LIST.java new file mode 100644 index 0000000..ec17dbe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LIST.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class SONG_LIST extends MessageComposer { + private final List songList; + + public SONG_LIST(List songList) { + this.songList = songList; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.songList.size()); + + for (Song song : this.songList) { + response.writeInt(song.getId()); + response.writeInt(ItemManager.getInstance().calculateSongLength(song.getData()) / 2); + response.writeString(song.getTitle()); + response.writeBool(song.isBurnt()); + } + } + + @Override + public short getHeader() { + return 322; // "EB" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LOCKED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LOCKED.java new file mode 100644 index 0000000..d96d847 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_LOCKED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SONG_LOCKED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 336; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_NEW.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_NEW.java new file mode 100644 index 0000000..394a181 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_NEW.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SONG_NEW extends MessageComposer { + private final int itemId; + private final String title; + + public SONG_NEW(int id, String title) { + this.itemId = id; + this.title = title; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.itemId); + response.writeString(this.title); + } + + @Override + public short getHeader() { + return 331; // "EK" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_PLAYLIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_PLAYLIST.java new file mode 100644 index 0000000..ac0047f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_PLAYLIST.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.song.SongPlaylist; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class SONG_PLAYLIST extends MessageComposer { + private final List songPlaylist; + + public SONG_PLAYLIST(List songPlaylist) { + this.songPlaylist = songPlaylist; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + response.writeInt(this.songPlaylist.size()); + + int slotId = 1; + for (SongPlaylist playlist : this.songPlaylist) { + response.writeInt(playlist.getSong().getId()); + response.writeInt(ItemManager.getInstance().calculateSongLength(playlist.getSong().getData()) / 2); + response.writeString(playlist.getSong().getTitle()); + response.writeString(PlayerDao.getName(playlist.getSong().getUserId())); + slotId++; + } + } + + @Override + public short getHeader() { + return 323; // "EC" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_UPDATE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_UPDATE.java new file mode 100644 index 0000000..a88f78c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SONG_UPDATE.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SONG_UPDATE extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 339; // "ES" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SOUND_PACKAGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SOUND_PACKAGES.java new file mode 100644 index 0000000..2f4dd41 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/SOUND_PACKAGES.java @@ -0,0 +1,40 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Map; + +public class SOUND_PACKAGES extends MessageComposer { + private final Map tracks; + + public SOUND_PACKAGES(Map tracks) { + this.tracks = tracks; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(4); + response.writeInt(this.tracks.size()); + + for (var set : this.tracks.entrySet()) { + int slotId = set.getKey(); + int soundSet = set.getValue(); + + response.writeInt(slotId); + response.writeInt(soundSet); + response.writeInt(9); // 9 samples per set + + int v = (soundSet * 9) - 8; + + for (int j = v; j <= v + 8; j++) { + response.writeInt(j); + } + } + } + + @Override + public short getHeader() { + return 301; // "Dm" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/START_PLAYING_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/START_PLAYING_SONG.java new file mode 100644 index 0000000..28001ca --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/START_PLAYING_SONG.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class START_PLAYING_SONG extends MessageComposer { + private final int id; + + public START_PLAYING_SONG(int id) { + this.id = id; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.id); + } + + @Override + public short getHeader() { + return 493; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/STOP_PLAYING_SONG.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/STOP_PLAYING_SONG.java new file mode 100644 index 0000000..fe679b5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/STOP_PLAYING_SONG.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class STOP_PLAYING_SONG extends MessageComposer { + private final int id; + + public STOP_PLAYING_SONG(int id) { + this.id = id; + } + + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 494; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/USER_SOUND_PACKAGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/USER_SOUND_PACKAGES.java new file mode 100644 index 0000000..fe1affe --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/songs/USER_SOUND_PACKAGES.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.songs; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class USER_SOUND_PACKAGES extends MessageComposer { + private final List handSoundsets; + + public USER_SOUND_PACKAGES(List handSoundsets) { + this.handSoundsets = handSoundsets; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.handSoundsets.size()); + + for (Integer songTrackId : this.handSoundsets) { + response.writeInt(songTrackId); + } + } + + @Override + public short getHeader() { + return 302; // "Dn" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/ITEM_NOT_TRADABLE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/ITEM_NOT_TRADABLE.java new file mode 100644 index 0000000..49afe62 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/ITEM_NOT_TRADABLE.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ITEM_NOT_TRADABLE extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 515; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEACCEPT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEACCEPT.java new file mode 100644 index 0000000..9a742c8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEACCEPT.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADEACCEPT extends MessageComposer { + private final int userId; + private final boolean status; + + public TRADEACCEPT(int id, boolean status) { + this.userId = id; + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeBool(this.status); + } + + @Override + public short getHeader() { + return 109; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADECONFIRM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADECONFIRM.java new file mode 100644 index 0000000..48f8f90 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADECONFIRM.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADECONFIRM extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 111; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEOPEN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEOPEN.java new file mode 100644 index 0000000..c3c4da3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADEOPEN.java @@ -0,0 +1,31 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADEOPEN extends MessageComposer { + private final int userId; + private final boolean userCanTrade; + private final int partnerId; + private final boolean partnerCanTrade; + + public TRADEOPEN(int userId, boolean userCanTrade, int partnerId, boolean partnerCanTrade) { + this.userId = userId; + this.userCanTrade = userCanTrade; + this.partnerId = partnerId; + this.partnerCanTrade = partnerCanTrade; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userId); + response.writeBool(this.userCanTrade); + response.writeInt(this.partnerId); + response.writeBool(this.partnerCanTrade); // User can trade. TODO: Honour user settings + } + + @Override + public short getHeader() { + return 104; // "Ah" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ALREADY_OPEN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ALREADY_OPEN.java new file mode 100644 index 0000000..638583a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ALREADY_OPEN.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADE_ALREADY_OPEN extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 105; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_CLOSE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_CLOSE.java new file mode 100644 index 0000000..07442a7 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_CLOSE.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADE_CLOSE extends MessageComposer { + private int userClosedId; + + public TRADE_CLOSE(int userClosedId) { + this.userClosedId = userClosedId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.userClosedId); + } + + @Override + public short getHeader() { + return 110; // "An" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_COMPLETED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_COMPLETED.java new file mode 100644 index 0000000..b870535 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_COMPLETED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TRADE_COMPLETED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 112; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ITEMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ITEMS.java new file mode 100644 index 0000000..9f5bdd9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/trade/TRADE_ITEMS.java @@ -0,0 +1,84 @@ +package org.alexdev.havana.messages.outgoing.trade; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.base.ItemBehaviour; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class TRADE_ITEMS extends MessageComposer { + private final Player player; + private final List ownItems; + private final Player tradePartner; + private final List partnerItems; + + public TRADE_ITEMS(Player player, List ownItems, Player tradePartner, List partnerItems) { + this.player = player; + this.ownItems = ownItems; + this.tradePartner = tradePartner; + this.partnerItems = partnerItems; + } + + @Override + public void compose(NettyResponse response) { + /*response.write(this.player.getDetails().getName(), (char) 9); + response.write(this.playerAcceptedTrade ? "true" : "false", (char) 9); + + for (int i = 0; i < this.ownItems.size(); i++) { + Item item = this.ownItems.get(i); + Inventory.serialise(response, item, i); + } + + response.write((char) 13); + + response.write(this.tradePartner.getDetails().getName(), (char) 9); + response.write(this.partnerAcceptedTrade ? "true" : "false", (char) 9); + + for (int i = 0; i < this.partnerItems.size(); i++) { + Item item = this.partnerItems.get(i); + Inventory.serialise(response, item, i); + }*/ + + response.writeInt(this.player.getDetails().getId()); + response.writeInt(this.ownItems.size()); + + int j = 0; + for (Item item : this.ownItems) { + this.serialiseItem(response, item); + //Inventory.serialise(response, item, j++); + } + + response.writeInt(this.tradePartner.getDetails().getId()); + response.writeInt(this.partnerItems.size()); + + int i = 0; + for (Item item : this.partnerItems) { + this.serialiseItem(response, item); + //Inventory.serialise(response, item, i++); + } + } + + private void serialiseItem(NettyResponse response, Item item) { + response.writeInt(item.getVirtualId()); + response.writeString(item.hasBehaviour(ItemBehaviour.WALL_ITEM) ? "i" : "s"); + response.writeInt(item.getVirtualId()); + response.writeInt(item.getDefinition().getSpriteId()); + response.writeInt(-1); + response.writeInt(-1); + response.writeString(item.getCustomData()); + response.writeInt(-1); + response.writeInt(-1); + response.writeInt(-1); + + if (!item.hasBehaviour(ItemBehaviour.WALL_ITEM)) { + response.writeInt(-1); + } + } + + @Override + public short getHeader() { + return 108; // "Al" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/ENABLE_TUTOR_SERVICE_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/ENABLE_TUTOR_SERVICE_STATUS.java new file mode 100644 index 0000000..3cd6057 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/ENABLE_TUTOR_SERVICE_STATUS.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ENABLE_TUTOR_SERVICE_STATUS extends MessageComposer { + public enum TutorEnableStatus { + FRIENDSLIST_FULL(2), + SERVICE_DISABLED(3), + MAX_NEWBIES(4); + + private final int stateId; + + TutorEnableStatus(int stateId) { + this.stateId = stateId; + } + + public int getStateId() { + return stateId; + } + } + + private final TutorEnableStatus status; + + public ENABLE_TUTOR_SERVICE_STATUS(TutorEnableStatus status) { + this.status = status; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.status.getStateId()); + } + + @Override + public short getHeader() { + return 426; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/GUIDE_FOUND.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/GUIDE_FOUND.java new file mode 100644 index 0000000..8f57c04 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/GUIDE_FOUND.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class GUIDE_FOUND extends MessageComposer { + private final int accountId; + + public GUIDE_FOUND(int accountId) { + this.accountId = accountId; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.accountId); + } + + @Override + public short getHeader() { + return 423; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITATION_SENT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITATION_SENT.java new file mode 100644 index 0000000..50537f8 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITATION_SENT.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITATION_SENT extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 421; // "Fe" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_CANCELLED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_CANCELLED.java new file mode 100644 index 0000000..c9eff2b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_CANCELLED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITE_CANCELLED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 360; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_FOLLOW_FAILED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_FOLLOW_FAILED.java new file mode 100644 index 0000000..8863927 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITE_FOLLOW_FAILED.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITE_FOLLOW_FAILED extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 359; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITING_COMPLETED.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITING_COMPLETED.java new file mode 100644 index 0000000..18c80ad --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/INVITING_COMPLETED.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class INVITING_COMPLETED extends MessageComposer { + public enum InvitationResult { + SUCCESS, + FAILURE; + } + + private InvitationResult result; + + public INVITING_COMPLETED(InvitationResult result) { + this.result = result; + } + + @Override + public void compose(NettyResponse response) { + if (this.result == InvitationResult.SUCCESS) { + response.writeBool(true); + } else { + response.writeBool(false); + } + } + + @Override + public short getHeader() { + return 357; // "Ee" + } +} + diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/TUTORS_AVAILABLE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/TUTORS_AVAILABLE.java new file mode 100644 index 0000000..e0bc54b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/tutorial/TUTORS_AVAILABLE.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.tutorial; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TUTORS_AVAILABLE extends MessageComposer { + private final int tutors; + + public TUTORS_AVAILABLE(int tutors) { + this.tutors = tutors; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.tutors); + } + + @Override + public short getHeader() { + return 356; // "Ed" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORED_LIST.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORED_LIST.java new file mode 100644 index 0000000..60a43f6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORED_LIST.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.Set; + +public class IGNORED_LIST extends MessageComposer { + private final Set ignoreList; + + public IGNORED_LIST(Set ignoreList) { + this.ignoreList = ignoreList; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.ignoreList.size()); + + for (String username : this.ignoreList) { + response.writeString(username); + } + } + + @Override + public short getHeader() { + return 420; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORE_USER_RESULT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORE_USER_RESULT.java new file mode 100644 index 0000000..17955ee --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/IGNORE_USER_RESULT.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class IGNORE_USER_RESULT extends MessageComposer { + private final int result; + + public IGNORE_USER_RESULT(int result) { + this.result = result; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.result); + } + + @Override + public short getHeader() { + return 419; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/LATENCY.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/LATENCY.java new file mode 100644 index 0000000..2ffea16 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/LATENCY.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class LATENCY extends MessageComposer { + private final int latency; + + public LATENCY(int latency) { + this.latency = latency; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.latency); + } + + @Override + public short getHeader() { + return 354; // "Eb" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/PING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/PING.java new file mode 100644 index 0000000..3891b93 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/PING.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PING extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 50; // "@r" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/POSSIBLE_ACHIEVEMENTS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/POSSIBLE_ACHIEVEMENTS.java new file mode 100644 index 0000000..0e98117 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/POSSIBLE_ACHIEVEMENTS.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.game.achievements.AchievementInfo; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.StringUtil; + +import java.util.List; + +public class POSSIBLE_ACHIEVEMENTS extends MessageComposer { + private List possibleAchievements; + + public POSSIBLE_ACHIEVEMENTS(List possibleAchievements) { + this.possibleAchievements = possibleAchievements; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.possibleAchievements.size()); + + for (var achievement : this.possibleAchievements) { + response.writeInt(achievement.getId()); + response.writeInt(achievement.getLevel()); + + if (achievement.getName().equals("GL")) { + response.writeString(String.format("%s%s", achievement.getName(), StringUtil.toAlphabetic(achievement.getLevel()))); + } else { + response.writeString(String.format("%s%d", achievement.getName(), achievement.getLevel())); + } + + } + } + + @Override + public short getHeader() { + return 436; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/USER_OBJECT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/USER_OBJECT.java new file mode 100644 index 0000000..2826eb3 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/USER_OBJECT.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.user; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class USER_OBJECT extends MessageComposer { + private final PlayerDetails details; + + public USER_OBJECT(PlayerDetails details) { + this.details = details; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.details.getId()); + response.writeString(this.details.getName()); + response.writeString(this.details.getFigure()); + response.writeString(this.details.getSex()); + response.writeString(this.details.getMotto()); + response.writeInt(this.details.getTickets()); + response.writeString(this.details.getPoolFigure()); + response.writeInt(this.details.getFilm()); + response.writeBool(false); // directMail + response.writeInt(this.details.getDailyRespectPoints() > 0 ? this.details.getRespectPoints() : 0);//this.details.getRespectPoints()); + response.writeInt(this.details.getDailyRespectPoints() > 0 ? this.details.getDailyRespectPoints() : 0); + } + + @Override + public short getHeader() { + return 5; // "@E" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/ACHIEVEMENT_NOTIFICATION.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/ACHIEVEMENT_NOTIFICATION.java new file mode 100644 index 0000000..a4da136 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/ACHIEVEMENT_NOTIFICATION.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.messages.outgoing.user.badges; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ACHIEVEMENT_NOTIFICATION extends MessageComposer { + private final int typeId; + private final int level; + private final String badgeCode; + private final String badgeRemove; + + public ACHIEVEMENT_NOTIFICATION(String badgeCode, String badgeRemove, int level) { + this.typeId = 0; + this.level = level; + this.badgeCode = badgeCode; + this.badgeRemove = badgeRemove; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.typeId); + response.writeInt(this.level); + response.writeString(this.badgeCode); + response.writeString(this.badgeRemove == null ? "" : this.badgeRemove); + } + + @Override + public short getHeader() { + return 437; // "Fu" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/AVAILABLE_BADGES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/AVAILABLE_BADGES.java new file mode 100644 index 0000000..b6d50d0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/AVAILABLE_BADGES.java @@ -0,0 +1,39 @@ +package org.alexdev.havana.messages.outgoing.user.badges; + +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class AVAILABLE_BADGES extends MessageComposer { + private final List badges; + private final List equippedBadges; + + public AVAILABLE_BADGES(List badges, List equippedBadges) { + this.badges = badges; + this.equippedBadges = equippedBadges; + } + + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.badges.size()); + + for (Badge badge : this.badges) { + response.writeString(badge.getBadgeCode()); + } + + response.writeInt(this.equippedBadges.size()); + + for (Badge badge : this.equippedBadges) { + response.writeInt(badge.getSlotId()); + response.writeString(badge.getBadgeCode()); + } + } + + @Override + public short getHeader() { + return 229; // "Ce" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/USERBADGE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/USERBADGE.java new file mode 100644 index 0000000..4a4d701 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/badges/USERBADGE.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.user.badges; + +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class USERBADGE extends PlayerMessageComposer { + private final int userId; + private final List equippedBadges; + + public USERBADGE(int userId, List equippedBadges) { + this.userId = userId; + this.equippedBadges = equippedBadges; + } + + @Override + public void compose(NettyResponse response) { + response.writeString(this.userId); + response.writeInt(this.equippedBadges.size()); + + for (Badge badge : this.equippedBadges) { + response.writeInt(badge.getSlotId()); + response.writeString(badge.getBadgeCode()); + } + } + + @Override + public short getHeader() { + return 228; // "Cd" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/ActivityPointNotification.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/ActivityPointNotification.java new file mode 100644 index 0000000..c57aa42 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/ActivityPointNotification.java @@ -0,0 +1,42 @@ +package org.alexdev.havana.messages.outgoing.user.currencies; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ActivityPointNotification extends MessageComposer { + public enum ActivityPointAlertType { + PIXELS_RECEIVED, + PIXELS_SOUND, + NO_SOUND, + } + + private final int pixels; + private final ActivityPointAlertType alertType; + + public ActivityPointNotification(int pixels, ActivityPointAlertType alertType) { + this.pixels = pixels; + this.alertType = alertType; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.pixels); + + if (this.alertType == ActivityPointAlertType.PIXELS_RECEIVED) { + response.writeInt(15); + } + + if (this.alertType == ActivityPointAlertType.PIXELS_SOUND) { + response.writeInt(-1); + } + + if (this.alertType == ActivityPointAlertType.NO_SOUND) { + response.writeInt(0); + } + } + + @Override + public short getHeader() { + return 438; // "Fv" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/CREDIT_BALANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/CREDIT_BALANCE.java new file mode 100644 index 0000000..8244970 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/CREDIT_BALANCE.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.user.currencies; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class CREDIT_BALANCE extends MessageComposer { + private final int credits; + + public CREDIT_BALANCE(int credits) { + this.credits = credits; + } + + + @Override + public void compose(NettyResponse response) { + response.write(this.credits); + } + + @Override + public short getHeader() { + return 6; // "@F + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/FILM.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/FILM.java new file mode 100644 index 0000000..b01391e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/FILM.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.user.currencies; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class FILM extends MessageComposer { + private final int film; + + public FILM(PlayerDetails details) { + this.film = details.getFilm(); + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.film); + } + + @Override + public short getHeader() { + return 4; // "@D" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/NO_TICKETS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/NO_TICKETS.java new file mode 100644 index 0000000..1f9a2ba --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/NO_TICKETS.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.user.currencies; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class NO_TICKETS extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 73; // "AI" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/TICKET_BALANCE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/TICKET_BALANCE.java new file mode 100644 index 0000000..d17543d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/currencies/TICKET_BALANCE.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.messages.outgoing.user.currencies; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class TICKET_BALANCE extends MessageComposer { + private final int tickets; + + public TICKET_BALANCE(int tickets) { + this.tickets = tickets; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.tickets); + } + + @Override + public short getHeader() { + return 124; // "A|" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/ACCOUNT_PREFERENCES.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/ACCOUNT_PREFERENCES.java new file mode 100644 index 0000000..715f60f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/ACCOUNT_PREFERENCES.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.messages.outgoing.user.settings; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class ACCOUNT_PREFERENCES extends MessageComposer { + private final PlayerDetails details; + + public ACCOUNT_PREFERENCES(PlayerDetails details) { + this.details = details; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.details.getSoundSetting()); + } + + @Override + public short getHeader() { + return 308; // "Dt": [[#tutorial_handler, #handleAccountPreferences]] + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/HELP_ITEMS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/HELP_ITEMS.java new file mode 100644 index 0000000..4ff8873 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/HELP_ITEMS.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.messages.outgoing.user.settings; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +import java.util.List; + +public class HELP_ITEMS extends MessageComposer { + private final List tutorialFlags; + + public HELP_ITEMS(List tutorialFlags) { + this.tutorialFlags = tutorialFlags; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.tutorialFlags.size()); + + for (int flag : this.tutorialFlags) { + response.writeInt(flag); + } + + } + + @Override + public short getHeader() { + return 352; // "E`" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/SOUND_SETTING.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/SOUND_SETTING.java new file mode 100644 index 0000000..e5c5062 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/user/settings/SOUND_SETTING.java @@ -0,0 +1,24 @@ +package org.alexdev.havana.messages.outgoing.user.settings; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class SOUND_SETTING extends MessageComposer { + private final PlayerDetails details; + + public SOUND_SETTING(PlayerDetails details) { + this.details = details; + } + + @Override + public void compose(NettyResponse response) { + response.writeBool(this.details.getSoundSetting()); + response.writeInt(0); // TODO: find out why this is needed + } + + @Override + public short getHeader() { + return 308; // "Dt": [[#login_handler, #handleSoundSetting]] + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_END.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_END.java new file mode 100644 index 0000000..fe47253 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_END.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_END extends MessageComposer { + @Override + public void compose(NettyResponse response) { + + } + + @Override + public short getHeader() { + return 116; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_PREPARE.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_PREPARE.java new file mode 100644 index 0000000..1091d64 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_PREPARE.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabblePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_PREPARE extends MessageComposer { + private final WobbleSquabblePlayer player1; + private final WobbleSquabblePlayer player2; + + public PT_PREPARE(WobbleSquabblePlayer player1, WobbleSquabblePlayer player2) { + this.player1 = player1; + this.player2 = player2; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.player1.getPlayer().getRoomUser().getInstanceId()); + response.writeInt(this.player2.getPlayer().getRoomUser().getInstanceId()); + } + + @Override + public short getHeader() { + return 115; // "As" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_START.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_START.java new file mode 100644 index 0000000..ef62192 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_START.java @@ -0,0 +1,27 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabblePlayer; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_START extends MessageComposer { + private final WobbleSquabblePlayer player1; + private final WobbleSquabblePlayer player2; + + public PT_START(WobbleSquabblePlayer player1, WobbleSquabblePlayer player2) { + this.player1 = player1; + this.player2 = player2; + } + + @Override + public void compose(NettyResponse response) { + response.writeInt(this.player1.getPlayer().getRoomUser().getInstanceId()); + response.writeInt(this.player2.getPlayer().getRoomUser().getInstanceId()); + } + + @Override + public short getHeader() { + return 114; // "Ar" + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_STATUS.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_STATUS.java new file mode 100644 index 0000000..a650a43 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_STATUS.java @@ -0,0 +1,33 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabblePlayer; +import org.alexdev.havana.game.games.wobblesquabble.WobbleSquabbleStatus; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_STATUS extends MessageComposer { + private final WobbleSquabbleStatus[] statuses; + + public PT_STATUS(WobbleSquabblePlayer wsPlayer1, WobbleSquabblePlayer wsPlayer2) { + this.statuses = new WobbleSquabbleStatus[2]; + this.statuses[0] = new WobbleSquabbleStatus(wsPlayer1.getPosition(), wsPlayer1.getBalance(), wsPlayer1.getMove(), wsPlayer1.isHit()); + this.statuses[1] = new WobbleSquabbleStatus(wsPlayer2.getPosition(), wsPlayer2.getBalance(), wsPlayer2.getMove(), wsPlayer2.isHit()); + } + + @Override + public void compose(NettyResponse response) { + for (int i = 0; i < 2; i++) { + WobbleSquabbleStatus wsStatus = this.statuses[i]; + + response.writeInt(wsStatus.getPosition()); + response.writeInt(wsStatus.getBalance()); + response.writeInt(wsStatus.getMove().getId()); + response.writeBool(wsStatus.isHit()); + } + } + + @Override + public short getHeader() { + return 118; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_TIMEOUT.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_TIMEOUT.java new file mode 100644 index 0000000..e9e11a4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_TIMEOUT.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_TIMEOUT extends MessageComposer { + @Override + public void compose(NettyResponse response) { + response.writeInt(0); + } + + @Override + public short getHeader() { + return 117; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_WIN.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_WIN.java new file mode 100644 index 0000000..2a989ef --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/outgoing/wobblesquabble/PT_WIN.java @@ -0,0 +1,28 @@ +package org.alexdev.havana.messages.outgoing.wobblesquabble; + +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public class PT_WIN extends MessageComposer { + private final int winner; + + public PT_WIN(int winner) { + this.winner = winner; + } + + @Override + public void compose(NettyResponse response) { + if (this.winner == -1) { + response.writeInt(0); + } else if (this.winner == 1) { + response.writeInt(-1); + } else if (this.winner == 0) { + response.writeInt(1); + } + } + + @Override + public short getHeader() { + return 119; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageComposer.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageComposer.java new file mode 100644 index 0000000..d202152 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageComposer.java @@ -0,0 +1,15 @@ +package org.alexdev.havana.messages.types; + +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public abstract class MessageComposer { + /** + * Write the message to send back to the client. + */ + public abstract void compose(NettyResponse response); + + /** + * Get the header + */ + public abstract short getHeader(); +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageEvent.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageEvent.java new file mode 100644 index 0000000..1911bc1 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/MessageEvent.java @@ -0,0 +1,16 @@ +package org.alexdev.havana.messages.types; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.server.util.MalformedPacketException; + +public interface MessageEvent { + + /** + * Handle the incoming client message. + * + * @param player the player + * @param reader the reader + */ + void handle(Player player, NettyRequest reader) throws Exception; +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/messages/types/PlayerMessageComposer.java b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/PlayerMessageComposer.java new file mode 100644 index 0000000..4dc8e46 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/messages/types/PlayerMessageComposer.java @@ -0,0 +1,26 @@ +package org.alexdev.havana.messages.types; + +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.server.netty.streams.NettyResponse; + +public abstract class PlayerMessageComposer extends MessageComposer { + private Player player; + + /** + * The player currently handling the packet for + * + * @return the player. + */ + public Player getPlayer() { + return player; + } + + /** + * Sets the player currently being handled for. + * + * @param player the player + */ + public void setPlayer(Player player) throws Exception { + this.player = player; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusChannelInitializer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusChannelInitializer.java new file mode 100644 index 0000000..29ca8ad --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusChannelInitializer.java @@ -0,0 +1,25 @@ +package org.alexdev.havana.server.mus; + +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.socket.SocketChannel; +import io.netty.handler.codec.LengthFieldBasedFrameDecoder; +import org.alexdev.havana.server.mus.codec.MusNetworkDecoder; +import org.alexdev.havana.server.mus.codec.MusNetworkEncoder; + +public class MusChannelInitializer extends ChannelInitializer { + private final MusServer musServer; + + public MusChannelInitializer(MusServer musServer) { + this.musServer = musServer; + } + + @Override + protected void initChannel(SocketChannel socketChannel) throws Exception { + ChannelPipeline pipeline = socketChannel.pipeline(); + pipeline.addLast("frameDecoder",new LengthFieldBasedFrameDecoder(1683226630, 2, 4, 0, 0)); + pipeline.addLast("gameDecoder", new MusNetworkDecoder()); + pipeline.addLast("gameEncoder", new MusNetworkEncoder()); + pipeline.addLast("handler", new MusConnectionHandler()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusConnectionHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusConnectionHandler.java new file mode 100644 index 0000000..cd73b66 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusConnectionHandler.java @@ -0,0 +1,192 @@ +package org.alexdev.havana.server.mus; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.util.AttributeKey; +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.dao.mysql.PhotoDao; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.Photo; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.user.currencies.FILM; +import org.alexdev.havana.server.mus.connection.MusClient; +import org.alexdev.havana.server.mus.streams.MusMessage; +import org.alexdev.havana.server.mus.streams.MusPropList; +import org.alexdev.havana.server.mus.streams.MusTypes; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +public class MusConnectionHandler extends SimpleChannelInboundHandler { + final private static AttributeKey MUS_CLIENT_KEY = AttributeKey.valueOf("MusClient"); + final private static Logger log = LoggerFactory.getLogger(MusConnectionHandler.class); + + public MusConnectionHandler() { } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) { + MusClient client = new MusClient(ctx.channel()); + ctx.channel().attr(MUS_CLIENT_KEY).set(client); + } + + @Override + public void channelRead0(ChannelHandlerContext ctx, MusMessage message) { + MusMessage reply; + MusClient client = ctx.channel().attr(MUS_CLIENT_KEY).get(); + + if (client == null) { + ctx.close(); + return; + } + + try { + //log.info("[MUS] Message from {}: {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0], message.toString()); + + if (message.getSubject().equals("Logon")) { + reply = new MusMessage(); + reply.setSubject("Logon"); + reply.setContentType(MusTypes.String); + reply.setContentString("Havana: Habbo Hotel shockwave emulator"); + ctx.channel().writeAndFlush(reply); + + reply = new MusMessage(); + reply.setSubject("HELLO"); + reply.setContentType(MusTypes.String); + reply.setContentString(""); + ctx.channel().writeAndFlush(reply); + } + + if (message.getSubject().equals("LOGIN")) { + String[] credentials = message.getContentString().split(" ", 2); + + if (!StringUtils.isNumeric(credentials[0])) { + return; + } + + int userId = Integer.valueOf(credentials[0]); + Player player = PlayerManager.getInstance().getPlayerById(userId); + + // Er, ma, gerd, we logged in! ;O + if (player != null && NettyPlayerNetwork.getIpAddress(player.getNetwork().getChannel()).equals(NettyPlayerNetwork.getIpAddress(ctx.channel()))) { + client.setUserId(userId); + } else { + ctx.channel().close(); // Lol, bye, imposter scum! + } + } + + if (message.getSubject().equals("PHOTOTXT")) { + if (client.getUserId() > 0) { + var photoText = StringUtil.filterInput(message.getContentString().substring(1), true); + + if (photoText.length() >= 105) { + photoText = photoText.substring(0, 105); + } + + client.setPhotoText(photoText); + } + } + + if (message.getSubject().equals("BINDATA")) { + Player player = PlayerManager.getInstance().getPlayerById(client.getUserId()); + + if (player == null) { + return; + } + + if (client.getUserId() < 1) { + return; + } + + if (player.getRoomUser().getRoom() == null) { + return; + } + + long timeSeconds = DateUtil.getCurrentTimeSeconds(); + + String time = message.getContentPropList().getPropAsString("time"); + Integer cs = message.getContentPropList().getPropAsInt("cs"); + byte[] image = message.getContentPropList().getPropAsBytes("image"); + String photoText = client.getPhotoText(); + + Item photo = new Item(); + photo.setOwnerId(client.getUserId()); + photo.setDefinitionId(ItemManager.getInstance().getDefinitionBySprite("photo").getId()); + photo.setCustomData(DateUtil.getDate(timeSeconds, DateUtil.LONG_DATE) + "\r" + photoText); + ItemDao.newItem(photo); + + PhotoDao.addPhoto(photo.getDatabaseId(), client.getUserId(), DateUtil.getCurrentTimeSeconds(), image, cs); + + reply = new MusMessage(); + reply.setSubject("BINDATA_SAVED"); + reply.setContentType(MusTypes.String); + reply.setContentString(Integer.toString(client.getUserId())); + ctx.channel().writeAndFlush(reply); + + player.getInventory().addItem(photo); + player.getInventory().getView("new"); + + CurrencyDao.decreaseFilm(player.getDetails(), 1); + player.send(new FILM(player.getDetails())); + } + + if (message.getSubject().equals("GETBINDATA")) { + int photoID = Integer.parseInt(message.getContentString().split(" ")[0]); + + Player player = PlayerManager.getInstance().getPlayerById(client.getUserId()); + + if (player == null || player.getRoomUser().getRoom() == null) { + return; + } + + Item item = player.getRoomUser().getRoom().getItemManager().getById(photoID); + + if (item == null) { + return; + } + + long databaseId = item.getDatabaseId(); + Photo photo = PhotoDao.getPhoto(databaseId); + + if (photo == null) { + return; + } + + if (client.getUserId() < 1) { + return; + } + + reply = new MusMessage(); + reply.setSubject("BINARYDATA"); + reply.setContentType(MusTypes.PropList); + reply.setContentPropList(new MusPropList(3)); + reply.getContentPropList().setPropAsBytes("image", MusTypes.Media, photo.getData()); + reply.getContentPropList().setPropAsString("time", DateUtil.getDate(photo.getTime(), DateUtil.LONG_DATE)); + reply.getContentPropList().setPropAsInt("cs", photo.getChecksum()); + ctx.channel().writeAndFlush(reply); + } + + } catch (Exception ex) { + Log.getErrorLogger().error("Exception occurred when handling MUS message: ", ex); + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { + if (cause instanceof Exception) { + if (!(cause instanceof IOException)) { + Log.getErrorLogger().error("[MUS] Netty error occurred: ", cause); + } + } + + ctx.close(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusServer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusServer.java new file mode 100644 index 0000000..eaf591a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusServer.java @@ -0,0 +1,123 @@ +package org.alexdev.havana.server.mus; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.FixedRecvByteBufAllocator; +import io.netty.channel.epoll.Epoll; +import io.netty.channel.epoll.EpollEventLoopGroup; +import io.netty.channel.epoll.EpollServerSocketChannel; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.alexdev.havana.log.Log; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; +import java.util.concurrent.atomic.AtomicInteger; + +public class MusServer { + final private static int BACK_LOG = 20; + final private static int BUFFER_SIZE = 2048; + final private static Logger log = LoggerFactory.getLogger(MusServer.class); + + private final String ip; + private final int port; + + private DefaultChannelGroup channels; + private ServerBootstrap bootstrap; + private AtomicInteger connectionIds; + + private EventLoopGroup bossGroup; + private EventLoopGroup workerGroup; + + public MusServer(String ip, int port) { + this.ip = ip; + this.port = port; + this.channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); + this.bootstrap = new ServerBootstrap(); + this.connectionIds = new AtomicInteger(0); + } + + /** + * Create the Netty sockets. + */ + public void createSocket() { + int threads = Runtime.getRuntime().availableProcessors(); + this.bossGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + this.workerGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + + this.bootstrap.group(bossGroup, workerGroup) + .channel((Epoll.isAvailable()) ? EpollServerSocketChannel.class : NioServerSocketChannel.class) + .childHandler(new MusChannelInitializer(this)) + .option(ChannelOption.SO_BACKLOG, BACK_LOG) + .childOption(ChannelOption.TCP_NODELAY, true) + .childOption(ChannelOption.SO_KEEPALIVE, true) + .childOption(ChannelOption.SO_RCVBUF, BUFFER_SIZE) + .childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(BUFFER_SIZE)) + .childOption(ChannelOption.ALLOCATOR, new PooledByteBufAllocator(true)); + } + + /** + * Bind the server to its address that's been specified + */ + public void bind() { + this.bootstrap.bind(new InetSocketAddress(this.getIp(), this.getPort())).addListener(objectFuture -> { + if (!objectFuture.isSuccess()) { + Log.getErrorLogger().error("Failed to start MUS server on address: {}:{}", this.getIp(), this.getPort()); + Log.getErrorLogger().error("Please double check there's no programs using the same port, and you have set the correct IP address to listen on.", this.getIp(), this.getPort()); + } else { + log.info("Multi User Server (MUS) is listening on {}:{}", this.getIp(), this.getPort()); + } + }); + } + + /** + * Dispose the server handler. + * + * @throws InterruptedException will throw exception if fails + */ + public void dispose() throws InterruptedException { + // Shutdown gracefully + this.workerGroup.shutdownGracefully().sync(); + this.bossGroup.shutdownGracefully().sync(); + } + + /** + * Get the IP of this server. + * + * @return the server ip + */ + private String getIp() { + return ip; + } + + /** + * Get the port of this server. + * + * @return the port + */ + private Integer getPort() { + return port; + } + + /** + * Get default channel group of channels + * @return channels + */ + public DefaultChannelGroup getChannels() { + return channels; + } + + /** + * Get handler for connection ids. + * + * @return the atomic int instance + */ + public AtomicInteger getConnectionIds() { + return connectionIds; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusUtil.java new file mode 100644 index 0000000..939fa5b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/MusUtil.java @@ -0,0 +1,101 @@ +package org.alexdev.havana.server.mus; + +import io.netty.buffer.ByteBuf; +import org.alexdev.havana.server.mus.streams.MusPropList; +import org.alexdev.havana.server.mus.streams.MusTypes; + +public class MusUtil { + public static String readEvenPaddedString(ByteBuf in) { + // String length + int length = in.readInt(); + if (length <= 0) { + return ""; + } else { + // Actual string bytes + byte[] bytes = new byte[length]; + in.readBytes(bytes); + + // Advance one byte if uneven + if ((length % 2) != 0) { + in.readByte(); + } + + // Return the string + return new String(bytes); + } + } + + public static void writeEvenPaddedString(ByteBuf out, String str) { + // String length + out.writeInt(str.length()); + + // Actual string bytes + out.writeBytes(str.getBytes()); + + // Add a null byte if uneven + if ((str.length() % 2) != 0) { + out.writeByte(0); + } + } + + public static MusPropList readPropList(ByteBuf in) { + // Length of list + int length = in.readInt(); + + // Allocate props + MusPropList props = new MusPropList(length); + + // Parse them + for (int i = 0; i < length; i++) { + // Symbol type (always string) + in.readShort(); + + // Symbol (key) + String symbol = MusUtil.readEvenPaddedString(in); + + // Data type + short dataType = in.readShort(); + + // Data (value) + int dataLength; + if (dataType == MusTypes.Integer) { + dataLength = 4; + } else { + dataLength = in.readInt(); + } + byte[] data = new byte[dataLength]; + in.readBytes(data); + if ((dataLength % 2) != 0) { + in.readByte(); + } + + // Set prop + props.setPropAsBytes(symbol, dataType, data); + } + + return props; + } + + public static void writePropList(ByteBuf out, MusPropList props) { + // Length + out.writeInt(props.length()); + + // Serialize elements + for (int i = 0; i < props.length(); i++) { + // Symbol + out.writeShort(MusTypes.Symbol); + MusUtil.writeEvenPaddedString(out, props.getSymbolAt(i)); + + // Value + out.writeShort(props.getDataTypeAt(i)); + byte[] data = props.getDataAt(i); + if (props.getDataTypeAt(i) != MusTypes.Integer) { + out.writeInt(data.length); + } + out.writeBytes(data); + if ((data.length % 2) != 0) { + out.writeByte(0); + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkDecoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkDecoder.java new file mode 100644 index 0000000..48ff521 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkDecoder.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.server.mus.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.bytes.ByteArrayDecoder; +import org.alexdev.havana.server.mus.MusUtil; +import org.alexdev.havana.server.mus.streams.MusMessage; +import org.alexdev.havana.server.mus.streams.MusTypes; + +import java.util.List; + +public class MusNetworkDecoder extends ByteArrayDecoder { + + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List out) { + byte headerTag = buffer.readByte(); + buffer.readByte(); + + if (headerTag != 'r') { + ctx.channel().close(); + } else { + MusMessage musMessage = new MusMessage(); + musMessage.setSize(buffer.readInt()); + + if (buffer.readableBytes() < musMessage.getSize()) { + buffer.resetReaderIndex(); + return; + } + + ByteBuf body = buffer.readBytes(musMessage.getSize()); + + musMessage.setErrorCode(body.readInt()); + musMessage.setTimestamp(body.readInt()); + musMessage.setSubject(MusUtil.readEvenPaddedString(body)); + musMessage.setSenderId(MusUtil.readEvenPaddedString(body)); + + String[] receivers = new String[body.readInt()]; + + for (int i = 0; i < receivers.length; i++) { + receivers[i] = MusUtil.readEvenPaddedString(body); + } + + if (musMessage.getSubject().equals("Logon")) { + // Read in remaining data + byte[] tmpBytes = new byte[body.readableBytes()]; + body.readBytes(tmpBytes); + + // Set fields + musMessage.setContentType(MusTypes.String); + musMessage.setContentString(new String(tmpBytes)); + } else { + musMessage.setContentType(body.readShort()); + + if (musMessage.getContentType() == MusTypes.Integer) + musMessage.setContentInt(body.readInt()); + else if (musMessage.getContentType() == MusTypes.String) + musMessage.setContentString(MusUtil.readEvenPaddedString(body)); + else if (musMessage.getContentType() == MusTypes.PropList) + musMessage.setContentPropList(MusUtil.readPropList(body)); + } + + body.release(); + out.add(musMessage); + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkEncoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkEncoder.java new file mode 100644 index 0000000..027b799 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/codec/MusNetworkEncoder.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.server.mus.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageEncoder; +import org.alexdev.havana.server.mus.MusUtil; +import org.alexdev.havana.server.mus.streams.MusMessage; +import org.alexdev.havana.server.mus.streams.MusTypes; +import org.alexdev.havana.server.netty.codec.NetworkEncoder; +import org.alexdev.havana.util.DateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +public class MusNetworkEncoder extends MessageToMessageEncoder { + final private static Logger log = LoggerFactory.getLogger(NetworkEncoder.class); + + @Override + protected void encode(ChannelHandlerContext ctx, MusMessage msg, List out) throws Exception { + ByteBuf buffer = ctx.alloc().buffer(); + + msg.setSenderId("System"); + msg.setReceivers(new String[] { "*" }); + msg.setTimestamp(DateUtil.getCurrentTimeSeconds()); + + ByteBuf temporaryBuffer = ctx.alloc().buffer(); + temporaryBuffer.writeInt(msg.getErrorCode()); + temporaryBuffer.writeInt((int) msg.getTimestamp()); // Ugh, I know right? Old protocol... + + MusUtil.writeEvenPaddedString(temporaryBuffer, msg.getSubject()); + MusUtil.writeEvenPaddedString(temporaryBuffer, msg.getSenderId()); + + temporaryBuffer.writeInt(msg.getReceivers().length); + + for (int i = 0; i < msg.getReceivers().length; i++) { + MusUtil.writeEvenPaddedString(temporaryBuffer, msg.getReceivers()[i]); + } + + temporaryBuffer.writeShort(msg.getContentType()); + + // Content + if (msg.getContentType() != MusTypes.Void) { + if (msg.getContentType() == MusTypes.Integer) + temporaryBuffer.writeInt(msg.getContentInt()); + else if (msg.getContentType() == MusTypes.String) + MusUtil.writeEvenPaddedString(temporaryBuffer, msg.getContentString()); + else if (msg.getContentType() == MusTypes.PropList) + MusUtil.writePropList(temporaryBuffer, msg.getContentPropList()); + else + System.out.println("Unsupported MusMessage content type " + msg.getContentType() + "!"); + } + + byte[] body = new byte[temporaryBuffer.readableBytes()]; + + temporaryBuffer.readBytes(body); + temporaryBuffer.release(); + + buffer.writeByte('r'); + buffer.writeByte(0); + buffer.writeInt(body.length); + buffer.writeBytes(body); + + out.add(buffer); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/connection/MusClient.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/connection/MusClient.java new file mode 100644 index 0000000..e3e3f95 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/connection/MusClient.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.server.mus.connection; + +import io.netty.channel.Channel; + +public class MusClient { + private Channel channel; + private String photoText; + private int userId; + + public MusClient(Channel channel) { + this.channel = channel; + this.userId = 0; + this.photoText = ""; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getPhotoText() { + return photoText; + } + + public void setPhotoText(String photoText) { + this.photoText = photoText; + } + + public Channel getChannel() { + return channel; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusMessage.java new file mode 100644 index 0000000..399850b --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusMessage.java @@ -0,0 +1,102 @@ +package org.alexdev.havana.server.mus.streams; + +public class MusMessage { + private int size; + private int errorCode; + private long timestamp; + private String subject; + private String senderId; + private String[] receivers; + private short contentType; + private int contentInt; + private String contentString; + private MusPropList contentPropList; + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getErrorCode() { + return errorCode; + } + + public void setErrorCode(int errorCode) { + this.errorCode = errorCode; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getSenderId() { + return senderId; + } + + public void setSenderId(String senderId) { + this.senderId = senderId; + } + + public String[] getReceivers() { + return receivers; + } + + public void setReceivers(String[] receivers) { + this.receivers = receivers; + } + + public short getContentType() { + return contentType; + } + + public void setContentType(short contentType) { + this.contentType = contentType; + } + + public int getContentInt() { + return contentInt; + } + + public void setContentInt(int contentInt) { + this.contentInt = contentInt; + } + + public String getContentString() { + return contentString; + } + + public void setContentString(String contentString) { + this.contentString = contentString; + } + + public MusPropList getContentPropList() { + return contentPropList; + } + + public void setContentPropList(MusPropList contentPropList) { + this.contentPropList = contentPropList; + } + + @Override + public String toString() { + if (this.contentString != null) + return this.subject + ":\"" + this.contentString + "\""; + else + return this.subject + ":\"\""; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusPropList.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusPropList.java new file mode 100644 index 0000000..e72015e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusPropList.java @@ -0,0 +1,94 @@ +package org.alexdev.havana.server.mus.streams; + +import org.alexdev.havana.util.BitUtil; + +public class MusPropList { + private String[] symbols; + private short[] dataTypes; + private byte[][] data; + + public MusPropList(int length) { + symbols = new String[length]; + dataTypes = new short[length]; + data = new byte[length][0]; + } + + public boolean setPropAsBytes(String symbol, short type, byte[] data) { + for (int i = 0; i < symbols.length; i++) { + if (symbols[i] == null) { + symbols[i] = symbol; + dataTypes[i] = type; + this.data[i] = data; + + return true; + } + } + + // No space + return false; + } + + public void setPropAsInt(String symbol, int i) { + byte[] data = BitUtil.intToBytes(i); + this.setPropAsBytes(symbol, MusTypes.Integer, data); + } + + public void setPropAsString(String symbol, String str) { + byte[] data = str.getBytes(); + this.setPropAsBytes(symbol, MusTypes.String, data); + } + + public short getPropType(String symbol) { + for (int i = 0; i < symbols.length; i++) { + if (symbols[i] != null) { + if (symbols[i].equals(symbol)) { + return dataTypes[i]; + } + } + } + + return MusTypes.Void; + } + + public byte[] getPropAsBytes(String symbol) { + for (int i = 0; i < symbols.length; i++) { + if (symbols[i] != null) { + if (symbols[i].equals(symbol)) { + return data[i]; + } + } + } + + return new byte[0]; + } + + public int getPropAsInt(String symbol) { + byte[] bytes = this.getPropAsBytes(symbol); + if (bytes.length == 0) { + return -1; + } else { + return BitUtil.bytesToInt(bytes); + } + } + + public String getPropAsString(String symbol) { + byte[] bytes = this.getPropAsBytes(symbol); + return new String(bytes); + } + + public String getSymbolAt(int slot) { + return symbols[slot]; + } + + public short getDataTypeAt(int slot) { + return dataTypes[slot]; + } + + public byte[] getDataAt(int slot) { + return data[slot]; + } + + public int length() { + return symbols.length; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusTypes.java b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusTypes.java new file mode 100644 index 0000000..4f8ea65 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/mus/streams/MusTypes.java @@ -0,0 +1,65 @@ +package org.alexdev.havana.server.mus.streams; + +public final class MusTypes +{ + /** + * No encoded data or additional bytes + */ + public final static short Void = 0; + /** + * 4 bytes in network (not Intel) order + */ + public final static short Integer = 1; + /** + * 4 bytes with string length, then N bytes of string data, not null terminated,but padded to an even byte boundary + */ + public final static short Symbol = 2; + /** + * 4 bytes with string length, then N bytes of string data, not null terminated,but padded to an even byte boundary + */ + public final static short String = 3; + /** + * 4 bytes with data length, then N bytes of binary picture data, padded to an even byte boundary + */ + public final static short Picture = 5; + /** + * 8 bytes in network (not Intel) order + */ + public final static short Float = 6; + /** + * 4 bytes with the number of elements in the list, then N values + */ + public final static short List = 7; + /** + * 2 numeric values, each may be either an integer or float. First is X, then Y + */ + public final static short Point = 8; + /** + * 4 numeric values, each may be either an integer or float. First is top, left, bottom, then right + */ + public final static short Rect = 9; + /** + * 4 bytes with the number of elements in the list, then N pairs of values. The first of each pair is a symbol, then the corresponding value + */ + public final static short PropList = 10; + /** + * 4 bytes of binary data + */ + public final static short Color = 18; + /** + * 16 bytes of binary data + */ + public final static short Date = 19; + /** + * 4 bytes with the data length, then N bytes of binary media data, padded to an even byte boundary + */ + public final static short Media = 20; + /** + * 3 floats (8 bytes each, 24 total) in network order + */ + public final static short Vector3D = 22; + /** + * 16 floats (8 bytes each, 128 total) in network order + */ + public final static short Transform3D = 23; +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyChannelInitializer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyChannelInitializer.java new file mode 100644 index 0000000..3a923b0 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyChannelInitializer.java @@ -0,0 +1,38 @@ +package org.alexdev.havana.server.netty; + +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.socket.SocketChannel; +import io.netty.handler.timeout.IdleStateHandler; +import io.netty.handler.traffic.ChannelTrafficShapingHandler; +import org.alexdev.havana.server.netty.codec.NetworkDecoder; +import org.alexdev.havana.server.netty.codec.NetworkEncoder; +import org.alexdev.havana.server.netty.connections.ConnectionHandler; +import org.alexdev.havana.server.netty.connections.IdleConnectionHandler; +import org.alexdev.havana.util.config.GameConfiguration; + +public class NettyChannelInitializer extends ChannelInitializer { + private final NettyServer nettyServer; + //private final long readLimit = 40*1024; + //private final long writeLimit = 25*1024; + + public NettyChannelInitializer(NettyServer nettyServer) { + this.nettyServer = nettyServer; + } + + @Override + protected void initChannel(SocketChannel socketChannel) throws Exception { + ChannelPipeline pipeline = socketChannel.pipeline(); + + if (GameConfiguration.getInstance().getBoolean("server.limit.bandwidth")) { + long bandwidthLimit = GameConfiguration.getInstance().getLong("server.limit.bandwidth.amount"); + pipeline.addLast("trafficShapingHandler", new ChannelTrafficShapingHandler(bandwidthLimit, bandwidthLimit)); + } + + pipeline.addLast("gameEncoder", new NetworkEncoder()); + pipeline.addLast("gameDecoder", new NetworkDecoder()); + pipeline.addLast("handler", new ConnectionHandler(this.nettyServer)); + pipeline.addLast("idleStateHandler", new IdleStateHandler(60, 0, 0)); + pipeline.addLast("idleHandler", new IdleConnectionHandler()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyPlayerNetwork.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyPlayerNetwork.java new file mode 100644 index 0000000..9e2b937 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyPlayerNetwork.java @@ -0,0 +1,76 @@ +package org.alexdev.havana.server.netty; + +import io.netty.channel.Channel; +import org.alexdev.havana.Havana; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.apache.commons.validator.routines.InetAddressValidator; + +public class NettyPlayerNetwork { + private Channel channel; + private int connectionId; + + private boolean saveMachineId; + private String clientMachineId; + + public NettyPlayerNetwork(Channel channel, int connectionId) { + this.channel = channel; + this.connectionId = connectionId; + } + + public Channel getChannel() { + return this.channel; + } + + public void send(Object response) { + this.channel.writeAndFlush(response); + } + + public void disconnect() { + this.channel.close(); + } + + public int getConnectionId() { + return connectionId; + } + + public static String getIpAddress(Channel channel) { + var data = channel.remoteAddress().toString().replace("/", ""); + String[] ipData = data.split(":"); + + InetAddressValidator validator = InetAddressValidator.getInstance(); + + // Validate an IPv4 address + if (validator.isValidInet4Address(ipData[0])) { + return ipData[0]; + } else { + // Try validate IPv6 + String ip = data.replace(":" + ipData[ipData.length - 1], ""); + + if (validator.isValidInet6Address(ip)) { + return ip; + } + } + + return null; + } + + public String getClientMachineId() { + return clientMachineId; + } + + public void setClientMachineId(String clientMachineId) { + this.clientMachineId = clientMachineId; + } + + public boolean saveMachineId() { + return saveMachineId; + } + + public void setSaveMachineId(boolean saveMachineId) { + this.saveMachineId = saveMachineId; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyServer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyServer.java new file mode 100644 index 0000000..baddc9f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/NettyServer.java @@ -0,0 +1,136 @@ +package org.alexdev.havana.server.netty; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.FixedRecvByteBufAllocator; +import io.netty.channel.epoll.Epoll; +import io.netty.channel.epoll.EpollEventLoopGroup; +import io.netty.channel.epoll.EpollServerSocketChannel; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.alexdev.havana.log.Log; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; +import java.util.concurrent.atomic.AtomicInteger; + +public class NettyServer { + final private static int BACK_LOG = 20; + final private static int BUFFER_SIZE = 2048; + final private static Logger log = LoggerFactory.getLogger(NettyServer.class); + + private final String ip; + private final int port; + + private DefaultChannelGroup channels; + private ServerBootstrap bootstrap; + private AtomicInteger connectionIds; + + private EventLoopGroup bossGroup; + private EventLoopGroup workerGroup; + + public NettyServer(String ip, int port) { + this.ip = ip; + this.port = port; + this.channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); + this.bootstrap = new ServerBootstrap(); + this.connectionIds = new AtomicInteger(0); + } + + /** + * Create the Netty sockets. + */ + public void createSocket() { + int threads = Runtime.getRuntime().availableProcessors(); + this.bossGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + this.workerGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + + this.bootstrap.group(bossGroup, workerGroup) + .channel((Epoll.isAvailable()) ? EpollServerSocketChannel.class : NioServerSocketChannel.class) + .childHandler(new NettyChannelInitializer(this)) + .option(ChannelOption.SO_BACKLOG, BACK_LOG) + .childOption(ChannelOption.TCP_NODELAY, true) + .childOption(ChannelOption.SO_KEEPALIVE, true) + .childOption(ChannelOption.SO_RCVBUF, BUFFER_SIZE) + .childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(BUFFER_SIZE)) + .childOption(ChannelOption.ALLOCATOR, new PooledByteBufAllocator(true)); + } + + /** + * Bind the server to its address that's been specified + */ + public void bind() { + this.bootstrap.bind(new InetSocketAddress(this.getIp(), this.getPort())).addListener(objectFuture -> { + if (!objectFuture.isSuccess()) { + Log.getErrorLogger().error("Failed to start server on address: {}:{}", this.getIp(), this.port); + Log.getErrorLogger().error("Please double check there's no programs using the same game port, and you have set the correct IP address to listen on."); + } else { + log.info("Shockwave game server is listening on {}:{}", this.getIp(), this.getPort()); + } + }); + } + + public int getFlashPort() { + return this.port + 2; + } + + public int getBetaPort() { + return this.port + 4; + } + + /** + * Dispose the server handler. + * + * @throws InterruptedException + */ + public void dispose(boolean doSync) throws InterruptedException { + // Shutdown gracefully + if (doSync) { + this.workerGroup.shutdownGracefully().sync(); + this.bossGroup.shutdownGracefully().sync(); + } else { + this.workerGroup.shutdownGracefully(); + this.bossGroup.shutdownGracefully(); + } + } + + /** + * Get the IP of this server. + * + * @return the server ip + */ + private String getIp() { + return ip; + } + + /** + * Get the port of this server. + * + * @return the port + */ + private Integer getPort() { + return port; + } + + /** + * Get default channel group of channels + * @return channels + */ + public DefaultChannelGroup getChannels() { + return channels; + } + + /** + * Get handler for connection ids. + * + * @return the atomic int instance + */ + public AtomicInteger getConnectionIds() { + return connectionIds; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/ServerHandlerType.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/ServerHandlerType.java new file mode 100644 index 0000000..b235f7c --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/ServerHandlerType.java @@ -0,0 +1,5 @@ +package org.alexdev.havana.server.netty; + +public enum ServerHandlerType { + RC4 +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/EncryptionDecoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/EncryptionDecoder.java new file mode 100644 index 0000000..93671ea --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/EncryptionDecoder.java @@ -0,0 +1,29 @@ +package org.alexdev.havana.server.netty.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.ByteToMessageDecoder; +import org.alexdev.havana.game.encryption.RC4; + +import java.util.List; + +public class EncryptionDecoder extends ByteToMessageDecoder { + + private RC4 rc4; + + public EncryptionDecoder(RC4 rc4) { + this.rc4 = rc4; + } + + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List out) throws Exception { + ByteBuf result = Unpooled.buffer(); + + while (buffer.readableBytes() > 0) { + result.writeByte((byte) (buffer.readByte() ^ this.rc4.next())); + } + + out.add(result); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkDecoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkDecoder.java new file mode 100644 index 0000000..86dfeee --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkDecoder.java @@ -0,0 +1,35 @@ +package org.alexdev.havana.server.netty.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.ByteToMessageDecoder; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.encoding.Base64Encoding; + +import java.util.List; + +public class NetworkDecoder extends ByteToMessageDecoder { + + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List out) { + if (buffer.readableBytes() < 5) { + // If the incoming data is less than 5 bytes, it's junk. + return; + } + + buffer.markReaderIndex(); + int length = Base64Encoding.decode(new byte[]{buffer.readByte(), buffer.readByte(), buffer.readByte()}); + + if (buffer.readableBytes() < length) { + buffer.resetReaderIndex(); + return; + } + + if (length < 0) { + return; + } + + out.add(new NettyRequest(buffer.readBytes(length))); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkEncoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkEncoder.java new file mode 100644 index 0000000..a6b4f2f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/codec/NetworkEncoder.java @@ -0,0 +1,67 @@ +package org.alexdev.havana.server.netty.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageEncoder; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.messenger.MESSENGER_MSG; +import org.alexdev.havana.messages.outgoing.rooms.user.CHAT_MESSAGE; +import org.alexdev.havana.messages.types.MessageComposer; +import org.alexdev.havana.messages.types.PlayerMessageComposer; +import org.alexdev.havana.server.netty.streams.NettyResponse; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +public class NetworkEncoder extends MessageToMessageEncoder { + final private static Logger log = LoggerFactory.getLogger(NetworkEncoder.class); + + @Override + protected void encode(ChannelHandlerContext ctx, Object obj, List out) throws Exception { + Player player = ctx.channel().attr(Player.PLAYER_KEY).get(); + ByteBuf buffer = ctx.alloc().buffer(); + + if (obj instanceof MessageComposer) { + MessageComposer msg = (MessageComposer) obj; + + if (obj instanceof PlayerMessageComposer) { + PlayerMessageComposer playerMessageComposer = (PlayerMessageComposer) obj; + playerMessageComposer.setPlayer(player); + } + + NettyResponse response = new NettyResponse(msg.getHeader(), buffer); + + try { + msg.compose(response); + } catch (Exception ex) { + String name = ""; + + if (player != null && player.isLoggedIn()) { + name = player.getDetails().getName(); + } + + Log.getErrorLogger().error("Error occurred when composing (" + response.getHeader() + ") for user (" + name + "):", ex); + return; + } + + if (!response.isFinalised()) { + buffer.writeByte(1); + response.setFinalised(true); + } + + if (ServerConfiguration.getBoolean("log.sent.packets")) { + log.info("SENT: {} / {}", msg.getHeader(), response.getBodyString()); + } + } + + if (obj instanceof String) { + buffer.writeBytes(((String) obj).getBytes()); + } + + out.add(buffer); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/ConnectionHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/ConnectionHandler.java new file mode 100644 index 0000000..69216cb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/ConnectionHandler.java @@ -0,0 +1,121 @@ +package org.alexdev.havana.server.netty.connections; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import org.alexdev.havana.Havana; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.MessageHandler; +import org.alexdev.havana.messages.outgoing.handshake.HELLO; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.server.netty.NettyServer; +import org.alexdev.havana.server.netty.streams.NettyRequest; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +public class ConnectionHandler extends SimpleChannelInboundHandler { + final private static Logger log = LoggerFactory.getLogger(ConnectionHandler.class); + private static final int MAX_CONNECTIONS = 1000; + final private NettyServer server; + + public ConnectionHandler(NettyServer server) { + this.server = server; + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) throws Exception { + int maxConnectionsPerIp = GameConfiguration.getInstance().getInteger("max.connections.per.ip"); + String ipAddress = NettyPlayerNetwork.getIpAddress(ctx.channel()); + + // TODO: IP ban checking + + if (maxConnectionsPerIp > 0) { + int count = 0; + + for (Channel channel : this.server.getChannels()) { + String connectedIpAddress = NettyPlayerNetwork.getIpAddress(channel); + + if (connectedIpAddress.equals(ipAddress)) { + count++; + } + } + + if (count >= maxConnectionsPerIp) { + //log.debug("Kicking off connection from " + ipAddress + " due to max connections reached"); + ctx.channel().close(); + return; + } + } + + Player player = new Player(new NettyPlayerNetwork(ctx.channel(), this.server.getConnectionIds().getAndIncrement())); + ctx.channel().attr(Player.PLAYER_KEY).set(player); + + if (!this.server.getChannels().add(ctx.channel()) || Havana.isShuttingdown()) { + ctx.close(); + return; + } + + player.send(new HELLO()); + + if (ServerConfiguration.getBoolean("log.connections")) { + log.info("[{}] Connection from {} ", player.getNetwork().getConnectionId(), NettyPlayerNetwork.getIpAddress(ctx.channel())); + } + } + + @Override + public void channelUnregistered(ChannelHandlerContext ctx) throws Exception { + if (this.server.getConnectionIds().get() > 0) + this.server.getConnectionIds().getAndDecrement(); // Decrement because we don't want it to reach Integer.MAX_VALUE + + if (this.server.getChannels().contains(ctx.channel())) { + this.server.getChannels().remove(ctx.channel()); + } + + Player player = ctx.channel().attr(Player.PLAYER_KEY).get(); + + if (player != null) { + player.dispose(); + + if (ServerConfiguration.getBoolean("log.connections")) { + log.info("[{}] Disconnection from {} ", player.getNetwork().getConnectionId(), NettyPlayerNetwork.getIpAddress(ctx.channel())); + } + } + } + + @Override + public void channelRead0(ChannelHandlerContext ctx, NettyRequest message) { + Player player = ctx.channel().attr(Player.PLAYER_KEY).get(); + + if (player == null) { + Log.getErrorLogger().error("Player was null from {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0]); + return; + } + + if (message == null) { + Log.getErrorLogger().error("Receiving message was null from {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0]); + return; + } + + MessageHandler.getInstance().handleRequest(player, message); + + try { + message.dispose(); + } catch (Exception ex) { + Log.getErrorLogger().error("Error when disposing message:", ex); + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + //if (cause instanceof Exception) { + if (!(cause instanceof IOException)) { + Log.getErrorLogger().error("Netty error occurred: ", cause); //ctx.close(); + } + //} + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/IdleConnectionHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/IdleConnectionHandler.java new file mode 100644 index 0000000..5e217cb --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/connections/IdleConnectionHandler.java @@ -0,0 +1,41 @@ +package org.alexdev.havana.server.netty.connections; + +import io.netty.channel.ChannelDuplexHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.timeout.IdleState; +import io.netty.handler.timeout.IdleStateEvent; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.messages.outgoing.user.PING; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class IdleConnectionHandler extends ChannelDuplexHandler { + private static Logger logger = LoggerFactory.getLogger(IdleConnectionHandler.class); + + @Override + public void userEventTriggered(ChannelHandlerContext ctx, Object event) { + if (event instanceof IdleStateEvent) { + IdleStateEvent e = (IdleStateEvent) event; + + if (e.state() == IdleState.READER_IDLE) { + Player player = ctx.channel().attr(Player.PLAYER_KEY).get(); + + if (player.isPingOK()) { + player.setPingOK(false); + player.send(new PING()); + } else { + if (ServerConfiguration.getBoolean("log.connections")) { + if (player.isLoggedIn()) { + logger.info("Player {} has timed out", player.getDetails().getName()); + } else { + logger.info("Connection {} has timed out", player.getNetwork().getConnectionId()); + } + } + + player.kickFromServer(); + } + } + } + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyRequest.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyRequest.java new file mode 100644 index 0000000..5f0f042 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyRequest.java @@ -0,0 +1,162 @@ +package org.alexdev.havana.server.netty.streams; + +import io.netty.buffer.ByteBuf; +import org.alexdev.havana.server.util.MalformedPacketException; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.encoding.Base64Encoding; +import org.alexdev.havana.util.encoding.VL64Encoding; + +import java.nio.charset.Charset; + +public class NettyRequest { + final private int headerId; + final private String header; + final private ByteBuf buffer; + private boolean isDisposed; + + public NettyRequest(ByteBuf buffer) { + this.buffer = buffer; + this.header = new String(new byte[] { buffer.readByte(), buffer.readByte() }); + this.headerId = Base64Encoding.decode(header.getBytes()); + } + + + public NettyRequest(int headerId, ByteBuf buffer) { + this.buffer = buffer; + this.headerId = headerId; + this.header = new String(Base64Encoding.encode(headerId, 2), StringUtil.getCharset()); + } + + public Integer readInt() throws MalformedPacketException { + try { + byte[] remaining = this.remainingBytes(); + + int length = remaining[0] >> 3 & 7; + int value = VL64Encoding.decode(remaining); + readBytes(length); + + return value; + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public int readBase64() throws MalformedPacketException { + try { + return Base64Encoding.decode(new byte[] { + this.buffer.readByte(), + this.buffer.readByte() + }); + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public boolean readBoolean() throws MalformedPacketException { + try { + return this.readInt() == 1; + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + + } + + public String readString() throws MalformedPacketException { + try { + int length = this.readBase64(); + byte[] data = this.readBytes(length); + + return new String(data, StringUtil.getCharset()); + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public String readClientString() throws MalformedPacketException { + try { + byte[] data = remainingBytes(); + + int position = 0; + + for (int i = 0; i < data.length; i++) { + if (data[i] == (byte) 2) { + break; + } + + position = i; + } + + String readData = new String(this.readBytes(position + 1), StringUtil.getCharset()); + this.readBytes(1); + return readData; + + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public byte[] readBytes(int len) throws MalformedPacketException { + try { + byte[] payload = new byte[len]; + this.buffer.readBytes(payload); + return payload; + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public byte[] remainingBytes() throws MalformedPacketException { + try { + this.buffer.markReaderIndex(); + + byte[] bytes = new byte[this.buffer.readableBytes()]; + buffer.readBytes(bytes); + + this.buffer.resetReaderIndex(); + return bytes; + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public String contents() throws MalformedPacketException { + try { + byte[] remiainingBytes = this.remainingBytes(); + + if (remiainingBytes != null) { + return new String(remiainingBytes); + } + + return null; + } catch (Exception ex) { + throw new MalformedPacketException("The packet sent to the server was malformed."); + } + } + + public String getMessageBody() { + String consoleText = this.buffer.toString(Charset.defaultCharset()); + + for (int i = 0; i < 14; i++) { + consoleText = consoleText.replace(Character.toString((char)i), "{" + i + "}"); + } + + return this.header + consoleText; + } + + public String getHeader() { + return header; + } + + public int getHeaderId() { + return headerId; + } + + public void dispose() { + if (this.isDisposed) { + return; + } + + this.isDisposed = true; + this.buffer.release(); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyResponse.java b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyResponse.java new file mode 100644 index 0000000..7a6781d --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/netty/streams/NettyResponse.java @@ -0,0 +1,117 @@ +package org.alexdev.havana.server.netty.streams; + +import io.netty.buffer.ByteBuf; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.encoding.Base64Encoding; +import org.alexdev.havana.util.encoding.VL64Encoding; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +public class NettyResponse { + private short id; + private ByteBuf buffer; + private boolean finalised; + + public NettyResponse(short header, ByteBuf buffer) { + this.id = header; + this.buffer = buffer; + this.buffer.writeBytes(Base64Encoding.encode(header, 2)); + } + + /** + * Write an object as a raw string. + * + * @param obj the object to write + */ + public void write(Object obj) { + this.buffer.writeBytes(obj.toString().getBytes(StringUtil.getCharset())); + } + + /** + * Write an object with a character 2 suffix. + * + * @param obj the string to write + */ + public void writeString(Object obj) { + if (obj == null) { + obj = ""; + } + + this.buffer.writeBytes(obj.toString().getBytes(StringUtil.getCharset())); + this.buffer.writeByte(2); + // this.writeString(obj, null); + } + + /** + * Write a VL74 encoded integer. + * + * @param number the number to encode. + */ + public void writeInt(Integer number) { + this.buffer.writeBytes(VL64Encoding.encode(number)); + } + + /** + * Write an object with a custom delimeter. + * + * @param key the key to write + * @param value the delimeter to write + */ + public void write(Object key, Object value) { + this.buffer.writeBytes(key.toString().getBytes(StringUtil.getCharset())); + this.buffer.writeBytes(value.toString().getBytes(StringUtil.getCharset())); + } + + /** + * Write boolean, H or I in VL64 representation. + * + * @param obj the boolean to write + */ + public void writeBool(Boolean obj) { + this.writeInt(obj ? 1 : 0); + } + + /** + * Get a packet string but in readable format. + * + * @return the readable packet + */ + public String getBodyString() { + String str = this.buffer.toString(Charset.defaultCharset()); + + for (int i = 0; i < 14; i++) { + str = str.replace(Character.toString((char)i), "[" + i + "]"); + } + + return str; + } + + /** + * If this packet has been finalised before sending. + * Means it will add the character 1 suffix. + * + * @return true, if it was + */ + public boolean isFinalised() { + return finalised; + + } + + /** + * Setting to finalised means it will not add + * the character 1 suffix since it has already been added. + * + * @param finalised whether it should be finalised or not + */ + public void setFinalised(boolean finalised) { + this.finalised = finalised; + } + + /* (non-Javadoc) + * @see org.alexdev.icarus.server.api.messages.Response#getHeader() + */ + public int getHeader() { + return this.id; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconChannelInitializer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconChannelInitializer.java new file mode 100644 index 0000000..1bd3d0a --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconChannelInitializer.java @@ -0,0 +1,21 @@ +package org.alexdev.havana.server.rcon; + +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import io.netty.channel.socket.SocketChannel; +import org.alexdev.havana.server.rcon.codec.RconNetworkDecoder; + +public class RconChannelInitializer extends ChannelInitializer { + private final RconServer musServer; + + public RconChannelInitializer(RconServer musServer) { + this.musServer = musServer; + } + + @Override + protected void initChannel(SocketChannel socketChannel) throws Exception { + ChannelPipeline pipeline = socketChannel.pipeline(); + pipeline.addLast("gameDecoder", new RconNetworkDecoder()); + pipeline.addLast("handler", new RconConnectionHandler(this.musServer)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconConnectionHandler.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconConnectionHandler.java new file mode 100644 index 0000000..89e9623 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconConnectionHandler.java @@ -0,0 +1,331 @@ +package org.alexdev.havana.server.rcon; + +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelInboundHandlerAdapter; +import org.alexdev.havana.Havana; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.achievements.AchievementManager; +import org.alexdev.havana.game.achievements.AchievementType; +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.infobus.InfobusManager; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.pathfinder.Position; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.messages.incoming.catalogue.GET_CATALOG_INDEX; +import org.alexdev.havana.messages.outgoing.alerts.ALERT; +import org.alexdev.havana.messages.outgoing.handshake.RIGHTS; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_BADGES; +import org.alexdev.havana.messages.outgoing.rooms.groups.GROUP_MEMBERSHIP_UPDATE; +import org.alexdev.havana.messages.outgoing.user.currencies.CREDIT_BALANCE; +import org.alexdev.havana.server.rcon.messages.RconMessage; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.writer.GameConfigWriter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.HashMap; + +public class RconConnectionHandler extends ChannelInboundHandlerAdapter { + final private static Logger log = LoggerFactory.getLogger(RconConnectionHandler.class); + + private final RconServer server; + + public RconConnectionHandler(RconServer rconServer) { + this.server = rconServer; + } + + @Override + public void channelRegistered(ChannelHandlerContext ctx) { + if (!this.server.getChannels().add(ctx.channel()) || Havana.isShuttingdown()) { + //Log.getErrorLogger().error("Could not accept RCON connection from {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0]); + ctx.close(); + } + + //log.info("[RCON] Connection from {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0]); + } + + @Override + public void channelUnregistered(ChannelHandlerContext ctx) { + this.server.getChannels().remove(ctx.channel()); + //log.info("[RCON] Disconnection from {}", ctx.channel().remoteAddress().toString().replace("/", "").split(":")[0]); + } + + @Override + public void channelRead(ChannelHandlerContext ctx, Object msg) { + if (!(msg instanceof RconMessage)) { + return; + } + + RconMessage message = (RconMessage) msg; + + //log.info("[RCON] Message received: " + message); + + try { + switch (message.getHeader()) { + case DISCONNECT_USER: + Player online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getNetwork().disconnect(); + } + + break; + case REFRESH_LOOKS: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getRoomUser().refreshAppearance(); + } + + break; + case HOTEL_ALERT: + String messageSender = message.getValues().get("sender"); + String hotelAlert = message.getValues().get("message"); + + StringBuilder alert = new StringBuilder(); + alert.append(hotelAlert).append("
"); + alert.append("
"); + alert.append("- ").append(messageSender); + + for (Player player : PlayerManager.getInstance().getPlayers()) { + player.send(new ALERT(alert.toString())); + } + break; + case REFRESH_CLUB: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + PlayerDetails playerDetails = PlayerDao.getDetails(online.getDetails().getId()); + + online.getDetails().setCredits(playerDetails.getCredits()); + online.getDetails().setClubExpiration(playerDetails.getClubExpiration()); + online.getDetails().setFirstClubSubscription(playerDetails.getFirstClubSubscription()); + + PlayerDao.saveCurrency(online.getDetails().getId(), playerDetails.getCredits(), online.getDetails().getPixels()); + + online.send(new CREDIT_BALANCE(online.getDetails().getCredits())); + online.send(new RIGHTS(online.getFuserights())); + online.refreshClub(); + + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_HC, online); + } + + break; + + case REFRESH_TAGS: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_TAGS, online); + + if (online.getRoomUser().getRoom() != null) { + online.getRoomUser().refreshTags(); + } + } + break; + case REFRESH_HAND: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getInventory().reload(); + + if (online.getRoomUser().getRoom() != null) + online.getInventory().getView("new"); + } + + break; + case REFRESH_CREDITS: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getDetails().setCredits(CurrencyDao.getCredits(online.getDetails().getId())); + online.send(new CREDIT_BALANCE(online.getDetails().getCredits())); + } + + break; + case FRIEND_REQUEST: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("friendId"))); + int requestFrom = Integer.parseInt(message.getValues().get("userId")); + + if (online != null) { + if (!online.getMessenger().hasRequest(requestFrom)) { + online.getMessenger().addRequest(new MessengerUser(PlayerManager.getInstance().getPlayerData(requestFrom))); + } + } + + break; + case REFRESH_MESSENGER_CATEGORIES: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getMessenger().getCategories().clear(); + online.getMessenger().getCategories().addAll(MessengerDao.getCategories(online.getDetails().getId())); + + // Refresh friends for categories + for (MessengerUser dbFriend : MessengerDao.getFriends(online.getDetails().getId()).values()) { + MessengerUser friend = online.getMessenger().getFriend(dbFriend.getUserId()); + + if (friend != null) { + if (friend.getCategoryId() != dbFriend.getCategoryId()) { + friend.setCategoryId(dbFriend.getCategoryId()); + online.getMessenger().queueFriendUpdate(friend); + } + } + } + } + + break; + case REFRESH_TRADE_SETTING: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + boolean oldTradeSetting = online.getDetails().isTradeEnabled(); + online.getDetails().setTradeEnabled(message.getValues().get("tradeEnabled").equalsIgnoreCase("1")); + + if (!oldTradeSetting && online.getDetails().isTradeEnabled()) { + AchievementManager.getInstance().tryProgress(AchievementType.ACHIEVEMENT_TRADERPASS, online); + + if (online.getRoomUser().getRoom() != null && + !online.getRoomUser().getRoom().isGameArena()) { + Position currentPosition = online.getRoomUser().getPosition(); + + online.getRoomUser().getRoom().getEntityManager().enterRoom(online, currentPosition); + online.getRoomUser().invokeItem(null, false); + } + } + } + break; + case REFRESH_GROUP_PERMS: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.refreshJoinedGroups(); + + PlayerDetails newDetails = PlayerDao.getDetails(online.getDetails().getId()); + online.getDetails().setFavouriteGroupId(newDetails.getFavouriteGroupId()); + + int newGroup = newDetails.getFavouriteGroupId(); + + if (online.getRoomUser().getRoom() != null) { + GroupMember groupMember = null; + + if (online.getDetails().getFavouriteGroupId() > 0) { + groupMember = online.getDetails().getGroupMember(); + } + + if (groupMember != null) { + online.getRoomUser().getRoom().send(new GROUP_BADGES(new HashMap<>() {{ + put(newGroup, online.getJoinedGroup(newGroup).getBadge()); + }})); + } + + online.getRoomUser().getRoom().send(new GROUP_MEMBERSHIP_UPDATE(online.getRoomUser().getInstanceId(), groupMember == null ? -1 : groupMember.getGroupId(), groupMember == null ? -1 : groupMember.getMemberRank().getClientRank())); + } + } + + break; + case GROUP_DELETED: + int groupId = Integer.parseInt(message.getValues().get("groupId")); + + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (player.getDetails().getFavouriteGroupId() == groupId) { + player.getDetails().setFavouriteGroupId(0); + + if (player.getRoomUser().getRoom() != null) { + player.getRoomUser().getRoom().send(new GROUP_MEMBERSHIP_UPDATE(player.getRoomUser().getInstanceId(), -1, -1)); + } + + player.refreshJoinedGroups(); + } + } + break; + case REFRESH_GROUP: + groupId = Integer.parseInt(message.getValues().get("groupId")); + + for (Player player : PlayerManager.getInstance().getPlayers()) { + if (player.getJoinedGroup(groupId) != null) { + player.refreshJoinedGroups(); + } + } + + break; + case REFRESH_ADS: + AdManager.getInstance().reset(); + break; + case REFRESH_ROOM_BADGES: + RoomManager.getInstance().reloadBadges(); + RoomManager.getInstance().giveBadges(); + break; + case INFOBUS_DOOR_STATUS: + InfobusManager.getInstance().updateDoorStatus(message.getValues().get("doorStatus").equals("1")); + break; + case INFOBUS_END_EVENT: + InfobusManager.getInstance().stopEvent(); + break; + case INFOBUS_POLL: + int pollId = Integer.parseInt(message.getValues().get("pollId")); + InfobusManager.getInstance().startPolling(pollId); + break; + case REFRESH_CATALOGUE_FRONTPAGE: + GameConfiguration.reset(new GameConfigWriter()); + + for (Player p : PlayerManager.getInstance().getPlayers()) { + new GET_CATALOG_INDEX().handle(p, null); + } + + break; + case CLEAR_PHOTO: + long itemId = Long.parseLong(message.getValues().get("itemId")); + int userId = Integer.parseInt(message.getValues().get("userId")); + + Item item = ItemManager.getInstance().resolveItem(itemId); + + if (item != null) { + Room room = item.getRoom(); + + if (room != null) { + room.getMapping().removeItem(null, item); + } + + item.delete(); + PhotoDao.deleteItem(itemId); + + TransactionDao.createTransaction(userId, String.valueOf(itemId), "0", 1, + "Hidden photo " + itemId, 0, 0, false); + } + + break; + case REFRESH_STATISTICS: + online = PlayerManager.getInstance().getPlayerById(Integer.parseInt(message.getValues().get("userId"))); + + if (online != null) { + online.getStatisticManager().reload(); + } + + break; + } + } catch (Exception ex) { + Log.getErrorLogger().error("[RCON] Error occurred when handling RCON message: ", ex); + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { + if (cause instanceof Exception) { + if (!(cause instanceof IOException)) { + Log.getErrorLogger().error("[RCON] Error occurred: ", cause); + } + } + + ctx.close(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconServer.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconServer.java new file mode 100644 index 0000000..55fc4f4 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/RconServer.java @@ -0,0 +1,123 @@ +package org.alexdev.havana.server.rcon; + +import io.netty.bootstrap.ServerBootstrap; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.FixedRecvByteBufAllocator; +import io.netty.channel.epoll.Epoll; +import io.netty.channel.epoll.EpollEventLoopGroup; +import io.netty.channel.epoll.EpollServerSocketChannel; +import io.netty.channel.group.DefaultChannelGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.channel.socket.nio.NioServerSocketChannel; +import io.netty.util.concurrent.GlobalEventExecutor; +import org.alexdev.havana.log.Log; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetSocketAddress; +import java.util.concurrent.atomic.AtomicInteger; + +public class RconServer { + final private static int BACK_LOG = 20; + final private static int BUFFER_SIZE = 2048; + final private static Logger log = LoggerFactory.getLogger(RconServer.class); + + private final String ip; + private final int port; + + private DefaultChannelGroup channels; + private ServerBootstrap bootstrap; + private AtomicInteger connectionIds; + + private EventLoopGroup bossGroup; + private EventLoopGroup workerGroup; + + public RconServer(String ip, int port) { + this.ip = ip; + this.port = port; + this.channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); + this.bootstrap = new ServerBootstrap(); + this.connectionIds = new AtomicInteger(0); + } + + /** + * Create the Netty sockets. + */ + public void createSocket() { + int threads = Runtime.getRuntime().availableProcessors(); + this.bossGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + this.workerGroup = (Epoll.isAvailable()) ? new EpollEventLoopGroup(threads) : new NioEventLoopGroup(threads); + + this.bootstrap.group(bossGroup, workerGroup) + .channel((Epoll.isAvailable()) ? EpollServerSocketChannel.class : NioServerSocketChannel.class) + .childHandler(new RconChannelInitializer(this)) + .option(ChannelOption.SO_BACKLOG, BACK_LOG) + .childOption(ChannelOption.TCP_NODELAY, true) + .childOption(ChannelOption.SO_KEEPALIVE, true) + .childOption(ChannelOption.SO_RCVBUF, BUFFER_SIZE) + .childOption(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(BUFFER_SIZE)) + .childOption(ChannelOption.ALLOCATOR, new PooledByteBufAllocator(true)); + } + + /** + * Bind the server to its address that's been specified + */ + public void bind() { + this.bootstrap.bind(new InetSocketAddress(this.getIp(), this.getPort())).addListener(objectFuture -> { + if (!objectFuture.isSuccess()) { + Log.getErrorLogger().error("Failed to start RCON server on address: {}:{}", this.getIp(), this.getPort()); + Log.getErrorLogger().error("Please double check there's no programs using the same port, and you have set the correct IP address to listen on.", this.getIp(), this.getPort()); + } else { + log.info("RCON (remote connection) is listening on {}:{}", this.getIp(), this.getPort()); + } + }); + } + + /** + * Dispose the server handler. + * + * @throws InterruptedException will throw exception if fails + */ + public void dispose() throws InterruptedException { + // Shutdown gracefully + this.workerGroup.shutdownGracefully().sync(); + this.bossGroup.shutdownGracefully().sync(); + } + + /** + * Get the IP of this server. + * + * @return the server ip + */ + private String getIp() { + return ip; + } + + /** + * Get the port of this server. + * + * @return the port + */ + private Integer getPort() { + return port; + } + + /** + * Get default channel group of channels + * @return channels + */ + public DefaultChannelGroup getChannels() { + return channels; + } + + /** + * Get handler for connection ids. + * + * @return the atomic int instance + */ + public AtomicInteger getConnectionIds() { + return connectionIds; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/codec/RconNetworkDecoder.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/codec/RconNetworkDecoder.java new file mode 100644 index 0000000..a106f66 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/codec/RconNetworkDecoder.java @@ -0,0 +1,110 @@ +package org.alexdev.havana.server.rcon.codec; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.ByteToMessageDecoder; +import org.alexdev.havana.server.rcon.messages.RconMessage; +import org.alexdev.havana.util.StringUtil; + +import java.util.HashMap; +import java.util.List; + +public class RconNetworkDecoder extends ByteToMessageDecoder { + + @Override + protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List out) { + if (buffer.readableBytes() < 8) { + // If the incoming data is less than 8 bytes, it's junk. + return; + } + + buffer.markReaderIndex(); + int length = buffer.readInt(); + + if (buffer.readableBytes() < length) { + buffer.resetReaderIndex(); + return; + } + + ByteBuf buf = buffer.readBytes(length); + String header = readString(buf); + + if (header == null) { + clear(buf); + return; + } + + int parameterCount = buf.readInt(); + HashMap parameters = new HashMap<>(parameterCount); + + for (int i = 0; i < parameterCount; i++) { + String key = readString(buf); + String value = readString(buf); + + if (key == null || value == null) { + clear(buf); + return; + } + + parameters.put(key, value); + } + + clear(buf); + + // Send new rcon message + out.add(new RconMessage(header, parameters)); + } + + private void clear(ByteBuf buf) { + if (buf.refCnt() > 0) { + buf.release(); + } + } + + /** + * Release buffer on failure. + * @param buffer the buffer + */ + private void tryRelease(ByteBuf buffer) { + try { + buffer.release(); + } catch (Exception ignored) { + + } + } + + /** + * Read string from byte buffer. + * + * @param buffer the buffer to read from + * @return the string + */ + public String readString(ByteBuf buffer) { + int length = buffer.readInt(); + byte[] data = this.readBytes(buffer, length); + + if (data == null) { + return null; + } + + return new String(data, StringUtil.getCharset()); + } + + /** + * Read bytes of byte buffer. + * + * @param buf the buffer to read the bytes from + * @param len the amount of bytes to read + * @return the bytes returned + */ + public byte[] readBytes(ByteBuf buf, int len) { + if (buf.readableBytes() < len) { + return null; + } + + byte[] payload = new byte[len]; + buf.readBytes(payload); + return payload; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconHeader.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconHeader.java new file mode 100644 index 0000000..5833f18 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconHeader.java @@ -0,0 +1,45 @@ +package org.alexdev.havana.server.rcon.messages; + +public enum RconHeader { + REFRESH_LOOKS("refresh_looks"), + HOTEL_ALERT("hotel_alert"), + REFRESH_CLUB("refresh_club"), + REFRESH_TAGS("refresh_tags"), + REFRESH_HAND("refresh_hand"), + REFRESH_CREDITS("refresh_credits"), + FRIEND_REQUEST("friendrequest"), + REFRESH_MESSENGER_CATEGORIES("refreshmessengercategories"), + REFRESH_TRADE_SETTING("refreshtrade"), + GROUP_DELETED("groupdeleted"), + REFRESH_GROUP("refreshgroup"), + REFRESH_GROUP_PERMS("refreshgroupperms"), + REFRESH_ADS("refreshads"), + INFOBUS_POLL("infobuspoll"), + INFOBUS_DOOR_STATUS("infobusdoorstatus"), + REFRESH_ROOM_BADGES("refreshroombadges"), + INFOBUS_END_EVENT("infobusendevent"), + REFRESH_CATALOGUE_FRONTPAGE("refreshcataloguefrontpage"), + CLEAR_PHOTO("clearphoto"), + DISCONNECT_USER("disconnect"), + REFRESH_STATISTICS("refreshstats"); + + private final String rawHeader; + + RconHeader(String rawHeader) { + this.rawHeader = rawHeader; + } + + public String getRawHeader() { + return rawHeader; + } + + public static RconHeader getByHeader(String header) { + for (var rconHeader : values()) { + if (rconHeader.getRawHeader().equalsIgnoreCase(header)) { + return rconHeader; + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconMessage.java b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconMessage.java new file mode 100644 index 0000000..d007cf6 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/rcon/messages/RconMessage.java @@ -0,0 +1,23 @@ +package org.alexdev.havana.server.rcon.messages; + +import io.netty.buffer.ByteBuf; + +import java.util.Map; + +public class RconMessage { + private RconHeader header; + private Map values; + + public RconMessage(String header, Map values) { + this.header = RconHeader.getByHeader(header); + this.values = values; + } + + public RconHeader getHeader() { + return header; + } + + public Map getValues() { + return values; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/server/util/MalformedPacketException.java b/Havana-Server/src/main/java/org/alexdev/havana/server/util/MalformedPacketException.java new file mode 100644 index 0000000..ce71786 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/server/util/MalformedPacketException.java @@ -0,0 +1,7 @@ +package org.alexdev.havana.server.util; + +public class MalformedPacketException extends Exception { + public MalformedPacketException(String error) { + super(error); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/BitUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/BitUtil.java new file mode 100644 index 0000000..329cf5f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/BitUtil.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.util; + +public class BitUtil { + private static final int NUMBER_OF_BITS_IN_A_BYTE = 8; + private static final short MASK_TO_BYTE = 0xFF; + + public static byte[] intToBytes(int i) { + byte[] bytes = new byte[4]; + bytes[3] = (byte) (i & MASK_TO_BYTE); + i >>= NUMBER_OF_BITS_IN_A_BYTE; + bytes[2] = (byte) (i & MASK_TO_BYTE); + i >>= NUMBER_OF_BITS_IN_A_BYTE; + bytes[1] = (byte) (i & MASK_TO_BYTE); + i >>= NUMBER_OF_BITS_IN_A_BYTE; + bytes[0] = (byte) (i & MASK_TO_BYTE); + + return bytes; + } + + private static int bytesToInt(byte A, byte B, byte C, byte D) { + int i = (D & MASK_TO_BYTE); + i |= ((C & MASK_TO_BYTE) << 8); + i |= ((B & MASK_TO_BYTE) << 16); + i |= ((A & MASK_TO_BYTE) << 24); + + return i; + } + + public static int bytesToInt(byte[] bytes) { + return bytesToInt(bytes[0], bytes[1], bytes[2], bytes[3]); + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/DateUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/DateUtil.java new file mode 100644 index 0000000..075eefa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/DateUtil.java @@ -0,0 +1,196 @@ +package org.alexdev.havana.util; + +import org.alexdev.havana.log.Log; + +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.TimeZone; + +public class DateUtil { + public static final String LONG_DATE = "dd-MM-yyyy HH:mm:ss"; + public static final String CAMERA_DATE = "dd/MM/yyyy HH:mm:ss"; + public static final String SHORT_DATE = "dd-MM-yyyy"; + public static final String SHORT_DATE_TIME = "dd-MM-yyyy hh:mm a"; + + /** + * Returns the current date as "dd-MM-yyyy" + * @return the date as string + */ + public static String getCurrentDate(String format) { + try { + Date date = new Date(); + return new SimpleDateFormat(format).format(date); + } catch (Exception e) { + e.printStackTrace(); + } + + return format; + } + + + /** + * Returns the current date with custom format. + * + * @return the date as string + */ + public static String getDate(long time, String format) { + try { + Date date = new Date(); + date.setTime(time * 1000); + return new SimpleDateFormat(format).format(date); + } catch (Exception e) { + e.printStackTrace(); + } + + return format; + } + + + /** + * Gets the date given by unix timestamp as string. + * + * @param time the unix timestamp + * @return the date as string + */ + public static String getFriendlyDate(long time) { + try { + Date date = new Date(); + date.setTime(time * 1000); + return new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a").format(date).replace("am", "AM").replace("pm","PM").replace(".", ""); + } catch (Exception e) { + e.printStackTrace(); + } + + return "[getFriendlyDate error with " + String.valueOf(time) + "]"; + } + + public static long getFromFormat(String format, String date) { + try { + SimpleDateFormat sdf = new SimpleDateFormat(format); + var d = sdf.parse(date); + return d.getTime() / 1000L; + } catch (Exception e) { + e.printStackTrace(); + } + + return 0; + } + + /** + * Gets the readable timestamp. + * + * @param timestamp the timestamp + * @return the readable timestamp + */ + public static String getReadableTimestamp(long timestamp) { + try { + long different = System.currentTimeMillis() - (timestamp * 1000); + + long secondsInMilli = 1000; + long minutesInMilli = secondsInMilli * 60; + long hoursInMilli = minutesInMilli * 60; + long daysInMilli = hoursInMilli * 24; + + long elapsedDays = different / daysInMilli; + different = different % daysInMilli; + + long elapsedHours = different / hoursInMilli; + different = different % hoursInMilli; + + long elapsedMinutes = different / minutesInMilli; + different = different % minutesInMilli; + + long elapsedSeconds = different / secondsInMilli; + return elapsedDays + " days, " + elapsedHours + " hours, " + elapsedMinutes + " minutes, " + elapsedSeconds + " seconds"; + + } catch (Exception e){ + Log.getErrorLogger().error("Error occurred: ", e); + } + + return null; + } + + /** + * Convert seconds to readable English. + * + * @param input the seconds input + * @return the seconds represented as words + */ + public static String getReadableSeconds(long input) { + try { + //long different = System.currentTimeMillis() - (timestamp * 1000); + long uptime = input * 1000; + long days = (uptime / (1000 * 60 * 60 * 24)); + long hours = (uptime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); + long minutes = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); + long seconds = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60) - minutes * (1000 * 60)) / (1000); + + return days + " day(s), " + hours + " hour(s), " + minutes + " minute(s) and " + seconds + " second(s)"; + + } catch (Exception e){ + Log.getErrorLogger().error("Error occurred: ", e); + } + + return null; + } + + public static String getMarketplaceReadableSeconds(long input) { + try { + //long different = System.currentTimeMillis() - (timestamp * 1000); + long uptime = input * 1000; + long days = (uptime / (1000 * 60 * 60 * 24)); + long hours = (uptime - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); + long minutes = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); + long seconds = (uptime - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60) - minutes * (1000 * 60)) / (1000); + + String r = ""; + + if (days == 1) { + r += days + " day
"; + } else { + r += days + " days
"; + } + + if (hours == 1) { + r += hours + " hour"; + } else { + r += hours + " hours"; + } + + if (days < 1) { + return "" + r + ""; + } + + return r; + + } catch (Exception e){ + Log.getErrorLogger().error("Error occurred: ", e); + } + + return null; + } + + public static LocalDateTime getDateTimeFromTimestamp(long timestamp) { + if (timestamp == 0) + return null; + return LocalDateTime.ofInstant(Instant.ofEpochSecond(timestamp), TimeZone + .getDefault().toZoneId()); + } + + public static LocalDate getDateFromTimestamp(long timestamp) { + LocalDateTime date = getDateTimeFromTimestamp(timestamp); + return date == null ? null : date.toLocalDate(); + } + + /** + * Gets the current time in seconds. + * + * @return the current time in seconds + */ + public static int getCurrentTimeSeconds() { + return (int) (System.currentTimeMillis() / 1000); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/EasterUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/EasterUtil.java new file mode 100644 index 0000000..dec34f2 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/EasterUtil.java @@ -0,0 +1,32 @@ +package org.alexdev.havana.util; + +import java.time.LocalDate; +import java.time.Year; + +public class EasterUtil { + public static boolean isEasterMonday() { + var date = LocalDate.now(); + LocalDate easterThatYear = sundayFor(Year.of(date.getYear())); + return date.equals(easterThatYear.plusDays(1)); + } + + private static LocalDate sundayFor(Year year) { + final int y = year.getValue(); + final int a = y % 19; + final int b = y / 100; + final int c = y % 100; + final int d = b / 4; + final int e = b % 4; + final int f = (b + 8) / 25; + final int g = (b - f + 1) / 3; + final int h = (19 * a + b - d - g + 15) % 30; + final int i = c / 4; + final int k = c % 4; + final int m = (32 + 2 * e + 2 * i - h - k) % 7; + final int n = (a + 11 * h + 22 * m) / 451; + final int o = h + m - 7 * n + 114; + final int month = o / 31; + final int day = ((o % 31) + 1); + return LocalDate.of(y, month, day); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/FigureUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/FigureUtil.java new file mode 100644 index 0000000..a253cda --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/FigureUtil.java @@ -0,0 +1,158 @@ +package org.alexdev.havana.util; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.concurrent.ThreadLocalRandom; + +public class FigureUtil { + public static String getRandomFigure(String genderReq, boolean clubReq) throws ParserConfigurationException, IOException, SAXException { + StringBuilder figureOutput = new StringBuilder(); + + if (genderReq == null) { + if (ThreadLocalRandom.current().nextBoolean()) { + genderReq = "M"; + } else { + genderReq = "F"; + } + } + + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + + Document doc = dBuilder.parse(new File("figuredata.xml")); + doc.normalize(); + + NodeList setTypeList = doc.getElementsByTagName("settype"); + + for (int i = 0; i < setTypeList.getLength(); i++) { + Node setType = setTypeList.item(i); + NodeList setList = setType.getChildNodes(); + + LinkedHashMap possibleSets = new LinkedHashMap<>(); + LinkedList randomColours = new LinkedList<>(); + + boolean isMandatory = (setType.getAttributes().getNamedItem("mandatory") != null && setType.getAttributes().getNamedItem("mandatory").getNodeValue().equals("1")) || + ThreadLocalRandom.current().nextBoolean(); + + if (isMandatory) { + String type = setType.getAttributes().getNamedItem("type").getNodeValue(); + + boolean hasColour = false; + + for (int j = 0; j < setList.getLength(); j++) { + Node set = setList.item(j); + + if (set.getNodeName().equals("set")) { + var genderXml = set.getAttributes().getNamedItem("gender"); + + if (genderXml == null) { + continue; + } else { + String gender = set.getAttributes().getNamedItem("gender").getNodeValue(); + + if (!gender.equals("U") && !gender.equals(genderReq)) { + continue; + } + } + + var selectableXml = set.getAttributes().getNamedItem("selectable"); + + if (selectableXml != null) { + String selectable = set.getAttributes().getNamedItem("selectable").getNodeValue(); + + if (selectable.equals("0")) { + continue; + } + } + + var colourableXml = set.getAttributes().getNamedItem("colorable"); + + if (colourableXml != null) { + String colorable = set.getAttributes().getNamedItem("colorable").getNodeValue(); + hasColour = colorable.equals("0"); + } + + var clubXml = set.getAttributes().getNamedItem("club"); + + if (clubXml != null) { + String club = set.getAttributes().getNamedItem("club").getNodeValue(); + + if (club.equals("1") && !clubReq) { + continue; + } + } + + possibleSets.put(set.getAttributes().getNamedItem("id").getNodeValue(), hasColour); + } + } + + int index = ThreadLocalRandom.current().nextInt(0, possibleSets.size()); + + String setId = (String) possibleSets.keySet().toArray()[index]; + boolean isColouringAllowed = (boolean) possibleSets.values().toArray()[index]; + + if (!isColouringAllowed) { + NodeList paletteList = getNodes(doc, setType.getAttributes().getNamedItem("paletteid").getNodeValue()); + + for (int k = 0; k < (paletteList != null ? paletteList.getLength() : 0); k++) { + Node set = paletteList.item(k); + + if (!set.getNodeName().equals("color")) { + continue; + } + + var clubXml = set.getAttributes().getNamedItem("club").getNodeValue(); + + if (clubXml.equals("1") && !clubReq) { + continue; + } + + var selectableXml = set.getAttributes().getNamedItem("selectable").getNodeValue(); + + if (selectableXml.equals("0")) { + continue; + } + + + randomColours.add(set.getAttributes().getNamedItem("id").getNodeValue()); + } + } + + figureOutput.append(type).append("-").append(setId); + figureOutput.append('-'); + + if (randomColours.size() > 0) { + figureOutput.append(randomColours.get(ThreadLocalRandom.current().nextInt(0, randomColours.size()))); + } + + figureOutput.append('.'); + } + } + + return figureOutput.toString().substring(0, figureOutput.toString().length() - 1); + } + + private static NodeList getNodes(Document doc, String paletteId) { + NodeList setTypeList = doc.getElementsByTagName("palette"); + + for (int i = 0; i < setTypeList.getLength(); i++) { + Node setType = setTypeList.item(i); + + if (setType.getAttributes().getNamedItem("id").getNodeValue().equals(paletteId)) { + return setType.getChildNodes(); + } + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/HexValidator.java b/Havana-Server/src/main/java/org/alexdev/havana/util/HexValidator.java new file mode 100644 index 0000000..dd4afaa --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/HexValidator.java @@ -0,0 +1,20 @@ +package org.alexdev.havana.util; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class HexValidator{ + private static final String HEX_PATTERN = "^([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"; + + /** + * Validate hex with regular expression + * @param hex hex for validation + * @return true valid hex, false invalid hex + */ + public static boolean validate(final String hex){ + var pattern = Pattern.compile(HEX_PATTERN); + Matcher matcher = pattern.matcher(hex); + return matcher.matches(); + + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/SearchUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/SearchUtil.java new file mode 100644 index 0000000..d145e60 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/SearchUtil.java @@ -0,0 +1,12 @@ +package org.alexdev.havana.util; + +public class SearchUtil { + public static String getOwnerTag(String searchQuery) { + for (String search : searchQuery.split(" ")) { + if (search.startsWith("owner:")) + return search; + } + + return null; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/StringUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/StringUtil.java new file mode 100644 index 0000000..f6e1e3f --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/StringUtil.java @@ -0,0 +1,210 @@ +package org.alexdev.havana.util; + +import com.google.gson.Gson; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.player.Player; +import org.alexdev.havana.util.config.GameConfiguration; +import org.apache.commons.lang3.StringUtils; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.text.Normalizer; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +public class StringUtil { + public static Gson GSON = new Gson(); + + /** + * Checks if is null or empty. + * + * @param param the param + * @return true, if is null or empty + */ + public static boolean isNullOrEmpty(String param) { + return param == null || param.trim().length() == 0; + } + + /** + * Filter input. + * + * @param input the input + * @param filerNewline if new lines (ENTER) should be filtered + * @return the string + */ + public static String filterInput(String input, boolean filerNewline) { + input = input.replace((char) 1, ' '); + input = input.replace((char) 2, ' '); + input = input.replace((char) 9, ' '); + input = input.replace((char) 10, ' '); + input = input.replace((char) 12, ' '); + + if (filerNewline) { + input = input.replace((char) 13, ' '); + } + + if (GameConfiguration.getInstance().getBoolean("normalise.input.strings")) { + input = Normalizer.normalize(input, Normalizer.Form.NFD); + } + + if (input.contains("∂") && input.contains("∫") && input.contains("å") && input.contains("æ")) { + input = input.replace("∂", ""); + input = input.replace("∫", ""); + input = input.replace("å", ""); + input = input.replace("æ", ""); + } + + return input; + } + + /** + * Paginate a list of items. + * + * @param the generic type + * @param originalList the original list + * @param chunkSize the chunk size + * @return the list + */ + public static Map> paginate(List originalList, int chunkSize) { + return paginate(originalList, chunkSize, false); + } + + public static Map> paginate(List originalList, int chunkSize, boolean emptyFirstPage) { + Map> chunks = new ConcurrentHashMap<>(); + List> listOfChunks = new CopyOnWriteArrayList<>(); + + for (int i = 0; i < originalList.size() / chunkSize; i++) { + listOfChunks.add(originalList.subList(i * chunkSize, i * chunkSize + chunkSize)); + } + + if (originalList.size() % chunkSize != 0) { + listOfChunks.add(originalList.subList(originalList.size() - originalList.size() % chunkSize, originalList.size())); + } + + for (int i = 0; i < listOfChunks.size(); i++) { + chunks.put(i, listOfChunks.get(i)); + } + + if (emptyFirstPage && chunks.isEmpty()) { + chunks.put(0, new ArrayList<>()); + } + + return chunks; + } + + /** + * Round to two decimal places. + * + * @param decimal the decimal + * @return the double + */ + public static double format(double decimal) { + return Math.round(decimal * 100.0) / 100.0; + } + + /** + * Split. + * + * @param str the string + * @param delim the delimiter + * @return the list + */ + public static List split(String str, String delim) { + return new ArrayList<>(Arrays.asList(str.split(delim))); + } + + /** + * Get words in a string + * + * @param s the string to get the list for + * @return the list of words + */ + public static String[] getWords(String s) { + String[] words = s.split("\\s+"); + + for (int i = 0; i < words.length; i++) { + words[i] = words[i].replaceAll("[^\\w]", ""); + } + + return words; + } + + /** + * Get encoding for strings + * + * @return the encoding + */ + public static Charset getCharset() { + return StandardCharsets.UTF_8; + } + + public static String isValidTag(String tag, int userId, int roomId, int groupId) { + String formatTag = StringUtils.normalizeSpace((StringUtil.filterInput(tag, false))).replaceAll("\\<[^>]*>", "").replace(",", "").toLowerCase(); + + if (tag.length() <= 1 || tag.trim().isEmpty() || tag.length() > 20 || TagDao.hasTag(userId, roomId, groupId, tag)) { + return null; + } + + return formatTag; + } + + public static String toAlphabetic(int i) { + i = i - 1; + + if (i < 0) { + return "-" + toAlphabetic(-i - 1); + } + + int quot = i / 26; + int rem = i % 26; + char letter = (char) ((int) 'A' + rem); + if (quot == 0) { + return "" + letter; + } else { + return toAlphabetic(quot - 1) + letter; + } + } + + public static void addTag(String tag, int userId, int roomId, int groupId) { + boolean checkAgain = false; + + if (tag.equalsIgnoreCase("br") || tag.equalsIgnoreCase("brasil")) { + tag = "brazil"; + checkAgain = true; + } + + if (tag.equalsIgnoreCase("spanish") || tag.equalsIgnoreCase("es")) { + tag = "español"; + checkAgain = true; + } + + if (checkAgain) { + if (TagDao.hasTag(userId, roomId, groupId, tag)) { + return; + } + } + + TagDao.addTag(userId, roomId, groupId, tag); + } + + public static boolean hasValue(List firstList, List secondList) { + for (var str : firstList) { + if (secondList.contains(str)) { + return true; + } + } + + return false; + } + + public static String replaceAlertMessage(String message, Player player) { + String newString = message; + newString = newString.replace("\r\n", "
"); + newString = newString.replace("\r", "
"); + newString = newString.replace("\n", "
"); + + newString = newString.replace("%username%", player.getDetails().getName()); + return newString; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/ValidationUtil.java b/Havana-Server/src/main/java/org/alexdev/havana/util/ValidationUtil.java new file mode 100644 index 0000000..c608d02 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/ValidationUtil.java @@ -0,0 +1,83 @@ +package org.alexdev.havana.util; + +import java.util.regex.Pattern; + +public class ValidationUtil { + public static boolean validateWallPosition(String wallPosition) { + //:w=3,2 l=9,63 l + try { + if (wallPosition.contains(Character.toString((char) 13))) { + return false; + } + if (wallPosition.contains(Character.toString((char) 9))) { + return false; + } + + String[] posD = wallPosition.split(" "); + + if (!posD[2].equals("l") && !posD[2].equals("r")) + return false; + + String[] widD = posD[0].substring(3).split(","); + int widthX = Integer.parseInt(widD[0]); + int widthY = Integer.parseInt(widD[1]); + if (widthX < 0 || widthY < 0 || widthX > 200 || widthY > 200) + return false; + + String[] lenD = posD[1].substring(2).split(","); + int lengthX = Integer.parseInt(lenD[0]); + int lengthY = Integer.parseInt(lenD[1]); + + if (lengthX < 0 || lengthY < 0 || lengthX > 200 || lengthY > 200) + return false; + + return true; + } catch (Exception ex) { + return false; + } + } + + public static boolean validateAnstiMutant(String Look, String Gender) { + boolean HasHead = false; + + if (Look.length() < 1) { + return false; + } + + try { + String[] Sets = Look.split(Pattern.quote(".")); + + if (Sets.length < 4) { + return false; + } + + for (String Set : Sets) { + String[] Parts = Set.split(Pattern.quote("-")); + + if (Parts.length < 2 || Parts.length > 3) { + return false; + } + + String Name = Parts[0]; + int Type = Integer.parseInt(Parts[1]); + int Color = Integer.parseInt(Parts[1]); + + if (Type <= 0 || Color < 0) { + return false; + } + + if (Name.length() != 2) { + return false; + } + + if (Name.equals("hd")) { + HasHead = true; + } + } + } catch (Exception ex) { + return false; + } + + return HasHead && (Gender.equals("M") || Gender.equals("F")); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/Configuration.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/Configuration.java new file mode 100644 index 0000000..465a2f5 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/Configuration.java @@ -0,0 +1,66 @@ +package org.alexdev.havana.util.config; + +import org.apache.commons.configuration2.INIConfiguration; +import org.apache.commons.configuration2.SubnodeConfiguration; +import org.apache.commons.configuration2.ex.ConfigurationException; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +public class Configuration { + public static Map load(String configPath) throws IOError, IOException, ConfigurationException { + Map config = new ConcurrentHashMap<>(); + Path path = Paths.get(configPath); + + INIConfiguration ini = new INIConfiguration(); + BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8); + ini.read(reader); + + Set sectionNames = ini.getSections(); + //System.out.printf("Section names: %s", sectionNames.toString()); + + for (String sectionName : sectionNames) { + SubnodeConfiguration section = ini.getSection(sectionName); + + if (section != null) { + Iterator keys = section.getKeys(); + + while (keys.hasNext()) { + String key = keys.next(); + String value = section.getString(key); + + if (value != null) { + key = key.replace("..", "."); // TODO: find a better way than this hack + config.put(key, value); + } + } + } + } + + reader.close(); + + return config; + } + + /** + * Create config file + * @throws IOException the exception if the file couldn't be read/written to + */ + public static PrintWriter createConfigurationFile(String configPath) throws IOException { + File file = new File(configPath); + + if (!file.isFile() && file.createNewFile()) { + return new PrintWriter(file.getAbsoluteFile()); + } + + return null; + } + +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/GameConfiguration.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/GameConfiguration.java new file mode 100644 index 0000000..b0d4944 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/GameConfiguration.java @@ -0,0 +1,130 @@ +package org.alexdev.havana.util.config; + +import org.alexdev.havana.dao.mysql.SettingsDao; +import org.alexdev.havana.util.config.writer.ConfigWriter; + +import java.util.Map; + +public class GameConfiguration { + private static GameConfiguration instance; + private Map config; + + public GameConfiguration(ConfigWriter configWriter) { + this.config = configWriter.setConfigurationDefaults(); + + Map settings = SettingsDao.getAllSettings(); + + for (var entrySet : this.config.entrySet()) { + String value = settings.get(entrySet.getKey()); + + if (value != null) { + this.config.put(entrySet.getKey(), value); + } else { + SettingsDao.newSetting(entrySet.getKey(), entrySet.getValue()); + } + } + } + + /** + * Get the configuration map. + * + * @return the configuration map + */ + public Map getConfig() { + return config; + } + + /** + * Get key from configuration and cast to an Boolean + * + * @param key the key to use + * @return value as boolean + */ + public boolean getBoolean(String key) { + String val = config.getOrDefault(key, "false"); + + if (val.equalsIgnoreCase("true")) { + return true; + } + + if (val.equals("1")) { + return true; + } + + return val.equalsIgnoreCase("yes"); + + } + + /** + * Get value from configuration + * + * @param key the key to use + * @return value + */ + public String getString(String key) { + return config.getOrDefault(key, key); + } + + /** + * Get value from configuration with default value + * + * @param key the key to use + * @param def the default value + * @return value + */ + public String getString(String key, String def) { + return config.getOrDefault(key, def); + } + + /** + * Get value from configuration and cast to an Integer + * + * @param key the key to use + * @return value as int + */ + public int getInteger(String key) { + return Integer.parseInt(config.getOrDefault(key, "0")); + } + + /** + * Get value from configuration and cast to a long. + * + * @param key the key to use + * @return value as long + */ + public long getLong(String key) { + return Long.parseLong(config.getOrDefault(key, "0")); + } + + /** + * Method to update setting. + * + * @param key the key to set for the value it has + * @param value the new value it has + */ + public void updateSetting(String key, Object value) { + this.config.put(key, value.toString()); + SettingsDao.updateSetting(key, value.toString()); + } + + /** + * Reset all game configuration values. + */ + public static void reset(ConfigWriter configWriter) { + instance = null; + GameConfiguration.getInstance(configWriter); + } + + /** + * Get the instance of {@link GameConfiguration} + * + * @return the instance + */ + public static GameConfiguration getInstance(ConfigWriter... configWriter) { + if (instance == null || configWriter.length > 0) { + instance = new GameConfiguration(configWriter[0]); + } + + return instance; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/LoggingConfiguration.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/LoggingConfiguration.java new file mode 100644 index 0000000..2172147 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/LoggingConfiguration.java @@ -0,0 +1,64 @@ +package org.alexdev.havana.util.config; + +import org.apache.log4j.PropertyConfigurator; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; + +public class LoggingConfiguration { + /** + * Create the configuration files for this application, with the default values. Will throw an + * exception if it could not create such files. + * + * @throws FileNotFoundException the exception if an error happens + */ + public static void checkLoggingConfig() throws FileNotFoundException { + String output = "log4j.rootLogger=INFO, stdout, SERVER_LOG\n" + + "log4j.appender.stdout.threshold=info\n" + + "log4j.appender.stdout=org.apache.log4j.ConsoleAppender\n" + + "log4j.appender.stdout.Target=System.out\n" + + "log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %-5p [%c] - %m%n\n" + + "\n" + + "# Create new logger information for error\n" + + "log4j.logger.ErrorLogger=ERROR, error, ERROR_FILE\n" + + "log4j.additivity.ErrorLogger=false\n" + + "\n" + + "# Set settings for the error logger\n" + + "log4j.appender.error=org.apache.log4j.ConsoleAppender\n" + + "log4j.appender.error.Target=System.err\n" + + "log4j.appender.error.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %-5p [%c] - %m%n\n" + + "\n" + + "# Define the file appender for errors\n" + + "log4j.appender.ERROR_FILE=org.apache.log4j.FileAppender\n" + + "log4j.appender.ERROR_FILE.File=error.log\n" + + "log4j.appender.ERROR_FILE.ImmediateFlush=true\n" + + "log4j.appender.ERROR_FILE.Threshold=debug\n" + + "log4j.appender.ERROR_FILE.Append=true\n" + + "log4j.appender.ERROR_FILE.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.ERROR_FILE.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - [%c] - %m%n\n" + + "\n" + + "# Define the file appender for server output\n" + + "log4j.appender.SERVER_LOG=org.apache.log4j.FileAppender\n" + + "log4j.appender.SERVER_LOG.File=server.log\n" + + "log4j.appender.SERVER_LOG.ImmediateFlush=true\n" + + "log4j.appender.SERVER_LOG.Threshold=debug\n" + + "log4j.appender.SERVER_LOG.Append=true\n" + + "log4j.appender.SERVER_LOG.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.SERVER_LOG.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - [%c] - %m%n\n"; + + File loggingConfig = new File("log4j.properties"); + + if (!loggingConfig.exists()) { + PrintWriter writer = new PrintWriter(loggingConfig.getAbsoluteFile()); + writer.write(output); + writer.flush(); + writer.close(); + } + + //Change the path where the logger property should be read from + PropertyConfigurator.configure(loggingConfig.getAbsolutePath()); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/ServerConfiguration.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/ServerConfiguration.java new file mode 100644 index 0000000..1394608 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/ServerConfiguration.java @@ -0,0 +1,177 @@ +package org.alexdev.havana.util.config; + +import org.alexdev.havana.util.config.writer.ConfigWriter; +import org.apache.commons.configuration2.ex.ConfigurationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOError; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class ServerConfiguration { + private static Logger log = LoggerFactory.getLogger(ServerConfiguration.class); + private static Map config = new ConcurrentHashMap<>(); + private static ConfigWriter writer; + + public static void load(String configPath) throws IOError, IOException, ConfigurationException { + config = writer.setConfigurationDefaults(); + + var configurationFile = Configuration.createConfigurationFile(configPath); + + if (configurationFile != null) { + writer.setConfigurationData(config, configurationFile); + } + + config = Configuration.load(configPath); + + // Environment variables override everything (used for production setup) + loadEnvironmentConfiguration(); + } + + private static void loadEnvironmentConfiguration() { + String envBind = System.getenv("KEPLER_BIND"); + + if (envBind != null) { + try { + config.put("bind", InetAddress.getByName(envBind).getHostAddress()); + } catch (UnknownHostException e) { + log.warn("Could not use {} as bind for game server, reverting to default {}", envBind, config.get("bind")); + } + } + + String envPort = System.getenv("KEPLER_PORT"); + + if (envPort != null) { + int parsedPort = Integer.parseUnsignedInt(envPort); + if (parsedPort > 0) { + config.put("server.port", Integer.toString(parsedPort)); + } + } + + String envMusPort = System.getenv("KEPLER_MUS_PORT"); + + if (envMusPort != null) { + int parsedPort = Integer.parseUnsignedInt(envMusPort); + if (parsedPort > 0) { + config.put("mus.port", Integer.toString(parsedPort)); + } + } + + String envRconBind = System.getenv("KEPLER_RCON_BIND"); + + if (envRconBind != null) { + try { + config.put("rcon.bind", InetAddress.getByName(envRconBind).getHostAddress()); + } catch (UnknownHostException e) { + // Ignore, will revert to default + log.warn("Could not use {} as bind for RCON server, reverting to default {}", envRconBind, config.get("rcon.bind")); + } + } + + String envRconPort = System.getenv("KEPLER_RCON_PORT"); + + if (envRconPort != null) { + int parsedPort = Integer.parseUnsignedInt(envRconPort); + if (parsedPort > 0) { + config.put("rcon.port", Integer.toString(parsedPort)); + } + } + + String envMysqlHost = System.getenv("MYSQL_HOST"); + + if (envMysqlHost != null) { + try { + config.put("mysql.hostname", InetAddress.getByName(envMysqlHost).getHostAddress()); + } catch (UnknownHostException e) { + log.warn("Could not use {} as MariaDB host, reverting to default {}", envMysqlHost, config.get("mysql.hostname")); + } + } + + String envMysqlPort = System.getenv("MYSQL_PORT"); + + if (envMysqlPort != null) { + int parsedPort = Integer.parseUnsignedInt(envMysqlPort); + if (parsedPort > 0) { + config.put("mysql.port", Integer.toString(parsedPort)); + } + } + + String envMysqlUser = System.getenv("MYSQL_USER"); + + if (envMysqlUser != null) { + config.put("mysql.username", envMysqlUser); + } + + String envMysqlDatabase = System.getenv("MYSQL_DATABASE"); + + if (envMysqlDatabase != null) { + config.put("mysql.database", envMysqlDatabase); + } + + String envMysqlPassword = System.getenv("MYSQL_PASSWORD"); + + if (envMysqlPassword != null) { + config.put("mysql.password", envMysqlPassword); + } + } + + /** + * Writes default server configuration + * + * @param writer - {@link PrintWriter} the file writer + */ + private static void setConfigurationData(PrintWriter writer) { + + } + + + /** + * Get key from configuration and cast to an Boolean + * + * @param key the key to use + * @return value as boolean + */ + public static boolean getBoolean(String key) { + String val = config.getOrDefault(key, "false"); + + if (val.equalsIgnoreCase("true")) { + return true; + } + + if (val.equals("1")) { + return true; + } + + return val.equalsIgnoreCase("yes"); + + } + + /** + * Get value from configuration + * + * @param key the key to use + * @return value + */ + public static String getString(String key) { + return config.getOrDefault(key, key); + } + + /** + * Get value from configuration and cast to an Integer + * + * @param key the key to use + * @return value as int + */ + public static int getInteger(String key) { + return Integer.parseInt(config.getOrDefault(key, "0")); + } + + public static void setWriter(ConfigWriter writer) { + ServerConfiguration.writer = writer; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/ConfigWriter.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/ConfigWriter.java new file mode 100644 index 0000000..d07253e --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/ConfigWriter.java @@ -0,0 +1,9 @@ +package org.alexdev.havana.util.config.writer; + +import java.io.PrintWriter; +import java.util.Map; + +public interface ConfigWriter { + public Map setConfigurationDefaults(); + public void setConfigurationData(Map config, PrintWriter writer); +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/DefaultConfigWriter.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/DefaultConfigWriter.java new file mode 100644 index 0000000..dd97bdf --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/DefaultConfigWriter.java @@ -0,0 +1,73 @@ +package org.alexdev.havana.util.config.writer; + +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +public class DefaultConfigWriter implements ConfigWriter { + @Override + public Map setConfigurationDefaults() { + Map config = new HashMap<>(); + // DEFAULT settings + config.put("server.bind", "127.0.0.1"); + config.put("server.port", "12321"); + + config.put("server.limit.bandwidth", "false");//String.valueOf(40*1024)); + config.put("server.limit.bandwidth.amount", String.valueOf(40*1024)); + + config.put("mus.bind", "127.0.0.1"); + config.put("mus.port", "12322"); + + config.put("rcon.bind", "127.0.0.1"); + config.put("rcon.port", "12309"); + + config.put("log.connections", "true"); + config.put("log.sent.packets", "false"); + config.put("log.received.packets", "false"); + + config.put("mysql.hostname", "127.0.0.1"); + config.put("mysql.port", "3306"); + config.put("mysql.username", "havana"); + config.put("mysql.password", "verysecret"); + config.put("mysql.database", "havana"); + + config.put("debug", "false"); + return config; + } + + @Override + public void setConfigurationData(Map config, PrintWriter writer) { + writer.println("[Global]"); + writer.println("server.bind=" + config.get("server.bind")); + writer.println("server.port=" + config.get("server.port")); + writer.println(""); + writer.println("[Server]"); + writer.println("server.port=" + config.get("server.port")); + writer.println("server.limit.bandwidth=" + config.get("server.limit.bandwidth")); + writer.println("server.limit.bandwidth.amount=" + config.get("server.limit.bandwidth.amount")); + writer.println(""); + writer.println("[Rcon]"); + writer.println("rcon.bind=" + config.get("rcon.bind")); + writer.println("rcon.port=" + config.get("rcon.port")); + writer.println(""); + writer.println("[Mus]"); + writer.println("mus.bind=" + config.get("mus.bind")); + writer.println("mus.port=" + config.get("mus.port")); + writer.println(""); + writer.println("[Database]"); + writer.println("mysql.hostname=" + config.get("mysql.hostname")); + writer.println("mysql.port=" + config.get("mysql.port")); + writer.println("mysql.username=" + config.get("mysql.username")); + writer.println("mysql.password=" + config.get("mysql.password")); + writer.println("mysql.database=" + config.get("mysql.database")); + writer.println(""); + writer.println("[Logging]"); + writer.println("log.received.packets=" + config.get("log.received.packets")); + writer.println("log.sent.packets=" + config.get("log.sent.packets")); + writer.println(""); + writer.println("[Console]"); + writer.print("debug=" + config.get("debug")); + writer.flush(); + writer.close(); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/GameConfigWriter.java b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/GameConfigWriter.java new file mode 100644 index 0000000..5741827 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/config/writer/GameConfigWriter.java @@ -0,0 +1,156 @@ +package org.alexdev.havana.util.config.writer; + +import org.alexdev.havana.game.commands.CommandManager; +import org.alexdev.havana.util.DateUtil; + +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +public class GameConfigWriter implements ConfigWriter { + @Override + public Map setConfigurationDefaults() { + Map config = new HashMap<>(); + config.put("site.path", "http://localhost"); + + config.put("room.ads", "true"); + config.put("room.intersitial.ads", "true"); + + /* + config.put("bot.connection.allow", "false"); + config.put("bot.connection.sso.prefix", "botcon2019-"); + */ + + config.put("fuck.aaron", "true"); + config.put("max.connections.per.ip", "2"); + config.put("normalise.input.strings", "false"); + + config.put("room.dispose.timer.enabled", "true"); + config.put("room.dispose.timer.seconds", "30"); + + config.put("welcome.message.enabled", "false"); + config.put("welcome.message.content", "Hello, %username%! And welcome to the Havana server!"); + + config.put("roller.tick.default", "2000"); + + config.put("afk.timer.seconds", "900"); + config.put("sleep.timer.seconds", "300"); + config.put("carry.timer.seconds", "300"); + + config.put("stack.height.limit", "8"); + config.put("players.online", "0"); + + config.put("credits.scheduler.timeunit", "MINUTES"); + config.put("credits.scheduler.interval", "15"); + config.put("credits.scheduler.amount", "20"); + + config.put("daily.credits.wait.time", "300"); + config.put("daily.credits.amount", "120"); + + config.put("pixels.received.timeunit", "MINUTES"); + config.put("pixels.received.interval", "10"); + config.put("pixels.max.tries.single.room.instance", String.valueOf(Integer.MAX_VALUE)); + + config.put("talk.garbled.text", "true"); + config.put("talk.bubble.timeout.seconds", "15"); + + config.put("messenger.max.friends.nonclub", "100"); + config.put("messenger.max.friends.club", "600"); + + config.put("battleball.create.game.enabled", "true"); + config.put("battleball.start.minimum.active.teams", "2"); + config.put("battleball.preparing.game.seconds", "10"); // 5, 4, 3, 2, 1 - then destruction of 1 + config.put("battleball.game.lifetime.seconds", "180"); + config.put("battleball.restart.game.seconds", "30"); + config.put("battleball.ticket.charge", "2"); + config.put("battleball.increase.points", "true"); + + config.put("snowstorm.create.game.enabled", "false"); + config.put("snowstorm.start.minimum.active.teams", "2"); + config.put("snowstorm.preparing.game.seconds", "10"); // 5, 4, 3, 2, 1 - then destruction of 1 + config.put("snowstorm.game.lifetime.seconds", "0"); + config.put("snowstorm.restart.game.seconds", "30"); + config.put("snowstorm.ticket.charge", "2"); + config.put("snowstorm.increase.points", "true"); + + config.put("tutorial.enabled", "false"); + config.put("profile.editing", "false"); + config.put("vouchers.enabled", "true"); + config.put("shutdown.minutes", "1"); + + config.put("reset.sso.after.login", "true"); + config.put("navigator.show.hidden.rooms", "false"); + config.put("navigator.hide.empty.public.categories", "true"); + + config.put("events.category.count", "11"); + config.put("events.expiry.minutes", "120"); + + config.put("club.gift.timeunit", "DAYS"); + config.put("club.gift.interval", "30"); + config.put("club.gift.present.label", "You have just received your monthly club gift!"); + + config.put("alerts.gift.message", "A new gift has arrived. This time you received a %item_name%."); + + config.put("wordfitler.enabled", "true"); + config.put("wordfilter.word.replacement", "bobba"); + + config.put("reward.credits.winner.range", "10-20"); + config.put("reward.credits.loser.range", "0-4"); + + //config.put("advertisement.api", "http://localhost/api/get_ad?picture={pictureName}&roomId={roomId}"); + config.put("xp.monthly.expiry", DateUtil.getCurrentDate("dd-MM")); + config.put("april.fools", "false"); + + config.put("delete.chatlogs.after.x.age", "2592000"); + config.put("delete.iplogs.after.x.age", "2592000"); + config.put("delete.tradelogs.after.x.age", "2592000"); + + config.put("guides.group.id", "0"); + config.put("guide.search.timeout.minutes", "5"); + config.put("guide.completion.minutes", "4320"); + + config.put("habbo.experts.group.id", "0"); + config.put("childline.group.id", "0"); + + config.put("happy.hour.weekday.start", "17:00:00"); + config.put("happy.hour.weekday.end", "18:00:00"); + + config.put("happy.hour.weekend.start", "12:00:00"); + config.put("happy.hour.weekend.end", "13:00:00"); + + config.put("regenerate.map.enabled", "true"); + config.put("regenerate.map.interval", "1"); + + config.put("players.all.time.peak", "0"); + config.put("players.daily.peak", "0"); + config.put("players.daily.peak.date", DateUtil.getCurrentDate(DateUtil.SHORT_DATE)); + + config.put("catalogue.frontpage.input.1", "topstory_habbo_beta.gif"); + config.put("catalogue.frontpage.input.2", "Server is in beta!"); + config.put("catalogue.frontpage.input.3", "Please bare with us while we sort out the final kinks and hitches"); + config.put("catalogue.frontpage.input.4", ""); + + config.put("enforce.strict.packet.policy", "true"); + config.put("trade.email.verification", "false"); + config.put("seasonal.items", "false"); + + config.put("chat.spam.count", "10"); + config.put("walk.spam.count", "10"); + + config.put("stout.room", "0"); + config.put("messenger.enable.official.update.speed", "false"); + + for (var set : CommandManager.getCommands()) { + if (set.getValue().getPlayerRank().getRankId() > 1) { + config.put("groups.ids.permission." + set.getKey()[0], ""); + } + } + + return config; + } + + @Override + public void setConfigurationData(Map config, PrintWriter writer) { + + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/Base64Encoding.java b/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/Base64Encoding.java new file mode 100644 index 0000000..1995875 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/Base64Encoding.java @@ -0,0 +1,37 @@ +package org.alexdev.havana.util.encoding; + +public class Base64Encoding { + public byte NEGATIVE = 64; + public byte POSITIVE = 65; + + public static byte[] encode(int i, int numBytes) { + byte[] bzRes = new byte[numBytes]; + for (int j = 1; j <= numBytes; j++) + { + int k = ((numBytes - j) * 6); + bzRes[j - 1] = (byte)(0x40 + ((i >> k) & 0x3f)); + } + + return bzRes; + } + + public static int decode(byte[] bzData) { + int i = 0; + int j = 0; + for (int k = bzData.length - 1; k >= 0; k--) + { + int x = bzData[k] - 0x40; + if (j > 0) + x *= (int)Math.pow(64.0, (double)j); + + i += x; + j++; + } + + return i; + } + + public static short decodeEwout(byte[] b) { + return (short)(64 * (b[0] & 63) + (b[1] & 63)); + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/VL64Encoding.java b/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/VL64Encoding.java new file mode 100644 index 0000000..a5efb46 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/encoding/VL64Encoding.java @@ -0,0 +1,59 @@ +package org.alexdev.havana.util.encoding; + +public class VL64Encoding { + public static byte NEGATIVE = 72; + public static byte POSITIVE = 73; + public static int MAX_INTEGER_BYTE_AMOUNT = 6; + + public static byte[] encode(int i) { + byte[] wf = new byte[VL64Encoding.MAX_INTEGER_BYTE_AMOUNT]; + + int pos = 0; + int numBytes = 1; + int startPos = pos; + int negativeMask = i >= 0 ? 0 : 4; + + i = Math.abs(i); + + wf[pos++] = (byte)(64 + (i & 3)); + + for (i >>= 2; i != 0; i >>= VL64Encoding.MAX_INTEGER_BYTE_AMOUNT) + { + numBytes++; + wf[pos++] = (byte)(64 + (i & 0x3f)); + } + wf[startPos] = (byte)(wf[startPos] | numBytes << 3 | negativeMask); + + byte[] bzData = new byte[numBytes]; + + System.arraycopy(wf, 0, bzData, 0, numBytes); + return bzData; + } + + public static int decode(byte[] bzData) { + int pos = 0; + int v = 0; + + boolean negative = (bzData[pos] & 4) == 4; + int totalBytes = bzData[pos] >> 3 & 7; + + v = bzData[pos] & 3; + + pos++; + + int shiftAmount = 2; + + for (int b = 1; b < totalBytes; b++) + { + v |= (bzData[pos] & 0x3f) << shiftAmount; + shiftAmount = 2 + 6 * b; + pos++; + } + + if (negative) { + v *= -1; + } + + return v; + } +} diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/encryption/HugeInt15.java b/Havana-Server/src/main/java/org/alexdev/havana/util/encryption/HugeInt15.java new file mode 100644 index 0000000..7f8f8a9 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/encryption/HugeInt15.java @@ -0,0 +1,60 @@ +package org.alexdev.havana.util.encryption; + +import java.util.ArrayList; + +public class HugeInt15 { + public static int encode(int tPlain) { + var tSeed = 5678; + var tSBox = new int[] {7530, 6652, 4115, 1750, 3354, 3647, 5188, 2844, 818, 2026, 7133, 2592, 3578}; + var tIterations = 54; + var tCipher = tPlain; + var i = 1; + while (i <= tIterations) { + tSeed = ((((69069 * tSeed) + (139 * i)) + 92541) % 10000); + tSeed = (tSeed + ((int)Math.pow(i, 3))); + tSeed = (((tSBox[(i % tSBox.length)] * tSeed) + 2541) % 10000); + tCipher = tSeed ^ tCipher; + tCipher = (1379 + tSBox[(i % tSBox.length)]) ^ tCipher; + tCipher = ((((14 * tSBox[((i % tSBox.length))]) + 13) % 10000) ^ tCipher); + tCipher = (tCipher * 2); + var tHighBit = (tCipher & 32768); + tCipher = (tCipher & 32767); + tCipher = (tCipher | (tHighBit != 0 ? 1 : 0)); + i = (1 + i); + } + + tCipher = (7639 ^ tCipher); + return tCipher; + } + + public static int decode(int tInput) { + var tSeed = 5678; + var tSBox = new int[]{7530, 6652, 4115, 1750, 3354, 3647, 5188, 2844, 818, 2026, 7133, 2592, 3578}; + var tIterations = 54; + var tSeedCycle = new ArrayList(); + var i = 1; + while (i <= tIterations) { + tSeed = (((69069 * tSeed) + (139 * i)) + 92541) % 10000; + tSeed = (tSeed + ((int) Math.pow(i, 3))); + tSeed = ((tSBox[i % tSBox.length] * tSeed) + 2541) % 10000; + tSeedCycle.add(tSeed); + i = (1 + i); + } + var tCipher = tInput; + tCipher = (7639 ^ tCipher); + i = 1; + while (i <= tIterations) { + var tLowBit = (tCipher & 1); + tCipher = (tCipher / 2); + tLowBit = (tLowBit * 16384); + tCipher = (tCipher | tLowBit); + var tOffset = tIterations - i; + tCipher = (tSeedCycle.get(tOffset) ^ tCipher); + tCipher = ((1379 + tSBox[(tOffset + 1) % tSBox.length]) ^ tCipher); + tCipher = ((((14 * tSBox[(tOffset + 1) % tSBox.length]) + 13) % 10000) ^ tCipher); + i = (1 + i); + } + + return tCipher; + } +} \ No newline at end of file diff --git a/Havana-Server/src/main/java/org/alexdev/havana/util/schedule/FutureRunnable.java b/Havana-Server/src/main/java/org/alexdev/havana/util/schedule/FutureRunnable.java new file mode 100644 index 0000000..18e5869 --- /dev/null +++ b/Havana-Server/src/main/java/org/alexdev/havana/util/schedule/FutureRunnable.java @@ -0,0 +1,22 @@ +package org.alexdev.havana.util.schedule; + +import java.util.concurrent.Future; + +public abstract class FutureRunnable implements Runnable { + private Future future; + + public Future getFuture() { + return future; + } + + public void setFuture(Future future) { + this.future = future; + } + + public void cancelFuture() { + if (this.future != null) { + this.future.cancel(false); + this.future = null; + } + } +} \ No newline at end of file diff --git a/Havana-Web/.gitignore b/Havana-Web/.gitignore new file mode 100644 index 0000000..34c5f4b --- /dev/null +++ b/Havana-Web/.gitignore @@ -0,0 +1,18 @@ +.gradle/ +.idea/ +/out/ +**.iml +/gradle/ +/build/ +bin/ +tmp/ + +gradlew +gradlew.bat + +habbohotel.properties +game.properties +icarus.properties +locale.ini +log4j.properties +error.log \ No newline at end of file diff --git a/Havana-Web/build.gradle b/Havana-Web/build.gradle new file mode 100644 index 0000000..d649a54 --- /dev/null +++ b/Havana-Web/build.gradle @@ -0,0 +1,95 @@ +apply plugin: 'java' +apply plugin: 'application' + +java { + sourceCompatibility = JavaVersion.toVersion("1.11") + targetCompatibility = JavaVersion.toVersion("1.11") +} + +mainClassName = 'org.alexdev.http.HavanaWeb' + +repositories { + flatDir { + dirs 'libs' + } + maven { url 'https://jitpack.io' } + mavenCentral() +} + +dependencies { + // https://mvnrepository.com/artifact/org.ini4j/ini4j + implementation group: 'org.ini4j', name: 'ini4j', version: '0.5.4' + + // https://mvnrepository.com/artifact/io.pebbletemplates/pebble + implementation group: 'io.pebbletemplates', name: 'pebble', version: '3.1.5' + + // https://mvnrepository.com/artifact/com.zaxxer/HikariCP + implementation group: 'com.zaxxer', name: 'HikariCP', version: '3.4.1' + + // https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client + implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.2.5' + + // https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2 + implementation group: 'org.apache.commons', name: 'commons-configuration2', version: '2.2' + + // https://mvnrepository.com/artifact/org.apache.commons/commons-text + implementation group: 'org.apache.commons', name: 'commons-text', version: '1.5' + + // https://mvnrepository.com/artifact/commons-io/commons-io + implementation group: 'commons-io', name: 'commons-io', version: '2.5' + + // https://mvnrepository.com/artifact/commons-validator/commons-validator + implementation group: 'commons-validator', name: 'commons-validator', version: '1.6' + + // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient + implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5' + + // https://github.com/Quackster/duckHTTPD/ + implementation name: 'duckHTTPD-all' + + // jsoup HTML parser library @ https://jsoup.org/ + implementation 'org.jsoup:jsoup:1.13.1' + + // https://github.com/Quackster/Kepler/Kepler-Server + implementation project(':Havana-Server') + + // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 + implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25' + + // https://mvnrepository.com/artifact/com.tunyk.mvn.plugins.htmlcompressor/htmlcompressor-maven-plugin + implementation group: 'com.tunyk.mvn.plugins.htmlcompressor', name: 'htmlcompressor-maven-plugin', version: '1.3' + + // https://mvnrepository.com/artifact/com.google.code.gson/gson + implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.0' + + // https://mvnrepository.com/artifact/javax.mail/mail + implementation group: 'javax.mail', name: 'mail', version: '1.4.7' + + implementation 'com.goterl:lazysodium-java:5.0.1' + implementation "net.java.dev.jna:jna:5.8.0" +} + +task fatJar(type: Jar) { + zip64 true + duplicatesStrategy 'exclude' + manifest { + attributes 'Main-Class': mainClassName + } + baseName = project.name + '-all' + from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } + with jar +} + +// Create jar with no libraries inside of it, used when creating with "gradle distZip" and +// libraries are then to be stored in the folder next to it called 'dependency-jars' +// https://vocon-it.com/2016/11/15/how-to-build-a-lean-jar-file-with-gradle/ +/*jar { + manifest { + attributes ( + 'Main-Class': mainClassName, + "Class-Path": '. dependency-jars/' + configurations.compile.collect { + it.getName() + }.join(' dependency-jars/') + ) + } +}*/ \ No newline at end of file diff --git a/Havana-Web/libs/duckHTTPD-all.jar b/Havana-Web/libs/duckHTTPD-all.jar new file mode 100644 index 0000000000000000000000000000000000000000..5e871a4080e47ea833efa50f17db2d66127c8216 GIT binary patch literal 5278534 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�L=OM9vMOM~5|Tu=2^&lT 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

T$ssuvbsge0g;PrK> z``#gBwL~^!4}d-NYC5wqG8Q2IGmT!I7ZpuK8s1KaemZbU%YMhbaswtVq9LFx9TDLR zq3HgD!wz($_*X#GLnq2umld z5bagHYQ0!tTt=FvD+7=4!@)09MT}wW+5#W&ssOaA5RW!28AoWfUFkZoR1r{yK!%Dx zgNJp&!@spC!D%QpCdU43%@3UUGvKstC52j1XOTET6A!8P@mynRAz}K8rI?HV!qC5X zma@b1TvkD&;(@!2?R$F~hcp(gX8-fXWpqJ(W#En}uV$>2~4O7yogO>FK zt+X&objms+y`4n$iA^#0CvL8i>;mgSYK+r1A(va>4tuUpk#dYz>drpFn^f8tg07c9 zE7&qqW*aTBo0`H$RqpMO`4sa$6|10eT+A~k)1JhKM>@AyHdkhrNjJ4yNrkwE8nR3C z2-H#YnsgM8b+pNB6dx?z79u?d4x40@k9E{~EY1sxg%EaFv?Gz2k!-a8HqI2F!E#^@ zrfnv{&x(CV6Od&LaVitil|vLcMN~>Dx+N1wZsF}pCb}ifY;6JevzZ|F5c`XZYU$Ic zc`z`v<$ypmNp>Fo)Q?31){=juO*=?&Lc!MA+jVO1Pd6v^prDbE`Lc4lSqxXEJt@v` zaX6M>Y7)&JGRzpFJUp#m>il6$wrG%x`W^R!Z$EdDp#y-yE=atG$T||g$$b?$A}fyW zh#3@Ogv?}`bx7MXM3qW)09tV9^`K}>gh3WX#ViA=JU>yAA%!B}XB^E=pJgrJPYA|@ z366W}4Zwc7Z|=5DEyz@me90`W8eP$U>SwLFxwzLMscdyhF~>M_wVRM{@w$d;rb=4s z9Z{AO7TyA0v@FbZ|1*kS{atkJD%v4IdC{wVb?7nf$2m zj8VU$bi}+-=kuI!>VYy-uLg3uT&0ollN@&OQnEtZERv36x!L0HyG)c0IrlL%eMgoK zc~y~A;n!D@%~sooXV@6580HmEBIx~eidhm+%=8*XcI}=av)_S#mxcZ~8WO3Rh}O{i zfh5tL@W<&G=2*3|vUk!?%W}gRDEc^_aoU@Y{sNuzHe?h)V%_%0Dvva%ix8-T?SP8} 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

>}`@6FiWkHOsW~O*NbGmY&Pu@%kM$%^o#;5&yV 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

bNiAt;9Vn-= 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%0DHY)52{FFfSTmtdC^d z_Xq+cjYMWk*d}@0$YcTuIM3(;?m7jcQG$gXT=vSEx%OY*Bh?LTDX%qSTG}?5*Ng=V z(@_F<6Y&T+tA$ACG|t>DUYnc-k#bxg!X+&$#~wTELU6zqHx~u{@&egKf=OT_VMWls zEf412Fx2mZ-`l#B6I(WLIeSuux3I@#^kRN4x)Ibcv{&Meg94hjebOp7wDh~n?KDgW18KT(i(`Pm9MTfYBHDSz>%1u_5uWCJ2W!4gm+zb4>5O)3NF+-Zly^Yev~}^5;Ncg=k0_Uryw4<#*P(?yG&sigU=V*rRr3 zpl+WjxyTr(s>d-rb!)lvbrCNHXP#Ju@^G}tH)bEM$04&06iE;CKW5U8_$7U4O*isR zx7H!RUyu})Jc*4yQdNW(bP9V*zaz^nLD{3b=__311zi>} zhs}!)g>EL#w1G5-P9=-QxmP?;RgIK;4*Y{5f*m^jiK_ksJWBmC-qtnK73^f2>RLjx z_ZVA-3OIH~ip`Z$xV1Du*b~C71o3?;S+};^XQA73u-K zb1y>9lZ7g?dsV!|wy#U5vBQT{*nrX3H9NGTSUdJ=h+fKEaXM>Oe5Jm}cNtBQgoEYH zg0ww1a!Dm?Z~^_kY{)Uvs<_ttMTw0rrsOBVi!r*Y-jNQkR(z1@EhnWiWJE=>86pc~p~D#yJOVdX0}yeW06_$XMAK zcCbN1J;S#8r577!Wu6Emct#OQ+K-~S;w(AG7{v0rQ*avhsIHIW{Q1l1TC&c-T6*?A zEd~<$x$&qMr5-I(g#yeXoF>7Ona>PCCj@e=u(1POjHaG-ULlcAn?64d(joc)+N=zM zR78(gZod~wvGNg*P{o$pmMbV*2-dB0YlOKFa-Lh*3EaPn@6G2pi54IidBFFy|AF}a zVw(wM00PJc1fTg7Rt^|5;5C5kPzj;1ax z32(d!kitj&qXTy}URwiKm@0+Y)4}9?@#BH%=4Rmm@6&xvlRqMBLvxXkNZ5-yC%HZ( z+=xk@x$cOszU~U|Q92k-HxDJ~TMk~UFV)@f9jPP)ZZmkEsMvl<_x8JQi0$t^eB@C0 zsBhHf^}92&SAJKj*W`@V?40@sl1MEgIS-j-x6myM_3rR))Q>w_Q-yGh>CXsk)mP3? zriV??XoM7{A$X3@4ldh(EgLNKCq`qObsr=oT4o>G7#d_>NBO=Nrj`k4UoKoZ^zAWV zff`h_<0K<6rFeth_go(`?+F3$7*E=K9PqP48nQh=-*^5 zX3{2Jd(r}S*m>AKhn9(bZ>-kWN8`eBTx6wG*X(t~Qlc?aZJheu`VEb_&THPm)HD_s zTr$1YTG)6sPpU#YdA*;X8gq6;*z)%^KcjhPvHKlp=j;x>a?Na*rf#N)W=4ls7W>VQ z7ewth`RN_mTovE>&jIRE6NvayJCY78bIh}X3wO@Dha114a;zqglFx;vEsfn_dzVs( z4o=5ooYnWS3uh=tKNx5lgvg&Tv`p)|w{mU*e_Wn~F;o9QfO~Aw9rR zYzCkwMcDt{OP;?qhX1u=Q^n2{@Tf=E-u!>24?spBfb2k2s2r&vsUUxJ?8ZP2XT$qb zT0xMjd4E}uhldPCR3ky4Y3$d%hRD<9Cqn`O7-PO8yg{EPdC7)J@YHX-h}_+F4)Y_! zCYz0?xL>qgSY6OslYYFu9B6+U-!aCE)cX^ppIk|1ChV&Qxli0o)7=gymhaK*2gU=~ zp1A8t+nu|+mh`nVdQ$?jGq#vgb}4%;W2Zp*7%L$Cc{?!<`n&78Uk_X;2F)*G4E zI?XW}MNM66%P*_}PT?9wE|M`3i4ox_3qn84sg0NQX3m%Q^lXxIZBFh<1qg)LXq)04shW&-k2H;)R%n*es6wNeC$MBhXPFF=1Gz>g5jgQ3 zbHL;=M+(G_F5`7WQ+k$btL2w#sReW>i_Dk6#u#^7`*!b3`B*UCF5?;MJI{2?J5Gr` zc{>R4igZ#yr*CXuzyC-C(|x3Q-1=&6S+%C+s6+GvVP$-mnb=b57js2L66H=K6lu4P z2_Ih~yVQcD7Q8JZje|rvWscef_L@cBOnno#{A0roD5-edR zc)h(SfAvKlW=*(q;)g0;fWiKPec~F~bz@E85}{brSa}LHbrnXVueG8_*af<;yNN~o z%7UCLb-7Ybfs#iQ9=b5M12H=0#u-d&yOZh-*i8Id*`|outS6SwPbChw5+$l8Ig1z7 ziao=_GO2*>s-xDSgSKb7!QzVZ1y0LDQ01Y-y@PN^zHemO$ZHoA;#C3iHTKFs z1Zp;MGYcu~Xm%X>T-0(nHKDxp4oidra!8upmjxizxa~LG1Hr9_hgTImb0`N@3?c=r zAAI>->m_Nhq^$NVYlNMLTB}bhIO;`^QW5S=Xp>Md*M3#Z?Z-6=*}~8U9tsQ!$V1Mo zYY-B^O}09JFr<4{eYtXa{?73=kd^#)GJWPiI}O{k2gDU^@+aC9ZF*i%C0I~lT6ed@ zkMGS3F;!%t=Lo(G>T5)&gs0G5zEs#tfiD;ptA}JR!Ss)|HeR3aUWq+zK352tYW^1b zofEoFhfsk?Ye%cH-NL^r!@z5Pbmm+;1gRaD>C$YB<+!zO>5?h%gtE3ZWbUG!+j;QK zgO)SsqnlN682SU`E-A^xMLa*vg@eH9w*)~ZAI^n$l=C({PZ+8ftnPXQ2yPF3)OX#W zFsmyyic@px*kplW<`!&m(mxS=xj!^Pv8B*^=Hw4$04wUqNRDNb3Ab-&r*>RJdi%^h zpf=+BV!E<^1V+hb{L#(KZS@%>k9+&xL$^uZ6};oW0_l7yAsyU*>X^t#_l2+4*Bds(K$owjlR<*+ zOe2FGY{+Ta2e$mGpd&D>pSJ^XzIHR#G@n6hw;-A@dBB6y)0(m0h9LKP4=_NC5rtas%o4U+>(*E$g}%g!Tv^Yw)Cl(St-fr zK(r8X`9N&#Sz#Zd_|rr*+0PXbH4BfsV6W5MW#S^BtFQ18CPZi6g-ZP$Ge-Uth z0g)(<_YC@+Cw^h^`I*?jd1>jz^*n{c{^R}S4V)L$IuyM(-S6{04sy+=4uS-0qGkDF zF(a}Ao#M~60qDRQR+WX&ZmtA*;;~>V645oQfEv1hdF{9C!C{oAAe;gu+{1ldo~>Fe zIbrIC$J`ENqp0c!0gPkNz_kVocxyWJa-&rgm;z<;e%B8L5n{{rkRiskP*7a0OJe5d zNt2W_`cs3_153mskLjfP%9Q2t!RD+l+uxZd%c2M^G_NMoO>l?tLzT$sCj8I)wa|8K zv?O!4^-$<6U1)!9v9PdU@degW?22gqe7@jNA)K5Iai0n5jQ5jnACdRg^#%8l{bSC2 z>=^iS-Vci*;<=MSeE_sjBk*XxSn|j&N4!q%lixRG+O)XbnBgh55Q^GFQFi<_)%4|O znd)V_UBH?k#tKrTc{WZ0S10%YQ%*4X;cNysV_6KnvqE-yxi+vifp^$>u4MgB0d~zryzWxVO_C=F)UPhERFuo5VV5`^rMh^TT zAIuXm)nD@7@r=dY=;P(%3NkymAGTh%kN;~PDm%TAE;bS=sgz_&ve8g+D%u_tsS*0} zxT^yW!(xzpX!Y(5Ibwcg5@1s(e~J5Gg{|GwxD|;!fwNLc4xWwL9R*Re_-ctJOr6l; zO6Kh>Z1282WAGmI*F0oJFaepRxb0>y1%$01RgVToRN%A^bS{Uc9j45;PUx(Nb0a7r z4(#O;>PZfkC)CA3m5UF|x2IJQWh$?UNMl?_&wRVXBSbl7d~?Da7Fb&7^$cM@kbYp@ zsAdbyhVd zUilrR8a+2D6*{!gOV!1I_(3L)9RnmHHnk97ReK*@FVNbk`jntj{fZ?&VJn%aoB_E5 z(m@Qzk~OTv4;=+4oZQJQW3Vrs1QSb)urG`I<0cP5^9&n%FDVqbs-*L8#AK#h zjm$W@wtpf9U*!1EzMwIMXgN!!D#WH7NS<8+>?i*9P^5Ka*o_HUfom8&ti9uf4Z^y6Sj| z6k4>@Qx?d-b^K7m_VY~)>~5ttG1SP!mPrAzGRQ0^r`RlsbgknpB%Zi`8yg(t$k+a#mGYON(f_AXNDG(M8|FvcOuw)RBNPZl14f2Wl!iiR{gl}KR%scj52(hXZt??fIN8?a1U~$_*<~E zhxxyiG9h;l15nEQ-&RGGS=lo<13D&eUq5|f{}0QP|GC`)S%3gC0s+|eXpSTY|IW%K zmMXP8pnldrFCoPu)sR+rG)E|!P5vdIQPG2Q2{+ZUsV#Ob{+V*yPlo%c@Er`yFZ&-u z1g5qyC5TuH{F||Krj60`l)8h1Dr=rkiq#3-5U8rFy0%IEgwO&axO>cr4*7Co`f4J9 zHKjx&&AIx)wloor--fx4aNIHNqOe68%o=Ywg$iwEQ>t<_n>2gnIzM{o(_%R-cKCX4 zG^TIObKYdx!C4Ws2FV7vzA+`*ALEvpxQh(?rMh3QDtB&6Vh$XOTq|NWI>1I`H0}%q zRs^$RPcQP^roE7j&m`{E9aPf2>72<5c@gDoG_KvJZi$BS)yhsH6<3d#5lGhBA7%-WciDdA5xo6+zDV?v1Pcap18Z*&gsQy&ar`R~4`jW0*b4Y)a&hVk zV<*mo^r>*?U$3tK4*)Jj997kZntl8LUq5QACGzFwF&#^Bk~>s^R>gJWA!gr59aR%? zlFYk}Mxn)R%Phi?vEMuI+;9a;aDEtTaR|NBeB=#_${AW+cz5cYZoSd&x$zKK+);#l z6dY0*&Eh6pHXXP{GM#N}kq$##Yohm2Eys`k5b>yZj#qSlwuLive}=$KtOWJUu%63a zK?ZkIWn4cr+^!|{V7UmYNHQMpmE4J~9e>+X9xP_q{jgZrT)Rkg&C5xfS!gkQt|w~? zJ@FC^%^J8hB8_D_x_G-%;M~1vIkBH}jN9;*t@;2>m7~h&$i{QiQ%OBS5oRn;J3hSR zl+VNyly}U6T7zc)v6x(Eo3zzkkAhKZ2OIW%;?m|BN$BIK%YCq#(GC&jB(7won7)2s z%y~M*a&|03DGfOQbIludG_Fu+1_TG=TC+CXqR|fKJ|!I)+f9QsIp({77p)k68!xNA zFrV7jS6?TJ+Hto0pGr#%(;_v$Dg5x5cH_zk{H|y>2|XvWs?&x@u4xBRG}TrK63TiJ z&5;>g%H-dCN2h`@E8;MbGR>QDS5Q`i^8)v5VMF~#oyGr`82=~s0vUk-vIEhetOZ>4&b1O)C`F_$*as(AZ^q*-FDs~l zK%Q*^j)H-02+#pPU2hwH zz{~3Td?+O6<9~vHX+?fGD236~e9-7iZs##Xh5j1{!w-tEnMyyH;C_^WOMmevdK2aO zcKv>*jx3qQiValaerw>19m*bVm@kK?2KfsVht$~DD`OW1Sm zO_|@Pxn@QgX*C)%i5xy)F_wLpM|XP-&HHWG)W_glVi2uT>W0pKEMDlrB?n6+lEW3x zW;ufu&%p2G$kkiW#~pxJRXIdr?1CCbs-$aDgF5?@EHGzp;!IQfsiEMxJ4Zw@bK<0! z9TBsW>08-rcb5N06{wK`GJ4?&PKvgz8Uac5d~Xo7K-I5Lt-05&B*$T;Jl$9EMSG!n zSUZK}b)X=vPd|%I21!sN00TC~e)IvuRef~!Q?ZifC`j1#62g%9P;eJf97okfmqdM| zH?qf*65jIl`x-6}OYlsFHF2+r;8Z(nQTFQCEe2+?Sa&VewfEq|#!bWDm*dtFr|TG9 z39r^tLe@-D3*QzZ9*o?J!Jj=I?CidB-6lp&lYQz{``L5*%hw2`Z_=AS)h3p6Y;owc{eA(qr?ndIu8YY9wS$;hdt;9 zdAN&w*~Ui?v^~LO*I%X&J6gfCF=X;<3LjstO;defbUiJEdg+Kw3O;`M_e%I~rCKGv zKCXqv1d^d#uhOH`vLksh$pzBgThtz`UyyEKYHkt5xBF~-$E;bD`3$x?lSN;q5JK^_(nOA)s*&Fz|NW0R@uQv*1`zQ< z0MY+{V_NsO@xXtN1^${zfLuTTd4VYSYbKHKv7sp-;H8z%=z%6wB0=WGFYsP2Mme4t zP$SV8#azO|*Y2^7N2BxsSk}n}t8wJ>`wEItFEMd&{4b*1zo>askbMae2=^qo56 z`W}!%w6?x+=2DPi++B~h=9}FGGMXbPqF?`NGQ513F^3%#FusuRT)8!raY9*mi;m}( zIqcVzx4*mU-lf2~f?K_7Ic^uRO_p#RH-dD}uxC4VVQ?gt0an!pT_R0zTjwcBEVv1GCLXbXsoXriMv`w~rLGZ1@N1%+s~WSqGsQQNh8 zaKk9gDu}LuDlcTIJ`=sy(%D{!BPlHvHfZM*|x z@Xxn81B2wR$%8)$vv9)l_a+DC2SNt^4z*Z-?kElhnj#n5OzA}b7FZ-3cc-J4|jayt~SW^6B=qyw7;W_CIbvS}Iao=4~ z9578VZ{hjLdt2n~np48*h;IEOR7TleDo(HN(tsG%vk5mu0Z^*)CA;cSlv0+d`k0+& zeS)cjj?maeb)6KyUDb#NFv)m`aJ_k4oY=Bs%~Q+Kck(G6lkXT!32!auGrmqrO zpVojeI6un<-oI?mV{^+{fh?fi*NlVa+q19q39wHh2%^l0#F@omHK-qKzQDFI7Cr*& z7#8>#UeHv7dD|dpS(fr35x{L$H&ggy+gwHJjDpg7Zt_ZW3`Q8i@{QXqq)Q>!|KJ-d|(Pz_^+J5fi8H5G`RzP zo4%0Ha6z;SQ`x6b3DAvg<0sWU05vA!OtL-|Bz$?dEdUWEIs10SPo zeF->UE8fadeI@mOP4ddE%9AVAe$VtX{`raxk5O{rh9q;8UZ`J2qY`AQ?C& zP$O4FX^u2KugDfcF8D09552zlyHq^7d7hw~_G@IWAspfcYbEgAL=mu-7mdfmdr$$8u*!t^bW5XO zS&e`ViS28mc)UP(Z)Tv-Q0ev*m)t*dTxwWsX3eg5IYjQLFkxsv@q8*pJ6Q0(F(;eDxloCzSLUZK8=7$u3H9c3+OuGUzz@C=b&_CN;L(7%U$J8Z&6*yMBl0}o1xVudQQFOM%|hK34dqA$>BADsrrShA3Vh-qea_ZjfU zl>y;|){@YgWOYUh)yi)tX;!bR@l*lZTaEY`8@W`lTpgAVj}=+*a~mo_IF8gWw7N4z zcru*;3L^gprd6dB&XCifEX1l3v6i#WBIkm*P$|kQ&a8h!3c^F!jE-Q@JpP^^E-B?0_wbEuy_x>)Jia*3zDKpwLtT(ZW6^cn5O+Y4r#dCqzN$5aGZcOA( zqE|!7YD)>~jH%c}tqOB1*x&ir0j z9=~z%R5_&oEdTb*hPY*NshTg%loMWTL*1ZOq2eJznDh0D9tHNvT9?7kHGFI+m$9m$ z8rUO^=^AsWqC4B2i}HEd;)r>91%p@%wqav6H!Y&jQvgo*f$hcP^X`QNaDuQf?63`X zQ{EVz!fU_TrNH-6QmrfC%r318={EdG@E%Q6lMnxMM_ zlOHlNE#0%^6>6uUHYix70_-OKC!v}XhFrv7Cl;B7&2s6n7)ZMS3h3Sj9CepKcdo-b zHdWi&If9FUMGzTFP=jlb_aj3G#C=FjxukgpfeFK>+{|LKp;U+b*hSbnP^A5=NsOrA zp!_`y)<-owGlI~!=^NXel$Je49U|N@lW&*15B;`b=@IejR!JIL+6VTV{IH^5Gk;h zr$(Iet4=0%ex9+Po|0~iL5>-P3)cpW(wlTW1DVFANz>Qwv+P?=+Ax0rrj6m&uZ6YK z{#djyrG=$Er;+AG_(iEoRvsy4J}Gv-i5V^#ygzB?-aO+U3@P~TvJOQ~@oCuGY;e|g zzsU}E!eyfaVun|pP)tFtnkG0TsWl_vh!)JarDHsh)7KJT>BJ%4>xb0p%`2*8^+q$} zUgnF_!L!lHzZ$UYW&48h?z!9#zsek?&3=%^-nFWl$8F82#2#O7+R`*#MT@+vaE;>H@6BNB2#R(pyF1_ zln`Od@Ku*G0kV_|dRF=h9U?eg6V zW_^K*F8}b3iZU@&^5)-%d?ifsQQQw%Rg3b8;47}3uD28qhrvEWP2$VF9bScpXv8WW zQG^bHiQ?8*TA3{VcuoO2H*-QV(@2EGF2W`|haMI`$sd2XCn3ZXk(t~*gj;X}b)b`Q~LD?u=;o-g6-Fco1 z&w?TIxzcM6%a`dFe86lOz<^~bV&FyhrCsSmdH;I$8-m;pP1!2Ue7%L+Q02`y0d2@?-l0FUqGUMnl>fx;1r*sqCIl z1xDN=t7bZnF=(}7VtM5?biGbbE^a{~2Y)XeiECKtD|U#lQ2dR!ZuVB_kHyvHBjDZr zynhqaiztr4B}0^yj3NROq%*4_oj!Se%SM;pI?x6H2=@Qt95`zMQDTVV8QFmHvtn1T z3%UG20x+ODKfmVV@i<>WBLRwhH2IFwzhvD1giA&|&?qUkEVl4WH zt~mB`L=f?Mt-6G~ed-f1R#UD1Qq3MArW$~-g`LQ3DVen=2J<)5u2n?A?tt@I*pXHG zz}k{WD=9vpNFTzr%M=(z{C=!u290`9mNsN3`jVh~i;5SUx)-@Cs;*mSaba&4Qxv6m z4b%p%3MFrChOh&fr&X8Y^fII9vdQ#Bl+#}FhRI6^8ExMC#KRC?v`OMCrKD>TQWmw4 z$Wth!92}#7ow}twvhWcu+^6;4HqoeOR!h{k66fR@(3={KooP4WY#S^qG)k${5lP#{ zb@>JZ746dpdDCP6u%M(&;p>f~fG`YRO=c~hbP!{vYh`O~q;`u4?rlNMJf&+vKgTq~ z&u4}i4N*@&1+|0m!!*hxY6IEq_kp%Tv_66hkP0Zw zcYZGzg8l)qYCvWN9rRXPy$BRl`}_u(G?aJrhp*|G?a!RWy(BKdX_$2Ye6uB8Whz_# zAC;RWFImj)ukaB-pG^C$_axK90$<2$1b}XMhe+qt4(_-*0XRP zsbpWU0ut-UJVZw6~4^~bD5;*I=KYWGJ!HoM4T zvFanwHu@d^+3U2{!>VULu-lLTJSe9LYnP zHtmXa)X_y*1)tfd^Hz-9fOskoNzxdl+z?3w{SRTF%_msX_g92wSr!&{k2w7O$u}Mh zLCB@7kEavw)J-(6&%*L)#9J`m{xX$j9#Z>XUbF)17%!5d4 z^IFJ{vKXWzCL9?nruO}kpv5n`$fjO+A0a5!(znFi;J-t+oL?TMkM?0*wcwwc8H1;m zZyLNW-F3Cu=KRtUt+QaZ-{0e92Mpx_44167MZ>b&4vB|OKZ#}tmt5MGGG}jGG%n7> z?n7QL%x^E}&V)rZy5)bqj}0!^Q(%exD6hc&dI{VrQobOk!yrGY|2Rf?akn4b>A`?| zYn_(2A9e}()xi5s5hwjl!@}5gi;|nbL@?gxNh5q-lF45vaH7OVczu5TJbxRAUCzN# zCSk)cA!%moc`UujTTYF7buUtRUnhM!lTN;vSA8ftR7UJV#k)u)UXqJ*6#Cnj34K;X z^%*Q;F?#W4lv&iDm@(B&flnZBf?%FPHx*<6+lNKJl8DgUrdSQ*-P)J?B5past|mYx z8Pl7ce17^=2-1Cw3MY8p)V_odxu;`gMKCXc3KZ#{&V>_yJ#Z(eZ+(_VzEOzKvo=YT z=?C~_E`gqD>mX}DM5FW+|UACzgI;bWiF?Crnj^z84T>2Ee3A0WCnsqkmIH#*8Hf?oT!xe)P=qxlkv z+XCXC)q%ySx|_DtF2}udg6B*B(09gWm5SI?R8(d$(m^y@T9@Z*($h-q_ zicQD@o-MCj_dn0Qn6hP;KNBwl9AqDn>{R%`4FUcZIAAzW9L5L=HH>iMw>v#`C{{ZG zRyRV7PQ92X5bO{9Xqk{Dy(Y;Kv?eD7b=-bvThOPerNkU9rCek$1#L()1Y#6D9@0(N zy;^F_$k)gI4!9=%+Qvat)C%ggW1?jhV3;Z_JACn+r=-I$WwO~ah^4s0qe+0ZGHn#0ZAjep*=?;K=#mn|oqr!nCqI9*m`S(CK%^ zWPb)Zm4RzOLb(GBC#(tgPK39r>QL=*ap<|G1rF!9N`}3G$Z!M0vI${i@?I=wL#vqO z?Ioz--(={@tVB=>n$RfL3em3#OO0w!%<+BW{_b4nfmO!2*>Z&Hz}UF%cWRS20!)D*VWhvtX!I3rv*Bfynh!!(>ko+?8;W5M_6WX1iZlnwnBdTP&3E!nEP^5Lm#YC3V4H9=JdUl+)g$lOV$f*zi+$kENnXG>BntLJ|pC({#;@d+mS_)~myGAEYL z^SkLFkKHTge`r>Cp`GgvvsV+QcZ((JiY0CfCw|8wjj^gw9REm^l@xrPrdZ@krjV5Z zJ@mvo1P{CuluX?2zq1X!+eSKkMmjW1%j4#NOT-|})5<|U+|Ol#2>LY{(+4b>3UcUr zJ#^{~;%F3jhpIx&VHulw=xPO3_xzJaMi}e5PQ6O}4%hH$N?&o1AD&Z_7`n?pR1Uvx z?cAcr(}1UUOM_N_nvg>bw(sJszs3lZhXrN_Qorx6bH)iOS)p8^! zUa}@ph;>SkQH=~VI@B>SoWn0z5WQ9~&`ucjFCbts!H%?NdJ(9O(^`0DxL`0x=kfRyd3}F5f&W$ zk1ZNVV=TW2iHPN+fLgSz>dMXK38A^z%y`n`iwRoi=#%SnzlAv{9ZN@QO?@mHKZLSM z(CD@m>QX>`BgS8ad+}0PdYzK`vQ#4JfcaZ5>Wm+jE8K()IIlFpSXN|D824zonr@6&8G$&wPpq*^t>; zw20Mb5E}^Le&mqC9qWtWWzf5|gL5f9OK7(rGUkYgRFZ?YYw#@gnFkF`C1O(xen;GE zG(oItMpR^l;kUy}th!@HJnyfFF083TWE9O=Lf1=x)=OmVrhaFOe@RMkOv;TRm!VE3 zTrWA-5sH%^?~z?3#*fK2nQa^heG_J0J8?IT506Jo^#s5rx>9NvVk$%xDczKYkP?qY`#OdYR+g4p|80!)2bGpa$ds0XCx>fTv1ZXC&#$(M zySKrDUYgRB)I%6@zNbfW)F%`(Yb7e@j(JutPV@U6Gc?S1EY;>Y6TEa_x^tpD6pVY4 zN;sk&)K2GZEcci_xh1}8Jmj3~qqq0Qy0IkIlKz^Eov4p;vrRYOqRyodzu#i)NmALD zcc9|D^5}b=&SCj>E=vDifmfQ5Hj`@J`FJ)~nwvCJ`rB&$0e8L>dDKlNMC+_Tn_lAU zHzNs%*SX^VZk;d0n4B4(V|nNcS(c0`(zy~Lyb|h!&DZIQc5fwkyaPHrBwQHpCs3uA zoS%{WDNcV}v@ou-FkVoa0$Q5lRhshoUk#zslzyyJV=M^Uta@+?eEXvZSNn^}_dIs} z&e3cJ5tfqOP#G6au7KpS3R2d}E@2JXlH5g$84WsfR!N@y1EoroA7sey+2&V_#}b^3 zZN%u}Lewh~;x270{Z=tDEQ!A#Aj#gx*;JOx6_Eedp4<>if|M&F|Kf}5nWlxN>3@|b zzxmMsCy}n|n&Y?8kGQoHj_Z4Zl5KGa1bYGI@n|CpEQYaO*8!njIHh8dAd|o7%E)UO zAg5))1*^&KI&j});eyyyU5&riaFfdg;sI`T!G40(EoA5cSMY#?nYTRv^@%QJ?BmP% zBqrs##eB(H$-q)0m=3YoxSKekk82WpzzQQJs4`;tkX6K8bI8F5*1W<^UP*dSm2}^<*grpTx0Tv^~j2F_KxVW4$BB=AK?^H##5n zTa@4%NEKO3pPLIp`GVLm8kcr6xMI|BWRKD4_M~n=%N(>-A(>${)gZlal#@G^h-{tu zn9Rc&llT{`hx6}-(4(~YqxE0tmrPZxiC%GXE>TJ@a8&D}V`MxDZI?wZWmg>v8O?1+ zKnJjb;$@!ya31&PdYDqwYq`Tk~yAr+d<2p=A0q+IBY# zM@fKEAbDB(X@J}!dXggumhLWx-9w>doC$nmpL?e$UmV7euF8*<zsJIeZyrU$Nx=Qlu1AR-#S^f~!JC1n~GJP?JQt-8j zU%ilx(RlpxvQcH2)NAn<&M(M3#DuPK#?$^1>JCBUE#V~TU?fkf&lCVd@-!HG4rr1m zUAQu2{R_9!s(Fn+J>#KYIc%>AG$E!^zQ%7J-1}!3Mf}h+O2Nm(^RrR0$IQVgd^VI0 zU#8yavoyU%)lyL?T!|#;JLA&S`M7r#ie1y(-o{+iN`~laUvbYxXl8+49|f|OF}Xfs z1?c29TC2YTJB`^YYiKFM~VR!-1Hb`+fh{KBmb%G5m^@3Ca2 z81}D}f!)aSt;}Dkd`a*VIg-Jxe54Z@NJqSZtpr%`L=%Mnt_Z{vvk8H2kI;H9CBCb9 z{hp2R_pFq9Tfq#vz6`p747!n8y8atF;S4?y`dvo}ey^EMdS9MQ6UQZiukL}b5P@!x zOdleFucH4N-hWq_?#25&tK#^5G^au$xWOZ!*3qlo;I4%k(4>4jQ-SEK-9)Wg8f|YB zKss1gqN|QlDITHL zB%6vHU=^U%L?Q-oH|RM%&WyLKW?4hV+m@qb$pC)>_z%S~R+@JL*BVz8RU)QAnLriHs`li0UaFz9kR!0q+^m+B{?)(5!L z89{E94hxNCA>}g_E9QS0Vj$0VBCOnTULz4rf@fJyoyx z*j`p({EqJ~iS?b3US5^4#*w!=AS@$+<%9F?1;WJEmaxM%V+k>cEI`cqXqWFzKLIyS zw{5qS@Vh6n_H?U_-qSx1mR1L>%Pyg1S7q#4Z1BL^ z&&!EYFf{!WXKecdbq*fYi`3^b$H#?jbS;LZzM2G5$!+T)^3b;rB8CI(JhH-tMnbsG z7Un7x8jBaAmpXso7M*#wFtbG^^{JA;p5H*Df-4Qeze=E^Qo>WHIOHkW6X9~~sIdG} z#sX$e1W_w&(JNy@R-p{4QK9sAOp>or#{wlRg5|A@45CJ3zmOyAp_M4|t^I+<36b(k z09{b8X+QMy!V~vf!fuo+a16+;1o%#733NCp=qm9%3~MLlJWQlUz)F8jpRxkoJBc)r z5i)ZyLK%I^2E7CYb0silkvU1^Apn{{pi(C&`*?y6VwEZaUu2$iU5W$lLMjy^@l3x2 znEZ1=VXp1>9Myw+hitDlm%Rull)6XW>CX)wqu{=SBy$FZG@E=aiY{E=790uWj-HqT z-F%iLg+EYR$O^SoBGn43Dn{-Zw~WRSMnxb|*V$P|2qbO~eg`_QaKAnIC02}8O!CYp zAX1nh$C6$dRMbO{^uD0v^?l{^-!}ZZkKV5_*x0;U0dGb`(bS@oeg79 z)LV%(-L>l(ILBFIR~qFImebk8C9ggAFF*A!Gd4HyxCTYR;eV4pb$r84GY{t|;j^To z=9DFp>ZxKAYMKj@rS!QPV@b)$gqV+EnKetxl~e=W>U26gy=1~p2q8V{M2NXL%w!6I1YmIbj< zBlHA>K{yptN*&{9^5p2Jkk7k~2p{8wIZZVcItJAqqY8ih=Cg^UMrd};>8;phxL}jt zsLwMd;I@+JA56?|AWp=CGA2K38!t3%#_fkU9563c+Zv1RRZH?h+2#nP>RsQm%o zuVX08QYD5Qv|@#w+rv-@@>&}^KV4*O#)DG;4t{7FB^@Vbt_Vg8AXv3W+qx*hVM*?{ z)9cs&)v^nO>)_?chdVT|qxrsD3wra5)yE&${%;ke9M^Kf)9_9iT=UrXyk( zt;Ti8bqjtA0rwYH5dWRxmz_OfG62b98M_hqrrZP&+-u;C}S?9eR-ooagd8IdM zc2U0P#2{Bpw{DghwJu1NC)R%dl8CY|ITxeIs(2AGa-u)C=L&- zj4`{}7%zqVQ@@$9S(-rz(Gw{!NIWa4u}t6@=0QzC;$CeAEa3+ux|td{O6>LY_K)dn zedg!}C zqw;~tppkF8l3xm{0i!1oN49KlzgiOIvx7knL!re~`|LSgB2ry3`y)dynIKl_>NoAd zDnH>36H|VH`=>CnTjiBML-Sla>pP(0c+eD4j6L_}amO(4M5JPN28PW>U}EVCVtB0% zjJLd?6_-PkN70}NWqy5QLOX>Rl}ar)e!5`#0ZJ}FtRpYs-GH1ZxKG#~aFiZxr7=^m zW?d71MPPFg7VM<^?|ww0HDiOa{Z73%>!~;(bRzcIB$3G$$Avvi|M{Zqk`d^XWM2c$ z10i%A^Xoz;_sJz(h_<<&D|TTfPw`JHib09!bsqpw@1X#DZwMbI^?g_v+=|ip!aFhK z!L@rv5s!5YSFUenx$&QNCV0eXOcQZRh2w?M%)(E?I6JtGmB=;Ebui;HK@I;<0KL zInJ0r_pCBLKA%6m(DR5i{2`Qu&@;l*@3KYB#b>a(nxu0qM$3g!xa^i=eEjjidCe|E zu>`kTq9sZ8yj0+vyrsE;m+M4uipv5oF*rLanKPv&a2(5;wIOxtnSjTp!t%BiPsNtR zVkzj3{0BQwiKNg+Olh^5!i;!ycx6BSK%&*>^yVbTs?z*yn;REGIz(XJkLA%e0saZ> zGXCcy`KqFdKi52lXC>mt`jS%}bJ0DXC1L*t%4e)yMn`?ax=aUhm;9&0>5Kz z5y)ND82*Ivk;n6Zn=#^>4Mg+Lg=gFmF+~bLa5;z{jH()XGK_yW;j(-Kf52BS^8+^s zA$_2$a#ims^S$eURqsE-b#$3K_AKUpw<_q+rz}StI+u537rnz*BrTKPwejm5kDbH1 zRmLw9f82j?QoQ~Lxm|<6hRpHU9KI4F5YRcv|JU9+TYW2IM?-TPQ$c4F6JrN?XJhC8 zQ0@HZ{}2CS{lh=4M5SftuW2(;TNZaH5|UouKoUcKGZL`WN#wqtz@ln>G)!P;)~Rm( zz5S8gKT=6#<~aw<zApk%-LiUpDuVhHKbtzeWa?xqzw)u)ID`5i@uLknz0o@#;T%HkR)4s9 z0BsL6e~g@bRy!Z9Q{A(--PnS@aD8K>n^w zNqKx!Z9DxwIW%4rM?$H_bY=B@#Jt~McIT^3S^jXnl7`$mfW(s~bH0``2_|R7YBQ~oLZ^w`g#u~HNHICL zsC4FS!;E`k(}vr1Al!(P-7YUqJct-TF*JyRNgUE27KmoMZBCjmyzE6}SOn?dpv6RN z98|CyU_XwJ@tb~E2T!J?Qi&{Cs*rtnjuYo_0{BhOiw0@j3X#UF%PAmxqq81xs^iy8 zjz#*B=2aWmNbK>Dn}jXLL$^=Ff2U9))PsVY&aACMwD;&6G`muLGWRyKUjKD} zDnsw?1+Aih@gXAD#sTV28@Dl@G=4qqcV&)N=Xo(@CNs6?iQE_`>XaJSaOXiia@qp4 zbdDrbj(J+$+^TD^vBX-PE?UG+lQ^So_;6Zqn$e&7XE?$~kv{bx)dWb(9Xl#FEl0`Y z{l+z2+#Rf*Hb{ljmbyNZK9f@d`19O_u@WwJL z*A??)iD=Dz<`ISUthf=5D80p_h7N{ojtpti!X7BY@e)5oqGl;@YBK}%P8*UK@#79= z!u$$%(uoj@>FhEj@{^C04sVrc3eYc`3M|)A(>IE(cZFGOirnK#_S>17i1L!-e;-wq z)phHop<6_=V@2d8I@2Ui6t_3FME$-yky9|t$rMeNF7W&jVG&+Y?(%dbkZ@5;aEgU* z9CtBm#a+=MT}>LAV=8WB@HI!`gb{PjR@fJt<_`mh<+aIda}XKm+(9nedCG4G<9&^D z+pAQZ95lRK&kNz0F*&x_oOSEbe@nAFX`3w(#%|5*GbyZGs%=l5FrFWjLM+7PApu$6 zO5A$uFvq=S7zQO!=L*pE>~PPxoUfh8GS#ung&D9YP`Q0Hz6#WX573RQ183Jl`jnac zwhA5jeNJqDd_dkiljRmsrnWr|-vvde&GolQh5{`s+0(AH(>jS8Q7V^!N5&9N zE^V1oe7Fos-hx8NL|khym~wZEJIeJyCmCjmh z;(Mvm%1AP-MtPK~^K9xQ5pe1T67@8!g@cK)4e2l3U3wB3G|YvYiHCK4iAfGoxw}lY z%C*YD6)F{$QV)h9x$B$tx4DBaEXDOgh0GdQhrV8+tTLe;hgU;tZH&0fTQ|Z5LcYNj ztj1Ydl0YcM4@3LhCHq!oOiRh_L`$)6k-$ksWWo0FP6iSo3}GhebvkWQtNf;;&Q4KQ ziPFVRk_g01dA71-#-_3~_>00iu|MSZv(kS@*;Ct7IJU$U*>{q)z80`L56^S_aHBXoIqMT`<~h#h6fVBF&#JFx+icld{x;H_XOl zHY`Wz6kW#g>y-8T`-C%S{Qb*I=9?1&=!Tm_gkeUrm8BE_$}Y0Aa~S#&dpRhqlPOQ8 zV;CaCtEH|X@nb!Uh1W!0S%8tctDW9)2q*uIr-R*wG?KrXu61Ro9JQbBXkj8Sn%m}1 zE7A#`^M^GX1B}Ub2Q_G|h9z$dE)#8x&OH*fWo6b^m()@_GS*{Knwh5!#N}*N)O-F! zKO$c93=AsxGC3xU_^|h}E-bGu7o(^eWmXx3Un|izQDQ`Btd~7XIFWGZ*#OOh=F~{F z?klYvOUWhu0ZUgKVWUdonpoDPmnb(xig$mzy_Z%uWWH-7L&j7oyiF_0&6Q(K5mDCm zioUuuBh91bcypJ64wlIP6f*i!>+_Ia{yxRQOEQHelg3w=!i?Wth<`_ zhQ-|OaC~j)dvAS>8|T%-s&ws6vBBu0s0YxQu5yJ9eYaKb0DR_0t_HzQ;bTs` zr>cJ0VFi^1YnH~KF^j}1im>K71o5+LqQj61DO;i}X!69*_WQ|Zzy!i=gLmTtTONiN zkY{QM4@u6S2C)!5j2xboNkG%-6Elvk-jbGe%_}d4PSXP<#Vd~IJJhy>tE~kGs5!@v z>900s3OCrTuAjK<}q6 zfvr)zcqCv5M4mbz)8Jt820tx)rx1Cyb|e5jhJ3L3@dOwlc!^$AJs!EF3!E_fupbEP z$&|RC99S*r#wQ~INOt;Qi2X=7qCkM3GUhSfO~2BaJr!TymQ3Zg?nqrV#pH^gW4GL( zGX-7)FB_eH&4{eC_Y8e2v=%w%3#v8D|*-sv-|?a@*4L4@nmI&x?%1s&LUhR8Oel2>-Q4KuX}RL zL5y24{2@ixK#v%QXR%wFu0Y!zMo%1KSA5eOp2%GhZX2;z6S8~Gj`8SHfzj3lclI1i zD)u}2UF#QVt|Z;Qb?d!(^2uQ2y)P>72#y`nH}czc&%4=R`hEPdBu+5%rS5166R_`b zw+Vyr1)cgR`l3d6FEr6+KLA)7J^OB=c`)x}Xvl^;eIsN}Q(OiIFr;zO7sDQn z&MD0k*Qs*L*J{V3H{i4VhHL5#4}PEFq0&(8B5yny)nSTVU4DCv+H?Lfc@(O9c*%OL zOKHlD-g|krbNt9MmrU4-!*lXo(4wfHrB#~Bs%See{5n1%XPkH(8&H5LZXHvDXGUMeD1)3`Yk8MAB?;W?vp@9_Dp|R)8N$m@?P~BQ zh>&!xUahwK5mtrwl>x3?|7)XP!rU}?b6;fw$puue>+RO-?Gw^z7=iMYIJ%2}&nwQ- zdjgHGSK|XU>m}{0GWp}t(FL?yujnHl>y63rS#`n9PeWJVy>pD>J00Ew4uL^92eCI` zuUBZVQMF{A)Mi=^*ekQB*XVgd9#{$M0h&;?Ow3u+%q+& zehuk)H%+Hrn2Qo7#A@}`((0i~4HU!dXb%zz=beKU*1t)qjMyxSuz!$*l9lxeW(!Cf z!><|9sf=+i-vu4qG_NJ2_*-6EG{31Pq(rZXx1?VbKB?5S@ku1#ttBs;Q!jw!Y~Fa% zsNO)dM$pc3nas|}wgh+WV6LI%>jU%5nw_s@R^qA;$2p^z=y2(qlz$edWcDU)H1x8z z1PS=j2o})@WHsaqq?_L;(8Qq!k^~;k1uxdY;>}%QZzh^LrC9zyX6QsZf0e*?*ec47 zitW|MxK`dh$|-7lpk2N;@BU^W7~kk7yl2nonySYEi;v99$Y9DVxwf2%<&swCd%+1a zBGZIQ$QARoa?T*i!}#a2S%x9FAA@V{g1EV0vN+gxNDq^FP3?f@O9r7~pwlJH<6dIp zJn;nuoRrQgUR5s%r@ZokxDdm8HQM(fPvR}DkP9(U+bnT2aurBrWKxaPqgM2Z(Zse- zl*8A%6`bo(1$M-`MWnCEx!kN5yTq#V;+X5QPT6+r%>7>F1LCC;60GLP>py0Tq*yC==ZQ<^VSALI>2S<}Lw{KClUfp(JpuT*?b=`)*iTmd&@A?2bc^5FR*u9vN{RMDsqqf3}dUx(R{-m|O8;jOBj-sO;R~ z#zBy7pxv+OR$jcW6HyvcrdDyY-{AkVDlqy5IHBn;zn0ivYHW)CQ&pgdi?NN9l&!7Z ze^&zj^ZAE={{N5^FD<*yj~KiSM+RT@N|6Wz3dZLjyd@Ms_E zm{pUMRmKZVEYA(7E&+^`lBG28enwj&NIe{1tm$k_GA#XuN(R$C++piwG0qzoUkXoGypo!duC{cB{b8^(pytjgYF67+a%U90}(q=HjH0P(*AgjNt$&_-~ zVLz;tEe+*Ff3_>typTz0eNrNtcVD_v-Q>r19`u0T`!#qMabWd}lpO;f9` zH;C>_oAxd^&BN`3JaZ(dZp?vm_6X*a<25|Qi8(Bc@*($^<>(K|I}hR|{8c~wz3W0Q zYP#Z=rtxl#i_vc(k7`^wI-!u~1Kb2MafGCf1*Ix^|3k>--%M5%YHbO{-}lMf@{}2@?EeXo_Hz}N&wY60>&&i>}$=C7Qa>Ya_6gp{i61VCZ zXGYQ!Sv1eO=OX<7i+4ZMnJdp$17WAVeEfqh=_$Pg%lS_j68E`Xx#(lVX?xWf^8$*o0c}=$j7W+l zZGB79Q`TW$Bcww6K1@a9@%9(`)d5a1_(Dk5l>s5v`}l zzFNvAh+CCdk*j{&X6p_(Moth>AB!3m@|$JSj%9fyCQMdnzO3{0ISSe*r>hTAD6VUm znA8##qcmI`%e?j$_UX4ca0II4{t=sC_$*itvhmI82}$l85$(6eU0`4Twj@P$WZB~X zi)@kJF)O|F@6&tyd(i!#UW1~sgUeq9Q8RrT8)K{g2akJuc>DJB#b%i`J(hvJi{th5w&Xid7PKLHW5jnu{w1B7GI!+ z{;eXTF3M1d-Kv!2@e0!15LE+TI5M2O~O z-K}O!!D=<_B!cM4R7nTW-c4P%=8N5cNf*q9QYUa{hpsnncex4AL&j-vAIV+pjMhsv zU#W8CI%y2Dx@{85UJW+2KaQ2uT#Zvy3}T$P3^nAnBWeR(J|1>5?;uoB2ee%OfLRMy z7qy4QdMwby-_!sWDqnD&mTlQ%%E*2c09((BM(yh6nEh5gqFC;FaBrgTo2plM=-?N| z41N{2T1YD}vBxia4q<_fP&JvW9kN68AhkDD`JwqcQzfaCF>xOhYfjqsCvB}|c@kY@ zl%{GuL#&^^9=3T=C38g}ibKo$R3Q)Co0lv^e*H2=JY>^x7jL7mE+y3li=2q`Fhu|O zw+|F&Hd89fE%Ct!KF{EWu^8o*D`xUnZ3SO2wj!h)A54|k*PGAjO4QmuF3VGf6|qtixY zvBYWlKXd)C;zdhMV}~>I`{6bsDWXrhi)PbktGz;8oPsTN0)4*(~*r`qkLn1tUXQI`Mno2_f4k6|y9E9gBjCuj|n8`gt1a71Kc zPMpJxmsE@Vyb9!?#7x7Od$wWwf99}aAK>fjZ?0KG0s+zdUw_O0-Oc{<`-guq{vk=( z^1q0aa6rrr-9{uU^L-l|auZ7s_-hq1^&t*G5g@yZPSO3X`$#Cyx{*J7A}3A&K8gFA zPMQ+X3S9FSCXUmsrqi9PA7A(TR zmacjFeuPaX>l@mXSlR!JvUiNmd|UcOyJOq7ZQHhO+w9o3oph3pZQHh!4!YxXjFV@d zeeT+K-F??M?{DN={#6;7vu4ej#Sz}nZX9~7l*FE)E#r%e)m+6xn1q<6a~ryj98(P4 zmh9*$-w)|w9tH^Q@gFK9uou{%1MFy+T&Xl0H~Nf?CG#CHXOYSTsTZyjKQF0{c-&iJ zd?M7mR&W<6&atXVFOCY&@HL7_TsallE}yCmr9S(SmqaC-T7`;GZAJFVrKREKnL~r7 zc_-7z)e0Z1BJ@tC8v7k~`-t`Fq6e0ZHUuU$@GKB2Ett=$^Jl$|w%}|m2wW>>`B!k2 z8Aj}~uCcP453no;7B3HqBGg%d9(P$k1?NH3iS@Hl`)!x6hOnm?C3Hmf`wZ0!Pr-;Y zz@Stm&TOqegW0aFmi-u0St>|0yfkOK4Qu=}bazBr;kmYfUIOchqRAv(&wNK)wx9W0 zMJj~{U-i4#AbgKZZ+JEaFSO2Cs=ma@<*=2H-UiQc1>s_4f`Fk52D*w>fvETh6gUE> zyE;W=lgV>ItCXR?w4Hgg2W5UR!OBs4;f^g2Ta7)8@HTI1gu%u21BADE;bvmpNXLk4 z*H+$FL;A9U*d_bapjGgr)dH03tWZHT#j+&s;%ELW%n62hnE^SA@~pgiju?UD$PNaW z1zM$;Awr9VNox#uqG6)gwagpXku~lP;tyFCgC#Du*bbx@4I|X$=xi$iDx~s#J?POV zg+qjM4aj(Ar;!Ba#`7GZx20fxi(YY(cfa1gt8di<9vTmFu!VQbjhB!gT$xQY><*`{ zw2(ZBTB#N)?**jjyWo|KNc3is6;Rd+OK~XkN=vTU*6I$i%1tNvgyz;=2_$aUzqo>$ zSC$u?BS+mS$OU0%o7ch})b0J*iQFI5{g*xz6mwNs>TL5!~P=V5- z?z1Zl)#n-c@4aSB3>{o7-At8CjopMiT}(g2Zh|&8_Qr-T_D&@KyYG>tt%J>9rwzaf z00372a#UoUu|*MliK`k@JL_Yjk;8Eab`dN?NJ$NBjF4Xu1JP-K*;0TV3_7`+(bcFM zv@o-%x+94caQZW_Rp8nj3ZM|t!TrAU1o#V~iatn?wuMLabK1zu%Rl_eUEzHh+39(M z+l6A2)fw9*Svr=$oU2TC3_T>PxCbM53tRFXg|lK>*18cguKn=*TRz=`S4fH5 zdWGn{Nu9`+g!s6v7z!)ZRx2%VsKy1DmPl92e6b6a+IpTsL)MhrVFfmyu|l<7w#+G+6JAj&QRQ5bfkx*s}OsO9if zBA>Cof@chd;2dnU|5a?>Uhr0YK%oRADC$@|nqXD5IiXUb%0TYYHYxuWRnl~=aG3n1ma>ITUSs;@aM; z`Wha^HR=;*at2XE4hn1W-5~vt{Ij`2c}Je2XPz;fz5$~CJn=^)-UY3MPYhT$VPQ9~ zm|~^8BJ_f9qzuVNf1zfft?0r4drrw0GeTo!;oPb0w72I#aUSs z_apo8=Nt=k0ZT2**v+PGrtUi3MZJJ4$619p{%c`0Wn( zT?D_?FYHcV;XLtK*g*&)%D>zf?T!e1S(x>0{XLNKg>#eXkcSvt8E)tcmcq@!!MuVd z94e;p4AsF` zuQL%!&P+*ICvCy5kj1vlkgAM=_dCwWKd@yDrv-}TH9u@0%6>J2c43dn6w}9+dVwzh zRYUV^9c!SRU@S)AmYQka;csOuu0PhEF|I^U-)N>g$tEJ-2#19E-|5vyskLwBiejar+Qj(mNt;}!J5)K3^t4|>Gf zP95>d@d4LL^arUD#7P-oY=pw`q}qZ1;ZAD#j4cRbECWXjw6UU`LzTAVnQ=+b9bwPd zCFq0A9w>3ZE$D;3a}eV515VIK--$n19YpVifA44j9z@S8^M$bXNHMtf-un5zRPJHC z)XF70w{udPWtdm*X0tK1!>Lqb&a@Pw*Tc-g*tOln{kozg(X8GSC)%FqYBg0^QHX2& z;tr&FhibXmqvs$FT8XH0Ex?AOW;pL=ncqgG;YO2_*A#rCd5qU6O!@W+7JMafd5O*N zfuC$}N{+@9k8w|ek!H)Y+r#yvjLC>zfATF}{-MF+Yn9K&ezA@PanAQ5eUdjN+^T#~ z@Lwlx^SG`qKG)4EJgR>arWafv6$y;Y)ag&3xRL*1u(P+tjL5kv)lXRfVcijhG2E{t-4m z&*@K8ADv^4+`^{vEZ=x*zA+q|xv3TIr-c~;QF17Kpz+J)hbM9ZDNn~-+M8>)hqarK zU*SSq+~8-RITuaM@fva*PcKqU`w6E;OqSEi`O$K6f2Tg^$I2h$eZpSR;EXgmHTBvk z0&7f&ki-OAx=j)1z%NmqQQx7>YoccR&vsgKqF+JwxWq&#0rkLc1~`xt z*ZXea<7#alCRU{9yBnS^fRl9z@;7behi-u(ntR^xPvnkzktGP(#Lsg{(3~-;H}$^3nFX%3QHZbFPwQN?0+_o1Q_&} z))a%{pRPmhPxJe~`=d=voJ^gaO-)4Y+)Qok9sa|y1E2u_Ko3Ap;*=Z^BT9%p;%6vM z05K&58lB6=Vt@P#AyQF9#Gr^zK!I~efTXlk*r2-e9`K{W@I*ebVWFH3%lXQ-^R(31D@&M_>QoeiqC_?{|TAvc*w?<3+rV zMsrz3ukV;DJuFDDmz0cR3)eg`3zp7`TN&IIDDQ)DLNqbMe@KIrm7cAtnP+rhbSW8k z^R(`&k6?gV1(jBmQJcThLs=*7PPWNfPA#a?c^*eY4aN6`Bz0CK7o>e8)49&syJAZw z$sLrHS&&Ed01F?0zkbbAC_?cl5qgHh3qkRsS_HCx{f5__Xi>)3V&ZV)egG3$c?}cm zKhuK2FgmMI1aEDQX+kJ&f@n&l7v?hwx*vnO9bA>(LcAT(CZVInN#AET>CJ*x$@E*? z`3U&07gxjQ27R4@SsVRaV4+XvKk0unsQ!;H^6zdp00961VgO1Kb>)!-Q9^h6+|tmX zG+qT>1xij*5mr3*WV;X|M39kSzCXM$hV&T@Pfjl1)i~~b4(-L9kwcH3&BS^z%423e z?);qYeS2`c=Kh6#7WSG$B&@*JgUv(vuBBvgtwZD}G0dYMA=)PN=|Re|ff(7k&C~^)VM@^9rT z{W1$`KQZ{^(4O-^rgT=LaB>)J<08td5su!*HBr1HJ?R zKm|Zd(vIAxTnx_$bZAQ{Hs*&zK&fhd)Q;Q6NNz|31}v^3AYYbtm{0V&m1bmA?IHS* z())bDANO!;2O@0FoVuXzxXod{^<{qf*I3M2_!qv;yS)^6Z$1#d&ig%B;7buKJmR47 zg5>YqknCWvL7a$;t3TLdgP};Yyb*)TvQZ>wGp-n{m^6ABrM!z5Eg~P^@*I)8iK|az z`i7&MGw4*9(15`Jp*HSE=Qy}@J;yOISQwi-w#Uq{-m*6IOprF}_LLVBzg|byO^AI#9`#v9oyqvRSU>+HGj6A?6izLH= z6Qcc%8OHXu!q`d_sqx2BVV)Mx&!V4;L$1mj>gCaJM;bXrc6!zuio#qDnoRa(dCl&c z7rZHF2=F4QhNSpw6IhHIS!!bjPo=`JsykKp^NzgK{(K}j=HhYL9CeK|Sa761Hul(W zh2@TA^*DQ^$#Z8XuBw%r;k4*=9zjd?q^eB+m&A%^Qo&k_BX#Ld6*k!4*fo!o}j<55%7N9K)y;9C=?v> zQ)ZYs0x5-UaIwl;QzJ+>PB}LV73l28s-^|XLs~umV=g_}phGp-rpjHXo5rP9XR4jO zwxm;xiX z<+44uHs#eB7rEJ4$gJ8tcQ`VP54myP#BNU5jOXCZTrzrsJ2uQGSKi>W58h9X? zEX&2x>H9qR5cH%8bZB%s$F7Kq8j>AZfTm2MN>4npsVLVSPV+86%LnMJvvKw-9!)ns z0`>StJ63bFZ@OK%p1zoW&(`XLdJ)`l-aPm^ekzm#<%O05rIm=-^20bjma?(yOh~oH z3r)91D^ZcHbRX0&#?JswihJQm7n&aeBo*8lA^q%)B^H?gA?T`wBh(whIJ|}^vX5gQ zvK4KQV;@9Dj3eTaYcu>xc2JoC_M01+ouoImBa9j82hRHlqnDo7g+cIkLp}!@>Il+i z$~_*9v^PGU2rE939|)yqH&9%OFOYl*D+(K`o@(a|%B6FNK1C;3Y9qa&?mDao={cE= zAuUji=@7gB*S{`efTc96aaAn#Y4IF<&Q+lP2ay+Xb+9q@_;-u{eW77#YKPj9r3mXR*vf^|7>SsPi`xpq&2k~ zpR{PL+KUbCfO%u?N4$X(Zf2?LkFV@NGspOB-@*^8C414ukjci&x#}Q0pvTBla8VS- z*+%9QdL8Oe372-Gyrjd76SlGBWu61S&bH%W!I3)Eg$2qIV$7&fG8jJEa>12oKdN=m zb={|syJWhebL=!-&vWt8H27$qyMe@4Q*KmWx@jOWWi)H6YBFfRkt$+7yN(MtkU?9* zfO2V{-bows>k-QgGc*@G7KOH($VU*I^O&QWrSRO_MQY+#p{x}eWt4gg?9Op}f04@~7Mi>9s;ye^pp@c@|3#bMSX8)rQ|-xnta5`9;N(!Azz+vy2g8Ty(o%2cA@vCm2!=TTWQE zdh3WrI43N^$oX;)dr(IGfid9TXgjzGvCu5d7MefPx!TbOui6`L#pLcZAWU}45g(Eo zKE$nf+xS}&N_3>$&Yr}&Y0it6TF@9X_frmF7C+~3#M~`V&q~qCyM4Q;Xk^lQ8QxZd~cY zLrimVi6AyKBZ?!mV74RtfJ2Z|e%>|q{<9u=-ieJQZeK^lZr(3%UhJ@7ldQf?@1B+F zv#7m${`$QB51sbNQ+QPvRsCLyQi8M!W9YTSka466V#xR*nNx-yr0XFgz7)nOhZ`wM zI}#KjT~avp(805jgLJTWv-GA2Pc=W-L#BhhTLg6x(w^C=oavN0TS1-PIu*;0kjB1P z{j}6L3(06nnISeCzEVS9C7KqSRm;pQ7Fch>=5`?&SN-qpHQe9nf}#q#M3}3c7_*0Q z#D;JD|K@yz=j~Lk`aEA!pI$@qe>kF|9>%7hQ3`vzzm6w>1ONaz05K}s_Sm8*@1<^? z5eGV%@$thTY_gWP8-sVLK$61B+#w=h1??hMBzVL32=*PhtlpC4gTy^VJl9Hk&=MGm zAeXN=eqS7>f7DSYg^%83Y;f+l|Kv8mkL&S!g6(DfUBVdg%f_y@ZOklZs*17rIyS_8 zp>}nT*G6MiX5ptT+hJG81MMbaI$ZLlguDJzz`?1!J2jAzyg}jbQ-Wl!%{04WF{eD= zKgSK`JFip>-jZM_NQur0jzF63s!2j{AWB)WZvC_YB6hC&1e*7mQU(=g7JnQUtEoS} zazjt5bb%pC6_&W#Gh;Sq3mBA~d5~81Us;yVC2CQ(sKk!s&|_B&{J;i!()p9XlSrz5 zHlRd%hwIyVJwF|kddX|J3OhYuRY?#Z7W&Aq2t*8v3F^Y(PW0tGuXm^xx=k4q+FbVX zTbHt+^z)BB5!&RK5&W^(gy3;g!;OC3fZuNtVRG8%XT;kK)w zh**>b+p^+&nu-1d>pHX7oQZv}Ya9#n^O`D)lns6DM=hoK71Yn~%|Rl~AGY_nI}bk4 zDKKsh@&-@-4Mx4vXndo)!oQ(t;26S8OT{^UfOa(?46QS=OSR3CvU6w@)(YLT7A=TJ6(gGWLFiiUHm=K|0fy<+2Nb%RSP&rn5c{)7SQpO zm6=ySNJ*QhcQNl8sFrS-;w(qvrI3%k4t>1r0>r8W(k{^yQyp@>M~oPl#@W~3M1uT* zQ|OVp+1R12fhbO3{jpnK2t3}n_81yb)2U-whV=IaEf!PPOf;+$joUO(Nm5#Z@v&A$POngZFmqsuo^dQJX@@+hOH|oeJeVj6 zYlcScxF!;z>Eze3Bg8Iq-}{ttC!fv{n(_)aHW()Xn=FT!22GZmII+10q{}+8^8UAr z+M2(+cl7fJYkxj`|LMgnW@!8wl=S>d2LK2F01yMf{l|WV4-5>97>w`J%5Ve2a|6>8 z1FP;_bUKb6?Ce~`5d*`7mCc*^M3 zggbvtr|+pmbgbMigHr%HL~-dPVA9kie#Den1(P`FOFJ+ICJJQxx0r;0gaF9!jDWAh zqy3}3{k>3!bzePYV15h07&NgpyWR&$$!l^Q*g4k zwRAR>vv;vHvov)g`FEnvzkVldVQOscU~g&X^4Agqm;wO!0{~Pd+FCCHtem97L_Ms_ zb*&k5?`GRLOB?{Z}tJXoB)*Y9I(}G)rtaVO91YEpa1`6m870ySEk#&=hRU<|ysg8BHX-^!FqBRf6Pnrl}o^%`+WA>yclTssc zTB8XlYiC0$7Zsdb+M~Z+JXzGrYP=j`$q4$T%3k1wo%D-M(IRZiwX8k_=Z5_r$?h1U zP~qXscoz4#G)O@{3h4W@`(GT>JMZ&gA4CVMr=$aB5VMYXcqnpbgC-2-ev)ef^OIq` zIv%{5p{rbWYQN6(A8b(DbOo04PHjVeZ*hSsYVm`)1@3@hamj3dAOA%O++84uGnvaq zPGt?J{?)deshC!E)WjQcrGklXVNtj00dcs4a#KyNo@F)*L`5KFvm&ttqcn0&Ye(La z?lPat>d;C^Iw#{vI8j%U=yMQFIYK5B<4zvpe5*isK$ch6P?Ev|g9p+B!_1KF_T>ii z&VL*}fOPrF?98lxZoJc{00{k0rR)D!tN`2q0B{B%MWN5?Gr7*U$Z}cB`W2*rmqbD5 zq^S!OD5WrP*B5))%(a7hP2;5I&o20*VoBDC3_JIe;rByH2?rk092`a+Tf_;zMHwbjp)Ulo7md7+ahz5Q2uH%CbwKi z*^rdH|cmW`)_hP2x%P!2g73_{as>qxBDes=!7r)DgT>ZBhczvK+SpB$sya#IrB8c60 zB@zb}m~x0PM8L5K<1cz%9h+J|v_O)@%x4(0Nk~aWP@Gz@>DGKE47MC79;b zF-XiZ7*CnVz2sF6+EB{6mv0z&C`9lPYv4mygoF>Z7E~-c!;H3| z<9eW#V(8F{_O3II#`6}_+-mJl2HTTaRZvndKa4R4#x_a=gN9ygdDWUZjk%^(oUJAe zU`~I!J*bO0^iIcWb2hO5(kM!`w5NfpbWN+hTvb*wh%|(yhG@~moLDOnkcC-!xGm%5 z7FtQ+RU7_26^GAyJ}^ATqF%_mmYi_GZX@mE9aX_>#+XowIy6KP2)RdX5gkpzk*uM% zp=@(rtzQmo+pnus``*5saUPt3S;sWO1v7HefR~>-Uqvu)D7R`h?jR$E$uB}z<=C(@ zt|{Z|PL|{fGcs6qF*s27@&{77PDQ@X#0w6wt5F`~ z-kg@LsZz7$;befQX(wyljfF6=**YW10S^c&rlwaeM!`m+M%~bNYvBvGqan$HoN1A- z;9(=be^Vw%{u&>U#q?BUWtGk}mRDlvY^?l<`>4I^arLW@X==l$r-ic9AY1Vxw8^D9 zlo?3E;*)BAsrTeIb<+&oYHxuokknXq#9r3`h2Ao6vBg%#{W;cIUWBRbvKe_UbmoT3 zJy&9|B_z=GgkRGo7 z;4POPLY_VnHocM7NZK{(e$7Fp(UG->n&5$y&{0+0m*4M2BU32w*5|HTQ1YWdj$6fj z4)u*H${MV`u~Tm3(q>)ua#RxgOk(TK?!nej6($WF@l%?ytd*hHdV(>jSHry;jW$*1suMuh_Os3tq%MNZl~i zw6@zOaOs9o#xi2*-AAObrvv$?#$99OIh5-u;i7P4l6*y{# zf9F`wPIHbq&N_he!%e^vkaYr+x`6@`W`@uU%11DHsUr#c@ItM!wg2Z5i7o63;s@Qb6TBjE^P?BI<0Tp|~>SmSK^s`2wqZSq;DxUO3%!7K@8)4Z2feB#ehsVTi*TYeaR_BDy1Q*zMP))$IsJ;N2Ce zo3-R{kWzZ0oAwh)@y`f;{`_1UqK**W)`vkHeydROrA52z}l}Cq2?`ah<+u(X4=;id^ zR*5HJA)L$+m3xs^S3FSnoF$xSUC>lx8Z?UX4bj*~xipUaM}{7>Yfu(@X(>|ti-RBC zB~jv#mPZgqkbmrxd)nj~>GH{{+}(5e_L6|7bLCVTl)bk!zRgXMYk zac9Et7S`xi_U9X|*uAaMt?vF6uaR@Ws!!gkPO>8TsV`oZ0U{ePlOH4YAx$lf)Ek~u z&MWNrxV1%RbXKI{v!Y z6xbk|pgm;W&{A8c%AjzAMh%2iqR}%QXO$~E^#Nf|x+|yqSi8JPyKqeT(kjCnj+@j> zb(Sm(K3dfkTEZ$AqjyVI6xuOArk2bfBkx~L(0r#!Hro05v1x18eo{*Qp{%WuvK}EM zJ>$%8&U$D)yCqlBO83->_ty6TI|N}n`-HEt;-{>5IXkzm58ym;{5OjCT+;{g=|g#A zoB9^lHH}y7R`0kUgZ#-~wiSf3A>}T~+_OAjL=ejxo0XeY>N>QlEdy&jhf|({>cH$r zJJ{7P|SP z$;o^?ow4ob)7=HkA+X&W8Xya-4KmQyl!8QOxUg9+F{32(D|AV$sz{9nq4Zp=$GJ@VPZ+(~-&mU>0JuyD{smP7S+>57Q<^{)pn4+kiv*x%&M{2n% zN&*oM+h_Z)sRVx3x_mQ60xL?29%e}K5QAFS@(F!fJnK8`01)WC5VU9Mzj7UZY zPcLC>h)yx{mo`PUo@#ynTd)uh=JC(c=jJqjI=TL9mCL_l$^Uy}Wh|XtOzl1&eT;vZ zk^o8o09*iwQTkU9FmmiOjtdufBG6fu#&ps^yPSY%NOS6c7 z0v(nQBkxUdn0q7UiXbE`!$-Wkv+d#H|HyE^!PsBSbOLixp+^BM}TT9hf?O zwdUeg{xmlI&#Fto_n^a@qa@Kyk+&?UUn>JEqn!fM%kW$}Nudz|tz15`;#GSl3mxpoyrWLEdNtyB;hC29tfk_q2tOAKYE!j!*6n`!b zIyYb3N>aZ}WEZGalYWDCOmpNcroD7>@g8^!+hobiDpf(s2PbZK>og(yhWi7BvExdI z5z7B?e=g&1+8_qhItb!3T=)1t6B?$!ga$wf0Dubs|Bukkp_n6xax?aOK?QGbhfLHQJZ^L)K-4_0ue0xHE%e3-M$S1=0;Pg1b09N?3I z18;Jt1>-Y4c`qdY_(G&aHk}B{tHRjlhX}%S_DmE@8g`xwwIyKnw)Q79FwUoiySXDm zj%ZD}E_HKubDeB5m>3hXsy`naFV3eN(`~Emi{VDJmRH_$@KRI-q_QtXY!`+}wM?FF*bV8#9BHb_vkbtk-4JkF>OsV(mi@y=?U2qN zULV`p3W|>W*F2abr}UoEwM;nu^$T3;zRSMXoyKr~PNblQ@k zlADTX)!s)x6joj&;n29M9B3p>%ino3c9(j_5@#buW2C^QLPGj;j%5v!SYS0wh+4o7 z1YCRWq71ioSFqtya;7~wUx5>5CPQsW$cv@2%R>M0G{vBnXDs%k9Zu-{$~0!g{U9c(r*s~+D-vEfo_c^W-+ zT(RS>2m6(=XRfjte6NLVbOv07{#2Zk!em+D$Uk~dcPw|iuo}Kwtp(RDY$mZGKvAtn z>Z*$=-i-N>Xi&l%RA45LSD#76^>8w0Zj)Rpqa+>aAd17}89Z7RY~(OJ z8i`GYkDJoG4mLv_jU8YSZU1rzQ>!>;(kq~$x!q9(DH!xO#;3>Q$^%<-UPao_IVV4f z&w&Z`m?7_Dg(2Ss`Gy!>N6P%0rETg2W+P*W*aTun(X1@aA($p$E8FoF(}zRG1@_vY z@FVhfb|d0AVIN)Tq`uID1U=Dfe%qpbfsyg8X9ps zrX7{Qo{&=#GcKm_374|??++i~e?@}<(%LIdHkbT)2@-wkw*OjW_Fu2kzho6a2LONv z04YjqQUd}gybH^6*azLs7h0nFFm(2`k-=(EeUYkjWr@QDv4fPw5xeG+_#n`J-|$Jd zN#N-qmU#{*bJ~vSj<^4nJJ+FcJZf!_J|Q%~GZGl8VngFZW4T*bH(A$TH(ocKubzUG zd%B(zd%^&du2!XIw%Ta2q0s+;4|}{!hQ7jJ`~$>q7gE~IM{tm6z(T}wQ4TAmsKV7z z?6*#dmzrI2&E(CgX9`|-x2aStb;=z)Mq-wB8VqHFFENG~P5Gdt!w$-J+m_2InRXhj zY1kTu-4E`UJ~kcgrf98OIS#+;hW_5P>b=GkWRF~hZbuw7vYgA5)c2F`9s*q!f82IC z3yB6^pY*x6;h+fvo)^k$i;BKM;tpV(<~3Ft-|@eDa}5i9#Js;+n(;50tiI=E!<;Iy z46~Gn3TkoTN*?y}S)w`{z9GhnN*IrDkU@}-aftx!wJZX6_=y!pnZQ$W!MY?|1T0W4 zh~85Y$<6tv3ju2oF`f=XZSZCFQcO}H5)XB74rLIJb z#*@qjwZFuMyH2|iLy{$=KLw578-_%VLL*cR-M~EHGx_?ezk{Fmg|6<{V4<%$2={9X zdWoY%i&T<85o_Xbe0P#rK4mw?L^;apW$ADQWY>3*Kdidg$eNa_CP)EAFVWYHEW+~d zaGlMVia%&zt3hIK6S62|$W4Au3i2V3dPt-mAC)gsLi3Cr`^c_U7~IRjqy?_Te$+J5 zX^OQO)whA1ifDx}gXLV@8qfM&;r@oot{i1HIiG|+cJuVN<^C08Li3VQkRqyS&5YF2 zD1&5la27Qo|Hc@iw#%SC*>6Xds$&NQfx;0vs)tDW4ozVka!ctBcMK(-g82X&SR0A8 zTpwE-3(MkhLZq!cqSo;Ix4cNSEeB4T&xNG?+>U>W^89}iF#rSr0EhvIQS6fg_>!Sh zfQa%bBFO274P59*Vt zE=HDQb;S$P;4e9_Z`WHOB9qT-9JqEUm*FULOb^zXRhPofkR_RYH%zeh`pqyuv0Ajj z;2Xbud7oA;wretx3^cX*YRE(!N58U0#5L7ZkW$%$Uq?cqAkZF}DgeoL%fuX2*Pn5g zH%Vtj@e}j6=^2-JglACQH?!tT@@6aDX`mc#f8H(nwyV3lS*PL0h^U`KW{D;{Mm!2~(JeRIFm%nyC zzFgt?#U7y8jW{B?yG))vlEhNjjX0>EYr1lxi^JVAZYn3rAB6Av;Xr%jr_Qw3g@)&dcx)uD#U}rt{cOKmC9_~m9dH>4n$!UVwMrG z-kHd1{~WiLp7$k4rIC8Bm($aT>StYYr-*(QU08^p%#>SC?e58#Mh~%-rp_t9a1Yk4 zE%xprkm`0JXT6i!pzdHgeuNg?Q>((!yAt(tl}i??bX>63Nkr3h`$=2ZG<3X%T1PjZ zTAQ|jDebXc+>ZQY)XUjQ{Zg7z%D6q)*`8tCfw%2|BMp@W_2!+kPP2r=-HmT=f z>`hpjY03IEGj~yOmN0`5R;&&!i2%HaHYm-}M&Ir+iHbL&vu94M(^?*5LL1vt^G0^$ z-i2qufkdQ-ekI#AWQW)q3R6*!?is7P$<{Be5#(*qxm2z-Z6o-xz;KbqgfNlA&5dcbyI>m*12CBS4BREh24TB z9yJcM?Dx;3=yE5&cFU>Q$}+I&U0UEv1Bn5Ff#n~jW2T06KE9f94WUV}F`zrF=SSG4 z3se$mecR9p3qkNihP0YiW+#Xh?j>>qw9*l1W{0RwHF4N7%u1 zJivUCHMP%-b6}nFpEc-cg;-Zlnl;WXb~)K#Y>Xy)TOOx-A28;xg96YW6$cc&->Ua4 zf~H^RBPSa=!L&L}lkZ(o$p>?rjoH~*&Ky^+m95o(srL1eOOaYOyep0Ueh-#~!$%0= zR8cn7d?u_h9@`@WmMjyJ`%%uA$YUX)d6jdPfjbYAjhkG-jpSilzo(?J>*MvZIw_ zKa*U_FmxMFe-b^?@lza7GJ#IU#F?PoNE|I+j;`K(`>PO!D;xtUp-7~$Hp(uKR}1+5jvcs7QweIYPeJY!)kHMzCd=T~b1EatW>VS4KH{@2=1DjTk`1$-u_m5|jsj@1N5-!@rBW z|D!hhfHdM{TvU#W6Sr$v5s2IahDY(cK?IbqSRWtJIWVAI#=i!^Eb#;%Tt}>efiO*O zoSr}u3GBge+wE!zGukLRSZVR3thj%>}hMWrOuh0&mfisq&Z*IQ>)8SaEL)Dlz?ZMpaL4U#6Ib0r`Vx>CzQiSTMT^$ru z|NViZo5|K>`+4~sfA+)pzfhN-sk1Jo9{&+r2hafk-~j-jj|L!jHso{I`j;Crh{8Yx z1kg@052|{zu?f#o@Mdu{bK#&WWw0NuHPA%+3uD z=PzkBUuq#|cvr7_A9l;ZXLwdkc0pa~NX1}&-dfv-+>l}|-0LpVyVmv^K+G^oM9;%4 zH%xx!{lO>0AXO=1`PYbE@{W|aa*kn-8YC`fU!y$`(+Pj9S`Z44dll=)#EYbP*?hDM z6TR1l$JG{SX_(ID>A#E`RFJW7Z6k&fv3+0o{k-!>N(zgIorF6Hku!mdm^pV01(;Y% zWkQ6^jlh$w-5t+h0fJPT2l7{F--J);ZztW#nNB3bJ*e$c<*g))rgIz3D2Cq}8`Dzw zYSRo1>T|eVvmAO|t062(N-<`^p;p?XCUQ*-okT>2>y{)kRfmnJ7~e%Db;>j?Bgw>s z=Esll^7gun6EeQyiBg>uswZl}HuY?<`aQc8CSv#moeMq0 zzsn@{j#ArLk+dzoUDZL5vPY2hlx-YU?QFC!SQni;wbeR5+2ybVtrdx2&Go_)p|Jpo zQl{*kejmJxVb*?kTIR%eoLg>R?NH-_)c&x|L5stw6ajCgC$j3_#5Xr1UNWn_u}2;@ z_^|;EssCB}Y=4iy7mu1UdKO?)E`M5M^oMER(5QY=5DexyKkotuW)|LoX~Y15=Sx2! zMl%P{3XNVEHky6^_aR1%7LSR&-~q`nWd>VEFgxvRSB~QwcbsW%9S09|G}`T;7c~4{ zq$lmrJ1+@&{2#qkdjy^{+QV2s+!^sqG4K3risb$NcJs4`YcTJA+E44Bub6+zh5h%< zFKg&*{hwY$02u%P763FUZP+0*BJj%1+h_vG(kon`tXDuv&=71RsY(>65|dudQhh&5 zYN)HXi)p#>LiG9a0Zgv~6al|mgkVe_PeqV`PUAV8JCSjK>Hl$kg#E2-6+&@%>Pw3d ziUao`&IL#-wn0q6X0q10ZKzSzwlPK1e1L(*i3F|QPy6S7oU3l42_^EFwlhcKEngd& zH4!tIl;-9BMwA&Q!Ii358DiQWzW76s zOf&jV6m3eOx;{~c=&Ys*Pubdy`m>zd$5u!FGCZ7M$A7PMGwyJtE3c};@FE@!$X#kHv^x4f?dbKyf-E!cclBIDg z!5%!zgY`Q^vP|UWQnMucQ%h}=2nV!TL(t1JkOJAU5}5b#ZZQ@GF(tctF)98Mpd$sLuq5C70!ONV%4$-wI#;Fzb5SE_NECtt?C6@6$ za~jtw7C0p0-_+~Q{;=vibYqjyKh;OqZ)Sc#{=c8jF}pK~l+US(qsoY^Udz&0qDH#=Tv1Y>e~vcvc&fq zx!tqe&pn=E(4lYk+|b;>6jR5XzkMewA63(#Ox=G5vpmMuE1Ym|Z5anv?`nxYwU{7f z9WG2Jl8{Jloj_e_DGo0LPZfrY?{D~-^>S{;Rl&1~mrF8KPLK*?9$7TfxOwL*?;xqC zW{$!26LL^jo+Ck3cE02b$zDHWZ=(IkwAww-k1yH5E}mf$S31rGbYCEwJ6+(-V1$nqdF9DjFx4n{B! z*K2v>a2TXjKXR_+l~-S6q#6x$;o&dtXB}9mwb(WGG0MmH1O}$S;0S5}15=z+V66={ z4ZWowiwQvW8E42zo__tQ-Ea|l2G_8bV1mg$hP)E;)Wm>GCwnSx)_TtNzbJbL;7X&d zTQs)qbZpzUZQHgwwrv|7+qP}nPN&m($$7Wl!M%0fe@E4>+Ev+eR%NaAtu?>7#vD`H zAy-fp2d3>Lv0#r0nDyHHb+ebUTc6x@9+CAf^(V(a>q+t4@76azw z@7EIumeUp!!=Qc145f) zrTLPs8C1Uw#OFSLOe3D7dS(cq&o`n=8iDH<-vK)(lfuPOendSA)w>ylE!zqLcep33 z5_!<>vUCb?DMibW4?P9hNBFcg$|=7OHpVUzFed9nsp1Pvyf}Y`Y&Ru2Zdh3a*RC)g zJk!l8iSr2VY_A#}4&M(G$ohcObVWKF%Frqskb9Dth2{Lb8GDYa;)_eeclhe5+%FeC zh!iYL(F@usVFr!SCjyfwp0J$2BT{beDRxRDHBhlPpNlbP&%q|8LSmGWRoKQ6@oO<+ zhA=WAfdY5`aT_`z(PGO{Sm;7M0DnZdUXOtBi0Xh+x3rXdtzO=bXHa2yvpA>cKbT}H zpX$`uUkAkb*XMtbZ~4a=qhw|AFVcA5mf!gH@{Q;?9VtP9FKN8Hi!_ZjbVNjvVD}|| z+YTru6hgoh%6G?UXXHv`k%4{uL@0e7L^@tV0W z-B(GHJQc7)y-Q({;m+;GHCbg$^k7G9lA~xtEh`{Gw-z~hj?J=9yZ5lIh)T0!tOeP- zbD6poTz4z+`{0$i_1$Df<&q_io*I_42X510YY~pP6ea`>*_m)OE#Nzz zLXc7M)o&v0{lQnN1Rx-aANpe)pU4%+4V4gEbT3TR{S(8A+`wm>VSKf>8GytBGP6uM za_8T7=q4;5Eo4XlfCuES{K|i!o&C%4{?E7iZ=-K~JNQPEx`i|L66)U^5)aY{K^%`U zLv+DJ3@uj$G;<18Sz{4bx%6;O1_VJpNCn`V&nPYUONk{^;ygIaD3EfzHU7?+wZ1-#*fgafz)Gr zB;AbxF?dJ#@LcvE+@<@`(fa*INVxZiZzE;JUy;PRC;e~}Zi|p39n^=Fkh%%?ENCC2 zqRdRV$qp(RyGi#h7`q7$G8tpUUsGT&858epAa~+#buh(Dyyb=&Fn3b#I-?Gn)6=_{ z7{Az7v@^3W5|Dgxw?bsH29o`a$W!cBgV5|mdm?0=?qlItSuXoH(^9YT$k_I({jr#r zdki)KeW;5rOSfc6%91h+Nn{Ckt(NreLYniHUm}?knXFAgY6~(;v&liJ(B__-*pom6 z`Lq4Rl7PoAh@Q(J6115EgSMBkZ#v4njBIkCf*bcV~=Lhjk_7j|5dQl`ikd+ke@ZN5^KckH&H;}?yh=TA5*19fdo$m zD~t+T7p~-ZR1{VP5;RGnWWaA@0rkj>h;&xv5a0(@YgijK(&Q-RRK|D`WGI&c^X=u5 zfb!EaL7D8^-%LANC_E{7Xf{@Lgbn~)>NqOm*H}J( zz3M1C<3%DxSClWFH(8y5EVD3oU%d0%Mw8Y9vJZ?kBC2pP`w~k@ZRyM~>8rEEj%v3; z;=2g+)duCZ-YWfx!unNK%JJ%i)ssN#Vt_?;ag}8Bs7=c{X;-wz6o19ztSF*n z3A6pA4R9N7RL;rE&N#F-lb%`%>%=5<7=e=vy4i{s=46o!R&)|NRGYt3&nc?1Fx@f1 z8qaD*vs?9>+hL)`MTlL5u1)Z);rL!D%vz>LSr#o22Erd&I_+-*HI% zQd5DK=L1b)c^K4;KzB|atuSpxq4TT%?BTZ{Y?A$5%jzK7Yi%=#9vX`KSh;i9!C zp3CLc#IWAABi=@?%?|kB#>pq0u}DhY z<1VT>PE|Nc58;-vgOJHNUa()UZF)mN!#ko=#VDRZHAYYdBTLTDnAej%)049BB3Fs- zp)r{>;u=2P2xk%3&+6X;uMjMyPY7C>brZEDqJeC1Ib# z{}(NtWF10__J!^M=($2jt7j) zV_P)Vq3n5XM{N+85h|=GaCHCFqA+&(i)|qo){irV^96_V>5oOH-251BY1}tzmmSFS zZVSt{mGZ6aLE1mC9d~YhZOikd_c=JM7q$cX zA4;kw^cO@|KE}`DTjRntIlsp&A#rUO9^@399EvI~S`et~(jYH2Q2_W|fjq$yCC)UJ z8e|+sKOmEt2R}3oXSKNkuhIPyX>rx|HRk19;WbQajI4fGG6Sw0HD{>&rJ~k&UmsPF z2YOz@4^zC4;Xp^~ZmSwj_-I8DxF`_8Z@J z-*Azau>xX1@cCjA;H$v%JfSzHf_ZN3i;$zBaTkfv9k5o#r-?@yzAt#5!k@-cPPMBG zQvyHiPGzREJ$yX8f$ky-`RDXD@$2dHpWbUu`Go!QM2BQ^dwC0Jp{D6jtiXt(ViF8p zX>&8FwxCktjLFP{Tp)TfZk`pHv>bLXcc!*g8uKLh3`kqFY@)@?|fxJ|63MS!q(8v#n$+LyZ-yO`^LAAZ)7X} zLoYjfalNU!3IF0{D3cr%y)z<@8Z|f|Pi1E9s#YdkV$9U)eTDlwfohl{V|7Is5o*9_ zw>{Y@egF6FHyA)^?L}`1uoj#(vUvzFCCEKjlzNqdK`#G$*+dbU{6)FhLQd|R73FW7 zWV+zta9%E7V)-*^K^zNGk;`5 zQVHf+5Zb>)Rc!M2!C*KI(OVP3!R|w?@r^e#Xo#c2k2bN1jVZl*a)sRukjyEm{JXp8 z>84_OA`fiTh(F}%n+>}q+r;xADoH8R%gj5C;+k+2rwNjA6oa2gic$`&580n^N&%-t z2Gu9Bpm%+N{(XvCGBof>zp^v1U-x_eM-9OL#f|v)Df-{82fxj~@$Kpx*(zFU$O16a zjlsc+)jtEu$l2-|`Mapt@@qumfX1IBX3}j(T=hF9*0NRI7y0u1hREP~zo!h3=}J%w z)BH**VT$Z_gCAQd|a7c+FN8(O9f`X!?IBiZ}HIM^V z7r{LH2o2r*mB@$-1gJgR0HmM7wysH#cPfh}gLQ5pxgOT?T0V5bZUz&9;~FWfv=z4{ z4MEI-NQ@>j-Jz>0wYpKKmQiYPJZ)0K_|#v28pdCi&Nk4bEs{2c;7bQwYj|SCMyghb zfe8Bvdq0kUfC407Oehc+!d9yW>;dFAD^$v^NArMAj4@J*3G_KGS={6|)6sh|hA-2V>L^LTZs{670!#}a?fC^pASKzB?qUcoe z{W!l8&IdruoUuIC`{^w<0G>^*B{fZODu_u5&d;VT5JOGY80jG~Ex9JN-xj<&cCnnENwX&p6*m#CQT>rZ{H5sLBxXH;nKs;ToJHOn4J z-mNQ&+o2os+pk*U)qagvbpQS+hKmKC;(zUQ8vnE1Qo`2N&gx&U=)dj0@$KUq$#GMX zz~2&ImRGC47nZ-O?NlqE!P~2UFe;OyfY>->r?;6Z8Y#|Cn(Ivk!|w`(C$dH=Yp+t@ z_i^kUZoWT#+(82HoPx~4?Z)-aF|A;jC`+QikG^i^4JY-QyciCukk6%wq*eWy?ZO^c zKVrlk7wpQrMrOYgBvtfcu$gI-fuW1zA6W=V_m1J7QVN_|k;``{sJv3;Yu%WGmBeT+?pDf-r4U*y5%rxUM zzd4%*ZHuOA&@6eNaKzciMLRxH>i5^(qyvflQ;!d*dZ%Ft0-@|D&l9CTO&L(qrfU@k zSPYlEUOixk)HTO7*Jp3Nv~`Lbs3zY(2mc?6A-Q29Kwkq0^TluYZ;5URTMK6k18WP< zf9G0%n|u z#2U|Q8>w@)m-&+^1kUx2199Bhf8l>e%$!G39wH)M}zXF`BdMmEQ;p5;WEV zqSm5`rOOS~svFAak?*b`92c3AB-$IY%$qft%R;~G;scgC^7MY zM(ZEyC}DZeeH#t`hlsa#fUBc26LsT0koR&jE1lzn=Z3?{^zql{->Vw{-Y`DrT?|u0 z_81M&+$e&mH4NIlV2q*Mh=YY!X`I|46OK;8&yx9$fXnoI zCzYBuQj=hIG=m|7LUO*`#CDwWCStytfchlrvEqsQh5~(-5RjUYI}dMxK6Im3BwfW@ z6F`^wdKfaTSxJ&Y;#u9=lM`66A3P@O78CYcOU`R7&=w1hup{$O7Hz$a#|w%6`r{jM zi1N}C&NCJw{##0FO(au0sZ83_E{BsIQce>w1h>ium*!J(-Fb-81ldm;4H?OF2$?cc zRJNv3p6g=8@eKarz~YyP*E&bJSR% zq>;UIGA}w1%f{|e7DGI^ARM~GP6EvvMOMPh50Aot}1#(Q+ z=@vxz-*zGXF<>|mJ*yM-ycR$G_XerNjcS75=rSXttmw;!XlNPZhqE!)5{gDCrYs{^ zEyRHyH>5@;mMak=1N-)6ewIeMYNM92E*=->$sNUJ(2MD?5xJQi+;**rs$)yk+2=Ehl`nV=>Cq@QpFepz zVL{`Gyp{1!u=#?-4pjzqQ#&tv&BDlJ2!?s>czqX=4quNn>eI1A)sxBe z^sAm<$-r$3z0)|u*9al1iz(}?j&s@)iE2a*yl~4PO#n9DdEqH=$9|-V!keDmlfbV4 z>goNIdgcvaSpP+E`GmM%nA0sU=Y=auKsN}mLF0*+()|H>=Ta6BpzC^5nE2=NeBB4# zE6n;=ua5K9Q1>F|bEv?W5UhH~Dv%mNsOY{+!MGPYa`!dmbRwYa8do4S!y-a%mC&So zF&2PdmE^G_ziBMI6)rgOF%MvqLhN*OZ;b(Z1aWncka`7CZ7Eb$X?SmrD0?W@Zj{>I zB#8auq23ROa<0P%#ay`+g3t4%$qJPQ%R~(pdaVYu1bBv>j8?%eMk-ZcEBMgUcf)$5 z{6JsBY$=j2jw8gUu=X4#7`Z zXJp^lm1%@YWa*c5%7d9Wr(Kfi?#VZ7cNi<~>|YMoE;WCkbbOL8?C1ekZmEwr#?9Ef zC+}2Zq;OL2zz)0@3aw$T7Uzc4PBrLs)&mDQbdq(B@8Wnc&z2~gDrFXHmPHz|$8Rw~ z6GM+q_?$zgdI*GpZ@e$ShK!=CCPs_JXN?$lo|l8)o89u@p*O|$6DE6zF4(d9hl#zR zalPkUA85EnORZ?I6;(#dNk_|vl{UNVk1ALpk7ITB;*ZyP_R8CVmP4F! z!pSEjit+I7On=7I7~K@U%!EmG7RdG`HlC_AoY?nS<&F&LKOlxdD#-6^%_4yJYm%CzAZ5R28PuOBXhBU=X4_*wNl#g!T zSxAdJC53SF9;Pq8BQ-8+AH!%7rGtgbpIaeJa}mUj zo?Q#Hj|$e2HECRA9q%FX9pkCa&6_OrrG#>|UgQI=3_x**Tz@)ZE;mUbJQ$;OrsJi1 zV}dg(5K6gg*KZ?>vSCe&yjt*06(@`^7wlliO#gvXCQV#(^$QbwgmLjK zgUayaJkRjt*QAMqrd7}>+>%lb2WAg!c7b}{5??NF2kVB%hPO}W?8%FtLhW^4Pr+{EHN!yXKZ{1-PU*_}zvg@K z|7W$x{X?AWUl~*17T@@`{zkT`c!{-{v0K6Gug9T)0KVR@nvryn@+GX({;!&mmnSP0`fObJ0pIrH~NkM`sbY=&tLrcGvw@vy=*o4z^J z8{w1?Pr_E|ZcGX&2`$(>U(MgDKQKy>`--Wrr}zJIRYrApY>+NC{+VTIuNBnlKd3Hp z`>`F#j_ir^VpH?jx}}*nK||LC zf>hAcC;q8CwhOgU@T~TtT>tu+8WH!~O04D|aZOFu7XE8YpMl0HpJE0Erd7Y&6iEfbC$?t@{(G=^NRVQA4U8Xw~P4``L&VE zr94msJ#cs(UkCS)|G?vz)*LpeYSf1(Ivu--xm|Pnx-nDf{k{oq0no?(!vbh?D@hh% zN4l%>stWF%dCNuIEw%3jiQ%ti{`3L&3J5<#`~&cpOD{ZfEt2jDffSstFr4q?0B?Wp zZ60!WpHR*%47^d0nFqVDdras+5Z}=r#NLcMyQF(gs8J9!cNB8>n2`VN2{#HP-K{>d z?x8`zEjqU}(%*zoivAXNdx)K5gN$2TJW~k2A))YF9XwM=zbT>gTQ+VSvOhHNczZYQ zWeD9PfnUXIcoji@r$41|h)q_Sx|GK%lrN#cZJdrA!vix>OE*u}yZtJDopTj;E3Z|* zrd*uZx8w%OZlycZ^qjBZn5)s_s;^T?YhXaM04tw(mtMk=FDye={xWV$^f`ZR)VY0k zJMe?~K^c*O1gmnOFN92Ho@0wu+RUe$omSh`-KW&eqn?c*RqWVzKY+O z)F74<)vVJvvPSEf=01XE3D=?1Iph>?!5DaLbWDS(__zV=S?3ml&Hw^9dUSy3IL&;Q zk;u}ELtU?>y3EL>gKgPXGhJp#`3dVN*AW3uw6gpYTvuY$s9cj-0~8SqB4tFiHQ!5GO@99 zaQygJn_?P@eL%Qt>BtcFs&Gsu7Q%h5f;7W%eoh&d$RgN@_WbaWDpQVD6|s2~ZxONL zDuSz2MRx`)s}BR2sT1~7c7x=KX3oC8E}r`Piua8ZlJdz|@!P@5W-iDz2qA%9N&OKWFz`R_ zRx@M~$y6ta4+EuZjJC9Pt50(SliTf3O&OQ9M?JjYc}p6&u$JbCk2YHB3uzu+ z;#MUMvB5Jla{Dd8po-)Amhl`Ni|%Mfx&;RBB5pK5{qD4i&fFk~lFemKk1Et^LvfxN zmoc|w3=(fayjdZ=^zFd^FhG*+`rx3exyq{gN%j}ssw3frz9in7y+Y$@QW9#>Bs-df zie@wG)eZ>B^`6{qlwyh*zc7lhrw37&Nvw(qlEsrTi0&hV4-m)1u}kh_ggYRCB8ece zhC?DH5|@ax6PHL##*xRTktmQlWCe*82=$y*Rx z5VHbUU5kIZv%dfwc4h8@;6SsbvK2lcBZp&Q>A<|dApD^&+#-)3dlsCg8+GO?of~$< zjk!>2_$+Jf$5}En_^2qI8+}T9eiX(V`ui@e3q4XV{Oqp@j3xtEr3)G79bdOYYt9JS z1|r8Gs#$*V3wL8Tu#Fx4fKop6PhR$DM$EK6vfaccet3GdTqqrjG*M`cgvzOtz4lo( ztHBkYNi{cpaQOaGjdclkh%U!ldm6Ya9>vH9%&0(Q2)E<4oe_a??>NWzi#l&NvHPO| zZ!QP->_N3cfiYZI$?b)_L-GOmMTSj5BNpjvgp`el)wvGe37}gu%O^7RDY?D;8HN*V zASQPtI`GwVip{;%2%u)+)gP6mh#TfL`y5cr?W3-ADGqp?Y;*wVvCksXf73aK(F;j5 zqCAHKF$B`*?%7{~JfW`LX`|Mg-gwkK5Rt%xP@&_z-(jR;fPNX8bp2e9Z2fCV?5;-R zj!ybyjp1!^bGE*nYJW3Pg<`8B{;H-5y!=;NygpdVh9!Z>1iYmsUgQc^nh=CfkLVRt zl)hRwDE0R8Nckb{eL{f!8qpN`HaD{Nz89#96P!kHCA0Q7jy4?xj2(ilajWR5se9rr zV2D+)3(N{M8&ju9Yw{j=Ff0rkR3^qY>E`q;+@2834T>kmHpwI7CbhM}tHGXah|gC? zuNJ5c3}4~a)IHa|LYNz5SNcC`wTT8j^u6|}wV8V(!S9$6{XYhh;!MdQg<{!jJ{DP7OfQAdnOb$qeeWG~S z$vpwE;^L3MzZJr)$hdv=R8zwcfAyVRk7#-l*I$kjju zUTSoHdPg}+qg(~=fNDUxcwNX;+a)3JI9!~jPZZun%;5s2d?|;^LG`P-qRM#`;y7ss zcZ-+~kvkQ}28OoF!V1sgbdjN&=Lj@#c9lD=jEz`v`gHO6AGGF5Er#x7hNv_H&!6s? z_zctX9yhhRf;;vP>h#jb7S=F)J8IB9r@<(DJwP9a05C+2Qsj&gLr2)PRO>JX%mChw z&?K4@JOI4S%6g}5kya?W6ENrd z5+TcHKXd!6!<=4Gu8)Di2aCmUqhh)LqmDx{a569azG(BLgLtoi zf5;mznCEr*ZK__ky}WPQ@Sk&gR(ihlZL<_ea%tN1pHkb>8mf zpB>O1d%vnX*IDe*WL#B|Ff`gks5|gP!6zWcV_E)1`>kotW8v$>DjCw`KPlqknk6-W zTwc^xJ1YNZ5wYjC;bXQA$^f$W{AeW{nqvkGL!0HgF%9%XA~2uqa`xr`FMFG;TFN!r zn99=w6s@a00Qp1sO6+X4U~9fN-aN5e8LZ_N0GhvCLsImD0FA1jtr(WMP>Q`r{wpOz z@<8ohxXV#WlF#Q*4Plkk>q%=AY>XRQ8}Y^%p}=?K_8*1Tw73)>GheeS^MAKS{zaGL z+wvRVUcT|I%dz;ab&x`%RjH*fz#sn$G*z%_P7F5OmN}y;0btL+W$n5*C5ovCAHg>& z{4YqNj*Ry$_-kR5Tf5aWXrj!*I|I+lrW0Aqmvqn{&|S<773JH}G!>&|?pF1eTLdav zR&DEcb9&`pt=5B`qaXv`?*V#u;*KtOxG#!6Q(TIj`eoQKsfv0np4t=y@U+2(`lT?* zovFsrr7%;j1w& z&YD~c21oXl#EM3ai3Y5-MznKonHk`*+}G=1kBqDVn&}7ZOcMuY}sZU zZ^zTlt9Q!4yxdo_$VEBMzlaVgnuT+I{Z~eJ?YJr*%@~ zf$4iSh2umgoVK{Xn={B?w7lBHC){ChKBC%SPMV1VU{fN=%jk)Y>^6}CK6 z&=T@fo(ZL^aFaj}-VI!TZyP|hmGLL;-=7cF!ZQig2w2NzlM0>kjEiR)0OO;#^YeSW zXku0GwKAXqwQ@y1`(KG*%2A46l)DwOJij33%+MjzcH&?*qS*4_4u75+oB3&wHAh zon*CLuJZZ$yaVoHTEczR3#q%r^<@Nd<86?yx%cbaNRd2!wMWqAFdStGtkF-ik|235 zT!?{y_ZT6Y5Tv?o^&1qjcqTHEeL4C`&{OHmZcN^(Dj6h`3lA1B`IG{qP11`mRT2t#MXf?=Bcx_F%hA-ADkdidOWp22^0Poh>-eAA7*J^KKe z>CQ}9Zm2+9$ycD8(>p2ur{i%il<%lzM5txqsL|-0FOFx(1qJE-1d^q+L~g6_B(cM{ zpU-jSq~e5hMYOET@8{n_+-U)X;2d`nnHKb4kK4?cv%S}pGw@)FPumb%@a>?hX?1md zx6Criz?CTUv05;hXCDZ{Su20rcLtQ9cT5^jt(sV!K?UUYI7(VQPF)M;c= zk?qh}YV+C&QO4b#aL>U>FgTuC!)ZE0Ec4Lez+)T<91FVljJqw36LHSnL=WA=)A2l! zz}k#Sh9QRgEQa*!Hkpx-tdAt6tz!JvJU_<}4Nc5rqyEg9s zX`%fyf%0wrjc-ri$X5L#8L6TCg(DjyHb4<57G8%Eq=AtHpi_ZpM(Cf4GjAo|wik!P zfJM%bR{n#o<8$G)<6YKlPG{xv)W%m)>6M!fW+jlved$B{et%_m!?ZWk{0`)n*sY?pm}q%B!<|W*;yT6%D?ywhl`G4|JOn&5C+igWFOV zJR)na&Yw)7(Qunz;zyd}=6K3ajsy0J1nRY=iVCP8r}9Hb#_Vy(#^T7M)SNlE^&nsOISy=Of8ZeC!ADIc{%p8!bqi%x2JpY}OGj)m>CvkAV|d`$-=8yc}@ zYWS6%69j5jR)cmIIydwAqX$|w_dvB&ThLjX2g|EfNo)}+1%*y>(rnzw^>B$#o+2s~ zxoO3!9VRO!DQvcsrSi_pCy{jIacTLP+^7PP_H_fb{Z8KMi_p?{V zVbL+3tOv?Ev`YL>e_Di?8s3pMyjC3`lvx%8j(D2lMi`&kOH;>o9LRgMv=d0DEZ`d%l6PrL>UC51y{FgjqFNjDxC0h=IazOM6&>~0!hFgT#)W|lcN z3ZMapWwM7pkkala0Imqb%E59o-QgH-&8+a8vKZvg2($4rF@%>=mz+vDq%Cd@uGYPP z%kL(_Ka1v_Sbj~ zAE_#)2XEd>x>6)(%0|mTICsVdZlZSi6Z^TMorUR|F6k<9s3@}fZOLBWGkPqppZlw_ zguE6sXwY8VB&TO|)YV=RA%qq0us!h=5iJ@7`WgWum%6+1CoR+f<`x8lS9ISHN_>ER z&c&I_WUpjo{9=KPSY}4kgn!KtmAHWJF3}*gkXO#oPf#;AOSJv5W!xnaxKs;k@nl1E z8xccXlVC0IGX)(nE--9Vik*_qC~aDchb`)LH^X}sQYYzFuKheXiZIIRHQ_ny89M@x zaO(xDj}77j(1;xaT5|(pB;e{7qDO1AIrVB?^sqWT+G+?U^xwPz`XZ%E%3lQvaD^H% zc{-%C6k>Bkzbwqr5f5iwx_{rIGW>XqXtS85GNl3d8*3aTsUPb=?Bl+J%-t-h&bK$} z)@qFyMAR5_FYs!H)1+G%-m95luZb8iwx34QJU3ZT{88+!QEDFs;g1takVt<7Vvr-4 znKf*|5ozmz+r=2|%Ml9A7)Zq!Y2eWy>%jEn*)NuRJ0^QJ8X$Ap_a4`CL^NNR_4x{i zgl2$N0&HAxEP1lF1N}uLbC$+z-)pu5^V{n%6po5uv}h`qyrf-+OWeHN3~# z*Dk9473uN(&kui@uLhF_W+q?F28_PG+5L+|%(tU&d^`O{bc}!$FatvH&Z4W)iYD|> zANazeKbYmwSs=a4BW%MfyhzbWoPgg?#b*>cHrPkMnypI#gM9H_ zAs_(0$FasURiqu~E3MD_-$~B@ezyJdRQtC3#M^fC^?z21DF*e=qqNLmeb7J^ym9@OU@Yd4c}kppXKYT0K8Hz zzL$CFfWDJZyP_F1TO9YTt20||^A)M8fzs(@TW|9=F!Ml~g*KlyF1f%0-_^SRfYqp@;omr;Om}OFaWgsGF}{d}&c_9852;D6lN$}XI2`Di z_~P+jg01Z(GCosazB>b?&YL;^wg!+2s>B9<RhCqXyg>b?)t4+39suHzC$C_Wlg8JdaEGyj6cIoBa%;Kd-~+=oWXK?-l5bzeTt6 zeE!%3z`6i@e|5p@DWA7VkjZ^m=tJ0VCw^j(jTe9R4*W=t8#iJ!&qKcR+nMvQkOEM9 z$ZH?kS-q49&@(INb}kXnGa@G?T@2VcDrfF26Ht35uTG8mK#P}~T-ryg)Xc>*X4fLB zG;sq`REgV`^u$F}i6U`kpFLl{E?rWDYqEGun5qRyqJPjMb+M(9ne~@ey`#uLLNd+6 z3QLuCZJxtg`)~^C#B!BZeTBmsN%YeLmREuVQ%;Qrf=scRwRFZ@^Rcj1 zV`A#>)Dh18IcK?fV&<%;evMQXyRWBbdC)^(;JI;ac42#3{Fq*#%f%>3WI+NWnZPV| zX|iFPd&>OgQo@FL!`eX>%lSGX=P^WBu5)VLFd$>*BJ^=ku6S2Y%qZJctA+25S=78b zYeaZHh}%rxgEHHY?a~SOWm@%CHHmSMYJ5nwyLki07_)Or5hmKk+WsCYD6T>)Mh9 z>msVSWkNi3t(h=mT^hsG|NJmN!-VIqwaS=Nh%8KnbfHd|n}shWK|vMtrb?YVB}a(; z*B@v3Cv3$t<3^UPUwNpN5Z4~ztY8T{IFXq&JUZBuhfvU(@%8>HbH>uYpYyo77*Yri z^RhDy`di^c`WVBTo7Q52V}Ef+?vY@#rdOY(%LLkv#*|T|Fw*GGOZMsLl*9G;VWH;4 zD_R!1X;r=g@W#=52`w} zH4k$Z7^w9#I;YYlfactbSRLU;4Yd%nW=<8z!SLGJqWaJ`RJRsQaTAHqB`P*T9fUhq z`FN!W-tmsRL*(PkSF01_O)0uAx77HJ=f_2W(PJG6_X4z)v zoG^%Htr}LWS#fkDh?)}VyJfCcFt-P6C6uzP6O|&3a|8-#4w54Gw}n@sQVLk5T#=S$ zRoAcUs^Nx+^rci<3CVHYq!Ba-Ox?snGA;cv&rG+DXi48tmn$N(zkCW=^;(arq&?BZ zNfpV;Hf3I$zbRGf?kKPE-5b$aDt1d zJ66BfF9}KCXfM2D6}x{LGfrAEc6`et21~3Xv!pRmu+2s{5ug-$aF{6>qnz0QH!NR@ z8Gv_7J4^nml*+uiwBL|rP;m1|WDH0v7TsIiRpL348K3t_mnW<=A)Z@nrd(e$(iFce z>5vLeFf4WsM4Z~mIHOU02qtwxFea{SU{%yQf$Xf3S9KhgFUe|%dvqCTpOW3?GBZDY z>3YUlPDFS94TrBsy|lVS^CR%;@&NtOj5n~|U&Rn;9QyoGr>=TBh&?61+|10-swbrG z7pZcpSzi7{IZHVtOzYTHaNpkRcrEY+T^-^rlIdqK(=N{8x~G2dZf)R0oUI< z@S5VUHD|Re;ysg>dioA_-D?BpdKc*Xqk5zGNodn}R|AKwR!dWE&myJ=tSf2-<~L%z zKl&{$@XJ1L_TPoP&jK}P&!xPTQsdK>FjR$n0ls8aKvX1An0;&5PJzMcL*~E1 znI@*-&{MsB2cZeTM9;r497k*<~^7x1g03YSO)? z66oJ@O9toLne~@EmJibza4DiS?J--J^J6WqXI2k3tG5TnGxM+M?#gSVz^Bm7=)ND; zDp6Edq+9U>^WT^ih++*c7uO8jIoWBIg_6R-C}uI3g)@AxkHl@J+aGpvLgYI?=-yz* z55T)az@2~V1(#UE9Y3Za3+$>1= zn(HGbCp&SQ)}`CHm?*hQXDS+)7goox_l+jT*y|m69_%nGYJ@&01h;G|&vAzq=GJvKoN335v_c zl9E=0CUr1CmvbRYIFkrhI;JEeHw9AGyU{?0++4jP6Mo?;g>g*^7a~~I42hkUYBa@ z)9t2R9=pjdRyXf<^Xy@D$jPpCymA{6cpz;D+5Qzn&Fe@q{PZ3-OQ;8y(=jH_|HIl_ zMaR`N*@CjbVrFJ$X33H)R*9LJnVG?2Tg=SN%*<#pGc)s*x_hR-zJ2GPp0#E_)k8&` zRh1_rBQqoRR^~1WGNI`GS=XxBcNmRzQ*91$xQ6^2)EUg>ldh*EQ5jC_nAAz-(XsDa0sY+Mzj*_(3E`b@2 zpp7cnLo236Q`t+WYSX0LvVU*3j!zx!c{h?iqP|16VG(mXSsC2MFK%uY9woE3}1E7THoV<6maYgX|dXysb!s>8yAQvcW#C-{aFD}qCJar z4!;>vbW?L1rX;tQC}EnN|J%*~G6QL0y6Kb*aQ79swP}(t@9ItuRJcb%%e+H90as9P z`qLa_w2~%f>x&r+EokuJ(yWH{O3jVwkh-)S%Le{ytvNYi?RXOJZFA3q#t8K=$QjY% z=@1PSi7ZnfEC4iCJYexRZo2wz4Z(cLi0)`N7>U6V{n`rnvTj1pK1Ht;DbL_WQ=rw7 z5|q!KhSKS(^SIchkR?xFMOwN9Pobnq>d0h7iOzRU^M>SN)fr2NV^&H&_eY_A0tTAN zZXCy(*RzDC_S5OqZ4iShE6x#YX@2qow4WNYki%#GVYWW!Grs{^TbZ0iH~6=OLqLT> zQS9mtT>S!GBkuk>t?agC**QeC0^Os5}!?1zo z7d=+TUafB(z1|nfC#=PP=2A-)@Agw9r(4kXyq@s9XQ^)xDB;U8 z$bXW6@rQo!M~J%adt1|PHe+>y{1M6$+Y>N-nR^y};smAhwhqK*e5{59Z(?6fi5#?* zefRd&Xv~Q=LxkI^0^FdwZtgwwj7-OeY?biAxTJGmWAF?jMobB~KIHspamuJ7Kjnkq zC6a-Me~Rj@>U0M-ZAVmW{!S5l%}n$YyN8P1mKA6l#%F zY=OGS31dLxh@;m%lF3cus7oJLiWE#;POc`EV$K^>=tdr3hO>uijiUh5BAul=$Si_5 z`9aoU#QX%KfO18HvN#?;sYl1&Hi*dyJ&mn)gW-RE2aZ_g2{VAWi_P3i#HFX7s7NJn3Qhkw(5a4xpb;Ib_&Jqp7+;kbXDHpm&h4k z^7@?yYzkNWn5MHe=@%KgFR)z-KS~WTX85w|n`p~${#4k0br~k8E>~gtui(*Y zDoGVW_!8%iU$%%bgn#>OYolEM zxI&B|D^lx~t(o-W6Jhj8%bcuj>F`CQNvdvB;k-}|zo32$u1~Gurcm_+0t4%HeI(7$ z_iGUxMjhdGUEDS82Z@IN4GLU58!I8MH?o|nFvO?-r~PrCyQ*F;iW62sAuC_hQ}vV((l zvGxqmVEZ+pjH;J6)5b0P2@=t82!7tN1j^}gKg&m`Ol;UA3-_4w)joGrJ##sHE@t>E zs}sAZBX`17m@aohQN5R8#9r=Ixdnc^~KkDN3vgL!#MJ+vh@+BZ6xHzqR z%Gu?|{Y#bou@RkXcYE;QieiZfFJLRCX zF#I9QP9Za(0`v#5z}~TdL^}Qf_6Y@}rWRA*%qR60R;cciPeORX`cs&yWfdP&7y|Il zi79l+;wiixRfyey!vQxOb_heIUYWPAS`9*qCs34dx8)a+7|h+?(U!&~(Z3#yc&F|Z zs$~qM+t+1EOfD0}WX(#$VoXLeP9H)EDW+@?g!su`XP>^(dCabuV#a-4O6*l+R&2a5 zl%sOL++ER*E;p#Zq&45%d(J0SaW`ZkF*K`uvKLFa<_11cGz?}h>xF~zXf$CIHmiKm zZ+b_G;~c`1pQ*hOa#TvnBE2@MHa$EUPGq>K(d7qI7dYua3DfdPu{(Uw7&d9cYCMId zDP{3=N+-mu6=mcIHb3KDR!G4%`#rA+SEC3-Wm<$B^_rk!Vyyq54x`g}a$kh?;#z}` z8QxeI?WHMI5v64rabfN;-5zx?uBn~FPo7W8DX)`!M#jFS^yo1Fd*qWqEl<=Av7&4% zwoO<0$~xj#6Wq4HsN6~j=AdnMX%gH{4oqclzjblATV(Ay*`rvioZxU7G0x7SqpJ6I zHKSYqM#8WBjv)SJ519}RGb;jl76%ODJG}{FkchjKvfqC*N1=lF)lgWj7Qk}U6H4hi zh<8fn#PpJVOy-k(f>)GIcq7739E};u9`w!`|1LcBb)9fz-{A`i(R(A`*9MiEzND}$ zl|+{k%H{vyASgkJTZogbDxZhIY^`pjF(Sc6f+cEVUfml=aKmnq+gO3JgulXTM z{ZLar5r2YzqB?ju(4R0D9$;~N4Zr8I5qkUs- zXeGu2qbS&@@r$bHIgr;wk#2OcCFvS zHt!0mR*50VTudy%9MZ5^38}qP@%#!^oW~X7E4@$sbs|F>IYU~%9WYk71xq;fCEo4B zqr(qxH0Ns<>e$eq85s)O>uiO)&Wz`zmaCG{Xo;&1*D|CsTk;ipT6&G2bW=3Yt;{3k zF%0e?bneJp?fsS?e*&g;7-H53FrKk%Kctn7k+y_9RjQHYs6Z|}*1|x~bVsfz z{owE4=7yLA8Ka-hSbCQ}PwgA)H+p!nvl(QkrVHa}6Z>%y>vAXFD5b=fT3(M7h4-ZG z7+Cff`qaA-_K_0bv~hp0S?o>KLj;r<$|_;xD(!e$A(__|CzSvkP)564p(y4k4fCO? zBsb4+H)kz3xn78bC{uwRhK+os4{BfcE>J8lUo0;bKt1_yEx-jgNT)m|A==UK&ICd0 z!hcuJ>D94)?hI>X%g6f-%h&zzY_kqb1STaGEe|thvpqoFf4ndD1a~Y&y|U)6x^(lG zWZh~<_yAih@c4}`CeYJAtKwH+%!N1!r@3lPha3`GavbB;)8?8Sk4UCQXU+eTu+mFF zTA;u<QBfp1&|IZ2TL3q#R%eE` zV1zCO>#ZmCoRDOc)9{0`%6B;EhHOAWsU0(Nox1lx6qQAEf}OGfr$b{CqOm79uOn1e zMOa(N2(v{eJ{=c%-0_20VCbp8v`8e((~3emGiVb+*;@{#2{d98^g-)^0@v#Y3Pc9o zk_F#V;GuvxP){T+5A5%6FWT2mjT0CCL#|s9s)#H2l9CW$T5IftP!g@18{7_|h$|3L z1HBsx1DZ0dZ#9Te4kA<^iILr}TDR8pqZJ9=TwJp(ANPB(J`VVq7u3Bb_`N2!vv04; zuizD|B>06+2Dw5+u1HV#pzZ98v7__=khWT9C24T%i6h;BfTy05iBnyH+@i$-7kc_r zl?gz*?M1Y$e*>lbFsb2PMeM~{kfi+$0B1o%G57h2C4wTTZcX7+T{0ZiA9133DzB2mz4l6PNSd~)1o z=b#|ZGUqXQ)h8X-dhx{ScAyix<@h1dEs+e7i`**$l4$e(@wySbX7P8tfXe)5PALVj z295J0!E+XLvmpHX<5QyIp1mmlQQPAB=053$Q{JZ-+Uz#2X!9Um(QsDoCC!cj^#>q}RUy@^vtIc#xw5}-x{=NZCv|+5^Kit& znwATAgXDGOSK?=so+8{~^rnNh$elKO4_3>}O$sjsJG={a6S`}9WxE|pskN&(%@=mN z9U&69&C$M&$LOVZJO*L`Nr*1D|f5MJz5fn8|{X>dtJnX*w9c6ULN%?`9wb|6}%EHu%u(EpXsF(qjD3D5hi4S?BWPFiV>x~ z*$WCSA?dEkeXfWC0Vaf;BOD(3tYtqn$32Ik#24lbuV&&9>NxK3i5B$QT2uUS+j9rL z@&b@MVeV&JfR8MfZ?*6OS{Z+Y3{IDmFgM)J27J~5q~_%CJS@1ZMqTb*%{&bL_KV8oO zDk8jfADkx~adX;+AHDlq8kqWr)QeZU`}6xhs+Yeg4`k;l4cI=fgxx+X3Tgib_sjo{ z{pri_3tvvYkpId4^eMrUUT&svqEhd@-JL7Z?YoecM}Y^73WXPB=wjJ8ptZDS3g+`E zi|WfSk!D()Bp-2GH8!y`-p1bB=F`^kt&8&XscNsc0iGMC?I%_D4;*26aHw<-xJLqI zsM)L=TzUgic^2GqoG48U*quQRlkdFa7gOnwdQ;1`#&7Y{4>S6%p5s||eA|zkdCK!4 zTHpB=er`o|kG_82XCli>cMTo!pqyZr1Uh?DA zz;_ItdlJspmzRrS>+6$;=uDsjJN{_irY3Oaro1sDqY4TKrDTf{O_hS2F<4l3*3}u? z)a-{~+rYN|-*gd`42C5Y{g}@dJzLQ!kz5ZMm`l%v+2Tl_;yoWal%U9${D~L=LMI|!@YbFw7#>0jZHbVxOzG=+5NVE{Wrc#vP z*LFaxjo21fN3dFOcOgJD?7I$PM;3Cr1C9#T);%s){+?5{fO!H%xJo_j#z9`eVtG_Z za3^1hU_9S!KCS|j=lYx4#Xjz>TiccdUb@*jl6PKtf~E$Na;2scOy@VEJy%DCi<=%SrEm7x#p5BMu+~XvNQbySA14iHOE^e8= zowyrNEfdoV66qlI3D8}{h~QnWvj+;RpLk=Igz07`I)TrBsPCml+4WBlH3pY{mxEKy zbjQp82~}bgL9JKh$r3~TLk+Mbj5SYW2&dTxh7_V56ceP2`3-Gbtg4yKTu}&ePPm14 zhQz*(xv=u>A;z}SIg~mFW!v~j+GsqXA*W;TU5Wq z&ya`tS>^aYiJSk82kOi43tvvYP#!b-C07^xF+FcyKmYP}-V>(#15`kT2nAH2y2U=; zIO@za%};!0yR`YUN1ehhCPJw%;n%o6-~JfqNAup7YF5`bHfU9P-2g%r^cZFw6*|1t zgcC8S^ptBnN}fGU1%$LyZ3xuVUXwwK7WtTqwEQv=y}YBq>`h9C2f^Tz3Z{?W^!A93 zOqNPaKX-X`z)(bE3W6a7XJA~`EKbN=^XFnAC?x-MXL4VN&euxtE83@M-oT&UVVoJE z%qx*RHCq;o&Rj*Ts0SJkgf!S~#KRucyz4f^ksh4U>%AS4`do+##Ae6Exlp;Wwxg5Q zm&5crM@#cNFpd=vM!IU`2&W&utxxm6Moz^cmI!}#^@bM4GsQ(#A47eN+TVJSumj4M zt=A_1-kM56t`}FTD*U-GGOxo-@X^`yP7Bo|-|4_4^R~A5<);U9#hz(^@e__=%!MPa z%6BV}I6-(+AVR%UCQ9ui=8j(NBW{O+JgqBlPqD|$BD4Ad^Mx&y^6TPXS=yK z?I;4mA7Q(1>xj zWCR91@qF_RH=Fg2TPg34rz>QjbHNG!12jV#)rQR=FnY+_DM7s@WFzrSFP?``>*+w5 z=2X?#o}G&H8-Gv}`E!yqqP?`IP)9HwdF{*ODwF$o*PZyJ3p-=vN3=@upqU$F>8^BH zhyf#_+MrMBV+TRZU+6>-lFqF?RSXL_O2q@0=a?%Hpv0SJ@y@A4kKVh2b(9RO--}^~ zLH+g~Lw2gw_*82Kck4B(#&w}zQbO^gyI(xU2H(Rzq>z)MkMq6M=^FFUG;TDdjfzB= zwCC0D zt_^h556AMzd%z>dW&Em$9HB}3n*`TnxFR;eh7U^|&c@}%i|qwfg2ts;u;2eAT8U!> zf~`pgUmL>e^n!4rI{Uu37}&g@&ixB~6aoR`MTS`Mg=5Xo2v~@sz+lG2VuG5QS^;*< z&|oeh4i&SlfD|~u32LZj4qF%91|FN1L}n948iV<@ajf4oNf!(__G6f#<~A4c&PDSl z42(!d9?ntmjWpr9~^dOko9gFn>yH!UZ={t~= zZICih)0Ndt7|@H+58=-L&Ez*9bZ&~z#HL%5?qyDQb;&EoOk%{UQB%%UNp>Zsd(UI? z;+_dog~dCG6lPilUo7pd<5 zHFOll@>a_gvV!O?2Y%{dlU3FP2RfVO&+mNZ)*a@JjQS70_jeFoczi9C zYC?I$C6p!ms)dj#$IZG>LEs{OvpkaSBq@oH`B#r+jWz1&lz^c>?Ou*6Q`Kh>(`DN zWpHf|&B?JJ;1OIccXtF^KWGJW=by5@spw@J4${g0RJYI9P6+cu*??}u@J!T48O%w7 zys`^ZJep(NjP4Z!oy%}aR_!g1A+O!oVmv)B4uMhEo>x=vkj634UrXoF)QA*yJ{lmD z)V9gsDavhrKqK&VbyHVVy0L?!yJBgN>9-&IeYQ0wfDm#_aU0a z&0}*<^Zv$HpM za60gCz*K%260TT*DLseg4g3ug{Y(3@E&uv=K`9iSabBOI6vRU`nOGp5h}}) zs{Eb?C~i=uU?bLKYRW?YF01@uoJa*q@D%do@?538XkgPm@=uW$`B$3Es4Ir$gE??%XkpR6KAF{GsQJ3hdE&A*k!~ZdA3L*ZnjkVjjsa6a(Z3ngJ$ziC>+U_42zf zEsVnN5mWv*-VV(55~jCX@T35q-M4CgJ22+bq;C=Z2nyGjf5DDfRq+QR>Hq6&&%s&4 zYyKP)$Ir20|5vm9e;-~cGY3Z_>wi*qe!2Lsd@mOIw0k z!J)kRV*{S%%mv3tNwc)fY%;Q>MPKmoX}KVTq2HDj1b5C!;S} zmarK9wFJUXal~SDSf+Iww!gfZcH5cGHwPZC5WF?XpYbzz-9s$+YJ*Y(2BuzPK~4!a z^2IX8N!0rvY=>VHVCt{Z!rJFgqxt^Xtn)wnhd%4ct;`($F$2DAzwqVf3!gLK-#C{V zn^*zQ{t4`Lbv(QBa>NaxEyWNyVW9F^*d$YiOcI6mgQh&v!!gmmxcoi-U#epZ(zAg- z{anAL^k21`?2qv-sNC!vG+qE@Y-dNe^09eYJ~bWe@MY7em$yi#F^wRtgE`@bh;S~z zDir3*4u}-YQ|3R({K?*1e%3}R9h?EyP}ra=@pSeZh2kasuS;E#5aH*ssvu*Otjqr}nizEI487aGJqy8cidcU;G?N~>Wr%E5Gktld^L6;&Oz zi=ZPNVU?#;ORGYU;G$DUDxC|Ay53sFSN8BS+){wtw0i^y){m6N|#2Gf&!l=?#z(@A=f zQa8Pdw_c%VK&PyxS%8!Nd8bJIV24MPU~ChZ9=`VVn9ltbd&}XTNR&D0fiFAo+O4hY zbsM6SrH9@iXh#yqBO;Nrb_A25B9c*MBB`{=Ik^3i%X-%pxzWBYeNU~^WfZsUpy}#= zBiMP_{`)cWIqa&R8<~G47yRGenJMbCUh&^WWnT zI4Fd#!Pnq*3h{XS154;nmwMI8Upv#GW^L7|5xV`X9F`(euf|G6Uk?@sIx+iK(O0#4SF@8u|Y%@A~)PB4F~l+?wb){Ll>TuU(d3MZ4?LDbH#L z<*&#YDv_jDcl-cE(XfU=odVJUS)P)A66mTUd~kP=MXS-VaLMMW&f0u%Q@e9L6SQfZ zcJE;B-a^}3#MReq079TFjuNGgi6iCWmPIXbHPzf^N41W?-*rmJO9i#t=&QV9O+`WG zatRp|t;!=~qauv?PJBf04jz?Is%WQ@k}dsWm)wvzQmm}}dUuLnZy2|5I6Fi-koW-I zmA*tDqz&pg!__nyX&pjs)d{^kAMsZsvr{rNN|nDtT>x~$=q zMi_ohoBxn(|H`3}cx=W3KL^3%b3p#pvB!T*dTAR+Gh?%VuBBgwU-)wJg-@=FFZyd< zGmF7_bFa>lEHEpt&8!s(c0mD*pGA(@r5ponOk_;s5OiQZLrUF2_?x1k?8OveGuHO_ z%@3=w4mbDj*HD{4rEZ1{Hql`4;dlu=G|YzZ`7s3(RdVeRdH3-Q``z%|nv{r7qFx?Y zCmKtr_2p4#3NGRT)T4NgEIq}!x2YAbiMNghsajD^(c0c zdbbssIStpk5-_QAH(Nwt=I%ArwddaRr^INS%lV3kerplO#S(1%6~_q+u0u+AS2mxVpeG2A;Z??< z5|S8`#l8PSa&DV;hDP_@{GdVhsk-8Wx;mQWO(_`hxt)?{hL|@@gt9~-jVN_({m75E z^#v#0Em5m5is`A#vlGgI0%!tz5L8dKY@2+Z5g;CW*C5%-o97*HCVNx?qH&Vw<>!{v zhvKI?*`qEoTjBA&c4EToA7>n2Lu|A5mlEYOv8DS|8~Z=YLD=Y78aWu4S)2Sjm5H2_ zk<&j?f-k!-eEIl7zOt4Iwi3!(A`B)*Fq`a;tZZ0SNiq2ueI-kEDuU^$%jxTBQhKe} zVOpu=v8rHhiuZ5$uV8Or9XXQO&zmKc?-X~dsf^>mf+yE|6UiQvOCFig+{2kZZ};53 zlx3Jr5oXPv<^+C6aJLvuA^uS>>2*(8&~{@(J0bQ@QiElFbYsJbPtu-IV7S7#It+*R zQG0HyMi_M5-s?MpIQzNnubyvey1zDDctpn-BJwm^0hUarH{S8gnsnTFI&c=Kcx4)> ziO%k$9ahb$%9}$ErV7a16MVgHNgaFFUMp7(2R#RqZkHUpgye(^ber_z-*Dv*Q*LOp zYms{I!e1K=f5 zJ+hi)qLZz=Dk?%fH4Al9Vvpps3zCs$R5dh$bO3JUPB~TV@WR|U{uvQIj8bn=pxE!f;lF){^At7-VqtgBjo1fH)Ry?}o1DwQDkK zCJb#!=@9Fv-VgB`50CmJopcCsmPcFbLxmYN`Z<_LCZU=aRc~Gwig%kbwDTvFF%A%6 z5K4I0u$`nj5EiPm>&U})1*!nUzHz3{D3xKCR(=}ZRU;hkJ1z2q0*C#=)gL@#Z(oIq zzKNF2G`hRarK!F3G<;7s>d^7#*Zdn4fZKwI04XJbSsI32-6gwuV{%>3`(tA~-Rg~3 z4N|xtzTJG7`_jct*3=CjP^zvpe$yl>#2&l;46kyKMm>$bwh=@A`oz9qcIkK++<5Rp zR~h3Uls|V@nK5pK5)Lh68{&V7>&lnrb zlzGva-E+D44sXr(V{42)ge)4!L6k*X&<2ReP2VUfHcW1T6|*`T;XM@flJkWhC%>lh zoKVHD6Pkz-&s}!QrHATq{Op#@xFa$pk%Zk5G*Kzw^bnJk^|2 zBh^=xi*PwAOMSOr?a8CEDCthmso79g%P+cAkWhodk5QtxfU*27c)p!0wwRYfKy@S2 zAAD3SLWVrZp@P#jDU#M5su)!8ac_(w;?ptCp69h()U?=Tw%u5ZF|J;lZBsP3& z_1ph$2CaS}eQL$tI(^QCE*$TA;0I2D|+V8B1^b*IB8L3cU3Db;m4P&J}XB#4d8JD9+jrPz65H2lA=m(IRRK~%EpEUoN zTu=sd*eTUJ#&X9x-nQvsu7d@a8^)Rl^#ruz{jQ~rws8#^02H8MDP%o#K#(X1;kDE2FshcT%*ojM`%CY$4E zQ@h}#cHM=L5p@>KYnE)Vo)j;q$Fv;pWaF>%Q}9{EpQYr>Xjt6icCI{@X*sZXFCpN< zy|10hgiAQCfk`r3EmTpFo-0}L29F|DY?cHbOwsEB%_6OLw<3j6h&Kf%W30zs@>R?N z2~|lX^=rc1AfZ(a=>pW4HgK!koLsb=jAZ)M?cEfVjj#fV7b=;z&O^R8{*fA{=A&?H zmw*NH3yhPubz5Qscxah=6q4yb{^$u&jj;t`CtXECXvp;az1Wia+s0N>H~uE*^c8h! z*J3r#F{(|I8L))fxXoEIU^D!|tO2IcxlRjmj0pK_MuD)>2ekMr4Ee7@1$OpQ&vW_ zhPr5LsVt3W`YEs%sqq^~{Y*Gy*kB~)%TD{9{DDf6xB)oL-X>E=8aE)fab~IhtevR* zlrS?DDi&U&7Hf)_^BsJ%W1wEd-timza`{VqH!K&DUOY&HF*BePb;!E^)EE(R}Xt zdc3^;CE{UIE;?Xm7`ON(O`5~fs*?Zvp$HM9>6i|;SgQfs*J6FiTZ#qa% zN%Zah$fj4Mm;sLWdGxg)S5lWMvaz9Iz(E<_5DfuCLO&brcxBa38paIjgfDpuB)Cm| zBH)56r)2bPJYB)lcjI$*dH1Vc*182LYbpOdU5S1jy$K96}oluikgi%BT?y zO)dNDMNHx4H!6V9$NrUU&<4%qt3gBfK>n{=nk~Vxk($p8cJnivRr>!Nv3?p^er<3* z6R7_PX#Ww)glw!Gja(i78PUET@P)63eW6@o^z*c7gH_bnrQd=B+=8362!%sTs*eM;D&l^>Xx8V836?Y2#WT8Y z`~nCL&no7@gp8|#OBgOWA>2Xx%RZ=ABb~|XvUmR8E{VJP$nF$AvmB(FaK?yA055B| z@6ioup~VMr^6~jdu0P@GlX{8sKjF-dptee>sG56Ny`zou@+#+~PskH4P z7dqlu$TGB39JSH@zHaE2Zq|MsEz##IN_2RHi#*)Co7c~q~Sc>0r295yTn!nHTeOuP}q41#~Onzk|j>x+|;5)|n4 zxk~X80|6=g|NY|p=RL)j`!9Sw>I>y5ke(=WxPv~-t;1xgkf6T_ib%!shQEu+QteSN zf>MYQB!Pr29~-*VVAdo9TudC|%=4A2z&v!VrW=-p!shV$BxZh*yUxwy%_rd9SB3DN z8o_&*mVbPl8rBTAEm@-QvQ+H0S-r|oTr&%ZW#4Kx}+17Dq{%Q<|_FiK1lUBfeQ%`v*5mZAIfeUx1- z!|(}hv{9|2_gX8VP_<+5nq~As&AZD!Y%hd{U;l}5R7N#J?}>7BQq_CnI-H0nT&LzW z%;dA-hSeLn%Rzvq+vaKTBJ9%RmC*M9=;Y_LOD6>LJHdjt!GHOBHuydqEkp=(2{sK8okDqh^eC@}R* zH0fkJD1C}rlaap$b6ZV_(xgZ!ddih2gjyyKq}-j^&eNb11gTo)(dxJgk)}?y$po2) zXRkB?QQm(9d6!tO0iLMww@P8D0M^xJ;j@Mv=2|To(*~_rw7J-Vgw6Hr(5Kw$r1)=U ztVoziW|%g|Jq7DRLK8!#E2c%sW#&Nk?yRhXIY>X ztns^{Py$F2ZmaWo302!0F;ltIbtk1vA=Z{F`9b62k)@2$wKKxmyST_s@tx8tOk8Zg zSEV^6)XZXD4h-9t{!9Vt0ntas{Ea`CH2C+J-qiHC0es5rgT3h~YUrUPb%spgCnpNV zRNdLK`fa|JAdn{R*&I(hhL{CMs5dF>tb;|vvwjO(sth^g>4=l#G09QF+8k&Hm3R@R z#77ic@-`c7zAH#qbiB#5TWN$KYeyYR=6ev*g7!0ZT)2Gm9*NuHvagWTMmO%1@MbNN zt6wIGgh7m*0w-^4_?Hb{7{fV*}q(Kc!?MZn9ros^?>j~yI z3rKSo&j2exNqdw>(UCtcOWnE^G3W1czG&m_u{!ZMeg-9hL3can6T3G^mh>Ov#kQ)m zMCv5CP$f)%o3!T)a%o4&G^Epu(C+%~e(hxHu#N`?VYjBw$cE2a!uAHJ;-r#`pQIG3ucD_887SE@y0nY%A@E7zCVlCKPxOw2GyT`hn&rEdT%-L<)$Xfqx7%NPVl1A{ zw7pvsH)2i=x}043N5N4}4>G|YkANDrqT#6?5%|hBi8+ckzk4cnN5Z^e@KtOgz%Dv>LQv_+?u_w6(- zRYdp=MQX`eUj18^se?sK_4f+Y@M%)L_cZ0-a50Y-DgYCh`-2OryM1yJLB+{EE_B zF6d?CpaX1~vqwdWIm3GU_?!)OLHF8uIu8lhXfbd+?gI8wk4pv7_gx05H!31AKw(iwsEEh5P4v4%22`KJ`_q}k*sVQW=(%d z+DAnTj$!xhZ$|C~Ek^LQC^2_*7%kY>4A&$$P9j4G?DCz$N;B=2C4Is&QbR7t6-Y=$ z`eBgY*tf6<{YJ`@WH-q)$w_3B8z3Xu^wdk$cV2|w&LnrFo43m3p)2p&*OA4UPnV%{O5O{_@B7k)k`mSJ?c6zx@K{P?Qy-KossGX*d zc!0LOO0|1>y)A`kXH7hzM;Ou|m|7dab>`XSo@s@e8!xQKLXEH#8 zBF7TQ`g?rq8#lGd2b}BoD;^hwQ8EZ3t@%DBJ-UZAyYu;Apbuf#4$uqZ zWz&gdtOiorGp8e|GwO8E^k&+xWb%yVTMQnUvGAFo3wmQRgK)@8rCYnCJt8?7Z~Cviue^q4LE}+909R;SxKLhJ-ERq&Z0VnUpymCB%lNr zFq_cvq)v{%T6>+_mnX`2!Zw6=8WUATan~T^P=#tGq%mpxNGK= zs{!2r*dtTNHdBFl%-Um-6_0PL=71u?cQUqu2c7y`YfG??1Gwb-Gar5EM<49!cQ@4k zn)xCLwaasV7QvNM{y$0B{)I`t>rM%^L!6A62_@8)47uR2B%W1 zIrWv#4@wqRrSlm#`{SwXH%x~5Jr8^B4i~KtX&?NfTKhZ0AGmG^U7B|Ca3XsA{BV~$ zS;(ojL*g@UuN-61+V4{)gCNeg+*^Hw;8B+^MY#O-+k>uCeg>=FL!mf0jXQea4V-en zcHmskT>GLjIWCJpqB$9(`1#MfWYl($;dq9RGq(pO(~_bJaUYv;Cpj*m!M)7}E1NFV zxHBB|zh_JeQ)&+hGiq;M(O);}tX#z)&vC>FMQ&XBZrDFusJbVA(%!kp=Wo>BVoCbw z9yukv56xt%J~K<&RNazE+Em}7C#)MERa)NRCcF>KY^XhhOJ3C6;z?fA-pVBK=^p9O zcn!^Tsy)L?ei$7QC-4~;dTsZ8To!Bn(7m?rudEv`p`TLTpaTaE^NGi~e2$m(V#uOu zRs2@$=Pq>T&55Jj1HAOEtC9K{)va&ANGdq_>cZ9wz>5PMjX*mU~PZt4H zX*O@c)cybXHfpbtR?qTDG-_gp&nw2%Rym z#gQ6EWIL9;SN9LsW_p^&M@$RnNcv3$3p3fL2mo;ModCVsxDClhS*T+jMYb^>h3pi@ z?a({GerV9Doms)^AqY7qHp&B1QZA?Ad?IN8Oh`dVXr0i$KCgz;3cT=)(^*W~?Qh^d zj&rh+~1(jcrsRZ$BMqwnp`6uA_OgF*>H=r!KtZ6cD0* zVufMA%s#ZjnY~W-dLttO)7}12yCiQ(Ww^sE@=YPmiJbnx@t&9lcTf?XRbAxD9$oV? z{VdkZDjwANE{AzpEss5k)W{$lhd-2mN3gOZ<+pmy-5ueOYPu&H=YOg(I|loib;}Fjg=Ou@a%$>xA2Rf93!J zlW@ZMfzXs&w#P*3=upm&J#zRG-gFLLVO>p%BcP}0(`LX%0p{B$3iPIP99<&o$uUx3YT5RNcFz`09=Wc^2?t$rW%p-YyEviLHrXO={4AK>o_Roqj+zQ=;t?V~Lh-V{3b!2FY#esC|VFt|?uA|DvW*Frzp-g}SIh_!#rz7XWehCE&Xsxh0Y!HgO{LFrt5#hc} zE7Ga6+2%fu7^X<0wjDf*i0>j%+l{S=*o3W^#PLl7xARFM(weO=u}G-r8t(pR4YRYH zE+Q1DU>t_Dzby$YI<5S#UCJaV^|rJ^25Rm8Iklv&5CDlhaTv+P5NsR&7H?Vx1$jbzyJ{xjwvgF}S41tROstcponHX75}k_2%fDHq0k&mIvEaZg2|q zuFh3^@>_sr!s;N3xD@IQdPF|U5&$8be}j-q%=!tWGoQGlO?VmnS))I<^&7b@@i z1htKnj-r{BZ0*F&CgqoSyX#z)OyEL6;TKk`zfv?s^VBhm7OaRdCo!B+eAD>F36Q7I z6!4Me=%C={hRA}u<#YOQyY4eWE=*f$@m4TRdlwH%yG(@DV_<^&dE%ZBI%9a7L44c* zSIGDSi8DL}^W)$(p~iLC!TZSR;m>WRxnY$7cQ!cN!x9So9m?3Qtq+jlTlG5jQZnz_ z6tg$RnZvz|yJ_zf84d&E03Qf~g2z%xGYAbSYDEOe--D!r=oU_aQ=qHcAjxS z>GWM?_JqSpf#z#0IMH+b_4`^+K$ff%w6rT`qV{auj2AExU0PLAaVG4%@f)ZV3~k1N z0FyluhITHZC4b(Lh*~(cb|8b1x&Kx^bBH{ep)65EI5n6)D7uxiWcoZu3#17CDQv9Y zR!Iq0M1-*db!155U=Jo@h!UAP8ED+N$6j5p6-JHrXA%{p3K)JzevJ^%>VX>%>T~}s zMiIX7R8qdJ^{Jq>??QNopM2-Y@w1uxL*HVspJ8G&(KR_#GfKp1|B9h>UIcL;dK`yeJSg8~FJGtWhEFlz{En1;5kpy`tWi8&~%5Q$l zAtX!UYO5iv4C#$#q*=8-Yjl#5?K{XVI&}M^ixv88 z!H;$mY|GcU6*QhTHx zMfi!BJH1i`_{x|o!F`L6xXLJmA}#*hIM9owBl*XuC}mWo5>;ATtST9Vi2c5?S3hzum&B7qmAvf3hOd)}*7P*uoHf%pcgxXH)!NW)K{ zUB7))2e?Jt1CMGIc;?*2o(OCjX+E=>QRNjxY{M9n078`y&&+b#suE&Nuu z;8(X0Fc%$i_e+WYaVzn2PshE!EzLir6()9gw%z(Yp zKp)0I-cW%*DSf>oe|PgT=A6n@`+qfgZ(hpRhsRrTsq9 zj`pqAY_}P#${N8gG;moZmuG=v^aR~TduzSYxlQ#-odQgV`0e=lqPK1M#71z8i$frfloi3Re4wqE4NFXH8WUmoON zr_Qm$I;pLl?6xrBOEN{e=rAisr=sp5L%2}@=0z+H8D-Z_Fz=ztYl7Kv5~*9*E&rCT zE{D?{wn|X4V{{TXA|<{m@~~}}InsZdNY&tDPu*irjhpbUm>}fLZ;_tV$ zie&cX`o3VZQhJSnJrabrV2EnMAXCJ^kwnrvRme25r4T4X(XRl5ab(=&WsRL`qL*{X zFEEX)G;_B#X2$XP%@)&?@%grZL-S717ZqS{I3T{{q~iPUqpT-)D4XNF{dbPn^h7ni zD88i7h;)eZA!1a*IhlktULb_@YrgL{(w_>NR&7t~FKgNQZBMc?El<~m0OnUsCF-S7 z%v0$vIBlf-c*#b(fYV#UEb;Q(%9SVth{>Ava*YY@*k?|Na+Kl7B<^HFXP- z$nUxN8~p!~_G9%uc6T)XkD1kf=feMs`-guy{-IIDO7WZa<88f#EYN$SklUzI!)!^O z+d#>zwl*iHsTc-QQfQ&g3Q%jiVAK~JCmW7_)BKP#MG?uIjh=c*$9c?{jQd>&iOq={ zWZG@WkMbMOc=y?S*-zals{Kpp{t3cF6fq^(C!hG{;?LfymMl$J*o zlLSaN+A6;wHgsu=T3 zzzv{HLoUOvJiHb94y^T5YFwM~Rav7;`S}Y- zV!f&9w44geWX*y?X@`~h`CC?x+}ux(Ke@oQ7m~sxIp!Au@+c5vbVid%Cym2kXZJKE zt!`+_fL>4j&d8-jV`+-3hw7N%h;is9GqB3=w zb!@M`s>_tbzC4E;nW0;~mcoKtq{mv$ISa#7gIz{{P)}gmfPnfky0k}l`S2fAb2}J4 z`X~b8)pltYL7a3~yx;)YJx90gaKo@p^CxQp~=|%bmfS`h+Vvr*Q@}q}%Pk-d%fD>I3eNYhsS1VMP`4U5bL@53;hcfcR zAiMnaMx{p<@~e%aM?cT#6k>qyL|?pDG*YE*2PrZlRIK!;5WXZ!WC{;oAVTImmPj1VBUd&W+@l-HYpu?{rvjY}h&0bTgfQwY&^v=E=hZRs4bh5sq5mfYp z;U|8S26(^p`A{4HneE11OfSn$i-Qgn_jnR9_2p8tepYn516M1$aQectN2;g68XqzM-m!bU|yFNl}~d z%JP^R?eOOA{=qK9;}1efsx-eMl|Lj05kS|DAl6S*EsSADGG0-^hUtT{W?Tb8jcI*)|{TzvHQS$ zkr9p2i|zr}jx)soje@>S>Op(eg5l&&PVQh@_$n$kN!3?SU+1l+Y-5u&iUI5?_302$yE8NVEQKchR-?wl(9J(HxA~{G`jlC!*T79<=|28 z^Z9;m^W*JS5J8lI$Z#pzkiTIEmv0O9m*2Bm$Ml{^%z!ke1h!uaG@(B=bgx0yAaJ-a zT3JNluf7z>Jv3$=n)(^_gO8E-+P-l=d|@yawFI?_x|iQWR+uhEp5**GXoGomzla0K zk`t6kN-5q1?)o<3Mlgy=K<3W;sxS(HFm@gNUg`dvdWsqyhA2BmU zXo<{LQGg~sH_ZX4%Y-3A#aV`3hcb;!Cn|Hll@hEuwUU9FVeo9mY6wMnWM~+Qz zA&eIr+K9r_A{AV80fw#w0eC`!A@yQ8$v>K>Bp`?|5^wDw3||5UiwUH5n9#C==?B{= zJPC5^n{o_El!=NNyI^*yJaPNjUXlh~sJn`%!ZI+U#LP}318gCaTYbfQ&E}~UE&v(A z5&{*c(2@ckR^lasSvtsVw3`6SD0FRUkNiiP@wX9`({>5UE}M5-QtyZEW%b)Vd{ zMaH-p6_*=B+Ul`>{jZ#%hkI-2OtL#Dp8I_cf9_-W!_mB-_1gRd`#Z+vzViEKLy>x( z6TbNuDF_`8`2Kkel5EXBqJ~LdmXoW`wU^(fm$5VzU@tWIX7C+PAnKVn;4c~H@t|GY zCPYlcEG-;gZm@VezWCmv>>AJ-Y#cW~R!rb2Jl(EwkCys}+n|)@1nTfk?tJ3Y&nT~E zLwtt|LnA)1bGU{NQIHNsnGsjvq4EbHVXHx(xri?ot~YLdkCW4AGWS9!5O%_7O!=7s zT)zk=((@4GrZHhhq_-l4{d!}=euOh-FaH6NObSF66L6k8ZBn|^0Iq_5vMq7C()R+Hh$?g)$0rBv!$9Nta9`S*!?cc-s-f z7Jo1)H!K7F^)mhSl%-6iKkTsoQu1IHM&80(>WOyxV>5HGNrU4imCoy1Ddn?4SkEhK zCYG~_v*`!*R86hrzEsLNZ&g!7ltA?9q6@VeV%~N{y7rRd*Nk451!|S$;M$sj)2j<| z?fj8t8T0h;GO!n-?4F#M@2=H6LdIUvzRnREP{B6(^5a;KWb}!3d_dAWK4mapF$o;L zkcHtBa5cf59%QRAh4om^2b}EaF3n(Wi9%&z>A0u^@GI91jp~Cw;me|f;JF7oOnzO> z89PPmdQ#RkDI_;0hWVNWKEMyHiBi~^bEPqG*>$-Zz=8vY-^D;1s^Qj5`O{rhEjuRH z4Pb+t`~a?+2pbrS^+|Xn$2awJ*bap*2dO6+UOYc}*-s0k3_ zeiM?)>q8*bW7J~_fH97#fC+>^!`TXw!ZEQ+qE%`}dMv7Fve-3SEQm|C>W*JxjP>NM5#Qki`J@}NuBZ$UP*Ncx-QaK-WW_3QEDc2Nh}p1ImVvgK0rROkBrN_382ZKedSY9kXrkZ?%TDH26=FU>twbRxzehQ4>Qh*hT zLvpwN&@HO(c&uJ<#7!pT!ePcr=IVepu${^LCjiPup=G!?J<}2G-PkPL-#VG%xLC{m zU<46-lR6D+s&%AS zH}QB-=Ik)A?+_`~yEL9|e;oHA(7*dAhYPpD=mxc8p1<8Fn(FXU8A`YEhDC~LsSQx3 zajwC6*4c=wGcDp0yuQ9yT5Vx&X~J1Lg0U;M4NPW2g{v>MwluR8a_JSX;s;w~7koJlLmCgHbtv*ZEa7M)|o5Dbk2XqqV;byjkhB z*;PXNZtD8U!>`MXwv;l(#Y#&x1l6vxeh?0tw4SBh5JT+P!yLMR5T0G`ygUFE`sjhX`mJ z_>ig>C3QZ-p<2F}NmYfN?)A&CU0!-2(0sO7qBp--+t?DDCQmjT3(oS>P;D68E)O)A zb@%zT6HRYygWTHT^`+-Tjuyel;aO`|qJHlLZNyyuGZ!KwfX#1^6&rV@uTB|FPapeP zMQyB8`#kKlW={3R|LcUZD7A33QMDD`yGe{Bog>rfcel$lcj5XT46k zi{vhj6s%3^xz*qGENt^@`IdbAjnERN(P&l|;ctlDH*a%w?0l8akNVk8p@yt@=2w6l z^<9m|4K>6YP!CFMuI8SQwteM9Qd>R%j>`CO-!6jUsOz|1VGWw^oX}?|PQpx0%W!l% z-~7Vt(Aq4UWeo?i+)u^H+5Aw1>+Cg=x>H+*LTz7?e}M1;=^Yy{AyX7I zg5t{Q<1Rik6lB%sGAr)$e|(&Ktxww1%@qVjGCBH6i?cJ*jNbB4$!PGvlzSm&q-v+- zlAugLoHlCcs`W#`woBOzt-`LHexio>Th8MhD3XOo6s=yxR?Z>S1cHAMEvwK#ln>CGM&Z&h zbdX?^`5iVPm*e3IYrO-d8_a0f0#ONP)>UJ213n;SC|OUcJh?exJzEow6?n|)Gkw%T z*+_2R(2Th*vNqpDk{U!s6ZSFNz7W_nSeuH-F*e?3CB7Y@gZ4Z$rEM904jJVC&D7eB zDF{NRbxvL*){5KoAsTI25w{#S0!A`5Bk~;ll7?J{H)>w9C0{aqk-2M*Le&PkPuqJ4 zGSF{Tl$hn*ykfMgE6^+oV>l^m^BURKWNAlGKE-t9Y&#M4uLPgUsi}ZBKi?28pyOVuPmSr1#iQkJ_~Thw3TB6)&uA{6rq9;Xw*6gc*0wZ$GX)jg5#VVlr=Yb#WVNBpOJ-tQx!8 z9&}Q`17RI;Ln(2Xq}gc8%hm4ZkI_#`zR`E3H#9HJ!(!LpyZnj413SxePV8+;yglH` z-f8fq4~T?m*@)9_Dgo&{U|z~CWJ~2_IFf(*V#T-2R`4&>k?+CVSPrVwjEWV+lV!&` z<76s{e;`Wa$+?Ng7!A)OTz zbvCpFmNQaPRt~6OFQ?yZCW^vzCTh{9ImIg?RZfqF%qly4}yfcfPwS&JZ z8wGir_O!4c+p21<7S{XZZT7dNSmdK$2YANM%}Xl#XWU%`!#(`lHFzb?^A=gznphc( zBgcAd>$=n&55n+#eCt~;R<(tp_mZ*r^%Kg|h+V4Dq(5eYau4%uPaJT($4!f((s(Z< z?`Qz^baOdY!xsxVUn6vl-FHNj8Ksv$6q%Q>m(7H`W!S8dp0Zw)i{3-C#dx?$P3h1r zd-Yi@iWw}Np)DUs`|xdA3u*nmCBVFZ93-fQY|)&pmfEIlpoBjZoS1{yEOuj}rbMz^ zfZ8n|aM9=!$0DT_Z_tQjMgrbtQlK`F~(tn*Fk z+8@S(bISCZuP7C*OZC01Z{_EJV+yQAzWn#W1=e>cySjL3LWEJBt+`D`q@Kr( zk*8;Mxbg@L$!Eo-msVOA_E*W9H0&d~6GIvWI=xzaV5v+_1M*hB9OgTWP%A!JdN3E7 z)Y+$Kr9XbfZBRw+4%f`cul{9vU;XPXJgf+&9mRMKNRVbK7$fVumuQ1BRL$oJt>VW= z1$|pS|E$iBW?DPj7J5}^&+inef_g({3H|C&K5iDd0)D%9zHc4(+*8Qmvm=?wb~*p# z*ztnjgm%Ywx0V>B6;iLd6CAh{WHt{`cskeIhCf@-U5b-9KjAWyW+9#b`S2@t3&|D& zv~@Ox`dJ?83u&<>hxG(}7d3gEM6 zP7@?xSkMlUq3RlJf{F1nTY~WW6era=j-T4?;SP(Y6x}?9*-#yqrJu};>sd>(fm=@x z-f2fxs&D3P&6~5bOdXf47?gcK4F_HIY)SDjKiR)~UYVbcIC!a_N_)5k`_JmYnAj}m zzmyFXkqh+SMfG$y%B1x8{C1$SB*%4gCj^%)2>$Co53|-|tIb zO%U8J?0lOjOu9;%Gkj=)bE4n@l9bK+EDDNz{XF^@J`o2jDWO=?Y>Ai*^eT%A1aplRkU@Q|^y_DY^`DfJg9-26~S% zVG`7lpuFsSy%|tUp`STM;}|rYoWS>)ObbW!)J=i>_LU164+wr%v0{n# z5i`2jCr86Ib8xd#M^lVVW0U5U6I!;^3FbDci7RUVX$fa37ucua@xktNUUc{xh3m8k~BoCqFttmW?+VMT|yA#*29D z$*Hh?7@4Fkuntf=yc2bpVDGA82iZ53d2M1;u!BY%COxvsz|1FqDK}r{@?kuMU~7lZ zy1>*AM7A-wuhhsyMJ&N6&;&hUiOdBr!N!3Lw!>(i0;Vwvn7~Wn@>MZN!?7!e&8qcV zTfDI7*Gw?zts4;Ym4k2}E7QPEsW3QK>5F+6xW#l}P%%{+pD^>#B8t9Q@tf&-TRb86 zqA{QNg$6>OIOHBc2Hq4Ab#PJJArrP}3EQEb2tuSG1mG6|XVt;I&P03H{v1yPDZvP| zbn^sn1U!O#!a1G6f8G#)9uRq^ArNE&XDeW)PWz99$LXsZbc*o@0&{M!jL$c*O|E=L z!=a(>?x3I?IX&CH5Cl3yCpa_SBK@iO2*C9JE`25e-#xr|!#+5@JYzG1YKcUpdX9tN z2lMA8{!s9Fu6wk`FoL?Rq5Fc?=@Pa{C$k`_<>i=sMB#WQ&A_)A%)~c8x}wf5oES9K zYr06)PH6u6(b(7;b^wCM5m@K6@i(ackZkAf+U_>NYBa8L83T9^_m9Nv>lHm!FySb} z^n4I!!HIKGr&I7r#ZyQ9c<@O^KWB-hnGX?KB>DBSSYLPV3Ak8ZcVoiwkAQR_Aq4;_ z_deO%86on(9|GHa;1Iq={?Fi2zrPEhUzi}Qf3$;ngbLJ2Yu?<1!B02D7mn6cZS>Mj z_0wU5`d5n1$fk#TZXppq@V7jn_P;hc;c!ZVK(>h^uwH~d)RW>&X4~81qzWcSW4<<) zs!}1Hg@3H9KB6aSw@bI9p&dHm0fK^uNo2e}bjtMQ(t`QpGgP$8aZVdsdMlnABc$+eIE=e(<9@5POX^$}9$QGba+RpGW zbI5bqQ(rVUPZ zne~+|h3f@Sq7)TvNlKjINl32(E&*oN${9y>`+ba&q^0G;`#yPm=`gy?hgz$$=~}|= zQbGO;h77u)vmbk#DQ_#+2EksduSk?+|l#`(PiU@d`ZtM(Gw)cRlx5(>vD>R&cZH zSk%{-Ju49S^+iz?NzM1T0w9g~-m_{-d)<&>;u0}88ULBj;*gu0N+UWS(RFo_)(Vl< zijmd|lGcin){2w1D$e3b!d#D>)(Vx@YN9pi8LPx3Ds;lYaYM)h&N|A&GmB{R8?J*v z94;XmUatD1!~_|MBXso@tvx0Nf8P>~3kiMOx}808K0b?I7nj!`$8ajA-4<*!lIeT1 zg8z9no1b0DWhk3J{(y|JePt3izYZL+9iAj~v;A=;len9AO)NA0BrAGN>{72dv7Nik z0crB0I6Rw}gpTMs?x*8vd;?@9DZ{z3?A+34n{2cv4*R#;VGXSiMFRu|dj5UjZNeSs2b`Ff81=V% zE0o#vEfq@>(g zMM$=}R(NjG8L`Rs_}9aLIel_IMUhskpy)~UCx=&=g0(|on}yhgv5~2S6wX4oj1=}p z6|7;GX!8x8Si3W%^;6t1!`?=E!LH*9#{Q{7Y>P)sKkGU=Of>g`M@n4S0xv4Cw3tI3 zBnlc~wtHhenY_r>I0*@q?BUD-}~GE*Y4s*C5sk5s9w#ib!DK z)4FHB4d%{t;?~r<Rn6TFJ|?48UETiGgaWG(djGNq<{^JZ!|6?n?t@we-lI+7Lmi+8$xT>ZplJ$h&s6;i0+NRbue1>mIVK6DZ0BK z!0Wjh+zx$<>Zv@btD4{aybpM3gTJ1?fyer)jgk6$(9d?Xlm3zfzx}ie#P_tr#rshY z|94Lmv8&vB>t^5Mr7MUn@dN+mRptJ&kk9Mw_DdkvXY|^qZsWTT*4K8ld*I*Xmqd-$9B=Q-;q{i0*gpk?X$P;h z65JMh%K4sO%Rpq8n4 zTPNra8Mn!j@3|GeHA%hdetVUp$TrHNy&XVxYf%76qrDo{$|jYpDr9RFcBumFBXfui ziws3Nrlm{`N)M`{SbZ&#Q5uWlFvrC-yhOMGN7e3B*ADB_lnlxj@+eIqfkQfaqCtPVXRLzOC~-&>QeI0z10hT`>9=_hRSof4$l=uROn1&WAF z@uxXxvNc75{8GXv3jR?fxsp6=3@J6N*oah#c&E6SM-t{!;u`xP(#D0SmUCew6F0GF z^J1KiB>qK>^V(hVG|*@VHAR!YEts`f{Y5MZbwJPS%&kFZSKWcc8}sDl<6?3aUj)Ni z4neptQB@xUBT*Reai%or3CCh5xDv&1ZFK~{?im=Mmh5$J<;Gh$K1|^ z(VhC`rqV_Zks{GS0G-316ij0#kc#aQa@ydaQ~MSN!aqEpt3dpR%uPv_)K!*)X(HEH z{rx74ZHwG0@V=b zfe|-NGyo}eSxSFt zm@6xz@oE&NN=@{CDQ&-rZ8*7EzZ`)X?%oLXO+^|pRq%08Xr<5-3Q9d@Y~B>2F4?tJ zktIrtPE0bO#vLl|7xAAODSRybn7|};On;xMrl`)$u8E0%&Nj|I-NKUMih+k~0h&@+RDguLoK89JX+W!Fu#i^mV z>dG7=rS7YCCwHd8L=UUpzd(svVQw2PT~kCclMzv*SbOqq`?hGD$y^HIoP?#23by>k z`7MU+7i7M+@d?(>NnvMk9VZ6ls7{CNxJsVTEuL(GTA})tR97Hb-e5jgHEu#*#l?#K zV8*Oh2>i2_xLeSqr?V8;x(9@F4fyA&5~1xRu8a0O%7}?s(;q}z389{<;&Wh^jlyxX z)iTLo%X$4AT~XlAG|S~e#Xe53-^)HIK4tqV15T%XA+(!yg7M#{rQm6M7=y!=-J`%Y zr)Q!hjhgj5)d9#BE1F9?pNdJ~`y`B@1hK4Ejz`vs4qIU?-J*{rB~L3LV0hQ54iDeh z;Z9S+yc>1DwTj25J8|UPd~#$h-Kx&z?N{I|+?q;k_^rmLHLzEO6L4D!C6}~eTWmcJ zPP>K_Vp-0@?!T6f{-O2nb8l?uvU+P`bpDk>zxVT@0<%({HTu*(yrzyiHIqP+YROcp zTm;lWY8dhGYv$cpj9uBh~e%s)#Y=_hCD z7{JzfZq(HYGijaluw9Wxz1^fEjKV!>$X;}#24#U&ag)2K4Lm$`H{MmS*IZh9^84Cv zP+(gElW&{LvPyN2r9Dj%nx}z{>2Qw|tReR=i8*juMaXH(d$@{TXZ@_qoaEuT8UO0A^QW)hkrtTtOZrp=6bGUMu3gva`XD$RmarTpo@nyb}K zt?DRyrRpmTM8bsvfZPg8zTIWRT=gL1Xq>m8e$9~r-F^u|xl_&ZHBEaM)r@cgH054^ z!?GY=@q%v?t*X-0R&4v=+=bXMH9*d+q$HvsNVF(r)%ZL`zf^EEZT!cf_DXC-!6kI+ zkp$MLl8w|M;=2wnSvZ+mrirp-dhp8ub0VOLB21x~ovO-~8c)^AJ}Q&eSjyX0H@wby z(eqg5G51KB3{qjG(YLH!0!WRaT> zXGq2ZEL(F~KpIfe8`nT#vZHI>;}h6rW*$(xxdRC$qT`k$MGKlA&&Rf(0d5S(9pb8Fl=z)M55+<1tb~KzL8=&qUtQTd|J-OpeI6CGkZys1q%Zji^<-V$qV{soM9{?7ZvS z;Ng(r%#zzZE3GGRqG1V^@T16JQ;qX3MiqNFRi~OO4qlcgbknS&7xy|ux9I9Mue68z zFhHt?vUVHZ_kkY{1>k?w}iB>Kb^Nku0iF~d(k&Ic>Uoo^lpFl$qTz!T7J4H_<&+j zyvq>k_!TbL!XvWg#NAyB^V*>(_VYX}qbY2NHVELL3Kg*%kP`wA+L?JiJKJ-MG2`uR z{T8||jw0iD*B*)tPPzMb1&P6N8@Trnf}X2zaKj&h+KaNk##Cy@fnT>futVfyjCw(= z;t*Rnkyohnca8-^hV?1&=5>rczA1qmz7k-#Yss1Y)$&JSHE*{T`bLbT@UHM|Aos;p z;}N|ZT+kE&B6A?`evSW9FEpAj`z~|HVA{RPO<>y4E^!T~AL-r0)+=PY(9|}Or^Ov* znSGxDWLS^Ve%e<*FaNCy#~WR_JDZ}na~+@hiGc@5WGZnRLv0o!#nmYE{qHRGBYJnD(%(Y zH2O&ew|TJCaKcm#=(yxU(eVx%#1^mo<`gFdpp{~A(4&<9Zka-vl4Vcel^NIZf!9?) zE@!`~4KIBHn?Rk;4J(rcMk-51Dl17U>lI%FFU>i(SmEAttoF$pO?3mhuuoDkJU;P< zu1==AkJ~M=^|LU82oH~MZ}*l6?+Ec(KCi^I#ABc!lj0!n2*3r<6$!+}a_%sbw}Kge zcFY=TY$O}XFPLB*RW(biMp`@{xM$J4_7sgOXTw)^21Q@L<{bgm%AFHf2wz#mtu4op zllc~VyvjphGALANF-YsPkvm{3z0phwzCIwQ##dD{&_(5dI;IG8JA=HY{HVh=_&lz$ zknQpsBG~R_QrkRTMJTIO5qAayEXbwb(cB)=vWqM8u#{TxH0HNVVdD<2K|VyCZ|RAD z;Kll6AGyZ^`1DR+2n?@iw4(8AU%uFfoj$KZCG38F#ZinL!?szGaf&NJyt2G8;~>*| z!r;5WC-3bheBXZ5DhnO7anV|97c22k@-$~vI_{QScfuT;^sfMpJ4KBfQ>m5gbqIl| zklUS7d&H7h|KE{WjnKvPt{dfvpo*51#tX*C78#l^=uKvu1h&HAZ-T*^@a+^*m=vgG zUSO|T`;FPY+)-U?=mgy2E3EfJZTID!(BqwkYTcaM^=&yFIoyBE7s@;D{7}mqIUmod zmdCtg^BT0M1_#^6z0TO&KfZuDoNt}(M52R5YIC2cS)oMiK5y;tt&9wSx`|t$D-Lb) zQ^bzze=AGk0q^n4-PLMA%?uE3Puz7Xf1K>Ec~kfikUZT!-9tz>Op@I!C(KHff5D3K zF4R?W@_V4t>onh|T@;&_sY}SNvBJdMp@`~$s2gM-lW#j8lDrqInTT$tz!7FYPa~OC zWMNI2VIa#ZGYjpYD`Rn;H`z_^#aEf~N_kP1sjLk>t_|^6Xr_KUS!=5d|CL=8Z)ut8 zLS^NFoAiLunGOg!#F$i!iN|JAof$b@`2SI7W z@ajOM)gI~2dra8eCXbhIz;%-KfpRL7w&V+JJ+4W`>^elLngUR+a|T6CttHo}umGeB zVCYhM9?5m7wK-wC z)i>9e$iF^H%QwN>6<*io7XMt+yf#Q%5pBIKE$vYP;A^}*JZy`0^FdbJGYJyo%S71i zL>mNnLVKn^ueiMOwrs-Xc+R0AE{8i#DS*wIUbygwoZhInPx!=O@tPLT=P$gvRdHx* z{5(2IUoioRC3}kO$Ah`21V&$-cU^=+9@hRVU}yIyPN%N_@NoOT^eXz>Drf?}y@$R?o28e{s&(>Jgz3$5%XuM4 z2;J{NW;qA_p%&)cNE2rzNA(+8Ft=J~?aJFifE}V*<=LkMY6zh2^hHM0~Tkibtg0 zM}}s~$igDv=*MuJVbJ z#awP|AH&Yw$sHjm(KFk>@iB(QNbz87`O|!Rr$Tc97~~R{7z93O$Wv`kM(p<<$sGc>?P9K2AWyz z{r5Ge=(-@eira_!sIEvQ-GwA=B zD~ymy+~J#^wcTfB(=PZxxf#R_63H{hrXesVDDwxL4<6CLV3e)Cz^tw#i`p@@0mQht}~b%j)t#owt+15+<=qmuLmy?oHiiskX?RKgQ&sS zMiXE_%*S1Y_RV%k)K zs;6SS{G2tIZ0_sPMb<>ajy(?BXtblUw30Jjtf(PY^?b7BqG2r6v5@8U;WhjG4FjV5 z(kBsrw06}kUzPm?ym9RM2Te3YJZd~;XD8)Qtq;ZOaRrru*~@PPq8-0e5-!1U;bV19 zMgOwqHQ3O8ZrAvX9yca7!@>10M|}9SDtUnthqPL;zcAJ=r=L;l^8)8= z$WHWUoC^1n+^bz`6P}io+Z{~#zC3VzSa^V$Ts&!2WUi$`Be80GCHkfpqD5QK>{5A` zLO(z)GbX->6cIcw*vJcK{@JI&A;Ddf%<+Z+_KU~fa6;(IH;3z3pM0*toh%2@`~Ghc z!?{fs6$Eg_%zFlKKl6qC>I3wz%fqxZG5EE->Hx;vsn|wwZ{LTGZHzy!fS+pK4nNla z`t=>d@QBulnW;%J7IKF<2Qjsu=jFE(;)YKD zU!1*Tkfc$xEm&Q)ZQHhO+qSJP+qP}nc9(72>f%(t_hRn7Z)RfRz7_c+BQnnVlRMWw zXMZQxnsS*^f03`hHiPIgFwf~58HV%6vCHHUXKm4Qlhvq~by9IjW5Iwe^hhSop`t;~{K!6*Z!W9;7LgM6p{FKl( zbx_Q}w&&G3QA{K=O`p_7GWfKwzdp!^95kDtNR?^DkvB%~-m~B~_54hzf*cty%ed4vQP6FCwL84HPN-6YV&Dq8DAxq zQ=zA6f9WRYdNTed^2{(T>Cm8jEE!8~6ie)p3bwotF!v}BQ4nWL9f_vb%%AG&VqT>vx(sfV;7XR&k_j?G|D)jy;dk6 zjS0&?!XDC0%XY7BrBad_&y}uD9f3~F#Y-HYJ(a5Pa(#7;H8@K8e1C80s-z^ES4I_S z+RP7p`1;QN5V(hiZwjnjDfAv0E*4*3o zu1#aDctL;LGFxz0EV()4p$$+GFU06cXXpv6O@d89zs5_rjbQnu_Da?^OV97%*MatjWx81s9pv|;U?9Gb5Rs7J zJ^*}?_c^ze!|!G#$s=lOeg3qsjNBwrD_F+-I#eh~IOg9kz^A)4PjPH8uz;U}aohXEu!)*5{z#|NR|! zeRaQe+r#6%!j1JRHn}iur$4yE$=&Tp_b=I%>7N63E>ni4)87O`GHKg^tTz32|GbkS! zNsT0#``T!5;LJFmIa)vVuqzN6W5n4%{)QK9*sFeP;=t(~Stx)kje=vS=C2~W> zcJNu<-C>uhjPX^a{iJ(8U_1y5q%bgE06a*CEZ1`&B+78ZclMKSE;O?LS!1v@fA+vr zw(NQNfzSZ6hDGpFy{lf^rr@F5Bbq+qRuP0sQ`6O@toTL@`^9{f>5M0ogzm|CuZrsaZi|873${A_0PX$Vt-sASJ&ZjEAWo&FB`=z8Q zF*0}nxv6$uOujN+P_C$-qjoJLPtqI7GIOYc2{wr}bI5g(6Q-Utn4+!~O`f_InQJ;u z`>B+U1$k$%z5m+JRpam;CK;$fnM6q2@g=+JE8?jMYKtHf_Wg{=(x4CwDTY|6!x;Q@1nV~$@3kQ+D>3Yv*(V3_s<#tOo%KmYugW!nM>jMc0>(gdEB{w%oZ5tR!A z@$`yPg;;aR$h>;;se7LGSzOLsgY9C&bd+I^|PX9svcuxZt8<$d|t&Fh`@DHko`u@sA)Qe9J&!`m} z`Xd32 zA9!(DbWL6>t(y8n$S7thc6fQB9nDEc9emkkImf=hUD!{I6fQ9raR+d;OhmedC7pyd=N&Q$GZpK`&EnLXzE4Mt-htm;u z8_EwYEQ7_TB$+@-V^}c?%v7{!I#c-rMcpE!&K5W2cIYt)rYKA&PHN-Z$5CN3Y7yQ8 z=S|}wg5{d&g+Lb6XQFE?HdK`=kxs~AiCXoRrZe?ue=j9Znkl(@sgwovLx;M_i3Xdu zX;w^W$m-U4uPoo1Lz^3{p|2DzrQN1MuF39w=I0M3=SPp_b5}*f))KD)G?#PeQlVwF z$xa*^=ru4ZJ6xm5Imh;O4qKRd^wqDUj8G$4@Crr%gI!{UJEYrJ98JfaYa0nfQpBY< zRK(b1GcWgX_GGSXTjWGAg&evn_F1}U?Qc*q3nC1<^7ql)nPT)RUQxIA_v#{A@2F4; zUz;P8UZW!%x(fH9;gGnyBFU7wgI<)g29X@PYWG`Tvm+yinC?Ov?W%R>KLUq&-;LdQHezQs5lDumGgm1`Af(b&w#da|^_Zm)_hmw>#)` ze(EGvxm$larzjwD647_I*W&Rhseg0T2g7`c&QsTl@k~~^02l>rT`k5^J$e(op-qcn z=;_hpqetHk&HTP@+iF6+v>FlK)iP_apP}!v%h8d}sJ>Y_o94??#ju6)tFpPJDm_5Y zjk!CH?GI^QH&mTTg|R~Uugq+uO7xKbjc`XjAicMek^C_6_SYG|Q#*7GlExJcX` zJ~ICrl*pM#>3pcJ3Eo@sr!e$oZU5dz8``a@G*#D{LWYPrZ-7yPZ(2?ln#Awx!q(de z#@+n#W}R?Sd%PYZ7O^fD&CYgNhAWEaMOGgs;GW1E593j`&@pR3h6p6YeT9405!aGl ze(%>BlO~b+h!lO`Bl3iau+X%c@wc!F;ls60_r3!q2SlSF%G2dPk}2G03PbS~^_Sr^ zLH=L@v%o;^d`( z6moCQ61lWz0!|Zun1fU=^5u{o(@XNnFa=vzgmOtv%YWW~YI2Ck!DkUUYxx9M`FbN&{y7L3;-UiD zWEGy<31%qv&!ZLpxcTp_nBS@z(C#r{p0{)Wi$eIGI-_F5Vt z?4ziQ{OJqm1(GsHc8kmT+3dqeJqNH-xmw;80yKf;4^^z^IDUzfH%vB2)W}E7Xs2Mj zz0J%hH$KLVlhFr60O1{4aDN>F5w(jUCpMU;R*8T;fPHPf_dDmj4J`ZnKV{hcYsR#m z&i*q$`?I&7{wea`XvXp;w#Gl19sld{;E&aWiLtVQlhuDT=6{6$@Q?f-idFun1rqJJ zsZc``yq0&lRsmdD4p!+-KGq=_y)siXt&o)`w92SQI6Bi&2OF$h&~N!mqIuq3S)awg+hun@?!ds zMvJV$OiPa113|X%9mxYiS`r71(YE=vg4fCkeZl$_=dNm_1OkMb_NRVCp>0PWr3m_u zp{A9#qyeVd$XNG5s7V^vnJwfTs$q5v9fx8pS^BC&&K6HihXz$RAln;DS*J61Lh^S; zlwcwQ~9{cCw;_i6z$Uq62U< z|CJStD2#igBp%&bD8;Nx=I8zsd_@vN*S2YSPHRVFbY|jej^q;Bmf$UL3J}qqG?!32 zhem{s9EzigPwVtxbCs89DAw!a_=6AiCW&|ARK$T^H!nGW0foUmPXS?LOu` zjI@3kpwe5~K##F1X!W!uhsi#hO=ERxCk|{=o%W;J$jkMf#Id8st{j*Z;b*+RCVZdN zSWR<{w(NpaA-y7{ZC28dh0xs!>bR+u$5$Eitn{HT&{Kt$`U1r*VTsTyUuKo`(jRO= zj4xf7*@!~l53C`aT=pSOf6|tJ;|=V=0+r6}wa}bD_17bAkrjqI4a<)maoKG(Q4z%- zy=Ts$`|tE8b zGcZYfQOct@O63j{Mvm#2z+mjq0OQHA|EsW0D2*$Ohu<5Hr5L`cHh#G$96mbb8fi#L z&i;#^5OPKVeMhJiM z-m_wIUA#G*h@t5+w&k$B6%XWa+d9FD%|Goou*Simdn zVLdi&8P_1@D{}ph`kb$S^(X345=j&w?H)5|p(n@HWrBLXlzo^tjMymr?<(7|&8V0U zBV>!u#4OkNa!OT%+Ic=9Wjvl)vapHS?`-#TyZ?GdOktk#boe>kRsKv7g#V94M99F} z+R(u0KWWH6zJK_~{SU>8I&?rk&O!^e)ywmg=UjLA3d!nw@!;jm#4rKwxm&O$BURRB z#lA4U0bud&w?H4{4y8-(yZ&j$*Hb(%GaP25|05t%AEl9lo!lgTq%BecO^LPyV?N)4 zscO;W(8^${8c)~0I{3adFeTi>ykg5c^&$k(fn{E_X__;z(87cq2XZU!txN4h5`??U z`1bi!U0bDV36UnG`Ua9~KZ>k^%$~e9I6-sjTUtEA2TM_^alB6Tt8!~tiBUTmGk`#k zEdKM568;VX4w+!s6WP&a!pP!5Zk7Qp!Md}6W?%?Dj#evS(;;anzf59->GJ_5CG#W1 z>y~~$AFd`6BV_t}D<@xH!e{uY{Wmb!QKnFU8^1oS1!IoB$-q1(NHd zk)L5iNvJ>t>|Bj#yNF}5S>41ul45Lj4)-vDp};Y$>@n`z6cEF&Vq3NlE^Sw{wR9k4 zhItN-^>8EQdKFJCY5a>r-v4bp{$yw(-2WrzyFbz{_J8~}E1KBYx&H6n;veNd{GNuQ#aR|_oQCFxNi2zbS_T>zmO>;LEG9Ie zI#-me!s|*YU`F)}UbFPfWT)H%jY1W#L=X}rH{#bo$c2ltEI$cpY~2oJkb=`Jh=LP^ zfXSM03A^W~M}@UsO(@lXuJ0)| zq(~;4O*8dnC}R`f$5;&KYfJ4&7=a7txYuzJ{Y+de5LBDC0sPJo?4wUO58V3@ilDElTi|LDo z8Jo+;!I%~QJ3Yyru(awCcug{{R?hsHw5e*(f)Y=YU%E}EgSj?Pn0eE&vB4-yvVmN& zpyr%-az+54&Ra_sUq=l7%khs&IrZ zjlp-A`;!i{cQ4{jEGtarnWVw@7uW%z&Q(!TzevZ0E-@d`5DdNxnh>d|nGEuEf%Ju5 zl34)YEDEIo-{*VS!~)PKv_khIU;4z?fAZ7(x63@O;CXYpFxH|zlG!b zx~~TuWJng5yhCUS#VXECGj_exM4I6>bISO$p!KzV7B2YB6P1v^ybxY%x2w(4LYs)8 z&_bE?(v-nED>wF>6-8Dlby$qmmfdF=l8lAKvEEu~C>!;|PG<$A)h;N{n$47{Mwacv zFWn)?hv&auRsymq}I$nL{t;n<{pzXf<_5#4uZECNz zK1yh)oLYWI(@2tWj>O9h%sK#FK&Q&d=W>$TD~-}vpRNws;J6*irwrt&b+kT z+O&#}`?@ByO6si2j^ArnUcW0x7S|E3z_qKO<@C;9ln5dA5Dze-L$&2`+U=Nj(Z8ha z$^6-J$#l_E$;YB=MLvuFyXNnCr8?<$iXPZWyA!#7wP3ao{PoGSVb$Zi$qH=-34~=( zvT{qim8wx#sE3ZOYX+qs?i(N~Fb+IvY7)O-w?ytk7DseOJe`9tz}a`U|Bg~h^-NUKoJ%ir-GsD@H74yyt zcwZZ;UQ(_+nbP-{YfwBZ1<}#Eow#MM+pHpuW`zhBUs%dz$)`XQACdWAfhJ|PE4qSD z9Dz>w?5f{{2`&tX@%+I1h>(yDq0YuW#U|2FV&ZNf$+K~i#GH@}TLZ-?vNOl>&`=J% z)P26Y(roN9yVAt3Hq;@z^L)Ipf zvk|(<&SJIr@BiCv4x8>#3}iY0fU}_gkHGc+_v=6ZaVY(_@E`t>{KJwrgtzk2(|7wz zcRE`-cS8a{K7SCv_!O|t_OlBHHEYNd{Kb7Zy1-(07iY&N?V>ayIO6TQs$7Oy`XFPk?!FIi4E zx38gm?9c!z6T`CXBW8*UDgGiHD72KDk269dASjJxX;(qL_mX6}gOz0y+LXr}X@ zyhTX$#??&jL485HxfaH;JQ5Sx9+oimgdD3}2B3Rr16yxZE7nWyo@DJGVA4ORw`FBm zExi+wOdlGV3~2bo4o>D>m{@pXA?Z-G%1-kN5;I=2$c4~&To-iYNR=J1RVh8o zS4BnqBJfdsl(qRq!XoHV5GdbRdbavm+4rD(0(0CH>m%89P7ibU(JVd;=Z{NSzA)bI zH7IEv1fjmMQBo~G7|F7NCr0)iDQoifA7sBkzC^&j5tn)rBIpw9)aJI-%3di^^a}Sa zDQo6ln}_Z%Fnebpe09t3?AQ&cdUHJ80!Q4q2>7{U?y$mVWQN{MF{89jx2iFFry)K+ zT%&(4Kyba{V5o2YEa3R7^I;3Na}Weo?zHu>f!P~cvqNCIGkv&ou;X^?b>^8HcvEco zg47R&{UHFhBWBdamk5XchEuf9Ps%q|>qs9PsKTxe#_;Mt0>`nZshd9jd+c}7-JtAi z2*Cvc=5%5D$LI&a{ODj&dM^8`9L@*A&&-Vy*Xcg@ZnQj;Z{-z9wk=Vw_Kqyu9<4Wr zmrrDPLHQ#f!mR9-1m%z79X3jD!M+EjZr;8KrLWAelyaB!uwB_J4N7m}J_@C7@jeTs zZt4Du@`rzfk#bl59Utc&`ER8IJB~eqj<0bDzP;beuX@-YwX*I($e6oa;_-G|dpcjO z(9~ZwcWzm?#7}!VWZW_1k8ZgBe!n_U^5Q4^ zhz~~N4t6BR*_m<%?IZmTy-p zOS^s?4c4pEhvo~)=V>qOH*t~{)=BL=r#IS2g2O@e{f~#B7k6IDV4^J6 zCXvAJT%PE4(a;T?o*&)WPh37YpQ{eQIP_Rn*Ga zSCO#%$Ow(1Y`V~nogex3#@V$Saz;pZU_fQhJxNHu$>=K!VvyPMi>5#xoI(LO1Bhow zsR=NU2q(9WzgIhpQ@7VsUxB{FVFD#g&KTr-a2b@)E+6Oc@kfupY_z=dRS5-B0!uDD z?Z)K(+!te>-5taw$D)6Q9W)>}hc1_Qi^YtjrGP)96X35FhMU&)Oc~;++HvfxAV@Hb zhU8EjjT57jZwzeRJf!3kaKpNBda7iQi$gG|Er5i8J$3!K$IY3Usm;qUD4MhnI zml+rG?sNLJ49fG=aFs$+;l#*oYMa&>IAc=aooSoIEu6p&bqnokA$L%tUp{#NsXG)Q z>Msqr2i=@A$;Vu?de)w*Fp52_xN~u-%|4>>e5;4Bd3Q5@H|g`8xX>Js)Un$s3KcMomC>@Ly{?Gh@m)EjHv z+HIU#K`Bz1%$0n~O+syPAM7z@Q0lphA3Z`!P&mWC;*f#KU*;6$K_+8zo}v9sM=KfP zsrnPcCcalaf4br-GDd15Y*#P$bcWWVP;Mo%RuT(=HSfIt#_r;t06kC$G&@R6Lc}%| z`x}NmeW2~j@{$_btiuO=CeO?Ydix{(lyz8s?{LdNzRpEn-2baU8B#;dIR&xX$GY*B z7zhy5NJ(WWslJU?qcc!FT{mTjz4*gK;wj8{qT)FY94xpdfwvSdeD(H^6v@KvG-M*N zwGGO8na;eX4iB||#vyLR^O1VNPo8r{ex)zjTPpZraUmI|ia&naN1^n*dMTC| zjM!vE#r#(&g)b7k7{TlV?0_TW?8J-+N3P0=_Cih$ID_cOMq0o1YI_Iq)`s((fm2LB z!KsC8N?T(U6*0d_83w?2K4#A@gelyMA_V-452|_ccVQzG4V4fJeL@;3cjmQADC7Hp zf9reMSN@S~$*VV(N2&;cKNCFV$seXF4-fl<)9i-s39x zBPDBEA9aVmZ66!5zMrV>Z&ZCkHVyW2n+U#PBby^mWWf$OZjC%~u%E4_YI|3W=^%nO zcvxyMA@QY{ace0-Su3Rki7_QknAK1-_MR^lIvZo9Py9E@=F!B%^Tw{osY{go?g$T# zAe2uqhA6l_*nt`A&}*@e{ZicrA8}no%C3SFg5z3I;qM_aBBMxvD3G(qq#|eGM9LQ} zsE9;v%G0|SSFlez^fb7vZLV?MOaebOj$w)x>XbvuvCS_lP{oVK{59ADPR2tWt=wBX zF^e6x1QtibRQ-`1-_ZTomn& zG+VV-VXxy)e_Fe&z}>6uF5FyS-^j_dPOfgQ`ypD(sEbkX;?Eh<&P$!W2o!9g-US6| zstNdPUT49n#p982Fih|i4C8P@VH9uLg4kU8ZG5_Wz$F>R?@ffp@a}ByUiK@*?K&jT zT_XAXQY|TvBIr9wR_mA0`j^NKvF67zHlRJ}ijR$fKo1t;8JAN4p3!~@P8tlEv1+EO z`o-d>H7?+>a>(Ks9;eY*<8%vPa+Aplb6A*9UtPf&5%*AZM_Gu;T~|c;H7}!Wl}Y4I zMcd2=iB;Fe3XOC;O1+Vnm4(REUGa0jAsSv7oCHb~+X#C>6{gxo!B?`*why4YK(bBo zH01-9t?nYD%XCQGn43&3H-^||%i}>D5#*-~MfX~Jw+~$0M0abjYdV>@vdX{VOq4F=ANd|`IV#E?*n6Lg9&*Eqk#JmcX_(ow z%O)ZfMxyk~SN|oYW{o}a2>yv*oYNT0FIwh93!0O28tezA7!MM$kHqOt={HnFj6?qk(tK$w{&O zAk@mxrdt}QeQgojr-G}em%9h!w2u~sbTspD`7JE3+d?IH7oh118a_7DcZ!BHL5q3& z=rn3gZCP-m5`@j^BjkuqnU~aU4Sz>Dd?Y1mGL)E+%c=>LBHYgt)HD|}Y{}Jat~|Im zKOxC%YF0YC5e63q-McX0rf92wl7+s)F~ssFF9LVs?MP_NY+M%MkR^p3Sh)Lo$A08} zvY7_`P(_($=c6v4ZrV#8?JQ*bCK^slT#%yxuY+ghMcM2^eRi50%A7^h{{^2-UmygB zq=b|vLb3pn@aXKEgOAo)qCt@a>GOm9u z4mY3n6MANcl`UZZAMkGQAPO%dbz04ZFR?`C8K(7&D1q# z=4)bmSp&+)yx1*L{U;9l)Me;xZF6U%laySRE+dke;L(OqS4N~0_B-$(qals61$gVY zjXI)+TE)KNkeD-^^TNP4`xAylQC3NIC0Wx1Bc#?sk)T7dl)4nq>mGljl!D6Hgybsp z-XeLi+RddU`D#`Jq%#ipJHIh=jfV5W2%)1hIznsi0yn#UevO?Kv{XyFWc@V0`b|E} zQRav!*b${7>f~aAve;ihLRw&2AS;*WsoU_b`SgX*wS9)$I=3b(KP$X&;`sdX!FrmU zeTJlpMbjWhadrzaIA;TwIz!#E^Uu_wG zc5ml4r=)5r*+r5e(2xj#G8~vhAc_CJnszQ3wK%yyOM?ehuC)rADoBb@m_>dcCh4_c zO9MOE0+pgx#VodAbe0Ii!OD)#wTVgqw~4og93*{LP7cUxr=)5n35N3>ZTjqD4JJb| zkIIbVN+B71b1_74TPLZ1DM?Ugtt<;8o0G8_YxVqs*=C04lB=UZf=qDxYx&ON%K zYsOb@7|+>tirhEXQk59olGY3Q^MGS;MK{RaOaSZ-r@zNMOe~f=sUyM zmP!N6%30m3bf$L6^M`*MDM|L1tU-U&&3>kfE~t6J6U|E~R~JEpzAw==|2d&6_20$e z)gdmyv*o-S_~+!XEU9tYM?xdRJfhj7n`<^$5~7{F0IO3FNp&T{j`>>a(J+}4Ot({S zXw*v!S9vozg*)Q+_8HvLeFV=B3KYJ)eE<|Xr8`Wnv_83ZzvMnkkImtU}}tG+xN_hw(-8jE-dO{r)bQM7Sfibq|9 zkN%!D^MUykg%OAItc0i;W@o)^J~H>a3(E|}Oy@VgzUkss57ev}WT}Mr!RGrtS!xV- zdE@z)J#)tp>^?fC&a}klblzuGk(0_Y^Q^dUVtCs_D4V;`FDDjdw_PLx-?74wyG&G! zp4Fa-L*<`jV>b=ylb(6sVcoaEW^`j`C<|5nJb_c$?U?}uCHk?F9pAV?{3*K+30&`H zc3L^2b7(d)nKZQ2C79r4hmkcFr{Bb``$go}QXdvcuO5_*lMro5cIBae9f}Gz_&^-& zjI?-vZpWR)sNfyZ8-38nvZ)uXUr8MOiAsw!L84?6sNW_|98uF?;X;$A#f z9Wcen_>$F2GgM$gSVg=OeVg;0!AdsK*dvj{^7$*xYyjhLKZKR%v@{vAnT5OeXY4E~ z;4B0rlsh-;y02kLHR@Vy-5wGlu-sRR~)bk;Srt%t7mr}?O#0Ck<*67c5g z!~2+GJCd)(zHl_@`K@rTGa;yfO~R{@O(LshM!=eCX~=S4Ih{EI@EB5_fD+|k8~~=_hs<#Jy;m2 zJ_}?qvr!-z#oZ0`u#bZtVg>}wIwW{E_^1wKS&(e`R)Ed9-mpr?d~AZWejH#w#yQ9e z_}M4oat=j2-cp5dlp^|CEFan~DNuf37e7mISQ#`Lu8$eb36B3PdY7K^dYCmL&KhvF z{;|+>CKP%#Lh@lEQk|l%&jKM7Ey{tnPqb%1B9pG+QQ-F*}+Dx$Bsa z%7@Lkg9l9i4OgB<`f3%%FHB$FP?@zeeNuAG`Hm-*HBjDvND?T=r(?u)-w1;$HETvt z5Ktsk9~3s&3*OX|5;Whsw%jdnPPTu{WRV5qh+aA3HD{1JOq2GSa+Ml6Y~eYsA7rl3 zu=m%D*wgx|u2Mf7|6c)n2X@G7(mzCT7Z?D4qIaF~f*?VaZB(6x3(JCq=sR_=f+nKh z&tQCWglsA*mI$8|$muK8Dp9TppYW$t^o8Oj?<)nrK={dfz)9NB-|sQfz;lB!>>-r< ziseC4_g<*rx%2{9>`9vXQxR0u2z+}e-?;w7tzX{!ZRkZZV96Y;sO$aNs-&qww&eQp z-b0uhsu)-Qhs>$5tc3?5>V`TmX z&}w+KVZXi=Bj?7C;0;yM$HU&Y^NYeaE zWz_<6FkG#&-h}@l)}rbfn6X)-S09Q&e^R3xd)C(ixFnup6D%=fbDp$=CnTEM^`2r%t(`^_- z^ZXFRmqDL-mZ(V`JyNd7<64HzjjoCvsltZ?; zf3H;Yd(uLSukk_)6-j24tH5!Ypn`GR_I<>Np@vLIncsbPoFS@@Fv1IXcUzfZC9NSM zN`b-)7?;u%1DZ*>$ngT^73hBJ!t9?*4P(Y>!c6LgK}sRz)zIZMggeCkE^sYQ`>j{t z)K~e0$#E(I@anUd_s|0kmYtI{IcTaI5tkw@K=NoJ=`wj!rg_pt*a#EYA~EO_)*`U} zjBgbXNhZ6^6~6ag?d~o%4OzvjMbQq{l%IX|TVXCkfl?kfA1I&Ew3S@Pj!S09cDw zhBEGALhL%r$FE4QTcENX9mF_QhH%c5gZ+f_WHuov0V84Ze8DGyQDxXUsq>J+q5_Lj zZkNm>i?W=%1PctAA_M}YiK%5#)0penHS`&Ak|I&v<2Ln25kmU_xIyI6) zh6`+B=pQ7u$=m8b@jT!LchSm!$p!f34cB-Z1udBHy0eVV?unqB;h$zsD=+X))u;Z7< z2PE+OI4+Nju11DYOM07Kmj$7}N)lMVF*we&LIx?qz@7zBGdDqAh%i5eIf%8ckvQK~ z;*^J8w0!u1JcrVbTWskND;Y>&8{mppCV%oCkPEU2-$6 zzQ7liDyWn?+aPVYtne4BHPyLrOk_I@*|z91AS}-~q*YSamb3yI(@{-$KhQc&VKk06 zNT^i~^*{EnbCM<;3>`+)ldjms?s&f>W8}{bEF>3A?b8f2(oNMfkRU`tFjA6_>$pRB zijW89gA6Qc*t_^uP*)+XLC$gH6&3U=3DKmXrEp>VaC`<~QrGOgb?c$~l7wNq6)3j#+;1do%Vq0JOP%mgPUc_N?fLMATh*R&>f6<-wLXiDoP14 zMIgWHuMo;;6jAQERw}cB>hjl1XzTC-8rQ+{v*TLp0la!G0A^~IXXOn8#ridhR4Rki zxhxMstmrAZrJq5XK=g)!kEFszsTg3t7^n2r1V}nTQR}S?P~JHW?>KK8?DYFQcrtph zb^*Ox1GlIbn_;~UhUqsVNu>js6taV4xIA+jgZ&HRo&=SG(IorW^J8uL`I8HQwKTvk zglDCLrU&3L38)B$%8r<m#Gw-&S#eiYpx#~6RzTe36ZCz<1J6WPTS{h^&)Qq zq!E<1VA4bTVx4wBh-#ioLN~$uFnm|gQ?&$QC$Bu*>7G3$oPr-)AgN&cmt6s+ZUk0G z{3+dMj~oj`Jln*11oap<5A9`!ldrJzF2_I}c%WD#E;!6lX8d25Zp`S@Ke0<1$Yuw) zflw|}=~H>2pw=GR&btAgE=9~udIK9*D`&@b2hks07M64XhX?uz$;LCl2*d)%pQd%o za6<1+Ka!}$PELHVS;%nqQkg1*-qt}5C)qlLK?f7F>gl^O+3efC!lrkG8(&eQOnx`K zZi38r*5}Vz!EZ++F-8xO0$QTg(1H#=6g{QWB9R`m1KVQM?tCIN_%QBoe)l`0|1n!6y^D}XL~m0+9a)M9n9YMWb;YFqZgrf@tpbNd)gh6wF)9$C*1?_>i zJ&D}a?LmIN!(<DE*R8Ibk@mu29lfbD;2zR({(zMV+KhDK zN_p0VixIp6BG2oi{03GYYf_6QDae43$CV0ODv}9XQb#hBee>`Wep?#LJ)|OgSQI`k zUlR{k5q>a0nNz1`z|Z`J;jRV7+Jl|dh1>8K5`7XYKa4HEVkNI)MG!;J?3V+_djRz8 zgo&T2kO>9_BbhY9h%`YhypNzzm)22>a`nY%oe>+g15PkbH2WKu9WYyf?TRfq4=`Gb zlvpJ8`ma~yznW+mJUG>{Kwu{5fHzJs{8 zMYZq2uN^N?K8isP7>j?^(L>dQ7^dT5Bh~;Zcfu#m0KjgB9IgVWw_!ZGz(!rMq7Hnq zcOLSS?1GQD!xl>5)?Y!`E#C15i0mP5Lbu$zgKrpHV<6?* zYew9NC##Pa+m;$?WPfc){@SyaFNCi#0$k2n`wnJQ{$x2O^nz;0XK9E?>IS3Cn6EsD z3_sT|;jDUnWvV?f?A4|>4SR(Kzqr&E$lk*76laIjL(;4=E@2`P!B5oqXQYY z0LJJ3LK;rNdf(I%z4mC{PJy@;_bgI24py*G+cXMB-ZOCwMGeIl>F_oa!KGERO*T#& zXY89(X*|FR7o$bHW#h6?&Jl;~6Ry8m-QH!CgAjC*EB>f8?nr0MF*f*!J<)^}QEvEN zw6Rc&c(R^Co%H@4_x_#tz7y^5Rr4*D)&0W4ZRa@jQj6p$qn=``dsEz+o>UykshMa(!eV@;}-*?FF3|GF^mxc zwFdgAcbYemwInT_O`q(*>s!>U9aC(2j#AgT<#gWy6;-wL;(@SULD#q!>=p4Ry1r zNw17CP46}+A>YxEpKXwz?Z_{=cK2@rLcbRXFS(UgJsgFh7)}|3 zqNB-uI&~~p2z^_y7wrt$uJzp}Y&S_ARDHo~L=s=0M6JL!3xLqDgD%*u;~KullXNau z?_L~IKH<#Pz}lRBz=Opvkb^ahY1zy+C@!@wX*m&qL?9TkcCJ$xFZ_lanOj1OQUrfv z1^0ydh(UIXo%_xZyn;gd_(+>uJQwX2`4IJz2LI;Kbr%5&-S@*DhB!!;PRon(cO;o4 z{J>Uvb$r%wD53xpkwMPs@u3rV1tIqiLH>Ft|M;2gQhX44+!JD{gBZ0qcZN+ricjwUb?p^ns&xI!W3?i`|1f+6o9B z?QlLxI#3hRsTVcc^l060h4GTbc0SRTM%i?rV68tWKrUn?%V#7TR5yV{rYhwxXGAfj zTrfys1VSZe%Gaa_RFULhrnFVBbkEZ%_iId+JXNgF&tzOFc#XTf`@dLw=OE3VZCkW# zqsz9sY}>ZYE_T^Qmu=g2mu=g&?YdR(ytu!;PrSF^i5qXk`s0gOUycJ#u%48fP+&*1V zt@YxlVnNtMhFHQ+SX6+|knkZ7DA}k*JfHgv5I$A^iVVRF_-?=|LY|tjdl!W;#P5`g z#864?Hwj(dK(||;dK%d!OWm8IG*?9Qa$`Yc3A_arSXk;y(q8yNE zC~}a9kqV#T+1!#K+raZ+cSTL$r6E(_v94LPn>rP|%ad5=d}*+QUntus5eogW$Pi_1 zOCX_BuM$kdIlL>K8hPz#$l^~zojV1_hc1w)oT9%l-0L{=alryC1tyb!{tlJU21_J| z!5sFK>{zhl=HK~gLvHDT5okj4`yz>C2v23-2?o~U{Gj5@mRSa+iig(szfoT*)`Ch) z80{+4g3A~|E&NbPexdRaQS|2dx^k#UFZw(XoJ9kAZGy*l@(Xi1UANd|=zm2Bo@r6% zXFwYcMl+2B)OFHf_IE^OL5a7w+;R5L#p%h;5I-Tw_)#fN>YT-=WJz78JR$#gwu@l^(Zx62}ztNHuNhdB^Af5Yv_C1rc4P z&}W9=mB~;1g#o&b9mu+@In0C`%Y-YFFP|JckR^p>#EqVrwd7(j;=k=};!U5#ze|Rt z9=t^+0C0dCkVUFMQA6I}YK5X*m{F)u-h)CKo02JjF7p`>Yk8Jrey$Lc;{rm8=O>zb zJkll_;ZYsa;dLf92L9t2x&a%z6uPhkH>|jzu(;s*Im~?M!RG8T_8iTakA?B)Q!Dg< z;#eTH;DS^a7WH-$&WYuo79{%#c5<;wH?bqGlq#B9Hv4S6L7@~GyB^fv!AE-oc5R!JU*4L-GhPa>~HOfeR~IFk4Nj?cjjolp3IL7K)Ol_;JD z(_;TCCWno(m)B^^vn5_XSFA)FqqYEs9+0|(xd9Q>OaL%7M@-ugQ7@OGODH8|7~%El z`cLwoM4@nmk`N&VzbEgV&CW5tYuexb#hENu!V?@(ERRl_4D%;mY5|wHHV!rKS8P^` zoT=RKs@RB~Cc`3@@7M(QAOa_NkI)7`i~0Oe(W{h_HBdW$DJ=SzT6e)&1q`1ohg{p| zNUg&tTab+@dfJw*fJ)9;t5v>?2ijv|^1k%{a4gkvYKOYn|Le+T{2AdqjjY%RpB>^f zsL?k8R4UYmeF^y92UE4IcFj9I^kXBMcX2tscCr7jxlbmFDQf15pslCI+NYo2)?h@P zQc5M1(hzR4Sj-i2R2RBkh00^POOaT=tZd&wN$OZ3s~XC<421%U3{31k3q^hL2~UBZ?hE*)2PWwn|bMKDvVk z3HsDoK9=|5b1RB;I`4s?mBNJ{!e`i-zA$y&!x>zPxKGH1c5MTWM!Y6{XSxzbpV+mZ zsI}g>%bhL^XZ9A$vs_fex9C1e$lhEGRLi$r1F{8{Z)q{iUa_X50|_%l^|K83t2r90 z;|ozm*6)8~8oc5U^DW+=zkU!KH|b)iH+iSlUY8O5dh?Hu(8W^U1*X92x7OQXL$yKw!9#UDm*a;8|co0Ik=-&*+(Rz|JdRjEqWhI4PK( z*SgqgW@<`^rYB*Ji#9<(au%*HB^-wI$R%zO5qX45T4gjxI4d#7%xUkdgb-?TS#?zZB{zeaC7)l^-suTLW?+ zfbk-(jLwi1da4OajXHpaL-g*Tb@t?7F=E=ad5tNsd1%fC<}En-L9DacefrnsJ@}+g z_yzq9c{sB7^s6*14EpC^NuA61MK9NN$|@VoDIeZzuz@oSbf*gA$5qBBZvs)sWyX(x zNx858I=OS6pGn{a0RRw11pvVMKREOE+s5>_vAw;yld;@y8!K~rQPd8@WsTvDzKPzP_(JnkQRCr1H)ax&MuI1zfAR{g&YB};IdrNP9tJ`ev@6n^ zr_k!Bz@vVcW!LlN)T4+I6h^G0VSDXje~`ijyQ}Wri(pdJX$0=>{;m6a>$#cH;(Rf7 zvibRbh6i8^@v#BtzMa5!=BrwA56r-8Ik<}F*cG+SY|$<==_OE+rEqF$w1ID*GB!E< z<~NpR8GhvPA?I%2R|2C6d`)p*|~t1~aHGacg?)dvj0j@8mf#b%;h?w?(H% z1e1$Vr^oRQ(@18q>o$N<52wcN&u_XwjZP+sRtW1Zl{T>(H?A(Zc(a>oHN)+_bTXDA z3>I9*4jzF~5%0`)-`mLi3#&i3#Z2$kPn~IMIESOMypw|6gr`CiwB2Y`q+1-GCKspG z=!j&nRy)ZMtkW<$x}RQ*)NPNG5&JYqUUc>lZ|=uh4b>IB|LPmIA2|xFX?^}Fn=RPu z=^d(!tT&;%j^^BqYXw~zZqwM>v=4~9haZ97l(Kk0CHq6{p$73Zqx^%D8sjYq7C7e? z8eUpmMHtgjHg5f~MoEa}x&Q+h4tWchku5$w1Cktm<5tcp_UN>&wu4!V)&ez$NOxC2 za(Nsgyd0V$-cNS6J!Y{ff`OaN1>bB1m`3f+;=~^dKNc+cDy2$Uvey{vsu-YOuA}%p z=F(}*BC+mS{U%iMY5~dA@B2{%J%8Fgkcu*A>Z)?0tA%%K$w}>A|HXD;_>kpaHN!$H z7dG^yankt&C~9nIR+_50fzh6c03ED{5(cfLUlNFtMYFwSu>2c9TX-wk+|>}4`e)v< z%)P>Gojr~g^$^VC6*rN2?O6kvs9u~L+IX-!@~``DcFw--_4wcQE6;i*wLV{iUh2rd z5#3mcT_eNDGQIS?!wSUD`u-RRV=^ zL}srOXn2(Z1*}(k1%RT&28gDF9@qwDTFlH}QAbzRL!4r7R5+BMtr|GF?S%?6gXzQ1 z1+Bv?KUWt;=NWK8l*wa&O>{wB5+0+I7~fgaL)|_eJgq2e!Ab=jQfswh77)wC!9f%J0H7rMd?(#sBVJ>LE4|q$t_@UEKhkoYH9!spx z^z~ZzB1n#SaIN_kEx=^P^*3x!01t)E)5My91xTK2!I3Xh@7V9KxS47U4Nx_rai>pC zkI&*l+0IlFM$iV=)xDO??q0531(F>+a`aS-w30_$L3 z7?cLT6Tpx@)nJ}Y25)$ZxY(q4#g(8QGZAEw;W{_GIK>XTi^@^7EiZdWZ<&D@WopttPgoQ`!Ju5)8kp`SM;NTJHorws@+e@uVkQ9fx+2f!XVv z-$uubv^Hr)oNb2tc>>{cohgse4@hP%Kd~ssG zD^_z4#(oJ3fLJ_!(S;c$i|Dhk_)N&H^M+a+(~j0V^}6iLT9N%bAJ+((xM&WIej;p7>6Q&}xp{y4t;B!qK>76m4uV1PU{DIoI zYW3IQZ%LXo9woUSJYPR}akgKvhn)kMNq#XNb_e_J<{n#S-LiG#uym{Wh=ZHcu=loNMqHD8prJi`W5D%HvR*>;W+0d$iim*+W#qW{CqL2E4fEfH7uaLoIf>y>X$#jl`Km_`-tVwQ5^$2Dnz2_bNeuC z+2BV74Fs5}Pj=lbrT&Z-moo={D#`Z9%|)Zk<_A=crXpHo@U3!?NJ0`7rg6O2-ZKxn zTVwn4dHTP0!vJexG7FjCC9_$BoqdTPtFW`PDdHtXmhph&nV%sQ^|x7 zD9;56w$mHaoq_Go@3T$N`G-0%h0@)bYYN$U3VJK3rWF@M;`FYZ-Ys$G4w6!Esai`C z(<6$8V*Uj7C)wH36Z(TyOKNDH%N}bV5Jaw^*~2GYhoFl2R(h_d+3^Nraag%`e7!u+ zl}@H=PsfSRUh699X8o{>=RZ@-Q2r+W?EpqHATHUhFgnc{k|wu=tE*YKJ47p zU5_r7)?_=SHT4mOYxs_OcE4sRAbmx5-yX}Bhx^)Gy61d@gJgI&2x)eQ=PS{XnfcMo z1%IeDvnvwN5tFr!je=55ATez+{Njdy84=IiE}cY8@`~wt4zB?73`-WOm%%)fHQ3k= z;c=mu9p<$i(h4ZA7mZ}&SI69bX=e$YJCuggvg=>y5|L%|$8k;RIzwm9nhao5<6&Fy zwd7xvaqs{*R(3Gd@>a2TgG&q%LHN?y1+F>p-%lZ3O$E%`dgMe;flmojA7xS9S z85)mdRGZ@|poSY3G1_<~wIYsvFvemr_pMAN4#6PCe?&#nt&{V+^`))e8^|Hlb%2x@XnwvaH+#E(6#_x2wMm+kW)~#0E2pRKIH9= zvzqW?K#fz#t$`h;UH0m=kg~$pe8UtWvu@0q6LMEIX(82P`+&K#8+0bt8Il zf8DA5$A2P!sq=EV-gL{tq(ToTC^}7W()cr%_^g^rwsU>WA217(#tf6d(n=L0bN*J% zA>#&7792>WsZL4tl*xG{7Du5h;j1Ku2>#ipWt=!<1q{r>1~qmt0jiW5rmr!rL8_|P znAGIgKV6eqYJM8_VBMy;s6}-SpJYR121=Winep$!4-;zmKdphGBQoW#`|0Ayg>wTa z`-*k}b(iLD<~-56;0g=_BiEsxGhhRUJm7aA)eyXuO6Nvfar!)q=p+xf_wHN>ViS}B zM?`g{#d(m$cl{(@wu-Hi?6JJD2ut5cwY5Z)=x#S}iMbLtu%H9cC4OS1h8^?ygeNz) z<#oa143!pDh5%aYAVCOHFcT?#j})_@HYJhsC3GU($9=m2enl(wtVZjsfm4GMG)ZS; zxx$KHYa+T%jR=-jAYktzG(KXn^ljQUJGlj0f{8E4Tg5S}0$#Vwf!{HUJ%tCs>yAbC zMd=u`yyR0VBBJi(4)$`v1t#4Fj}FWeej<^UWL1S$A|5A3(o8g>a;nY{X=GGiitGv-nzt@1NX&bBh%F%pLMzU_d5brFiJ6|1`@x%G%QY@b z)@J#7+|xwPn;9y_n|CCtZOgU(=0eH%-WKU~2Ri648ozIv)Nth4JX*>S$NeYFbEHPk zBQZ_q?NM(O@{QNr28c}Ek#w1zm~)cA&_V9^9ra{>a|lY(!Sw9pykeZV6UK0*?R~nR z>RGOw5nAAi?rh@>v$Z@MXqCp+yGp?w*aA<$3b^@2712QuQJ@ZIpiW(3+{5CT8fJxB zD9~~LexaanO#gPyYe-y$%O-k)wC?OaPEJ2%%Cc4T$CkV01duyGk4bnclTv zC!1%d2Is3Obzxl)9Z_8E=Ry1!t2xl37Jv9UtK+&waNf~(TsB-xRd{TkuH{@SObAvv z2M>(42U^!o75Hu$E_Jb&WPlW~@biYF#JtefOO~gjLeQFmUDrXmDjH-30UAAMBt;lK4SJYc-kd4V zT`QfE;j&3IG8WX}sA?bg(O&ok)a$yg1UudcKd+#U8KfewTK|;`cQy|^UVU4rJ`NdP za7(-AtAwLjRZKEV&Ymc2GjFgwv-glny6zsfkNS+w6NoKYOI`5VT%p!^*2ZVr}m zW=T1VJ*eBWFgp)aGw~sFsC3l@)E;Qt?^un*O8U@$YIW_BVnFWCY9AUuj6XFJbr1+C z7T7qwJ8mdhlt}IQu;G>Vk4LpJ(db?v5(Ivvb;LE(nh+A-X~ld$>$4eoXB-yWJCgKD zgn1gza@$c<^|F=*&pYqb_Tlmb?~BGT$mQQr9lF*|x^8Wbe_u0B8tWU{%9kAt*O@|J zcywX<)~74p1(s`?#*>2FZ7daN{2fNGWC1C1()NTk#=Ausvl)px_^`VlBY*Jpi3gd3 zfFblKYvrovSBBu;%?w5Jz}JFwmX#R^JwSYz^f}&S*dls5GQ)S*d1;YC^j6jffTrqG z_`zlYVr7e+R`bI*$|O<$>StJ%J#xW?$K^Li+$NtlIYVb!@ENd;*r^gk#=WBlLLovJ zF(LyJgGi ztkXpt_u@+epdq>w+QffK{OIhg6YM;t6UNs|EoBwN$tu7<9J=P}w%sq6Kt)w@ zuAmX%{E6>r_eW&6&O81(y)s1-gW`|0+hj}A=55Pkrn|NG=ko({7v+LdadVZP?|Cke zbU#93^E9fG5_$1W5;#;MDmu`!<7$IH8IZcwF&}=@HjadEOzZgw+IDcz-Q#$WAd#Wt zBtr)9Y*Py!{DEJgCt>!y)ugR4LOPbptb_J3dfH7p21oZoiGzRZVS|$gt>rwq!0Ns^ z)P>h<(g6Wzm^P5v-+RN`Ii{X2Czw(Dim6A6nWN%HX{xKYTTD?n@OD9^)@ihFI~&vtp{oWVd<^(gnN6V8JUQQ=7uhUTCR1!3Z+CSl0NFQV}o z3Rz-+j;CX>6j~?m0HYR%w$SxtG&F89PG=C4lOV$$Ca= zyUczob9MBLmv%{6$k$xSBRbov>TO$)kZ0>6T*QoA#49Uky)<=MkAPaJQZ0Ik7ZJLr zYlJ3&Sl_jn{((-^*i8ofgnk+pl=}!OX%}f{HX6#4=UxqZ63_u7nkzN(rGU}H%-cid zq|_QjS0{}(=wUP>swkBW)g7vjkyiLY4?&X~&pDFZvjMwC40k(1Zv)Rx2qgGo#QX}} z!U7iCg<4yNc%>t{0t(m9_h7BhwW5XCL@Rt4cZ9iouXG1OD*paQGMYLsYtZbTGoID0 zAfo5+Cp(@n_j%5PiH|zrO(FRrhJufp1H1_9A6~3mRq{w8)OLmU&~9Rnw!`Rn^bOEy zPPF60PoRH~!#ECMP=>zNhqsUb0LcGC942CJX{=yuYHnlw&y4Wh<{RJbzmcH&s*AFS z`UywPIZ8)a*(xOMaMeOhF5$tHDD z%o3HVVwDFbXKwH+80U4vx;*%}hLa?$LWjq*=6*Qg>d|?aX@79R`q_R@;zRm2+a+S; z_=L!1oelF z3z=UX!>3I3hfa{Q@PQV{rLgTr7u256wI{~Up(|e)@2P81V7wh79K6#fAwjkT40KyA z*oX}4Li+QkkK=*#%R0qh)oNyM|j5?N_d6jH_1+wwz2j)MMO(Z&hE( z)Wc1-UfaK0ZHcFab4v%TB}i0%_2hK*sNycK#}LKwo}r`VVF&UP926FCuG8*?>y^W; z;uO$L`3oOle#VpF5JV!O-q6p7;S5ZCP4C3sn;BQ{>8iHW3(+b#LBM)CV<*XxaedCm zn&_Na>&k=7F)n-nXT&s@1ht_*c^^15G5aBe04l!J)D9SI+V}$4z;r~`at_U#H(8@t z65gc;bmh%Yz;&(-x-c$f#BqbY=~PnBq{Dg-LE66&+B8Y5a9kLd$+#!hXnsD%#TzFH zXQ75i8!EpzZ74HilR2znHigPKU6Lwwh3qtPuK2cd4L*#Wki5r{9ZDGQn3Z!$yub~PfvH~ToK2IbY2)w}dSmiZm?!Da-O!-m3lov3jEhm2 z2I4pwmNf7jSA*j!(vP4?Da%0>5z8KXcglU3rIH^u_+*FLSCu&?0%o0;HNVcsT1t4# zZJ3>3V-tp-RSGu^JYm>0sgYIfq=QZ|ODme~Et0S8UmDd;%b8F14@pJnN^|so3jxE# z0drEo8Irb6jg#u{&{-$j+Ku%|L+-R8k?0#RcI53Q{;@kFT4PD`J*s;PPmnUMjWpJr zVO&go;_RTiHiQ}Gt3Yv6GXkF_PT`R5kr<05u5-~)aSGW#a!KSp%BPuh0(E zxx-#EI4p)~?%gq`l<6g!WpRczv5O+v z+=-vWbEs2NKlkL(e=cPk;s)boKO&BDF0*9Yc5oHNj-p}saY?RUD~M|CUB(35c?c-CurYn@qwCLcKcAFNl4j#rutl~oj@#INcTta?;NBz7V=fjCAu&DS%TH^sz@&7> z>OqxdCAARloQj5mtM1Nmx+=mG))5IdsOBzrkR+^?dT71XH zTt`*vnwC16KUk7N6L;%z(x68+sKT=@z-|SQhHN->(m7CW7k@7@I*8C}B}`?F|7Jvu zGH)z17lj{NEh3i^5-6faT#u-vU0}iPWGB_N)r?5s7m5(ur7p(T5KtEiZ~|${onuKD zzAnK-Y&{)x31mTX#ngZVWNbl#BH-e8+A{Sann!?h&cPv&OU?BF!c_^zl}dU|CwWbt zE64k%hf?XcWl=Aj!jhnkySP3cg~PQrE9Moq!V!hvrjpNQer{FCy!MmyqyHvG*Wn|j z5A7hqNF7oZ(GBX|lyJZZEn0No{3uz1DI+bq%a2u5^0F0zmp9U>nx$7nR$)t51C+W6 zeaNC^G`TqR!E~M0;!u?+{R{G3t{KRWI(A@LyT%%rVM3eHu(kw2%>h22K9|mYZ$`mb z(`m6wLLGjz1XZO8>1;gmT2;iQS@ax*k%9J+lGu^g5-lEK*NyfO9msv)lQ}prhT!;? zbCMb#!4cB_*90U@mZbY)LoubV-}r9SUq0G+bs|>IR;Xod{WE4`?Y*v^mJM zjI~u;;4Tqa7mFAjthSgoJIWs*9?&+ompG`tutu_pfk{#)90XNS`SIHEc zhm_?CW-L9<)%f+K42N(?Iida6G8kVihzE8fLY|GwH9%76jg?xr{`P|ARQ<>2tZCfCd1?B zCV7v%N>}$^jqH{`_Uhu}w4rTDsBK9#W8lv`gsL;yXxfCj8TM)EyW}U%5{0ymEM-3t z%c_%B8l*HD3sD1m%=EbDB=pN6q5OX-BmT0HtuIR+>GYmnR4pD@RP*yjo@Et2Z-E^I z*0Q1`0$p@^h^?rXleUgcLp@<~H2dtfZrm53RB57v5e)Ro27T8|4y%`J(fQP?#4##tHkoGP_W1>7)-31KZ~`lb;duwfqBS^DM#)JE zQ-1JN&v5eoFB|gTQkpPJvak(b-VNTDCNkH5@Q|eST?AYmjO`VS4V}J!2soPXTUy!} z>O0u{{?~e#-#p*==KMxRgftWoJxrkP8x{`eA;eFu=34Td4P9FTzs&4~VxodTbJ07C zpIkn{NSrQ!^ijmLSJyXgyqN$&W+EYkOc2)-2Pr$or72TsxAF%oRr^+Mk7teLm4PV- zgMSuO#BJ(6gmp-A+UX=TlTv3>-&JhziO>* z;hvD7*e(kqs&d8K&e#6>S^2kl+aMvwj8tFYS4(sM7Wb}OzR{y?Df(OG0>cG)CNYEl z(nX+rb^-mMZ?bKxLU-iaZV7|uN28~u(TzeV5mo(cyHx>Uw=~M43<929WpEDM_>W#0 zPyPA`ZLlKb2;yD^+PNE7H@5g|Djp@Hk_U3W^BcDMm$joM84QlF!per?gf}(Jo%;w@ zn0?>vo$Se?TcHhn2}6RcAeE9&(5H1zufCEfGL2$#$opp6abnD8HqcE`j3&>y>H|ZZ zUrZr^qo&160lqtK*lp++lKd6rpFz^n#eRz#Qu%Drc}^%4!}s_ZGRowJXwK-kG-?75 zwoJTH&;)V$3zjUOlf2X1-InTOub+M)$}7o)=vvhh{S!VvC`6S8Flv9s)C;#ZxI~Ok z>P65Fd5(Ed_E{0j4XW=@G14m8!3`0I4IFVs?X#;yd06%Z4v4Nbxw;%FUmr@w)> zj(h^Pr2xLxMYCT)$pg0R58hQ9)hB56k#OK>IBhY>Cs>lKjag6_HEjL2x@&DR``061 z1EB)uKi5q7AC9koBA9Q&Z+w$~qe8_>6-yY!i?k}5I(p^@xl&l*Li8MIO`wWoPFp<^ ziPiqNLIuaNR8NlyS{y96SE%mW2^#N`Jye5RByShq{`JH~?J`(=y3&Nc)4@giq~}44 zv&rq^X6Gm5mSHme-EN&VX5wCSQtu&s`XHJ-^&kR2zXq;k6`37Zf70(3!r*!Ig=*Yh zu#VVX#^YLyL3Bs41fdjGhq5mC&|JNRJ_|!<)kUEQ zf|l|W3_-O8{z83oHwXlrcu4Z{#MO$|@3QM&nX`6f2`1;(&J$cOd% zlg#un))D(w>(Vs_s{r%ysd9`U+1LzzDNDM5A7in4N16*T*Uj=Yp(~iQCq~D*q_m#? zi%cy}5d`9?`jvSeyW=|uuRkxAAn!Y(yldothG`rSFM8V(6j#Ic+umEE|E^>b%6LGK zl99XaWtK<#(Yr)}^pkB8be8-Vs%CkJ#UzHvLpe>NLWPC?h3H%^}Qjqo%l7+vfr$DKsZyWl9z{yR zxywd2e%3Uu0p*0HDAT&R+^`Jh*s1Ig{3a9P$w;%B4^N#p(zwD5pKTKb-PMP^HNR$)2K^4%#CTCJxq046>oC0u8xz z=+;?X+^9#}9VFqghhv89}?@{sNdLl0%24(IS(QAqt~?$Ohph6m>0@%32$Ro&cQ<0rD_R=F#IEt{768?wFhGDJ~Rkra>iU-S%qMh zP`MTN^GuvoJeH%oN$dG z5{;?ghq0zIKpR!yW=U8n-X6)Ff$Mr&Q6{DbZV zmBaY5qg~|dCn2tcB3WhjB}#?o{E)F;y042yH0Am$HDUNB~2|}3(k|gj-_a4&CeYQXU!c8{fHE;?lnL8 zKP5~xUeni^A*(54;SbZf58Jse?Kd9BpHDmgJ_4NeH%N%_A*|X`hn%zhR3QVxmI)=G z*;PVd(77hU6$10$d8!X*WC-#r?zZFALA_O{hk3P=89Vfc*!IJt5qQeQs~UFU4q?4k zL4bA9wCo@Xa_-L_LQjZEpeGefK#;%+vVc31;Hf$w0g z$m4MCNzqc7rX?>V?N}eD{G~t?@Qy)~#Go{qDrroHnmel~I&W8yt?6I6TW8@ULj3~0 z>)9$JsWNevD3>8t6u9VsVk;t7#{iw+iQvh$oTH&7=xmYO-N2-WPEDH3$;Uwf}@30XM}i*cu>i+#*wDu6ak*@OYwOEf`35bXx2gA)iE)p6yOBnK`fP66|y3~aL92rQ4{OY$O} zm1W4G8>TWSg-X2~PRwO8ni>;Z1xW!xG>VL*FVLwxg*QLllJ+H;B=y*-I7&qvnX{ra zKrlTG%tbH^;bsk*d+M#vLxc1PX>BzKZFf$+Ykv>V2b54IT2x*gJVnb#BTy9>ZklZ{ zB$SiP{8l5PElpcJ9qBL{3!n=t0~*zW2(}eMSfG$|lsM8Fl@=?exppzRi%o4HuIE)% zse!Mc0Ov4jBg;8=eSvZ3hdgf)XJkFC4}HYLqo%QfR7Lt#Hq30^&)F)h7=h|&#e|6! zVou&Vdf|Fev$&jLM4q%rZ55HJ`82H?+9BpeU5TCL{vzPgB`ip+J_R*R_RbGp%IE+W zeaub+?_X)rd4;a!-~MN)}y{D%Tb24H+unT%tVMsrMP! zSASN-Fu$)nO|nYCH8HoT$*i0$EpGRZknwB5W)b0BIeuVz>oN(_H zckdKN;=MW`fB9s)>aUhSuBXV>Me=E-Ew-tkmK@5y&;9#_zoc(9L(+m)N5N;0RjwIO z`r%B^oEW-GJM}pO=`rMx=lZQ%TggU0%wg_PPQ!LrGIqVN$ow^Q#m?sZK-uipqYF2R zA%=h1LS#(0BI~Ge8#KV&9vi0vpfx)u%^q0f3JmD;U#d%d?|z+KcG91H1!TrwZnNBf zo=&8{a?|xq|6iiwFMs|2zW-mr-@gWa-`wB$e$F>4lw`ka*nYN*V`3_(Kw*9A^Rc$d z5T5?T=0kSyVTtz>(g*)J?ymvedLa5D1L~(dP@_6)eD2gesVhAd&lM$=mtp z{%QI7^nA|g16yC3+$#)^s&ymRZ#-Jr+;B_{Y*i$c- zlwvW`pVsu2XsD7p(kGRJf%vX*4nDOg#G1ebbJMCGXFo0wtpO&Z{}}&Kjj-0s@h-4gy>!@;&sxs$D-uA zV7`fdR=N3ns5$jBV9^G^V$acpcw}j_4#y^}q*&C9Pj=f8tS*Nzk^Yf7w!ML42q+oX z;7@sdkL#9kBs5bc4y1=??1$Www{3Wb>BqdEAJ42l@5Lh3kYp_>2M0H~ z^`VUN#cZSgQ7!C)zv|u`Gt;2gw89naDS~8eQ#ua}n*C%An?rw5R)TlBJ)EV4Vo?S_ zY4gj z)m8Q<`)w#7pO=@X$K_`8rKlh{TZ$%cKOZ()6jDIN)}S-e{lI}Q%R#;|BVYXsRWx&w z>+~E2mKuriVl}#Id~#I6q#%rzLEivPqPwe1pPVnKpowdj0}@ucE<2k%<|&d34FPqw zoanAUo!lJ|8V*)b-$~JqGe|kEZMHh}f@@yUZCtr`0ZZ~D)G{Gcg@e}+sItox<3ounChmlN#!T3a9i zY;Up>0rOa1u|67D$%;w>9}Z4o?0G-o1%_m*Rc-$8HKZSHw(uS zZ3|0d=UZYf9mf1{sv#@!nffYVk)h_Er0rvBEcQtenls}OzW@kerIFhLu-2e;XYZ-A zn`h@De6y#YY{Kd+J%F3r)7o@%*i}$WE{k+t8N@VPHg7^DQSu8;j?xLepLcd%r0of9 zagupuUE~lE+KUw$zSucQtOKlPbELCbeF>mn`w+kdTHN%nP{gy_;z}1K@xstnCRv0s zLCFF?d&j=hBa0Z~A#^n%aGXip_$x4KJo#Gjc!#_mp;x;uq8A^_CCWq@ZvIEbJCG|) zWHu?0ue9DDzx?{?LY>Xq(Jr^M!4pYrw9Dr92ahB+Tx5*rv|rL+3eW&LWLxwcfu+03 zaP@R4)q`W(qS%NAG1w=D__IEphdyb^r*sW~J09rom@!^#hm6_IE|gfJ9{|H$l`xVp zkFwRM;8z8%BEpK8VYs+BF3=xY@bG`>gxMAn%1*7qT~)y2?*J!X0bID4qZhnS7m1NK z2kXDUZTcsAg~D=eNbLT6G4E{Fe&d;&0uJzlPxCcXTGjr2#~JIeh!!wyf*?Y%@7{(V zfVkFpP5$bM5|3Vh{fu`Y1ilh>K(=yQ zH<@NTn^v7P!^5#ODj?$`;KnY-o6A^p4XE^C4O&WYqMB8#1AkLZMVD=ykSQZ2FI?5# zB00(K9ByZJd#%h`MP8xIGW!DA^d23_aD+zOXg^qTo358~|sk{uwl;!a6a0st$}=B(v9IrKnY) zQbw^8=o*^9fiL1Ue+km4=AcwY>OPvevj4iqhnNH#Pgg#M3Je;bfH6gH+yzvVr6Y$E z5mTzyvbNf&)8uSUj&AX}`a7rqdZ8*EXJ;B@J|^-PdnStS;JVs6=MDYcDrb*Z=UH&1 z!vlqB@rqgIhM_W8WD_^z^pwc)^B!M?D3s$oy_>n?ytIbnjUwwX+{`h(Fr7wSp;P#r z=}LiZLiq@YNK7|+keO+^(D&j{DMT;5ehQ(o6Q!Q$3(;P4v z^Dd(O5izYvX@-KtWy}H={d(vG-@w=Tz(J6dh;);rdMUz)LSh*&3`weZ$z_|V#qk?N zUmlWppc#2c9Ohgp=RcIhxln(K2}KMp!jj9V@K1p<9jqez=Kkur0nO&wbRDVojoVuf zeROQ6)v;1P$Ya?&#&X?=-eiaghIW+H8XiU6F?{8;(K9_@{ktOqmw|^{@iivFzg$wL z|1{YD%jZ=zcQY2YcQCj5?>j)>?Z5HO^^JsZX{a7LguqR+1`Sa6fS+2S{8d}<%?N1R z{N;ubeIThyQ+X{{0JsuTcC>6!DcjwHkKY?W2k3nvhIf$S)~BUg4Kq?hi5~F{51LLg ziRopWRq3i|$5zbTqh-Y5Duq)E6pGf%S!V@rUBcea`OU` zhf9bv12pwa1xx3XS}r|%c*d!|Q$5Zr1Q0X=WN#4bw(k0IU2?$r?ePEJC2_g-{oY@u zit+zt|Nl>2^3RUXKlcAk^o?)QZ)7O0%OJ}me8^}z9XA%B3dM)s$ZBS<5{BjvK=TR2 z<^DmxkX@avt>%_=YNF)vt(tP)8W19J)4y8?W|&a_MSp{QZE!f2o^m_R%E-Ct?ePJm z2U!M|o6Ml6$04y29;ptDICebLmrYPcRAk6MmL^YWIMR-Q1=oCH z9jEhQ%x~vnc#k#XOs;;OW3{Kfk$ZduOa)UhYSvldMF$f2v~aW^UkQWew<4FWV+?oT zHpvC~ zwt$Nb5>PH_=*8-pU^vv~QdMzy$0fn=1wA z%qdpd@{@B++Q(CzP^!Z#su6IEEqI1ZG>Vo&Zf24yohx`G&cHj7FU1-BRlz}}vygu< zOKDK7YPAn33J=i;fy^rr8A1lq71Xw`+K~pOCufv0sTdY*M6e{;R!LCsr*z2!t>H-i zU#(qYDt(X#V3#GwUk`8BoaVwQ?3@~M;&*$gnK z&WEF*`wdd4$~-Z-f1xwxuE}I?(++v3iA=+heEs}RwU=rG&KNV@k;3Y9m|?!@WcGXM zl92!N`j9XzMv<(HR!R>(XgvnXaIs;IL5@XiM>(bw#054LwmsHani7e|gF9AOOwae8 zg(^y`%145qwRKv$s}*)k0a9Uv8$xX^%}LgNtU;{(=sYw7#^G4iSB>> zmJyM~&iZ~5=03EhcSm@RxoV~V94z&Mtr1CF*}t8Z`8l!0PQ7i&Jl~hr+-*e&078n$HmwYdCBn7&WBY zr@6L*YTM7`RAoEOdso=zl{U;uV={~%+)R4>RY{aYVg2-Yos6(AWDV`&{TqKmEDzGR z9&O|&xcq0Ww}PsBs+clG>gf)~X))h2+Cch*V;jw!4=7NqIh%a()CF%!ZV8_gib!?K z#z?Y(PsRfX%ObAZ+z?x6(J{+e2KZ!M#P_KjkoNQtWENghd#oUgv6o+a1WT}fILLgu zwnkZkp0Wr1;yJ{5jU$24MRI?Pl^T}0fMx6k`W*{ZdH6ogT%!IxD9XUvd>mn%QR18K z8R0Og&}LXqGqZ?mMx1qKBC}+zU-bKHPtDb zTALa>D?2+HI-8n%{AHOyIUs;KfQVFDvz-$_;@$h@aLOrb*_v=Cms>z&*#C_dj7BsJ zt@mes*`1AXlF8aY)ERqTb}!~tuk?U0xP;dy!aywUB0-uj(pei{xjhfZ$9-PjpJ{(U zTKuxF(HVeI!>{F?V}K z7yGe33R@@ek0VyY+YhdNLzuaM6`tT~(fP;h$Ec?aCjOww1JtUIT6mu6PPPFJ?Ut$P zzR%pRjQiAprkw84aD#s1so#n2ne9#xTnCYXH~@+~4kkeC37!+BsppZ9vRCqYBPa+z zpS;=A_5zKu!)tvi9BV35uQXi|DI}fd^(A_2zyn|1K9RZ_-LhgeUx!YEYiT48_qWj( zPO6VGeSLf zl(qcLbb#VO0965zsH7_m0ysH*uc}JFP%||Noj3rZb^aSl06CZuV%YRvi|ntu^Ii^& z_wowJ+#JH`=&*~`*lCk zcJ{vKdni=nF{4=(<*x~i`T^RyZD6JCpro$mskQQg$r4@)TJ+zo*Ua7#{o42mnrvh)pXlJHG@nL?==LEj$K&VnKg&#qTOqe9=aI{x33JHv++e|b50~__ zCYXaZnEL-Vm9oVGb(Vm$dc7$ASLzUJQ*%RSOIvec3qxC5Q|tex43V>QwluReb^OZ{ z09611R0l+(2CO^U0{Xjo{FzBSwBHq4De(?EN5EAGPk=uP;I#1AIxwrFK0{VX2#U5A zZrB0=RRyiWX|)RQ3VJR2#sxJM5Wgg&O4VG|v%V%itrwrJt*xc%hm6#bvu|eg>HX1+ zAL|`XQ@#Yi6Fcp9e9b36rv!h5xK}_Waw-O>y0;_2i@JlzhjAX~kLU#{!xe|uf_TH3 zi)7IECSRk!J4A`=AIx|V@T$Twb`D;#^(|p%89qVu)x%9O^Gw{~?i{*e>3hWX>An&Ua)PU7$}n_K++hz|!v2Hh({G>ktY_lx zx8oADgvG$3W8j{(^EHT&wY}#GHOL&>XY{HeB>VdIx9AhN5B07(i4T2uc_24;V#tqG z3U(b_CFhP}j-qm{N}Sn535i834?mof3Y!{=G&nzU5STS|+2aHkQ2|jM&Smmop)fUV zJH926-VH02+ym0k67q_2eBN?X)o@V>84FU-q%vYveF_7sg&$s2CLm-O|^;nz1oRTwZX#oI~SE{y@F}G3~gLR$^vj7?a1UfbIxJvb7mgtI^`p1 zFZYIxnQ$~vqqS7bk+SZMRkSFZlMgeVcELTQ1~&p}U=a%O56b;^U}%-A$SO^B3yR2H z=tNq*AQY+-&V^)kc_n#}Mm;$w2L|eeS{Dqs^3l}TZ2ju!$FT(3ih2t&QaLlnC#y2y zXFS>}2Us=MXc%MX=dxBR>OwkXeq{+X&_TjI8f19^cdOq#LUGtY*BRpyql6~Zm?+hK zKJUfdcA9_ly>L4mZfsc9?bc~+pkSXLJIel~FK`YwVs^5T`Yi;aoFjc$3c5`ky1vS4 zPrKHakG{&tb`l57`GAJ?DRVX332bxp92;5jSKnHKyLTdmyvT%q^QpVPG`@02bisE! zc<=)Sg&8*157_lBs2e+qF-JuQ)7ZSp^7Zmoyl$kLZ? zRw=ik=S{TGM~%|k>ay5r(r7a{UD;RurfJDk^ZH*z{Z!|o*A}@vMCpg<Ar0m= zq!R8qGAbTqaLR5y7KJBrA@30IV_sapG=iv0s1*rZwzWKpUHxXJJWX?AS!^5;lezl1)82Qa*<_Ug9p z+dZ`fL_QS+Y&-=A5Ur9^9T^<$yU_IYp)?7^Pe;ZCU^PiDkL2s}tVSYAw4^R=^rCoT zJqQ(&^8U7igl?{NX4OiuChYSuTOSh02j!&LA$=+d5H4~MIn}ajp5%qO^*N zF%BqDEO({q!D5uq_&U*eFio9SQ`I|Q&k9n>CZ61Dkc_e}mD6H3?R zYiLE%&+nW*YiFlILxtR z%{L#lf`DN1@7&*=QfM9TG{2vm6cgbErugDLdlYYf6|DEr5Y{lMNbyrF>E*U$n@s4| z0{f&5dQKimyX}EWe&sIOkoH6|k;Z?E1up#dUAjYt=H}?@rZ0@g`$^sF92F4APD@l72U3)U}wm`9gqD9rZ4e$~* zZ;~z;_*PSoN=2>%pw>G^jo{>|ZqTr&QlhAz3;axj8Svim!B`KievY0vw zI*e0}pLMbdmX^Dx?4Gctes8)%+d5C#b(U@LlBaH>%?PtW5pNy#Lpeoig4Zxzc2XER zBc4vqwuFQSwKR9r7R)XiyBbdg9b1OSe%y1~}PM+^1dVLa?zX}ji$sM?Q5WXHCxb_a@MbCiy(YK7zlb6pa z*DW!VBepV+OPO@e{Kn5C!L{Q}fF}F`by*9QUa3QMJ{7p~ESE4v zRv=u8U#P^5FNJ#35|dSNhyB~~yi-NozH_n;PVVEB z`it_q_zTy?4l?dzP|ic7m%^0+AH)knshf3vo{>Eh;YGklA5q+IKVtGJ^PmKts9*JR z1mYW-6jK}S(=b~)r)WrT2kag0o)iwu#6Mh%zYIrxJsYUAe(dE+kBD%$pu)bMwm0b~ z5XY^nf}_NBtcuWmI*X~hd5Wn6bQLdZ9+z;BRjm6@eU)UKlKTaVs6Bg2Z<*bd#=zFm z!gVhrM|QOW2E%tLWG_nry9$@A>TzZI5imZN0W0+ye^j49DS1t;Gg| zfpS0u%C`aP>ya|<9j+rABLgEbaB3RW(m`Rnhz3RFqxPXfkE%7FKKmr3)VIi)7;2=f zWTq~?T!Yn!=;zQ+BOk%sK}qJ~;mW7Tm|L0^0?Ou(?_NF|YFL?6jZ0o2U@p!$=^g)^axAT!=}C0hpTu9ezV__wtVP)5 z>V1;$4iG3AD9uM6Q~EhAqGXGN{LRAq-xl@4o%MM2fXfHQ=G6aj2t?hDP3@ikr9<<7 z0(zhVAR^=B<<|s|2DVTrixjCoh!c`fkdTB_r4LeIN~KCgOz%M^{ML-rMo8+z&*16J z5#D%sMNe|A81bGIRL${VRV8C+r0raX?0i_;9^SG6xu*6WF>G=kbB~_7!JFBkU(spZ zGG!?AdreYGHWR<|A3=8Wy8*Rs^OAe3EElD_=go6lZkG?f&gLD}uYIX?> zEURaTY=E*MT>zV)vXuQ;dGt&f4J|y9um5qJMOLc_isrs13|mVTf@0i=;pgn~*KH{9 z@1MGAAIqXc4f}CEl(CJx4aSh$wYrUh?rQ@~9a)>wj1euS?h6O?2m=jIAR_Bh6_X*V zAg!p2S-zR#jp3Tvpnm&}j4?%C$GxAn(Dhda5}4t^bymPc1573_AlxSZkJj*S4d*}s zAb`R^RK`w8fifcno1d&!-s`I(wI4N-U|nf3DrqyqhWUR%T;rTiu&FblEbL5!BwHWy6H^Lb6%qMiXcYBWiiNSzBXah@&`HWa3sVKsJoliDGIVnXy(MPhfQ0AV( zEby3p&Jy^ibv1KywIoZgRZ1+;ejHV ze`V~+xy{r$S4wE=`5_3dH)I7@rf}PNp$m?q2VQ8!_cxymOc+rT+P=5|uB!uJQSARX zF7D2zwkD<~!q#?9fY1MvY4``{1XS=}gYw^ll&B~x4{+4peM>NT+mQZG4%Z+OI`?JQ zLQKqpj3_)yg;Fl(X{L&=>fdMje~Kf%Q@Lny`iIJLWqQnc+^#jY=T78OUXr38feOu{ z{^V0eqmUvV&lK-%<3)dLO7!lfA@(iw`Vd*u;YK4sMWbDyMoYalK>B{8fnBQYOS{U9 zrb(taX#{@?_LwbCqEZ1f;j$Oj$$fq@3)U0hJ|IJ66Eu(IE$2O&Ly@<9U`T187U70M zjfD5`3lEn}-4oQtmqd5XNAzqrFqhM8nPIgKy-74mIz=4YGJKiEgz1~5)38yLk5viTog+6P>vI)GclAYP~$x;Aw7T-8YR!duvDk z7CF@(-9HSio#r?2(ykodlAym$!6ggqqjwHH*wZ_0>{|T-aPlLxYEf$+G5 zZ20w}h>~@12I+H7B0ddZUcIMZLt@mqykf4lFP5=}QxBNeEvBz*bT`w;39g=H^v_D< zA+1Bhq1GXm|DtJ!BpR_OV{7(+W_t>eiOVZ`=4pFDx_fE)C5#{q61ms|1wVyk z((;Zp+;HDMvAvZQV{{f0OpPCcD!2iHS)_~1QW9LTV5F#H3k^k?se&kfJI(*pZ=7Kr zs_?i$%HRD0boX*N1dN6YO=hW1Mzs*)n5qy&+@b+`^q*xqvThE}`5K?wf2DlS@Qz8y(c1vgO`VE!b<~5WXt)*d! zVg5XNm_1T<_4Ow|v`&~K$bjlGi6ctMTRsNWn+>IX9hywUO$LEzbe^u27?h+O=FhM*$p`UjE zU>bW6B-c*S`GLMuDm;V#wNL_jvchI(*L=Wm#{!nk-2XgJ?xrUH*sJ?bWeGqvKmb(& zkr}7W2r395znZgcn>VU_(Je$tvLHo96v->FjKBHep4~L(YH~KJ2bMh&9w5Q<^ocKl zvkiwp#XtFL^4H&PlNqelc2kU>IBJ$*;rFl$n2;^wxr$uISxl@9>#5sOJ!r8s0*Ub( z3bSdMDpU*8-9(Vq_fKsuIE4l_Dj&fDN=_%#xvIAIvAdbtnSMG4BK3{N6FS?aju=ucv}7@dl9MGkhAn6c2y_ReW9 zUi>eb-lv5w!iA?K8ijUHiCf!+`i3)Fa@8@(u@^F5kZXM=t6TgC?r??;HU)5gMS%xR z_%`N}jw!q+eJ4ueQRyM>;w!-Lkbctrs{cqR0&&~+t#~ZXXJ{)5!|dZ-w;{q;O~{YW zD$K_YM2$_cn=K!Eh+sPBMIfBAQpz>1z_Oapf2CYrVwp8sVsj|=%^9Kp@iw9UhoH#_ z#Gp}_WD|J5mI|rhxM76zut!{k$*7OO%>`<5RHiiZ;1kr50SZ>+6f<0GgTx$@s6{x5 z8B=ks+rQdFuwRb48sIkE25i3n<7!UK@_(_1zamSZED%6FKx8I(14)|(v$+RG9ii(?m z-@Q)GdCI-qE;SQ=GGi_m9;#$>`{0!L!H;z}xK8E?d5H(W;o>23qCKrp$>;o7dnq{nST~%DDIDRv z7U_qIodnN>DCRpU1$VgxY>HJs;pt0T!z>e1l32p^W8Rg=mYL~GQ{ubbP3+?IZN&ZG z)v;H@K&ra?HE3@CR&xdn_>z7dap4$3l=Nb$J?!SS1>(lp%8(%0^-=sYdz}fr#6}p~nr|Hb~B~8L;~A zA7uOY=g;5*xZDgJI&3=DC{~DPrQEDM7f!s})*{26l|QB*{MF<|I(G-hU$3&L2MT>V z0w8%ZCgW`#-55;KSWu4<3?Jh)a>R^i#GvD0R|dc2^P#Q|aOAp|Mr0w=_%%*r#tkq> zL(5h#q}Nd2qLLmCM!!&->q-eTtBsSTp-$G7#)~Smus?vBKBb(>iJi`u;d}P*+iDSr zg(5sB#<+%bY;EVa((hc!BLw^zYWUKON`TYbgBV(o&ye;|%eon$@HXoL6_BCp@j{&e zlKX=sMvOA@qRut>9)>2VN{cJFv7xHagLh-8*2;JVh1@##EMfECq9DNzFF#<0i3u>E z9RKuu`K!0(9~mM3ni`-6ApR#`m8c+#(4&BrQEfpD>i`kA>P}KyXGCl%1V!ndCEw_= zTHq~GZMO3XfqZn(Uxbb#UgnT8b?wa&oJpWhaKi62N6rF&-(ymf0(3Gdqe{aTn!NfH zH7IK4HuBa@T8rRlISTJB}4agYT1PERUqn z#}>ZOZ7Q19pr3{{iCWO~v&Az;BQ#jKK&g8l4eDsgC&nh&z-=BE6~ez9Ezn?x{-h7q z0WJp?a9RIYBlX`MKmS@C`G20de+>#y8VH~!AR?ofVR{A7M1BvYurvEd26p)Sw-|h* z4)ZsPMXhiMg?0d4QJv1$bpM1%ZVQH6Yahn1+>ZUe=g|h5k~1)EV1c5O31Gos)iB?s zb7xTLZElkpG~?1i_AlW~tko%K4g7^$+9+XSLhEERo6jWrwdy+@v0(y+j-)XI41Udtp2ydJ zV=#b7Rgta-Tn8=Sx@iB=T>haz@~`0liU9#s0YqYS4?>RsQqV`P7Cnl(8wyJ8?g>>u z0H?dZD(dPy$1y{1{#W2wH1$vTNt(S&9==erJ`UYO82m^J?iL;pPTZC&TqTn!nM~NV zPLQb7MD-ddo+{b87|&Os;y9%1&1^6r!Ki3lzoGecrIBvID4WK<6-7*}Q5a0OFPZRy zyS1!G7aceK$C5cWYmX$>iZw02rUNk>w}GZ6K&3G8K0CIs5F`lSJemD zUseKKp1EuC9`ylAJ+Tr0m&dWJi?y?*vxTFnp~?Tv@%~#%3n&W&P!AA5@&;6K0C@wM zwT_yI09pyvqLl!V)r?lImW;nxpES6oH?3|Gv!<@=+yq4K;wt9a>Z6a%hd`GauXqk` zadGxb{_18b9WfY)g{LD6E4S07Q+Dg)Wajhf<<|Qrdpv$yVf;;{nXs`uY}APse_9%f zt0sRpl>mEH89iltUGf!Nb_EAzw#zUxrSXnp0d;0@;UBWWJ*w+MTA~m|VQVeQps=il z%QSc<14Az`I^bV}ti~jZTgQ-OQ|0Clv%U~ccow0v+eEiD*@_1Kuq@7(^d%uj|AVEq z8`|SXTY5dxFJk2G#lp_Q!u8c>$I*z0Z?HQqV8d>;$Sr8cge>(}<7+~ zkmJLa*hjqP%kPF8vm?{P^ES5b-uS3+Jt?dc*scXK>4?A0i(0s=Hw_(tSO&FD1siTr z1dOCz6iF5v;-A2+4e@NWuojq;vx8^(GX!-?`A{)o&BOa=Rqscf>y@JQ^;8;A53_2d z|LLN8DkSOEA9JjY*xPSugPzecPQ)7c7}!Q1XE|$n-r(#iR0bPTzx+@rFs3EQky!DX zG`1jpW=~a=flP&dwWTxGnuE)a#gtf%oLT74=&8>-Uj7R1Hj*|rXEupyUd>;p#;$g> zBz&I?ajUm^5K!?1>r6(w$J9@wjqQ?&%{tUjCcYKrDa**%}?QuOQ5d8V(J z`4q28gQl(&dVb?{b|=FSSU$n%D-&Nvsn7Fud~AAyZ&^HHY*{`L@GF#-9aTHljXA^z zjL4a0KcRSj8D|XwO~+&n+Qcj^aF(tNsMiQm18ZizaGrjNZm-`|H%P1$BZwQ?b$4U?EiZ z`E*G0F3TZ~sWG(&eA4PKEg1S1Ucx#5&7Eo#p|Vp({}yT%vEJv+3UT}foS1ylBa$~;oJ*l?rF(uhC^c4a zUYI;66;{c;BQv(LQOi5z$ah&wy!_@rgKT>Ag)^sf?jloc5(Tw@*HN_C&4%PGCaEAb74^Ah5!wy!?J7$-k=%|;_5$@E6pO|#Qs>57?6T8& z@BrV!)F1oG^y=|(;c78=txSqr-U)m2;f?mcL7Lv68+CkJMEG^45&6*EK2KyI>*c@G zy&czGAy371E^EU(lzpuOqyOPJ4Gq1jf<((z0`VIu-uY;@^iz{J{qjAG0W{nngWn^4 zAZH}^y-R6er&>Zb3pi}LdFPD7=re5DX;{$fpBRRp3##3aOTy#T8D_$2oX49BoC%J< z2jL%xtx9KO_FT4DvWNB_3jAt;|yPzrGDmw@*_ma{4V^2~r@w*R8tQgJji{$~0wOj|%X zAb>i6h>Q>f_F0I2STr`mxE{|2wy+%`qk&`Q2vJ)6=0piz4hFvDMB4J8D+WeGvt z0#$iM+R!K4Ta+uDEtJ&$x1}a>^_=&)}&*PXRWbQ=v%L3QlKR=|jFs;2MWxxFdly z`8_Hmtx4B5%^56&U9i!fS~g{<1lH!^VP^Cix@2#3f9ESz7P%HeOVsXa&E(?hXW>%x zK$Y6nSgCd?$j%VY^)I~Ru6aKm5#8w``B&+VjV0k1Sj#V=(WP7(yz@k7!#%DxC1!ZH zl*DxC8Dr4O!{(eaMjJh9jaliW(EE*u5(pAG%fCs@FrV7wPXzEgYo;p+F>@5w5f(ZS zWl7IX3yJ+szkGtc=o#=vM4-T*=N&iP?1LX?J$qMA#Io{mM_9z-V93k-DfYk_HOIXL z#?!FZl4duJt>)Mm13pd{1?gNk<~(3|HE~H?E)g9r-M}il`0ZvQYH8VEs~hK3U*So_ z=d-F-@p&^oNdt3Watg7X2Uhf03y8*;eQIOXE{-V+>nGCpIpi%HFEPVo+A!a3^zWd$ zQk(VLUr*c24KQI_Kp22!QPY zn*9N`XWLc;?H9?sj1_S`ZR3sQO!S$Ni&)IiUs0@3Hs1ZX$c(jMGJ#WKPn)H5+!zA7LMOYZGbZ04mmOc>TSt6eYt$Wf7K|Dei2HQQziGwaKtUYEjH7Lxkn6 zrIhb<2J61)U4L2cRmEJYIqMai5Cv}vXH9Wn4#y5U|InrqW=D)MB>#Oqmm4lIM!Y2W zlv3`;NXJ$ZtCVh7nKa`&C4zSCT}!$ZCcZVWpfb}mZQ>p~#gJ;brgf9Y7DoeE;NwX6U+>M&Y$Q2&mF=GCNFlo6PFye13!MhDc(? z>dgrEz=Q=e*T%I8XTTVEuZY+(5OSTuLXd_>7sW$fRHxyh!fJZR+s>p8Wrume6Fo^N z|ATocruHQfzSpbG=i7Zs3iG}^Y#idyma?roON)GuSUMO}x=)S3F7SxI?zh{#Y?Y~gFUB_Md z#Qb!)4!bh##+}_-(vi2FJ?$J0`0~bl{h9jt^Dd>{9M)$;l?wc8H*3l^iM@cb=8cJodFJ_N=p4Myh(+p4)g{*)V^6czBrV@_mEvF6Rs}1{rgZ+4VtF z-*d;j9HHvBaANl(=8-UfzZ`R?GUkoqBnZ8Sghs0+HY)_sK;Y+wy#KWwm%f}lc zw;o%Lt)<;FhA`b=YEhk5T|4CHJBYI+uy)9=!k$PRLTGNLZ)}>P4|2{eL{Zr~<5aCT zo>%9JglP84O;z1g;QqBIX>AFqvjle$j=$5C->5p&Ku{*8`x|cd+N7x@)#E4kBN)p#OO>@&iSq`%r z+qbgLa;-EC&vfMCLdBMgjHbOka>ejvlVn2@-F4+I#oJ$2Y`5tPyn0R;tfz20O&e%Q za&IFs^ATwSYwLi+WZpoLFeIG*#O7pI-1^nD^mLs=dJj`TrtQ-GIv(=Tu(t zbrKzJXs=J?CF`4CQNdzJz-MXBC1^2BzJ@;FCubBs$e_d}R?>P3^)O zXts8(z|o%za8vhEsNc0l*BNTSqG91vy~5^8z6S3b_wZ7*M_)o)@6pB9rvZdgtn0jm z-5)S42_PP5Pav@R!{sz5EFqepvf%UpBSbqBR-X>)sX-e)N-Z=ejd7p;Lq?SjS4t#> zEheug`RlGHt{3rWEVjy5Ykwn>uYJ$ryB;f^Eq2+(%0@0P%~B&q^?9;P@%)UX$5e4v zdyTRyU7o1=YH`&%LV{DmnEBTpB;KQ9Rho0Oj%58I0NIEG$%N?GR#UTCjxlaU*iXn@8|Jw#{GfUIa&E zB4}Q(=e}a9Tx<=^RpyBiEW5#5Lkh$#tdaQdl69$*O{VcG^| z>SVm5kK_@Rn@!AHxPfFl%PE7k%|g;5)G;pIB3eF@g{IU3-@=-kIrE`Hz`OAXO{x%j z#wyV&JWTvLuTFyuCDEBfH=~{;fP-BFMGoos$=kdiQ?cD&Q{E%_2ukbVj5rUji}V3> zFdC`)ZgC3vl;k=91E!CdfeFo$kM5Av2&-^6=>@b;yhS7R*yv20O1wp7WX9_ix)i>R zjFQ@sNDBs8I!+&(q)EU8?AWr`B*cKgNyO4`mqi{KDJr4#r&nZW^_(5r&c6Qeh`aD$ z`aEMNJ51O+?^LL2FDzw&brtNxorwM5i);U+gFRXMxtP{CM$OTn`$(c!@T9nNHA-e8 z6Mo@b3Xz`jyocO0C-}@_r_2`diEO-51kNJ+e8DpRU!Dk<%esONS1$tikYm96KY1c` zM@whZ|Ed%EJI@hN3J9PEAOdCD0GUptj0FoLG#OL+xK&|aK{Ps%f!;subRPEWf{w_q z?6CaZ(J1nC^y`M^8fLCp)i0pkD1AtVA)kr)R+`k>so7B}AUQNGZ=7_w_?p&l+T+wE zv8p3yo30n5bPel~n2G5tnatjE+jkT;QD7JJiK@Q>f0cyD7G)%LWhK=qYO3mW56~U^i6Gaqr#mdP4a2cSi)uFu zdZ^zU!dRFF+lFQT+r4*Cui7*wTsVGd|JakRd_XneRvlHMylUy15-weeHzLLvMgG}A ztD;}lldd49(wI$6-bDO+vt5Ou5!i_w{L_;XHV2ffe;{4)38#>mKslq-A{=H1n2l97mbqW>D4v8!yHf+hU zY3m*Azus%1y56PlfW7!$*#D*Y?C*BK5;4cz&f(JppQ!ml`b^C<=P2u5J}H z`Q?KmN>F!~D$*d{fysZGzn4|470%~ZCKv4tFPhM=IUa%yqL|;2w)Vg{wyn*d zQEN1{Dy^-s(4PKDvNqE*C-@tOGzFgA&q<4E;a``52l36G8**_x_%>m?=H_r$0Y%%U+g1? z8qua)+j8O}o0oioOqq^E1CPJ4c|7c0v-=$RmzYC&H$>laVXQcMa8a!1>8TKJ+d<*i z-v}+nw!x>Zf>pl>W`;O-4`=ku?;eB<dNF2X$JBx3!Qk?jv-!8AcW?6wPLYi9O2-$tW?V;}gWT)BD;ezIBuR-zmQv6nnlz zm@bxJkr#dW0 zT==TEWdkgn;wb@V6MU;@17lmja~rOXzWe>5JKOLA?CDeI8%OtcZs*dcDb_W{`o>Vu zki{cfJ+WJ&;9;j3Q#c3M3smI6pNF-rhqkDUQ-qw&9zSloh)664m{%Q&_H{}6TQfD%p^?|(TH>F+M(znsipeg!B4 z1W+D`N)2ddl?Ckg&2ch2mRljA7y%+fv5*uQ6bKUAP@>N$P(cCY{yBN^sp42EXR7%@;e*cd4XM>xORd_gzx7*w9;_b4_ z>*J66^|Y}(NJ+mrLPpqFW($ZqmpyuC)K_fHL5 zv@zM;*@@kA4D{yJ+Ce{^b+aKZ$YxvD9GK?tK5hUBrBSQ2&N73X8`P#-`SP&<@ddK^ zW7vVV(Q^~gQ&iYxSp6k*?`3%Ni^}??2qgj15Pywv2Pl94&)p#ghg0I77em3T5Tsvg zQM__z1AOSwT+@NJkl&}j4f#M4^nFH;E_WC5QzJw;odGA-rz;v#;Tg#^{mzL5*IX3^ z0k11)Mm4)yCXVio>yK=w@g)MmZXGJ9y{9HuystAx9Vup0+s>A47#Q%(Qz3X<7&*50U58O_3t1grpQ&G*t|gMlqycJB z#Vgd`VF0AO1UVwW81^T#zO+O!oGE=S7bzA3juU!9M04ZO zj9HJ0pq_C5C2Zx5=+E8eR!de6uu{ouC~K4)aN|asb1}$k2I|7F6-o2N`HZFktw0uWd>Z?vcr_ks(HrJKlh=Z>Sr^S>`!6m^-rMn#_3#7=yd_OIH#o6y=DbyRO1fns0&;D;O+1yurXrY*6uaM3_1IE7p`{N;EjmVXjyoN=D(1 z2cF8ce^7Q#>bqoU)p7af#u*E;GDBi3cDmkF9E^Ou_RM@khDjABa+hLe0vP)6;a{3< z3)Rixr$XVF?Ck-`?DNnB)!VA@)jP#FdPBH4YI&M{Q#GlDjs*@B8t*!Nj91d|UA@)p zuMk}e(|$G)Kl8hF(V-!tz%=?i+?D$R-KG21+~dLRK6PV{;s6L6aPmOOdyHR;n?c18J*uBKz>m8yS=^2Leu!LBX;9MjK z#bI5Ys|uB{Uab%p9a6Xs4U)e`Jhb>AGuXiwT%R&(#xwm+We<<~bmmF=jfNx^^#ukd zSmO1BI6~5{K&H5+llWe9J_@HNayXicS&d!AZ--D6=M&3c?ru zPCCHjc@Ck2Itq0Fk2F9XokN4 z!~PnU+@1r=)#5)q>|98v@PL}dHoD3T6u2pt(I}`_yMXb{%Yer^%VtzULK>a=KJGG6 zX^UUTRuf~2Z&{x_w%|LTaUFM*x!C+kpD8cgDQe;KtRa%kjmUtbD_6xR?Cvn&)QrT% zxSfEk3?MIB)Gz>bFkdGc3+{6Cy zn6&&>M)CD>4>2MrregPp;a5QU3i|318egVdsB3J$1PqNwHVGJe@1t-Bc|K0;TMNX2 z9Pj1y8Igo(BGGRIZUt#LPu%EGSK(9^l)PdrdCU-GF| z;X4Cx?eX}RGw?Wa_Wkb&l(opMmvxF-CCA_>_nh10Nl7gsbxQ^tpXiZQQ;l-s+94{X z(~mQlB12Qlf2XPlY1}Osqn3^}2s$`8F~(yz=beW>Luv{Nn8A{YbKKx4&62%0+;Zk* zS(|KOFqhhsGgUc3{UJK;PlALLqct0>;%C!|6A}*saocyCS2(B#vl`=yY?v`AQkSMk zo{1;U+{)7F`%L04m$@P)k$P;0r!wg{_}=K?&~q`X}`JIP;jdoRof6R z;;SMmFf0)D+a1cetmeSjW={*wqMI0k@iq+a3*3R z#gvSChVUsGGU-iAj5qCJi}t<=>5Qju>>|pV+Bzzj+FL5=IZ#&cG4!L}SW0dLm0bjl*b5+XM7izwL#kDDb*!#d0hEgmqukLH2}xj zw}SuK1&|9WRPB|;Ys`}ZZz`1Lq6&PKjf)vKj;KkztiP?vHkhSC-i2IfPF^$tJ`KX% zz`((t0-+E{nec_6L(NnUI_ZWCm8W`J9j^Y+-}K9;Q$%dJGYxV?mZdF*!|d`|6IUuy zCIe;E)qLmq1?GtVr<7T%gvHU}cfS(drrBMR)StC+PX*Qbrn_sc1hM12kzg&w)4CuN zfWety*^&WZ=};XGQ22VbZ_>hedr!8%x`nd!U&RN?^EcBS!bpTIQ6wHH>fy zZ>;4oF%&x#Fm}n>>|hizuIi`L=(9XaLhVWRs;o2G2BMxpe)KHXq*@P)x|Q{ zpzq)V7YZOPkVTovP?$JEByt=x4%5mYBrMP$cl-X!Px$w@62)BkH@Wg(X3A%|FyH+g za-Q8Z&9X9;{S+17a2k*Bi|^5_S(AG&VAZyZ zOl6fCeV^3_{R-2Q#aT05ywb~XwaIcUsW)R(P{A23@|YIFE#-n&R408Wf76`jkmShoghl z#s*HuIcSt)gd&*`&ysq*B>^KnQF%Tr!9AJoiqCXM<;CcQADolLU5j3NE+lI?C@b8L zG7V2BUDOJ_HePZ|Nn+ev;LzV(*9di6>wt$=m;+i0$=L2%pgU$@w*T=LPH?6wq_n{2 zhYRn|DhA`<*2El5KFj^$CIl$dy< z473ALFpW%;L)Q!;9wA^VD>5?8GLiXq5@{ZR8xOWU%DP$ys=lTxN6bH)PXluxLpmf3 zAYS-{sFb>SU$XK|m$iSw$Vm0?4&ADTYsoDo$R-~mxtz|ZNR4jNF0W!6hVHHBx3uJA zfvwz4pp{zD*t=}ZEcF0~OiQzkqBXmiK$Xg{OR(hsYW&qw0qK?MkBUKO231-kXD)M!U(7Sq*YQ15Y)&M6n ztTxR=>flar``~g{i?ge|M+Mb+R{;hZ3QFDhq}+89r72%W07}jHBqd)?K(oXmy~HF# zNHnA>fRGa_q0kCLHEsk#h;GoKusfOVv*=QFoSVdE5t(I^-?*(6Pq`sD13hq*lK;zg zg}Gu*V3w`zp~HNAs6qBr-So6*eK3AJ!UodFhv>|vpQ0OBQy>=REx{4`L}gC)04}T4 z-M@jTAZ*sp@fv(ppAPdW`~-i|TkJxuLexIqkoY$MZ_#`t+Wj7q3GPefY&cynW;5sb zJ>4Jmy7#$!^j{)0Ti(+EBN0EvFl-l%Z)o~3QF3noE?&d5YaC}`rEfd=kS4?x}c5U zP>vSU8I=ebj=dR`3>ctQ7?koEBF%=S!425l8P&WQ7yQ#4=#L_)(oXd!gV67m(iy?y zZbp>5(n$3t0gZtfW;_^IfEmDbCbc2BJ8HAFF}Uq2RxzO(7EYS)mRF|b^Rmfmv*A_F zXG=$RWSIw!ku~vsE@s`RPcWK=d9iYVV&=+@F?8Hiw;%ta#b;HFoW%RNwOBrzBmZsN zz`x}l34bc{{g*=5UvETz`T4?^&o5-BOxS&D^9}!y$t;qQ_6PX+Rub1#T*3nl3I$s$ zNTCSLYwwh0V`-0jxGJvw9UGladlvwl!(KrAyE4en?;Lkxggq|O5E4}_I82S)Id2!O z%vRLj{Cr;Eb{U{3tA=jqj1@Wj<4I&)j9^6sDV=oF9ZYV=wdIct zkx~=dXl7LsT4=CyP{g$vvl6EK+4eZ*r#3{JsVaelKr0Kl=kM@Nj^1Y@R3tN@+)Kr=eiX)LK~BiD%PmlgbQS`Wz37zUd`h$`qCQW!-mp5H#W{MWv)aY z6)1*9fK&MMN*SeTKbRzgo{S!maX6W%cmjECEb{8zJw-5EB?n59PwLauS(RJ23^-1n zZH`e){7Pbxtnzjh6qt|s_Hpe0Jugh9i#;a+i)=X3QW~VyDBY*LpT>>gneD~WJtynO z@tEQO(Nyt-+R@dT;!;xjCN-(iR&U-5kb>^s3jv@o~=n$22h8PH(j~~z@8GccqZ{_n1(Q z*!o&72UH)^7gh|?Ck#8#v(4M?TO;9y&6z#_;J=4AHq@KD0nW}v{1`Nc$+YlF1Lh(5 ziD(g9AKbXTPGvphN`OJx(d+q)OQ=*j7i_jryAOtrB7v01SAyPh7tO^)cgJ2E@J$E{a04quJbU z11;K4(<@+E(tRa`0jJnNg?dj2gs_5!x7y@WqO(g_ ziFdeFxSNr&M}fSaF8>`NYmm+P1MFW#g|90nW^pzM7oS_o|MN1)-*(6P+pQ|{-!%8X zZqzR?U-USf-8I=Fh z&-O%OHn|%Xx$HKgJ@DjnOPM%ZFcb7TKbybqc9G`5snJji0_db~9(LFW>Q zwf~)IRiYV`{VeC_{0C1RiVjROLdEhA{T!yKlgF8}ii5~WEmYD1lR_*#Gn>DCkIn)a z!`k(Alv z{4D1EEf?f(2llT6`eprvFHc{HmY0$HtdM3e%>$tcD5Lx?A&bMvbSK3FFe2$o)9>%w zPz>oPI!|zw>esv5g})ZVG=qk^A+DErc{bgd++er6qOS$82PKEY;jkYhm>7_M(k2c( z(^R97D_C~2i;EJ)@ThJdR%NoJW1+HK{77KIFb)7YNb57L-X=sdh|1_YU041{mkQ5c z(bd-)i-*Aa%@?jgs+11Ac%&19;pr^ zXf0XJvLYw}rG1(KMt{h3t;!1v9)qd9SP8@Y(%uvB`+7%OOUbjOIA zD;>)Duxgn4-UpUOZZ`+j3q&yaJ-YyS4aF%=&fyFi{rEDWQ%d*y1xloRK{(p^tQ+un zT_)H0oK@lupTQDGfJ1F>e)h}1<(*&isd`de@l~&0`kaZsWwHF-eEuur{4)E(KTF=p z@&b~dJEJPbVR#P1i04#8KmaFxm$X!v7%Cu-9>Z+IWq<*?Gts=~s1N*5p-)2yt{}7- zyW?42#d*d1<_2;X$P39P95);;-)SmF37IK(8!MNCtm(4rcz-;-;ZV^qbr!E1`~i|& zDndAwK-Kx@lTC9je(t7O`vXqD^oAO8be69%H|{hLJUKn^v7?osE)E^4Pydk;A0^F> zakB3R{pH%KH0)kkiotpC=Y#V zTiB+aW42{tJbhZWd`M741*qWYFv&9de}$W`YI%QPP~xZT8bC25008~pW$%h6reFHJ z7Op1$eTVXY>56=re&Nf_7ot@+R5wIXwgSUVf(C|yq#z|w1bfkYDJ3>glpGxdrL3~p z*yJ;|!940f8xBb)ipJdT@t-qlmeQ&k*6-VE-*Q{btPNmV2;m{_Z1NQxTRhR-iO1k9rxr#u%e#)~mx1WFC{d5uyZP3WGcW$M*k+gP>t zXYyAvyXAhnO4v7>$ast9MjfNy=F##;ktS1yW&!gf!2t7;X`tACA-rg8;-|22U_Q6S zF@?6@c%5*E;wGAGie08LWU+O2CiW)d;W{(ZvyNRvVhb~BcOBVgK(^OwBAsN7fmTxU z1}%n3i28WlL5lqrxLnpy4%}rBAIs=Y7c8V6LfTLGfi8rJ7cfZLvd$k zKGN8Xdg>TDRT#>vWLd-MiAMqHeQwYl@Ec&?A|kG01q7T80qr5yic6=65QE!Qqa_xR zoJ{yE?_vs?)-j9wCKPz;kaXnx$44v5W&-C!lrREU{$E2)S+wIBCY_r8SJ2T`#p5j& zC&u+hZHX%xczpy&>Iq3uFuyhGgX8 zTpAcbeh19{nQzIgNo(rDwpDVYUBb3-F+7=oW?$Qcw+qc}cCB*qD#}fj>>p>G44#qo zF7QUmUR!?qW&JWCT5lYImBKV-?=qoh3tV1^XC=h& z_AU`@KHqa?f!_lFu$^CVSvN*;7nDes1Y+$xOj3I$(;vlQ1?h!LSnZOoKMX?DvoWdO!3q~FKq86$|A-1jpZhJ{NeCNAAND!;8C0nD> zIAY+>E8&d;7QQ3itbU?*S0?e-A0UDhU-e~p=6G5a>JWcfggn(FY91weD-WeK3d4DGM!~5W0a(u{!AftNO)nqTydJpYcZT zGm`(U{M3J{ME@)Fe;It?%lHc_aRO4G{NteGW|!7#Rjsq3M73^=>t7P7sA!U2qpEX} zg9yJ;;&hg)n*62$zx93?Z?pz9gX!*OdQ8T7SM%`!YVVN@5)3jD#@$fFC<2iN=_Ylu z*Jk}tYhjvV#TVqxh*~h_iMG;3J6{f}r0Ocz)5|dIZf8@r2 zD)fzv^^Nrn0RTnOM8QnK&=4a1QN@`U>j3|fKB)Cc%R7Jmk6E8TlD|9nluR65O&tIG z(EHco`TF}WeA#~CKc128pO0Cy`#N86sN6c4r7Q}Tzq?q_ut;?LUr*LuHP|353fBHV zPi!34#uq^)3I-U*^_Df*=uYL&KjC?vMI! zPx5ty?@vCUh<%>D8=vR!-zK(77N33W|9N~%*#3iq^Iv)Gzlm&rS%2Zn(-)Feb=0uL zFnmSP)a!V_32DEG#!;bLOU*GW-VZB zL_YLDie*lURKCjLwO_pSkkg*P(M z9x*4)*ujWmO8fwFyH3i0Bz@12C5A@Tsrz^yzGJIA8r*>ObQALDQMnS{VWo;x@)K%g zKY4KZtipX7*Ox-P?ovmN>HfCE$}S>em$k1~m&v(Qdct`D#{V=O7mU^j{j}(tndZL6 zo4p)|mUpdSg7`Gu^*EfHbo-y+3@tV*7^h|3wbT15pEZyGRjMd zNV7^;k@|*bzC@fG?gAC58JBl25a}KhPe;)LHwaV(d(z&+(yyqTL7xRqsgf1h@`>lW zUpkC)lI}|9&|>PK@%gXq8zl2&rx#bHdNFiVa21G}BF5>nRYHj>;GU8et%B?rQ(Fob zysKK8pbXMRX@|YQAoXFHO-x-{7=5%EVp=3dEK-vW_>I!s<-91Lszc^1NMYus5Iw}$ zg;#mG8)37&yNuD8`;S2!wA5NcIW2ZlH6%{U#x7-Jzeb$3G~aUMi*xXz(fptg7)2{bsW`?oM5}hB)p?;c;?#V7Wy2ts^-I zJ!H_oU~M1vh%-IExHL#Mua9hDaK~9)HsQmD%`&l(e?or}lTGmI6e!#Z^qxQVBtKve zv5;mFZZpb`u5weHQbHf2F$055Flo!Bu`oaP2%7CACM*Dfsul zP`Kn!XjNoB1I+Gcu=(4jRsR*LRGds4|3S3>@96u#g4LJ(7ruOb;WJn%VSP6Jj-jd9 z)g&gvDs0JE7ZxCuiM9cipc$%IG6!syG2_xnC9cvzGu5biqI?h7yeDIhX6!bJ1(Zczo{x0Ay~Mfe4Nt zsj&p3H*E_gW7Wexb`@xS3@qvnQ<=yXE7Ybz+Q#Rt%FNEoJM$&h>N1PY&3YH=3?JPi z?v6rqPRJI^6(g8#&n4R8_MzWUX8JQ29S0>g9gtu<_mg;m2{b=Xiu@Luo)#=`zH@85 z^%6;#HyWQT=Uk>4ezF8x^;I$Ov>O;h=iu> z2bTlA7YS8)I`O0s@|fPFuYYiMdlccHDM+>6%@q}^Q85z2+2>PEGQc!#>SOd!MT+rk z@()jLbZEJV-^oI^xyhupEm>+XVfo}H@LVjx2BzwquA)X=1QOe})niH~#Nu}nfzpP; z^eu)1Fi5$I43X(n=nhhzr9JVuxyKlIbg))T8Azv;Im<W4{zoNlWyawUNWD3>OHx z&`C~-(J|kfXm355NYPIiSFRGpPfBNCZ}OliAJ@Xlg#~C)_4F)`bKU4BxxC~lH#_02 zO3KoAHV_4-D=slUR!~-4Uw$lab}^Lhkqr;oM~b_tHZFRcQRP^!4#$LGW6UD-=k;dH zU*pbWF}2n11h*VuC$LQ@`J{~*FH ztj*J1hnV9fkUd~>kVYsSnO~Nd*=QtH4dAq@<66}JE!06<^)6l}ClP+w_8i$(oSpa>0s?(xy{%2=08Tg&j)0a^ zdXeP}M-VSGlEsC!4svNNC}Y)Iux#-hFViMt=z{;z%~@<3;k8<}Knv(&cGo-4mgBp{ zB+C%nZaVbDqoNt|smA2eWSv0&c}XHHDPj(<&=sZaBpv16XqY3|1?aPP_~<$Iy^BGv zds%53*0-U-b56chKmQG>_Y8SrgIJW9#}7}+a5=?nf8R()Rgx=_`?*Kt?00Dip1f>< zy_q>o@|e&fBcw*+d4_tyJ1UyzMx`WQI{BXu3eQJl-0=a?9V6Ib`~LUNLeF$nwR6Cf zJe?4pGIs_#PSOuRWrA;ZjFUhXsL)pwbS!T|D`)wNC^xrkl3m)g^R+F{IC`T`6Mrpl z(&B~oe5v7}f4(&E{cWE3N&2=nQT|VL5E5BCTQvhK6Bm0$7h78cL+gK2ru_2sg@0=7 zM8|Z0kt~9aU&n^Z@=}%!PyLg-DIf~+0)CUyF?ya$I3jwpLVxMrB4cAiqr0N^X!izQJ^dRe@+mb$!=xav`GL0C(fC;QYao3WwNwTisX?2scrzaUY&w&~G-u9+_vhK34a=fN_-M+ofXxRa; zM*F22pwodcggycMrgOYo1EA#@?;dgg?Zo4ql{u5TZw#QKI)QZg_vaL)qZQ1Xz@ zkQg{fgaV*(X$={eiE_+@>eFxJxv2vdN-{xmMafM_`M(KWBon8a1ZMyItZ`dMhSbP} zs$~enA)xguttdYN1e{y;Re`sPu$T@t`uyB3734KTov~JXHZ~BFBP-g#Z`6S%g$+g< z8d?e~67y$_QHlMC_`s$R$UF3&qrU8y8mkEbua_!g$OY}n!x!$XZ3sz z)GEGWGbK_ZOq+I^v!dw&kZaY127hq6j6DB@XbWMUV$8_ehPP#TJV|z6+xHwT7sabA zBq`*Ei(JJaOsF<5To1rloB2LrW`_0z@?)Zo{yZ%ocp@2{Ko9 z?;#P|c-W|&%~R~HEj9%0J{e46e|jHSgC%Mf*8W&TKGLz$k z%>?+B9B=?bBeXDC?loA8tw+`8Q)t~6e)d9gG!9R*17gIVxqVh%O~bR_bJwWHRAfMg+1VV`Ab8ZrbVvNv@FKMtkWhV5wICU0TzkD62;A z9U{o9nP+dBP&7V28MY0iSRz_?98uG+ruydEt`@j30oTK91?Yq)Go9Ns+um7lCZ`j) zP`3Z-D3YMsX{JUj8^rxFugJk|dxw~E_b3Q0!=`|)|B+_s_iJ?Zn)?;?q&fV(aaB3qIhnROFI-BqVvo>Y}i2n!dIcrT6JOOSij{m9e+FvC$Rh! zRJEzGif%!5&-+%78D;k|boY8Rzgjgi9kXPqs%hy+sFd13 z{{qzdlSqSEs6;>j+hPJ8X|^+8vHjs~yz0)bbxAGZyG?KoS-M+)ilJ2!kp(TO98!?q z;33_J`*+zT>(Wy@sTlh33o(kGZ| z#phvVluGhQy+}}naN2>V`bjbtzLqxR_bwM`_fs=3j2Js*P;qY!H%%;4(7w3pqq_?6 zv+}GCtDx}HqDy6X#XaMli{W}J>vLHgA+s>UeT()V*DrgkSs|e5YlOIBm3jbZ27Csx zDdR`TEz+G$85VE`RISAhg^2XxJ!vkYo(mng)^v@jG8sv=IxaLWHPYc$@TQuXRv4KU zX*ejg1KueA!Ahqm{FY%r=@avu00564SEF2^tv+*)SEG|;NCZ%ZrCDADWf zP%n3hI|MLEohJtUSV1#u#CIQ&5HI`eR(bp(O;L=DL8ib(;!RbZD*FI~}> z`9YQ9zS-`Zh-h4MS;~e&6uSbt9TsHO$zx@?PYR!L@Y$@DhUNvbi{crUSLd&DIlil# zWBvw8nd67I{Izo`LIG@xKSaUl7ZtOwoDyGM6JN~{7>YxTOfn-%H=nCrfdJC zGPtKb^SM(|i)Z?o;eH!B(F)`+SnF{QG4^2g5^C03L+=B%?u7Y3x`gThjDNKGvkR52 zZ4T(>MiSI@J$4lK_&Uiqj{T`L7!|x<~<3mgmoI@Xy>2ZI8M4eu-VaM7vQk-jW+z1trZA;?T zIbX-_Cqp#j4oyPq^NvDF$|Lw>I~Q+0(Jf`BNKQ#-gCUPqH!~d2QA>qhh>DeqWnUMAlE!V}yiz6JVfMcDOOJEr~H6w<}W$i(DJrQZA>o$&suW&UOOg@5)l zj8^EB{px2pUk`F~w9r~;lQ5W$=Tm^=&Xi-p4L?4ai?q&+{& ziBX?&@?5vW3GGprauRNMBWPC=RH=Ewl#4PTz*O3tMpEbc9mzS(z#36h1)Qlme-7nIW#4W!*kq3h7>=OmcV}gcAgfh=)>!!?HjMO+kNg z>82=D!3B|ew1wr-Ox*xpKW5VcNlwE|Su#Vm5Em3PawR$D#HDZK>;=|$f0;xM4xnK7 z&v~%@33_@%HN%mL0pajwgM-bbtzt#E4wU*Dbh8um)b&^zF;u6s-VOG`^AJnzyB5j z(dsc!Ix4T@vAMIC&vM3+#tMX)bqs>C?2RW9kP@jAhn6aSm1h|lXH_1Mv2OPwhHdc%O{iWuVFe_&8GVw_7`7=~0|?)z5<3i= zC28%PT{O4`a%NUh{5rowc3iSyJoiF@I^mtL&k0?bz{of8Z&NYd1Gu)|VphF^rVDAB zFo?5>arVN5jK<)Z8DOY=A7nOK(JYo5A{-Ag5_u` z^*00D{6FUx9O1cgdvbZ=i|z@2nVM#XiNZVy)~T`rL?C{DsURRd>8bgAuE?Z!(20 z9*o>Kg<6|8esV((K-q@w~WApZv$?+p=G8MI&MicSQ~a?-$-&ZShhY=8yrXJ2Yre&3~^ z0tDuqD}WX~f}Y^YQja`I80I# z$zkj(JKP1u8oI@);Xcx489$ti$RX(Nh<9LZ7Sq4~`n> z{Kf`~ff6gsD%!Zaai3sqFyH6SHR|g(;;F9-BZZbzAl!{?H8KEUKhbucHxJ2LHtyWq zXw+N&6O7Cxtv9KZC_rJ}0weTcCHFEc-_-#SVyky3E-sRDYW_xwW3&)q``OV5XbMJFbTMvWBmvf$PM#*8JWcD;ieeFSk^@5+k+Hn7C>7(L+oyo z?2yl~;N9hgzTrl2+|pn$@nL5Yc2O8S(xyc08H>yG~WcX|);3i$~2 zWHJ0(yW2D>>M>4cVrvAD3ZS9%oE)bfzT>k6{I`*vuR0lsZ`Ck1hgP&N49Q%CfG_U; zTwOqHqPRXuu$+C2*)7yGdHkSwf;U}}Jz^nG$Dk=qu!D4wJ!YbHiTfqgjLy$FmQ1Uz z(cdVh_JLyTN^PJreN{j@{J8Zrr}yZrE6Fwd1x1|mw;-OkCE1Nd$6GU}pwZqD?co8$ ztVT&)1L1ulx04&L7OVAdinaXG^bqGhtPHp0v4a*1Ox?^tT1Dy3+sn=SMMr6`crwG?0TQe(7y6Xr_2cnQC1(<1d47R3g<%RKx(qsN z8|~#IaaT_crF&rmq4NV58-cdT9?sn!MXKx2R!jzu*d^9bgcceFFwafu~XNFF{Z zCSDn4>u89pNk0l{E!zuBr+zLQLR9wO&^F-qExTuM)6dEuNyVXEfp}bE{bBKW?^1TC=gewHW}p zvU**(d2-VcEh;HnZa?9+O4~ImO+{Oz7uDqfGivUD!VPF9{aTjcRqZu@-wIVvpAhQK z*R7h$M?iQ`rVTma-BIf4gA!J;P!oS8IzlHU_!R zIU19vEyXWzXS%iwj(KPpt9dia67y&n3*K~&+?HxFtAC!EY2xN#h-bux_MMnjTY8_B zL)L~C2YOQpHx$CDAO&t6H5K6v!@ zU`r0Nl>e}6U$=SAX~ThqbFt2m@;VWQZnoJIjG|dDVSH9J)eG$)YfAQ$3UEp<6ctD>l5YX!TXk5-P(e|tg|41iL z#c9{4R}_uLH3`zo>LzxnO?^_5DO3+>>x8*Up!cDxaNR;tkednsc7`=Cwi1J}Kr7N0 zRuqu~4M;jdSabE9AePnp-XYD_8KmxwiJE?nJm?2Y1eaJX0J_H35q&O3ONf)-TEYM( zHU|hotSdB2f2teAgG0Dt)-X}#9WuBy$&`euJaj!l9U|Rgg}F2nXS}!=QbrEE_?G`cWeFUkgh+(J=nK=X-@_eomT#7Y%0hJ@cdH+i zKB-jpbnbLMUZamrxv#WnoI)_YkoSNX0wF31^ya~87V9R=*@uA8uXnDk(G*|R_ zo!}Z-Im0%KXyN`bcVyC4B<@*bAIaIQauA?`Q9KGB5s}!uq|yL;damcEL?!($aR>4P zGVVZHFNF^9DO*@&+OUhZ7HwxjPxj!3vN-c|z?NBn84=YsB!&1c=seW6kN*JFcI7*C zG$Yl=qUDnsMaURe8loIQ+3q9KgR$x?&VcgcvY?&UsZF)fd=S89-fug_%T{w8+EEGE z_=4Y{+hTT2l5JBc_#YlyWaAB^>KGbo!3&QB5$DBR?Np?R*(D$=fB2;|%qTgKe}4~v z55x;Yjy~UM6@c%O@biM?3BM*sLY5s8TOV~e(0hkJMT zCUku6{tUy-+voire3PuLPl`$Nk)s#06Y~sDBXg(T51)4+eYihd@qO-SXiyqadnvlM zZU#Ui(1~c0XeAg-4mzU2m?3Ks$}#l&kE0G}n}33jtyhHlth9(|*kP?g`(vpkL1TrI zL8MT+XnZhh8E8;8VsbVO#8Xvd817Yz=yS-Tc@b^zcw=eaP=7kwg@!7gjSM%HjO%|R zY^poIp+G8{Zq00GkeYl^CJ@Av`kAUid@U^f7_1~hQh$%5_GF6`f^uF(?tla(#C6v{ z3R6hCg&E>Ydr0x9Flku1`*R%d+hNSen~#~(6@S~!JQSd-n$cy?=58OOtm{QGHIRX~9A-iKFY2`kXlP{x%f zRl@swNZ470>0V8=tg(%=!Fos_CU#?5BZHk0U?j_cO)QYmrCSRO@`pO*K<~_MA|C^X z&Ah%i>hF>brgby}A;k~jDGWD@owl=xu$U7V+-$UG&&_T33ap@ip$;fi{Ve)jl4b0r{dtR z0lJ&uSi9qdzUh-h51(N6k`}?J+D9eRcY}JxE?V7NoD$EUBhxwWwugK+iN=Eh#6ub+ zhB5lB9PugonY@cqtAwQR5kZ?;<+8g391iR2C#mPK2L|@J}TFhceLr_nQ7!((&cs3t!H@P^}K_j~_ifDIfIirR(B_L_Mbhth)2p^tK>8 zWkXUT?wC7@Njnd_sNQ0M`FuTlFOx65{V;q*T3I^yVBMq;#nz=A zwu-2OWRCv#%vTo^bxL4QOE0#nK^(O()+tKc z6m!Wp#8_d_$V8lQcZS9N*r2y?^F^2uEiP-IhE%L~_v@s!nwGtcJeug@8D(yi-=MLf z(e6Z+P#Mf>>~7%1vT z(Ng3=GGMlPEKC?tl+~#-;!SI%&e>+T`X7UITYc)AhltQvj*;RO2}H$dw2j4EJWFCp zSizZrd-~p$1Unn{^1GI?Akr?&eRXSz7(AAuFVTgB)5@-5uc9Y;h_DrQUh}Bm5J^U> zl>{!oA+kpI@^Mu~yZ*{@6(bHOyga*gt$17S%3kATq|`^xWEJi^u z0>@IVQ}x20N4aP^9&4mM>p$A0Gq5>HE1lj!Wt$lUjqGABQ!5uF>AhaXWqm!W7p4&I za`Wu$aOB6sVS%5mUpKus8BdAR@4MeX|G|mKa&TX&AM_}h${*?DGMoo~O(=0k>&{;~DA3IS)ztn1V zX*uFV)-V;HShQrm$GL^{^ZLXKFWOx~Rm|60d)8MjDxA497jVfQRAI67AYi>>13EB#~5+Q5;S)Bbut?#^H_jY zZ3~aQaZswKD@A7?F%lz2Y^0gb7fe`MsCZTx^tor3t!PDAxeUhZ>oNIDm{Azxu?wC< zBL^;XZm^2Tr!K?UR%qds-DQ}CgymwcDz~~wZT$k1Sw3~_tXeS+q{IFR*E~R`8Une; zJNf)V)W-n4j#wp;NtfBz=!p#TaM58MU(FTMUrP*tcW;CI>T^TEJRbw%qf#8?alTxp z;@&pR#-(~(oRIm;xm~HHe8lzlYQ9wG`C_q5sjnh1NJI?EI8B;}h7>5G7R2L^|B7VK0AF zCCUK86h@tno3fZckQ*&e?Gq(2pBai}gW5>xO&J+)$Ne}Ts*+#P!2w6%L89b%>EilU z$9XEB%(Dw80k}&$IR4TN24CR;()J7$n+ftpCi6lv({WtPUE3(PM2hwlm`y~U4%mVK z0dYAcBX9=J@=sllKqU5lrx~p9m#G(8cv(>wE@kU^MP8rm3bziNe64ZppM1Diz1*xG ziF6@2OGC8;9=S}8Hq*0PzAR{FE66kA*)3kQ)6qX<>h0I@n1Rb#ep8n|xM0?=mU~lY zU^G;@wV}y$qHBe;`yclGHe;KnX2Ke?&^%7wUYji^TgxOydkBtttQU8VgN?+5i%XR( zpI(c1Nk!!D+xEmNCNq~1E3P0bTPK$O?%Vl|DqnkB#BGk7*5BoHoO(HgQf<8?OSX<1 zh0`*KN&7pjteKqN$3xBo99rI{3j;KDtL6Q4i#RpM${SX4x;1J#o|E=Zor@$y$+Yf~ z#i4@6d@m>wEzx8dG8`;z zY}-cnSM}n%ckbMGB4$=Z{>Y3xEC1{~XYc*&vsV1&bDW@&xJP;($9joU$whzJ zcg{60FV}ejF4Ny0b^%!zvd;8cedE-7!A!$hV-41yN6ieKS_iHp5hdF!gT|9; z)Gw*T{n@9TWK9B>0aOw+Et!^CGu6ZUZ`m>OR^j2xDXK1_qIymR}t+ZJ7dm95zYGSlVhNZoPx8Ui@o-W zC`T7K0{7Q)02O6(1y-zu30ziyQQA4p9R+x6^3`55T8c9Km0Vy+jxKb~bL=BW)wMWE zyCy`9(ZA(Le#@lGzoJaNnNZ^jEbcBrpf23;ylU%m93rWz`UPy~F+g%NLzXtDzN)kZvAqxzxaj(sfw^w0%#;sG{$pQ?4FQHY#(rmVx(9w9Yw9TD1U z^ zT;WbNT<_ZZjQqe*g%rK_G}h0Tcr=XCa$_vsmF9HOZL_Uq1QzUteeOYsRU@5vZ=Z?X zN+Y&NLslNYAwgf=;A_Acn~w@CrJG9|%mLTF_Mh8s_BlD0kR5Wef=^D17x(IsrMp8+=7T7r>naaB8XGZm z^yfYa3QkiEg|XgJ78(6aamwWgk1aM%bySV`mA?WC4)OqV>-_x&LyzKU()OoTU007^ zRexY-T6)=ps&ECrpdIizTphWU0LCXRJ_Z{-K#CIGm{1QoVf%%M`lX2a#To5%`}$mo+?lfcz8Q;Vy^2A(HRX>V;xaX!!xJSDQ;tHuhtpG`{2-~Le8sD zsM1Mi_>6w#n9y~D{nxhJ{pzT3wc)6iPMU@@+@;?YRFyPnVYcKU3vT_Jz1;l%FIDMOhmc|&S5bal&g>T zWD};}}J(dEBgm}k+lweoa($9=IRqzHfH=A26u)RPrR})?04D4`eFL1=J`H8rQ zWiLDV0g9!aCei_uUZ%{31C{$oev_wQPA0snlQx&7fyfpzgz?zSx1O!S{=xXOao3>O}9?}9=!dFNK-?qXo-XT_gW-{P#RYxO>4aZQL$l8P-5}^Vt+!ZuWa+g zwUetDs{Rif?n>lqtg;Kdp#Z9}a8C0OIW`+b6PHsmdOD1jXYj>mG7JehgGUs+Tm_43S(v2cA!ja!4T^{!qv!PN3sD|td?=ui&WRE*?__Zs%iph zl`)Z(p{J{$Ck^*_JqI9}hjR}k7{gcBC#N)Vmem#KyxX|={N4S<#gIedS8FchDC;o5m2&>vz{P#n5 zc}F`N3n!C*?k9aO`^GoLH)53j(?c9oGL1GW`R5J{74pfHEr5@pgfviugaVQ{p7&2% zG0wIN=FUc4U(|?au>B;sKcq(7jW+N`eOIPtGg%y8Gl*PfMWrWZAyK^y z7Vaqj8BVC6K^e{vsZd4DTA)D%0njZmuSLX7e5?1}By;k}Cn;QU#&b4>P(+`HG`+#* zu>!Gq2d{L?2Pi|9st$r9jf%V)nU0=$zcvPcOOFfPlEcb=hHt_Obo*Zsrf3iDSaRoX zheS5tuN8>jRz!hIWN^&Sx>xtM1>^lXpkB{0WF4XE#`)v%d}5SK^KLvS?hfdY z{GG?@t6<-cZpmaEQ2(IlumG2JbOsz(ii3*13%V(<2cGwS`9sD)7}>C^50(VcY#6C` zXy*lSOfKZ3R~$jF^0BzDaiZp!s&{e=2#IRS`(c=ZEnd@IYy2*Y5xOC;L1XiJZ!bSF z?~8^C*#r62*nS)lULz7iJ3O#E{mNfvh{Vxhzpp>)Z_-$T;>;s<>O?QGMP+=cAFSI; zo3b60!fSYtY)X_~z#zlGkD-BC`&2+5qk&%!jaiuHDPjdWQQ9MrOXW9AKHz)EMJjpS zOPL$bDZ_}hh*4x-g~*f!ZyDU0VLbZylw*=!m<1JVhp;T7O>}X7K*GYuV6_WsJ5Mcg z-r5jH?pi)$P+3c+MCmuM0#*bz;eg1sAm<7yf^186%dsKhJ)us}FIq#8$ldc#9i;Eb zjrE0J`uv)R1t9tHgW})KjQsDB`;V^C_o8on6MUmt{n8Ct4dd?==>_pm32`6-n&SAx zA3rzegA3#{`DKJ80(V7NgFzu(T$xs(rA_xQsNwbGt$mhNt(ps}>6D8tD~oA>F|{lo z7o8rW^gar3dtMac`~t*$t|pCLUCl__$3WSSx47J{@4b9yCVZ}by$<+odxG@>z34#y zyoo_)-Pb_at`ZP~R&lRMCG8>ETW1J&&++jNqv=E*aJ%I}pc}-mKcrjQd1qkW;XvRE z--Z3CgVnkzK>q z8Z0X5LL>uqDNCjW=D3NmjWDb7)1|cPPb5l=hA}wKM5PhzodHo>#VIP`!tOytfPRNe zsSL-XNdS-Wz@{u0A^vP`R@J75^e~q`<>qN=*%@SLp}DDP-xlGiFTs|+u`*Go6lWUM zFn^X}-i(~gdnwlhb)GSM056l7rTm3EjdrD^$0`%aXWTcsJl0}UmyBxon+L_+{r0YiA0zhww4S5_ zPD^-G1U?`Vc;G>61~FKnl3voeT?>3sk&!~N$B=z zsL=50B*O*o`%-C#2b2!8(w}55(Ft)2B_}Qww!x#H!86;QO1gX4!G7+$B?8Ho9$Ry# zb$?_h(6TL7GBxYs*7Jagz?AIHQ_y8jC5p%TEQ_{LWq>=Ho`X$Ty_s|a1nAAO}=vPQabZ@b!Z z-eNw8KHU)hKtqTXjw^NqAu7C3S|wQ9D|P1sO0kDMCb1r}@Ek#I#-=u3+s$%u?Kn)S z?x4sAg7D0;Z_D$+N^+MHM0}QzchDTH3f40!5>E0OrZCD8n*^N!1DUi404_ z!A_S`Ej5K+rFxjU!%nCKKO?ciNpzhg2CK$w-_GijtLxF)$5m(Tc!)cG4ks2TPhI5C z4KT;<2(^v6LdGTPzIhT0OW-}FQk)JH)+G8cpSjUs*e45fV-}9J< zT2;^T>;HgiFfK=TL~P7`vm^smsa400WMCIajPq(3#|i>6&cA#YVxMG&KM}*8-CR@) z2^fD+;v}vUqm~c&tqEq?`FJ^oK&PCVN6O7QBf#*37KjXj|Cp72$V@-Sml2J=E@;n0 z$YmNM-5qJJAixz-1`N|J8PEo5`xsn|o7j2`3U@4=$|G9nZj66y@9#csec+Ez{#JTAKcPZtC|c6 zSphpiZGwVyUU$;Y_tL~*qp43#6T>dT1se#ppqzw3_57IK&VJeEUG+a;K=xr*V%q~x zqYl;yK$xV$PzTa?Mnj(gr6cO4N{HI$)|#2wqC)3NQkcxUOfa;B-M1arG8|iYOFtQc zt3_FcOe^WkZ*x(5^Q?{oH9n4ecYL5jiOQ3PpnF_U-J%;1nSx3P&aAe@gc2Xw>L~+_ z#`Y5CjZ-Fi;E(j`A^iqCKQ;#%f6oyZu%K`zHPr!?fcE><=?VvQ&p0Ya`T^I)*0F^V zm2*-o+cItThHnpA0;JWA=5$Z=Xi2b##DRftkCAbU_ao%q=wSB`EoAA-f;g&AjO-fYhjpS&82re! zXLshPk0MQ6uD9jQDw8Vs%F+|N!{j>H)So?hPj&h_*lr|BH?mubUa%&R{^G-K+`{eE z1;6-J6ujt_k^c$kXy3;x`^of2Zf8MYzS?{Kw0CrK0QZ+f3Sj-MHx@AYAi8}j z*j^!#KM%a^nxwy$oM58&DyLcKCFNvYVX7SeT-`C})W6jd!9E$opWGULzW5bYsrcr1Jy#AX9F%kD1aOfZWFdjy=-idg`Vj-HPnJm{o^jGC4s$rXFuk2k0FKj*kBkg*Xl!bYC3Ozd!!wYEs;xLsONe z+L{JcDFq#!WfoPl@BlNiO@D!EhW^IpUhi#p%QvTZVlb*q&30|S{g>8`6?$aXwfjti zH`j{CXZ%;iu9MyBjjI_tVT;!&yp8%JsF3%PBlTZeA!)j_Ml55x4ldw~Ds@=D*|kas zyUnsyV+E=jixsR;vxw_i^hYe!qzd`F)X`Kp==C)MdQ0OdOpSXOC%4rVxPA-d;2N`X zp;fnK?-|E4=ugjdmO6zWJ{WftzF!K8?CGM*rS#nd0ESe(OjGRFx-0=q?S(3AtkhKR~ z`tI`s6{5*!gV6_wLKAeSPL=I73)`iEUj$7wLMQN?*^spdNkY4mP}MAF+D@6GUGBBI zO^#{87_kRnKjXfhBX3#TJ3Z&GH+i4?*Sc$MIGyI4AGWqq+466!Y#&d<4zT-AF2 zS^6rs;T|Z-u2_m~c9=Z<(N3~Q=mQPjn2Ju$kwL}fdTx2dbumFtE7HB}E&DJ^(;1?Z zKGM6dh$QK-;+@K!n_!*@NB;yH2g>S0BHHdST4<8Nss&aEV!_-5lTt>RcO)5X@|D>p zPaD?6D53fFDoe(EgqpKtzaeB84YI}|Y+DN{9uj5A;t=HL5Rk}>BP6pC+!v|U%%AvP8EO|y0jOm4A+3FqhSrI+)Ry0|H5J&w@qzw%e( z;NNQD{{L(u|3&*>6aW9*b@*QVjc=lFq$o|;ere(Iut6}m!nojdSwJu+6QjBWkd&3F zmj@${11|nDf}2vlVs97$=Y@($Q^#NOM&4Uvu?VhcnH$~bdUlx3;9~0e`|$#?!=Q~M zQ>967Khh7W33{b@(Qc+c#lPO`Bd8Q-ytGB!29)70Y5q9}B^IDa_%ygHFPsqG%e-;~)x zV#b@^P>6|PY);mW69iQ`G;c|B7=#ij-?zvyW$#wth$7pxbOjO-&WuYZ5Z!` zLfw<=%RpjBQd<#g8+Hx)yPRzU+N}V>K*R{IMU6#ak3|5z1S|~ zI7AV-$3GF*?_U}M>+~l6eP3~h@^u3J--Xscjc9)_{>C@aH&T?poJPMck}TM`KWqg1iY(6c7s1WP%b(5D>GVKU$o~o}6{qbZ8auzDs%Ut_mB{C#WIe#YC7#_Y8)+ zrH%)!HCZ#dnO<#tiM9P=dcR%n6#C)Rwg~~VFkcjO(kl&)F=^R`SkPRFS!2;Qop zrFzt25Ro}R|5T>0%GhGRd7OdRZew6_NA|gylt%*ko93sibt=K5U7dRe4YUw?M#^wr zy_W4nX3Oc(S1-YAWjRycFsd)N7CkV(Q-95{P!_(~%X^(r&MseZZwa+F!*R?0t@y`$ zw-F%XZ?&G3YNba(|kWf4=kdXbMhJ>QS8*FXUxqt^N=3V zC28v3s3QG<-D6O71l`mIpi&;U~f=s8sogOj98Ce&6p#?o># z@usOHf*tTyU6b@^KI>}_at8~eTVbwek^NAGo!E&wOgo@%7UF^jxU)RJ#M)A^CB(cO zNGhJi4trQ<5cA~Hc0nIE#%8$GtgSG*SJZJUy1K9`$$(z7EHbaY^^F+a2cRu+!TEjB z6|E%yT==}gfWt+A59sqTwi}xwxZ}@pZ+vXJy=;TGI8e+pyJ2F~637MUy&{$s+#kt%jD+aK zkq^@+n0lm%LI*NJ9HMy2FawyP%)%_ujPtKZpP0k360wdQ!n^y6AHax2T)QTwh)TM6 zV*OfDgd$%*$rMNH^RG>_Va;v1yRTg{^=k(e`#)~x|GNGD%X|6%@`?UO;`dGYjc@vI z6enwZD;|&hwIXx4#KaVoRFdQXnhLOARD)MEfviA=jZlmjY5qlAljU+4v~NV<5CO*f z0}qnnTom3>JjVUTayr-4)a>&=%*b8mSQUm_LLh52za)3g+6;C|0<@r0tkFxRaD`g& zhGUU6p89UXv?UQZ3=bmk;R71^P&brDd?dZ#$LYOBZ#tTVw-EC$i9!>xzyb}b@g#4l zOZ^Yxy%01kKUa?D5aa}l<6=mDLktWfpNhB>5(3hHwIa!E2N#s(^SqucGojL%!Hu#e z>QE-s5|i-}`vM;Jv_apmeH;=)>W$5t-bOxX+z4sGrg!Nhw#zG`SSNUAlq&3eY=H-k zs9(y(m3ZYjl2(ql>TenY%j4z)G8dwg`aCg?Bj|9$EX^Owr?1L^u|QR=)6Fs4Z1!PY zt(#``SKhB97%nF1aU4jFt09^7=KfL|n&+tB16 z9?zI49p?9Yy2!Z%?+)m#knqFHuEjOS@zti6+J4X9*K-{I_mvs^xI^l< z8}2AyZ<5L7e&rC2v3QLsLzwfuCoBWj;8kQ(sdTh{Yp8q0bi0sO*>tsj@7g^u6uyd= z3<8`B4POK8km=cGclrI2u_?6J+G~5z%l3VHyS^o#+;`|Cm5FM0Ztz&j;T%~d*N~BL zNuUmR8D!p~Ou~GNiTXf{P_m(@h2$0tMW`BydYu|gSiS0nuGZpZYtO{Wj!;{>^Bj_^ z{VANb~LPquF_9 z9d;$MGeecy&l^A!U)mSDFn*x{arF#kc7)gimrUgpuPhS`6t5zy$1X3skQ`IPE}7(?&U1vbyUeTv=oK3KH%~TWLVWyTagyo;iBI z8Rk_%Sw68e#sH?Y{PU&x3JRVkfQzSWg$T zY%Wrp-PEg|5~K>fROnEyV@SN#6Py*WP%8b+%>u%c-zzfP0NSOcZ05{CtR4Q=9xrfp zce&>8*;i}!N!FR(c}3wMgYcfate^q*#4G4J$~p|opEtN)2^R=g=$#f+5+&$9e&-NFtOMK)Sy=RxVc+iDxH3@_P}UIlwXp5 zqaIZKER9Jc;8!7>9?=DY;-s08_X)|`Nl9^t9wDP6)A*%Iw4{ERXmYfaIkFtjKxN}X59CN>;}px(r4klx zI*#KKkZzIv*}Oy>6dG-5hZ~K^SJ)w3x#+an=M5DXsZO*CD!hdi+NsKi(B0PM;~E+V zJdP=pBHe-swWOl5*ZBwCGtEz*qK4aa!3o4WURt+wNH>tELbW8^h1_Mp0b{=M!G9}i^FP)p|9w#Y=kE27 z^YNSM8{e$o$W}i6Dq7(GEV&vYZZHQ|X4w#g3=%jf*31KyLy8DS!V?xF3gUA-6<{KA zHQ>aK?1_~FBf|9x5t!P5nXk>3v@|txac#3TGBv*6FSp|TK&?+5g4mdxl^-VzYJlW{ z0zt`dCwZ!%ghqi0-4LxEu=%-8x6$i8fzd=(Gx2G<3=N1&Uxw$?xP9Cb$pw9yKj%Gh z3!N6WYc{aP3Ng!)Sx-GoN@a{~%Oy}hEx&3viBvi~>lKJvr!wNw9|qk#58QT#8Z`f4 z9cj~X*!FSi5B(w2xIiM4f2d*VHt~Q{FPj_*9%t}+A{*(YBvN0IDu$&xTBl+8i-|8i zaLn9m$qTn;y=5jy-=xY{8#MP-cLu`Uxrie7xhtLwJv76?TDi4`{Qys@8E@gER#ixj z@`|x5lXw$}xEcXR_)QrNh(+6lkXoqa62?1<&sBJCI$C{En3EaVUQ-CSbnpWA_d^>A z4J+_~4-94r3-xY5q)BM;{(O1fON`ISqb&Se2@0&hz~hbM;S;5D72_nX!>cq5iA$P=1&J+h0+mvA-fXc zPazesJC8Yuq67)C7?3kgO`F+!iUjUjHCO!86rIsGH*&g1og&xxKZpuh#SB!F#)%Dq zPEAYU{`wDJcV^oBqaY5Q8kEIL9?#Uu3ZZKg61Rn+J*`vd!&gbPW7QYh1equ@b%v-9 zxXBM*ga0C2jw0}hO#Hbk1xaNEe%7|Wg?nb<^q%y=5fKzu507WFXN)8ffv8l74k4$! zmDy!=JcV``(hE)OC?o&Zd~gT5zggldAZNc0RF?m%Lt4rCtM~Vh=>8`7#y8nFvXyM) z7UYqAua>HHD4<&-?)JFOIFkWk8CC^FC1u1>O%=5pUdqqU$SHIbIT8P+L<>iY4w(5R z-)>0p`NI=!kbVu;&p1tcOkcM5`1-v==!4if#^+U*=?e@eN2gJe){Tbb8>#f^(024hKx+NRfbQwiK-|}5P zf9%RJAi=tyWT0bQL~p=4npRyeh*`B>T_O$Q-rh3rZnX|gfn$?!KLHk+F40`FL!`?H z!fj5qd&_U-A(n62cLw525ZPN21FhWHaDv4lvhVLU7)ii;vU-D&M9BnNhFFt5xQCR$ zpm2WTx$0C7^sIc($E#(M*6GuivQu*II#;^pSicUF<&Gv->X^il+=NNgzt^rpfqgz- zF6oxlR`#Ng*1oQukx2W~Pjd%}X?qXwb6$R^B6=Bmm<7rreJC?D%)N*pE-;i3jRYB; zl=g|A=@c|5UWwxT_|3}YnVXHYwLtJm1*=wEDFP@;e>j4{4ye1ZQ#jQxMwmj4l{-%G#oP4kUrO$cx0-@o~eO-ywe zJtRgUCHVU-(}DX*E%U_113?@05yN+u2=4vo#-y_{!p+f|HJh6)&mkqNwaQUxqJZN& zT7EB8{HAr)Yie#$y*!J(`<(ImlB<$7O}z2>eEDp#9qLnd%WpikJP!)G-U@mn(MYL7$C{A;HRnFM1aQvBe*RG?>X*^AN znqA^pniknErQ2cR?!vlxaLBSzcz4R!rkd%p`rz-)Ep*7F!aE_A^m?Jq8^%ZR;+s*= zo2J>OcIcmGdQ*N^;N<~ir|glGX6hh+l=V|6?cQTP_@G(turBTFMOh$rRJ`Y5I*l}Q zih*v#1OF#o{PWbjHaT&t_%)#gZR(NIytiiNjQG7qhGWD7?c<%v2gj)n?JugLXOB}I ziYXOJJsN3WfzTduqGj=Gsd;UxDVKR|x~a6{S4rCKUN%TEwy{*Z)OxL=b`@fqhZae= z+T2|m##h!1x6bkP!&eoHEBHXYB%dvcDVpe<{JlaVUM#F`aQUip)RD=AlGxl@qDNYM$)el5tRcB ze?fH)$uc%{9Q?4A?lrkEu{38a%q`EXug(lJXFY5F0{ZEw$1S^vc+M>B!vydv#|@zZ zl{B_j7j|-Ru=TXts64MZ$y%7(S=w9;_AWAM1|eu*Z7VKYF{+p`xJB||gP$t&x(g=6 zU_Fv6={Vl;bE8*4h3qy3)Xix(urc3wWRKyZ)iEX3M~n}3UylJnzpb!wY)I5 zv$MSb-Hmo$e`w>|iF>c_Skb-IK7$k?{FH7CBRWZ4JVV^G>gIA6*v@ z0~~BE5ACn$oPB;di%@ha%n1;u>7g?STj-}?f`#bWGszMEC>(=Z6`$I544rNy%RV8{ zE%FJsy28d5sZzO-$#aRhaigD)_-MOPiNF+A5Pmg`44bt)Gm{QA3nj3jOkX-aXu3Pj zU;{Ba>~I>RiOP&7kO_+@V4lJ(B$FN956vbmQYMsUQP0nOmOtk5Th#(;-b(OXWf)vy zJ0^~%pUuFiP)HoVBGgJEh-5-HD#f0`117hOyZzTQexDDwklH2b1%q@#2>D2le912D zk6)B^D@4N&uhH+>j)1m$3r92DEwVF?qAN^~M>o9m1YDm!iy;7|Q!*|XX!70ZiaOoY z*E1G+ZdTO`|KeuXxc0F5<2yiM?;l=yb_+1bJrfGR#BChQVLA#3{TzpEf+RL$n9>9E zq5GE~x~N9=wNqM`%e}WFs{ifCU_?d6B{Q4(6zc;h-<=Ymc` z;oN|z3xCZR%n0V!?GDIJIr>D{$f8kLoN0Jb2qLT2B>OLK{Q*!1R=cFFI3pkixP-zk zCwy$Ur&FuIdVJ&scvvxb7#WHb4*Dc3e@)^t9Mx#q-Xl>Lzh1&2CH9m!GAK!F>i&B0C#l z`+bVs-+rPt4)Oo-TKmaP#tS_(%c$^Trj)*rMUB- z48I7F0oA~R=!xwX8B*? zm3n>t`gJ0g%Y|lXB`3sZW z6=?W}gaX_Nn7@#%T{zP)rly3>+!^gM*)(o^#_|K(M@jcd@;;vVefH*lc2^;Jqv6Un zrlyoG&O)c(@d%>_i@FphFHWQ+t%15B^=ZR@dw+vjxN5L@PQ7%0W zlcQnzoQrd{sGi^e-(fC+X>{T&-tW{SC@ngIxuuum52zT|dpedk%+2!KT5wzzg7Udg zVTDcX7|{Yup0OU)S2oPQsZ#QPMDjbt&;ay!@AQZoaJ+Pf#4N{SQXeF){j*cQ+@Jf;}4Y;FQmW5CG{&=cUCGB z$Ga=|0+WRf(^z~%{)Xegh)A+uujC(@a|4JDb3D`!`|YW*{9)=TnLB?79rjDu$~|F; z8Cd|sOlzpP)q6F=Jf7PewPE(n{#$a36)a+Rr-k{8YUxexPv`L89luz8h7vxj54t~W z@*!`2Ct;YsXp*<$k8FI!3ZH{ZqBb#o#PKRWXpP14K5@x!-y23rKHQ58RGHsU>0f{> zc#Ap{IEy)~S$HQ!F#U+9Mg;F%*J|d_PBBZqE&zR*&cUgP^n0e{s4F(F;#EezB{%^e zDL;lw7kc^;V~$kKq6*bv1mXt}h zR2-N`j;fBSFvp_;e>BK^16mJ_o;)&&yTpV!t)5uqQi9<5I`ETomqwxD3bBn7p z3tRre?8;_C$tngRv@DlP(G;iTrYLq>szCdGLco?xp=P3wTT+elphJOHbUMgbL1D*} z13BGupg6sLSVBT%%mGLY+V8ku#@>*0iin}k5NYk{ONg;U#fxJ26}A~J%+G}Ii>8eQ zV}WC)W%NrJ#dc6@F`n8-O+_hcHR!)Sxs=UZAo0kbJ;4eb{dC+Kq#>S4KJZymscOpV z!RpRgX)Wb1WAUZt4915701UK;@uiq+#V!oDEAD>lPj-}y#=-_y_X!?X^BYoE>7nB> zh9|P1pJUQj5R|NnJ-!nrSvB%Os@CvMtWZG6EwYttQs>}hf(!dBt66qi;ex7Xd{W%=Wc#nu!WLlQr7b1=3)M zcheZW4f%tdlgpatbEJ&LndYiB+YX8_bOMn;9W;s?H7XhPX{{%t z%6U{999ZK>pKGHu+G0%gi}>D)X5%;Ny?iDW%{iOlstoK>7?q4C#F7(s6`yg!O%j-} zFt0X~gJQcC-(eAAJJ^gD3?bB1IqWNOczU9uwS>uPq9ew^lg0t=U?|oc+e1|dPAI~Pty42dpY&kCPO?Wz^af`dAw|a z1hY7k1>aODkTW3;GrO*(Vk1Y*NY*Fl$Rp@=&+jZOaZt#(FF7YKyf_hg3nE!od)V^V5LyX`0GHv zV3iBR*54%^%sD~4v0|riw)cz^wfVI7Q$KA0Ev*x_K=}b3(%Xz_VAkg&bo^?ez?R^Q#?x#>2%`-*{xP@AtNkVC ziQg4(CJ~Xu_83~TBS1NKY-HQ0fI(LfU~gpA!XFRs4}_C8MPUx{dqv?f6bs?kK!XE_ zGPLS;KGtAwEzPH6I0L`#=%NNbkPA7G_l1$+KXUU8J@_e~YlX&tOCOk`J^{E%s!}4W z;AZ=mGD}Cbl$Fy!utvq;h;t|p7o&CLkxprLXd zjnd6E0twbj_B5=#u?+hqrKY?}sK&}oj5F5F|4>a0N-6mZNtHHlcj}g!(F4pQZfqS? zCs*cyEHH*V6TwCD*7Cb)#@9K4$||9AQRl29igc3JWv2FdG1UuJk*DD1(01!feoPPb zh;~a($`jGbMkzglUwA`+R#$|>8xzHmE#=m-;*iA|J15G6hUK13gXZi2H(EK8j*w38;s$n#uwe8W9aVO4&$pm< zey3Z$jZYj#+Hr+eZq?tyFLwx(HULi#a!BWDWl-1)3CV#nqx4IY<0pAg`L7gu7GGGQ z)t9;f3(NZ*56Idj&O__ILeCWRL{_g3-~NQRiCx8qbG!mU0xA zr#*k4q*TTk;O#r`OTaYape(v-(V7`$y=bC8y3n7U8!WQTx_3vI-cK>-+65Tc6`Q#0 z^|dZY{-Jca!ExsFi}8GwJ=^a*0qjnr9avHE#?u*iUXbZZYT0eanelo75E?G+r7}~h zKZO3pyvn}13Em%da?Sp!vnX)+Aon1Q#$~N@QKxOfT`}S}*F&S@tO%=3!gosfw_f{@ zJ_Vlj{F(O5l^6GC%rdOg#K6d>cE;JkM&=2+^3dH0|0#! zjJ~-CdVN8n%g%YvWhDA(vU2~PbNWd|tnS69n)&=t4gWqj>uXIToX35d$cpsT8RsUG zl0pugJ&sv#T!2>)%0o0JJX=ip?dJ0flBN73mJjQAPR~S$&i0htfgE25uQ!!7>T@10 zh72o*^V|GI-DW0{=~{MGuZ!Q;r5cx#jc+l`l_;+W^O`hfk;cQ7bwLZB)PEDgdte}H zP9?OexlfTsXQQTSvw4nMr*k5>))!!Ae4*QH4-UxI3UY!F<6dwa@4e#3-kD?ggk!za z&t8Z)aj(htd?>cmc7A2Yu~%88RR2+V$VW&MCP*4%qOih1P1a{j0yHumh~*2k_<7{L zf;#UlrLl@yNMYE&=Zr>(SFFRwH}w|CeE#bWs#b@+u0Dl=S12!~J7{reQPW7ceOq!LLJjJf(S}qC`^4m*(-E0Ou~c(h2xx zdvX#3;qPWEY<0*%*jw!6|l2KV;2D8LuggGMP z2+-&T*^LNiLpZt|grj2w3vyj|X$Yw{HI3GtE6>QzzVXw^lB^n-?bwJqyYc3?^juV~ zD;SZ*{U#FccjJ2D>JPH5Cn)|orksH0w>8L`R5(qLp>ve>vx*X9TBfA~;0x4#;|61Y zXsMWTEj4d7xX4RY7JHB0IZD@oI%7O2o!wcj-2sEWTbPbjI(8zh^g%Y0E2~Nz#x*nZ zvLsT*IWx<$1eB5+tyK;QM-Q>Y=7l@SV6(Ypm>sKyX--%%Z?wY4#}1ygqqZ5Ndcd+a zeD45&Bt*>Fy~62i{qbyzuuYHzMP{Fdu*VzA(>Th6dP~JgDn_?GR(0*>Q#zr0)cJE} zx(4ZqnHJdx@`9n&IktBnNm?9I)zwg4zpl(lQZsg>s3{u?o#%@7t2f3iUFUu9ENUVD z5a5YY+?U37#PdJ45k2W#5tuuLb!0JAbS6M2@=4`8uNT)f^T=)6^lVSeI52_-sfRJl z8wQb)xfEC{o27-eHI(EmbQmkrmb5)&ym)nrzd~WwedTWQWsy;;abPcaF`|YA6Pw`7mXzcDPgzK8tbL5!5@ydrGu4r;rfO0+)|AtDL-zMJLy^Aeq*wlAkqZ z6!1FS31k}dR2Sq-;$NA4BOQVXb{fxkH-Q4_SSp6n3p#ZMH=rpy&e1@jk?N{i2+bI@*^Lp2u}`ar?~EGyE~*@^K2}WYSL+gY@g2z0ecI`2zN})U?-Aw$JCmnSLc&Q zNX*xG%LmZlpxF+_jOhw1a~5B4e{|E&TA9XIw7OR`vDFW0tm@$vt<0&O1OFXn_>qRV zP@RmY+Q0uc-b1@BN~DeB4Y?XS#Nj+>Xd`mIPejxTJiLoCX!_1f4MS>4p7csXY6!)DqV;bvyDnWQmH&V)`vN7L$#9B# zOvEbNq6ZX38iFU;2>nyLTU+V4C8TXcLK0V-uEwbj_}rB)MpsI~IoJc@Rk6C?Ea` zy1AtKO!Y{D;$Qt8c&xYuT_J2;}W7da&SFbYsnv;sWkwB!B)3^g)9 zHogjy<*AzmOZK}(v^N2X;%C~*?j591xqW2;O^~w!;n14Y0_@xn_+svwl#eT2)_0Pc z))3i(ohNr)ye0II(L9R8*O^9He9qW`Qr-hUCA8J>L%@qbCd}$Lell&|5cy#mu_7Z3 zMMi&ayh&FwEfZ@gq1}dH+Fsq|$i0)hZtOA21f@RiQIGe1-*4ytkF{@%t}I%&jBTGd z72CFLqhi~tBvo<6wr$(ClZtKI?n=MzzW2SpZ}jUPJA#+v8HUf*7OuQliVpr;&L zniI3Omow8p|4FF%)epr0xTGrk?>V9B-!QuWE1{;O@js4nz6O8ci|7jpN~?0HifG@9 zgjZ8so55N_z|q?4^URnP5bgz{UPEZa7-{9> zF!H&F_M#KD3(@zB8rMHX>ceoDr%Nv8>~>YJ`Roba)XMH2sE z>PQ7%#TjQ%gRm_0MWVG;(Q@9=!v>$5$bf0G)Td3JOiX!BRV#oijbasE9McU> zZ%87E=$21+04Yc{KgMwQBRGwUEIM?zFjSIe?vGvu+-_0Y9=m)ARzJW~GvnlwBBR;l zDU3;U@7T9AyXLn(ZpTqxd)9^r7%0~5Go|{GNZZT=R0hl6JU!St#LP2p5kMpo zcQ!R;_Guo}I8h|7O(vqbc5GGJey}kvhmFW%lbL3Hz@_){Ltq=*zWm~eD1Lzfq?dq z|EneNzrxc0Q379szwkx$g$i{mC$u4S-j24f=sR>2!ps9?R3xn{uD`qHBQQcJV4@hk zTF|h;BzenX*cuZwbp${(eGzbt6o1kHclwg&Yf`%@a6SP9O}m_L z`FK;iMd$9o^ran1e-2IH`RA^jd@-hqb;_WeBlK8pu{<{Gq@H0r?@YP`R^wUia568Y ze1#)kLFWTw4WVsYgBpEgKLt8u#I0NPZwrLFET!e7ol!qScmr3UivJrBL*} za2R5dVh*w@+1xf9)vi98m~j{zS)IML-JbyOYc!#xFVUhIHS}Rg58sGxWWV4rF{!g| zej~lIzuY#Rm$)fEeUjoa86$2TOCePWr@)L}Wx?M~!C_Kl>R zVyNOZiSI+2tF*%`%`ZZG9;ZD%+=*`?4D*r1==*-dUT9n{Y6&gZ7QafJZ~lkHS~(Hh zrHvZ4Q{CBi#q4`uy!xBcabmZ`<&wsCY}p|;Z}sa$`sqQIx&=LPiM(-uo+=2aW!HuF zY+8KfK7*y~^WjrI^FFGe{v{U~*rX4*58Pde*6B@tn|X~G?NDVUdwh4PAg+#HspYqh z@q7VOk;Ly7*qO#_+{uRMFX5^+$%{m*uI=53wVTT7(5!fVCKaP-+dN~L1ki*jyV78l zbm|pHY6VDQ1!vYww%Cd4#RDbZbdoxyODFf*Rfz;aKszQ}_;m1IjUok_(H#l`aX`4$ zhmf&!*GKbDX|&K=h>Z42%ey~Zw!!GCkeAiBW!p@|;RW@ryfGRGK_{bnfd5 zy?s0XhQ|vKz^{bwDsglfZ10;UrZ{>n#+%X1>v*QN?h=m@<3T$7p2$^W6|S^e!;V?> zE_v|D*|l=l7*c$ThIG$>C?$>}sK!vkG_tC=X6QL!KGtBPc5ohvH&N{yJ)mc8&)rpR zFWhx`3teM%lgH~CB*N?Jk;JpxlEt$tSr3rU|G0GD&2VCx}380RmP^8?lWrqtW9t`tPn&2Vg zheQslYu?fR@6J$b;;!in+WdZUaTy>4?~hrmdE5Xfdl0-Q3}~Jaez45F6+(PN{KN>i zt4&m2$(_ROOZZs0V+olJOWhrK$=|roAP2C zdjS8N4$|t)=$?>PxJHp~f8?B@J{WTYaBEwd9?DP*Lm;qaZc%7(h7rYqq|RX4I=AZk zFbK#@=(|^t&RNCSIV_lO%5`(;r2fkc088kp2@1EVEo<|A4Xj;DHM$`*OY}o-9qu9f zIGkQaBl|&+s4kq*aL8+ZQNuDYd}wGHlF!*+4GO^tzmvJUfF}ktCPv`RTWeA=ubhiL zLXD`@ZcSCfSY=tc@eU}Fje{X$RTZIT9X}LMTCm;O?C(X*-9yBW_qmAMz7e-+ z_|)aZNE<-wY!$O`JE?9F17F2p+c!MunW(#0M8-`*)idAeOrUvvYZS_~nN%x{xn(!3 zyQk^IwB*BgZ8M#4JL#>MS}^ec9Hm^t|8%!+SK<$#%8%;ORwzQqn~ zlk<&FU#VK1FA7n6_2ZxXY+rAmAW3M0Jbyh3;D28n|7(&rWjiA)6K6qVV@DGwr++NJ zUj$$HBKtyu!k8QgBN}fK0ACOZOk^9jTcpgEl?;M)28o^Gm1$1EmCU%G_2fIvSOusl+BlzI$>6ZX` zfFnIiO~N3834`kL%l$id%Q?4@tvZg)Ba~bbH%W8Hw0eM)9*zrF2X@JkOeBby<@>ae z_Q*kdQMMI17n$|F3q^SCgPJ?4ML0}=VaX-69&TYD;T>JV`s2IAz%@dSexGkdJpdIu z!}e2XLjqZX8N(?aFd)bg!Q+x|CV9^9&1PDQ5~`u!Hzncsbm#;%L6XI~GX&1Ief0_Q z24ozwn|Vm<4?-~R2%x+sX-0iKTR}Zy%!zL~K&kc>tt{XKMpr@YBmJXv?MdZonG&ow zyTD#@OIkr*KKM_!s95aZTMjY*r7F?h&f5C_=r{bL`b2p~!Tx)raQ^BOng4StK|?2J zM*|~g(J$hE;W+#n{)I29FC-|heu;N^)6(YpZG@#kpqqez9dlg9a6nXrh$OP>3AGXq zBkD-B$8GmuljwIiQEVs?y?_V;lU--lYBrf%6=nHrK>QB-NW%hf+}41Ipbd)X{1b^{@U-kOq(iyQX_(79<-r6cl+|W1 zrLn$TBp&~yK?S&Aux7;^wZ>yIZuO+VQhQYj={R~9c!KoWiZQFG`hJ1usE5t%UY%r^#!~%ux3x(Q89?eVnjTWT7v7@quyQd*sV>D8quZo9s8t$IF_ZU?d?39T6I9?- zbk=alm3bIkgz4#J1PN4CECsgpyB;G;V$&>UhkRvnfKnM*Li8K0* zz6J<&!Z^xNQ2tRvjm!r6tm`marcj#`+ybAd<=@ll*l|TT2GI~>6O2Gu4M@X@Y(`JI z+;n|#Xtj!W^fRzy`aAWhKh}qEEod7uMj~O3%o0PaRKu}6WSi_anMener5vxybrQqq zI-$3glJ{ebVkd!tConyK413k>6DHx-?@l$spl2TpOP}EX5wG<%{U))(%IW{knSuX@ z>Gw~r#INCB_@eqk!T*?kr^(692+)))ECR}e0(7!?z30GSp}F5wrGOizgF9`~ZFUV8 z23)DGso!Dq*(7+bfZtGmFUyjIs*vPr-JDIHr>A7B6LfWYLrxFQ!O`s`qBPkU+mnMr zqT`sXH8>zX+9;J_SYn)DV8cBSAyN?oZoeBC1R8YCMaBL8F|s0v1$Nos-=mqNB(nZ% zsOC3-i-wf{9_-H5rL)Zy}A>nB)$>+vzTiK;> z+-Xr~)s&%a``0A#;%$LD@5>VA4EF}&u+mW=K4PQC9<{e6i)s|yh0GtD6Grq1l9AHf zaa+>0*Xka`!t4h%j!>TKQT5RsO{B8dw`k=Ut6A9IrKBG?-vB|Nu(FV46r97mwf>xY zxM=Ywx%*qdD;Qs$kA@I3vqk(cF7z^WEW=Tti1Aeof=)}-<+|BS>vi*ZR83b(dxkFPbU1*h>2dlheunKmD;RF7pMyoLV;<;k`+umq|OWL)GEE#Ci7$o^=3-U^_pSul-VLQ+{E~CZi zGR5g4eOyQP{TX%(4;y@s(W0+c1(+=pogo5{mUoC@O50w|AU;ga%U?;W?Jikd?y^II zqC3k4=f71JI>0VzzmO2C$c*GbW7Mm)iuj#0Zg2SB(@)x$nsx2n&WV|N{=&d(Dwn`( zpPV`%>fU!5!xh?;`OL8>&qi+~;^Q$g+*O2pOQr?S^V<@7Ox5C|q%uLuG_Fc(Wie5YDUbCl_^z#Gz| zg+8#VtJfAEG%4*FgwT0gS_bGb>Dh#hWm%QV!NkcgEq2Tk+U*J9HxqJ90w8jkf&rHX zQqjkw!cTf7mt_@@^Xra|ux^?zaM%C?g_8X91M=A2uHTB2i5yzn4U-fGOdy?0Bux@Ne1`Ew^G;2I`emu_1%&_C<^9E*!gj_!o)(x4#Lcuy6 z1R6Br2%O`ZJmSFdkF23fSKjp?rK4a(7Dfx?Aah_8gGh=`o^{Y1s*j|G^QK;t^Dtaa zFl<%34Y*{6OU$}P&vXkISJ%01iQbm-C8A2A;b$$(8?LtUoJqoGHz~PTdEgy7ln3)? zJmu)6URiqte@>;-uDl`9+n*qnlXlgmaQ~p+HMF9fAIyW{vfxZ?@4w>cu(3NWNYvE- zjkb<$GOgT*>rhtHPSH-KS1%by(MHyU*=$zwr~ptb(5J9XQnE}}I=jL~7^%;#nRAA= z8ugg^-slzT>~8aWS`Uf{GK0*H!nzT@alg`%7Pg5gHq(v&7)f5X)xT}3osC;@lQ)qBi?i+nFun^~bZ+}G!fxf=Jf zqtzCKEmJ=GSfl~r5@i~<{4M&iVl*}USS55+4nGZ2Pi*X&rDSco1U7|{T!=P=t&whE zmoO)wIV{wd>H?tA?QJ61691i#F6mj_4QID7g>uZ6a|Mxzsc3BH@YkWIM80WlM}nuc0|>!{TRuuCTpFWq4)pSZ2!H zoxylsW+Zv&2rFd?^JI6@U6Dy`sJ0TUMd3UK6a`?!L*#?7@cJAKGZ601xTUz5xN41~ zVU=)ups|Uat1|m_Q%NP*1r~4gNrYJ8eE9!qOa5z3KnNdoK>Ay25&xe`nfV`|Nney- z_@e(pfvUFh->{AkHZ()wXh&plI|_6uYOvzRZyKW+xs&z|K~2$gNKlfpN@AbE^dE4h zNIj54MeR;lP1sb4;1T?o_(~;fO9%PX{fJ$?5p-4_@l*Z#B6_ny`&URrU}r zqm3}b#Y=@)L*D(0ZU|i-ah5Y>tsm--b7otHD zlaxqvFYOk$O$8Gs7n7%B7#7&KkvZC7tyZBP#o@oB0gmc{kwuj85Jkh^*V*y753Mn1 zFHi-<1B-?DcS*bU5+xVQ!I*?!Jr>|xoH}i-$4>?rz)a5Kdcr{FyoqR%B8G`qQ4Q`zn!pwA~L_aLGEVU=!DZ*Uts zUAqEsO+iehWlohe0)nc3%Xc^h_$1>%q}=F3svMv`cl#;Sa}F(S`7|onw;Yy zbevkJ>T>3(LNhL;>dH02+iJEW9VH@Qw?*X~GP%e#B(?@{CdAuf^|NJO5ElnZH#ilx z;l6x=bDNc43xx=A(tJLNo>3SRbAX*(^~ZAff!e-%gTfKe51qfw@h|$_)b1w-+EY~q zhMkpQL=4F{-j#s=a&4VF?Y76G!9abN{255~lIq}JPfG$Xn2V_pTVkg_av9xdLAFg6 z!DjOZKBm!QPNB|r-O-K=k3@(iBl5#$ z^csjzayoi$|Hr!aNZ%uY1`tNKai#{qO;6kB13OMzGLQ4O`pD){rY>+|#RbA9o1 zVt}9j^V_e4I|+yt`$=f}$uca*Z{Sm7qu_u}syuZtP-G29Fml>d(L~S3~~J z%$`1KrXQ+7i^fl4WSt>lAdl>hXLcqJZcJ|-a8+ho+E0+auZ^LX!?$fIPvTzk4;#_j zvVzav!@0fw#7vbJ;Kgm$uga+tMUe&2SzEgY# zN59B(ep)SmM2!1T19hP~+l6s-Vd{QL5B%h=LHLRE^od;jInmGUE*!+pd@cSaiO^BD z!%N<{g$QzGruodDiEK{_g>O~_Y3nqkLc5n9WJp*VOQSe_(T94f_NeRs74()&Xn(pT$wNpNbL zt%DD3p^QgS-pL#jlp&oQ3Cg4ChhHZUv8M7NVgls7`JH`B(_9}E=zc2_CA-A=Y{&X4 zg801@=T1ma??FvOKnaA3jeKR2;71Le(Hv=Zz`(VEq zs-GfiDRK4YMf^%Cf)qGmA;^wx6SQJUjUxni;_RqYq2w-(%eH=fcsGoBoGu^P8%W$s zg~4gE3%92l{oS_mOZ1luxxyMGDsn+GiYQi$b6UBBP?Q6`vWX4NvUX<7$h8%Z*gvBu z`t`$NCCq0Wg8j}v5QK|asu;<~2@q2y*+h9aK<_i@r2CgWqb?#u?@#g}CK$0+_E+&w zYq6%TA)Mu#S9DGFjG8S9w^KZAj9jABFHyAZ_Tsz2h%;)6>76MwaLz(SHH!u+dh1Ru zp=!s^AWIB-`XqlvFJ2&?&aZniXaVk8Ky!X))5+PF4mPGa+xr^6 zE$?8OnO{VwZxb?`LO2PAi{>ajJISOFPrV4E$CWWGxobwRn#gHbw5v- zF@Zbx)yS{=cHtLMQ*5$XZt%JQ;h|@;2~(>DJ&{P1tmC0P{6ip0?ZwN07iF2_;6-Dj znHiVsDC#H(uSg3l^&RqFfkx{R5sc)ZI5FB`7`5b1?0ubvQq+c?IedK$fPhzfBdw;v zk7dZ4VhqhZX!yHNfd!?SXr3+(wb#!fW#4#;rhW+Id^~s6*wgIoX{QF1)n~*0l_iQa zYA$yzzfS*jh(ANcxhMJLzCXaf+;uWEM$Tyw#hZrD<(`i%$L=l8A&bChczg zD<8A%427{h7yv`q!1MLF*N(DaItd!1%i#2pDjfc(Ry^y_3N?%t)!1ilx0$jF{1T2T8!8EiT;;o zf>_gZg#$TG3Ia>3tg|yW-pmogOLUOW%xOk$Zku^s5dFxRZL4@e9`?F4!NL(A7n#;m zJC=U~|Cn4_15da_1~#AQkSbTs%=;a31U})yw*SsKXVL*22MD8pf3&a9aUsI6MH%Ab&#G+*eJ+)wPT7`6anZD=d3*9eK z$=~aikBpFdj7WAs;@`0X5gC=Nsx!Nzdf;fFVQk`>z$cc>j_}8X@GN;M;z(zsJu_P! z5o}z$T^Ui#(4eD68c~jBlvMjw=;2*|KHtuVShhCS{&r7>i7yPbS~J}@p|?BYugrm_ zXRuR?F3rAir*+2lIsN2z{+T$v!g!9l$HB-`4D_=@qGFcS>O}rj63GUl zD6iuBO?JR!1C_@qLnOQ2jo<(Po}lvj36$}fg3~D6HGe+9DiknS&9|XBKJ;VIK-xje zHpN;iGaEjX41`=yG9umF$Jbg`2623qRlQ%kmW8n5eCe?`e}D<&?lIm8>rUfHTLW#O zC<&Ivt)=ZON;_bEAgRy0rNbdPl-j5vAbymz-`dA1h}Q0Hwi_=(KB_vy`{BMlgqIOR za^WJf6|{ytV*fM}+}s~i0Q<8k5AX=y zJi>4hzR%QvflsQ48Z!-aU1fZo1Wv>)U;Zp3XpyOqCWn&)tZf4W&uFyJ)VU)sqzlq< z_)xmZ9Z{6or0(7=aRp{dWvrm_gHdAngMrit5{nQ)`kS2pFv<-j#It5DZ!1B{9T3J$ z9z~A4J~3~k&7FwfZ(D5 zMxBm7wy~l)so7W8&@YsOqpS3j>p%t(UuX_y;*#a%^O9d2(7ow=%kJ6KPf?oFefwqPO*;VihHwe9Ki+up))SLO?ZHS1(h*uI2%IamClD2PIhE_8TFx(Elsuta~)J2hFqRX}>IIP(( zviaLBo~0wM+cs#z7J@HG-2G>%mwAK2ytZJR9hcoRA=OLrn3D!0L#%Y*4|q|*%pHj> zrk^B99=K6aE5+P!6F^~L_a5b5382@wYWHa|790mB(&m6;0f*iaa~Wz_rvzLYl^Yau zI&46=M+?mqxpgkR#>2W3gw;!UKZS=Gloctxscv_x_o4l~bZmM?VgG4_y-Ngw`mT-t zJ=Ts+2$6Mc`v5$Xl%j3$rI4#Qg|cEX8bjWkVkug#PKqy#2^$-=Q?+)A6;7U?KN0@m z50rihaj9*Wvl?mlL&iHT2QO|MWy_7@S|T0UXlFgP-xJv};Zf$j2&^S#vSO2`k?R61@A#@ENvPXeWjI7*u zqX=8d7EON()9f2l$dAvJq3rWC;armfKZ!>-S5)iED;I35#TY_k$5&3ZS6U8H9(8%D zuZ5kWnh2t6a@x7o$J4$eX_E%1f6CW3aoUF-r}ysi7*#CW{>0AeMGcyi-<{)84qrCA z(mc5MJwuv*NObvqyueLyA}6jxb|6j}>x`1e#$%rPZO|vAg0u=Av*CN2No#{wc2)CU=->P^x@Ol4BKN??VD?wm8>Qb*pQg^1+B`Wl=DqncUYgi+vf zWss#@F!&htv^$%eMr@F1M$~O|j64y(6Xp-0$e1Yr45y)px75iG3es7)7(Tm@y+igA zl;aDw znVWiSe9CN^tsSWy6$OZ-k+M3@p)yUI@1-*m!!#yPKg!KXuP=a;&;d?M=gLr}ZW0hVAuTNgPV3SEKGQS&YlOQziJkmiUopjC)GSxC~d}fNVZ3b^Stgdq_ zJ_(b6Dcq`+*Fro-*L6xRdK~vD4ijH%v^=73$Aod&5uMi7#yk%A>aRVytK6<%kahVh zar>YH9d2Ic+I>g>t^7L4OG z8#9A1cK~fmbONT^KQ!dxBl!)F5fCy|nc9Onar5O1yZZD)-&*_gn%9}tJggh61gz*w z&vuySYP%Qhz3JH<)ueU;lN>s{cY|z6h6S3P^Yk2gY3DQlzd1Vgo@UvtV?FiBk4NU zp(&JU9l_*!=h!{Dm)~FZ|v7__xfL37Nl{FPgu>P=pkS42KPc1gHolhL!w?Xe0%S zG02(euZ)>c%?zx*TQ<1Xgf%tgSPTRLDS@w+HdwOTlr1b+s<$nzT%IoO=k32{ zy>7IpkT3(E4Iyr{T~6{IzFjU~?yr9OTp4_`++K9aR1rX?iyP9sNv4T%) ztfbhI$|U1g*`I@aS^EZiFk<9Gq&Ey}d`Ff+e=|p;OTio#@MxIQsc}epQ}ai@ z!7F5(X0D~-7q)u~kWE~Q>+@N(Vi7?e``8OQm)o-iU)7)ISs|@%>is0!4E1LVqQ_ya z0fz=49pbzOrl!fMjA6>m}oF}G~RgK}aCt9Y~wJG&0ZIcmG4;{)=kekzASr8n> zPQ&u+UcPUp7&nA=F*6H7jZahnn>cX|d|^L^Z+XR8!OxZ+{l;{3PS60-_x238;X^r( zv)GpP+6$Y^Q@Ko@lG|1A8CE9mipj<2zhNljI+urTSMW^lax+sAOm1tz zTwUUak4zc!TuAc$AUz^O_AIy;QT?F)WN|a-A;~q3_JsKCyE4yZTrXOy+OJwErmosE zg}+lI&MaYU;q_IUOD24(m{5Hc2$40$<1wQkno^((Q?JWpW9I(Yh{kgNn5QbIM-aQ# zW~d>mIf;TK>-zhpoQOG9#+eLt1WUrqO%Htu-&~5U+#Xd8EUqRQAjxtM z(Uh8Fyacy=Dxf!QWfKBsoy%Dy>g=$tG%XvFqE0^H-V0a39GnYX$BGu3;$U9VYYMU? z`!JcVC$I}E?(fThhN?`Gj0FeT_$#O_xll7^+c=jNHzF-ZcP`wy-*9H>WSEN?sn<_d zMpeq}yQS%3t1$@*7F3$mxWsU%HLyI^)CxkT2c|ai-+1`rx0N}?*YtatjYe~*c+zC{ zAF;xqrseYP%n2^ATlc=nq??oZ>^1Ws2ZK6m;w`a8^wzpK{d|dLJ@HzOT;}Z1Ywg>= zmcXgTCc;aK*^!}awb8NEsuQZZ5KF==c7OgRO7aHRib21Opc=DbGE#K6$Iu-4-B3qa z;JuWPGv}B_x!_uHu>@cVMpa|+lO0b^#!X3-j7kfUdqSpBUM(2sEbe@xBi1M*#9{+w z{GsWKo+MZmP#6s)Y;&HD8_QKuy=*(^&uGPg93iPf%mhJOZ80upR7O2_XJg3;bz9+H zwwsr!g`CR&S8!nb+q!+w42>5}6*!k;Sgvp8h+*#Tx*l(Jn`r$>wKzx_n$&Ju5>Z)< z`=Qcc?mAZ6*{5rgVEWmg>n9X|0nMgqM=rFd2;D9W0Ui=1F*KmAPJ^9RqcPcRKpim+ zIV}dj+@vv##aP&@;LORFel#h~1>JNnV^~TiJsBiU$SogX7eUsSv(Ly}T|rE2!7wp; z{u-G9cF$R)6)+BD6x26^M-8$q$QUwPnv*^r^Lr}Cd>DJJfCU8eE;#p82OLdg9Iu3F zE^#$R?#Je^?$(m+fPT^bNRMC)Bfn7{sAZ+ab7eqC7UtB*Gpr6QvrGbN`B8a8A1m%} zYYQ!2dvs$uAK~1aMzKC3UoEywqFCrNOq3=x5Q=HcUxWU6p_k^7hB5lx2y=c4QkYzu zrMEUR1x9Fp#*H&Z#N=ojta3XJAVK?lvlD({CT3?tG*vL~&RjhRP{pp5ul)5skDtJA z2@84qxlmR1&*25iW_1HAI7q8-Cf-*F&*Y<_k;97%?9+fn7)JxY!h*Q=({R|UlNev9 zD0T>T;(466J<2{ZWNw2X16{X~>i zxfQRe1YBiJT0J<`5B91hJ^nBSWL4YA^Y1FBJT7woxU;p z^UJYg-66CJ9`Zt5?#mM%$*tGp#OI$wbcETm9LakH3oeEPEIuJ*@LODEcwt6%YjWAM zT(x+uekUI0GnqC!s)OK_dW8=~?eB=Q6-jh03lYY(tDSPwbf5NN$%6Qq%I}ZxXKU)_ z5blF#-R26@od8?O|8fu#ui)LheJWowmHMgE{3_{b4B`^gOAiD8Q1(wt8*jNFB1}Nl zFJRvOM~3e=1P>Mv1izr4bZfTBkLCO?QNz44JN2*L-+uK#9@`eelJ_p)|{Z96a-MXEOcxM3+Ip@xY;PmZxkKUmj)|+hS*p~P+qd&o+9pDY@=js-@2@d@3_ac52 zWjs_*5N;0UwL^5|*ZQ8#?MuL$_p|%pmYHY|KN{%A@1NGwPTx*BeKxi*pU973;d~TL zeW;?cuBCgyW`9mjoxaufR9(@-eH6SsP=7S^boGFgf6_`>T|kUyA0C7I>lJMFA?&hG zVq=`d{+9=Qv-uvd_1f(mJ6QF_GY z09G;1b(kov-;(clb%7|az6sYk-8&${`VBS!-_ek^w_3eZGS?ImC*Ygnngdu)T^NUr z7ov{cc9<|*(gLctyjp&UwP6;%Gd+qe-JtFv~h zunK7P+-ef`{SJCiYCdi)UU?L@qE4rZkUM@FgO)zmN(Q`xLcKxi*4UvP7oy+{2~tjR z3zGl*nKRGVr;X&oZMoUnonUV`8Sa4&dnyx90X=0NXH%_>NP%=%f|Z8; zLfkiFu7Nvpq|s1lw|lVvo{@ofI;gX^-O6qlm0AG-7^!{U|N7 zbWKS)b31eSotsJS4AyZI$ywGtO_Ab7mpx}=VeGw|B6-e=d@lq^cF{d!lU)$HL~=k3 z@MI@X=_X2ug7P>a4WC*kI?0uTWfY5@CPbGZ!h2B=H~CYH-jR$3h%#CtS-6klDl`z! zu0R{~S{3SSiLOZq4L;&S>_qz*Yb;}|>^n3!A+ekk={3F!eC{7jO=`ALAEP*a+z4&g z`P;w>BI(LjBbbr;m2#3sEMd-IYM-|m(o@?0nE3&Q{ZFwqT@L^qr$gcJ?23x!h2%qYK6CCuS$q^3j9;}nUMd!%7^;eFcc_q(^? zp8k3Dynh(wjM+nsG&=E)^K2RuM7k7vYfIUHm%HpS2P{~*A1*p{93mY*Qe9jQ%vBwz z$H`e8d1J}eEY8s0`3$gT@d0_2H+xTSyZ++Y5@)HZ{6Ny!5C?}G(OXndb59Q6RdJ3E zJuO94lDx;~DyuXIkV2d#@kqiWkp=q^zm=jd`$w8jOAz8-k@S8JPAlp;LPb2SIFL^L z*NL?vUAD&^QL8F&YEia@B}v-Dv<+64s257VZU$fZoVfD~1$AxOu`A>|Ey7FC+EIsq z-Xc^p<&%Z?#IM5NY~0mVU}r!FLM&l2rA0k(!|-%_5SWhsuq}eiGoYki;d~c_Z7`cR ztAARNxvc1qH@x@m&o23-_Hlq+Mi~csv%jUD9aUr55mD#bU%?@iWMP?i#YSo6^9T;&?@5H)pz&NT+9dfWC2ZmgTo4IRU>EIL#~ z{hpM%;EXdBh6fGl^OHQtrEdPHhO+U2_!`T|;GzU5W8`nqK5dMu=N1h+#DyKxGug9GM6F z^#;d^>YC{s^SaV^KOxKX0Wrbp;iwUspq|DP*+Gif2k0erCrtSXXTYY72l<{F?2skz z$W9**Oq=3(gZsXyYDqs%n>f?E^T`N1!{HJHk>mMe;<*XCf`dF$Yn%cv!fSM)N|hE3 zNVv5nKlD4pDe?rYix+Ie`y)7NS)X1N!A@Ll&d=K-d z*kl__uSxHW1E$z?$;!Kk#MrK=jbHlUnBP%lcQu;&>m*O>8NzC+8M$Lk+O;KDvFa}U z;9zxL>?6mCX{5)>DSUw}_CQ2m*llVd{u4WiIrl5+$V1-?c=?*t{taAphCZh7XGTsK zwzwl-`6CifZ{)Gp4l0Xu@ZaNugkE`k2j@FA@p)!zyopueeJt5k>5rGb_$GF7IuBOi z3%ErH=B*+ptQS$oA1Mvj)LVVafHYHNB-T zDjIo0y7f_`(Kr~ku$tzVali&C!spCSE1OF9(koN6>RP?{meG3fTG5C!7JW$7_s=( zsbO8tCXUs(SDaqT|R-#COLZ;TOVFRaMgrYN8?)BpsTLOFO(E6d8HG#ZPt2f#>FcsPgyTN zJ%^CjCG=ZlL@U{TdG@5kxcjFz`mg5oO}3$jg!7V4qFT^bT_Im z_*2QHcdWm9(#pim2Ot=ZO7HOO?^}R+#Mgdz=n8@ic>IW z1KWQm-k@lWNS6fDD{5<4`a3mMV~iZONy%Hyo3b>Uv3nyHEcv_Y6M1L({DNoAL*wz+ z^Bz?)+2aKEB`+2#GGm-Q4u+~Cn2EweKXWZzzY97cu2&*nt}~zCkj*$7OjE126l#X& zwkUGE_!aC-m49o44?|EAQ(+B&rjm`wRF;5Ms07PO`V&#>zpFH4BbD6~Ume@VWUy#N5@dPP=YM)k9f`2XEe{LCHiLB)muwcog z(F7Smzyt{Dn7cm0$@wUFH8<_>DhK4;yP8x6Sc;kZ^U&esL`auiifm-)dhbKotSDs2 zaZ|MdY6`uOKY9BkBX#XS6!gU!GxF{n*K@joC7sp;rxbWg>fq zb)=o7i5)p!et0`m7FJ#PgpOjTvyNp4dFLD5E#MQ`SqD&ICy=qxUnTyy%!grBy$Iy1 zTvO1yXwXampH0;STk99pU=UHYo?YgVIK0N-%AzgZEi>n{%acQxGvNV)7aiWAfM;GI zh-_Oa^_%!v@URhr+FzAJi@1_%VJUZ)=zO1;zd3D}@RKCNyhRpWfAe`Io-ISy25VmY zEz;+bL*@@<6Z4EX9AO9XG9qqa_AX%#SKC3sqzIru?3L+w#m9KFY8LGrpG%!PI_9@& zYqM#oQ~7E(W|ZGG(baEkEB-LkPaMbhuloEya7=Pm*N~N$!>-cZ|F+T_TmYHmG3R_K2dqqJGs=G25jBtW4YYb zoBp%}w9fB!<=~=rg*W9dcw~}BYSNB;_}r%0mFR9|M6!vcDjgZc(BCT_a~HPf z!6?$j=$36X)@p5~wOi$3*C6$||cDXmXBwmwHs4ZOAv$6>Ht@HuAN z2;6#V&JJPFCDVWi5hGpl%*CB53fg#?4PrqfoS^A;c%JF0;$>$#BSlX2{g!QvH zm8HJ zueaDDl^EBd+28v17HdP#17RuLy^r;u(C9#`jS1u!G95(0+@BuM;7`}UjE{0ov%IiU zsTcgC2xE7Lo161mqQt~yX0I)Sy#g&Ez>cfTm>FD(no~BDL`U*EMRWKruM+ur@97bp zwNrI~UOm9Sb$NjPM)2>wE?la%vI~Ek9Hbxs0m=UtrEAJ2j;|$ z-ZBRryw3IwHvDZMLxDJUB@qs%7u!=h1ZJIMVyKWDud1e|%*4^_Se{wG%h;TZkxK4Q zFD%#3Lq+Zfv4;#(p|3A?fGWgE*+<#qKHhzdg+GJ}F^T0aCA?N^lK`t)$Q}o+!dI1J z*)A_E-Ig#_M(FHC|FbHtiA*P9CL3>F0Y{GW`N0Oeu?VkgRoTG3bTzYafk$ z?NWpfj)ogIx(XS6yg0k7zdCHljXM+dVy2q;nsU+(Z!Y`s6(Bk=7g>aWR!FYGKy_ka zF8A8FAF1g}ylIk4cVcP&9fWOXbx75HX-qrLm_bXHVP3;`L+C#hVVZjF8m$=<;=t#+g4YV zWCC52cppzm?I1qrB)~l9+HWz5q%AS&96tl*4b||c1BWcbu`%nK3UUYk4xyd@eru<9 z*1k!<3pZ8Ex7tS{lc~E57}YA=8X^*G0{Xx7L_*OjHqyYfbzmPoB=vQ`pB$bRE{Ik`{-gn=_k? zovMw7Rcj&hfaWyVQUlU4W`K8YI#2RvW!XUm)PP~nJscd#u}%Ln9z(TeoQ|v`X(TAo z8_g|1BM;P^fKBlMv!|#Q4EF_b+#AydnoNCy%w(PRl}6MVScLXi?`OS|a&w0-cE;BN z^XrC{yxY|v>5RNgd7^npd&1GCyUGo{+yx`?3cHjU5n1tN^dk35EwLB)>+t8HSwN&TVHFH<&a{H-CaP-H~UQ>D2mH|D%{y7O1IG_soBP~SjLhN`OeQT}Zg ziB8pkrIc1>eog%a%5W(QuMyhj)J|TtA+RLm1`TDpots&Ls%fW0oTo$mMre4F# z84RaG3UQ@MeM|~0j&2Nk0Yd}bCtY?fx{;IgT(gX~Yzre1B+8mhQK6R-N##gTX_hiT zvkkYM;^sC_;z(|7B#R{?;4=zKzA0l$==pk1!aWAp8Ury{Gr9e!=^_$Oi0l=4++31G zs=f*BUuxpY=Cx*yG=52$^m82a8%>FzW`+W=$z*+K_{Cm5@zU8NS;TW067hRm{q)=b+~fi%<2WWw(602v zzhcD;$(Al<4mFWy+$vOt)z{2oGe$e|HYp5?OrzVX*tAd+)f67qvUh9f8R>VzWvBhc z`c@)F6f6(yUiChqq1KL?gBSv=JW@%X(kg}P97MCtG8{N2q-Ho;@@~7*JuGoG&qa_w zeUc1^giQZNNfe8-RCsq?5R^{FY7UsNJx!n_;ZHmoaHv>Fh+MI)K?qX%8ozAOtZ9Mb z6hRVDY~17Afzjj`<1{G!vLil1Texzh&HjtJh%w58- z-n(xL_p0ia&bWr#6+j){@wRx8E9o&2F2gB`hA?%d+%bKzg{;t$8$Q13M+zAgx1!WqopvS>W{sHmgfs6cTpHf$U8iL zMshVwmsULZ+qX9lIQMcihu-R3p^GE4 z6YYZG-OHHZjpE&BpWub^x%DQ~S>7M%E-T@M-Ekxk*<5foHSUr{TjG9Pk29wC!{6bE zPDk;zIC1TiJl}Zzxr8~wKh}GdMH%YB2+JNiC#s(jlj4z!3 zp!Hx}XpJ38Aj@C-ohD+yv@B9Jh~NoBG1a|6w9|4kI^$1z%L+fWb9N}i9Z}}O{Xe@U zeIJ0fy`o^%e!c%}{mMRL{ZFRVe;k8;Q+(r_?i&TlRw|f6NM0n%hVje^;0wxO?TP%N z6lUSd@Rl(6b91taWXLD0B&ppq^@p)4M9(2}2y|;|MqWeb)kC zL46mV7a8tZ?xde@uR~csE^;UgBmnwMAce15&^l%5!p_MmoD4Y=Ys&EaOc**9vvp-e z&!9pN^`FE&yr_3EL2NxJcRA2YBMAB$G{@)et*o)_Emo;Iwk8z%lqvt{Q$U|{lK_^ckR@zjemhx~%!D#z zmnCPc=Iryx&Ej^I<1yQC7II&2Xgc&=MAofjD{GBiX>mywLw-<*!DB_5%QEzN9+A%sGOGVQ{qjJQb*RRwl9yhV_asnr}SzbQY0&9=K&W{u8Ly6Ac?Nt&t={-XsV$^49e%kW6UXk1rf}f!ytqX;ibRL$G{VWA zpN#*ox!9L!v|7#^#j5c-#Wl=$MZiZv7uj0j!`%r&+?shiU|Va3mT|D1M|n zv_h3R75^hh-@3%BG_h;wOJU;-@jAfcm3Jf5iJ-~#jRB#5_H1%K7IL`p?{v0Nh6+#X z)Lg+fGY!`Ic!$#gypyW?-@hncPu9i0+RqZ zGY6XW0_sh;q*#Er%8N53zF^D4wzCP+Zw3`Txj=5O-(4AVwGZtX#2kpm6%1m6JLVGO z6Yl3qG4FfSheV_FP}gE)-*Y11To8=!NWLI%XL*iQwyO*R%Jc#*o1f6kQdtJe zdkcJ&2t2PhmIZp4@bB$eu_p^YyU{gqp#qlA`tGxU0d@i@9%mjPXes>>l7U~AV1YXa zc9{Z&y9Y=bZt;Pt7O%6Rvx79M@?HEmnVM|W%H_(v+~&^cy3D2b;N4~5#)7+z=T4!_ zUk)M%z>WPptl;b)%1new^G8*Eu7O2m=pQ3Nt*wXrlQXnPPJF7ZJF6|u|2H|r5!5l4 zx>(zI7kxUkEddklBwy(Fz6e)h6?AU9G)1&~GZ&}NDpH_~+*QIM*-vZcEP_tdh#^du zch&%*j2e~%vEDU@*euzfd|X7LWQ5J)T>C%oQ`_PM(GP|tX1xEk<1n*jX{a=8-esS{jWk7KDVj67amJU~}S z5=PC<=e`CDeb5&+YqwjvQ3jd207C+xi+8#8jlEaphy%V!gC0M7GpE!`dA-6CAz4~W z!~{)Qtm+LA$fH(3wuuX>gxDEQp=nQ4hJT+i{5p4$VTf=hpx!hV(Mt7z(-ImMB>fq< zf-GjZ%YCHU2K~XZPijRxqbUF6@zi2bw%3_pnD)|ozkS}XhA>hwEY0Zbx^t8B3uVt) zA(%p%(DO<-O}l-lW-AYRa)_*y+uWsB&cx-OXAm^W3y9}L@hm>^Z&x-qMzQ?g%4+kV zFfHEf0B-ONM_40M(=yuZ$JB)Z<*J_*(nI*8@3!@(oT@$i9oHtFph1ub^SR9Z(y>pS zBQqP2Lj=gDxI55{$@FwGr~&@l?5YL&ry`HW0V`x4{J*D6GxWn<#urqo4_G5S{<0a& zwez1Cw;h11WDr`vVu-CISPBFk zrf$@>zg1berqNP)84=6O%BpI83%&f%4aqe7$HJK9NZ`7&c3)wfvpHAy&uQmGIj3kn z_kHZQd8i-{YBRB*=~jlD=2f$iyFaYVLgM#=Hl95S`)^)!mm@|YKSQ$?m?jy-E*4hp zlUa*jG*_4nRWz~n2#*W-ambR5w?F&uEj}_7I$nj3h!hS^L|2?fxw0Sx^)iMHTT4o|KD*`y%%cltq!*kw7 zKJU?s%x2_L@4Arf@C}856e{#%gUsQWfOH3P-C4$0ew+jHhy9$jiuOQ-ptRuWp?E}V zzD)_Csu}+10bjoU+MbjHej6{LS2rNLZ)og*g;w(N;lg{&MRI#UwEb{vC=Na?+rRot z$g>NT;X1s>IcC&m1{jWvEDFob!hACkOl?Qm=i{?cU6)i-Yetuq1Ql8ODeh9msWPq1^(|tR`HS(xh?0&ZcT_v!Y-btEQUi>DEn-ZB%+{hbc{&$$y7;l&8{KKAhN zZU=rir1t@oPN%MmPMhGHpywzxXa~F#S*rdl>PA`q;zMpzJNA@l3wkT3>GiP6hmEYt zGo7ltAR;p$&Ja$E3=Pf1M*bax96@mfIrafxieP2aX_*nlF3{pvRw`)+M=wn85^69l z*D?$Ts5wfKT$Ap07zpAl3S>%MwI4IkPk(#q9n;9z+}Ka){x_gdvNyKuqj_O%0;Qlh z`Ey`REcVxP!pTI%&AJ@cP&ogWN}ZGphrxA0r`~9Np4j(*6wJ?GRNj|ws{Pgk@nl@B zVrh-OFtsAgYNe6U^0x z)49~D_QzEkAfLLVjDCXts}|QT6mqA(ib?f*H z70^)o+Xh>~O_7B-Xlnn!&oPZBNjx2NaZ<3j-(yeQg}$zfVexhOvgXKx8!{^p>keoX zWJ5jV*lbz)cs_lF{Q+xh^0UZhKHLHxqZwzL!8$+{x&}!%zf)wvDo(^|*WbggAX>&C}K42-&0G z_U;J8&Zoxax>b-{8f;0blMecGD;8}2Is%Xsa9jmts2te4d(dcc3I=YM29>Nv>lQm>V7Qv zG^`@}p`Myd3vy1FRBp!T32J#dzjGTJKU#03_~{qjwzE&=Gowqa7$XJcj

v&=#FC`Nlm;xH(e1C4GEk;p%F0IJgM4AY;Jy?^^R?J(yZl+6CGw8Q*= zYUi8qf3#!qW$f}{j9BNyNMECVxuUF6BDbb^93F-z0Tt-dBkl?BP>Y^M9iK|ap>b^j zK^+GB@xwd8#Tb#SSZGD-LDRVFHe+<`?Z5o5f}0tG6`D^58o*&RqixVx`Kf|bA#28_ z)(|N&RT(Fs{#LI|O63;VXT@6*)hAJi6}{Xe-2~)p3%mZ0dJyvzZ#-mwQ8F}LbWocV zpiQcJJk4qzUZD52B_j5JHg&eGLf_9pf2oIO@y3V^NAy)08mVIJQHo@)vAX5aB;0Wm z7HE?QBb`DHDQ>M{7ZtTi?n^!9|D~SM1eSQrmVZ)@V+Ogx-q-an2SP?@+xT4+{U~s$ zsM(a=E!C~&NEE40;Cp%pk5WO1j`((rvyriB*`LW93Fr);x>2C4} zwlC2zANEaAf|d!D^&ibb1fzy>{be0ENk?d`-Eag)4sX0aW|*+qPXIizs9)TJ$`jr& zj-4Ji08}480Q@dg<~kL-S;S=gx4761b&CB~e}&ug8o7!KU%FC_f#V_uJtM7q?yQPj z!Q2Zp4l@GdPC;`kM|gx~&@Yhri)i-~&p5XFs?g~O(VG{${d0Qz_qvGjo~B#*Ytr)j zvRVGm)uJ6|~ zxq2Fe)3Tv`@euYwg($ZRw)+(hYx|%sf#?daPrIIxk>Prfn!5h}e7frVBYkPCuU~+R zN&`*cZ!ZB(s%nks?ULYfe`zRWpG)*>0bQIHEef=RlnlGC?1}%blM5X9X366rt7rTn zG~4|3j(nuv>2Cvg@lEGOjhe9LG7PtdDuSLiAf)q;UMSA{xNWUxjF03S4KCf`1*7!1 zR7*Esmkb9D0=H2OZnMJlnf(udXwD8CvO0EL&{yOhLC372n(Y1AvUp0ayt_g}GJ;A@ z^f@EeyTDxVQ4>S!5R($m2!qbxg>i}oWC3%)J1xgpea#Ei)VqVwU-Z)^_^5{NcwTq7j||1} zH$Ym+^j)*z5s$Cf3U!=faI85A+(U+GzEsfoP|cAXz%I#qRO63ftA_U8 zKRSi#8Yfjsd2DtW?M!a#8zlce@&(KGpYfUVLg8Mst{{rJN23^txvs-;@+~2u16F)VPTdHK$WJ!#|jj-4Ad2FPdd@8LNeiX z^UgTGEjow$0R?h`DV4ppT;yGB(d=^m;MATqMhHY#y|VXR*D=$cwY<_KmQu9y3U@Af z4k#(GNd7`WsWH_1;R^L$O|@q;+KZP&op7C?clMS*wbtj!F0fckAfR1l2dHw!u5r(G zK^~NP+f?=(yEDf_v1@DDJP7=*#gJVQJ96k~08l%(+ArU943?N{0w)lFQMe2Wo&Ps#sX&0v{Q@qC%R40D z9p-p)kCl$!05?a^quVNN6CZc`ZxrBP$yttE`C|v zhCAuKOcx}%XiBs#AOB^$%%(lYHZw@EZjQR$r?^xS>yL z{yHPyAVADXOt@^y5Tq$0;9`A2fwVc_?D>thk_I=IiG*K?PpYEnyzN^+S2=Kp^)oSW zv5K4@!}}ylTk^eyE$9wL-@)U|pL?d3z@JNY%#bn%?E3T#owZ41;+T56_$# zk*l9Dz(vnQ8eeO;D5Aq zG;wh=|3N$?lE=rg??ELb=1OFbmF6wuGdZh>Bve0rtQ&cugbj^ju4ft!DJz3q*rt+K zchw+on@FO3IuXR2nr|R67$yXAn6%jw)`tEg}*9iuhR; z*zW=UI!gBS=VQQuhF@JM@u8IvbYUlBu76qLA+u)DMuASR6jkgT(JFyi=jlvu>EXXw z%}5r>rqz6X^@6XyK>0t~J^SzT`u}prRk1U3(9^dx;&*j0`k&3Ue`xG`gl~M0_KgY! z4GBy+xDV+y&Gmk?(+X7D7%;@1d%#Xr!AKOyoCNiq+rMspB8ysV?#g#M4Z6r4S71+h zVT@w3Jy5DI)f|kQV;=U)%d1_BtUr?I(?u{0Tq6u}eV|F8@;fGX1W<567#?_s=7oF{ z3!~a))!Z+h!5E;Gwo2m3z}v^2EFTXkh!iMft1U=m|&Z?(NwcP!ag@7`OJnq zBzDUx1fOWwttlTAS%L*9rp40wCo!d+b068X0V;6S4)e%6O`48QRM?lj^aEa~#1+C1 z|58T!+&v#x(xK(6D>8x;?BsQ zilUD+H09C_6FZO~%ponI~NE_3P-0g;pS2v~}rWT!i{_vA`?vOU7 zwYU4y`p@Vu&>urWE9ALH39>|E1)2{DbdodM`;W^>Vzsm?T|UhLx2Kt;ea#B430bFy zMOT%tI6|pJkBNm@HsFaI|Js$_k5QZIfqywDBYxGO|Alb=YbW;KuXucue&c(9Z&av2 z*kG!le{58iC+^+LaYPZuF`1n+)e>p2Stc*FSgJ^4|H-S_ovO#OI9A&b)DE4ekoJ+c zR?l7o!BWo-)E}8AVY17ZAptSRlXZg@U<*P=GyWAMEdgdsCaeC@M9J1z6JmuHy?K4< z{ki$NIUATf$qlHBn0b>6Q1yr(!Wyz2$!&^;RIf_Dv!&0mCji)|UlzU{;+My*FG_)S zodX>NOP)V)MZ(825OdwjuRIk6u`O4_t{sNxQn%D8RNbyLWlb@#YE$Re^jZyh376mu zInoBa*f#LMrGKwY-!22)6tb<1|KSCK3wH~KyjHl?2W@SkIyv`ScWJGxhyb*y95HsO z+8B)!efwCE0sRyNq5 zVCArCPOF=GaUGPE+aEZmKX*5fBM44ZFewCTzGqi~@=a%mV6`s>Sw<;L4L z!Y-wMF6#x!OEvE|_fOU4i=vIZP*FQML?=xE<*#k!HHP%%Y<;=+;xskGA71;_#JWPt z(ee38YLsMAFKtu{lCJl;_EkvKNo+Nq-=P7@k)rMS6z9;!OP|oQW2ENwPn-O9gEnci zhq%fr@wH?K=Op!jJ%$Ks5aOFLvWM$Zp?u}i(ZvFLWHzdxe^1(%H0s; zyDz9Uj&MFD(6I<}UnPPoBnYSu6ZTLSqO2srrWmx5A26BXGgn&kHkqR` zaA=zx)^-iTp3frucQVs+Hdt{0)fTpIL1=#YT7nfpx+Q=|N1m>7huuSMpyMeltO{~g zr*9G2LtwzOS!aO!kMgzDT3#-UvmA{grw=2AU5e~=_Eu)U8VGF36AF&;(npt)!T_O* z;y{y-d8dD{k_T#ZNlNddq6aPyTptKB4^kN}MA8twoap2kVfoJdQt#Bgw`m2W*I2ay zei$T$F+7x3mm5y0A1PW|vfT_C&F3Xuk-HrPwNKP!f%=(b5&>yYP9r!}Ur?Y{7bC59 zRwn#4d#|3g=(u>1QRq zTuSCRX}hn7wf2^pZ}PaRF$d;3x-U;oX3PC_4HeYBuC&=8W>lllCKWE`b4T%`4I%*<42E6k~PBVZlU&oC2gHFTvrO zg|~;?VtE!7r{a9J_>;5>m^@)NT_0amaGlVdjW-qUp(JN@4x@O>;MStSQZ{QTxDIwU zA&5)qK-d^8UquX=MR{bTe=NMJ^pX$mM1pv-|cjVp@*odEz9M1q%*TM+=m)EWvggTyl9*3u{3#ijAX zop??zt-p`7ii)2Rk;D%%<}xeqz^_8s5$(pD$TsUR&|92?b$orByd2_i3q!zBmfJs0 z)&;>DB6x5czt(P8C(fUg34*pSM|PLUVX>TMdbBO(HI&+=09jk6ofbE%SXXMS#bv!K zty}df%O}PiduhHs(RM*=BPi~V(dkPS`e3_aB=q6!S_LM>a|oytGsVMds$h&@$7gME zZEAsZO363Mkjcpv@jd0Hr#C!p=D>>Qc_L+oKSQM~167jS6kYt!I$S{-SX{}`dJbu} zFo+=H0q>Pq3yq0OPC_}A!`tFc zk7#X2qybR{?4$ccc21=`?P5q|^85jFddb~mmMSqsw9*lXK)ebDu`_w`WT-7}mngdq z*T^Xrt(6DOt2Z(Q68>T+n@r*_kR5P(Od$B+z5m2Hek@M<@KHaGR>gmZC@V05kIU>c zK6b5_@Fsa`_p!+D(oMcoIZOHo@;Vl>IllZw@D7B2tkW#!hTim7dyVGRrb#o*eV<{C zG$GU0E-h8q%Pk=GyR0!+ViTZF6|Y8(i20tkJ$mcRn%X8_h@s+EB4Zk}$cNnQ$U zd~6!ho~?dJER7jr-Y~p>B6=Pbd7Ss&vOGzEhfl7=IIr^l_I*K6Cj0dSiLQtQJtg0R z4^pLM(*bCHo1e>A8=tt?l6)?21LWD!BOz>E-}A}NG>b*l03)hb=NZNwre#g5JndCA zDzwQR5IyA)b#%DC;r(xR19n)%UY=jwek;_EAAl*3Fh>W6L8z$fw{+ezY5_>G2cE;X zL!LvP$8pk6k1Kp1l6K87@w2;Ky?(ZZzsXu2$2$^DxX4H3eb#4kSNXUFOQTKhqf@~} zZ%0GiJh89HSh~9{no*Zn33h?exWQLUDpwJHeVRKVekSizblG@0c;wxzqN5`;eNk$y zrm%~;T^D_g+r_+b<;@IO~%-e*ZHM63lLDtiJ$S6 zd1%W)PhrmsO4ePWFm{R~&QtvbE!KACq&}5Xy?>qEIjeUTS>7k5L<3NKX2W_-o=%W& zwM0$Kx<5_LuTe!N!kXjwWR=0cqEIYJ0le4MH?kpt&Rbi_&N;|VLmh9&AvlFWKHq*m zNB>mp08mqYJETZP+!S3~x2H01r5J^g*@A3=^=xU#b*g#TrspQ81)WA$yQ+*h%F%+H z_Cp&8nq2kE7b(pju%28Gg(6hQh2_1&X)xy(##`e_+fbV?W+_1gGKF%lYz>kUMN*FX zz*l*@CQB;&6=nb_iA;$1o3c>TqGKKDJj#GWldmld%^YcoLf$2+Twxk|hske5Z#%(o z&F&sQ1C53OQdkLV2m+auUburr;z*G*8kKC*o`w{Jw$vpwy<@*e{2BnMzk=Uhk`y@t zsyIsm9vmE1AqDVZbCQhQS~%e(uXW#P*-5;+R`gsl^vkMV=~gc zX(hdQ(cYUO!C%pK#*O8_MsI0{uFVBCv9C&hDmLh{s~t^)Qf)=`Bn%g}6(y+-Wgy%b zwY%f;Gg+{>Tul(BQtTM}Rpk^zOlcHnbijD|ePnQY0X?2vVh&)dv;Cs+{Ggs9ay^A7 z#moJC!1apo_(@c;D@OT47C;7K93VPPJyEDI;%edYl+;8oXW((o%_{bWmZe0`>=Wu} zt3y0P;a(v}mli`1ys=aHPh^8ZyZf5exM6oe>0$HGMNsV{Fezi{BURH`|1Jg~ya2M& z@MrQG-Fbq?%T{I!b_0)8=H7J^KYd+}T?Rftgsb8$m_ek~9BjXETbNUzWwC_SM z*dLddW%uuUbI|S4AdAMqqaq`&Bh%mt4Gf3JLm`ataiAc}XpI;cx08h&5ua273i*TdF!T=-LK< z#WpyDZSVc)H+w+UHfXv6eZ@q~^IK67T(Pvy9Tz@2rM35PU-Nf(DjH!t}O(;0FH zlw}&-4I8c#$W94Q1X`^J5welORH-`B3(y7%n=L`$1sBZEuMx}aVILhw>cC3GJtuz= zelIJ~H%u&mBs=7{fZ-)yCWU?~u3nZai|AE}#&H#0%fK>6^-7tYunfpaN#ueqoRl4T zgBpl~+#Bk@wzFOM?M~odCe=(|ae5N}i;^#9{XZKY|62LKX}|G3#5X!rPVJGDP(Ih! zQjf{mP!a zs5^<_N@m`T6F6# zrF-6QhL@JmE}JD!==VrthTsJHAb*ln!@&~SqQTyr;upH5Ktz$b2=>S&-4^=|A-G_9 zD_jNmks@POHIv3jRY-`~qOuHsZlhoE}>tH}<^9=xi zh78@N`5jrf>7?V;KQsi%xs=p>g{F;AWG#NjfUG*R9KLMQ6E@7;3CbpPCg|MP)D#Hs zF}C&_lWl>;{V#y3TZI;KP>K%EXisd;L0_&Xz#xq=JgtjH7-n zH~L+i@5)gw-gMUWP1RzF$2Cx2LQ#<`skh@%uSyre&o^*N{8_Bg!JJ`8GJZ61`q?}| z2j**P0F;v@HEXZXvx&@!s<>aLSP6J6v6Jv9MVZIZnCYz5_rRF^NA+2K9TG}%;YK)j z^lw{hk2Lt2%l#h<{Z}O_fsQZ|&Z^v~98??4fvg&JAyRE3f5kuD5)>Fy#XCmrxm&mt z+5@(}An_MX5lucUi;kK}jS>S^ss%el(j_i1pG1d>mV>7h8{KBezi%uEH*zI25@xJl zg}eC9elyN;xTp-ce?_8$QE(gParbrsFHF|gA9X_wsM{{5MRMhBDIjNU+av2#@9Wey zR$VbCy2lctH0zy=$ku>bkdGHxmH5?B2>)ud>XHD0S7o(l(=%!FXfZUOtOC@o}B<#K-DEIfwaUN-&Rx~PGs$-<*LQXNn6Z&qP#f2pjE&|#M!r5 zo~k^huQHEPP)eE8GZcw$4ul;QpXX3c-8;<^MY?lRW&jdb==nG7Jl)1vj=o1FC2k7v z=5EBe_4ILqXiTUc>35%FgCnudk6q*Sg?7!Yqf16tq*=w<>v&rNf449+#R#i3R$>@P zh*h-A;g|fRacLBzMI_V_6cYOT(bML9#faDh?m8V^wHgOvJ|A_;0J2H&uV>)T7(?7e`n_o4dlmZ4ncvM()hB#)XX#AOf}1m`7Xc?fzY)?R|@;O=3V zm16D5%6@Y~J%d;!Z!5bMg@DiSDIUn;Uy6vg-Z_IJpz0}?cZ=iss2ZvLn6Bp+rW34# zordV_hZqvS%%fFMVvQgmunDX8jwGYj2h5Wlnd)mb%63PQh!qGK)l>W{;Jfh*askmX z-;8}K+V|okp{NH0P+l9D8EH!Sr2YU#76QQU5qhIgOp;*-d@V<`6tD+EuD0e*8VBOkBVAZ;^SgdJ`v znFDO>U2trY$P^JSU!4bF*tME6Zu8~PP5*}FTOYQz+pM%-E*1&q)g2O000qJbY z0BOX+j5ro?HU|Lb9UAsaPZtnuKI!)`NQ{CeyPx3nnLxl+eGhbC7%|0STK)PU&N_mT z#qA+#kWOzw*r71`5q0W($$lAdkQb@z{GrR(BnM%1^t<;kpM%tds!VD?^l?&M(Y|05 zeS1QDkA}60d0=h5y)Op5Kx1MBBGoQ$Se^XOi3E#aN@|7HZ~;r$*^gT?e4auj*|S8H zfy!8Yg{oLkW}YDn634HKM1Flwz_>#@|8DbEPZ}Ly{dG)$`ZY`bZ~87V>wlenzxlrL z&Hat9^a=Y}VWf`*O0^pJ!IowfKq>R$-INp?TL~#C1VsNCP18Sx8A<3%!>g)-v7B*# zAb7I9bG?0%I~{^#w{m#0e|sKBAJ=!QEdz}uK--pqooCh^-gqAVN%Zo5xMTf+TAkTz zn=m`P)xI)bx)^BiD>B?nvv(hf;)yA8(niR8!+YilOJ$~br_`4gdJZi@dh3!s$1p|J z>8+MD@5pP}8fr4$x@AM-_q}8(^jabgP#s#F+$zNFAv(>+s+5z*BK73&KsmfKQ#rA5 zvKaj)+-N}JD)vl7xsTsapFNvylyfCgpcNNQA&a3#L-A$n>(uC$A=JrCgrl9*Yf|vP z#4jkBg+h8PoivA%lA7>)u@R`lFy^%2gW{wQLBZ0!x$x+5Azy2K*-HDQwi^^*mRaZY zv{u}q9tm5f-t{&dA?)|So-+j;PdI{pZ*0xp|9Q9Tv)y+@U-6yAPd@R9Eonn9uy-HU zNGclaKOSzd?zed`WeZhrld&?ce%ljMXvA(nm*1uY9!ig`c2*WF+N`?U>7?d}-F46L zb&X5+Vy!Ol>#=#c@)}!1bnopa8Fbt4L`j17Fw<8% zR)H>0Q|+S;TKU8T3@Y!HbqZ|K(q3&PJs<8?fiB=1>8Ha0!^gEaHzGd@LYX@{UDZMl zs>yGCrdSV?b=+_JnR)^;DnC>QG@FAG*x5m7hIJFX4&Lgx{%&k3M4jQ$hO7lM6wVU3 zN^JL>2aVqMgs-O}w09;3!dS@>NTVvTFcX*SejsYJKyqY|mNQ8uq8tf6C!hdmSZD6C zgBVG2giY5jA&&_W=UcOL2cUYbLKJrRvpbv=Hv66b1$ZOxF{F0;RP>sJ!2>Ao&7xiA zMSl_%SC?~w3FT1tTG~jepCiyeew$pf|At(0CUoS3G$lCpNmk$x?S2p9Kt4yJ=#!bY9 zRkQu1Uj(nwkUXeFH%O61{Qh^nMVOsOyeEB;iDGzxynK5J?y{80(Of)jFRE_h6smP?;_DbH&uO zN5o5vp55gKXU73+0vNWGtsal+rm|09QC`BcaQ}0u|fac zb_6_r8SF($Z zos5ogCKNO)G&Jc(5XL>R5}tGj!AeQdd1`ELuZN`S#6+S}KnAxk9_tv)7erEq@vIV{ zWUN~Uy@re<<{H$PfE+{+g0%@Hk};KL5Aw_;94?)Lfu}co{pSdmI_OY6nXO&|- zJMzh>XG-3IlU}Zajnt1kGy-4l&T2HH5m2P^R9q_8Xi25CIf|O3Y&rp%hCaoWogU5B z$j@-%97pN|mlPrL+D3p6tI$1E%s@*)nL=21C7iX~h*F~FCf_}4vZ!J#jqgkC3J(1FtaW2I!V+{c_H=}>^ZbayB!k5lOB!%s;z`d-<&r>=8Cqj~WU zbWh3B;lA!n)JfGslRA&rM}Z)QBPV^T7z?}_>?Hh^hAUkZ3_u)R?%UJ zKYqM=MOZDBc&&42pr>J9mL%#eH-h)gwE&!CpSqjL~_4?=BJa;w_e+ z+!0wExz05kt$=i_C_cv&*wjYomoz7Jm~)#?jJwJGHT1C>j^E-x8-UC<$`7g(Nbu{} z17C-X46pHWoCE4BsEV@t#Y;#wBMp9EI>aq&IdudvjI8PT$3u~cGis^P=|k~iKu#VN zKPlY)_+ZXKR4G2_(fVcnZvkkCWgjA9!`JCGJa>50^Mnjh`!Y+V8T%L90eZT2UU^3ZjO1Vt$wt)NalEt;;CD&#qATTt*r!yM3g4qt~cWD$z`@cjgXm>Cs) z`?rKnjP?3;Zk!)Kx+MP}o>%^JQToRo?>EIazUjWvp$Va>xY+X9+1HI7L`eV{=JzvH z4j8Ek9Ns`sNT>&9&d1C#06-)doq@4AUuxDt%xbor*^Egdp2R#pg=G*Nqs~dJwWGjn zw$MG@`ttt1qjQnk%6#Y5`*5QLy3a@SC6kBiam{}6d7_E-Q1a&9Iny;W$C|Hduvj+>|hR^k@kjGJOy3eYgDYXQ z2_j&%poK90a!=-OlRxO@eh$P!Q=8G>qJkEYGyzatr`rykw6VvQ<4K&(EZmsuNtY)+ zFS2-^QCQ3`Yd#T9ri|#;=M+vJ(($|*&VwAY+AArwr)DZn>nlW@v_6r#r`tCW|E#+y z4{m&&%(#PmCYiS9gdQ#&_2CZCtcNLrPU`Tgbkj*C*DagAH?TDw}+FX z!QS_>q}~!~Dh1Dt5uPH2?IiJC=|XxRNlaCc?O)D-t-*~zS`i*PQ%}BS673{OL~ zd!)TjS>l%_GjEz{tohG@JzWWhRnQ*|oZbdkU9Ly!AI|>Xr#WP}%uhU=bK_lzik}L+ zAIXxh9l@XJpCWGFbWhRNAMwGTW8UzV8+TK$&)j@ZRlVn3=x<4!pEQJr`K}si&W6XX zS1RysVK9jYIq8X`vd1{BLPo>c0PnKa0!D5}KNDjMINu_2YB?RIUM$5KDI|=_rh`VV zr|?tbD+Y&cDsu+ij=Y$qg>QV4Mx4v8)y(}Ud~QlY)y(54m=xtmu;t>p%)@RlN>#aa zc9fGx>`QZKZl`RS$MXuy5K_4X>K~fRX%ewVpp`D<80V=3lw6Jy($1CbyMdS&D-QS| z<~^cYHL2+o3vx8i=}$e&@3m2D7d7&XJ?7l74bIWSpFA_t`Q>!lvi`2i zt}52G7nTGa$Gz}26YNC~JgC&G%TidH!hEDujicTwF&ZsucXT?bDV*O}NsXUcV5Zug zIzK-=QTTPrih%Hf@nfeX!b3YdJP}GFd(yQT`05JbA>E4bcj^X8cCUr8yJu_DcF&AG z=sG(T1zt4+FJZO`;Oik28VWJ1VYa@nXX{2Vi}^1K0Or$A!QTwD5%6lxtHVIf1lZO)y#E)nCZ!>I{VOPIax}T15i4>g(Z;#UR6> zU2Vpa9UY^1;rrA82vW+M0^>zwP>jHZg7oGb-S8@s)YIESRjVO^gXo9nC=>fb*0fp= z8j~#6+F+(Iv~t7URGnX}ZAUXfV8t3V&!euLg#+)c<2VdBfo6N$(qtN>33Z0>0K1X? zj6#ezN5wd)RtXihaf5^`ANR3)P>bEmTn6PJQ7|YuTTsWOXLASUC@VSNx-3IzUaWglpL58Y}A?QDif$zk_j# zzmB+-xq!R|fn+SkfyUk{JU13I=PLVRAbG8VI`HqHIp~q0TNw?Z*3H8?94*gF))!AM zXC~HUp;8NR8uFwMZ@lNeJ6tA03}H z_y$m*Jk#mTDiD|kfr)YMKN&n=M5!0pt6|B~qClzQGa%W)OjJ9Km+ZXTV9yY4myRxd z`coDwUj(h>MbR7A398`jC(B@YUNvX0c$~(#7K~8ofQpEhrN*!W zy{nPsMP+td(B~zIJZX^Q9=Xpqy&1!ovW4)&FY6EV|LF^`3nIOSf zWN8nsf+6ir2 zBpP%AVGe8eWjfBgz?^2kZ5!0JneNmE_ZZBDT}nY4;{MfWe3##eqH=AMn=6sBz?Ug8 z15H5!73=VSsVR35e;C#nBLAG;eL=LsPne;+7g?57;gflx)yDbx9PGgTu%Z`OU-J$g zxob2iQqi#@+_@NHQ*)$gT%v2u1AWeyQXjQ0+qaOtiE1WE)uTzTRY~pI6o^ca&Vz%L zDz1Peto)%%>jX%4whJ+Lkt-xBdjIF1tTDwHnsFB1*e2^8?r5%F)p$rymT|BteF43aF`+6K$EZL`Zpmu=g&U0t?q+qP|Y*|x2z z{$e8TyfS(yl_7uKEajT_W4Ca zbN6rYbas?CS|o`m8qi|*s(0=YL@6yXAPY^D^83-lC5!44mb}F`d>vkstqnfiy$Sg* z{qD|63`9Of9FxI39Xh$^55v(eHFI{w-fPR6xhcLk*FatBrnuYJDYokSJiItbcS z9yY`dkTBJ;2v2#-S>BLa=HL$ED$Z|#3oM)kbt0Ps6kr5Qm46PYhvgKQggyT6bGFv@8kFlT`7%7h|AHu1cqSvCbD^ra}A?xKt55iebNc9Ri_+t`oJZ>ErQ&cPbi_*Ki@4Uy1wC#SZIV=0wL}Y#Tc& zsBwOS9>9k9zjt}Mz6ow!Q6#%bH~k2IO(M#wRi=t9`}|-cY}omwGGRkOP?8+ zqBj6nuJ^zLdDf+TVkkD(XBlt4v_8}TDcAPmYz%NMpdT)Y=UdxG38W7dxujT?D)QE( z4v(o6nmY*M-~SvY(&+yk8^hLqT4 z21CgqlRXfZN(iO^l73>0FRlR|7m0$Z@HiL2YyEr^z z@)#gs3p4I>5_tyYSDT2Po0zwY5dYCRlobdxJ@`N^1A8sRP)ZpdT38Ig^bfr@KN|(@e!hX3tAgX z%WUCdBVfLSzmuQ&-ESsFE}$oUP+xP`N#X{jTZ4v z^wK$AjJ5JDXcrdz_9OLWgEyUCXqByIpL-~4PLWh5D$kTu(wIeU;w{;h|JquvskJy5 zUkPiLU0JKshGgGK+adRGwzMe68OnBkhT9v=ibJJ))bW5mjII)gi(yJv}SK^ z=7Km?E?UtuL%9?$g{8}NlUq_V`i9aaD6O&*5Fa1VVJOb{_8tG&-LMxpwSDQS=nHWi zfq;SOanaFRdx=-#gNoxYCpC};mNduK`ql(|-_rIHpO(>W1pFNJdGF7n?6?jdZTJ3l zi4F8lWFasX*+&Nlt#2l{(F-`Xl!}7u5MLprd*7DtcmCnPqPH8XFHGuoJpHvYPEW2f zQsecsGT?9GF=p{Ogxj+_-y$N=^qH(r3n)Muu#vh{g$AIG;6M@X7ple4-qC28Fnbu? zA6lgtJ&z*6c(Wy8^9!_~TC8=TpVu{p9)myd+EqR23>=>F&uKszyUm@Ue|^0ESGtHH zL-7DrDbjTs43`#J2lUA3Cg(%t`r=?>SxmnwfssD0ki{co!7Y-AuHlP!UUzNQ-5Ket z4s#6;PT6DAm6pEt=_;FSum@bbMNcp5!G^g1YyPfIptQ73MU{!(UBTRHAldGTI8wCP z22uM{&Exy}hc$ISqNYAHvYlABLkct%$jPA}#0xrG_p2Zc#vYt^?TICaG4$Nr96$Ly z>*qvUQ}?v~#tKIqL06%$DIwlyeVt~`g*tuoL^al+F+B0%C{!SlLSv-OdkF`9F1{>$ z$hdYfXUP+AfP;cQ#COoVkdOBgN>3vtU7EcgG_&`d-X^c{>)P5G@LVb%N&Z?YLHWTF zwXsC*k_7g?WUwPWdv}iYBLmW{Hv(eGS091V-=poh&AiPSfUx4^rK1-=fo)1IuTqd- z2f_o88hi1y%|xiGIKjc$2GaSQ7MH4qU2^vrESGAKNBf za*P*-InYQ49#cOke|}(jQ5!FHk9*83=x0pt|=nUVuaG0+al-@82EXw!9(ZqpwMCahiSH~jKCITk0+w>jkn}Xa zpu|#L`(Qrg5q`zz7IydUI4}U6^Bl{?!jfD!hk8X)+jn-k=d8Rv^G@1&W_#*p;J06W zpS~!%9oTG{+G@dlcRBHvq-7VpIxq4q@CElF%G`#_&76Ru_rKF-1^cZx%K>p{&+B>0 zm+O>|(o?X#{ysfm^_uLSOg8ERD$9v&bOOI@kz33%1~&e%{lLfiM}6=u&Ziw|+?%uoW0A|B@HGET znVrNGRLm^Bp!F-@L`TmX|8NdiNi4^2m|G0`gfR7Cpf*`Fw?~vhVB|#P4QEp*hSY2c zFyspu?i1YVt>~HT6ZQQA);nPSzB4Fc#G<*=*s%k0OSm_+w`SD9Rhh9PM|x%2shO#6 zv*N8o+_$BL>2cWHBgF9u&X8Oe`#v$M%Yi+r zxHh8L9xSQhH}r~h#7$&FL*_6;!#oJBJ%Vn(x!OQ`N^}wwQ^o3RB&xwiq6=JZ0~3Js z2k1a-(nj}cXBYlGEH`xt3O=_KsG`>U{Q^8Me~~|nj)&PH164X>w2J<(8n^KCw}5BD zzo#+F`-b=>J;d7wF`wu5?#FHq-E}C%+@fxM=y!Y*&B=VLhS1 ztg2d!E~tC$Orwwx0Y8O7_w+0$SrlgrF@-#F7lpS*1^o!rqO-$ErwgxWV(xAaubnU& z6ode35756YtlpX7z#+EZh8#W%+SQ$WWFJ_)LqWTb(OMUxa<8-2`)&rUo01Dd3umf< zGu>!Mh;DAYBILU~9xHtAR{!_IA$>@3mWi3Kx1uEvW;R%zE>$ug)U$2HWSssN*_OHI zE2alL^4c@wqv=?)su^?Uhs$kjx8g4X%!cBeJX|^r4H}ws1r-{cGkDVJ5~05*e_uz@?A4$`axGpErbAyx0;C78=v8^QycsZmuNl0M~Jotz6aWacSB>9+Vc0 z)4e8KjpHr7t~k;!_dw>gy(ndy#J>}!pF>^Lc$*(32-cfhM;{@i`Deb7n(*^4`seF) z&dfTH!a%fK(G2#d@t`t$?cgshI_ht}?zd^UBMHo+BxwL$hfmoZV0g9RuX*DN(c$AV z@QdZWK;AqPi|-kz_C;X-h^ ztXx_deAA=j`a#?l9ak=J*fSr|FcX;GZVlSul=~y_fzo@|sS?=|E!RW|iMqrtyHL2J z{ia{|P3eP-2ypNro)uDHv^+zH_aE2r!f}dWLO0O9)WiGh26gOGYXL|QdcgKy=+ZuT z#*deGsk-4sJ^%_oW6NJe^?GA=Nqq$#KbSCvXUgJy(_&q0oJY4T60+dD(*R{Hnr@a7XJ#PL{G4;m3NLVtmpBpC-Y#UQbQ!13AQYaTHitlSk+1b{#lZ7#v`VG)HC~vIFgJ<7wuJ;-x?p%Q-n`R*( z@M^GJ^*P8jBmT~7VA;5`&xxM@9A#{JB1l77u_^}!|A<&vL(ZIwgJOv#x`2iJnL7R*E5n80jNx?{& zZhj4&WbPC${rSNNRoU`(VrMt=;agBZ)wkN+TX^Dmg?pT03RT4cO%qiTuy|5yTQo>f3-H6y%`qIv!UM6Yfw&ASdC9p)bHqm;fm(G9IHJuFGa7bBF-5Nzm`!Lw z9D*Z+L7d>!4zteiS*Iqx-;==5HBK*6sGW@Rll!nbELeDX(W>k0n{XT2tTNAG2sD}F zCjEw3BM)PJpS_S@*MQJv$l~nU@R_^-nKl42YzkqVu{%r1cJryV0a^1aRefq2z843+ zGV(DrtNmBXTsT!!Jc2p;8k)uU(ArG8#gw4cDdrD~4|-REpw&zdtISk6=C3t|%;LV( zDfX7ViZ*R+ya&#N`8IygJ*b>c*jj6s%)d8(D=z&$nbT(0-ISJG_mh66(vF(p&gPvLB|(sFB7yspeqa4O3OD;|M{NvhXAetNc~{ohTpto zw=SD3h1+AyF_LT%9*5R*H_%%_IaX*o;6NcKNS#}%?F?~TRkRe~ddQ8w&y!=zw5$M9 zLPLLIk90b|~)AR(f82waC@Rd5zufF*LwJhyH zUcmcx!KrbQ7m?#z1OME#??Q|R>Mx&&jdLdV8T4!xxp_S2?}R1sb|D_=qVf7BJla%DWC@>;m|8UVRO|=b9|N_QRJL%aj|TdCExE z?#7_RY!&HM^9Tw)YX^zlviOI0!T%Mwm z)B6$%!L8m@`iFafHwp?^P)iNmST#XV^G8V0-^jQiWNQ#BqQ6%;SnlraJqMt;fJy{g za-^VoC}7_jSvLJchPV{yco{N>CQe;9SoQ4Td6K;PQ!VN;J~y%rOlQLK&>Ta$+{i6- zEpG)f#xOZoigc_Q7zQ+|JUa%ffTwL1r*12dsB@SaLtIM0jLHIb0T|sum%(x-~mS9%<)^hbgnGYwH*b|68mm=Bqvnq%wz>8U`Gs&@(JraUi( zmYTN#6g6bzHO>yv&^}*iz#9P?T@m;Lb{N=my(z~qL2`^7p15pkZ5cM+f}B)0QZi~B ziTXyI&B)hMJ?lfVd8LA(L6z6UH5`*=SbiKK9u#K8(=lp_Jmh%~n{$d6?zoAiOCIBy z3PQ4f>pREWjPkgrPiGf`zyF#81^+b$I1p}zm^7DE8ib~Zt8JWPM(qeGK;9#peDf}D z(ZIDE)4U*#@~2JB14*AUrF!U|l>2!9RhT0<6(~h6oAJB(bfOq(>&?DCy878{&Y5 z`3~}V`KJc5dZQ-G+A)M;%1d97Pw)pt@Oeo<7KO#KN@up^5;HV##gt+Gvs&E~uhU+R zE+5N$J)dy7;0;Zo#Kwf$0q62cyTO>R0#0hC*uSFpR1JI89K*x;OPsLd-R<5)>Jy)KZPvyk# zpl3?7hu&K4L-F(z0ORr= zT)k>2W)y8t4ELqlRE)a<^`Erd<=}}G4?G4Yotc+3Yu$|54tcdYs=|H~n1@B$WsfeL zEjAt1PV@CU95NmokwRsdqa4OKd7zcOTyf}T@4hBu%CZZ{<8g-dsrSmiJ$-t_R}-sQ zDdRGCahzNdY0*Nb-AVb#rJ>kz&vT&mvyYyLjzhJSR6#uFqohtJ6P~9 zaF8IsD>thq%2`qH;F;rjiav8~(j^Ki!zhjm(+9(J`4wELziD^zD`^du+)N<%RXc@N zPFFl#doz|}%k}(Si?Ju@fB|vZT(`~gQ>39ugwwdlg;W;hZ2e%}N2#qaDM6(=x!aQK zwCyrKSr+dFkE^-`{iML@Zz0|-x9A%8+beP_O-4-ZA#DlYMP0ACstsrs#$!>Hx!B#h zhisgvw2km_v}$5&pJ=JybzHA-foU~S>5#itZc$tZv*|thJLsOQ+O8=?h|f_slr&BS z@HK{`w2rb<=;k0Pb4tQBF$#&U(H-w}kI<3=cVon_7J7tN;H4Uu=-fRB$4MlI*A{|V#SBSzwYJ8nH4{X5dWYMdmtjVPA+I%vyd*m+$-{b*;5Kk)WRjp>HXnbVKJZh#5Y?EOCfTp6p4h1E*=z-iyxNy_hcK>rFAI z)p|V1-obfR&kxvJSAw?KU8>iCr;)gv#I8gS!|gh@>HRgFK0zzH>p4Q`vWhV}8v=aC zCXEIN_cZC`morI=(%-6?x66%o)l(-vS#}$NDr0Kmu3gI z^hkMWPaxIyOJn1kmEKuPia4I5y>_kQXxiEeVHNVJy0{MomehuqO`7xw-(+*qhvv!l7J%6|}r7Zjwhl$gscE%)XQ1+5C@glro zS#6qA47yg^F8wQZ2%Y(b9fh_APqBkw3XS^_Qmf_`4vhcsl(wG%3`L*-c|Zk$HcSr( zK_5A0R!JQz``q(CRW{*Bk`jwQ{vTgI7D^2N%LDBH*3k&s+L)M|lKekBdjBo{hkqOW zLzKdl4Kf45SEg0H_)2r$2T5X1unTZltXd!HAnB$EqBu2+GW)}y%qVf3NNsCY;Z7*} zUd&hofl~NhLBe61BD~n#cvJ2i(u}Di=C5q@M1%0c>UMUd4tI`oUk8FxE<0pT@ZHpL; z&S=N#$09V(30K27yt}&mgvW02R;*hk4KJTo#!0ukhjyjPsz{lNIsFqBV_-^%ev)6NnA_vM%G z7TGQ_;70Tq!PG|IflT%nMa)&a9ozTT0Mj$$D@Fpb)RiHla@hOrpFnWZNijEyP-FJ9 zk%14-$T4CmJXixty#33OH16pGNHToWJ4mt|BWGUH-337Iuo;j#yd2nEBw2>n%)ps< zdus%JZnRz%FG8^dU8AP%LF}H%18SshEFq?72{(=YWq)>X-I{-)C6L>9`|H0mXP_!a zTvIPQq`F5A-lcqc4??7T1`kH0eEJVcqX(&iTR3DGz*dM)iCu_WBvTQ%K)kS;2b)-F)b_dY2g>{;1K&2!O0@HnTCfcm*74AM}}!B%S3C=m0CQiXLAh7QjItW zD?Ds0$d)aNkamuUpv@CxIy1!ss4vjMIYuMhJa$&G|1m3t8a%1EvFKD6)S&$% zFQE>4ankv5@T9UsmM;y|+q=0N+LM;l=Z}=jYqQna`icJP7>)hTSy()@f;xJps{%R- zRK+%R?M`lf$)((#om?Aj@nevgMBoq&xiaMn%-+Rb-e`cb&E*%ynLYqzmO3Fc9@{I9*lx#EN6OXe1#--Xhxe=TLJ8v_Rta<_Qq;@&tLJY!%D}8|@xzT(X8$+?-?OS-V@5EdB zkBqu6;(`7s#^D=4Ox5}+RfaaO5Tj1G>lAy)>^wS8ys7%Y@9`J>U}Nrx?+Kt*88o2f zIZ6}hwY0yF+QlZbpkpgE5sdP55m0sf!yR^AG+qMnLAqjzi1nFsM)3(}NHJO@wbg2w zMnQTZ5Mo3W5fZ=Kt7zGwEOcpEz#R<9qy+4rO7mm`!OWyuA)RA`1x@B(Nf-!eg|~91 zOzYLeOk&Y>XTH2xJY7P)xd*rKOnXW=`gO+YSO?|V25;F&HO38*htctc4mBKG4phE~BolExH<+4NW@U^_)~)O^?5- zuc9d)_jfzl{&pkj@^Qp4@-=;~<@TR`yLaKZcyg?Cl))HX<&l)1%&~Z`XLOafn(o=L zzw{MHMk@^GidwWX@xe~I?@f)t(7L~yTC?~0^cZt0E*b_wv&}~v>tMyIs-VWehi4Os zb|++Gfsc{Kdr!(sTmaHGDXSuNl@BR%56hO8n~gM|e0689G+WPQn}L7x5wvryrEx9D zEprvC-|BPjb52z@2rsqe|D@15b8O13@_I0en>ffZp={a!zhrPiC0~S+1_0UHux6H_ zwuwB$l20-COsu)oP?)f?=xb2bq!3yfVgLP0CIZ;4&l~s0`Gg&UA}T7OyvkrAVC2f*J;JDK0lia;L{1x148DG zfTSgiCxh1mEKQh@iQJEq0NO)}Y~L~$?5P;o#wt?tZ)4LA=r;w=8JqM1tP25)hY9}* zY={$=7vhB*eEllmNVT{E8)6b>#65M6GZoXtDiOXXq`U4&rEGW1D7pfBj=+m>Uk+*c z->yU3{E{#~j$|vpqH+rc^GAb6DRRaN9Rpp~>uSYaAddskNnG)lN{^DNRalqJRngZ^0S%{3!yR6?vBvaSKXOS;B*4Z?{IXs!Nw9bU<{UT1b-C0z?VyCkiz3*3NX!#fz<)DJg3=LOwBmva;a_H}xW`Ibc}E=$n5t z(46P|mVUf5uPoJJj7nNiV+mLqQ9r{HwP>SlN=M))r(SRmrYy#yEUur=V4BYmf9tbC z2sRf(-I@?CLBnDZ6DbppOz%Z)mRI$_KQRw71BZ~N_kSwS2lq%~`&twDAh9nB-_g}Z z$yvj%A%;WUi$Pu%Li||XX=-LGEw~fVR1I}u$e&j{cbP?ydSn(*I7qx)d8L1V#v{*>lP^-j7+I~p!amJNFaX^WE%=F(VcXN%5Gp$iP_nlvF0_NzZqTIk+!pb2 zML51hDN1lkb~TybCIE8d+R~>sGwHP0)6hEB0l`#QYA2N>xf|dDZjABpSVrXW5R@_7Up$`|Dq8LjcaD zCT(LzOOP~v-M2yYCKgQujgvZ5_3`GAma$3kEKDKCdi3-0b8K|Ou<`74wrWc37qjJR zayI-}velJ=Ty12?im7@KYjgXOc;um}35jJ$HiY7}>3q4_n{O02adEe{Bo150!gDj* z(ne|CKk2Q1@RWL-&*?xZU><@MkjKmDB2G58ulBkEP13|g{M*M zuw@R8Hmrb}3jSdxyZqp4Dae&Yz3io?tWq=vzDRD$|mM25+AWQNgm z$qX|gIB3q8(2?tmXqY+UqYOTThGDm9k%uVV+|xH&!%+LGj4GHt$#ugo0wR8Oaf56~ zMxs?e47_Gi{r;PEi4);D%c7>^;5>ASGX{t~! z8sdH}59DE|W?0Apat)TUdPEgx%^H?W2jP~p11vgKY-|>7`Xp)Teq#lhDzmjE1Lc!}<*Hd*edLez?aE50 zm_^nV^5yF@SjrQ*8j75T1qSBK0GE@1nHtYe>%VhPtf((>WhaS;FsU`B>1-udIJf0G z;_xX@U3gn%8gDpECpIvV95k->S3+=`WgmMLoKFk*uFS^r51O%Tu7Ma#ed&?Eb!0 zCoFlLHsyc3ou+Qie(RJayv~GDc5GfYcEaXRxBGD38_L8DbMnUha=!9du$z-IL|SDo zUY)F!Uzw~=Gu+QlDz-(g17(e{ai#zsr=C_#q+%RGWHJ z|DJi0mW0)6NA`x}I(vDLk%&YjPaGyf1$ENAN`D~{%a%eBFeE;*Akb&}or18_r zQlkL?Nc}Gzv5>x#zNy21;*S2$@$i4W_}>Pc|MvZdfA8@RRjSZliifD*IqQur;59+&7)^jsLO6ULn>_5!>p*=aZ|256eCTHUb1%G^iIoV zFMhS}dEw{AUvc0Ib^)0iCnhGq^>1}Bd~v%acporqV`nDtKGC|Pb`ibJp0&U&<8~RD zTXY}$2G`R#A4mc9U4lb&Y1b&D+Kd~tK&}<7BLSYb)Tliw_V{^b!FUmv$<`vobwegn z*AUo*KvjfBtD7cP!&?0pWK0^k3|5|o&b68`LXmb&bJ(yU6~K&if33SF<~`4lMWNGf zw3rOmjuDUEWWpVeB>XFQu^1uTrA-FSuFg+?Rl3NB$*rKkp6w>J8;|osI)#M?)+=48 z2pM>g@0&$+Hk=I@knPj)U?!Oqnohb{!08(nF3k#JLt^qW5G>SImI|kCHOg$~MiibU zmm1fEss&F2sbBK@&Yqz9GC>=FLZ>^gZ|E_Lgut&j8a7=-q<$^|>f>cF1PgR-Re&#J zvl0d^7|L^$<1rQv^%(hgzRirrb9;{uUQ%?(t(DDWV~|H|OAnQX-BgC%NI5p&|QARSGW zbg5aj4CIK1To|qw8@CeQ3w?b!;<=NZdFzGN5P zO>GFDh1*{gvWVDKnM+9_(+xHJ5R3DM95!Zm2J4Gxy=TuJRn}}Jf}DjrsHd(PD|?s; zi}RMIqGp%lV&R7S$?~NGq4SR@%Lg!hJt3A({{+@o7%-MjUj^1z5HOVv@gzrEH&YqpF97$|huB+Bo zzldBEnb#!Qhu9oxy!B2pClu7*6zQr=4pMRX(l;z7WrrBND`8Sj2b>UwY2du z9x-HP_4mvy;xe#du-lUg4`fPaCoaF368ilw&9ZJ)1<0`wp7Tb|$jZSs3N zoSLfg3r4l}8?wv*mb6&MRt0;pKeSXEb}wa zH;~delw5_Kl3FHK2Lo?GNQNCtL_hwdRrU1fiCnITawQ8tc0I2%-q6y(4ylk)$**-F zD3&C*d3%3D?mQUw6j`{B((TPoVgFV6^CLJp27o@>cuHqA{b<~0I=qGwzX79OW14i% zzV;s;Mmc4++1At(Q40yhvtca=Q%PAT%efKX1Vt|bko3feN((!pWwLrot<-&r_4#mn zQ()wBH?B}rjL1as4l8{#leJxm=tt6__3!5+C~^3EnLDn|m1l*{NOQ;#5yu~s7q^^%WY!8W z0bojc@q#m@maTWB5h7(Kbvq7cWF@G6Xr0Th6);L-CHOPAtlENfb_L4ZB)P9--_VTH z#tbp#g6Ehh2Wbb^z-hCW63abenZXj`?Yk~F_y8KFCh;YEZ9p0khF+wqp^i52RY_u_ zjt;YzN-wn;@(4-cm)N7gb8(8(3LEwarF^q;;vY$jHy%x1k>gU8S=oQZ2#>_wYoQ=15;ZX+4I@aTy z6uynvXLnQ<(5@SouMgjJR52dDOyyh8;0XnV3Zyp7>AD=v27Jmqn_2^Q706b7G`*YS zXaL_Oue>w4@?%}k;0O(pQW<;718PB&tr1xnw3V$u$ZFBJMT&kGmm z-Kc94%>hTAK4=f_func=sWhuISwwD+#uN1Vz%1zjCV9%y`0Fd^ftxP>bM_SU=z+-5 z8?(y^;PU~Bb&H^WsfZC*nl)d;&sA|Y6ew;Zi(VmsRU&fsVFv?Qg|^RMKOah>@Njr zqY7n_O;IGBJlO)7F_dT!D$h{;tzTC9S{5ctl9v8VXG%pN%b>FF(FxSRMU%DTv zT9_5p&JvXt1eDp4(u)ZU zy5Q-uDf4uxBPfqQd`$tFgFfx3gczA;v`)0X%C2>j(B{zX`ggP;Cs37!bZKfcN-246 z*xyU`gcqUV9(3-E&9EnTS5qt9;Z#Y{Zv{?EEr6FL<-=%@BvX8+#@ zg#T5-{-@jhxA-6aZS)UK8t!^ZkGDCi7gy_6Isyq~EQ%WKW@qvy2et!^vU z4#K>Tubqx-h*qx-D1>p)wdm&pd9#@-_Z_66ybdp9=ITM#x%Zib}P24fo0T_z)= z_>3pJ>i&eygCoka)HEvM1r%OIpOOi&Y-T2-M=5pZp zsUR(qO@pB0B74Xj;;dIFdb>GdoALc1x-;bP2qT9&sbq-;p>#*%J?>YHv;1Qeouj=& z8>+n^MyKw6V<_F7;#cmWDe6|O-J~)#T|zJFqB5kuip|b&dZ|M!9omk+qstnY6-hQ( z{f{>7f3S@Xh}d)|qvn|*_nqtYx}>aPYa|awr|z2Mhv}4Gh|L>=*(g8cUpFs`HNH}r z@ywgW7Ko%PX6Fmd6Kpza*UwDoZ4-*+nOn5=b28`-;V^F}=KnBf)qgRvfpd^Zs|~jo zo~pQoWH4_X9A$M%3a!y@PR(o4ZBnCj&r9=mOYBx`9vs7=`)c{r*x!@CXy~_zwl720 z$%ZHMl1@F&PbPk{i8&VZv$egNbPMllZaR@}AMLFhf8)}9HC}v0MqDes&;{{LFt?R6 z?c6JS^k+ZimJ}FNj9f2!oqrI@W(*hp%|)-gaTg$@9Xu$nvY@J=v86IiZ~Kc)acjAI zQyq_HC>z$+q5|!y@!JMdQDlh}RvA@VIVmF}9lIPWt^Tjgy_2Ve7oM-DxFP$=V~b%@ z1L=I%aMG^_X^BK_Qp8G-FPftHE4rkLJSCS4WMod*^uQH%e2rVtA(DlY0Pt*;)mhd5@XM*5=C^J zZeTi~z2jvFea#HB(qMBLpti^Weq3!XY-h4|ng)>u1giiIQG&{(mS(Uf1QchJFRg)D zA8j>St4ikMy5Ems$yJZlaL7zMp;ZO^$rIRAwve73EStHt9_egK450yw)_^s>%D-lp z#++=vVYp`1Q7xOuJTLL;p<#Z!~lg6?tD3Tkh?%wC^U-D=bMlZMCr!v&S$A5 zJb@M5>jxq1O|0&w?j)T(wAEf+`dbX@oIGkhiZ?IBYMNU`TNpHS?G}g$@%&4=@;;O) zI=C0iJN&d?GNFug?(I%*w!u;*9}{P2H%`46)UY^oijvkx%+MD0g;d8Wa4p1y=uxwo z&_*w7>f98o$pmF9f?INThWZ0EXp6tyu)GCr?YS{xW*UE5*gr|~-qo_3za;rrfBMsc zM#ZG^gpdml=Mh}>Rz9?Ry@RS+05_7N>mOIO`w0lWz6!u3xWU66I%q2Qfi&mWE-pz6 zpiOyYN*~)?g=1qKsD}cngIORVshXt^Bi4M+!R|TL3c&^2}LQ%}I!<66W_(KCC zyYy6@@B+>5-ZugA6Kd%>Sz`BLQdbwub?Mxy*ulb}nB*u?(v%2UW%^1ZxWnA5T}ez= zz1TtK_6|La1`?IcV6m_1?hIaPmbpZ4UBAj~#m^jB&!P+Z(PK#lPGOf^!*3&Gi8MQ< z5)2*t-9%X&11o0=b8mQB_2p+UA3LFutt08eU0ae%vU1E+Gn@7gU1@D^(_|rB3-ACd zy8ItEgpyOq$&J(5nn84mxK3<>u9aVTJ>(8QKa7*EOS%}n=$)MIl(bZ?1P9=EA`QW! ztuB;LP1=QvJ}Y~T#_01Uo*VM#ADsfmb@SepTtWxoCGKOH;TNobjKqTBZ-}XQq+;~J zce!Kk459FqUhR2F21F4QkPn)m`10-&eln}vv981VIuw@=?^y`iLcS`Oh}=LV+hh+1 z`maiBxgY3V> zf9()>cE(7v2`<^a9=oVHWy9FNCKovUrCK`g`-;JwIrv@i0hT*t8$Qd2!0Nk$U;aUS z+D$qY^GZ(jo#TyZB-}zpc&n}5u>8JkR4Dk34O@<%8m(0bDZb71Dfsy=Z^t;EL zrqzu99OH28Mr6B~#h0vPN|74ERJeVR9~lqA7Ta&hNejA~3(5gUl8o>!!N-pp9htC^u(c;ZOsm8 zbg%^i6fNWOn52zI4X_GHvY1B2UJGqkt<2-SPe#;~!J5dniCY5qVw+WNpf>oJL9suW z^D0o9yonzKwYs6Jcy{u3mVsB;*xR1X{ZPm%#ww8_=2df=JtjQ_SB9&T(X@$?k!cOF zu3?kjU8`^v%B8BxDlDirwRDyvD>2%w{|NrIjAe=6BReWl)lEvK%hkbyMZQPw7AlT% z>xlcK!m?PSt=Us8F0sWsg856#T%raM62b z5DdV*aW}`?Z8~(l6m@3S7hX$Xe05sE-CB4vmxm5(aW9L$nvMk+NyH}7lCMa0VsLod zo2VmXcJc5=9l0+h;gE9kOA^+Cc1xxvy5b=>m?9Fh0VuX@3Ar3s0{}oqm8obNvMhJ6u&?Z^F$Ox^9%% zZDW6k%#^GKH3IHv4x3%Mefz=Y+~oho**nJA7Dervr*z7;ZQHhOTc>Q>wr$(CZQI5v zqwDn7$%l0M-rH|hvUgVYe6xSdtTES^b36lrfdj9Ahf&BmEiF6^J`lI2hxP+USNjpp zw*FO4C_X;4f)VZ>!_9x-8KZ`+W0I1+%Q5@Y!_^ z>^H8Tp&h}TXlWq_cUG3Wd;^>OAUcat@xC6@Kztq~1x;A~kd|qwm)7XU+}XloPu8*< zhlqSa{TJRj1Zd>Vi<*9wZOd??%P=&}Y#TmFqXj-%(~|oaQ!w{lb*vUL_W?Vn3WArc z0e|taYGh&X-i==?Qk?l1dAmcpY{~+TL3=b7llnQ7(96)m?;dr9g5Dd6GCDY8nRpl6 zHxRWLRGjsh+?K#UF9Z_QyM}{aMjlw$m|J1XQM&mS_Hz{NkhdgNJ!mc=lT-tQcpVL6kI~lpkjR`+9GeG|U9wciQnH5<;1bK>iw7EwBl`+mpZ}~LKJc^YRw{R9`AfG>!sx!hAa)HZN zmR+rs!CILXwUULDQ=Hg(apN(fHNE&uwca2$ISR6l49GXKD{=);a?{;dp_F(5+&u6` z^58e2h&Lg*9#|!HoJ^9xAnrM%AmL{tWCyvzb7e6e2A8|_m$p9rp9ct+Hj=I10O!ol zGmOt0u<|A!+gJ1+SIgTqvjNB3Q^(sM{-oxff%WcY9Nmjx(x>1sn$in)Vp|m*~JUvQL~2wOhFL@On>#XbGWMrekuODYOeRg-!DQuc-O4XoN=qD_cBU`}3QOOw^a%P_J zC&A62DHpDUdf$NE5^IaIN-z{V-%&ZD+G0M5mR%@(dM|AcD?A)}EW~a#Bk>1|%=TzF zxobOkcuVpW2B6ZbUG%J|B z;DU;>vZ1ney1t()!ZU39vi(kREIV!+_@PAqb?%TZ2fJplL1RXC2!eoe@>nD<)_al-%kIN+8 zH~eW2$iNqH@F%&-2LjzU^71DNr4O{)_is9%_ixbSndrh{e^=%&b0`bXX{CdPWQ_M( z*+3f1^5K268rxO{hpSJe#Z2W*(TCqjXi+YVey;gG{^vcpo!@+JH~ellK)JYl!vF%) zr4t>ayB1@bCjW7bQ|bnk+sjFaxVL+U8j9D5i)SXU#yzHUS?D0{883|S*u-A}(8k%j zR~o`GA!BJ-(4q*9okf6Z53tu&`zcH8L5=s?pqS1J;m9ty`a8XZ)xPq-m0LHTCG#y% z`xR#Zj-}Z3{LUI&sl5PkpF?uUvsTb6%{i8AZ^rw&Oh7Pdb$*S2R{{6?EPhi#;*mw? zX6k`kQ>OmdIRvA=%uBof%SC;jCobmgK~|B&kPbU%0G0AI7vBWpJK6^FR6^!K2e2&P zyCAm5D1LP2`1@q;Pd0yq8w&MN!x><<)tX>Y+oLoavgYPeTaFHkq9K+IeOEr@)UBkm zdsMe^sP%;at#T&-)|y+B|AN0@Ba^^{``HV=#xKeTx*U+_{Ptldi^9t_z@M ztF~)LhPr@!rkYJDt8$M z-9fjrmIci@lD111mAewxB(1f3moVKy!-?&s_)Oj*G8H)ilRma#Qoh5FDxdnP;ZfrQ zBFK_XrrFWpJ*dhsPioAZ6@D6(i5-%@H`@0>FI= z@H4nbqMEA5NU$0q?^t04f4wz@p+URXnOA##Qxq3I$0s=2iBAMg`NG=BR+LD>8&t9JDEXV$X^-VNG!|VUDZ|5UMM#`C`%gcF>5}qk2br z`nx;%dY}6dq&xcQft0*|Wr5KXsB4&YPSca|mmOl)K+AlGCuY}3%L1q;=*g|AE6mQ= z!)-_C%`$$}Gj8?_`zY{saAE@7@pj%00H7&A>^psi|A_&_XZAJ-mnuM`Pj8BVs=6Vq zrml-TVegyhDy(|;4TIlEl zY8#6!$QemePda~Z?5B+hTURiHi4UJl&{y>=?{-MbSL`w0JJ6_M)*JUr8vPKM66q+5 z?`{%@k(N%~w~)v1uOpJpdwf9Ni3QzMYQ~d^+Ql*bRr^KuLz@x2znpH|2QBXU}bHiehuC0PPf;Tm|OPJkm zh};`T;*%okq-IENl7W2KSNcmgP+W7M8!5{fAJC~q$tia3a20ki(f+Xd+jH%ZTs)FGeb5L--?{~+d6P=9J+AYLOibK1*T(SErT3+S9@KsW zm#jhS3v!uG`gv~pg?&%r&IcHK&(pX}_gcYFQXwx}vMf0}%aJu{Yg zvU4gAP0xy0!|I)zz$t8)ZD+=coXD6@5_T}d0Z-<*HBN7MFXBmQzmzn1* zj~<8V@63lTni-$F!33d3q05`fl@Bye`2el)qV0CpS)yd=KOezXghc@MLxna3!x)^<)0l?s&MJz}Q z3O$vHT7PY#w$^Z!gOvgM1$PYR$;Kc^r8|g=3WE}Z)@bcG3C;e_5{v%H4n?piE#*z}ufaBqtX69DFVHMhT|d1WB|_D4gH41HXesf=PlU(bLgc7_>|f zQ%vI(wc?0b!W1&h>cS`+O8H+}cgE>L@}l(d1vv%L119Mr@&fWQ^Ahv{226t8pdbc3 zgQ@@6QU3hH7jzWHKZam*!05>gj`TYfXaZ3B!C-={1J1!X!Proo=+5+7R*1S|`8apV z8Lh)4-6n`D5b0Wq9mCyyXI6HqtSVM&3kEJ6+Dpzg6Vztair^~1hhj#i!W$;KczExW zoAw(|PKz0#8^zwfP|x>=oryO0evlgcJ3C4MR#yWNLbDcp-1W59!LET=YYx z;S@3MMmUD-9<=ApP$E{Hl{0509aX4U5Po#?nFdujMQoy|w}mf>TtR4rr926$yMWU8qlbKLkA9YerUV8 zLhg~MZEwYv|K~uRvoD)OR|sb5 zRX`Jjn${_DGDVzwObG(iL?>z!Ilk^`^vZwQ-UW0wdb2bTc`=0>4ot-Jt&%EyYYkJI4;`5AQ`8KO*9=RqB~R-2GRH|S+W_;;I&xoIxf^iW_lDM z72-~A{2%QS%_n?B^lr0+0i#A`w2(1dMf5V4fMST>_D5$5fJ^*|VY!>x_<+n*0fy-Y zo0iIkYInqL&e3fK)YfS5y&MO^(x4rLPT@N<9UFlxf_FkX)SjG=W9Zhgf*ODjE$Cp7 zwTG^Ud>txSTnS6Upo|i^%<>sjxAS}DTXQ6q5u`HQ8bl#5lhCm6Qm0A|G={GL92m1T5&jHR8x97;wc!e0kbm2pQPniJ!JI>PeI3Dj$uo zGo#RNDNwIf1iap4rC*ye2X7^#x74}bAs}H2J&mb_yiQ<3J&^#6S^?WVrF#TBHt-YA2|)mzPR-{tyI(UlTR<7yr6!n z#^=573_*2^O174Bk)%fc<;}*Q1Q zH}sZn>bV88IZ0Q(8oEyYp5#+%cg_5j*FH$7mDv>{_m~{--dp;g8pD=_79zWtR@9U2 zK1_3Ey3-V|+fN?vBP8r_kMXw4M8WtM7)$TyC-Fz9feA;keAP4N%VLq&_*3aOXzL+y zNx^)^$7rDv^%e18P_q`Hn}%gx2G7x3@&Rtg8X?w*oAtrZcvs&iJQw=w*H8PBnVUXs z&FF2ES|H_jK;k}MA5-v?GDT}z^CV7x{5Bz3P4O67ErfW^B)ZMG4feI#FFY@jIh{AH zd{K0m`5fYNWP$vFN7QQn9tp=pTrPf}gj2Q_nb{Nn<04y=_`&BvoD5euQt<%G=v?$M z2&y-j_ct#hey%`Ax*vdAT7gUWo^tR4m4_l%Bw0ikLYL(COx@O${uXtZmzGM5?XzOA z%h~hf=lkS~D3-6+&n5K^m%u&T_)Nd%C51UVA*_(SdyZiovT5DeUpE5_u911ary!Sh zbfrG)pO_rF#{<5hIncV>By3PsniEJIQ&BX2RllON!L9Svd_K>sW@#ns6}5i6ve|^m z)%28((UNN*Dk!=2yJV%WKqHezRZuc&z_7-Cd0DT1huD&y&;W|k&9*z>}q$*Ijom_^rP8b`v41; z$|}2+Wfk`GJx7`i=Zy<)XlEBIZX8sB-Rdf9$2M$BOD>(L;4a6}mD33-Z_?;jPb)>< z*me%vq=N&={`R4rV7DC!wR%^`UNsO@a<{-8Q}!SHMViPJqt$QgRQCq9G6A*h%u95p zduTJgqrR#Frr}yr1O>pX@;%2YXOJlgl|mWf*{*?t?jc;~$({WOw@CV%W4YRpn%8w7 zXS~oCcFMJ{2-Ag-t#eFei|Fb;O4VrhJdD!?gLUx^vDqc2;BYrnVgbkuWbdvQ7iuqT z*&4wMgVB*)))vogc!VP_rsACWbeOUm-5Glcpy^^erVx8Gnk`?QI2M2F!i>RyR4IhQ;Xy)lcTK`&!x1$Wur>9d@JC$Fc}xiBB~ zGx5h!*AJ{qE;a#B?~TWGs|BL_i(IX3IrS6o=KJy#=fW$+PNdjHW1Ca6?WSj2QdOFj zJ()#LC8t}LpNW3gO4gDZ9vCeSjVr|$6825kYwoNu9WnA@)kL};9D+9}7F!OF)_%)b zWiBI@Tk4xfmD9(gk;;S(S;YXfc$ihWT;)O}w1sDm@b?`Ub>;cSO3>!iw$N22PKP9* z%y~^=nTsNSLvtbo9Kp*cq9E=GE-+7FI_+?^!>z0cuSzCPM;t*|Zlzbds|$Syaig)U z=#?EPG?+`kMCpunr_G$z>`^sb3bJI|+}d6eva%{Z=Nz7_xJKxOC)QHeMw#rXDJD*) zZc5lSjv*#ac!eF_%NldW(_uoldH))rHRV{nn5z>z*_wU(K({DC>de%d^%6*qdh1K6W3wi`o$uh0I?gXo{ z(c5yvw44?#O`AF8&@Z?UrrE+Po{KU-*&<4wr#1k&pHNoFKXS;Gn4K>V)O?Yva{$4D0l4AqnIXB4L604e?*;cn4bT2dZSsnTyw6n^`_y-of#|8S2wJn8QUaAd|5SY6cSIwZ#QTf8!_ad)^exe^ zkgGC%*bPzV=h&isU^zk)HKg4QfR)ALOGH?Lfm*P@z_Q~npO-eQ6H<2PNI zH&%L7zI;OIw=P{dYuFd=0l6rU=moIVZ8MAf#=-1zj*w|u&!dHrvs6N2mHE@ z#QBD-veihGR|lK?25s(D64840q8F#Wmfr0(-Dz(A;^u3)3#nC6QYX2wlg=@r*_q0f-Y*p2LRSF2`& zhE0J_$VZx4q_Y_&4l=Ap*1YWX{WeE4C$9x7EM_UC_0=2D*#m z9TVVCX~5?j#cx^+CfaQ5?2eJl_ng~zaL;!pkn5Q=+h>j4FV@vh!1*3U03Eu6uTFqx z)ZmluzC=!zF0D9zHv&eGYf|Y})^rC{HnA|kanzt)p6$f)-vA#UuxktDHV3T#{=I* zAU9J6uHAOMd0KV##y?Si9MQAijgL1~2S7PnRf~E*mEEn>u2VF3uYI>7`ntscm8Vtx;QbL9X$Cep~b{vHOMcbgbX{KG}8?2;0&7d5+YY zljq`C(Q>+3a;|c5YoS?DeoJ!-T&`M`OK zBY0qF0PkV>YV(%Ur`F0`vt6`lRNaLsRY zBW!ddiC=${QCV0YRK5<{5rbFVnic_6to+yKcf}a!fWr;l$xnLW(eHf^sny4T z`Jncls5R%;bBR=&k5TXE!CspU%gGm)r|VB=^Wxsm7?Mq7$W7gVEnWZji(T*a#P=Mi zRv!kgXX@k4ncfhW-cJ{D+waA|cNNG@Uf(U)zE48iZ??akCmXN4{f@LKXBDFE>?jQ1 zyX$#g&tze**KyTngQuWpj0JNWl~FumJ}em6wJh$mUNVNkks_=9C?X@_Xb-0-xtIzS z%R?n=JRC^J88f-pHO-Yo8P-m&pDGR~DVkV4P7D{IYG8WJuRb_bMR`xVK6+XfbjX! zDwcGZ;qOX!NrzyIQNc)}4h4kY_*q;e8_t|tv}lyS{k{ihC_+OYL0<|6*BWwj{ev>v z+?=1%Oq0`Wc6zXYT4Pk8Q);z>B1Dq%Cs3+eTMhb@Q7dSw8M$r?R2d>jy}VB)4=m%1 zZ9ZK4n^4AcEMM1m7(lhoM+e^tFd?!Zr3ug=I<$kw3)IA^8%CgpOe{nC%umLKvKI|J zyy;NRLSvA#sQyY#F2Tqa4UvXG$`2oSDNNHl4a-GLazzP?u76m#nkBwz_k1?gc_?}h zijyqXF))@rzY%1l4i2S9VB%OCYzZPW!}73jZT4FQBTIrKt$6e`haKM)5(Y{1GclKi zkg%Y!6oKELfRfI@1}4FNEd}Jw6Cux0_Gz&w1rvG5e9IF}r7fEVAzmXav^4^5-H* zD(~~rXWZxfRdmb@yO#)-UH698{}{MVM>wg?971n$7_iz=tiV0|{v47kb9 zSP3x-X&$_ebYr1f#nPrtDxp8BWaJg~$DB(RehW&Oua7LLA}V#0Us3_+tkJ(6E23-= z0gD!6$BM(;C7y6Wud&p=RhCZ#TyWZ|$=KMT0883$9D7I!7X@z>kR*gCGfdUvmaFI70yHGGU*ncC;1lqDNdHyGyD@FdCxa6fQ@L6 zj?sJgcl0h9D-%cX0fNk~1Gp~TL`vr^vJAxS)^S{G-rwJ@4U~(i2Ilgd;3s55G6KBa z$+yr0ugO)J{Qv-nBco#AJ9{1gP2U|VLYc+sk_E-h+$Ng!2Am32%|+wdtmG2$!4PeF zQ0tYPsE|dIUPz$Gdt2vz(}Q*;`M$#DmLy%InFyu#O;2Xc^WvtEAe$#zG^EsQ2P!5`B2sut;_yCCh+$xYh^P>I&d&eH6J3zU zR9=^gg$|e?c!X}P0zHl|q2=e9yppGGA)y{0BH?wYroGfHu6&v9VXue74g6=EFzGMb zZz2{{rjGn}iv^zIO#@3KV}hE+zZ4dW%Tk17BZOHjs1K>K(H?*a*Rhg5TKYU)3@7so zs-rU}9*H8>tuGouzV_+LbCbee(LI+0T3_`5MwvxrkjRVfq2R00Zi^DrY@h({!VjV? zRuV%x`^QbY?5&@uyApVe0J4Dlor*9&a86j5na9P}RbJmpZzP43t(eS-+iFa{>6t$q z1N7XG1WlZyy)x?qGz=}65ohz&!#GqW@9w|~bRcEp0GBk+u0jlTW?KMYMPbrM#^6%E8Q;Dl)^i^c>)tTS_~ zTMghGfGeGh-sDxTaD*#U&v6C^s`r*Q&!tS6m=ivZ`wmX~++J#vvf(!$J}~t6*q=}C zG8S|Pa%6HIA6Ss&J7C)$FUfnok>(3bF<|CoU>4rs@6YA$U+L$a5%Aq>P9L@C#SLMr z^&q<>n)jK`*aT^7amDVrq7MkTLl6e-g2;H`jeW^@4Pw1}b`kVj{dq&ZquzQ-zcE#_ z)Kmx(UP$C4aSL4K8x`cUf_2ZDRHf@Or8k+?Bl35_|m_%SRMtnkpTMFl&4J zQuvXVh1fO3(!_MVQI<4e-+ce)l4%66ox18L4mBhG`o;Wz9_IdYf9jvXKm9ZNry|ue zRYX;!Z*DNCL4KAZhs_Wp zhukC8g%@T{!Hp%5$)eHT5?QEi_4pY3+bz;n2jU_i_6+osmIlysZjlOm!B?>Yx5{$ig^++Vhtw$B4Z(rmh!|5ZGBwGwowv zTHj?Ns5&X;E@w#R>QPY4CgM_pAfK9A%+b!a(U4xHk~@rnaB55p4SOP)V*-65st8F8 zE*_J&7zpGlsn)C(5&WFPKc5~8L?;EItSQ4dhhg$aQ_H(y+ddT#c$%nWu!ks=&RvRf zO7dSfLtSLxw_7}&ca-qd*4vF|sG(DKB@RDGV!VR*b2pEC`%ELW$garv7#QdR0^>H) zWwMYc0`0!M1eP?dBm2$uSzJY~2~XPVI(}fB z>2(ol6ol!-JKv73WF9Y~LjIgtI!wNGD*K4OULlFgHD{f1_Oh!E+FEOk^H?JWy`xJ( zw?9NFzDz>aXhvvvN2247$LOfy~nj^M<6ap^yiGBuT1LEv8=47U-)HQtOAk8 z=YY8|IBy%V!{6TpdjcVu*iqQ%GsH7Gx^8B_wM2}nvz@A&-OAgIM>x_Yn6|JK4aAq) zvF4PrpAK(3Pb*PpSFLv}5tc>UBc(J<%@n;!{d|$chp#Z_ihVE0Xk|*>8)+?c9p17c zb~~{Nuq~Ar%Gu+&F9k0~Gkc$!D1Kczs&0c@Shjbn-Yw=wc%ja~T(k_mZ3$ddtx7XU z*^urQkm@*=izMtn!wAfGV z$uv+di=;*-L{8cSh7%vlZc@v3a`892F_OqwGqdvn-uURcibQ{X(|Ti*1}Ty^N4R0& zpu zR+9kPR)5)DB6E7zSZ}ut3UDnP4IyE=M^cKLTq;g}Af@U6C1pW$5A8G=IpQqMnAkW` zYIpv1e^`1{*ob;=uA_5&?7HX>k~Ej|9Esxd-%hF#SNR9$B0E+6nuT&^am#SvwkSoe znVlFV)LDGk({7J_p-0TTb>ASall$;alz`~sCGIhZV&Ka1%;+=G!egODgY<+iVlI6) z_Ie-t2*RSBuAe$vtuoKu(j8%L3YzzbpE`%KfZsKTp3^b*BcsR*Gyvt;rHDGdh)?-7Vw<|WDFg2{%$ zc^j7kS67XY&csuK{mAP%73fJy*(}=D=tyN*WJM#SX73R7_oDQ)`81q9D_Zv{_kYL2 zWx5-V5)TQQjTbIQsl@@GJNz#mfIx2(Az!{cd$|`ctdns^VK)yTwzF$CP_MVH4ji42 z{9O($+1+E3&9$2jk{ImI|f0qALmHMuWb%Y$!GhpQhMTGAc+DI;5?ni7=AkGBM zWTGA_=h8qf$rsPUMg^2sJGp!P2d_D5-NLd<=}NewYt{0Scs&)PR)e-{ecj_b*V}#i z(#U1ajg<597Rc0e`ZWdEH?$9jQ1N(Rf8&}lvl!#jaui>z7*RKj4QA)X%afimXw z*EuGR5Pl*qN?uwu#`L6Q@v)R4DL*;6G)_suP(tItrK4_`tHPLQ^T=elAC=Q4BOL85 zl0_08`0@_HS~H;n0mD?8v0Kj~SO(_L^?7u*;xuJmWm%B`y|LeKCZa}lZThN8sHCT7 z_Nuj0tOi=wLe`Qvg~v5H&-2W5CXX0878})m0Df;(efN$mxOCist0yONV4=agO3HxY)=D*QTQ8*|dz!~Pms)pkVQd35W>dX!T(hv7>wyl<}9sBuKX{c~T`sHH)PWV+M$cjb5 zPjQvj77ypC$#Y~6`r52gL)9zI`K=Hff!iWq@z_}e*u>g|mcxxo;VY}lg|%*sW^P z5g%OIhbKzTCL+=y%X33nM|;hp>I=J7Dn}3;N2H`6aI(?b(%@J8PIQ982R!Wgao!}N z)TxM4(X;7+88xWdJxNuib!;+!Gos1Q*uzcds!9x-)?-;bnoFOHg;%PrDv%@Gg~$=2 z9^>+>A_OM<|A0eFuIi!6Sm%_g-p6RkC%>jT9cMdpS3LwQmke+1va8nY&=QpbhHTal zCUrFHH?N*=(*T@_wB({tBRX#ely|tk?-<+=RJ`wZBWh#xoxW8n(XK+2cOZ4NZ0?;X zku|Ki*>(CG79n9idqE^3gm_71q9(7bQ5at#$iz7$n(1`D9R2W>)q#?x_{dG>Z>IOr zv@G@#W5TMyuAPb}`eDIJwgb{jQ79mWEbS75aw;n|#_cf?MOd`j3ZJ&$(mq{q2_^PlU_KLpUNao1Quhc!^o5M+RD%O{yM!iO5En z+F4-O`f*-UQwG56g-DMZyKgHn!4+Kr*O0KZz$KR(O^aXpinBDUv^%_gP-sdS7-6Ec zC!RG9bJZ~KC^J6lx@B0XGzz5{+I#THMHF_ACXc5zGMMrat2Ge%ar1?QMQcyah(*p2 z-Hh;t{|roy!$@KXMM4O)C>L%b+LMaY7V0^+FRznvlR-*0r`}cBzTs-QYf+?P-8mxO z#Q0pU)^vs;-G15%>e>x=YGRe`3xdOer`dL)*!Yi*2xJq>{4MgIHZ2GCn=9vg#6wwZ zkac$awEODEH5mF)|`=9LdeEW3MiGTaUPjc=_TaEk*m3;C^W4bzZ& z^Ydaa-(0M5dCq~qebLB&uwhY5%I7R%;w|g)50_51N=L|K5G*I%Fg-g$uORk<2?1oTJSgXd2Neu#4x)@b0fnNUi+LU|VOI>W3QH?WP>r%p-&} z?emJXEKPJKze5vz;u>-6_b#eEIdFv6UP=?b$;`Qr`+a_yQ(~guNm;qfXXC9W&@e4z zlXDCTcY95WdnB99w9P b=0B4s!SGmIB#c<}HoY@BAAt=0Kw-GF$Qfi}!8p|l4% z6Yjdj)6Syb5?rOxBBz;6WtcU=q-$EFX(| zq9T&rv}@&iikEuQ^8&eSutNfKR_mt_8rQ_nTMFL+-`@dO3M#B49c!jQZsd9S{sdDpl zTmK~^QkIK(93mb!8Pya*uWLTB@a|V-<~^%O$9-0w>iB24-|av11OLYT(?5@Yic;2A#WaTV zMiF39Px1a)x)!39CD)1pRapsZbW7CsA=Ls$pX)JPKI) z8P3dk_#|>PV4?t@-`S?RI3H)lm>#c9<@kI)ar$1=GC%4o3?+t}Ltmvv>IKiJqdcok znwtr7gg?{Q#Jva%cp1Ie`8Cn1Pt-s8c13)&7V4wx);+~GWdWqUctrsotse zwLRV|uyn-fNYYmSIb?`gfJlt=f9Q6zHZe9aH23C7(UFI%9=DiUQ<+WhqG1spXR$0> zvr?UAkt9BoB0GJgokWU={=-Bz2MD4*Pt$>{aGlzGCPM*6%qVE-xLJW*C10fHLj&QYL?c0Mr@$a3$zhv zS}11i`tmiB87Oq|lQa`ebwv|lD(uh;=&Wa(pg>d zhXr{Hd}}sV^$5Se;RtABcYuvJ=Uo%jhn(VyTtYJuHpe_a<@NBF=zoMydu6%>H1H}$ zJ8KcI!6qF-kH3@Ww~8lO8-nG`EwB~evi~0Qn5zjRa@#fE%m55{lp*s`l*ILYEx^dlfr5se3%~-<&I_tkh-xAnpwm$HIJHSc8Oe$S z`CC%Tqsaj)A^fep57p*J%Jf>YD?5#!I{jr6MSr#2qprOkyG2lI#O~tFw&8-w6T#g^B)y+;|N9H# z*BBo{{?EoR$j>G*_5aSZP|C)}_P_2f{~P#E|4jZVNkQ7?r?-WdwF1i;4U;t9V?fMo zu>}IrPsz+*1>$)La;$K77Z#QM(I(XnnZ>UX9ST1_tQUX}vcXD4kfstPN?y0^=}x!i zlbIde9sp0ihDZWu&q~9U5tb*e&fDAh0m@)eXMzTklsz*%>C&JkRei2K4M^nhK{Dhg z`^%}IW+21(7^Qo03-cIsjw)o!^%JNeL`DRt44|^1leHnaLfuz6ctz~g)Cz~}ajtIS zh&JkAJc7ALp*t!>q-NEN6;D|jNJD*a&8yJ98|`6&y7|+|0n6~2NvbGe-Qy|?mxvwd z*UW^O?C7MiLYy23PI^Mvs9!h|0OPKRdbpsD#+2>)rHA=>`|eoY=rY1m)6U65jFie~ z<{m7P2*kn?$zLV3S&UfKi_=+Y*Bd8xR1EIx*3bB~$a(w?^)T)xwGza<3{kTfRScd6 ztY$7!cGE9eEjxW2ytU2;_J9KA1eXW&`d)ECq@};CQ!41+n&paoFs<3rD#)C={XT{E z-m(=A6a9s!s}!PC;!;bfBC@~z`)7rkMYDO zO1h$Kn1ToSHk}G}%NF(F1WB31)qg4p#`-q`5SPbdrJwt;`8G@zi5UMLf&}W|~FU z;DiV*Ccg+{^Ww~`qr--ymp@T6aj#hTR@MwT6DMPhLI(<{M-FLB4@Sn_!;o4`f+{Ad zlqVgnnWzxM!VFb#P)QiH&U08alKBie`};+?patbdI>Qsp)z13$0(=%m#zm19%-y}- z#x^!J5f`mG>A#~enRSlxhqR6lm*#cJrZ7lrlDxAbC|(KpZR6|a z57ZTa5X&-HEjEp=xE3f?-3#e~4HOxo_D#^6z+iRIwJD}d%suBD!zVxIftjoml4isa z6G?t3MtFoW*0RUcoyyumM&At)EqBHkHmDr5vd1$I$QXYizEw#cls%i6bm1yj#2l(J z*Yob2@>^*o9J(T!A5se2_={P`Pf193E)O*`Ju6C&Ci25*AsK9swshFTt0G9P_Q zkA5IXSv`4oG9+E&H>~~FurW#II+zB zvLGi_$lU(wGpN~nU}|>T)DNO6+upcz2_fVUFdr}-P*@(}SB${adJB(i_MK5xBDXT; zv{eEHv?_YA+d6H|ozu~8<>sl`DYbhCf&&qfN%vQ~)K6zY(;U3n(r8@0V5EqYQ=HvE zfdM;8$4>e-1psv;vp{)XP`_DAVbr4`29%XBp9rfjUV9v62`8hM2jH8RNDKCR( z;s9l}W&~U>Yq%_!5dHy}#<*_Ba9Q23R)Pu!D38Mz1eS-r&UMsFV?vYk>LJY6M=T|& zE#jG9K7I&~GKG$%8^qW`68^zquzW;W#mXU@Z1Z88LC{5M%X{y=y$MTFQesq4QZBP9 zRh3q1YSncYXPXb^`|=_=zYkPwc7sv5Oe)z``H{5PBypZ5wKa{t6lMI`%Pvn!(#(it zX~Q9K3DoTT^g0a8hLmq^3rfM4*7GIOuMH+>YzFjhd~&vTfUTRhMns zwr$(CU0t?q+h&(-_f*F>5qIu8F>&v#i1Tx=KW9hgell~d9J)crQ?A0AKVshcu23(| z$j)-RS7%lQghk{|H-!iFyN^$zs3!pG|K+$EIZp2N#dw{5X$!yA;l8%^%a{a>rKJ?D zbYKw(c#cfl6#kW4JUv~T@o&OvC+pswEl^g3KoRR4+;r(5RoIdmg}Q6a!JB?yf(bzL zZv^nLRmrY56f1A|Q**Wfm3ah<*=eCM=a7R`oIdzir6AEp_Tbg^Tbju32#LtuWm|e2 zjTa2wmljXpox}cADVb{YbyT?E?H(u%feyeEtXsniMsA3Qd_@^_QNc~=rDy%2T619B zh#h`lU9)*(fLvslEM~aTz@&qY0?^uGL+t)8kzdunxyhW?G_T`FA5;ljlfrhfAwt39nrZu!uk@`&6dxCl~!Bd?E8ldM~hRQk|3wOD`A7M;K(; zAQYfi5|kGg?uY~^(N^Fd{iB*-Y3blluf9nc>RwO0smjkWnd!aKcvb-~94HfNtgBzf z*9W5zD*Ly%_w*5{`}d+ym(+>foo!B!s2jtd9PTpBbGT-LSfJ#c<+Chja=c$02EM*<(UL%R!a{2vc}r$jT&GM=UK#cdF|Ojk?GWeap4sYBVE8#C<}m-o;a z_%U;G!p2^$lN&)W7%J!QT$bIF?)Vji8@k^YjeAsMMeA2VQo%88$RRNkZ%zXNI71yc z)Wg&3AgJz!6i|zVPr~}4zY=yvlE|=p zwaT`g=@)~M`Jf7?;9Yz{V12T#h3a^>#rVr==hRrQ7uvJnPqzlaT{fg%P9LH8A}Qv? ztUOo_D`CKZ1#<8Y@y$Pla^NF)a8}+Nz7duBE!?waN|E9m3KcexKKPY*Fyjf?@ zOl^oAmbrXG@&$$Nj7a?wFaOhjEKZGrUbf2o4%d%zheZ?Z?t?dOnpoxCN+Nb*_ExsQ z4K6i4&f3yau3bt}#!*Hy%9*0XMsH^7;E+4RcX%T5MSuEPxVAg%(K^yQcLw}jGD3g$ z$@Dk!Y)Z+IJZI-b@8Xf(SL9?j9K?6B){rXq%O9ivBQP)B#aG5v?{L+{S7>DiN1vzu zchzFqqh5|**rBuZ<^Bs(M@mn$|I%q3Q>u~hpQOX5lVGiAoJME=kav;+^Uu^7y9Xhx z-l7Nm*Eoir?+yqsVjHUUD9o!LUnQ)dhTi*5&dpb!7{0l;n@@Ok&c8}!t8aR@rYxU! zzDVn9e=#CmzU6Vgi7mc~t$k^x$(g>Cg_(WpwQ%GD>F$WJuG;+ZNHldiZ2=)Pvd^vz11yv^PdFi_>&C+2{wRCS zKMh{zUYuH-nKD2u%bjJC;Yo=D7ViWjQJ3cWdxB(tmH%jaJ8*_hmdM2MC0;qz1tGE6 zu;|eY$YYUyBX&%@8O~bFB10>>c$~@KMn*)r(0`~L?sUIAP27ec(4@e$;B2Ao7 zpXm#H2xUa*wkBvehmM=pC(3uu(OrM8TUn)}p`)XMjH|*%kfXdx2lX*gLLxp@U7@(H z_G3uR8#<0X{ee}O7mJh}#b~0cOh;!|WvfoFhi^%3MO9&$T4hI3tEXE#gJGM#`YZ2@ z3)7It@x`&XY={3ji!m6kf&_Z8TFlR7j{06|tXh+7Xn^VHLxF;To)pJ`1G@bAomlH) znKIn@eq3%pQij*fiQ>DRW8RG+egO?|NuymQ=oiLw>fu04M8wPXjQ~O{RQ2z=Pu$uc4I}~MyT2n|S%_@Epm$FIfsVy?Vk+e{{^iDqM zMK_qft6u}SE!QBRlZ53!Ke$xL4Iy3fEEnO834vR1nO}VhlAAj=RflT%U8+Pn#(Hbx z0Iq0=mEF_3h~ebYa|>bNn0%~T#h>YNgGxnF@BY6J+kuPg2XGo9kLJqmGKl6orym@@ z7+*m2Fjt`hjh9L&5NUCUgzqTw_U+L23HMkCO(kG3eoWk2g$E4GONr`0iEu&LcaLCO zCMv|LQF2$*ytZ0~aUWllO5Z*ObqMnenlc{6zt-pk=t)5By4L9;e-YFC2-aQR;PC2t zdXA23um{+~)CYa$C!8nb12{9k)SJsprEsWZPW_+)ZQ+0@PxM?)Bei88JISk|64- z+0cfQC~E{5Da|nywg)3+zF)u!vRhKx&D{=BA(S5wt)=^DiXuu`CjLo^eb3zv{y-ZE z19vg9(0#HXY{^|%Yjm2|j~)!|n!P12zC?awP^#F67x}T<=1SCf5v`rYPMz%>Jj--6 zXWf<-F0#m0hQWwQii}UU9b6M_J$zy906tVMA6DsIJm;$V&T=-p{M1P=+ETlqI9kS{ z(pWAMRJri_t@QM==r%{6+#vP@U*U`61OLM4qt~yU&ZK&-5Ix&>L%0!^^CkRDE?$%% z+(p)_-@(INA7*WuWbc3Z#&cwksgoT47lX70Ge;0y{DO$wRKn^WKE5(4@j=PdB_TKO zOdNM!h#0?2K_{81Cy40*SBC`)TuG*mQ73st!s6}u^xWNPnpf-)i9C(OAp*L!q?Xdb zRRK)Ytcp_Nys$oF#&%*#TCg#1awPZW8jSawR9m;YCogZDxvl05S| z_chk>E6PKgQEY0B%Unsu3^9u!L8+^vpoF7oqI8m>(kh}R(QgJF`NS;=Qqm58)E98< zd3@_&|CqWy;|ly8F*=HGF8K*}&qUnGV)=51(le#ZXO^CE z+)=aro|tJ)pznXQC!bEq?@-psxp<zxrt2w2UI zV%0gYRV~GdOhB}j;>B5j2t*?0EQEtKCU@a9TvV=6lyCkNGbWc*@<+v#6t*^ST6WAg zaNCZEU2HLTYNm~AL&f6RgC2?FU}&F>gyP^&v1vna4eE)=^O<2eF9egE`BmMlO zkhYq+E<5lls*6H_hmHX|sucTe2e|#Vo5S{t{q_#B?n%Dhd~Njw8vr;=ctZmxN#fL$ zoAY87999JO2vJL$=jo*nFv%N4OrT6GuwpyOAV{1hxoEAwRqTW_PRH)t&;Fh-2q{6U zL*LA8f%3O)XIXGU!)d@UCwO#j!4ua-j|Y1`6-$bJ2Z7 z$q(X?OvQFvI}7va`0fY!y!!s z;`%5hH4lXIqGR_&b1TwzqvO4#Bid5Z-;=a&=maA# z<9r#H@qd95{+@D-;NH(~8h&zDg%2S$kU&weqg5cKKz~xo7DLu+A)n%Ip~?t;1JM3u z45h=;6pfS8X^TqqG*=+EIQ0B&sITq;5BT9DDX@FuP=so@c*xRl7R4fu&>eC%>uw-@ zLM=!S02%-Ldk>)SFK!s4B+H`SnGWH_R#I#D2ic)LfX5w<1t2}an_Oci)Q!^@!c`Xq8@3(# zwu0Xz#b%h07RsxcqOd$o=kE>C!Bx2FUNI~k@@UGZee|%s;~ETe&G66c^4vR+;SazNtf2&v=s3mE zH_K@*0QsjbuC91O_2@^|Uri3!n;Tz9i|5mlT`JsrcIu(qS(%QWfHni}05{~xbQ$Qm zh8v?w`%0g@3s^1y+8s;}&t)ZR6oLi@bDCh->g#qfX{4F-i7_E5bFF9L?4Dy+Y%PJ7 zhLEPWoQ};nKCVnGkFKCM&oXRK350>n*%1P&&W`yf_J|v$WMQqW^zQr?G}22yzePI7YW>y=!!W)6g{Y9 zPAu$uxihEVSkTuGfpP^5aMR{I=}ORa`K!Hon+xp3dUMbhQnbsN zCbQfzw?i-Qb!$p_Fm8rl8AjynVY`E)A5?7f+1p}wgpc3gYD?V`Jbe8>Z;5rK@@_pj zC(suedxCAc@Gv{I)`f8!hBo)$@F@p(tzxqGToJ#-Fg>Vvf>u?v^Al>6`UgVOm;!i9 zvWui%|~OgB8h9ULa$2A`}I)SmgM>qO`YR zIs>(-4A_nMZe*VeInG&@vE0ANV>|AmD&CS3!<5aR&}f+b=5EVKTo)_)#c#0%bz&C< z?S@%zpJt$76=G*xD>keWD}oEqULZq?!CD6u8u6=QdM=D}=Ua%1OPtU{eQ+6+x)eXt zF7Hs>EqYf*skDsCG=;>N%vnj86}*7k_+HD}xjKl;OK;aq#FKn$n#7Z7WXM3ciuULT zg7nTcb1bi{@eN8d&=*v%1Y@lKt+Bs~yAUbEl17zm;5L@HCacOg$%wMSVQN${IkZo5fktuArE>(rAqH~NmwA>78%a5J|3 zKK9olF8CQ!ibk?|#s;EhZh64wsD)PqGqC}mPEQ`M-*PN62m~!@v)m8i^Si&YPh4yvicr{q4h&QZ-H!aZ@+{7U^!nR$ZV^0R! zgWA5l+X7fm7R-(iVox63;mx8;SDNjSk25r%Anqr{_OOmKy#3Z_n4zq^REa$dxG3{@ zoTB_z0nTvgm`)Fkw+JcyJ=HF>klG)N0sf_`=iheNg@-&^6CAQEN=@BL(*UO|J$(C<`xg;hS8 zn%<~`N7YV=zF}GK>=5zviU4}y?7Sf}eKKlBzFpROF+W<3{K%i(4E)%85v4?v?($GJ zqAe*oGqJG+)*KA1n9e5iGmk3NlQJW(-;C-woy+s$nTN;ej4@jPCGZM|`$%dTc*lhl z7yd505Q#*9Fo@ zH_HrDY#CmWm+1xT9=|egfKPwm@(@x_oH>sYOY<){~#tXSbS3qaa z&9^WKY2xG?@46sKzGT5w5CK=I7pDLV(s@)&X%x&!CeIqbL~A1mX9XEURV=g$E7i;* zR7Rr4A$m~ZOUTq4s?C{D_Vwr0*?N489{lQ>Z!o<2?GoU4{ zk@9xX?^4G05zr&y@lU#u|HN^4Mci;nqYTwFjvlCM4@hyJ-QQjgV?nQN7jc;%)?|qc zO_qX5O1lQO^Q{XDEAnDgRxo#9rMOh+%!@+6g62rJR{P=nk`cP6ilpa)f<35KUyl+e z?Wi~hJ}n|}GsO+jzZ9b--5!YSuigsN&`WkJ#u^f3MD5EwxJgN_YKjcB_RqTt>QqSm z0>l<0M}#qQQxh~|2W+D71#ns*Y;@ZY8jUGoIoy|u{B|`&Q}A9MYs7U_Id%}Mw*i6h zLaz|38fT$_S%luvp1!ZaVOoUVk+T#$gj*vy2-gR>eaD|&DCScaUy;`2D==Gh9=fEbRlbXKQO~e&E{`s*i?-Q{hZ5_4xv~Zw-cQEC$rH|_ z4Zy-)G<%Q60oyWBm*FCw_Flebel57-S2kaU76ogPJP9l&qsbM+%L=qL8s64)>rYM? zQN4wSL}Bej)6`*+rN_BbO#5V9HDvEcO(wfLa!MzQS7G<1$I{ZGOVtK7z*;#qTb1Ro z^i{Y$4W?%`&?yk-X*8>sO?k;r{j~S?QQTWZP?AH#KHI}r4i1zc`!|T`A&Id#B?ve&0y8jxQk!Qd4MAOt zBD@liw~N|S(OPB-$#C9*5U^`~w6TTY+LwUnoyi&p`LEW?j9ES}pMi%zzV76noXz-g*UO415nfX!M#1RpC}KApFG zG-vf}!s5}4p`%TOD_o?@qpL;MEpw?_p1TLB^c_S)`&!8>%slQ|S zGjVLy5D5gT<(>qx|G)y?%I zCv}l$k2cOWIo#rgcyKb&WlFAX-=WurWuWGwwenr2tx;9qsdl`xCLiZ+g7=04=p!s? zX;pg{mL20>t!ZmMOBolhokgc&zr_ddxpRml1th*|edo8kPu0rfN6yBRCj0O94TyK0 zO^++6lryO+qA`}Ka6P`teM%~rs8vMEvB5cecu?3yajP)`nc}1ljDr^R*QG003H-&b zRZiE-c$998-GS6mukLddKf}c4j&{*n`Jysvo0*7XfVb#d<_ALJ;`f0BzV z_~T6#aQ7)6!dyN&wmFj&@=H-A4&mIvcXAh}KF5)22sX(lcq@=pBphB2UxoVYQ&>$U5?aydK;=p^9hnMXy0y+ z4>{h++7AU0O*T|YT%>BP^(20!4?IE81e_<79 zO4*NQ&i6I^XV-mquI#f-Kkv`s!|&xDxy`cu6XY0Wjr<)hV?yF6fY#|$khw$U&&{jN z80XZ!;qC&r7WpKdG8At|&M5vcWY>!_Ojzam`1ecad678{Q2+P)AOJ%$_WAQC)aN_TD#~{@2P51J{J@xMzSX2TT4HSSLS7IPgoKou zK8<{->PAomeSc*=@u=t@x%FZRugyt3HVgj_iN)L(F%_Owhd@Y;ETr)hUA?@AoSV)U z9In6JZx{Fgt+zTbgKgCNx-f)WX$d31ka{Bs{W!fDC&z^B(2Pua4vk|vX|Gi*;U>wX z+*ra$ac>hwkkm-I5c0X{WQ}RC&FjW8fNEH5nf_rwOfZ$DoT;>X zI~BI5GRGWY!yCDh{i5@%Pin(4Zs0SJ7^`bF=U6kDo^69GG+8MsV%yHxutH`a*<7Hm zxZ4!G%s-R6&xsbKlT7KBEj*Bv5wyj1$pLEVT@AY zUWIG~fSaL46D&gSe>F4y8bn+{@s5^5i8fH~C$(L^P&O`$OSBbI0;T|}d0E8j%4$m0O>|>se=>Ln*?L9rBU(=5s#!=g z#3+U$n*ObRrj&e4DrOXpp3NTXQ6#;}!Ap8W&GL~;B*>yWgDy*O^jGxs4RSyX!2-)8 zmrvjkVgX{=Qx@nec=d#o}m|=#7u@RtucqoK_Y*kQkRpDM$afY*w-Eli2Xh zXvlX2qW1&R!dGl{k3N1#k1+I?=bDh*9K=+@kVhg5`dH#qys*sQDJj6ybO2UA+{qYoO70l<_{RBB3+$7Q`MYr#s}7Vob~J zhM?J(Q{scLJm-i!`;sev)um9#?~b#owQ3 z|2@oP*xh+g{^W@KpU5Ei|2NDiIXjvd*jU(_{h$2vU-9N2+duqc{)ZApDLE7YgzrpD zGh-Ze_4qLQqm;hPHn5n81Z$Kb{s#LsQk<@*85HY_%PG?qx5IA~S-fudyTS-?KYzXn z`R!=oLr{mrn(~tu6}8p4yxkt)wLVJ#cqhObgPm|K(XD5P(NP^hJEaoIRc{)I=$oI# zWFsgy6D+dg1Y1%{6RpVW7YcHF>zXWVh3{);~+na-tH6GpLQwWz||ykypNti)>R#mT`&w6!dP{ zTx1)H7Lo$f>{jV)?;kC5pru`o>O?*?WNV94!!&}7Y4)nBdl50LEHS$`)3ysQ@-v{J&V&0ieSvNQkna3nkd5 zZIO_wof|OOgxHu3T-gXUwJM+UQ#V$2HU?J&ZR&@^p$!o|&9y4Ko5G&w@HReduWWqm zOqtd%eWl1cKNDIXaBp6GZ_?9lvPSiIzaRjtO`W#o;a|}ELAd2XcsT?H!F3Sm1HCyU z4p1V(BKKIhFGpbW$Q?#tANCPFIWIy(>|=9#_z$9rzezpc8=&z@bmHdssOes*Y(BAI z@yPF7kmTmB$;U6*wQr}1)WLQg2V3{6pnDDj%eLx}a!c>rB(e$bx&_Uh2VeHViyx#3 zS&;i0Nqof*#7KOl56DS!iSM{0@)BP$Bl417e{^mELs2BY5(jD|zA^{wB)(DyZX~{P zKh7WD;ssnxeVQ0m7zxRM8j$Q!3fpnBIST>lD9c6t0y2?s z6$yY~pe_wW7hD+DRhB6#wM1v{ZR{)*RFNomlEjuI2TxC8E;2A@GAx!1X_l3pm`AL? zfsuj|RW%Yej0V3F(NI2!Ih0l^LWjg#e~+`YkUcyK{F=~L;$#N%=3fvcon~6dr}{Xu zr}Z?sGOqJgCBbYPMDnbetOzWXs;tm@i7F~&FP%iR%i;*cjs$X4M|?^Tg>fUVT`kdU z%$J$soQ>5~A||3TsO|OZMOmqnC{F6&=XEeq5)RhIG_mOh6;lZAhM9W$O= zojDRgo~yT?Gm)}0)3N6oZOq_i+^UndJ& zN0|&}OSl!W1ojIKa;Pt0DmjB(q!uytF!72gxXfF!KqEsrN`@K69DA~8qyZ5(EaVdb zb+Dzf5blxbkp$W`)mXxGAW63GjwQ7EYL_{$XIU~sS|o6o7%fkcP3;-3$B@x8o*s7D zbmd^)b*&My1^q&4ORvdXr$V_JofxmnV(rm_gMZc+ZDLcvHmq}}xl$Z<9#(asF>shy z-$*&Lgrx2gzjHN3DF-#u&dLUGl*#O>t|;T3Lm38=%QM)SnW9q2WEvuzY&Pm412fNZ zfI5@(@~vk#5vH?S^Vef#<^=Xz!AYzJrM|+CLdxxWf`yg zuJW>GGL%A#a0>jxqBX8w*-k0BJvVBi)X98PG&i$=KlR?|)cOp0PJo7WOgaFUJQ!TZf^1a?kc~v>PSDnH$ROsW z6tRP1AZ-CdG9Ncj2tUgrBbO(F%; zQ01^leOeIbXh13ux`aX$&f$!=GxvFXL6)PqdHtmtX+%4`*0_gJLY>8K`}97^x2 zbHTM#XN_a5aD3_{-eL}z>@I(KyFTUPq|3G6#RX)jO3WP!5M2HMT2Ev8Qk;rHXv}v` z+kp!9LR!O8F90pDqcMxYtQ3Eo>`+nH2btd6|Ef`^qXD1c+7x^NeJvGPeQ#bT7LL!4vPfLv8=?UTF};Bk!w z8|&AzRs(q5wEkQd+q5AYx(I1w1@#wT~&qe>o*k7|IrH-LqZ zhgCZ?FDM77o&(e8ZVtl#tzaNE#2WY{1Q-jr;>k@;IO_s-@8v|EPcWCo4p_r)_YHyq z<_S$!S8=$^fCEm))c%%| zy!4=;le%FwTE?IU3rVk3gg|cp9ubA02V|Q*baJ1n^D~n=+-Cf!>yb)Wqgs9!6CuKr zE5UgIwrBi4UKY>v>NWq--4n&I|^vfJR$kKFE~O``GnsTmN4a*a_Oq z#}4Q;!vpFu$!v$`Y|f7CoF`&0HA0kxE{Yi+~su7+5ROb`s63uPG9Tz#&ePI$uIQJ89-rtI8a(DE`GymgCOE2Iv8@T)E-l+g z>1La>g9Jbg^rFuX@qUz=SupbDCRyC&bwVnDOqZ<}0WRq@w>b8^yQ@=|9|+%~@te0a z-lKzq9zJ>(eQvl{BlfN+U$|NGZm1t}4L8IsH@Zb307t}8TSgMJ`y;`r@pb}CoLlM> zY8ut~Z4H-&O7;$MWk{RpWHJ#&k zOe;z5v#QyK`}~20-mx_Hjpa&$sU-H_H0^7CF2>DpXKZ|n&C7&avWx>nA{)13L|svj zyWcLQF)tdqt~ty$T}ThcAWW6xwDI6B?p$A$RZ(4TKr1Qe6v0qkz`Z%6*e?;h$tpd$ zQ&o6&(tdtfDm;#dc?vv^9voF-xU+qw&!*hXi|x3xGE!;71}ATi&^BKNJx`8iD}$ex z^sYa$b33nyBn+n4?D~t>|0n?I^%GA?{WMc^;s57?;Qx7A3;(~JTL0^l>>tfP{GBDNK;`Z5F(Xgxxf^pOK_JL^}b~V&4+#%MkqP>nlH&CEb9>#()&_du)+-B#| zcB~u+7-mcL*xVKt<_T;VE27L>G%%9@yU+G9LbU==};9sHk!d-RPtE1xQMsI zSIKmBwtaPv1sUaxJU*h>%oZh<{_A2*P5n-G^C!|+m;tdW>RFZBjX!<>1CT44Ou0x1 zkO5cwhRVisQ`yirhT@Z!Y*4{!BJQ!6z?ut;rsLEOu|WD~Y6nT78TZzx<}lH4}B+Dk6e z4HVW|g2Cx58nK9rq}c0~ENid=WQL!iC@8sXH!$z{(h~}KgW}w)qX-t=XFiyi$BRiS zFxCH1F+O)4|T3dg5FfNMQBmE?h)vGnmy(j;QxjwN)fx-!f}U^0+a$dha!*f zjMCs!Mij`3jGHSsFnTP11<9*;g}DN%uAJdT4Vx<`3dl*;YhN!oaPsc=>`}f$wXIwW zy@Kjdy@Rz)3gnG>E*6Z%l{_oGJ|(10PP`;!-xoY2xq;E?tU1u~E;~Sxtvo$BM)7oC z8f4@wCyK=j_?lI5Lh-IW0RI#xZGq_VqB$%sM>)b*Eg*IP)|SrVZ;p;DS7@F^^Czt| zBU^k%ZOvrk=~iqH8OQB>2Wdf-dn{?TcbnI28#*EX6Fn)`1#lG6CEk7@d^*oO-o$vd zW-*R5=05TMgcF!}hnAYfMc$t{%yj$cmTig&AXj4`T zRaGEQQWagKA<@8_T1jVXsXdf;M-1e3npF%6M8EJdW7-q&_@+GE9P*B#=XXvm(F4p? zzAe(|`)UrdBz!HDOqWk`k5E#S0Q!2}@0SKb8m`!x3L)TZVqQ91%;35x?GjMzO#dXk zah(8%XaQLnYpubrPddW(8d0BEH`O*T;t|cg5%#4BjXKPI-2zHM?I6Z;y)Dwt#eE%w z_d?;o+`ze@`jRZ)M9hCAJ#a*bo=RFflc?s@O;QZ6!y(O6DS@;yOMZu7QdC^*ojib| z-IuA?C<%n*EuVPf#BMfD-KbDLgou;kt8zf9Nu5$;#ByJdHR9dGXjyLRi6>faR?K$~ zzVzoj_6VnPSLsBE{++v%yxh!$7No{JYgF_4>?Cir!=oy$=__c$OP&~|wqn@bCi!@j z!sUSFS^$`l4f*7tpvhRrs=%9D_T4F_tZZbNo-RJfgrr@>OmP|xrio`DH*AeTa%71{ z|8OtXqszYO8}8h9uoV0^>MLdnOV!2{HlDr|rLTZrSzLY2x8`4BXNHcIn*lE1W zN?1|z7XncIaMzsTY_5s7efv>DEuw90F1-z<9{5_9sz{=${K{;uwGLgMaA} z7=ZAt;knm>(-i?%79FX__NE8XPab?gA6!81J$Zk=+kQKbG5g}dPWHpTjUc!661ZQS z_Ze^wdfS_`?%{RdhOn^Ls6J$zEJ+7=v3_8&NJ7f%E<58-_Zltgco0Q_5L$|noUQ+7 z^Yoym2=ELP0DutTe_ImzZ{Fhnm9hR2{KG%8e<)GaQo~k3`34gNI{=_f!2)V}#1q_n z6qKSyCq>*?L#YeU?28m)>f=w380YW**!Jw@dp)4P70^NJxYVTcc@k^i@-k(DF%VpQ zk7qt<=(W?E<$XKZ<@*M)hvNg0k2(Y3yj28fy>rBcGZY=723+Dl9@EtfEJq_~2Tn0m5N(pNiodO=o6QEqZQ%Tf1F zbN3lDnsUSCWf7;Or_VmfMP=qB1OgI}Z17}4JSDXiT2~sO7&RgaLQS}RB<2^Bh(*dL zVkwBYC1DNyiLnr?4)>`5b5n)6sN$+qcMiy{i3M4{4g0T!gn6S1(V3Re)41c+EJ#P!>B4_BXAct%wiIy70rn@)R1~CL(m-)q zbupQaq-eyq)6uT%f>OX`i6r5L0HE$G&0%QiA2?F@S%4VZL5t>Y6hNQpci=aJMaJh2)sN16?t{s~M zicO>6y0Yn6uY{i?tx-yK8u3)5#qeI=eo20TSkrm-q4==8%dw^h#!9FrCrK8cE+!ip z5w(jZ7p<9!9vw9e1y?#OG7=&N!aANNW1&HZ;Th$L#nbWp_*BI?>)OkX%RB)D8u~qL z=5ns_O`|c>N$$E0_iI+gpp)G;rYIG8hOEqZFddA{zLc5~{Wp)Oy4L&BTToAzp`PCimAXnIZ$Wl81d0FCtk;5Wt zegfvr0=z-=La1z47}>M@vKPh8KW%J`{OyI{$C{wS!j`~dt||o+!x5pHU5FS@1E-l& zO8+2c^GztIJl~oNVMVURuFx9Mhi1^n%`FCUB2)O4`r{zp$b5v7q?Ff4Np3TdD!xjV z`@3%^>d}oun#%K({)RLy6HQD8y8M@25BIpPN>-#$F%||HsoGq0rLxSd5>rjW zwnQ2uPb?$P(GvjXL-aTSPJbiI{ykPP{*%Y1%nY%YvXp`KH}r=e<(>1CiemGR5s248 z-hH2(`@xw@{hb1~-e7E6V43!wVY-j<@Sv+bI^hB@g17%(vC<;>W|q&(d_#mhsb2)uJx?K)c9^h-*Glvlc)&L>ICDx)A&`cbM+ z7#0y?=~+jdD%ExMlGcl3Zlp(l$~o9*09dqQE=bp&`C$$=3pG|w!&B@H=FwjyF2mk{ z7RAH3E0)~8uiU-oiM}w0MPToI#oMUA;NBOE{VaJbC8gj0;ipvRPO0+>4FKT9@W1^I z`fvHX=wsmzm+o{;rO1rM!7=Grv>6RvYxHi@` zeZBuP)qS%4koPCo>DuQeVin&#J$xl1#dbqd&t(zxkrmHpTV$7_l>9VHx@Y)kQ@Upm zx@Ypp%eJDB+~W}?sVsy0uvGJ%H|no{8K3ifocnT|$2~F`pUFKl*n4|a?w@fdI?vn^ z-~J@MhSS>g&&+YV^v~4soAl4zas2eIz9W&JvaLtPIDW=w#CTp5;1fFf*Ro9InH}AG zXVmw8DcHLi<8f`3T-iZZ6%#$m^rP5fU zUZ#ZhT-RAa9!3_--$-e^SMSj7lAYh@yRd1r?GIVrStPk8_d~&z;35!2N`!0ij3BNi zPh21o3bIX0JXwumutU+oNx{=CAtNXi*qr>C;NXLrBnxegA>A|VFg7#8Y6xsiI5W={ z_2H(J2uPpwZUZukml)D=C@Ywc-5qAEFcm-c_Wsb4Qfi5Ex?g*0?_%DYS8c@ z14Wi|wNIg}+$#)$v@$NZxW9hWJcKd4I05*)Q#`fCv!a&XkZi;Bs&*5!j@ zVnV2D?;6_Ae2tH&4TZun)?(NNcDhoGZD$62w?Gpam*>XK_I&XQndf*lc1H z26@(R$frk(2C~k=n^!=Z?$@WN(2OzGRqT)+x92aY;j0p3y-CNjh6Mz~iz{P5p|OMm zk*}YZSD%|H7RF{^D=aV}n(#_gUrP7sidv?WnPj475{l;DOnMieGf9k$ub%4PNP%O8 zpxP%GDI|0{iCh}8-#Ys=fD zG!u4tg=j9eOom0k>ACUp-aL-nqTkAf*#9Im$DebEOy;E|`55ky{TMoMit*;+JwlOW z7ClY_Cl|BrX)L9_sQI{;uYsl1SXeMrryb`U{Wf6vv$VP}N2mr!N=cn`{z#()^OB7h zAoB|ct_njsR|RfUtxq?bh)dQOtOQIPEZ4=MB(T=a_4mdw4(^+*_IO8aX`r5Cplq7* zR*Y;dV0mELah(HVkt&ucRd&omwG#nFzhd+j}yQ(N1^2wAef*pdo_mG-Q51lnq$<&2` zt`vod5~xW@{A1L|RF4kt!9*3q+#$9j;kG9CnC~=cGQ>i(4jOIk`&6ex2` z`9zi;cjW7_TIpM0L}*C1TqTQi8c;s|yd1Cv#2Cw=&2>a*0?4?93L&oZCYOskP@t!E zf{bK`(q!q{<42YqVg**Gwjs|C9TypH{^K#uWrE;mPEa~DXwa7Fe}-Y7BS-^f6SeU` za}w#=B3Qfd$*KP@%H9FSvZ(78t?sgI+qP}nwr!iI*k#+cZJS-Tx~j{*)$hIJ|Gz)E zx$lnbnVo&I=R7AXSy^YzIoB9QfcE(N;StDTELnS?#06fz> z@pZ&(-Hw!OZ|qLa3Anh13j*VNv)CbuQ4^K9uqwKu*!={edbbsT{v4)duLK*shy(qD zc+%p|GnVF`JUOynAUEixzk4^N$l>h8{sjn<~8D=Rx&+wYtp=Yy_s=^(wgBz~>V$Y^B_q2OH`{<>69@3EtKqbV02 zil7?4Nbl6&XsrEWnD73h^xV0vOB3}?F#A!^fYo5dX#GqyTr-t*y>=j;UOLHqdlDS1 z6Z*)JLLui9(CiF5Z|(;Jo7!}wKK&F=RJ}0--pBAA%aUz3DFAv#x#tg|cEHL4Xj8Jo zG19!~b1#C50=bwrCA_~#l=(6vQce)Z(Zf!(C!T9yiXz`BQ-&~gdB}MgcBAL9*Ll7k zk+BQo!w*>p;$dd7t9+rUNHq_hQHq@h1XP>Z?}oLmP3TyqeD}Ak!o$CI^gL3c+Z?F) zl4Z=HYS>mN$bCxAk@aTS9;YQKiElKE+G;;u5t2Rj4|{T@Vhyw`0lXUoa%=0JPtDG_KP1zO}^H36et z%V^AINi%vC?r95pYHFq*jc4|WwzBaeRw5q%ys5pZ(!wp3TFj-IJwH%EElt{IY5jsz zl5I_FTi(?(@k$-a2EPV#u!d74O}p#lEgiM|ktQuW3n*@O)WRqg-R;Q#i$Tk$}7Z4P>rrx8#5qfo<;4tz6vL`FxyBR8kjZ_ z%(gZ(Oc|YRV=iTVo-Ck+9(IEd_=;9-B(2_y+7A@}ipe^4^R_l4cYI6zoqHp!(U%b zOYt{`Ile@&D_zT{qX3-VnbAf{)B?)F1rKR#aDu?3iV!cY{n>RVe|6|=f+&_ZXi zy6@skhTB1I1Q!9?aFB=!Jv#eZK$N++S6l15A748k+}1+*eArlW0kv~ZBrUoN zYD7@qwVr+-!V^T>7`NND6{}|M7Bi11?S*?D<&8}T7L7JqZcFx35aJ_K)BQXBF+j&F zn)wXT^ZJmpy4c&fqPUQ}Dy2w5b7?{F)d#NIlwWVvxqOKJP$lvF zJm^S@H(8DZ>~s}tE!pt~XH7}AdQ}I#6_M%snCyYz{`a!+6NuMg;9Mi>*K+!^fn4%) z@ppjyZwt(#QpD=7qEfU9AC%&efIo2&_a-TIK6-|n6sJ^DdwD*}`g=S7ZS~*gA@@Q7 zFi?B>{zgeYqxZJ@bLubf|LkKj$Uvkn``!&ae;ecfp$+aowio}s=lY-XKl}^y4}chH zr~w9qu&-Oy>Y(54u6tr2!Fu^B4uo`GK^WmJSV)YDH&%2!0pUo>9WDnjcR}_&PbV)w z>qZ!aPz(hkoV`1#wpB79lP-;#XR5gx<)tlQE{-I(Ne#0wi>oVT>W%d`j6>4u%BmPH zKZMJ`&~(0{^(SpaF>D9jWSd=LaS6+Zg`|}uKK6ztkdOV}5-A~QS?1v)9bD&N8-w*u zKNK7d%D@so(f@NO$c-XC4!(~sAb3p z_>o5cUyj>$gcM6njF#VY{yph0(|@MBK3*<1-GMZ>poK>yB8Dt5vfGeGFpPwT1|(&B_FcU$4E6H4Q%%a-rvdY>~bXj4BC89T2SYmID zd(xMT+lsNfnx_~Nt%T|OBooFr<~W312ig5iel<(qByF~tn-~u&E+46|x)`vd0R!O) z`z-9o%V2c{xQ$JktaA!iFLPY!Sm4e`H0G)3t1lm`E+3Opn`^L2G2=v|=TvA{D7m`` z&(kPZZnClClJ*WZcNni9E@`@`*dFv~x%PLG$TRZTh3B))nd@-*a$6EI!5rAWFoi^` z{a$%4p!2xq?ywa4MNJ%qhpBstw&4oNZn8B*i@BJV;GjK1b3N7;%^5cDUp#A%s17<= zF_9)NHxLxVgNEs)D+jw=MN#a!x$!9H`}sAiFn}anBbn9iG+nPceVc`wS()iS;+*=( zU3HSyY=W)BEW>IWcr3BC2x!d;6H}_?Eptlh$B*VGO7e1%t!0o=I%&ZnJK<7vr?Bl{ z5TV+l)M8mdwd*8E!4&fO+QI~j8+4pQ-k$S z^n&^sXYx8H-4M+7W7Z+6=<*yfON^fvm?Jt+ETR>Fus&q|{D|NYt|-r4A0GR3`UG;dBNSo~83X(ac})yok02~nVvn`kSJbqNGlXbUz%lky@LBl| zX+~N09^1x1i$KIrF|aHGSARafwGdI-0zH!8*h(0~t+M0LOOK4_XJ+o-xIGxtHUgXi z!2-8LiXr>|oLo*ow9|^;65HxY0m~>^q z$U{m@EHJ1FMmaD_Gj!5f=s1X=ox)geWD&~hHU`08ZNz#1r3*tZ{#zNH8(C=StN@XsI0arata6g#O3KuwsdboTHxH<*R&z^HlYn61jb&MfBR^uxwBJY* z!PTXtAg@Y}3ssmbiLW=8Q*Akz^CQSv<+w7#O+%Kn#u4`BOa^k8O*EJO(MuQ*a1gSl z$c~T;0U-u;C|P1tdQE$}#y=PL#S^_3+AcUZ$N`cZ7lOIWBk;QU7nkE%z@f6qmb8WB zvXFq{2MLYrd2^+bYamh}F1O|t$FC!Uw?sW_Xn$4Ei0waJ_Tll8N3bvKdVa`QoHnq)W zX9kF{BvR!X8y_ER!jiNJQg?JWT!_tg2Z zM9s0LO@9}Y8Jb2UTH4A z)=8mNXc!#ohlj+l`daC}wa?(+8w+rxmS0g7)WmB&s`G$GnW6<-fnkQ3inTar9(%jO zSkn8~M|0`&1D&faT$JR%~lIbM5p1yc0*u%KvY+ECRt%KO8p5aL&`mutH5uaW zth;fFaX2IW==mX=j~zdOt~g@;;tC?fuE>a`C356C)~hl0#<`+|C8D0-2+PTqP?*GA zG2OpYlkEfbsSEc-foSSu2V<)xk_`VB_njX)!GRo0f@o}Y69lf^V-vueB82A|o54|k ztf%aj4z{UKBJ?3VV58v`SB4nst>rd1Yh1%b~)K z!&8782lKnNayis*IOFE$N?0xIZ;>mDO`??#!~BXDV&Bw8$<0ObG&*ul>|v^ywj4dt z@j{F`Hl-80M!3-%22Z$kG~6V{F?zhD*iT#^C|Xq)$KSL|=$rg0=KjgnUv=bu-Qb^D zGu!EqeVP}ll&V54_^sB~%J9pQgrTjvyF*m-_|5Bc`>|8cTXZI1*L5?UexhGE8e zz=mDVDYHrjK?jZHSXV-Xwgd=#fHR>QluKmtlJx+SD#7C8{YhiXL}nw;ZX*q< zMyFSNch4Jmj>y{kEubu@*xk0}n-F-9AUjv^UAXcd0e^16kEiE=eQNcm<+sa^2Vq>N zfVG%C-Hy6R1kCl799kk zF8Pw$lSCzF*4Pk|vPw_|g~8DKJ$r5YbaZ8F{XuU%v9X&J1%gR&$s?hS?+&0znrf!xT>pfPe_oMU2PU}0uppfR&Bb71ORmW1ZBVv}sN zxe^I`v*A*vI9O8-GKC$%kTX^paHRKV%if8AxAMSb!!T)I@2jy3!w07tk`7YAO^jAA ztL>TB{y_7>l&g;-;D)P5FgrEY7@V7}OEJt=&6==VZFImIJcH>q;t1Z83Dege2J6Wg zc3>OiggI$=187=go1im+89v-I29jnXQBMB@17R}qhlrz&9 z-Zi^naA6vQ`3;lGpfllsId}x4&Y&}1m%c|8w!@$^?EpL24719pGrMcrMu<(*>Tn?z zh8LEJq2`3a?kv#Cur=X;J$MD<&R}EOmb6C~)`@v-xHjTIZ+^%Z_J-NQ%+trvccUGK z3j@yt!*pq~HhhCHI0zG`FK(NzxdSj7Vh3n^$+kW;o{tGQ}- zr+R)~kx^3Kr5)$i8ulaDd!Dj_+O@`+-a*YJw6|~aX_TR+oPFyKt{PJl!Q3A)^zEDXi97c}mu7mSNd+ zq5)S^+`jE~%wNL!oYIvX6D*-+zAW`W(<~5=TQwiYwppE2_0>~xT)gB#2b&uHa)|`0 z)t~<$yTGzu^)g|#satDjwXZkBXkT4l*8Y2~zLf zo+*+`i2KdKsP#~W%55We*K8eOPemwy4}g4giDkuyAuG`sEnyYZ_OeqRJQw5Xj!K^Y6P9DNAJUuyqNoO3&MNi$@BAbvHiYdNP)+jO9odNJhHiS z=WxR`=e4~@_eXE;LEf~x`0K1$8tjCFAcL-Qp5ehdN?15#XrbF;W9Z=(C5ny|CgB7# zJBdt}YJrBq`5-T4T6Aj;C64^P(4;G95U-2w90MR1C}A#DmPVUBiN6Wxv8*AB(TNFr z@RU$&s`R&x%N#q-$I~ymSeJbmw>IiJZVcbSRFU#>WXVR%AIe zk(8@laGM+MAgQRLHEP6?+?`b(x*9ZAP2Edz6@bf{_O#7jXqrCdH89CXvN$IvTb-)a zZ@Bkxhv14ns#nHQAg!QQQYwj!xYFE*T{?p2)z@Lw(tf8_OQ)5)nI!A3=2e;7y`DC_ zNCtn?hSw3XPTHx+?tSwGs0(V(VW(tw>&;ypa5g=RQjh>Jq$mSMn@Fw5&lPemCMsMF z^(ct4#aMtfuL<$NF*+5LgF)?OFKGp(UD%|%bBOmn%Op3?rOf|8gD>frcM!`;cJ?>Y zI3EgML3*2u=rW;ubb4>xK!9KT?%D!e$a`47-vnwD71*Ubl6NutXe{A&lbk=`C?Z9_ zy850Us;w4JXj7YSt62$aAR^26=*=demh&7+gjdzzyY`?KK1^s!N&judzGi7ic4{{I z1Twxj4FPU1je|$hplNgSROIN#y-o;Ti%l+~Ca3GtMtwf|T+{7#Tp}DwbpK#lG#j~u zsNh(+WGPfueFq8#F2UR<))+LJW{dTDh;7zjkBVeAp1iaf-r!PjkJ|S>n~uiRGb1Nn zQJWq!BUq8Spin|pN{N&DP!*Z2TYr(UdUp7&QaUwkvz>&c$I~Fm5FuZ?n+TVlu-naW zmSi9-PQ>(s16bgt-7ABE(W z+w7&?ZYiAUsh6O_gWE_5wJ*Tju?*eZsexkvDxY*;JCCs1DI@Fo(k zL~x>q_+`qeVbiH(UC48dNF3u1IR@Syb{y0DQ~}Z$^F7VeCh@$p&%t-dwIy$x7g03- zT|a;G=g2+FmEUsi68pZl;+K}f-&(vciMOAWk??JknfECoooCgCx)ncv&4dPwDa|$3tvB8uUn%1MN-N*qodauAji!$KxVFrVg-bibdYaVnkNBpHnZob2E{M1isga{9TZifZ z)lO;Rv8)Pg0!i=U4lMBZL$M(+^-5rAipdAo#w=HI3t#lsB~|(c^}#j(Ci^CKmh9uP zR*UM;)5&Ib%}B`x7=wjHS+!fapn5aMraB8Nm%#$wTeWfd`0Tl&eq!}R>fs2TAZb_X zP_^PaWj6bKTQVg3$Y1yBJ!|-;mnmH2#jXKWb^Xn?pWEpU`&TY^FMc9B{fc(!6m@D3 zg{@2ZOmjmt`0rL%w~&ClS@3gYg3~;a;p>~%x0MQbh~8R^r-2JcO%#1~d4{=J*P2g( zkS@wpu7`$r`cTK6(!8uPKY@9F@`5uLN?oxay3t-Lz3zxpllM&-b-_FArk^JL`UQzm zl-!b+M3bz)R1^3lENxM_DL;N}NfuVV@Bx0P{VY|6o6h^0Avw$vU88tSiFT^h5i4P- zE6?8diPm%{@g6gSM*Z8OI5Q8SE7KT=dq)&AK60iyppo$djm)_`|1q%*O?7I zb3kb$uQ5<~gxdws5yvJoxWf3=i^9?V&umz9iaUpKtUMo`2JkYV)T|#=L!wxD^=*f6 z3W#(qKd44X?E|D7#_{u%bfCa2vYg`|*Wt*}NHws7$hg23Y&HU@!70mSnhESxU$?<< z-7HzLq&qUC6j?wCw*)y+gIWC0W!K;sl~Kv9j8dqsJEO_!)2gH1ERABRv zjw|+mWLPK<12@ljR(Qmd9arx6cb+1kL95;>*j{R=(ku@BRHa!Rf>O;Yh#ao)NHc2} zK`pg1DyNcL9CEDC7&mUOgFD$Op>FSvf&*JgOg=8;K+DrOw?Lu|S`kz(|6#f;;cUsM zs?6L(X8=u`&*rokc_><$nzEp!C1*Y-*@QUk!+5PDiie^@ep~=e9%r`^m=ibm&CTR< z&s06aNExswPd~#d_?jrhF?m1FZwVV~VJ!+)J=oLfR~BE7Zyg%5qSk@z?6bQ4qR!%O zU92k->e;f!uVuOw%*O$2nS4ulPKjHX5IqQH*`b9WiW<%<$qaTDA(*k=qH3cyNg~A! zy}`U>rPw46x1jiLV27&LY*El8E_|V4O)ljP(==K^iel={))Zcmj8dEpY#XShpon(d zVq1*A)Dg9S2Yq#7=}rEj%0!uSQR{6eu_(7WDcR`ZZ*QHNc!IUvGMC|!cn zWVJ)G?NDT0k}L+b=a@QFUFK{D#9N~uT*B7`w1-VyO4~B7k+je79PxjbsyKlb7utgr zy?N3iZxXY1>sDIY*_MJU!SqLjVh&wEh6(7AfhzTYU|!52l24*#GW=!L01cF*JA zj&A}KgS&ZXW2n~$BJ$V(> zuhu$#K=XXCem|2wZP;BtcEaWfCA;gm*AuQq z>N*~%qy?>=C5>}UcdRPD;eyk9lI*{@8}FuLfAj+C!h@&hpq44Wy1Op{#dDRMfN+dN`S$&^NB-3N_Rj!7bLLSh~t@@A)d?iiSvAk)Z! zMn4!hVrgXAjqS&AG2aFLh^9lPnE{Ok7&zi-*f5#g=EFtD!I%|of<%A+4yd{|BpNpC zhUcW27@rvAQH1FGJ(@@CqMWEJ*eN3`BsBJ*VOax5W{oYRQ6k!~;nI6eoak9tr#;q$ z=+3@DP$TvkZ8fWHAu8h7)_t@!F_6Av`U#e4=9=(uxRtX z{dL6pXDpfp6tu?XI6F*K2R+nI=`O4XMOtDbW?*uumKSx=SN!UyorpMt9gLw9X2hM% zh(EYPt=PBS))+hbF8gmQ0mD|vG!A;`xdFqa2Dj;i(O=7kw@-&B7QMHahxWTSurmZZ zB@SROGX@{fX%Qd%H*dg3Ux@Wzs|=4{i<)0Oqc8d&4IPTcir;7Zm?XL#QAj{`ihOq! zC^VQTM-xTcQ*0VEorq9u6j7vzQKW7Q9Qj3kagd$>{5{Q;!l#VIE z=#l=ir!4+C$uWrXAx8n6T$4ph8f|CoKJt}wgwnAR{G4#{pRp`FnpHr2=|s4^9+ zGTj$_Vjb4fGU3EGtLERtPKow?qw za2ZS|^=YMysZ||8NX~AQ->!HWOlQt%)fi2qr5_q5)Wo$Ohc^rSwD#PfIl0j0rrp-U zSb0U#pq{HjJ)ix1cDu4NxM2xd1(4;K6n%a4N456{zRXST^K%q>BP~#|FPVvG^~bxk zmoo6rS`!~1@n963-AKP(p$lu4M$*WncvP*DMS45ad~@w;rZ%*7{%M^w{8?wT_eEKx zd1q0nP5E`0(&Kg=LTgf~uz3Qr5SEY6x*YnT)u2@~IO5KmtkELEx!$>~Sx=6S;=Ayi zASKe1{UscJd~-AA3HNrX$#}v^6|J@2bcZ7rhaP?k;M?3fMRF|LK6Rb~&>@*_a2i^$ zxaB*`#>CRmYfvq(-q(-=BLKV9*b!Yqjb-oWMcDzan2d~1-8#y zzG8MUJitKt;-RNkj}D5d#wm-d#x45Qdo4Ay1bI!NCwr}Tt?7uceax3szT7CP-rav& zlcH*)-KV(9bO(=&nsa0tW0V&TeJsXsV?4cCY=x7HcxFwOW?@AZvA8OyIH1BQ_H~#_ zJT-iLg7D*gmX$R_4^iB@(0tdXf9KO7E3@qnfo`IWkJvDfW5#*+`{kFk?9?2p8r zKZVl(Kjob#8RtUxi?|$9yL-Hk`Nr?h^!cw@n3Kte7`LRSKK=hQPnem9IDhwD*6sWz z@SyxZRJK%%9VG3{?EkB#_0Q=a{ss64z{0FNvLFihO{?vhect;gEkS`oGO7YSMnONm zpdymgZePDlt8z!(Z(Fx;q=Wuoa9JLYo89j_Jl+yUVVDSD`=c<%enTnZj_kI4YUljTDRRiqeLm@D>dpgMn|e4SM6=7 z5L*Lg0Z9bX&uR~KaBl;Zpa;nVGAoKap6v0S9#v{Xk2)}ipzGEsh@;RTZdkwus=shK z#WoBB+h#x}9ns^84*zB}YwNRST5nb0v0hY46w^E&R##ckA&};R7jFaz%@BzszpM?N z#bz+-&|Y;qF{zcM9MwtYdiw>wwRGzC4rJUrrfV9aZFA7_^k+2>_9t=L&$d3xYWrd1 zj`lvMeg? z0})mMX*Gfym@pgjE9n#7L$V9S51AwJ|3G8hrz)zGT7^F_x2A1^-M|)f2IP4>LWc|- zFFsAjSlIfXrNy!PhCL!K?-2QdUumoOhu>#6#Z~wv-|IHTmGgDWiQ}YpgM2xgj`Q_e|v-HT`!b|d3++Icbi@Y)dW+^@y&qi5$gm2{~{FM&4QNLpD zk-ycwo==MSza_q+`~_bn0e=+Vr5AEnp7n-%i9Rp^f0W;?7vwE{diQtY{j?6iQNB{{ zH39f4@7xQy%g=>O1{{epz*TB8n@H8oLbL#-K;;2Qb%g z;eG1}a$m%*dUZBlFK1s@&>{6W_Tq-G`gePMb?&_F=zHE~lEeS(`{}a* z>{m4w_QJu7O?`_2#>{iCanx^>HD0NSmjxJQ;)oT5J+Q)DVk|SC>w`IFu(ZxAWL4`f#Je@YUq#wy=s!s?2z_(GN8x)=xLB&GpGf2 zfsr+{3j_86v%HTK)CYbZ38$i%yI<1K@|#pQwcmzzzp`Bb@H91{bA8c_l%gdN#}WzkFu zGh5Ar+XHT|fieEi8nH3md{AOVP7Gaga3iQ7=W;BS!bt?2=IsvG`$i#b0vEq$IcurNflr4`LqF%Vu&RMmm|67nih)?73V%14CEt?jbQ%@xY< z5G1;;7@Js%{=jdZp`B2E0gCIy!gIJ{+1QECI-VtBX8ylnscYftAcqnngvH#}>}%!O zcK*^FH1M->PiB#;+TvoI5#(kb1BkPfMsk1 z*AtS`G~!26DZ|1!F&2|NIZ)*6%AT>)$DEJ$cwh+FN3-(0+YepE-&p?)S*EW zR<%eb6IKFjIe35#6?65J`musp4@y4gAM zE;A^q%PygU(9AbWcoWRaxnv1fgZ>}Smu2iPG z`YpW=C>RyvM7o8yL86F0kOOkG$`wIaoUA3OP@A9g_M>BwO9`TvCAc=GHaZ?4Jxi&i z#<=@HccUoyXgLI;PRP5V#N0t*@QRGpKq5n#QC8TT+c9T!vGW&$y?&t`TucAv&LeBP z)w8!S)lk%0CcuTJBOOB(ul#viLQexuOvqWqaDWu3Rru`Y60Yi>iG)ZK zAh|6ilg!`Ah;I+_;{lF-w{!}RDRJhVwTIH_*+HW7w`zllELYtBi5n-y$6pdskjA(o zQD?>rm0e?K8gQz@DZp4G?cNb>JS-x$O`}STt3sOjVp0lOBn!YeV@Tf0`jmAfpw*iC zNv--Q=$o;d6nvyXFactX!rwZ!T&dm&{;j~Ezo9tN5$t5sh@;p6I9Qh)ZRGC|b#a{e z{6U)KWkE#4qlB$(zj@58l77e3P?IiC#W?_9;BQu*pR!vAU0Z|!nw<> zZIS^y+FSz79$uGT(B$nX(l(I2)C~j=U4O9#Nx$40X+QpM9Fh&FY7i~Rjo3GPUmOH7 z=g4Mu8gH4~biXyA{6_`c0@x&iSq62!m4GslsvxZvYGkO87Kaw;o~#FRur|p%TdB@~&CiaA>Qv2l(f&bAbWwy;Y>`Q2s(0nN(e*%YMr5D#L)U&0kcc?O^`YU9~pZ z0q_ETbUAa8TDhH$lb$IHQ&or*N^yO3b=j2sc5CQn18 z;vxqL9K3D?4l9tmgu`nvaj1nxC&5EUJqUK3NS9{7p%@X7DVgPv8p@+5rlrblp-Yy!10fisTKcl-MSo%8SrbSxDU80n+uTBIM`| zBxG*U+5o$Q#sKhpM3-08R&=ibxKQ(OF7^FRNGXRsoD#Qgm&Sn1_I?Jt`g=G7uP^K9 zAj8vXO(`8u$lPbO4v=MRGcQxwsQlj^G4(ii*s+i2}qMDZ{WWj9L}j$qB^4 zn{N~{2jtLkoIKvRNO2G$r=9&T9QL$lwxZrw z4)INcmbp9O`6#(uwufIb_8Rahg}k%L$>kE8k>0MJO$eDlgIhl7Z7?ByYYA!2<~fR9 z%5iVH0y*yYxd9d+`*nLNROyssJoJYR0%!oCn%UroO@TgE8U%8|GSh(RTy0~I5z39B zU}JWkxB)gH^s!KyS}_-@2*HGYg(Ye*?htYC30d$e<$d(Mw#FBR$z|xJIDs=h2mX)I z2nCzYwGogzP-#hWHVwE%esq(=mX6)GCLZV+;_ayimxX@8-j|0r!e~x*nOYp+lMhH$ z*PQ7f^KQ8e1!nx2aOj~opSF0E8HCDci)2Xj#SOtfQK#TcXlb1=u zyJ4h~eB*KulVQ>!@`;%GP^p+Pz9!;iA8Kqdft}2DQ&}JJvR^zQQ<%V(IvP0ydSaP! zVP|zZ5LFA9Bp_-7M<_-a&6KD70n`@e4X5}6$sHEIV9+aI9}4584coDGVtseVaDuyL zIJssV*}-Y_L8=V+QLaPJffbhgflBVXE;5F<6&b)?eosDBf zQL$ksc|kVm+ngtmWg=_P?M)nDdzNX8LBv7*ZLYY7+j3EU=%CfuB|`8j!uCW4o(!OV zFzgXJ>85Mxprd_&fthYG!c!G?L{#lFuy?GA^)?gJGc^MWZ|uwwN&KfT3>Dht${G)t z3TPeofN&>wvSAEy3&u+48Ry;nh-tJm5f>>!X_Yh(^Z0kaG+69BxEUF#7BgYvNTLVi zZ)&V~YmqQk+Q6z>LozyZ-QF-Cr<=bj&AdLaj95dsVvt#fUK77_HT4wS+z4^_o;G^? z#61NCeX>>cc4KR^k6sIcjT|o}$Sq@+c;pDGW0`3vkX{-i>$D*%2Z+wS9Iwz5Vq23G z9^WNzloxWejVAbn2r}b`^!9&-U-=>dmnS4ZiC$7$*1Faml^5k0YxjzC;jB(@_B$94QGu8_y4m>tT1lo2&tuS;Tl zfm0;2$DB;x!mqKojhqy~@#0^wM7P3eOHMOR+S~wg z*pW<_kd;&2mYCFZOy$(Vx+3#;Z0G}Za+$28>Bu{x;VaV2p_k5avKedS30=FCH>mNC zX?^Oa2gswAw4)v|C;cz$qn;o3SWf5|q5CV)#mhd{-qhs+TVZ7;a`yc@*jXDe&?Lu8 zH{YbH!EDZKU9xw5{A85$q`y*kTW{b?Y&EyLVR#IZ#n&8d*(xhzDUjnL!{2DUZ9K|j z{&$MM)z~is_wIe1`70=jusV1(CJl$j^e6ZiUw+AI8y`xX{+qXbgQBYy((1m7YP3wn zr}Tar1R}Iu7OCS89~BcM?@^5V^jN5>0Hds&C0l8vk6MsVR!0>Tp%KHss{45u{H#p# zE;c@pUn$Q$dt`(_tS+IN)L4G1<%LU}U>9iZ(!Y7exTJr>qh#xym-Iix{Dv2pKn1Vt z4{S7mnhA5_L8Gb{vuKy`sVbMW&;;`uqn&eHWqNX!+NII;xvTv{L^cB zgto%*GAL6_eB|{6ZUyxEaQ!qCY)Vs$pwACIG}`n&asy@)z?%sqvI!~YK(DBS#B#u+>3eY?q6;8xLr5`n z9vA_0dit7sImnxu4Etieu3)_(?})iwZ`Rqe6Rhe%a-1NZs2wKHem%2cDYvplp43bIJ} zp|26{Urt3*75ho5euKIfhJR7y@+{_sf2rk0?eVW>S~$_L=ogp_bcMH*O}(K_aidLj zqD_ILO@*UPiK9)8qD_&bO<|)=m7-0VqfMQlO=+i@5BLb$@}b^!nXXcxr7_5BFvx2% zfYYXx(x#cyq?yyEq0^+LeqXd{>NIKUv}vm}X{)qpt@U#u?I_VQX}m5KKaR8*KT6E> zAyYCe+)Jf^*yV-!LQN21jDdiWMW+J=HQzGcCGvQrv-doKMXan8t5r9zO}9u@H*0my zsYSvTsyI|OyX`#r?mSIzYLM%io?@^79TJG`@Sr^5_0ttnNB_ z0rJhzGng@dzAMOudp&FX@rvW?2jv^sgONu+pZao#%I}*zT1$EF%I`}o(0G>V_nIQK z12@O>3g_Q5nfnLy^z9zF#II~F&g1U^&_{@0#oTO(K>zH=eKgZ6=?9fSZ^;gb1vCB! z?MH0#R}R0wfq*~ET<+;?*B8CaM{;>D-qGq|8TZ`4{5@ z6op`3h(Uz};&70ZthIqaD=4ctY$a!T=e2|L2J4g=@!2;g4s)hwZ~~4+tVc{4Pn}pi z()D$e7;$!xh)BHtOh?OuP$-G_2All_-X`ib?k3{(86pca(nYlG#r5_18NkKvJUWzn zlZ(qJlfW`HFC#L#8@uyuL)*Ap_qSnLM*m`L3u^sXNl)wwbxWALSURt(bz3Pj&ebN~ zb);xVAB5PG#aok^GVtFt>p>s_IFg5tJzuW{TX_hmP^?keSa_@PB0ILyq>;d5x51@N z7jipn%2gw2U+n4-x-udwl82f5IlJH2%Wj!oY6i88MVmAV^P?i@;aGc!!?@at-O0Eu zd;2Pq6b;3Woq0@gzYDF`4xvR!7P*s6Ap)^6$#sx&9=5}eLX@8M2Kvx7|r_`?YfPykI^SMq7$ZX=sD$u(#7I9ASW`4L|~T; z)K??-960;3T!e)na#AqRRB`QEKK9`$SkPL}0y^^TVaYBidxJbDLue2JHbeFAY~1U4!6&C`^I6_C+^XwUHsmW5?bpR^AwC_vIyf%VGQGjI`Z3#z&r7 zV{pe(7Y#}Ox*4t{wyu?AGBFmzvBqug*Atd6Nv4b8;N3Hi&}yft8$CRUC$_a|W5^d! z!}2Ewkw+RSk0vJaf(iPG%aetLW&IHSwNK@4RZ}l-zo=u|w-VNYNP-)_1fgSQ&%!!t z*vKWEKuzv!LHJ{#`3}0;qy0Sin|;!!rpWBd6~ik}R({Dq8_RJu6(f$;2X{_6DGi9}1LLUrB(iVbK`MU1GQR4jm zI5=Z^v)fY<2hu|?M<)G;qJTi7Vn_i5KNfjb_lgA8HP@IcIBc8K<5@Q-%4f6VBDb;? z3<+(fwZN3rreiie9i5=th0+SG#b^4KW3ry8dbvxQTjjk~iHpyiTCI|Z0II2wswih8 zuG1)#%#NRqgQ$$EXedNQQ!ZTDJy(ZeRm9VyK6}}{S%)m@;xLS;O1V)9 zhkS9cOPo~rDc%;vq~?U4>JW{pN;H<}QbmE>(x7YwhyIkBXmDEa8${zGxC*2CRB-MH zFE*pBuK=?mnl7(8^xk_-5$D!7X%OY47#o|$cvu;VK=`napz8vqZ%s8R?)JAZuHHq` zspIRRUnik$S_CflnV%{R0`!Y>Adygo1&XsueFWi3E}KV%22BP^y$GtbXk*@;e69nP zD1@qoR%e(3DV9!UAadJY#|7$qL6qq?$pf9ru&7Zeky^#Rkz=IPlVi;GF!hoQDI>~ zYJH;CaBx1P&4#9E_56~(a;qOmMq3j|$T*L~iak)d(%ZzLY^{myp?h3MvoA)1#_~+! zVGhqnSK>X}pWB--cq&!|Tm!Upt?A^Hk+WDW$o?WdFs71WUYW|7KuBg{$l#Z`pp~Ba z&QY>Rf_wYw+}e*(0%46H?d8?t{9Qx~a!>vI`RG1~E~}`&!DUbbfmSt?&W^C@zRX=z zhBu^yA}hA7~tU1Vl=6>w|% zdG%qs)nq74&aj;?&%?+QXL>5J!oX_;(@}D`PQp6MquV{Z2DfP`>WZ1hW zK}Cu~bJs{&c>3kC(3uVqH04+wxr+2?G7 zpjlK#W-y&c_i9fH+P0^x5~%B2emq|~vi0Y-dVpUe%nC#pNY z)L-cEX?5xLcZYTs^6ft{bYTyKw@;+&Sk;iDloi8Mk$+r54bl5(Mt<)->;+ZPLYBeV zZxAhx0&!Dc7-0J{wq#0smaM(dD=hqGdVYGyI;ad#oCsc6m}4K_W=x0xeJS6yzvQh( zEO|VBQ@kcT^@du$w$J`$>C|m`q(7%cL=~(_TK1do*SvHnzvS>U^)F7@oI{#dkRqI7NA^R0O7nK zQUs|>nS~T&Dkc|v%XM?mNVou`S4@TIZ|(MQ-ai0a*k%0S5@f27~z zOb20cWs*fi&(ujc4P(c~`4Hsl$HvZ|l0Q@W$QCaTI)P;0fJsU)d?RXk=*34&sAChs z1el8jt4B}$!EQ4NR0o*fK~)V;tsu9tikyg>`vlYD<}JY4VC6+&TjJ)~2d_w&&wf^q z44Dbfyjb)jw*+=0d#qsk?5(32B&r9hvbdA3AMDFQ1;X2y4OAM!?^*r#Ub59EI!_Bb|);s3lc={y*20098LB0R3!)1oe4Q zTju|^6FYypTBYE7PX-a#CThVa#Z+cY#acC|Hv=dh6c3RGLys5*w<7Yt8bv_w*NUCHl) z{+Cz#k~de^YYF$;*>dY0%Y1LQ1!4hM#B@R>n~#sc-d@!@G{dp5`_tkxoX&zg^sTPX zs_mP<5@|)vxYxD(1lIM12vL?K>^ZTZe~2H_Y45~s@;AVgOFjio@%N%1UQF4Cb`5f| zKS4)0!HAce>~hEQL`-zNrpiQ5R295YOXq})C{z@WNEd9*vc;E^gE|2auu zBNuJKQQ3BDq&XD#y+qdi!xnx>#0s~;acdE}Ft0`=9)vjPC2A^<9qra60Ro9caf4do zow?Jd!4Zk8|CiC$)1~jw<>Wckej-kkB8%H&-T)8Z{OLa}`D;a zynp|C)xH?M@Wu9pD)muiTnRM3D1v}~U+9aJFzBU)076+1&QxDuVgEs4T#N51qKTtrlRO$Pg`*r<1ITOGy)M%N--Ybus>7{mFSbvyou1e68q}# z&ZW=1VANk(TNvC3h78quG+-9cc+t!?r|R~r9b`r=Gn$&}3y(H%w1C;trLpf-l}Ak? zBYopt@3}JcBGS}J0Vefc$UZU!>dZ!kRVK{J2MFP`cFM<3(c^ zB-8#7jeKoMGSe)`=$FyyR4hE?n=oJ+U~4Msy+|!cEGh%SwiLEYZjJ8oJT6Q!i}5t+ zHX|;EDya=awrOytn;ph^B=e(M)d!6Y0fVYD@N{uVP>|AF%*m`#nc;krxOQ!^$8JqV z*v>RbY$h1m3X$8bQSg1yvgd%P;WdaxT`7`3jI$st2kJCAHixDw&J*XMHdepW`=dm; zXn7{&Nl}{Oh85?nY^+TpY15=Y65>JFELLZzG7l71O`vf=JwgkUS0ZT#n&J6!P#5J* zRn)6Q4^`8Ha$vzGV}26wS(vleTjFM#9H#tS9$9X4SWV9^NT|ckr4}FH!OjX(i>cuyH zT9^1r?}lSi{HLne$X$)Cm=2*Tf{FXBVz3qhPXy#=Z1k=^7bv$waNdf^Exy2Q92>+p zkcZKnDblVphRys!$0tal?DqE)Y#Y6nvD#T71ms`1Y%S8?dU^9O7a#G(zf~))^w+N( zEvk7E@0LLk9%=$Nmb%Ls2Kh6J{d9sE{@b3j&HPO~>;vEDlI#5yD&~aH8|;IreBUc3 zH(GBkWYC8&NZG=mU(Vu=$x@tGmqwz6aW@I|c;Q@TN4>0s)idT&NGNYQ!~E_wylsja zcr6Bj3l9wx&rs8#x!n18a0U5VZbE_V`2n0+=EQoTGm3GlFxqTO0QS8V8peL+rr8ZJ zns9PGzbKYI>VjsAmAs|;dIHp&ob2yb_mzjAWjd6ie6??sQ zVZ|OZ81cu-sgh}7iwjhx{F;kaV;V;l@)d@rG@=O>JWchN_qZr~G z;;p>10pZ0N%1M~YTS(ZxYjITf_?)afLb?t}^Xtow?+? zV=>0dtbi|h+u#9t_ilT*NDLJIyaA}K6AqCxoN`K(Vih zCV>prGRKi0>??7{X{!(@8D8_Y#mbLUI>5eddU>ZU|VcXxNNFVGE$`~1IH*Hl8 zj$&a!JuG7`3-8q|x#c9vk}KI;N_nELd3)FbXlIVhq~%x7cMy%*;l8Fn=<#{Alo z6>pu}p>#+_eN@ZpS7k3!QBx@YU?_0^uAwCaDgzSo!KCchDDdV@pr>+N69fK!@9DC< zP17x6$Y2DsKlA$n$<3NJ_m9^sq}$ZK&t5ao=pj&k6a`+{GQ2lV3r-70OEmoC_~rvh zGf0l%>W#-HZ2PVknEn&Jz5vj_D?#Z1{6z0Fj--bN0;2feE8#O=Th4?{&Dp~GU*r8{ z@`W$+FH~u~XrQU#edsO$k^z@~zE9SIb9=4nG0sG2$PUI@-w4A^*-xWSYx+*vSt1NB zLexzWN0}SlFzzy3cqtubjzf4$zQ5$L( zT>JuchuUbV8IIyxI`N+jDkgT$`wjInr4snY*&U(}3>l#qDgv@_eP9fN0PDUM#l^YZ zi~34+lNWa;}qIt#JQUAufb$XTzGL zfn+yRCzfjg3<;jkS`-c*@@1lL33j;4o~9e+I`;Zh(R~ISXtpoT&2cy&%3TCmYY~0C zqTe`u-{y#gP6R>A#(O?}%@Pi7NTiO#uq?efsb6|X+4x!2q6E*baw5vezG0vjrf{@GS9r_Uy+JSifp>BH6{6Pl)qTQKv>^rme3Yk=WA%DmG{FkX>< zj7!>p-!`0u{jC%#-A;*kwbCh7fkIrmPv1UEExmqlJ+7H#7SV&tl~-$z_X{YvAYKiH zm(G=;v+Tw5%DxQo9<}{8f+i_ERrEkSkhf*Cw*$$>yaLfjyNnM_aS-m7LjJX>MqLuR zXfNG=!Z}_;C~+Xx?l()kzWb7N-${P*rY}%5%V0$({?jNHD(wiouUASj1yJhw(G*x7 zgf1cq2_pK0CQzg(+iar7L8g_0b}q$Ttc@(CV4j}1U8aC?g|WWhhmCx(sb{-G+jlL6 zDdc|=pexYO(QWTnb%Zk-3PRhLw53-Kwfbfm6p~SV76FaaRaX1|( znN{qfnK&vQJB+NMrf`r}iikm4vyM2Nl@hTcAgl*X`r6*?z{WOt-?BCowuN$21o_*R zF>p@kBU(<_BVGxZH_!s*RprX<-u1Ptvs>3#0C29BAZ=VvCk41eEMLdxnp7g|QsJWeXB!94n zrdl8Moj6gcy586^|Jo-b5J82ndg(OZk*ieKgfPdJqf&^?2luLrw?#36d$%AP<7c-Y zh;P;}D#OLt=B_5v9D!qLynACj`Ctb$MzE7XBF4-?J5~p#*HGac<2YkHTYiRXt|wiS zmasik%JZ!5%=L;?9cDYYo09=W=3sCQB~RnH8}f1r#pGp%lD99R5vTaiGnJ-zazfG3pb|UHxG| zpjY^ZO@olmv4%-Ca{VpqSb4a%m#wme*RNb3rP8D&T&;(SOlDz_ePzh3tene6MV^Q8 zy4P$NC;sd?(HpPgrsn7Exx!sa832KGiqrQGt2C0LP|je|?QlB^ZVe2brd&!Rq(oVd zlI0n;Cn|_Ra5t`MoGum)=R}`Klt%iE1 z%RZUxdlV(@QfI57-~{VeSphKiZXwr^8f3&-TIs@VW(o=D8KVzy=gtBz!S66>O1dlU@t>V?5?Uv^+Iw#J`^H*~vy z#eu{4SWzzwYJKq=+QdB1T<@@4mE|*^V`c<=Fk%CTVq9)X?d%tHgAR0XyJ63YDWG-* zOZ1?ap!3zH22Se+|0Y5W&ZH2&L1}3yJ|g~W*1FMNlmD7-{#UdCg!$jiT4s)RF7^z- zK>w?O%s>7e^dA#ogV35h>J^{F>}SLx{@G*ZzrD5eA5{OVX|co?@4u$NFQYGf5qzOa zRmX0Y5siO+#kAuL1W@@G{aNs#Mr;LDc^ZkDT6iT`v_x(tBc-LRVy+A?1m?#I!6Wc1 zWq+8lrckwc37K>!-i!Cf71!WZOpe)!<op6#1!T8@{WPjt-G^FgoVT~A z3Jla94zezPFDsXON|}E*^P%Z5GalwG$2t#qJ`knkH`3tUZzie}EiB!R3x&3pM?cFB zK$hl@>3}l!4DX)yPJ1t#+AG-i`tHsUxy{OxBZYCP$s}cEMWBMCGcv?&M!3Q4oq3)|5>c+OE%kP?WHyC%ODiYx#SfF7l$$<|Wr@b}S%kiG|1 z@>j_t8l&*Idm_Agq?t$X0m~BWqwY>}ZF8ia#Og$4L5NSWAuCQ9#IyCu1H!50+RHxz z=P$LCuGqgme=5)aGv;Cb-wW@bY7uic2G~1W*xCL|Hec3X_+t9Pr)<71yS*1D+G=SF z1;UhS+A6~|XkJN+)#~~S8G*!af(|PN*R^HYG}Tip@IM}ZyPW@K@aYufcH{cL6=naW zQx*^PLThzMUiCK^Z_*8v?Hez6y87P+@H`lMyr z7s|GcrkQnZ!Cs<|Q^ZMY34$XfNROTN$;39?kIy7@pH@piDP0LxjzKFk=(MzYAu7l`3iAcJe8J%Y27=D zvG*(p(Gy_z zjY`VwzK96U>jsLOmm&COD4%cc@*g#rzuvCKQz=lW&v%0Q^Zod5Yoq>GUo7t8?Be*3 zbe%8LFMQE_p+j}mc2*FHZ?(-OBe}Sth^{%=3ty3GyG%L1lTevR41_8lkuaA1gv=VS zkkmmh%6o-)$-;XH?2Tr0+7cZW5YOwYzTiGFmYv46emD7j<0p`N zc_}_DQ9-ETLRm+?JXj3L@TGa3eD)8N>$y@v)aCMU{mUuJ^Mg##(%~cpHtghzxP^0ftn?xtf)+nJH?B~|n8mk;o7V*@`< z0&^S|586%$AV(^`&7@cV+4CnPUDi3c>q^>PodbW5L7>TdMamrRSuTBtj%9axCD8~r z{8`tRrlN6ejI&(IWL?P1&^RL=Y$zKSy=??wL!~WKYBE<~ z)4Jl9snx@Fh|jWn((k}emWJMB&^GYG?co13JEXnR?CO~OLUD|W4Se!6b(6;a-4f@t zR#@`k3frvWb-?kj_~A=v5nj8U&7bPf{G7Kr{%3CdKZGW0;p7ak1vvi8mw!=w;fwAI zNeW*jztJ-16m0&wgW65yu7>00{YBHg1!D?KS4Ig7+nm>R2SOxcrxTls;&;DbVr01( z-|_ejs%cDMgh330j4E1GiB>-W1)?{1+H2mYD)tbfZJ&XmtU^}Vp=<^aX;ojtCP^%6 zRs5`x$MuVDciFSuv0yDgKi*cwzh!R1K5n>}uj`c@zBBA+q`_VN z3n8hdw<)pYJ1iR+A=C;%kA|-U2SutYkM}<|&cB||OOqBu*yoRF`uwB$zdj#1LuX_2 ze?F5hvoCy6e1YfAZjm1X0)hlW-W9^t6#_vV;(o0^em8Q?NE|{7K4;APt$i*&Uixh} zvcJ9kGsVFS%BBkY&rmmd=6CJH%;V&=gpnaaxTGua6Z)A^X<8W*6U9G_gdLP!4T9g) zm`DPEBwK&T8|k-o{!~`CbcDtw0VM%N1%+a)V`OGzsqxi>s}zh6^Mn6Sq2FA}7LwHG z@L7EN3i|))uXOrnz4tH6FMP3lAxf!M9z+Pq2bLm)0){w0eyR)@MuX0pkzEuObxK&o zuo(~6cDUB+90T=ZcwnTz7xA(n(rHi)3pG3|?ZI???DYI$@&MDB?dGH zT4>kj5qr8SpS>T1l<3z|Ci|1^&4QqYZ-U}iTUseSSw*2H;|t&QiVvG|N|{NpaXv7a z-4RU*p035oU>B0bvt|E8VgKf&G=v8aUMR0%QH|HvkWe|& z2`)&QgBz@n>!EVI)w`Xzb>rf0ASOy7md_@WJpeuBlfxXwP_FZHsVfo#<_#CTB5z{8 z0)HyhoAA(4W>*3D#EmCPsfq_(dsvs0hT~r&SekGgx@!sKKK|n_^p_kji<%4OKOb@T z=Rqge|9qfCtPP!<{);%jNWSnz_=PNGy|3Vluii$>O^?c;Oj`^M_$96;{|b7yC=6Pv z2NH^?T`on6$0UvHw+`wfTW^3uXDTH*|0C$D(g06A_-BFAEyMjEV;v8fPApv?udm>n zY?kye?%RYh*q91TRy(axT(}HaFhWBL@>t|Lkgp^UBGueKSazlAdN-|yqqi*>FyLhR zE-IpuBfZIHZkG_-bg7V^$H%HGm2Q^GRhjjSDb*yz7hSQg$IWy0F?5u}#@7vX`d8cW zl}*dh!FkuVYUdmT(iDC(8(zwOKqv%Mhf?WMv@Gp{b#&qb=E4frr@?>y_|7cA8C075 zA;HVvCa6b{_oKtIYLuVVDQrUa?s#Q|AOPJNn_A=Znx2jl146%7*>Ga8Dy@Yj!MV|T zKok!<1~2V)Q51Dwh7PU2;dagv;u$D%Asj3RPJe8L<=LM+n>diP$_mmwYC`bYfRiz# zF=7n60gPXVpqPT+BPJ3TWEb)fZF`D9wSy$?2|RwAxC~T%099~w_B~50A?!HEB!Kfz zSE?NIi^SzSsz*VuK}M#?F~nWOjWeH?(AxC4u*V~#Bi*~Sbq`# zInWE?@%EE=HY+mS#YmySNfJylhK+pxcXvO!+P``JIo#EsL(ljBpdULMdpjo!XTX2a z&==7czDU22r95gotBAz6Be6zKZ!=qLAp%+?Mw245H4lU+y4v zI^;@y6>HFwj%Y9(EXN^92o~`JXro7>hC1?_ky4;Z?PUjx(_|(WOZJ7?hCHyfaXl1% z#q5+KL!Pe;!~&cyQ;mEoPS_Ck5Fsh+H#fbFdy`M?X8B$6ay1}={$y_ADO;4u;|c85 zTXZVW6XtQ7SpXI~c~l@ZY&!A0em9v*=@FU!=2*CPhtI@|SWx?| zEpDt7YM;*(fm;MQI3BtAMhXh|Agu+J$ zRHD~o1$C#;3{)j>yHfxfuk~PnMU!{2_m0GYR#w)y53E2gvDP40sO2t)Wbj_|HU=gI1;k^`z4J>`le1_?XyWm zesZjYNm#|F$W-HA?7>t+J1Vi8Ro+-lCK|F=SnLCx0kp>^?VQ}(%2~a;V)g0ci&{&y zhBKb$@bz~XwH}_s<6+z={@3TcEJl5~a{5}MO|EixKbLmVfHMqzviU_U6@V3T5*XlZ z+R#Bi>4c%AZBmiBM!4ZM!2!lnN&%B8g>s*75HOa1kNfZ9Di+#V5C7D`<>y?$`#%?# zl&zDq;pb7xf6>+#&lkQpzmOF_N#C!CHqf=YpsS)5$%OU64n?9=iv*24Oo}oL2Ww>L zR$^ORq;0{2GU*qDX<$r3gaV7Wnb&VoA{vThVe2)Ka`8TqvifrUd<$oQjLOXlx1VPe zS}?}c%QVt$Bk|aIi#5W=QR9t0Xr^AQHGl6GMAUrzY}-D-$bM6A;~FDW0Rb7GSF-=? zSmCl3yH#!OUWjJtN7v4W+$NP1rhVFi+{*DriP1@SLfnLp&5V^H3RjUGN-Pz;cOjBt zIK}PpE$b|Tyvvu8OF(|~Fy-(CF8qwq`J%sj?VvO)W2B1@WuFrtoTvsK0&nL4=H71t9G_K^^5H)IxJ)d z734fZs49PH%=2Q0n(0)@bPR7`mo3ys5Zg7V@WWon%e?*s*6?s)2d2KvRk!!P%*Eyd zOdy$5X~N(Mf`Z0hTdpH#|e!kZc_RHW;~z zIoUCmhAQpoyP?#}w#WXIJ5J*(TF$t$O>}=u2@bR~70} zc}}wyP?HQkp>yoeC+ODt70@uh8Wy_P-{2EI@G_7Jy2g;y4p?3ivAM8kep19w>E&b$ zlKsFrQaEjMnMA`?Hz@ouq{X=nUriJZ4NtwoMw(ZVYNGi*$qB~?JXzD~WNxhy9eBht z)*xyWdl1l-W>dw0VG(4M3!j?+S2*h_<-9E!TN0p;YXX@qdXG$-;pOX$xo__5CRF^A ziG``^5GG&uoUx2{0^X}32q5|%lgfjvGPy1?!Y7n$53knhN4ycQgRtdCx_Jz%`Vn|6 znHRJDb{j2ptY?6M~!WsKBF=X^JNrd))tb~6pA-?Rs z@Wt_kD)kfPRduBIXoew-ZBrz(5<|JuFvIxE(KGbYx?9(oIO@9Zgil zJ$V5bciK$~2&$6N@%>s%7o%vMi$J9v@c$QmjN8u9oUR}w$Ix=)7 zlchZn`&BLK8@v`q{m{p!PSt|#EsJ}RhSR#roiFoEON-Qf6dGMWOW3i7<(Cb4iZ!uz zx+NideJ@~D>6ut66bT0CnWajNgUQpBv&j^X$MTScTeaii$=Pq9(wOxz1-fg;FIX?y z-EagKsa}=6>P{TiDUEWHz5BK(iKTq+G{HLQ%k8~We#xIMcAKzkXZE_!(}1SZU$6|e zZl-noG3U1S-~~Ae=r0RR!I?=^i@@PoH09{Afy;3ebV|?JGVG3iitSxky&<8TkVFR8 zDI5Io%1p%#Y4%Zc#(AluqnTvi4c1v+3eW%TM3Fq6TvTd>v#9V$ZW^7U*y|!I)8b!& z!rVe(du)Ja|qL1IO z1(TI)eAGmi7q(wbK}H7j+>hTGY65TClH{mee2e5=!2CbO|U#+ga z$e)>C$UmZngeX?R?(!*=;c^Tn!V-@j8I+Y@^mVL*0PP6^Ft>cYgzc zK!)OTin;)Io&$e2lj_bQ7&jxm;5NLNe*XdajH_Vlz`?&JE&3xas(uAnv*Hvq~W-3Hlh2E zaim5JqeH0THr})kRNUyW2wdlJA)l;}$7ICZ9rW=7Qc~zaDg}OM9p&2zt!-_c9{u`8#mEJ1H;s*9>rKWw@T9$ug@`tAI*FuJ^5%KjCol6G0L$_&9A$? zV6KvP z6t@NsFRv)U6PG%aL5J)!Jj19g^j%4JnV$KGnDb*E0$&cbXy>-LwUMN*AA~_P8P7X_ zoidtDg<=Bb^gaCTVbwitsb=;DFDo7KX@H$jFQ|+AsB50?nl2^ws%~%ZY<}%ddea}W z4J0UXmDAoR&Vi=4{!5&iEnQc`eOBjl=i_g`HDFzrsc_t6xw@kh0&o&ANhA$aa}N+t z9a~k~>@qMaEM)=nRZ#hym_oYg2p06ljQ&J$u(xjtmSEV+rn`|mXrbA2!xXOClxk!r z?i~60+B(csp)0A+FDlwe&F-fY3I2u<7fj)hn?(fIvvHf$FrlI% zI!qO*LbxpkKx!eyD2YvnFM9*8R`M3V{tyyQeaXEM3hDp31PB;D6ZOBBIQ#7VcEzVL*euFmSB^e`4BYC~ zH7Id6M;pJR{8w{MMQ`3x<9lNtdZdT`3;e%N`soFzCzzk1y4L5U{eL(K5(StVx>!5^ z^FZjI8%ST)U-)ABLXwK!*8w7*?Qhd@kTZ4&&;iQINOpYqogE8v6zbJL)lFbl()F1! zE50JvBu>;=;hS&L(!}ZN#^92w=H%(8k9BzH-gds$; zb>((b5L?D(dJqrB0^J&b^0+h9>H(XbTi7Gs>a7R%xigXX)-z5zc%9|PAw`~Tj=vYg zYJMAqFigkz=6ng2^(hP5%CRp?B9HKO%5d&z0mlyxQj@#_5P`J^62k>-O-2yx%mY!B zMiGH%E;=0*)+(F$bq}`PxL-l>Hf&hIx~O+6U`JY8w)qL6C5{mx7GsKU8tefbH~gC- zvt&(*W~EUsk_}KDg2RMi#Pp3E3%x(8;wd+O_u{#G^df6Zyw@rupA8YJ*2Z>V>ORc- z1qFlRIw9b-AfzwZ+auBi&)+0*w*->4U0d*)lwu+4AC6`}lza7qj@SJ7krN%tR$^tW z$yU52=lnu2r#=+-qW=O#(phSVVt2c>kwdtMb`^k zWBCni;WeDM4;sd966(zP1({5MfP^kaax_qvXao=rd)uk)A$_~Z{2YSqGi>wTJq8_~ zki>1FJ0dBe>U@4;@eX5KxI{e;TSm#uYZJ5a@6xlBlwXqiEbZs}*~p&pfA9GJ8|nQk z=KQk#!WYjMIy9l(b>@@aV`xu?XX+D{$os<*O#7DN{p)}Sw1$LHc>0M9D0&Q`>t3y4 zO@^mYP!<#k=@^T$EYeUUd1!+aho%%!C!e%19@6}&NgaZ&UX5Nv$?(usNZDCqgkF=msD7}73}`N`Q*b;4;k-cZid zHi~+8afgiIh~TkIxqzB$@*6MI3@0`L!#J2lIiIRXBd<(}B#TnIN>N&&QWhi~t5yM( zK5ellqFj*$^9>aT!f&SSq9az3^fdi+v3kHhYh0;N`YfB}ZEjNQl|({{_wFL)W)F8d ziStD4ypYAdG>d}zc#5eXD=gqt_9%;NeEE9$G|#D2%rl}LYL*z0u9%EKTl%2QA}u4i zp3Xdol?E{Gfm0Q~F^^M)?A1}CR3UBy)eLOtzU9?~HLYiofy09ohC#&nCIPiIOG>=sv`9wrr4Vb>u(-#A;Mi4RYT?h?N5= zh7=vZD!KBhSk8LHv@iZ+XtLiz$oIHZX;^ga9i zy0m9_thD3R#%t;N{SkdiB#DZ>b?|F(iE&V6lFSaOCnL@_3!JcQU7Ml~3>w*$McbpO zVN>!-!n0&S6UPXv^!!W_?<4N4Be29*sWtSR4j>CrQQ(j0$$r9t>HaJeGTb~*X3yIb z$+fdGxPYc%UFB+FP(yiR;M25sZO(yP(RjEdEYw6q62n`mS0kCk?^y=*NE38mISJc& z@L0npr7;$2voeJWhcAb{ zHe6gsx*h7wS2=5WV>VLIZ`hO>9`iI@mLmSMo!tkoYfn1{uV7lSK7s|VQ43bie&V>S zZL!GnxN;OPTJ=SSi9r>rJjsKe>=~Mss;Rpd^W;SnAWX-oKt0b2iIr%4OgolILlP0d zZa*oP?M#hRYU%LfA61Z}5#fSS#LaZ`C8QF`W^&Z?;Tp0&$XE)uO_^!pu}y}z?dPZ& z=_f$?ug^`Wkzq=>Bj+3fzK4N$aBm-pE@|S&85t}4S#HA_R_$=F5sy~|s@&XMg*%gu zFv%2uGpR+-;Bs<1bVhbLY(ddDnhX2Qx>7nzzEZjK(xO)o;c}c$#|=>{CjqnCvQOF3 zo5mNDHciGoW8gEvRTeMrs$afic}gfdiU;uF#`%jBV?Umy*+^myC+!$llyVemBq#yr zfY0LqZ>E?ui z>+H#?bVkh6aHgolD}8<3MbqDK;Ex-kmi84k;qeuuofOkW+{2NLWTvvt&)86U(0Nn_ z!kvG~OKpR3G!8ji>Gp(T7O|~V&(3?(lRvVCFlM>dNLx_UzH=Np)1A*dh!*FRoVdg5 z3BbsZaceASVDnX-uHo?ko*@wYxc^H24QwqcpbbdTIuFveZ?JI=n)re zYDqg`RzcozEUq^)8!t*m8n3c8{s!4BbZRq~C?%Q;oSw&+fl6I*7m9}-1=i`$xY>4M ztN1NDQT-BoCV#VmU`P7Uv`qb{hIdCh6+(aYLq1 zct`O}^>a`D@UN*P6?&wi;!!ydE<4o_Ui}4%=Q6wwb{iP6*~({&AnByjh;%o`EXxys zb$J2@W;vKlg?-1?>9fJU!{Z8IWC<##-rwRn$@-Sd-+tP`cEQR-iZt`VU&$X%Z9j^> z?@yy1>)_s4A)eELZmA_~RK;Kc86=uqPOs zdI;$}Y8!&s14e{xjF?-o9T-3_WUG??oBv71RPZLhKg>B|&(1G~?%Dvgm9#$&#p4de zWL>wSLga%wbkTN95)>az&j@`dJRomK)Z;nS$%eX^h%o|z&}+Yve~c5&J%1P8gOWcg z&vwTu;orIW)=T<*6Y1Dn1<|l>NUeC68&uzx!T4C{d>n8y*2kI&|Be2jwaQ!^N@i+& zAI2CyN7v*bt!}BVd1b}2v4M<_OAOo9sSDzk2-VT@F*114vPCXA9<6ZU%74UOu=RqF z9KXh8Upe3{yu_Bi#vSFnJ4Z7^Orw|$A%8?5k_v%0;`zQif)WvLvsT*c)Ys?O(#0QG zwYGhp)`3o>sYZ=IgeOe_{nsOJXLqJ6jqDWDoaLiR_Lf&NnM8<7s0HyLV=>BouK1&l z&v+~1MBQ5x-2PGZ1ovOohzna6Wr;Utq9HfVh#qBdnA`;u#wZzcu`C{q(@B*T7cCPj zo1!bqxmjn(`y0s)E@eQJ2{d0EIOyzbsu3HHHa^cEYYfhv zc=)Dk9D9y$8FLPq_Noe-{NE{Qq1TPWjRNIWKw>0oV&1Zsn;=uK;Hp7`nd;#fw9<9B zlkSE^>gQT1;EbC)35J5i(<&AN8R|S`NUAng23zW+S&hX)Sc(`V~37nQfWtL11 zcKCGzA?r8SEJpu^b+m`u<>Og)_IBG}$_sRsZ@ywCtBzxV2CfM~1aImCW~| zn0v14-u!4?*lOD{v1OVVOZ_A?tA9B;|3oXV4$wM6uVeL_){4hnY(TBuo}zLYXWq- zTKJ$7?Z!=H6J{Nwp0V+>mAm8>SW^u?!1f;MRgb*U*W4sJUoYv2JCcQ2XaEkJp;o19 z4C)7XeM`<3%j&kVX?=)?^|zBT-rg$pYHdb;gA_X`Cq(0Q?w=StPn8ZoF|6+RBEbV+ zC2#SE038GpT5om$u33C7^VY7%IARr$0GH(QH?D6);wRy1u{XV66SDS$f}peG_14`9KP;e3PMtQhj_4 z@8)^}`w<5igVAw7hZDL&k7*~=DkM%8$=vrsp!4D!6^KYCqUG++iFmMY`iT({QX81p zmrp;wGy*r&wafTG6WRCc>4n3(WW#jWC*3G`nvvJGox4W`V|9L+Z3by#T%a3L?3m;R zXa;x7cT$&?bY5`G^836N$b+_k_+1~ zbFIM+*#RLG3$2=y6}w)I*4iq;<1hT)S;KQp_R*n{x%0w4Ix-#v4k@R~{Rc9W#MR)( ztPzieZP(mY@~9AfnkSn!2Q=5eq7C#?e#sxs`Y6bGD@gt_~XZ;6%n@vwpm6nhq($zT&! zaJfifxi};#2ixsn@81!w3JtK*r~KA@JxDy;Xso)fwn=iMtB}0#NNQO(j7U`#Ckd6> z0WYrA@$fGxzxIi)z>(|rG*hb$KQ9y<6yd8t3d)VYd-F2YGrKO=l z8zG_uYe6nWhpCrxgj#Hi_dAjG(8k}`J#qS%cKVZcQp9{Q-s@g(<@X)WLa-DLTCDFA z<;dUy$CJRe7(**g^<&Rm7`-4)*1lYCF7mJjY<}D&-k<$6n$}0ak0c0lyRmC(()@O{ zN_SDm0Fo2NlJuhRSz*J@?2xgh4KrLVsTf-*+L5^C&?!4IwIRud3{{G4T0p7Yi@_ulW;8MX6Y_E=TFnrpAU=bU5APf~$$H{5tByv!axjv$Ki zVuYTOs=1`9;HYv7n!oEjNBB{(xI$MjxGGmLq>Hce4~Wwki|&+X?;eY<9E-1RG!rbh z58*SyTE_*{SU+hFY;Do4O%gVQG;ZJmufYSY-v6wqcX3O63N(ELTfSdm=YMvny<|f= zFVJU>{ekjxq6N|nRuwW89!+W3?GsA^8|Ts?&UA;gv;9qmRiETS zpMllR&XsX8Pvg9T8xe8dmB^cQ?Z~WYvR)%I?;LHgHlbdUT&Lc`UrCv{)Xqv4FK#nQ z3B!=LKY|2*f(AyLR@vHeyx7%bg}B zcITZq=y5|+_qs9WQV-`*AJG#;>t4xW&NF209ZL$Q+w&gp=ZpXwKkS~7+Yg)RrHkIY z6&k9h)xZHQCq4Kn3aY5p7hdzT&k`+FtVYQ2*B ze!77=&)Pe^L9WVK&{29_G{Q75-8y?pzRlY2s$gqg8HmSTJI;HBjKt-xC?!vJ z14e@AwBa>yQd5OdpXwdIufuOHqdgK1i2G2k=XC~GiLk-oHwDk~5d9>R@cpF_aWnR8 z&Rf&6!Q z6=NuAH_G8Kc;qENoYk~ zbT61@x)HAQ*jFlBZo|}*853wqY z3zfD~6+^ccNpp>H1(UZPT}%^e6JmAzqoix%@qC&t1Np>RfiIO)Ai~;6SbFE5=9%G- zNOn=HIKWoA%u&rK$qPn_=NwPo*0;?#Q)jnQWzi&eUS3gPObIO(?8swgO2fX~JWS7U z>iSEBj3Hmfo|8J>p}&Uj?`J8zVqe&0F3tsec?5ZALOEtA&W2qFw~RR7Z~3w^c88L% z-a8qhIW*B45Fo803mNb)u}@)AyJK}+#ZA9@5_BaywKdtH=dX`85=v?FNNn!wlVu!1g{DkbS^&bO)2ZT7Gsu0~y8lfi+| zuj>28o_uz_Y+pbgXxaoBIa3wKo+Z##u5%-zuj#=aAdCbDi<>EGj38*A4^d|aTeC-= zuylr>5bV$)WHC)ut#c4M<8GJ-OZ}-nF=nlXjdqW>)ubFjSh&$7r9*@tyYQ5t4zdnV zlpDK8d&~J@NQRD`THyENu1;vSiQr~4JI^}`@(QcamD`P^1o|$6&pkKT3D=fIC-ntB zq&M|BX*qBPRrEBr*R;BGI!}*LnXfF7l6W^K9vRq*(8#T;6K_0#v6J*taJtt&EnCmx+(&3RIBS#GhFJ zHQu~puTSmNqmm2Em#EMZOpSaEbsg$EGfp+U*fuPMjjbqTLh0xQp}|}+5~I<-dKE=S zo5k8#3_^Lqa&%%nm=?%Q)20B5?m?~GuL2j$Uza+e-Yfo8?>BR1oKWA%$AzmZ|Aff1 z2JOUbxXq0+jWOiQ%+E3vQis&2LB2M&jO2+~S2K;ae157Wor{EMYp47Ua;QQL(KNs)Nn!n@hSS-H*j9kH`3K;5w-d?19 z{#3JpoJNCM*X9izLl3l}qYp*~PF;XjW_d=HOaLDzpx`t2RjWWq>BY%PgnSFDE7GMp z&OE>U|JDL%TY8DZ}S)&D@R=m-=kf>4+mYsCzZf$(f6 zf%qf#A}i&lrW+7FV;`-PjDR7gPuc3rU-;vQCIvOe!m%)ZiDc7~sx0~6UzM(E z*_HHQhGKQPKz%H{gxQ77;}L*z@p9|k8H-ekSHPWDsatyB>k+GYdT^P|OA^TybL1J) zV{hsUMZ)(#!8ngnJ#Yv0kdTWX|JK@zL-^Pb^Huzs{(7hj{Qo&1{#E4=vUd3G`XA+u zZ@O=MQ-7mSK|^L<7VcxU!$A!)d`w6USq{E+tT5z{AiM!w2;c$W`j4%jV|L_=O($6h zk0V_Lp#g%3o{x_%u5|R1W)?=t#4|CLZpNLAcN62R?wxNh*AU%Um;15)GaxWV&!wg* z<9Za)OhwEo7{<)wQXm73+)Y!G>Fkd7p6=00{oEj0n93V^1lR0=R#gabD<)2G zZc4XxcS#1JARvf?H}`v@EoFEe$Ct8RdK15&=C&7D9$8nKCX9fsBUh9THD;rG8kQR| zAn!%qK%gvZ_rbH>7H~O#KB8JJn%cH{))==G^#z)yHEIc~G^ssqbTjT%41jCKF8{_W zM&}$Av4?J4w0848tbGcV6945dhT_%Nfk;lxd59SR+r>Ve)kQ9=c zP|e|fCn$>RYcNq>`iH1@Ik!EA?@>$VHs=}6V``12$%$j6`z+os&q=2uts!gixO5C_ z@@DTcEAnHDY^6Rckaz6ELR8&hrJp!jy+PO1#W+> z#U_<`!Ec*{UcNX?qW+9}MAt!+NST47_z9!?fb*mCfbv)1;JX>xhOK9qeX3y8H0zttoJ4Z)&=Ag z^Hh1X$8E>7$Xh6hB-+F+V;y1kcG!LEcdQlF-=K|>O<9-dlP+HVt(FXPI091$1puH) z`QP{y{cqjVe^Jo;clpyd!~YfUUu@s_D(iV5EuepPO&FWhqa%R-2m#B>A;HAM&k;hn z1_#Wem-oX{jn;FHgSK?q!%10IE&$nK}TRbCAP(T{+vRB2pLURzbyuz+pTPmK09m zI_~?;MYN-bON6x_D}c~>Ayf{_<1rM@g5xIGo6n=TTlZ1 zOJ)xp*UJa@cCDW40jujhWF$KEEnt9aYQI?0Yj7WggxBPjAYO;=nK(X~=q)UpmhrhU zVCzXXcu4hmD{05sr4XxY2$$$>CKzO7hnLlta)*uoPw?^3-f$#w(2ALcu z=;fKjAD3n`z3LtDGfJaZkx^t4s4#1r6k0`g=Ej7GF@d(=7)1P?1)Xcj48MMLM`0S$7=FW{aYd^9J;ncw^AkFqsk!9&lDp?)@DLBKV1*(5A|f=uw@aGQJYN#4_p+y-`lvS zgMw#Juk{nxqgcjPcPYovtn7CqKZkaP(XuuQm=bQ6IPUr69OSr3LB|QAt*D2{xgi$J;6Y8^ylKu3B)?CHhzSLq%Bo5 zR0HG?IZm9RYT$ywy4wn9sK8@ZTICX_6@MVH*<8&%D}^G|tgZxQ?nIn69Q_zoHG$E6 z5`2cdG|+wWP+<~9~sU5Q-dD;t5WUws>IBfZ&yL=MF(MP`%0 zs>s)bPg7ypoXs0&QW^#`5pNYPakJcLi4O4!1?(K{8SF*exmga_d~`Ur(MwfHPbRVx znf~W`K9+JV6Fq+&t0RSvlr->1AwTs$AF+~;i|4Bmx7nUpE=}aQKfJ&6XAhYK7r>jV zp=`?aJhi5^O`RWXM)G3O;y>AYnriFlx3K4E6#i;}V;6mRXek|%4g_UTuD!m@=L{kf zalf};WNMvBUs+n^V@g}IKdgJ$%=W&>iV)343sd#|=J+WsL|)dc4SZh!>_4bH(*{+3 zk{t!}{!aC-HXs7Po&41fKAC&N?6VBUN`&D$&Fc-0^9f!M`GN29m|yV$A&KE@W1#d5 zx9@)^>@Bsc^YQXtg7)iR5MNUJG>bKY97saKLOfWG*p~3{dQH(+Af;(uVXx{2I$zxf zcTS>a=dzFX$zuJ{V9+b!=`q(3jS++a-?;FXi>cNMow?@tyL{XUxHd^_oj&c!)!=Jr zmY6co*)Szcil4n)BfXz2`aC>7B$^?{nu1+4gD7Oj0sw0{yT%TCl*c{XOdJ7~ zXt}A40S##$^|3Ln;Bx}yhI^53LdR!-?~(7c_kUO{@w#r;T>Dk{>zs5Eg$5$;%p6+j zmxR-rBU%=ioB<;z{T)&i9VMD&dxa2al0>;B-7psrSR}yPLtFpQDR`%9nDw)jh{!V& zsQnVHP@|)ab8C3Jv*f<4vP;KtPRA)`W4mw0<;i;w8luI=%ufkK`|=J|Cmz-T-oN^F zdk5wiO;eOe3C){S*Hnb-|8=>MwB7$Hz+G{#V;^dn;NgTM4z2|#%;zEGCEv&I-p#k( zH7^{7e1Jb8b3kgU+ST?1#N3$y`*Q|KGLV2_4sp-Vm@<{KP@xFop6`Vw(z>jYO2+A! zU|2#axko`(+jQDnY9S5^U5qxWSQJczcx@i8o(QTt+e8;76yTAqXhR)&ot6(#buT== zErRe&=DUX1auw8O2un>?>!V`<$h!*A#rJ2+ao^1EnznYpne=AEU{@y_SI72`L9;>S zj&^mI7r2Pc^_B(y^Zm^f;(jE`k(<khhS;PP z`@W{IS_aJ#gU4{fot|6U`ev3v-NCxp?@Nl+tc!<-@yR56*pU^52JZP>jNj4>vx!jM zwPN%%;VB(RbFWl0NznATGZKN_A}85y+JvbUxa$NJNcEL=A^X9o|p$^?Vv54i~^rk24-|$7_zB zvDp8Td#H=#xrYf9pbqinxyJ|;B-`U@g-)G{X6IAvLZ2kIi&~cn=G&dI#zfuW@_CB9 z@3GZ=@Qk-X%^ioNOpzKtgQLWR1o^v9WU2{)cb6yVROfP9*BA+GFbg;5{67=s!_A zPC>Op{WaQ@cNDVb4Bi__?A7~7cdXY^n1^w15KN;Uw2h}?hlS)vusw}SNt`ROE^+HG zYo6=m2$O$mXeA)_=DN|uWf2qFb#GpjG2W(I@!=;2q^7?&K&16=x8wSP)v5*8H~h4)oRdQEt|@B_fCl3N|hvu zH@(~m{x6thrD)zgVs#kNw4#`af$CQ0<+VZ&BVfdB+6|q!>|Kd=3*3!7nQVk9DTf)6s+urs@>N*>+(@>i8fk zv--Hwy3b3)esx8Apt#0k6By<_)*VnnUGKbj#*ksZGLs(#K>W7MU_d3K@uYZ%G~mnH z>A|A~hecLu%D<5m*=Ag0f73`fMG;&a*t^^pRZwY^(V^;x6ITmy#Z?FQfXLG zZLI->ayC%WrN6b98U9&ph$&?>qADluZlm!0!>H+(dZMBPAMDoQV~Ga#x~ta0i3_V0 z2i##}yAO3sJB`YO@G{kf;7r-5;}A^Thohapo;WSM^SDfTz+Soj$gZTK~|%qDWe#UBG;I^c=?DkQ57MXE<*i6 zng}-tO$y#gRFMk)h9@75MCFPC=Gn-*=c=|LXhWz3liL*`dKqwb8KF#wgp$xZF!26t zM0wefFUuuhU_#?NK!_#=PxAdL&8U4#1j6*fLqb~B_-@FGMZ$cfk9GpsXW@UEbrK?I z*WY~$(K||qSro3#E-TdpR|k1IngXgb=90uP=Ulm)60gntf75biN-rhWHCP^~)jzXz zuK`%YrC1+`1_#3_c|#nV_fAVdxF#E2O?(-X5L$ffK|4O=hLf0&9H9%{lTyD zSPjno``$TrJ%n!Lr=VzksIk*rS0#wmd5?BCI=wQ7_HoLl_MpB7ul_wFMv)E{ zS8V6ypo4AP>K<=sVC1)(oBsOf9r#=w~y6{XLHmW zbJp>|4ulXXd%YvzT0+fbOFXA}cB0W5UVQl$-Ua|md=pZ$OX?`=F8Jk(q0%|XVZ9e& zbC=FtUCs>PF`WsB_6s+rP=$ukry|Wxua_W;>y5G*>|$&lWf7ceYkPO*@q>j8=Jvcb zmkIlGZQZ1)8LtvH@A6aouEA$c|GTJ0wI~d4RMU6tpZkx#!|b%XCV&6J`g%&y!bf3z z46F6Axr?`Wv|(AbVtw-U1tuLM_TzA%NL0YGWapS`2_FPLqeUiytjT%mA-JUc3^lh! z#C>A(6;Rq{14C2Ei~-RkOmoPAo$%m^`0;|bc-9BE>F9avsKYQ*bvd+rO_f!0)Q?wy zcQ4H2;9YYe<#F7pyO#bu&FwI)a`XYxxjyyF$$m>D)G!nG%>2qVBFUu3p!1wn-d{%m zG)%yWJts!P1qz**T6iG@q}3Y||H7_8^p#xQTOi#h8{Sp1*54^k)4{Uj6X-uqqJMW; z!}zaGA~WkRO_8;p<^Lz6H9)?VP?axr>%rIGf2orEzuEqEtbMzU{=;7O`@U~{b9^IG zR^rQR1E~TONeJ$97bK$9Hg7O-FktFh43tjNzx9-9*_XsXhJlHsiYuNH5f!IfAQYA^ zwlKX)W#R8B@!!AiHxS!cEksW8qPnc19Yhc4G-uE5axU9dwALF*CHt-mRtp%&c1vY; zD*NotXMfhIA*x+TT^bKw7K&8#b(w=C>6r*ABQJ(^D|Wj<(SF|vWgoe&p?c*jnkEai zT)5sWjTrXUcvMC$kH~JN*sa5isXGYdMt3kQD1K9sT=vDG z$8zOxh^TuQIDsjkr?73PrC?yN4YSX+a-?h37k%DgJ1wotsxvTmueEOILa68XH9^SIWfBdWxoolOIXqJJ%(OT0u;Y+ zv%_uF^4fTvv`rY?a{jQVp_%xUl;R@^z7n&&_2)k{X7~SQw1@Uzg@A>fqmiT0|7!sB zeQ|-SeI_t`<>U9iG%w8m4_v?W?HzvW88}GDeN+D{82(uZ{wDawH`zBT6~1(9ztBF4 zDz)0Env@IF6Z4cW0GCl@=n)8%r6LA^$xzp&{s3#KnmEErc_450{xIJSgxwZE|4e0} zM{8dmCgHrp?YiPU|9JcR4(4OTHNHbtRlXM#ie-JMn`@rur$J)97bRvs!MDNJ#~0s& z^}8BlEanOv7z&!vqJs{y8L`6+HC)wW8VB^OFoEFMg$r6}_`2fkr3p#ye!vMdLo=)6 zQ*B^vXpYmsoSSDj{@l$gQ>w>O;;!Rc zEvesQ`%!G+@?Y#rtDA16m;MyFN`?l+x<9204sa427GVxi(ByLgt}k-Pnqd(*hKvJ>6V<{`M#OOYl#Uakh2d2~Op<#w`5|ZwV7cdo zR?znc9EU|2**j=1IBNA_ZJCJYMi2S*z*3>^l<<%87n@i*|$?$*z z0bIAO3~Vq_ouw`u3q4TeHHdJY0C*tjEs7OIspW;JCd{3jCR4*r9*?T8cmcS4Gy(!C zSqAMILlCNv?XX!bXAkcgY<7wQHBiika3NASwZ~o zr zoq!POc95oZ3ucGa4*BU^ZE3uC>Z94kXCHRtiYMr!7M_B{PFqkD6s#sTsyB$;*#X?qPdT>3ET3QNI3==3*wLDJ30Fr_CIXI^9lY#FRZ zysuUHLdN?^T0JXE(v`46Hf}!SlHHSLi~arY{o3Q_2beCX_q_pl5rP7_A>Bqa{CL4N zl=LZE;hqB|N71XTaHL5hTXFw0QXE;a9U!X0zO7iOj-%!xeYruDo@pj0yH16h{CJak zCpb{h%nM=Xq?C$i{f-(X{~)DNP=RKX|9V3dWZ%b1A>Ye-9P4EO0h05E&nG!rghdtQ zTUehzpKJ}K(I!nd%-j#?fi91x5LYE ze>`m#ev+-sOsMVp)Ixw9H@cKqhHF`J?xa1GUGuAXnuju*xzn&;n2B0fj^8zwP++Ts zC_tA6p}r)QtbDatYC)wcMiv+=X^q_gt$DK1?$<3b$O=t#)BQwWjs^xDq_f_p@S3xm z=yqJ!9kxNm=@V_x`00$B26Lhi*D~#--fMyu#VKg4CgxR1<(f5xQDUGSnht8c(1w zdFIc&cerj?a%Ocml79>1BI1nn`LHk9Fm<@?K~WLeM(@ulua=s~ySRM|i(V`EhGwAe;S}g1AjycBGo8+ z06qYPdQWS3NA7nlOH+8;!ESN%RsvvJysCy(i!ANe>CFKHGMcMN-jzahQ0^{nR0gQ%XUM*_UWqQerGn3 z&0c14mPopET{l3hPKh$M-}=l!cg#$pvO1}pUUIUgWk#86L!XG>)0<;?mkSyhw?jKm zH3~`2z__uhOkwdxp`x{Q7S^c|omIAj-bh=}QWz)H(-fSPa(6C&gWI4y9&L{Q36vM78$9)(@ftGh=K}^xRNQTU5y-O9*`g)q&UMMhAvIvBCk~ zYGCTCjqG-8xv*H%q);NYh0$gSjGWXW?5Hp4nmb`4wfrhy&v`LUytgVS(1+k7SF%;+ zVY?#tp~=yQ(W6HzBFQGm$kM{E2SxEt6n{*3alnCUmwJ zIluCd*#r2f+$@tjYV-kGJrBIsyC<_HH4x0`1;*S&VNq!`eGzxJ4dO7 z7wsmojc1X}1bLVQU#WpN^FMk(p-KA{%I9gEIK$^xW1EPs{xU^E=GcYV)enqAak{LEx>RyD~;+vCcu#wW& znW567L8yTl#z)!Wkgg!C#kfVn;s^yP03<5-oD?)e8<~R_X|<=czOU3z>;PXr z7O)r7IyHw5-fzpSgjcmhQ1uSKB-r!_mf%R_46A{R7CQV^L{8w$JukB-OeV2IvI^c9 zOC{8`reIgg>hbY!8*-A0vXFiLtfD>uwQ+E)hjhZE;6#Rmc7tGJm!j&bP6ymXdYJy$mP5K8#CFu|PWq%#y8&$5 zXb^$@%VJi43QFTiCKgz%(nzG!n#3-cDzR%`zq}$%iIqivS8T~JZnZymK6dPVM%g^< zy6d<@bj!OjVZUB8qqehE@1D`HUBl$I@9&O*prY&;p?458*o+=%@V`p5v{OV^kE|^* zUaLG=pldnk(RNZNcgfvkGQCwoAzlY*cBcDY?OYj7J|5iqJ7nEG(!9a(#&vj8p-Nl&fQqN2@AeBr`~F~-r!Pv zD4=~Nhi#3e|Jk2dV|aySc)@LXqX+&B|3swTjGbwt_}K3?*Nk&cHp+f9y!QeH>`EA` zRs|tAlnxXBiAoV!x{o9t79p=yAfG0FLSspw!eJCM7(uSEX;hkU!4KStFZo+>G*QWw z3Qh`cRB$u;HjqWkSY|SZoJmP|E`TNT;uqt-U6FYGer~r=Ad?1}y<*x~9zk01tVd!P z1R~{wP@Y~iYwJN!3eMagFv2X9%$x-ff463e?NGscaD2iFcaNpBU)j9N;yK&_5MbQF z4<|6WHQE=UZfOE*EvwWmD3;XP7p|IPsjYKz(T*@GVV=_ zO>Aqm53p$JkSpBmg~MYD3(PW@vv~g%1T;p^I>M8Lp_Ho|-nF2ca>_gy&^u#{$dI0g zbL9&v74HU+?C|*W?@T+ z@h#6{D;PZq<#FlTr_itYtp@?)q8e1EP>!HyeiyYRY(~+h+X&WhZno^#Kv=B#+j!VcuYeDLx0MxL@Mb8yE(+RShD z9O~Mwlth#$=E;*w zpo4Ag8g7U0QAa8IYQ{#kG&pYhBx-3%<*F{1GghT6G!(d6$Cec0hr|RqQS5O&9~F<} z5%*fe1_6VcJ`v%}*@A0faM-m4u{4-p8+1iXnkr7BHh^E)Vab`*3QGjcM)qM)7aCzu z7b6FhvdB`ct&qg??W`BPLgwf4kKNY2ibpEXFlW#(sYe=MRO$t}Xg60CI#Otr&$z7| z(FXj^jEI^Ajie~~a!@Ecj7ugmD^bjsqqdsA{=p+;o6diOH6|Z>TbX-o&22tX@_L?# zVU@>`$YRkDc*<;^Q;ESm`xj%wM>(+xVu=JMI)rY5U|ft#RQ1NUE()z(rtl)*zyMfU zN+lsY=`vh^#)9luM2kRvW`jij#yP3AbHASP@J}TUKF>t^v<%Ah}T&k)gb59N+N68Mmhg?2hprZNG zu`;AL+qD)2hdq@rbC_JPaOQmB41ViH-_B%8XXa%Hp`|JR%rV_Y>5hc{G@*WKzGCrC zL&RlXo6<{(@X#?%{$!Slw@51P4iw9>t?n1He!wN{d9dD2_Q2kwiKbsjODEqU4{&`AheM zlUO&1%r`OYG7?6)PT)8quzG%o8c>bGSi~=M{C3}tMx#E*EA*J3w0GIUah^o5`$UTZ zS@$duI)9fBdqm@&jiXFT1r4djAt;*3V@PkUl$t=+C^rWmt6Fzz_&eLw@Ve$`t-1Um zG;$x6-<>u<2`Q4^*O9_Bv(^HK-o_OCURl{{N2Z!u5sx!ggpQ5hH8n|VUrl1x+cRjn z6)t?mFz`0_rjLv0A=PS)GCi1szP%JN)KphM;ZVb!BjWnXymu?Ht8N#)WqoiIN$yEv zQ#Lg1i^dWH>{<%o`i2XEwxm$?)UKC3K`Ok;U+YsHXM(lN;*ue=1VZ#TSC-Rc!!W8c zv`dFl8sml)U%qaxxz>B#00lFHHXJO>^A)|5&KOTR zb(YKeGP{^MzIsXVc$4))GonetYn*i3Y&%7+=);Sl{ zJ%2NH+{E@;+Y~@mnqJGJ(UIcIpw^d{)}pks!O8`x^Ou+M$>a*So2HY_lx7bb`2ri9 zKp`OT;3=~@)mL)^xj}h;M-7?}?zf&d&Q%(yAr>i~z88 zMjj(67@6d6SYd8?FNwvQr~50qNN}VV?q7;WwMrT3B)A(xUQ>JNe$JsS*{GQ`A%j%X zExJf51Fr*2gc~ZY4X^|nHA54$Y_vTHwX&Y!;_}83aeb=eD+-ekXSH-IlZEA8?W&SN zlkTTry56YW@|(`pHo1T>Oq0L>iHDreNFA(Z*4q>Khd)z1C9L$b`mu(d3pH~;f$fRT zIiPA`wE;@sw)~Wbb<)4`^yRQycl-5lF^oc;nAhAQJUsN=*`I56l;C=Z#mkAvo@$AAEukPzpj&B zw{C9%4z7GpVpKuMZ^kx><#$@mdcZ3-^eGg9Eng1CT3OTk^3>K8bSCtV(xc(_LEs2& zyob;fi6&mQ^RGMs#Tw9}n%Lly_BE*D@CA7zi&6vnh=Cy~Dm~OX!TPP!r*1Ki=Zv#| zK}GEfg4mjybWd=^MRGowz8vj=;xr3DLV0W)`9e3~I%+qH@|$N?ZP?nWCw@4;m@bni zlK38->gbij4FmHSU2(R)$>O#K?QvUM;ND#0-h4ecS}l*(Z_ks;M_}NcBC4DXaChw0 z^5sWdFDg!Fxa8su;96v*2P)V^qoV^oR`G*=9-MZ61CJys=T}o!P9|w>Bi~dlqz*q# zW-pZ+j{UKNU)PbkUziK@%Q{wPcEA5&kz%(;e~n17GiDSEYm!vaYTM*_kFe`;Uxhu{ zv2e@Z!IR^!*?0_?>$JMkyoXt4bS4vfLxAHdHT9_0tQwxbaKqf?x@TpQ(XsTPE>f-S z57Al7$*X$Q$5}2H$m*CX3<-TF3Bx-lrQIMv8~_XNA**u3BT8)Q^0kGKJA%yJu$k|z z&hxIiC2VpMJHz2TVMUH#n}C<_VPJRk`g}#Kz;Ff#gKh@+S7h&26}ei)4swR=rH&?W zYq{r*0!J(%&fS8PLraBAkx|S#MD00WWm&j>diB#k85GRP(EEA~(!H`no}fb5(XGW1 zgD^(0u^Nd5|Av@T^5`82klCe|2ut5)!s3)5xOd#Q-&H3HEq^njx*UqDhsN}>TSe)S zWU=8d)FF)b@-Mw#`{6P!?h_2mgp7Dl-q^Tc3>CLR!jPm5*hK{h+c9zd3e0&N4dGEA zd^@2pz+-)s{z@fK#S+_40j6LnVLTEN+0u?V$%vwvlxm}LO>G1~i3|J@EYn`#lFlq4j(yO8ckDWzf zlm2Omq4SKI$R0;?h>az?s?i!)RR*owk$~=T$TmO1(+ZL&xE4IHGz{1tiF7>-%19g% zh1_hM9D71MsIs3xT8TSCgZ}*CM_*A7eSPcNbhx4 zTp$%OW_&^hJmh-3%cxIJ@eMkq8J4lE1PG57OE)`$pI4O)GIvs61X3?(xuL(3)|U;$ ztl3jz1MI?vWp|y239q?Ztwf1YTxaCck*r0ktuii4mE?$wE970EuInBb%SDp8R&w_5 zDX3*GA8K;8;FnCJqZvH<8b^Rg;my?cLGqK%aqfi?)z%&|K+XXOSLi-c+m3^Pi8p9s z+?G+IeeyXvfz&7hBNWa&fbv9sMRI%D>hS?5BOb0%pa!ymW*s%(p+pR>T*Y0nLP#0P zg{Lri3soCLMVA`LuWtB3BlJgt?1TATL(Ib+drjg3YBsC22d1onBbeeWVcKXUgL{xF zx}SX=&!S^Om&DSi$!v`s{uSahn20W`_D^{SXDZL+LZ>DpXZ|~N6LrsS4_vqn${Z&5 zy1V1n)}oSp&^f7X7apX29Pmg*V(aUye5L*hD}G3YfT^P}!zyX$#cgylE0KkxQmTdP z<2joaCGG3$yt#4VK!y>5u7L|=v0GRvpORI=#nApK&l9n~Q|;N!g2Z*26mRe16AHKl z3ghJGoOdVmiNL^A{L>tkM5g252dO1Ly~zOQ_F%A1UY-oB%~9T^*X3A?E^6&UX! zjHm zx~KvzxNWYUduWTvme}#8MyQiDry%QVSVzsvJ=jg_2hRlQ0$B%M8StJnP2O;GD<6Lt z$Oy<}^;L5mYcn4X{|XmUGvGJSA=P+&Jg13}5UHoHArDyBQ@v zx#naT--(NK_K#Sfo=M-{NO(WBTTpGtAJM%W>)lao{dN6Lf0z_ap>G-{t98OuuiGPGzOVvPN1aCS)};Ptvu(tQN+4Is08N@$FWf!cmn^d`R!e#V>h*rjwW1`(V1K-_m?-X$Iom4KDD_~-@ z&$3R0{mPpwH{w!s_@PwxBLEUrn{E_!r<@)6)}jKLc=kii-9w0_ept!J$y68z%Cp zru`su5DQKPll5 zuJrJXyk8WXqmc@ZaCB=9Z{uF?tEN8uyH06SoUuE zDnC4V#vvP>)TgA3*HNzrJj+wW-{B*k_B8TicXXle4-YksWP0*W9`bs&YtY5|-4SjC zkt9&>we~o-Eu{MWbCt)hN%Q0wv23ufuNZ+tW6*03^*nF*Y;BfJsMQ^Qg)6%+>1!#? zx3lOC?i%N8VMX;%Jn-R}58^pC3jL_j03-N#H(vknV-BQe?sk|F?0L|kOtZWQ0jW?* z;bAs^0pjkFU5{`I_G|<633aAd!ioUhGad{!PhF4R+W8Pvg|TMt^VM~sog3G6A%eex z7ScD??PluRm@y@4C8mn^g;0jZ@wvW~?Z1N3!zYf8f96szrErtT<5Y&j?~I9=)OR zs*z_Efu<5L;0hl|pja=kUv|q}DbS(ZD~cShBmgj;mk|1_e-3lmqU4L!eF}}b=a3_M z(Xd0g-GA)VF=3u78&qNk?~(9St0&w+jYq;4rExL3VNjF8Jomb5{5kIg{Y|@@Od9~sLbDK2yh^j>xky9y^Xtp;uFcU4R>3tW4uuhf zlyLmH<>4^?&+rxI&9nbaA06s!q_=k$dU(Lkr#Ov42#O9<5>S+6SlT+H+i`_8J|~~b zhE^_V0MDdS54^jzU_yw{QYQdNgG6q43nHBJrp<0XqasrqHeDQfO#9&WwYS#aLkrZQ zPuADq%S3m(WwOm~{Gn)dzY)~&`N)5$!@=+Pp`W~IE5g-!#tM>617@#oWlQD_&$N^- zb4uthWZX#s=?ZGH_4NGhoW==FFPkU33zpPr*b=+u=z^6aO1%DGql?m51v^Dy_rS!1oe*WPn3{W*~&Hp#ho z?#vA?Iy{iTUv_$YT_{&|yf;9g&w-vEc_#wQ;4oUD>YYoC2c$px^w8*Qo9T74DMSKg zgRhI&O^*s|B`;^}l;iR$k2;bya}>{e=4H@KfRf6lSSxbP3)C`E=~hnb0=HvOvuwUy zJL;%$G}y^srB^y)%?xsM;~I{lWk&8vHVkeY6i)P9241+i&6VwAVeN=}^NS;r&2LXx@C)g|c(<;D~K442`8Qn1!2K~YPR9n`D<)q{xksq8xZzk&Z zw=7<>n~;}&HmB?sBGwb=2a$j+5}`jmxb!EWd9MiWzvXd^)02zjrbU*6PbT2;S}>3Z zZCxot?}txl0wrJ@|szGn8V4LK{g~U4 z&CNqS5f0#)&M`Q9nYK_0xJDVtLGjkje~04f%b`D^W_VHu+MNbp_n>O#Wqm2_@YYGE zok@Y_;4hI6Mt=Z`Ir}Xf5Odqffy??L={T1A^OYwN0Gi`#_MrThK4l1+bD#*Cb0i;d zear~T+oQ|!!tXt@)8L4y*q~Ux0z9bEva5y1j9d;n{(b(DCfr-W)n{<0=8h1Qmx5N8 z^#${HYwtEvmUl!B-3h$@i&h?FpJP+D$ZuHkKCf*%f2zb61c;2%67-;WsAA=j& z!}aMGKtN9Kj|rcpo#P+-6?f~6lnfV;!PGIBDa->7bsc~{`*Zg^=5++`Y-_s6WsjD50bnMchQp)4Nkf zSF#PGx~DcApG!O2x7X0#VSh|!Ivuf)mtSQ{4JJ*~G)RbbSlZFSdDdZ6OfRg=GT9f~ zc8L4^Iiw4Ng4o%^wU2jtmF8!%5+!4xhl&R5c8*Fh{wZan?0gw_ zCcC>xqIV)MpkcBdD3viiJ`wP9d9TWdF<>m3RbM^puv0}=FdT~-Kd`{6%}lZwHOX;` zQJm}SENQW^HPe$k7Qs8;;#pYST;^VZ9um*cN-ROLvV~YeSdEx!+HKU|-rYPZ7W7Xn(>jg9EIv=;LiraR^Hdca)kZS3G9f$*W%&??eyf-@(k-_V|{&c zE(5-_y}1RVU&&s(azq`lDfpp%-eM)a%`=wqCVc_Kc)`kfsAtBWfWvIJf>5Dsa!W`~ zSi#7;(tIOElz*ihbtSF&(*?%K^8EDlYPywR+^d_88%?rXYQ-F}VzO?bkDahf7AluU zXn1>h;pixxDZ}CH2}_F8p=QKu=z7uvSDt`oHb>QF{V_$${EGf;oMt2PCp*hB1j86%ssP$FzeG-L!W^NXcRRjqn}Vr zB|NZ+S}W=-SG#K(bv zvXRCxyr2Ar5yOGsg%WCoB5J=-(whcy$o+5{<@-CrE#HBjTAS=$wDOaJI9+D);uzzV zqOAh^O-_zIsgFD*#Ox&;`CQ3mhEcAPLotWEdufGB4}{A&DdbAmrro8AD#!h_W|o@1 zNjWbAS3ZI3-Ch8|V+(Vrqb26Gq2lT{x*kD?<*y0mkUk{*Vt59#VyvK0u>{3*_q`t> zHX+KNPA|K3A>M77!wYCKoM&#G?(tZ>3-?uLtHh!#T$~3z#o0Eh(<;BM3tfEgIA?!l zK#T;LHnf})A-iQzhRensQzd2M^=tb07ca!jG1=UsC1vL_xFzS{UFuBG=4Q-H5nx}E z*w34k=Tb8TG%HX;&j>S#NjGL~1=Z+8@N{Nu70fWtdz^ah&~#?thZVc~H~Cug`(WI% zQ#qeLcxUnC&i_=W{uRe#B-phT%*6|7go@{(=}RB>s#ApD%aH&vd-Y>UyT_fqR!7*0 zNeJ4}31jLN=087)5D+CH+~SxO+v?t5o*BE?1!XPqR~!P>{sms9W@|D#8Gm94^kIcqy-=hxvQe=Z{3QJX1lz8*V7`+fKOR(M~v3rL~ zIfUm5q#jtLI`JcHPYbV#W!DXK{7WkBS-GW{(>UBq44aYAPqFi+$$sQGDQ%h%Qq&)0 zriq_+0(`@`cuszbgSxQ-u&J_a!MLR*-~BILczc zrc4&-MVg2+u6tx2VU@IjkOFi_V%G7FFXc|LckE1caOO`-`}g6p^Q+w8cJdn*W|n{K zPd~T!)SmKa&`A(Wztr1CVkq7Yt~Iy_(&h{~xBdLxEynB^c{F#+^fBG=ilYDL_!M%- zGs1m81yCK0e0s!vw9~el?3Q(6Coj>avogvJvCSnTJzVxm)TEcYh0(f#Bi9b#mWi;s zR5LsFBb^199Yayw;IZ5a^1ab9&#CT!=oT!`5CYaTObfb%^X89|OKjV#*; zWF}!>kt6TJSUG8*S?-!B>`Y2;1xCgrzu7v7xx*<{S9_8UyuEHQ#0!6u3~WJ3KLSph zQiJjhN2Tq)`m&Z!x{3u6Lxc)7po1WavPf_I{S!+35AgISCD*MD#3@5WaGz+oDY>S* zzl36^DAJt40c-Cufs?Ay{)*Z4tv#7Hv~wT2#;<##&ZE3U8+Gx0AH9*!B8E59bljx* z5(;Z)?|5>uo1prQ_Dp` zxPiL_+MG>*!(Eeg{4N=#G+!97H-}s;v3#ji6-=Q$Bl;O#ERiByZh%*mmeeDyCBq?G zq*0x_$`y5V@2D}Nd~k@~7+FykVsXNd4Gz7i5PNPGcuqd%fMvDVceMRwr<-f?#?z?G zmx6ybntDRLdqU06n~O{FDYo+K5G4t86SApXCd+#vv$)d!jh@@sV^7(6F2mTkqF26L zsOC)NPR|CF<1mUa34&uI7RAwo9nA#a{bL|{C`d_8yB6lB^Q&OsB&DV4kjQm^Bec#n zx8(Ye*}HtlRc!q|)g>FW6CRMUeHB80J)vV;=vZr-i9O`QN@g=92C|LB9Zd!BwY^Z@ zFUzfAK7Qu~^NX;of(4S>uWL1_jC7fK8vS#>URquOWNFir@GKpnKa{fb${6;ZaS}ac zn*cX2%o{4=fRtHB9ht`te~cFdjj^oIeD22ZWlB$n+M(Pa=OVf+lZs5@bj_?}__5JP zTJxDx08y=vTp7udS8#Sy%cHb2Oe$$v*%J)Xk0u2;JpRRK1^V~}cnU5VLDJJRBoX9J zS3+bvT_bv0r`*A%YGn=Oj_AuB(2>=ngKeT( zwZpU3u>~gvcgd%xQyG|_$96lLh9dx>CQ!K9tl5=}?J6DGme;e3UoXq#QpfV03R~1}8byhFulW5p-{lzJoO$RD+1h0D zU&$sPnz=;W=iw==>ITSoh56Z)iv!CYi~43Y3XSG?K@=#gawQw-&6j27-7me@3bXRYn|_kza!bKqQUZj97T|fqH@vdyMHBz{W(V7Hi1`SW z)ArzxN&57m*peSQ%GsSFVZna>W4`Du6mYlC5 z@d>Y&{*9Hb5J*j~W|;AaQHB^%XqI!Sq1fH091@8~N^NFX#QCbQ?=AK!0zI`9xDEW+ zsI(ZoLW(leSfd#B1WhrIQ*yf2vI8zF7xhH6XtC`l%Eb?T;xXH;_MW|8O`Q8e>Ld#! z7M-75%GhR9rSeAW+4Q6rFfe@@+1DcnpVt$w1lYU&Oty_WW=naqQBp;O9X3XPY!;GECKK4KJZh<7cel_{7yF<8Xz7g0Ez zeT1YAZC>HOhz@Znw1@czL0N)fhsm5$Tu>eghAg7Myx>JM$w-4Ux@A<>M z@fZC+M*8%+Q!%&85D}la|Eh72kiu~5`ZC30`Z7^e_#eM}Q#7{!npXIq5}bb*RqiRtw`YWg- zZ2%UBCqQtxwlKFl_{$cpowt_@iAaiZCFTlo&77dD6uX$1FGENkWlx8PXpTGd75T{l zBo5bJ$Jy_k=iJAC-kx1}fmZ@$?`komzbWOXslL0h!SR7;+}$$4P?$mU@nb5kxt)N) z_2cVc!{j1rb7ASP&2r^qL+-H2&|MP2mY`K-q~(kbH?U1MGD1w| z$d~2s_W$OWixM+lNQf8}7D%l~{!P|JDYsQZvZ(O#Bsp!Zq@)o?kmSbzxgS=EuB`GR z_(IE>%0OZ?BSP4-MKO8Q$WB|M)VP?T>{wk>tHTYQkF&Uk+FBjexD4=0QAT@%sGf(J zIN0Lw4^MhZeDPP6&BV*oJRAV7J~BwSMpdf`*1Tm_cS$IZih8aijYbMGZsL?YW6>i* z$eO^6^MqbOSc4aNxH9z*S(f8f1xd#_AE8`*{e}jxECwDdY&)X@{aE^FW89gEKz!|f zhlXAABfZ9%ZFn*O_Dpb7XkMCE9N|Z^Q+5?LGj_ewqwbGL9@``$7X!%4WGun2B6viF+ z&H}mP66z8p!8zMSTJaz3j*=Y>Xz{D{NU$(#=+@ zo>b)qoLI;Js0y~}9O%|uJ)uE|*3vyUEd{%@QQ9405ZW?V^qSJvz5`V^*QmkHXx0%d zWSc!|WSfSGJ-7VgJ#0{SR8*yokY{C2-w5E0l-NiJ9;I9O@mF0%_1rDTN{^a$!iY2GWh4gkD`v+$o{Jca zu_0iZpGG$~Qe7A;P_I<1&&N&WTSHHlZDDhNXSll1Qp)vLO2Xbeh&5ABQc|HafhLAN zja^pRBD8QWNp(pthP08Ae11$Ibq+kbB#clfwk0u{Y!|l*L11QsJZe_2)R^}T!@A53Zf43F#Kdw4%HD_$Qn z>n=EI@@K5a_bodD54d9boqETajUWt-su7%CP$3|f!5M!QCszhYsz14?83Kvx+dZt| zcQ;OL3&*=fx#5>HUt86o8cQM^O=-iGN@CM(&{ z(YM1V-Tj`#GB`)(O)S7&Lte;a&lyv*E^4m{M;GxJCj89WQv%wv#9|luA|H__-w%OI z&h95A^2IA;5k$5^?K2F;Ku&4I+?;NE&Jfo@ew^hv$r1`HuCK8$GI}LO&>m*M^gFd@ z10ZR?-mw+<_f4tCsasU)uTEG@08Rd)`JDkZ1bLYg)Y}d1zgCcl1@B;oFD)D2SC0R0 zhp_**mv{eCLHxkTbeWWaCq^Im7ehHi z_SlR6?p=T=_SP=4HI8kA!9tG1d!02o^b{QJDF-X0^k9AKAlxdI_3@I!I(u-1@#M(K zMzhbz!ZUKbxd}w4Tf%yH`HDm`en;_Xx>txkK0Dc;-73zZVJg-kqMA0=I5aXQ1W5OXZb7__(js9PvuA*!t=8P z3o|plT9@AU+m2*bV#rEOl8ijW#%do{MQby1w5MM)VQe^pA zJBlwVc~t-~Aqwp&7wFBjTQgRY#L%7|fJCjKCbBu~)tB{%f+KFG=T~x#o_edi826_) zEgmIa=_#m%nW;?WwMW{7>WMzP4@55NPp~1}CG-~X8&z#NdVs3uy+SkMz8Kx`lfh}7W@3|=+j43kIf~M zg;tmW11c@W2zfEUL^(1afMJr9G1RI{nD1)sXgC`E&fUtrwgS*4&BKsTku<>R@YWre z!}402_FseJp7(!v;MI@MmTZ;cw3(rZ!2@O*RycjI(bN9nUEBgBKA-Ji4=q2jFRh_{ zA#MO_^KHr;MHNhRhghrQJr)c;v{22xI3gF<3Z5YzMkAl}I8T_X5$wn|sqmCgD%qoz zk|~1m6jhA(>oK~i&1!GN^OQChxQ$`&;)kz^K4;<|$UI!HG1hkhNVloLky)ZF$^0v= zRO96!pnJ|6ot*FAru`cC8)vkNtEB%zYQ?y=g1hHdUFD4`~F3m`ZRy~!a2s@un2?{iJgC+^ZY z1vorVDay9W;GMr<2#dd={%dyY@LEV;`*Ie*{7Oii|MUH^qrI`d)qn1f>Hm@6{?h!# zU&_D8Qq-57=R@<3Uc{k929*(#OJgv`G>|uB65!Lu!tl4l~&M zxo_%|c-!d=NuR&7w(+=CGR^(m@x1l%^7@GB`!kicZ%FwkRsswO-Jsp3Ul1S~Vpuv_ z6RP>@hq#m9t~_NZ7je^{omcFx|_$LWN;TpszG_i5~}zfgO|TvR4Xj^YND^vyi~ZCIa2SUj#5x8z9t%X}#JduXc<`;soTL z8`Ect?}_~QGRTk2`va?Cb1Nwpe(I%nF=@{*gC6|Js!6ya;<+$75}RR9Y$jSryRB#f ztHQ_)Sj@qw$M;JPkDPBJ#0EJRiLwFO3-ZNhk4apDqlLRc0@$t@mx8AjYxjs|oXQm2 z_aR;<^Q&TvF<1^vS4H%S6`$(m*+rQ`!fBs1*o3bibkZD7geF&*&)Fn8(g7!IKqZ;`;fG$ zwCaCrneD;;_3}@4#(!V9@OSe|kbMcgH~$Y|^iQhYzchdGm+~*N{zE&S!DhFgP6R!Z zY!8rtE(Db2f!qQK2Ye4Ym0!M}?}tT&o#LpqWEZ4wzkOTPNq6D~ zZ>nbI?nmv4)!ndJP59&aQiOw79KQwq&TcuP(gKP#CP244PRst?n=@Q+I0~0X`N|o~ zzGV4W{)Y?K?w||0&eD(pTA5whU@o&i46%~AyFYJoCkt#2r&W#$#h29ecQT^;*fp&= z1u3XQf>~eiwGce%^Ag)#C9?!QrUbvCG&z0qcl378e#M{4pYUz%=NFtruYR^4cy|L+ zgg7n%(b4H)#0%1?Z2EmYg<%9HQdEY@A(MKzitKDgcz~U5xVZapB_tnRxrZ~a=p<@E z_0wiA(Tf$$OYN&6rGtVZQ-#pRk#obFgr!o-eVH2-%TZTZ1ebkU?R(SjP{NiYYQf^D z<3vu_iG1F2DT8Y_Vw52AW==|-=#`%{D|2;Ibi8|9!K?aUN~h=9K!V@W?A4h;`52wR zKfWTbGPv|g*Yd{JwSyP8qqaMo=0;EKcw0n>o=zoetThM+ z&H8SALnJ8QL-joX6n#F1T3ZIC1FOCW<`0R_D)re31sZT-y0k8mFOhO+dzTQd zXx5+Xe03@JG@}BCbGS-}cetV{_%U3_e$XhK?@!;P({rdIc6iCr)p2aEa6p8tp{j)%@THDI7;Iv0S z1=tey`(W@Dq0=+vx~|^t#5b%*ZraRTE75CyM&CFKot!zzrp>a$SBgR*s&K;#$EQ4l z=Bc*#lShMKqeC2mdNZ53aFwwQU4XAXJy{M=!2IeUEl{aU@3ruuRLN3vq7K|s_W(D! zj3VUZFfqy%Aj6J8rCe^v>T%hlOYEwT0byzhU~@bOt~i(DBCadquA^WmhWQQaXp^EHlu8lRmf8i*DfBy&A~Ta{CjG7LQBg;VEu6~9 zt+yGKcz}aQ68-c9DXNC)3$B0SG7q-c?b7DMHGO65&I5?D#X=V@N;2-U`uX`<|6uUZ zZ@ib%ze5^G7pat&%L#Qeae0(NGWjWgu&SX~7Os>(nnD?pd$)(La0n~bZLADo$Yrt$ z{{X#DC0iG*P49QlM*tApi-84MXVQz>ZB(uP4WqP+{|KK($fk&S%1QNR2gR@)GOX!Zwfz14mK>kbf7k?@LB1=j0E0B@CoQNu^HOWztZPaoJEd7LQ zZ}|-cAcPE%p@W}Kodr-^7@b^D4o%ZSF>oWN|NKP!ARJL4jvA}1LnDNsfM=@=>8|Os~r%21kdI}!5pyQq3+E& zYh7s2FRd8I5$=zNB6aICxf_*`VK}b4q8ePr3+d+pTNMS6nBQ&5jAvp(~l03MGI3MHKwyu6X4|^Pd6< zF{6m(c3kv`&o|pLHRIJH$12-y`BpCkkoQnUG}UVFe&^(;gZgBJ&c8y9$8 zB1(R6clW!nD_bbL`-OY9eMp^rjd`)PqT0!h`i5lr(BB+4OpFs$#4rN$!Y_yM2 zJuiP&77GP}n1X5Bc4@uf5?F#>EaRefPe@%FrZh^p-hW0<^#})!oxcBUBP>pFGL{C- zy(}&*OIo#;O`2cY*viLRGs}7Z%3bi~A4xUBJQw5-py7*u%Md$b`>2?EfHnw~>u2)t zM`9on&Aj7DW&9PB$oM6}zXwlyE|k>|9O4lO_~Ja*4HMc z1x<3{!BZ~A|3F8LKCw4R_z0Zzc9K7WCBJXw&tu#ubPGPH>SKtDaT-Yx!|+@p_YvF{ zRU;h+fPpRGa~I~1Sd+dG3?Xj*AhBZx50`(8KmMm_OMiEt3{4#fEnii+{;NW(|1S?Q z|Iy_CxAwlOJ-|`lz|vU2&GA2dxc(9Qe;4_SzYG3FlcJR*=2sGbn)p>Rw1V2yRL6uX z6_`yX(5t`{CjfvWVtx|rww!{l&USIKsX6H`*Q0#t#ht-b=0Jp{Zd3+)=--^+V!WTY zxVVVPNl^t#zU>I5!a=@8ncfr{w42 znprC3hS|A-ak~DzZs}Ype^=^+T`%&Z#;NoY(@zyrkbdD8aGFYE$q$k>4kgV|dD%4B zdQ>l>qN%hn(QwMX=mPU1Kh#~jvMI2pfQVxv<%I=T&&cYqmHc7I#X$SU5HF&1H=bDWbi z{gLMYnm)~8y(v}#5u@if@^uFBCuEFcxb3)C_x=RKjn@ZFZ~RG@8@(H!PzLcUN=aIK z;3VCDE%c~&)0@#>j4YGZ zwKJ%eA6Y>lI613W^s2eox-q6I9+6I}y`LLVhgK zg9zNr-3Z1=Z(EU}?mpN^*C`Te5RB5rQKRd&=WK_ow(jk=mHoYD5)g$@xn6j4H`#^-CSA6pvoNjWK#0C8_s<~g z`t<{-tAbdciY+Ch);OIVTGpGHoao|}0r)>H90gmJ#nq5glSA4&5wzeLi^a*zm!Yc| zxmPOGxy^0-MNC>ULA9|MCZ!*mhsDb5(iPW6%8ysi+hBgdm)%#ImHE#?3u+@e_anX{g@@z=hwN^X2%8OYJd8GJi-i$Oowcf%^@CwPEewk+OxO!CR%1|Lu;hS5ka)}5WFXFn z5pF81%5Vgmk`kEQ^ccY$EUd(Ofz|p|V4lu;c+N8aHLow9v5NUwd}R>J&mZGU<_81- z!Cx3>%hzL%reF)k2btbc2cfjf)RVu#$|luA>hMK`khzl5C2BQP1 z*>Ch`R4dql&LqG?&K%5u*xK7|S-rx>QoW(sQoP}jfoo6T%hO|QCVTO<;u#QynA-iF zN}|8e>;Md_`6p+d!ca}%e8Dryth}vpS>c71ngBFJKsPw>9J%HHG7bJ9{%&=S{Hzb z6f0R%gd^cvUXgJ8ZIg6cvY)Ctq zz4X3|5;y_H3A7;aI~uJzJoDzVY(&+RAzczT>+cFgapkV?Eu3#T4)x}0fp|M&7ty}^=Y+>pQq<}_*d2lX zHCOfy^L7PB$U~b>Rt2orlJWNSlz3BQZQyyFTwNA(Dk7-!#`L7`{~ z-GZTnjCdx`14h*e;#c?vb?|*3MrR0gzZ5!RYk-!#ZGzp}>id zs1$)enFU1nTxanh>XcsU1jx(~8ftYWM1GO+w~+OF(|@@Sv%`czq#Dpfhf`poF0zrE z+iFY{GnawmbtuM_=CU1 zuI1btQ88eKCW*)BuwS{=qwp4(H*$;Fsa%=MRoWZ#ATTS&3Av-W_Dmt557O0R&ZNk~ zwCm95%cxg%f4kou27!KVEq^!0ur$8H$Bm9@+&C602O7jG#%RG^q-kuqCip3!;kSip z4|pMciZ~i%tc1bL9_}>JU@o#r zWWf-`6Vk)<#Wf?OgG3L6wqk|NI&!YK?xY`U91v_;O}&~6VmCF2m*>NF1C1`C1)lct z{%b9ib+4bhMFIjs`jVUde_VL|b4&OiyQRM*fAN>_FRC=a^^_JDc}U&TSkpSFelWmE zi{-=DWAG7)#hM5sfZ^edSiT-H!qw=Pr_RW%~dhKZfem0K;Y zEzvABt5i5QG&L>Jbn~8lX1#B9Ob{i&-TZ8O?)sJKG37GF{hZ0k^LiBk3qQ-{EomAP z63iwFAsDU&t3Bn$aqKZN2(o&TM!+4!z@iKhDSaQSABF5z8rO-FJ;hk4Of@LZaBc)h z602DFQng8G9L|-G5ImOna(P1JPzX^t@k|O9aY?$HNXjNPmUCzC|h=W;nJa{vWlI)=Wfhog*eYBT%j67A*YFbM3tyhepw-*&Y9xI zS?lx8l7`hD>6}|Fxrc#$ZB;$ygV7z}EILVv`$q21jv2d(wF#e9fP=A< z`Tzya`D>$tGvxW^r|>Fn{2oG@YuQwa+l&35+7RA8+{ITzoV9*jmwRM_;Uw!nfnvAf zS-eH}C23>HIhc%wM{9D^GK}r`SfOvt&ly!7`6lZyx^!kwjObaV{Z=1cVgr$M$ZL@K z`tz)|I&^#I%xPL5d0jk=6AQHjaOPm?vnScXYD_cRa9|>nwlmAyc!Z^lJ6XOQCm#&~$P&Z8$j-Q3SQgfE={+vZOJ7HgHE?a4B)}cUEwT`eJ zSe!ijakTc4q$V|Rs|T(wCE|^&2NFU9j0W2;w*IIY4Rh!kk~^;sD7=1vSHmL>TM zv0;FL5MKI)KD?#5BFd>@fq~{rrfQTAB^3fLMy4V_W`dVOx90@rznc0|8k!@pM)#^e z{Ex;~dYlfCSS&xtt=x-FKvacRP*buK#8Qu zVC2{pN9usNpAr24;Xqk&4?3Az&n7*_?}1hluExvRjdwZ z#%&0L8;42%nt#6Z+MWBZ)PdmK)mZKx54O&rQd~f&!mFprq-e~MZg{!X00~-AiR^BT zi@T^?ck(1hbz&3s__XI6HL+gJfe{EilwQusk4V~={xf}RlCWeTd!a(cOayO)=@dGR zp$<{;ww06dujK=2*mQUvonSE2jPOF9zCV3aT*fs+=%qpe4>Tx9AAN5u%XSmKW2Jz zXzJd;YNSVl{(hU#S$TQMwks{7{Mm;IB#N(fB>kY1n*k=Ug)4e>HUUYigg>1mx?TMa z;InEtz6>L4E@kk*XrPDb){GkV{BG&*DJIq?b#UP{F-};QQ@!Lc=F6Y`*3s-CII&zK z91o3Db`WZhTJ$Nwb|D_0M5LJPlVVsusJ}1qb;aYQJsMvJJj!#W$gq8HK80Q7Tas~C zth0OOE1X85lD+MAri+bbS}txw(KzGf8QWn)OjNX4R9>g`$0j&=qw1*#kWPh6eNHMZ zV4e&&W#cVDZ=attCOu;d7I9$j4oZRinOVcGE9GsZ1mg&xABj^Zjz{@HpdxCZ2EEfh z2`j`AK>m@xuFRA)v-72Rg#S*a2t_}wpbl?j~UEtff^Y%le|*6le& zAi!3}u*4Z^S4GE9UeA#kDFaS?G>a(zEt}9~w65)Ep*nY0DxGR#VT2QBU!FF_0KXc< zdpH}Pj3me$0z=hL$sqn?3q8@Yh;>1J2LW2+nyf@LMa2Qx8)G8(s?Oh}UCZFN2BWJc z-?UQu@-|QX`C-Sb4q${dF6hW<;Yo=Iq8R7UEez&PcKX06xw^7(u)4U+lm-q^lX@K4Xmeo54}nNHLJUJGo!8UGT%j|eCSm?&`s6z{h5Cd4 zIg%?oR|55io|m%u12JH0CkNvJGZnj&XwYU5$Y+R`^~BhHap(Bp9`!e6me1sZZRV7$ z+3&+2FQmL!>`X zIXN}|$m<+lp+xPwbwS{Q2{KX`u@uE@-NYjpp5rlhQ3(|dB0 z1~?ihBZ9ej@iT5;Bu}B8??e2xa40h+%!i{OW0`;sBmKl~k`R8wIltKlm`8ah7uzfK z$Lf_HF^y=LLgrc_|=m6r<=IQ;aC@7@_573uzrCznX3#7(z(YoB% z>{PaRHPG)X(JTz|lrpXXTwF2aW_EIc0L)I8qxS<_->uRPHkjbs_{1hW<4H?jQ#z9f zBg}^PJBw5;sTl(Tc=a|)Y;{tYI7r|Mwvfi~m20E!=nc`{aO?z<4jVvD6#tslS zkcYF;Fvs*!>;oXP#0`ok!V%&180+Vs*;vE@`~DdCnabPi557gO-NjF2Pq*<_UdJn- z6mwety|nm1G3AXijCneqju!!~N4db;Rs9q*b-*F~{yc;eqkgTxYBEheFzW` zV(NRS3h5S|OxDh>(E&0cDV$WhvKIY2{fBfT;`4@3AVn6D^F|R5(cRl57);dm=BqYlNYs3JvuuhSGf z#U`5+BkmC2sy`L8f?Q$}lbi!?(z5YTSw0!1ObJtaN44e1epT5`d+pJJetG3%`<`RE zbFS@@8TBQI;Iab!3QfS{bbwuR9~Y%7Y(s<_DO{rrv&2*nX*On5{|qam$~3AK`z`@GNn3Xrv?O+ z&g8kjYy0wIsd{{hdlTEFwWG%-fr~t}Noyw!akEF{N`qefk1Qm9%%YV>;7V5COAx(Q z^hz2K#_^MNi38&?*JMrtS{EUm>PTk6rmm_9c@2V&VvTKi0@fZGAy=0^wFvv@xk{xv z+=5}Ny6vEuzI79_s&ZsuC&Ogc3WICusW7EIgIv(fEhr1vh>4$5A>ef0|Hl2&L3zx z#We09Iw#5;Io>%&&>7ffESxiz#iS>{#xR!VpA(r6X3XEZ7(U!x%SmVFkn!3IJHK1_ zvS(J?S&zYchi5m-yMcJ^Wj8Nk7tg23vCtJ6FdY9%gstIK)jIBY2gqbSsL#XBqhmCw zfC(8lA^XcwB>j*ZotX$|AbNwTwO<&`L*Mk?i*X7Hs7&g-hF3V2ifcMuy@^f}Ce0rWce-Zdd zEA0Fpl&gH@9M6aqSuWcI9- zrq;{SKW1ccsduo&i(6-QJ@X3u*vFWScbcn|bTk{J_zUY-zVL$W*`)SBW^$W<@Z_ zSOfzuLpe;sQx3n)v4c4U=7!TL+XtH5!ZF{`h$4eZ*98FG?1nBCDfKps_oif4&ex>h zUR&L^&hJd=)GpS}MAviei7PCZ`aCG0#%*6^6M^4~I-+|gT| z_GB*{SpDbZF*d&at3OR0JmzLATpG1xyZZ+TMQg(U@cA^x=&%@L6(MB(Neszb9zwQU zH|y<6{2I`Q)yrcI$-*gIixnr(Aaq9_*Ia^nY8~nbMBoLTeTeCZF`OWjei_QN4u6_B zOW>9yhJFWGGdWvgNy?_^Sk;?Rvo71V*`zm_!;cBGghO)Rf(f&RfWDAm-yGdjjXSjZ zMuPR;QW}a2Y#6hX$$dtb9HCsZ-#02}fj~9YsE#z`IHs02zr90#5@i>6g&p;<4~X;b z=YNyHJT1BVAn00Ol;e>Z6_1kb~?5-u`{u4+nU(6 zZQGffx#v{9r`|gC-Mgy0x~i-9?jK#xQ@i(GYcF6IK_Q=6!!;<$VS`W7T3=`l0onOi zEccu5!b|rOQt8q_SJJP9BcU$4dS2je_7?qf{^->5rh1k4v8Gb~MnxOJFQqQ0c#$9v z_(p|8Mkul@u)y6DpZ61)_Y<18OHlR0GG1QpNRrbqv;%f*Kv+LJWdQ&smgEl2VDc$Tp1Ws zVi41-Gdgiu&)TwVHmGk>E&0bWl|5SH2!cnmH(ay&xG*CI*5TaFo%jURxG-{LY_TqG z*2JEx$?kQGCT_{f2`%@g5l0sVdo?;kpEVaR{UIrQjFyl1oU%U*QK2a?J!pLG*bff# zdb9b{T7>p$SXvf7qVZ0b(BJUF=y%-aP<-de15-n;K`Os{*d21*pHTZ(40e9Ol%GCjsM3|O z0cV`LA+ibF@8bU)*3$T zvKj*v`DKfIRR+Uzu|azafu)~4t#vkOdhEA}ztCdkckP%!$HBOlx-YPfrUDd^tqVB< zl^FHVE$P4|P+~25X_j6nGnw%G^wtVA7Y>bzthEa9lib*)(snbkr-;e+V?s0!Fo`Eo zEW!%3MG)GtLcWdzSYZtm`XR-!+B0U4sGA!`t&Z$dh<@YG{1y}damP7kbtZDH3{6Le z4Rkq*Fz0E%M2@rK{Q9Ds#kwJ8~$BkZi8uImG&wONqP(b(!w|${P#Eq*|f5Fw_(V72p{U;@zEm# ze<)O-z4%87YT+ekAn4nAq;3WJz2K?d%atgPK0`__F33~bAwjDthbo}E^8nti^Dg0x zaC4Y7P3j+jm1?OQ51o(05Pu>|MzG@b156NmIg#X8A(?eCOt3K=!qdaz2#9fV)jSH~ zD?f&QN9}6zqjhQa%xZE^hlWYKk$g(dCbaAQjBs6ew47g2hBF>MH>NmC=R?H+dcfOR zNbs>>`}1@HU}l?m;&Wz=OtTTZyjMg^=Q=Ei2^$7-#ufBHjus_(Klz9{p%C%~?cWyC z5{&))FBWLp@{bhf?}H=pExn=mAC8=`lga-QcmC(R{R{brf8qa-q^9kJVv6a@F6(qQ z#}e0YxYCHE6d4e&^)o|7d7hQMNI`I%eX~${UUt=*)4dNRLeFd8eV2@b5ri8AEA4g( z%MYc1f7?v51whTl;_>{x^|^J-$7k35@%Vi02ZT9<0DRG(1mt;R2*k{fY$Rk|1Dyw1 zM=2^7Mnt9fqH=^&L|%ATm2<|pmS*4X z_tKD)a==#1K{A@IdSqPEIa*V`_|Ta2s*uedH5gCtWgKBh!ZBcB9xK!w_UDYEPngHaJ-Z(JoHup*rb@--@cn8wx2Zn+u6Xnkuc~2@%zs5v;gH82Xxv zDJKb&c-C{Nt?BBRL7a>Q=o-@}2L}g#NKt5UxS%AOjeA{bsZCwDbIh4E0a{*CPeaNo zj{#H>Bi5RXx?P(42=^*Us!$St3k>Ayo0jSJ!9*~tMFyoSB8sIUL*xIF^b#HyNbZgn z34^4>=Pw3&TX&ogiPuAUG>F?bvL!YiEpWustR+a>Dk6;}Q;W-0HC1=%MWFl;8zRC@ zcEC}@BG^a4%7JDI?%g9R2PSfJdnaZ9vDKPIC{7^20{WV_k@((#@TDCrP3n~v-d}B--;V{a%W_I;_CPN<UkgR zQEo4-5%xdgZt7)9duRg8L5(r(vZdb(LUi^RM#-j>mVf*1zWW=nx2+o9HZq*RdzPQ@ zUc$V62z0KJ|+gx{$P|GL6xwL*iSn8V@f+*04oAJ9$Ect{Nq}y z_rZxW{)tl7@vvF#+Ubx;ilHtZ-K|nI+qh>PsX0e)?kN=?{V(4uz$+yCmD)4MsHF7Q zL1`~7TyYCCBs){<&%g;a@ETU8R${P$$K65}w$21>*3KGiR&#cMI|ZAC`|0-+gxx~U zW}(&@gGpchkE(R8m-_P+_0va4S1b-Pr?AIp{?wu0|4~2vWBOI^b9)lFRaVe&4%qO-;Vgd zFYn77K(+-7G1E-tL@9#&;gGP8nDh2D;jFe4_7veAttGqTpxsi$Wgq)5+~H6%mZ@|0 z`u!kq^RO6d<-v=6Ms17@8hSc<@3zggN*Ttj8op+>86l=?I74^E=NI2@ZaF3=h)F?Lh=LlzS74YGu)5tg z*^JZa-4eijX%|>7jj~YMBM?EFu4lzfmhHkGeWFZlRJ`C_w7C68N>^Bqvh&Strq*3I zZPU?n#$=EbOsXxyq~ww|ug5sBB7YH{Z0f8gU?MTv)ZN6Cx#@)l&dXQ)=RybQMCy-T zY_lpNMKx$t^_t>@G3Xg#aa$UVyoyn`lzVXoww5x_x#|0Fl#K#7oKH`ZjpH{C+Q;=@ z`p61of!B3f2HLIKy{KSwfA_(f0f2^Efq&mUvOK_05In@CR0F(Zhm$sG%*;-dy?ZPznZ+`{D`|w(lDXN;Gh2FPA58bS;N@#yRsD`_wg?=@ z8m?=VoOH`k8b^7&%3Ae{G%Q~_;vr}qnK^$LmA2u+AEtX7D?APCpDA%ok#lI=CvG2| z6G<0R`YiGVf5+3ZCa61!EtHs%o^Jlb^GjMthxGOL7*XyQ;|o&0kUardkI1u?=+fM* z$iPpZ@E1D^FE4x0B=M+hv4G5idtM=W&|1Y>X;4orb>W$DLow*XlH9v}DSVWbKZ>5J z9rZ(@2zhuPB`2odd25!s{xKD#D6LOKsXp>)`)BwxMJTiC7Jq@WYT|UH-EfIj*M>o9 zdivV#MtGv4I|t0)N7SB}G_dI6Omj_7iKNw&9#o`brI9QkaUY)eA$rtD z#a+{D4vjKPc2mXAo6yAD{F)-GR}HHqds{5qmHQJZ_j;Fj$Xz8G#Jo{}8#o{nM2Qc* zBsysZ9o{ojv3ulYNhqvDqESr5BYiAIxviX6HzPrO(;yHy3k$)5_4;2sna#!3(EmUJ z0aarG0Wtl5-X#B9>L_AoYX&g?&$aR|_#gfy`iCO*S3i_xq`%b+t9L(!df5$7KnH}9 z@eY*c&}AU+kZS9`-OQpTwan>i4hPS58?;`3UKiTL;7i69$_i&R0}}8H!LUt`(}Nyt zJ-3gy=j6>@m*XpS4XIv*3O1k3y6=7Nk0vvG&i!h-;SB`7&WC}$%b^kWeW8aDPpt9e2dwhFC8SX|>UJfPkeIufKCgk-EZ&@SFHF&k7VP47+ z^zV0Z_`T<2tK7ShxA*?qHMsv8jPzyQ;i>%6Mc+2Q^+Ctb>>SvGxY!Bh*SXtw)p^>7 z_8pkgH*-i5ix`BCw4&8Byrqsjr}drKV!uklM#iIVKOagQUCQwRVn#Qv)EU?fNmWt$&W{Q2q66DE`$xV$#(^UY4&HAyDXQd{T zA6Kx+X)MsQ?Ibk?Z1C;QHd^6skT+afKl;R!PHuX6TB#a5f_RVY%%+~J?3oKPKX6r%p-q2^&O0kRPO18+eXy_(n6R`pSjsx<&9*xWBi1@F znG2GV(TK*E;rx&@z1%Qy^weVS)9K+(m|QmZyXu5bN6pG%g2Xe?7@Qkzm0eoFy+00Cj)n|& zvRF;ln|0@ zNhgs7#u6q$w>xHBkYrxVF~B@&YTag7BB5@6c3m3`wnaYlQ9BPi)jhc{@wOzZ3(*Iu z=N+?QRJ>m%73*O7smNn9z2XNmtX1K2HN=jWg$1_m_Gb|L20VwmGepWcL$y90VPqf( zpxv@O)IUv&MH$HqFx*HZJ@2H3>F+M9B(og0D=$-Zu_D>kZ9&RKa)t{bx$W^0Pwf~J zUl|kCh3yg%_>%0kynwK=fr&jfXOk%}6(5xC$FmQPZ>I7PKE>C~7Dk8WZv-z!8fPazqn%M$=(frn7y@fVSM)CZ z>jZEcpI1_1b9!(+xK61Q?-^ywSV$y08$L#5>D6^^e72q*5Im5{16Akg-|W{dK#BYM z>a7ls+Z`D_nc2A+8JM}*v9NQKcivk$&9+GN>@<+u_O<(k=b~0{-Jmtv3$RpgwQr39 zDpQG%U?y|;<*f}zGbowaI4geHy@=;~U7b&zRm%Sns`Ynqeir|slp-5qvUz739N?QR zhk0mPEAX6I`8uQF(}IvaR6?W-j4fSsrfD&}IVeqknVc2g(f^BSGWxJUdvE`pa|Th8Rki8<_2> zD8>CJMByAdXa+4&N9@#e{DyHfnicNNm0=h^Y$dYeq-u-(57GvlhP(t45$CUS_DQA- z-O^mQon!?IFjLc-Jnzm2XzF~b7y6=Jn?q3(f2=Z6oJ@h=UAf7=c3N-GtudD87@;L&d4j3_WiP|Y} z!R6;s135yq)|E<|Jr+XNYz1WuMWAtp^@4Ja)M`(SRtH%NJR|TachDZ1f4#6GMe?E2 zn4#AK&rhV|nSHPZDIc^lO!lnqT1>;uYxEoz6qfbn;S_1MuV+?utwW_UEV!ew<;iS( zF4+^za>t?J>!$}zk6~^pw5#IP);_`~hU$q=4rbCtnb{b&fsoi^xkbft%TS9%)2#3w zgpk6ql*&(Oxy_%ufo|Ip!_4&yqu4e(_pdx6JSxbjfmlT(_)9ZCTqn?2ntU zWkLAO8A@}c!$jXXN8;Ed&n)m-FuxkIwv*yDnr_*>+1dGkx%}7?{bX73z=PXgu5DrK%FwvJVIhyartC3;Ui*_$yH+&Zr~uD-%7!g#{RpR(FSskk z2`H!NFN`Kd>l$!nFGyn?y9`H`RkaH7HX=_AQR`81twT1+c#Sy{%KSiObM|jbN-F+L zdP=g>0HrtNCG^DOO|T;JzOGW^jjMrD;)Qf!>8ohuk^1VN+R8lVrg+p7>D)%g=pz~& z#WPy|F0NaM@n_KsYP`sg=hbLPb9lj3VOqX5?iVx@>HP7XmHok*^KQu)_fLJ5*Y`0y z9TBlRSa$gDFhbP56tu6BQl9h`WQk80H#%Zyz7l_XYD(Y!4$njr_a_W1!zQ$wojv-fda1HtE~yNs@ZyJH#QRu! z;JcB%A~)HdyyyiR3cGPu)?+pe#pUVN z*pphib{4Yz)~roWv)%a_3|bM@EK%xs(@@Wtb489BL?rKa7L+XI`?sDCUqKKdE_+Ia zxo^#f%~gNGKYbZdvbp&}viz2uKbS*$h6Vgo&-354?c7lF$_+_vpjFo|pKJBmvf*U3 zc)0dmHC8*Su|1|F%EXSu2Q#lEeoX=rRp$HP$_R$JL?`y)`=21mB3Fh;kd#x=<6Fc=bhCFHWsWx^of=>jY-0uT}#VEWQa202$c~vUr%~TU2lRx^@*(7E#pXo z+7V0aL)NF#6Uny6g#O=MfJ=TzvtuYAp!9De6#4(p+FjJp+0fkaKkG{VS8w3I-u-XE z*1y#M@b7E>p-KbB9d!}yOFn+mgaZXd_{S=w3aQ1sP}Y5+H2=WlLJ`b4!-esNNanDllWkz+{#*8jXVzi*Kb%&lOrWgK7~gPG)W>!mc1M zkK-+F-&QNx&&E?G)4i8Gz?o9zI1ToB5Dj(Wu2y`h;Wg%aI4{KkF8GD}+CN^KY0vq* zcX{eNC{Zx>JMeV^uAwfJe);IfqgIAg{!lKBIuCyZ?^OX?NiAE#8sh`q&8k zp+h#l=y;4F{45QI6QtV`V0GY81%Xnl$e6J)alyT+%P;%-mlY4V!% z$M$~5b%SW!toKXnWt*ybGbw!AAQHEQx>Y;-8PX(!771ykVy6ZF!LTC$5BiEEihi!o zaI+qc1vT3^sOcydpKzuv$hl(@5<`|EaS_W*^JmLtlj*ltH|kuVX$8Z{0?%XpYvdu5 zL_?FBv{g+6u{qPJHHpcJIkFrbzxW!JG!#J9OpwB48H=c^yP-?7C0&$G*f#5QIY63i z{I?TqD!C_oqw43!m39riJ}IMT?+=hkJL zNf2uv7~h?>kn0@!#6#sTxaVnz`cZL-1kC8?Bh9IKw6&Zg?MnCZcKrPv0`A@b}iVRpq!p$R|%2xgQ9Zfp!OW2kO=%job!+wRGMP1M-UDEGR+W4CYMO)^JzA zv_h3tq2IE;?0W(rPAWhpArpIOwkoD>tqE7}XBS2ID)k#T(}D&e=jZD;W(3 zGl`KD9nh!L6n}-PB<{v-eYiA8+3Bl8-#hOh`_k*3`l`2!PU+yeaX1- zz^Xwc$FCDs?TlC!JzrMs{KX+gjnYFVp6%=`R&0c|Wu{Lq?}Zlau5Hp;u&2xPa_ufZ z`2G?afgrjT>aNx+p!xwrP__~pi}s;C=m&ZqPWyhVA5$8}mAj|>%iBMYn%`Ig$(|fS zpDZ6WNlEN{7V1p0h}D(7tyaCrSxIH=Pr?RtOj!r@f!ZhuvgKbpUClfhVN+&Tv`NGD zxewPwq0CJMi;u~;6inWYfw=NC`?q6D!XT6wm6uRGNu{%(I>~B8sn|R~>crvs)uCLr`P2oPc=_NY+ga~8+bEj-Y)x}Kj3~Zj%R)sDukcSXKuSY;OUx0X?)RN(TP=mqP3@O#3|3l{sioRM&i^@q~1 zTqfg(&bVmKD~{Dz7wM~xh<>elabm)7HZ`eHxxfz^#9B4dk&t@C>+|BC9W-@*l{Zc? zCdkpraoWg8vIlB#m&78X51C5&33wL*q^>gJ%<|&w^WEh#(DnZGXEeFy*3K7fN{dgM z460zki)u>FtcS)s%^cU=lc70Ru%pf_+sC}JWmCgtNL%h9d2mymUzgWSJc*=FcCM{~ zlCkZnaE(FMK@-tw*rm=2#UFPX?IySn;bsBR7NlUY=Lg2oSTy2P>Wk|L2+KMMn+;c6 zYv#u=5f3_422UwV=H_o+z^*FsH<75CHzVB*-|?skrp;lapXLFTFzsu@(ri^0ykLcz z-Sr*ax22omsp^j(NiMSs-_g(KPpBfPnl`(Ex}35aBP6heVbP`j>J67JZ;F=9NUJQ4 z5l+ke1+HOi&kV{1)c}#kwf!rI37Bsp00bnEeEN^8xqHwn*{(GF{A-6NyMJQlk2H&4 znYd{VSn*>$&?*56gB=aO`}_pWBv08DBmoRc&5&3}H|bL;g6ak7&&K)73V~XGR-t%? zjPZ{o(u(MUV5pUOThPijDQVjvP=&Mzbb@S6t_0ui^e8_S?T3DN$VLC@0>&aka&H#h zO?y;+|5K37P?Z>`8O0UjO@CJ;F}uo=sAQ)F%GLd#WakN5Ks++3&TimRwgbk@9ngs{ z^VrsP1vz9rxN^>93jv)xKD!<%oHKkL_jx@+pPBw+cdVsn!N*=5;m$jP!v|wS(L-u%q4w!F_a~> zGKl2n5Z~mLIV+2!!4GB*amZ6A%9~Y@!)5@WA=3e1knmyPqnDRsoWkRlV-9F%%C7D; zX-A(wq_^oib>ugvAioi__Qp$`JUEX}*>$Y?u2bzDKO zg~(#K)(y4JjI0qh)DO93tK4}z)QVE4y`Jiqs$Lkq7*(BV%^v3>pS)?9uxy70 zKEd4_bjH$3jfAO^X@vLKM=+=iXr9(shXo4>xPL7)XbQ*;a19OwyBThKr6O;zxJM~G zz!!K`M!nA?`3rQ1szca#HP8r6dlS0dD#cIWKX&e0cqP%Rv(>iR$#|hr!aWIK|5Lh= zhV;^&SNKRs_h?%Pf32S1219kWIuIrYu^H_2qB&AL)h9C{22XKwr~%2~HtJQ!0{0i> zKWv?U(ZbAfSE5|Jk?i|5{Q0=P%H|@PGK1>L02!Jq%PHv;O+BBy^6BOG6Uj zLJ1L@j|lzN{_~TbFg_?1lu@HRVL}@7r&%8^?wS!_DTfvsn@SZrTd4(-i|}N#(Rx#d z>++_}v-M?l)#Z}zvweqaM?LlXYxnb!DRUaukHgrHt@p|6=dSCN76HG{4$;QcP?fRV zze)g(PqnRm?m63KMQl2}yKR>;<6f){D0jAYqYp^sZnkdh+Y10u7PIF|=eRH=`k9MdVrNj2|G z(=PIl54gm3%b?|z%M$s)rFC*0iR4ofh&9dp$+|_i%*KT3`clT6lKUDOEU=~(-K%+z z%NhfY$CZf3e`rdXQU&Vh(95WgtP8(ZDb3I+y)Y+Pden_cyO+_9i*6i3*C+r$Y7+J7 zF@CGoSE9GFQS0}r*6UF9R3#N@?P4csdBlu0=}?57oASsfyVUE}+<+%>w+ii6sI(`m zx4Rec;;7p0nGv-~Hq!-MSSkuu(ApSfO@npoCQm}!DSFW87ubhN@pxoJ)}XyGw7Pc) z`pph5Q+apw*%qJT)WDw`c1__qK7(%fH1TZk=WKPXVmP~<%V>eP{#w&>V=RS8(~*6= zTy$ByT$E|R?)s9-!H2%AxnMS=rduKBJ9q-xv@Fhiv(h@VT0cLpwz{?`vojvE+Bn_X zufA}3_oQAI2Ck`rXkqU7@IQw>#V6kyO8n*1(h>?-)xhp>g=tBGN~>o3<8MEQyUT%i z_vX{fZ8x*IN>j?R#)9556Dc;Y0q-`qsI zy8^CQ1@4+An5*E+_QwaEPD!L?Y=TEkg42*eJjea5RRd|g?e?e%Zjuf%T>?e%_a7F9@-?(QR)x zvVI63V!c#CDn7Ij7bK%ZO$Y3k!%-R=iV)%-OmZT7xpaL#_dW>hAau$R$E52i=lS!u zaT}gZZCryHU*j^t%Hj^p=`UNi<25X~UAsep2xJ)M(bAUYU&5T)~F?_!(j*9-~(860Ve%BrYMMQFu(+N8-D4yX@}s z(|BHbFK}y#u>QHxB(ydy3pW7TjYz=#LmOlZF_l(Y0hiX5Jy;~`t9Du$?DJ zrr&IlxPE-zAIq#0r8Pat_B>Bkk!mvvz4iEX0XLNnUy+cEI4~l>{-re2YX;@#6oIq~+Z4==UE)zHMfc0tH z(D2j1x8bxjik+FxwxUa6CQ;}f$kE@cIN3pxH^jZZ6p_hlrii8LCsJwII{)OpM2k6F z!Uzn$pUs1h?RpUTTe>D_8x3gz1g6ZgQ3w?T7gi7DL_vVe#N_fEoUHr+0@{mN!67t<_too>cFCiI9>Z032nXn01; z>3EphBL62#XA&PMx_K@y{f*+l`i;CU+*x1Ri(}tt_<4W9jfz`acuL#_&H=;MS549v6TF;0FV?N`_k%6P#%&U&8QiN& z8=>pSohG};%Ae}@61KfsyI;P3KwZqdlsn1VPcFq}va`)CE5`_E>uzk=sJ0NNnwl|| z&N5puvoNWl$P04CA@}tYnW#?r;uNQ7!Ff$MuhQ6lX$WDrzInH@A866t65Go!W}bv& z!zaYSB;8=Y?60izXFFg+Q`1Q!Exl=E##?@o5};~#PwFqexUOyyjc0kM47rW3^T7t< z$G5z{_?GfF;h#Mdp0mAueq#GY69~dDef!=0-0vq|PdN=KrNBI^ikZrK{N*n|DCd#D zcvm|VdsBdoaDx=xGZjk|ZS~P=e-lKzy+gs~8_^Sv%HQo>d7~JegHE5lYd#nVet3yF zAHa0u;@N@&pCFh4@xo=n;)`Dc<>kfa38aXMf7`#u-!Oz4s&J=n=qlq0zyfR%jBX`hA?S?X+vJObd1 zQ(zCOdcjKreg^Mp#nQDHJ|N?yjM}$SgS0rxGY)z$xQ9R(nczn)`OzfiPyRr-ibFuc z{yOoa(j&0SGnON)l186EC2Rp1Z^XQ$v}g7dl#uUjgd+rSo1-jV?jbY>g%|=Flm5x{ zEWtrm08y&~@;u>m1LGR#X_57PUPb{2AkrHLtoU^jO;1b9+={m=q)GN>zq6TeAu;)k zeI@(ES*71RPAP;PH#Ln?eTZ32CopY3_4Mg(f}^IT;7-a8#*@9jEfqy6AFR`WyT;eA z*-FhIoJpZFHSUG4;N5Bg53N80n8fu5`S=z$9uGc>)%iTeN0_ha$%>AuB7uwr{*&k? z5?C!RIVGER`e{V!$Qeui6G9g0)b)kq3k7ULA6gvZJ+5%b<`;b<*A2pahJQKDrX0L> zp2f%{j}d0IJyS*_y=#KR$uX6#!;|5#DhZPun5DG1sQM(K9VoEjVy8FPanW$%lzxzr zW3}jfe&sGt_?~uc@iU}KZCgzZ2a`b=$^@FEMoFe*9H>Em&vlpf%xGuTC=SHR86Ln3 ziqE&VE6?#a8>R?qhn}H+(z)ny8cHq|m+IU2!7NLeb63N#OgSByDh zUFL2MpyoPLC+-GA$~Wq|FO9SYm}f^xi?+=dQVjY6UlqI$yrEsN|3rY!? z{Dw$1MdTQ5pd3A~HCD_GGLL%S94xujE!Bdv!qlnB*#ca0^ILz+RP1=iiI3{HH8LCK zN~A0&j#sygJNT1#+BwkZT%49O`aYF8{mvAx>=_h}Tga`Ka?}OA_LB(IZUge47V@B; z*sGQu46U1~gu=mo+vr~|Yqk0X5VR}jv@7v*>Qp?!Tp+9{cBe?`jDnVcAjjC9TWVQc ze>vFE%uu*&~m)yn62az7GqTDV~0rTuK8`9 zd+REx;@ac#m_I3qaiMABV1&X-5qJbPiV-L}cA0_G<%j~Esea1^gvZP*!$G7QvM}`< z32)&S4EOE@lCM`m^BLAY!9_NKj{_Q{#>Zs2N`}WhM51ENR!Qpx_ayguBeV1Eu=zbx zW3(*R>B5`ln15B*F?lMyH@+Av<1dqOALbp&9-JD=T zPw#Lf^fjOdQvj#L9Ou^)C_OQvxg1Pl=1Xr;#$K6?RsZ3V8N~BQfuE(Fj{%!PX`W68 z??iCF3I!$z0w%~OR;U4@+qEtW-#)UAn_MN%Xb?j;za!VO$1WCq8XFy&>^=D6=F!86 z&FR;Nn7*uW8rrRqsPn?!!yg=FxtTWKtr`AS)ZoeN);R4SdIL7TxKqdUj|cXBE`NNu zFedfHo9wj{FHy`-QsZfwA_=)p(E3dx^1g>!T&x6EUllG->z0AA>cW z(H2x$xLm8n>DlsU*JQU^Zz+XeU!{lF!ZeeD?*YNCK#f7;X>~|?dPM9Rhn1A}>2vB) z11|xJ^mjS?HAHUW+5O0}S}G0mW}2rJbl%D+8@+QA`C6*ku=C zlCgD`yrMNfKCQrwiXoSXxJ~nqJ=`O(TL`UGSbJ0IrSOonIDekwsm@rL2BFir$+`0X zx@z(cqsJjkX|VjwZ0D4X$NRn;1w8g+W3MU@$O+q^EwGS1r59GZ1wPwHvXL?F3{a2< zvD=FEny>;E!$OtNKpD!GKGMb-PBB*mOLI#~z3;6R_NkODPSfVU!F+~Po>$~l)BIjdSVjOxw7wc=Ot>ttbu8lVNK^eVQLNeS; zW&M1kb&_(X9oIZSYnHTz=1|op#Axh*!uDIppp)nsG?z78r^zPR_qHwI(+(Ag?Z}T z){#znlXTNn)I9Y4v!YuFlGf^>V5-wJ1U{sBG9EYxF42a(8D^!{fcm!h;#=bM$&^`M zJ=kFlVYJT7B8PDnfV;#vX9odeykf&V_|ML^M>XQD>82tT5=R^*L zpql(;50b8a*#{QeV*R~W;Fg(CZ#JL4st2r=Thy(Idk+|f0VgUu7F^l@(zxh9Z@|=V_)4|lWx(LyP!`gh2hO2AaqOUv%1`VB>bK#Qaa{dE<_jPr1w#AV zPXbSS*|9vBDra)0C*Io1X_oiLCAxl_5b)qNx-Y07N* zSs$KcP?>L;C+5w_qrRQXOYTnt_#6Gub>V$KaDx0j21b0%DKBZ6jgCsUO*LM%E0w47 z9i%|-xXPifJ~lN;7nzRF)@IvIt`&br>5STGf<5AiDxU+j`_C_|fy!HntgxzQ=05>b z;}$Q)C`sODIMjkUu!)ZFPt~LNYcdIfiH9ZOxHU*Q9Ae`p=P-V|Ck2@+w;^Q?UA8-t zaBt^B9gSxc!Yi11uzJ#^i}f!c6=6jm5v`dKCL8g58*`<1|8C(E)~DqWTi$huuO7xG z;uyQZX|~E}yXJ0vdYoy`xNA!=bHI>U4%b^Q-`D!9BT$hrunxi046 z6hv?e%kIDT*ple)+_s;Dn`sCUx+{5LX%*p*IO(v5g{TtS`fS@JcFVoU=&_MN=ly|^ zO#2d(1-4z6Nqt6pROQ#my)sznD;|mVMuBNhckvRgQYq|opTJU2rGC;S5BT*u@0Aml zGbTWYB2# ziD{g5>Ep~vZi{CR58{Ret(^jUU0UTawaZ}K1?B+zlJv+xHmc&MNecC)tJzXV^^3u_RvrvCmH-?9?0@f!=_yZgoV zKW`QLzxLApn|Jvy$v^zR3BO7QJdV zyi`RQ-fEoWDDGDhxYAg+Q`p{{zCLT3p7gw~?=Q|{{i4IzBOEBAXZ$b{#CzO?JNp*@ zI?Vhhgxe2wI0I*DiYCK(#HI5)P(A zZJ;>P*P9uIIMJbOgNPclG@eEk-T~N{?qG}`$1Yb8qw8UMe zS-Jn_sb*zT_iONwmc70;U@(c6z0MsZvO>e!%z-V^3NzPV3??9Rgzw94^3ZzvZ%8sGZiS~XCJZf2$6^|=K%%95@Q zNu3b!u3}c9Rq}WKTfv*}B+5gSm5`88OKzVTU#Ub3HjD*8OO+tpqUJ6m~7 z$f8e`nfd$~zYvU;NWTXCp)Fsj%it3nz%Yj!RZuz!CjtCzp?1op!a>Nn1|O*rV2jce z5^a4N77@(CP&5l;*f?40;_BJKBmIOqC}u2D?0cz zUfJj5>AmI*xtUXcGPyEIF1Q2^p9qK5m&H7KNc1$#iBx!Kf3i7?D?&tF%47c_iR%vvX=(LYe38Tr*EJ_Q9eqYzYrqqAur;ecUK; zf~)%)!VB9xH7V%@e=bGT7VHVGo3MjB_z|-B<26Tf8$%^H$-c!EeCX48zm|!YOr$}t zx&(_eZHOa<)LH4#qTTEoiJ}j|F|?2uX-q=2_1G%7jTy5fc)}D}DR|I(e|y}jcw;RO z>uim9lYI#`zHzMU!I;^tD7nJyuZ!8@=ukEjMH`KoV7@v+NPv&0=rFzmSYTeMrD^h6 z5E^Fz$j6$=7SF?M7nBoi+Q>>1rzTUL1Uk{`NG3_6y)btTsm2^&66`ucOr+|U0;qO@ zMiy0yhAv+^bP9Ue?VgcwLSc@cqgTMOR$Ap<=6ct@XDwS$7z}mBPXOaZ#w^xP zLQWITg4<4q4pyGVQyvS@xEF7Y+&qm&WdzWd5#5s%c80yn8vNQPtwL>>4589B3P7bO z{DWn$AM-VY?mTN8a>a< z6~|Un4c2&@8XV7g^g{vEC|LG#=7Q8WAr}&WcB!TJD7-hWq6d{7-D4uO5+m0Mk}%iW ziy=BRt2S1Z(*l#(y8dxnL8ZDi$4DXS3730&)#L^0Z>NA++}ulUW|&3}jvh0iO-fxc z&BP6-iE7QA=5+z*dO|d|caSAFI32|selMt#I^0aFZfmz-yCX%=To!(&VYT`amiq=K#MB8L7NGZzD^v z0DnjcTzwMbBmG;Mu-kkr>Ko{%Xr7nmhJ=9H3FN0zUctsY(5FnE@y0FUr%oP<4)>^$ zRuCc#dWmMHX(z=gJa3m7?jlaqz|gB$4V>3dQ|&E~EMZ403wqd@w{lhgeIq@8GM7(c zns-b%o|#c-+7uD_En2ZtswA!%cj#(_$ONWUG126k%^R?dM)Ld$9FdUvfqfftqZxc? zJ#AkDS%{{9V|xg(JI_mj63npf9l zb#pVm5F6fRU{;r{K7&N#o*>v2wv&}fI5+)$pxs6xNPv)35HrUVS0a1 z$-?PXXWdIDE3k@3M_2dqN=Ut;rl7`WW*!WEou{)KKc%LBJ~$45J{<4{OiTDFsPrXO zo4Y;_BBJ|9r7v02^7_fV+fd&BVtypDj2mpllXx@z`B*$@vi>MQb6OY_>5QW-~ zWEM|e$o88P+hB zN+xS7LEP@s8B%X=*;@qU1RR;Wx7NneQ$&mZoS{5agd@-srQCJ@V~6nt(umL{lvpk1 zh3`9#y(E)hky_YEHFhmv7=_@#b10%G1m;YZG)ImtQMI;^%b}b)LMcWG&D$GF@`m~B zN-dgI+LC9Oj;@lJSsd`|Lz4Odo;H;<)GgN_KB5yOIAMhYBt{Z<3`8tJWe=}ZFd=}T zF=-DX+Vq7gyU_82lcKDTM=WVr`9wER3+1wpVP1J6oX!(vXa&TgKg}Y(-@zK&#{>>@ zQ=Sa&TboL$YmciMs;T=zNw;Sir&-lpK4|7r$F>4cOVL=2e=mbvglVfxJ;bI@N$HN6YVF~#I3GhRn8)0cd5s1512CKYa534GUS zvG8r!RjD%|8p>&*`Dv+ot1+cVd6@USg3t6Br2xYBza2Y?c-!H4j`xVO1kPv#g~YF1 zo>zmB84(u=?ly7LI>+iQxmLmc(J(R zYGiW0+@U;1*KD?Y&D)xM{-n;t``FDx{H+XaWPOC{nJENPnj z5mxV=X_t+qHf$^iN}%?cCO5K%rCA-QEP??cl+V&O)K^W<3`X4+fV%e5!Vtt4i)E?FH9IMxJ+wT$dm zb469DFVb28b4ocMILA$u%4TA7BHlJ-`674!h~1-rYh9->BOv&$WyU^IO%sm!KQb5N ziw`uREfzaEl@#TGuCBmaK7D5aOW5gA(4pO76<@zf*=s4@6F{i4H}Czl5%*rtG2671 z8}>ugp0eouy9kutyQ%U~y(_8KKKlfL0%Ja^q6kqNp{&iuHwCrpCIOnb5 zx>f@gHc|U=`t=yc7+}+6;IS%w335%x(92qVt%reoA}@Wz)&A=-$grH+jUV6E^2Uuj zra~|D$IpT;x@x-^e_d?FFaK3te{5RBU}6+F_)BRg+4^}fc;%SkZJR?owZoCnFO09y zhn-gM9?)%)B}NAxbv64Gt!40=o(wNar_=Sv0+k zCac&|2~!`MN2pXm1o*|9!&8DK((>G2h>zdiM--MOBInHoIqr$zC;Hs84^9$1kxzyd zVuI~`xnfAuQ>K6aw3K~(-LIuSML#Y~t^_I0r1bVfOiAG|CWP$@Tn6W zeaV)vf3cwd|2BL7zd5+Qtr5WPf9=Hh-$*_FbMg=W9R5R!@|N|NnAKm7w*5r+CX0_5 z&8Ef2iimItj68HASu|+5%uKkH*>5Ylspd&%)%uqe{I5&Tm4V@spCF%9j*oOyK*Jq# zyY8G1bMu$OwI{}5kjn!7K61KLqay9nN4&}r z7xxZSyP!nk&h^tX#Br`3bO`+1*>I?Y^5ssU0G3ec{5dXkdcf_Nj)F=;KIwuK#Rs>Ga+b=nLE)=8wTF29N_?FLY zZ2I>eYbCy2C9BN0rdQvi&kQ6SScONZ3ICnR6U*jU3FRBAxg5+s+a}(LqpXSi8T%`E z&yQZcf+pG-T$UEAWG0jyR)=E&3Cln}F~JMg<(s8ZiGBWb#!r~k1+Q<`v_WElA@JQ2 zv8TGdB(Ol^7&dyvkOtL)^aYP7k6Uh*wDB)i;}ExVOpzCy)+OH!C>+)ZW0G1pU_en? z0OY?;NbNv|_K19O>s`O}O{D+NllcFe6ZQW+YyW)+|DV@?`1cL}P^Iyyf^LTWdG5I0 zUk8y}7!hH>g%%eCj?e?5pNsceHV%Bk&1k$j;DKhcCCn#&;&p z+-zDzIAPal_zQ1s`gF*(@kX3??*h4Q4uO-W9>ypQZ_0@C>SCv>OZL7K@9i3l(O`e$ zqchoKWhAIyB;1Gw?i_XILY&z1XZ{XIke3JaUA;o^WCJk?Nk95_y=Nn^MYuQ9d;UwuxEF^_ zxWd2FTu!59=#@v!DQq2wBD`!xao-`##;Q{uET@v;LhhhVC2mx&k&+!ng%vxsNGZhu zmq?%Z>ceJa$VMea#P%K$2ADfC&Y^ZvLsUQC?vOs;0`JsN8P;E6YZW`*3nAFsuJsc& ze$8$~+CBalfF&Y3O&F~!)j#kM{AUk7^q8lcp+p=2o{3&Uk@=pX zN~d@B?Ln%Y+|mTuPF*w#Xat+=e*mb{N#bHBp+jLt`ABvmfr7Z7q>wO28I)dIi|vCY zq=8hOhztX9>p)?}Xi_qv#3~u2w-}ao$EPKCuM6yfB8T50M`4r!4$+bzO1WdyM7Znq z8{sD)3x)(!DvEgs;H1cv0@7vm$afI%F>Xq~W_%cS=tDbW&`_-$6Lo2J2s&wZ(1Vs( zI-VS~``@@ocj)-zuZgdGf7iy{M1WlREDk%{GWD9X1C<8nNz{ce0g)-ePF##TDyd!p zklvw5V27oD2w?K|3jISr_mU%?0}*X_*<`C8IQ3(%3>ONTphx7R=KyS@~|Pb}+x z)tWG>MU93nstd}ERD=nbqPduD&`FiwyC|sj@TFk7)|auQLA(*->-bxy6U(IyxJHl* zv=wp$`tLTDE=h>MFpycVL`$k7G+HJRMrd99V5T*NKW+y80J}}8rOB#<&C!-&FR%A# z?OhsfKP`PsMqmvk_R+X0E$nJ3h5N&{0JL?EJn!VK&JOoLt18#OV3Ad3PJ3+_#1+Mn zCFm+1xs3S;#k69N;is=)xdS*$eXpaDUN*F`_f)(5-Vpvi!ZBh5k5t#=QX&>3esIZq zy4=;Mwm?0btPl3WUn9f1K-K|)xZy%^w$nTbUSYhz7k_mNT++^*REkFfBg4dEdnGYi zAd$gbC$;`*!Ej}Rt2!TEg5#+e>++gN6d8cF5%q1PKhNk2~I_;7z=GRBx73h|*mJ1z0RWjAZ7*^JnFTI$FCRym#uH`!#e z`Vi%xl1PSh9DhPdgCzB(3~+a!Pjdu^8?!5Pa0_rkj~cp82k&@yq~rH{~BtHq}W;Ip{udhw*Mcwf8)b zi&o8Vgy#U;=FFH8G&SN%0}?*SYXdrfN-?V&I*7I0L(VZR{? ziLjUKZ^8cU#ua?!2$2>spw^!LF4&TQ(vM$~lPCGg9{5*s&n0>X>Vze73x;3*E|2X~ zOcC)+yuKKdz*$XO0<loABv)O;NH4IJ!1)`%GXibAK2VFYR;l@b(SFfHQ~#<=^nBlFIvv%NQu9$iT>;L<(KjaF7$P|1bj{Aa{k|3 zU;i2M{paEz{<-^y63rJ4G!68>gtFM-L3B{Rlqa$veN_b?Ot4B#ML(z{Dq(pGM$!*6TJ!kLO^70^qpcPs_)hjFd1)`lpe(BOx)F zGu#uGGK|Mg`Fdd8!8mGYU^~LG$pr>+`^H|z%rY_*Flt7CyV3~``~`#!ehNiG8yu|o z*KzEaMfj6YR}OZ85-pQc)j;vnFwKcptCRN&MCr$9`AL`REpHYfSj76F`jd2jZ1iJ9 z%vn=)EVb#Z=n{{P^k2q8O>6_0%j((E+c&7o5Ebwj+B`}un;6jdvgEd3DrA5(7HWLx zW^^;12!{twubcRGE6NzVz(=@750sk3>6nvX1~k>*ylgjn=fc^3-l<*9PK_Ig8|*LfGcLm}a|0m^cWt z?E7Q!>jL^&gB{s=a)EybLEoSf z(-I+xrenW;mcj)CWA%Hq*y8w;bZ~SWkdE~rcZDfOpDsh}#fz+imrn_@gLupM6PQt7 zxavQ7vZdch@#LtB?j5aw-uT6g5<${jg#VQ7(}#d`t@aqYK9$G(2Kl;FRo7Nqz_fG( ztBtITY<>fYNc)W1rAkLmL=G!&q}T`0Rh|x$Vd+-BX75I^d@SAGezYC|mM|`tmTc>I zmu+KqYg~i-sxk!|K^9@FT%!$TJaWwu9(~VIou05C*2M2q0lPSh1yd6TlwARB0jJ)W zYQlVri;8@l7c6#g_x#=_$jgo1*rrnk0juw%Bn|PZh_R+vqt6+S7d$O^1RV3Pvxp@* zXv_@(nzm@ z72?(V`tPllcV4MJ0*__b?ed=GnyS59m%Xd9ByEf9mKQ4I#6^hMA|6ds#B7hdjhIF) z_PYL%W;F|sUzd#jUP`lT_dWMZZnQX|xG5-ieD$Oru~&jiIOMmFsw^9WkiPH%OV(C~ ztq6P7=9L52FFguhUVln_R~}crNvZl|Tj=2as##puW)TWrP87U`E6Kh3b5Q*LBt$R& zdwh!G-`}!+9r@#-eEO)$1^-5UcWXGum>loJzxrVK_4}x347q@E>P5K6NQA$Y_S^Yb zV8@R>Y5vwVv~`g-dZ*rj`+dnplvbWj$s454kW8=Tc%pnXU@_UkuBrUT>T zf=j~8Ew|DWSEpQxeOFjsJF8xuQ)%tg4V{zwF)e|4oD^4s>n9K1DdJLsbVVVLa_-fb zX)I&P3eDBs?v2}r}))Aq(sG%0W4gC!*=^Hh$VXI47Yu` z={P~@iLS!3_IkcmQA~`o94}kZ(oBT7yn_(X#&u_;;Omtu@qYuLc>y-{ai7yEpX-z- za=jfI;V0e|aB4f0PR7urN!9~v#G~^a-j&0&uY3Lx z)uPoou&al8Rrf3c;s?L20Q#;ad=SX|OL`e^COW=4^RPtmJ-hJCiY0lbDXIX}L}=z7 zh?1uVoKUauL!|5;{k4OFI%)ZF#PspF2fN)PzPZh0b#PE1T}|J;GdFRgbZFI< zzOZZ`ezQ46w2~ zhKl(La`KEiX_@$Z*fH7VxH7V3*>7z;mxw5TPE2svVOmd2Lflyu9KuBK%)EDAHnBnRX4X-AqrK96WrC33b77yW=?;nv$e8Gy{4 zG(9|=SG5$$Sy#ige@kXY*t}Ikr1P8LZjK_U_)&;h3b@#CqRTvC9Jbob|2{12g=+Uv z>-kz4Pdao$h#h;V{bu-9_+X*8)a?n6^b6lL`x2fWo!H-9$} zo@&g!QRZywei76rVEb6hK zoT!7v&Qjj$sk&z$z9!v?`*`!BJk-TSw#Udtwa0)dft*@8(|Gj4b0 zYVAHp@xP>dcIyMtca<5&iqS&M=AtX9{mrTz1SSf`=TgxGQS~3dV6QQ66PaWEVRbp8 zgEKm`*NU?&Tp}{0r*L*k$x1Cdo+O0m*x)b)SqX`^IHXvGIE2t|r4r)bpiZ2TV@1U& z%fk8-isn8NW{!VjBZTrsb>9))K11qX#|3<)>fAgMM8fO6v5EQA>}+CLB|l2Wk=C&Z z7A@)rOw?Yk{ zXo|NHY}z9tmn;p@E-6>SVH4f*VLQH?AbB2FlmGJ9_lB*lM%)AKms*d!kFNUwmU`v0 zW9y2UEvx}ED_R3ik5vy4APQ-LZMm!oIm@;M2bGC2mko#abJ*-<2;IhSYcq1Kzko2+ z`Hwt$->M69tIswCKU@&S%)wJq12At1lVd?jL`qd{ibNZgU~lW3_l-|_mGDV}M7S;7 zP1CFSZErY6Vw!b^0nt2bu2G5RW~Yj^URSWV^^>-Ump(}Uw)?!WtTym-+)Srp*ystN z#VpR;tJ!p@d(aCMmYuT1{hEkzC#WS9}crB_=o{2OsdAooW?awJP zG>bHUu2@h4qDjkz#jKs02u7(rW!L=mP$bUbmmt>E>wH+!4a#|}-?`c_sU`L0CS!1; zlcIE?8@uA85VaeUIK&%)aJHyOsMe$HytW#nBKNd6ljOI}gClo!#kTSEgsH|v`@d3SE%Jw`*iAgN})=m9Ip)bw${YPRnZQ8qXN52 zrSVcnpWSL7opVTtUEv0_d+h$*J)(QS<2V+aEZdPRn+{{z`K2akc>=?UuGt!_Rx_Xh zraLxr7vZxc5TR%EP|BMSjq0jfz1Uj~=*^wh@a;SsGSHT@ZY`l+L-J%H&>gJJ9c)oX zc@_0=E*)XbexM>~gSNGbEA|mgqoM(Swsas%^3BzL)fu{Ri`L_!8Do7%sH2uD!ZcjU zYf+&v2}nvp;^G+<9@}2%?d&mE%33eUdn}hVxk@tC(FITlXKi)+z~Li(+)LVg$3{E) zqUPDge5Gs)@98yGzTN{BT9PzHnI}Oq$rJG{;Vj0sQ(f1^HTutyHTv%B8jR3)2I`E^ zAJ@xpWB0Ha`-Tlm`tG9|jNTI(jC@^2UEj%47T^q?7T|>c*&!HoT}OY}tx7OvqgZ=Y zZo}N1R<$Ha@>>JE?>_%)9$yw+>)G`c$jqXEfH3?Yqa!ibFDY7~pFfQ}{*%7{v;2pD zUj89Pv{T*jS3V?&8^dcgPRblpFYp*rcJujUj?)?Jni|$3^VUZ5CrTQOdn=j%{#%uz?inohih**?c-S*MCcLi zx3$gXFVO74rRU=_KCd7o?;Na6(+wRyudG2%&Fnq;Babo8mm31#cT53&=rRuh(#>u}@G~(oI4-2r+|UNKu?yLw8RZB@P~X?d;6s zZ?vE~aL!*|s049jdJmm3C96CVYa7hVJ2bQu2T~hc4Eg+ys+p;UnS~O(aamslzMRyU z4Y1S|Jf5K;cLgTr5 zb64z8=j=V{Ol2$M9yYU;@2ZgQ{q$X_WY}XW6?8a@Xdx;L3Y2Clz0KG3dd|`2aw5_h z&A%AD9Nky|B`T?-(BYd0TEgU2z*1QyXsJlzD(O8fb)Fn-@c^9QTO=ABdE5+NC=1YQ3%}Q#LB|$ z&e3NEjUm8EW;-9+!-;l=`8yeRpRT6aGwF_P~kh zXK{ms`DuE?cn=4?b+Uk|*g$nLQ}i?PSd~~#ZUon{oIRVWdhaqdOI03lA`B4`_Gz(V zf7%?W4R}6`X)Nka79p{^F7^JI$%1y_e0kRXlIctfWyVyQp20t&T6*9+u)B`SS)GM@ zndvYB+3i^6w%`xlT$!7>edc~eucKk%N(ZndnL4xYh(K0hbCOhca;DTshEC#;J<%HM z{z;og!JTL5k`TEXRv}Acy3U$H>hVbr(kjylluTKdZZFnV*RQq0_!+N5W{^j|uQknZ zXg#SqPi01rmsu=MR05T{7&Bs*0V7pR&WJtFlMGGeCJ97%?fJ57L^~%xsZTm@^X62RbCSTV+?0bg3;?U?)t!{41 z>0)D3I+aPV%?O0L#ALJHW-yHD$Z?EgZRR%VU{7_FX#A?!EiNA%cT_o&e;6MZOf^VY zK4Nw@f}O{FF$wQ;Mdnu)uaGX4E#=I)AgJ zTE1C#goU(`&~HSfD-c8@6Q*u(G$&C`;LRkFw&)+Okv89U8{0=8BlOR~D{+P?z6;%% zA^(*L8}(jh)QloHb_$G{WnN54x;sd#%w9GLDY0pwi+Y4w`pNmaF%an0`f5D0qd795 zM~<|FP86HQ_f7?sJ)o0QOG}b#4QxBlMbxA^FJtwIqEl_fMEriD=^op7z{a7HVnrH8 z6^e3&Qm-bsAvGl2enq3cU&qo~y{RMk5g2u#imv!wpQSlse6Y%aPNh1_9DXd$=8EN8L~N-ii3{CP zUqoEPw~cOOG19SZ*6*$E9%@*2B@jwGJPSV*D)i7plUp9sVaNl(2NKdKxl| ztcy_g$o^ZuEY)0;xsNhi3cbOG;+;*EOUyw~a!&!xnDUtAY>cWP7z9C3c6@fAhRqd| z4Jpl=;)+IC_|RqgfS$06#wAO|C$tzl9c{$7w|EM_g59*6PLao3jtFn^<6v5*rIdiM zn_X0mXsCHE@I19L&Cu+AY1{-g!d?7$bGGJ?tWQ}sqwE+{AZEecT_ebrVPX(?X1(w0t5f*zi4OSS<7`D&eZCav*5D$ie=)ShY7aDx0kXnsCHqZ;&LhTQFC?0FhBESGXBrN#)PY?*=I>M-n>% zgg7N7+aufJU1VC)7>!y0;>4h0XFXM%^paw|jCM<~@8_(bICnR!4H;!tc;Mep;h_Yxo)7E)9Nz!z^CsH+$o9DV9@VyAGrPDsqLDO(tph$QCPQmN1j@pI2qsk7faZq%2TtU(KN6`h zjSs=?ar`jL-IX9EZA{-)f=wsU4H?RQv&Dp_pF+x^cz?Vtn-{$PlLZxpxK&E4Cb{3g z$&WnKRGS?Xud{Ro?vzzEqhhpjaf4u-Gg2&Te%*Z^^xDfk`pucK30-6n?j!_~YVp37 zojU09))X&KD^v9QWSrt8DKfEfMIY!M##|$lq2R~e`*T7hkp#sw-keWsEhK9;uDkr$ zpp>zdK|t=ICB`<2cJT(o3(juSYMNmc?Rd@_b{<{bpUWNUm6A0oJ`tSS4%wKQCwvSZ z+EppD)C7Aye?3ySN6C{SwOf0W%jAkid|}M^fx;Mr{`x^HQyC7liNuKry#E>_zkKWX zu*CoYL8k`+q5q#BgZ~_Ye}@0?&&fZOXu}w)E-dgU)9{y6rx>VSEsHcG(zG6XtGl~>z=p5s%rX0 zuePSm_UU%%#hO8e2BGG()%CRDb;-S@b%mGr{Ji-VVd;v?3*h4|8TmPTP-)HAFXc*@ z5s{&UYr!kEH^cI0#yvVIJDWC$4{%H1JUwFKkv#;-LU^?=%#f&G$A-q1dtA)t6eN== zC7(N9X2~apnM-3Kzu=xZL@uA%OG?0}mum-*E}?c(W}b?VVKuY$z|^>=!XjuK<4ff;)n?}{b_cBhi+?h#4~n6_aayhK7elU} z@4IyJM@{V@^iPP#OrN5R#urG0>J%TPaOd4e(~TZt?sThZ0+LAI zXV+*ZH~?VvReG8EL&O;;@rS~I{#j9*QZA)fsRq400>sUeZ9RFbBb@#hvBKObK<8Rt z9@bZ(Z=NBQGtKk{>uZ~Y3Z}tmnpDGZUm9(6xXl&U3v9RY-lx-T+6%3GcVy3LK3>S$ zuN-d#Ke@dc){~~bd=!1uYf%#MU}{oiD_iz{*#noqiXPM9;%+I!g?|Ox1hCorg%t92 zF`t8~4w@E4b5<2clDoRC%;Y`}580n<+AGRS15Tpbt8y<0ll(c+?}z%0NU`akL`5!q z?LAUFp$U*RPdUN54-xYyE5gk6Fy5ZnX8r8Pdfa(=G;c)n-1@;FyS=})ZP)-Sb3D6*1wQ=U3sOqVi>(cI>C`2~5bu!O5Tu{;&hxfveAcRU zSC5{YrJu_P^FPl3dHkk1e`fOf;YbTySNAM zCA)G$GcJc11q`s=piKv*w0ODFz;6FRky?Igy=Gcw%6X&)3E?$Jhrm@?84-kk84xGK z^nWMCEh4<)zy|iC;;8M}TYA%@)(vgVKkIN&S)NNO8frW9!QoYmlXcF+WpBK%P>pj^ zf`tnoAk-NuKC53E-#u@`HmE2HRF_3`m3XW{k;S8}hNFpq5=ldrI-7VEfwCzGtPJ4c zeN9)E;nVF+sBmxN%Q_>nV>G!f* z*z^d6*BGeErEj?s_g4}S>Z(G-UB%7nxs$-24d}r_O~m@ee8M%Bpt{G_r(=Sh_@!`B zT=+QqG^T?5S-SG?;&j+IjUcJ(0m~dZa|@JZQPkx?5c74k`;Vmc|9?Rys>9C7q8EeCT+VIi21y}KJ8{_WuDtgCUH zNjIkB?)m(Aw75Ts-#d(fF}jCQ1b;2F#-PK3 z3OpEc?02(D+Qg1@+EhS#(4rL*0m+fqs9KI)i2vmUjE57_wMW)OtkRK?7?5n zEcrJuZ~nyAHxqDU5!cG|sl4nhj_j`PIdyZ#)6>g%`i>fUPiDHCR>18mmfA@p<2zV$ z@^0;`2jVVPh9_2I-_QMwkRJn;|BmT9-cy8y?4m4+m6I{&{I`qh$b|TgxLF&+E~W{*kIZSJ@$}w<0lVeb@8y+((H4(t*d_0@he>w70Bd!zLFb%LD!wk# zSSAXw-(s~|nYFeUZhA8u17={SRyPyq+n>dEc_CXp*9Po=vnKtH+}Qt?O-j5Ne4n@? zPGS4DXVV(ZWt%1d4A0OgR$Ru24==lU z`{~R-Lm@fc@&W-xnB{yrST+Ym3ME1*|F`fv`P@jc6kQ(MxEuQ1M;3F~>iC+ud&@#t;R7=@)THd> z%3=FxdtU*s{wO7*bcz!F;^_{Z^1XRsrxu_ix;43mU?!fMTy1AML^C1nR1jE}-);_2bJCkT zR8u>$(N|G1(9`L$aZ*v+8x>bGvp3~=2=10Nbdi8Zm8UHys7On$7`>KI2ZuMR;y4JL zsWa^C)U9A(1H#RfG($|6`Bf+w16jKYT-z!&Abn0F**QYWca%Zv?&Ln$Lq2YO7^T8u zITU`=R3_DH?J-=h#I^`2Ow$~K64|lHyCjtl+lbl`(3;wres-(nQZYm|yZR|!veM35 zmw7aL=&Wic?&6I)L?by^iusY-4GF0pOwvwhQgd|(;>Mo+4>gfb3iKm%XanFn_$s$FV3B0F@6NpYu1DmO} z0Y7j?zmxtPk>NLzA`u>OyHLGD{()QH?UWor!3?F1D!4^>`?eU25(8-ATDRjY_Y6 zpVa@Apck$Ulk%5LjwW~4Wij;Fu-~#235z|hwBs`R3$?EzPBT+D7C5&!6RL>uaxBeC z!yu6&A&VVXlOkkH*;s@nS#IlRKBqo|9#g`vX@#O1V{dl7pqr)n=d)zeCF6Ui{n*Of z*2jt?w@ONe+0zKP9?xCan%vf8%46R=%&{1VkHMb`l%s@{PqNX&yH}X)7___*&$zRH z0y4bTOU#-BqY0&1v+nKc+v4JVL^w-`O5vTG5H9V0;+M+a=irH3sBoGQP;BJrj zz*=?^f1Cz>qyGBf`lL8%gsajSC*F1uMvWDP<(fEPD?-$9$ARvq^4ADAYo6$+J8Z~V zDWED0_Q=X(^?_}0LrhEp=stjw3Bo{e*xGKXoQru;IHKn)%_--xo&WAB(NdrXdJ>^N zgRL!zW{J{P9y(ckfL&F}qb(BCn7XI}ZYw+`Gcg~klss7=V+qbyixQp(m&`e{;mrR5 zl8h@Wd+hpJ@EUVX*dBBVVLbbW@`3#}aaXgWrVQBUTXEaMFAe)|uiG)+OSPO5U+jB?0P&lzDh3WOSi4=Swrdg5T_V;<^ zALS9Y%h!Jexi3s}Rl;#rS(Rb6S>|&}(atbyyNOmOw{ylBI#6pwN+(ymIsuK5=9D0Q-@3`U3`Gb&u+B=LUV6)#aX6HljE; znNI5uJu-TfCm_{Opuu;Dl+8!{gr3PUBe%d%ujUaejfU?o>CptZ!`xv|SneNY$xF5> zG}ss=eL^DHm^E1%Wwe&o8~Zd3=^TCp#f^Ia%+}Ae?_Vd z(c%4Ds^@nwK~!GfotEdMaz7s*Bn`p3h4T#HwpC^&h3QCj+Xn;6&n1!g6cgOlGgrU% z*ygw7;vvRm5p$Sj>>AWy4k7@>;t+9ht0_6gJspk_qwwW$C|K3wo{^mm4Gq{)woB(r?_Oi-!7BE`O_H zpR#L<+G#w<@lzji(Uf7cxTP}qAvUG6Uuk5+~w(SmKQ z(7aj<9x5eJ$Y-$|f%hTQ7Ae$EWD^!T~8 z8ww<$Frhnk!4tFl#2yeYS5)j;=G+U)V^8bclThgaQgb8<^fxyw*Ez`Vms(p=S`QVhdjaw@_gYbCSIp_A*$J1E3R905FOSbrkBx3KnCIzS z3ane)>o2jOSFmh#Rl32C!b&b!9!9vc;7uJ!=9V=m!%5FrPGYG#V+ z+#fksnq_Kyfs41;+F|K!5qBqGgfdWZWmUS87w+QM>m!4WS$fVe3WY!TLaKLFPCRp^ z-)4FcJ_zsQ9AJJ7+Ic2e%+l(L*WAK;=2*<=@MUf8%pL3Hib%ZBdFD;!BR$K$B7elS zvKZND^sWDe5|RDZVm<{5gB38g^j!#X{3V~I&_&XblN!wnV!M^LJi84>J&H3#HV6ul~ zN9_(@KyY!{C>~x{y#Q{_CRhb`+d7Wk2~TVStek ziWt%*=E1!glM%BS&7qP^iat_^i%roZ&q-+6DDuCRr?H>A1kkA^<+LVQv*Z~AQGfSd;7zAzaQ$(XHfWlGEpzx3z;&^=u2V7hFwX9?yEPF9$h_b zo)*))ZgPv%0-6E*Z^oh-Z^(mN!qGk2Bw1nuv5?>_Hh@i$&9^n~ji3F#Pw^ynih69M zD?hkQ6!rE61Mru|JtFOs54iU_j-%cx`J6aY_InF@oH>8v3s%O--vA{LZh7oCdaK;H&Zkgs<~G zg^VARJUPur=L|BEU=Y0WWu~o9=ZEWCFFA2umlHL9AJ1UD`raqQ9QU+bV|O4(NAB)r z$U$6Fvyg-gH111r6Yf)SPd5QXDT*K1!pS8@gk;uwH2u)x9@FU2)YwlZ;Kr~N=*OL_ zicDI;EV}B*M>VLOe^ldDnaHROhSTO5oHSYFp?gf>0_?Te(-0(#A=>xS3}4BVMw&O2IBN5 zB(YjOSE+pYm$u|!zmiBC#h&9XZnH;;wvI_@H!5(%te`ixgw9!Z%rY^V?i%cb4@R{* zpTU8LbM_aEnU7t(`fMcSJb<exp zsg+fzyws*CUPSq;q`MJ9n=^&P+pn9G`N#wVgw+eRd^4a!}JH}xv-ueJkIr&?MZR`xf-g#U-K zw}6QxY`a9!!QI{6-C=Nt!QBU!!QI{6-QBfuZQNZ3cNkm;y-fDr?Ec@)=HETZn@)A7 zP9>Gytoz@9iT4D2t>{jjK&br=~&YGasgJfLU z@myJF^aX@!HnMWnDlZKJ(sc{LP8PU7bvkA`^b6rSj-4PsH$oTpTN(1OBWoAY#sD@s z$}Q=<#X$BX#TksOPt+shx|2oC0o{Nj%%Rebm+487U46bv%8tWkOTGOW74XHHFa(!} zjP&U8EO1?zRNl=l*>XIlTEd=oGt0)P6zH=w`nHSa^AFet?HlE%Gev3kd8R^{YXcUD zi)Sm`wgnZmTPZMa;TifNH}XRxs2JbO0OH#QJPvY58-_(=s;TJu31M#7xRP_E)F_^V zsez=}`EZdJ;Zf==8+oXZ65d5L#C=GDE=G446zawsk*4cXaKik*`H-5XRUQ7~h{Up; zD2>@gK|=w8r{A$4CPWYHe0lBY&>hV|+xmbE_6~6MP)1NsE>LX?{Uyl3Jz>8vWq2K- zLUuG^9nGLMt%{k~Mqlv{nvy}7ra~qGMwpPNeVbzCBVdT@k&N~QaJnZy%p!vJ8symL zCMluRO@aR~4`LEn3;P>c=H^2ZTGgUU(A8;b6(cFypyF+*T%XweFfDafX_9dwt;r`0n~VQi40nxbd;Sp;P9&AA<8 zR7<)E6<=1_Q_co<1;DcEeswDYR6CEV^zN2w|61V>=q#^WQ8CIL)QcV)Yj2q;XSbm$lD|hsm{7U?_IRtwfO4J}0)rBXBI5Ds(H?rW~r~FOLcL~a_ zE|`&zT86S(so({4dzNR2I=qRn${L)$8Jsa8YF?(e9bbxMZz4q_lr zhMhF>aT~VfRDi~ zYquX_J%OV{$)9}QQDmrcN7mZoeNzQk<89Ev-d@M`r!ZZGuT(bJ@Rx`lC%_||!efep zKRo(H=LUiihl^&dg7QUA$Q15kM??$yp2^BPQ;Zd6boK*@ycH40bFh3;gi+;zU3+A( z4^@PoJIZ|BwK*rb4kw(6xLy^=O*pFjE(^y_m8QGM%J^A~$nQ_uFFv3DF^OJ|@JG7* zt2|BcRjU5)2PBkDO#A!Ik>K5a~&qV-nc^0qpe6@NmAKk z`p;;O+*04`5z*uctu+3hK3%fcJbXi2xFcG_b=`kKm0m-7Ht^Bv4|Qw|jMFcM1YpUi z!Q0asVDuG#oI2JVurO=BBHo~dWPPSr@~GIyow8yurxxWJXU~wHgB0-y#VOPV`~BBQ zN%oa9#1;|+q!=CqgzvwNl>Rr5#s3VM{?YuyKgxf|(a=#rmqh>Y%-A$aa|lqIjdVl) z9pyk$INUiviY1IP8=gQuXx9`C&vyO?K4565O!W}z09e`eniy70n@_GrlXq7nqVR+` z;U7+i0QChBi@#Ck#I_iq2#b zyDJA(aj)K+z-H%139>YLO0np{9Q-xpD-eov0Ibh9ZUtqahTSjJ%u+E5j=*7BUReS5 zl+hlkrNghsn>v)uEKZo}n{n$qKGVD5>yP3fezo{cFkU^F{mLlKS<%}t0&p9zYDINk zI&un?B{gI`(3{ZkwRY}egpxrDR(X~3RWi+7D{buZY%WoCDUY#pgHmw?2&^zSAyvQO z&&=G3)Y)d~wsE?m&I@`alt+URUAt#=nZ@C#hMk9ec(vi6rnWH;66^|lMC(8f($1$E zg^sEXvi?4Yzxkj@!*nJX*G)}gcnRq+lHqSY|bjsuX`3FUjf@;+oFe| zdW|(yzS7~7W5gfkq!`{Xf%nD76T(6b-R))k-;z)z7z zX{oeDu8~X}iYsXSMVWDvv1EWLkg1s}!sqf(q5{R_g3sE@;e96TPcr0ebzbqzfMjf# z;9FgECV|<15dq5YUCNXS#%AwMj{Gs_);hR!_f=w)z)kci+fF*GSUF(|f!E3@sQcP{!SLnH^@B=2B`nT3&eZc~ z&E09=aT74g{iN;`DF7lDIE8$nl!bgEP3D%REntE4?GS&Lwgn-waPU=`x zt+oYv24rc8@(0U5?TdjlS`$xTdK21rx14#>O&KKC&a3V2GyQ$Wanu{DE^I&*X~K?V zR-e0vl@C;!tS;aQ-maQcb#z5|04Qj62CzS54Q0?eeABSRN@A&mCLmCmXhDMCFBtdJ=R&I1*HQ$kiUnkqJ&m5{`9d79SaiO zI3 z6=7dYrZmqw0!A>3{@_afzq%9uGv~tR+h*f~1pzsr_&=H5|5Dd*HFf-dWsLrF7V;m( zKm4QnhZ;>7XS5ZJ?tS@IY+DPw8vV)vKq1;&v9!Ppy{$lZgF&E&xbuTe$~LRn|@TA5whPti$O>!`N(A%-sxkKUF=WTNi0m`*W7Kx-RWU* zj_2@f0{t}rD07c~o=fk^AS#b3mEV84lkU2%!6rP`gQ6(P`>48}$%h5phl9+!H6s-r zJ{RPM)4fZv+uU!o_(!7C(!FEHjx)Ri#;`KHBgWD)yhFw`GQ4BPR2x@{ zDGM`?EaZuc#Yn9HX4kRlxGL6XuSKN=5R=_{zipeTtgAdJ(Am$xD}%Law8d=W2u?L( z2upHtUyfrQeD-8(`|Wo%bs9#zBztmH zL8j3YP&GVtJmWCLickZ-QtiyStsE>21-n|CF$Ld@1jJ#TvR%jiYl$S@2`x`UfFS-d zxIids1mbDvn&rvhxYC>5;+`cQKx1vefqrcGbjk<*1`p)z;>pmco|b z%Y6Nd7K#W+9t4blX{Rhr@^E48oKtYnVaI5qS&q#y z&KiMM$?R9^DWKz{WP!rJl6b{($@>?z773!#A(pGeIo4Gk62k3h6)0#G$5&wp5g{VZ z+1OPckSr4nLkT<%M z(*`S4Q0=g6q~^xyIlB8PI)ZWjbfs5ppwOwKP65;Oe*FsE)Mj3kRAO02H~BFzkPxkc zk%Xi3kWf4ZNrq!i*+elF?oFYcQBrpl16=~EOO0-2eR&|57I{Qn;&DVBrEZoLcNRRFenTyYle-xR4rd)-lS?#?@rEE$LQ(6pXd(Wj?TKwM(ndVnm(rD?aH8rdR( zU3srocmkN4u>BIp&20P<$CYC&p{|7brq(pPHSSxL1k2P@4=|i8nFY+tqSw(sIO2(5 zU273OFvhd#b?er9zI#qWm-BJ>a??*~_O9HfNJ%Si)HbE*`nP)bdQSO=l2R6xioV`+M?bkzcjh! zz3d6466qozih9ksz<|G24uxg02;UW@4>u#5rTEQ#v9B%iz)ssGHK1A{nRW*e_h9@> zW6J0LP|`3x~>Z`3` znN9*qyq`rqfqa?jFk3qbuOU>vdNQCQ>ZDaSqu5AsbXM}&9P%}c%+deBa(Cu-422wA zm8>wBpz4psG(zxVpJ5r{lALFuD>js>Xd8bv`QR^HZE{VWrNG10*entwsCO>=0MPoB zkBZA#DY6#rcuBuLIfDl+sUC*|fq=IWOJXE>G1&ygX4nu-NE|_SmAc<%eF}fTs+a8o z3&MD@m@=D;qRNqU&+l@?h37obFK37(6a4)8x%ofdL-wg3N0eAok$*B7Si{8Is!M*a zYAKBwE|2HAM&i}}RZck@#yp4>_JnU1t+Zm|cIcEowrSj{Gu~vgM~|sx7@-S`G#4Yr zWrS%*+Sxk0%2_SOupGZZX|ow$?*h&{Ctm4HwRnIc)Z$sL7yhPIQW87-Y7u`{Qgm~7 zAmwVBR_E!0-(=f;{H$&uriJgcm%j1D%(-!38YMoIdH&Dws!f3Y{`CjboHt@pu zH936=67!%5N~g){=bK>i$Ch1jBsNKvM8teLq=!w@83n_$4LKCF@r3Np+d^N5)2fc`-YN%*OuYrx;yb=qO4Uw zY8&~qRDRHvx3$jV)rHZ9h_u~pwp{p8qO4i32sP2_bvO8eLmeaE=ezbnp2FHjk+fIm zY(Vm}_Ac|4!=v-*9uM90?u+2Iaiv&K1guf#sls|K6FAWV+C~$5fnkN(zGj3yDZ?55 zZ{zK~Ce5|9;FFeN#du#giUJI(*+_>W*p{IYUlG|cN1a@z7S~N{qvtK1-Ep&9d7u{x3k1F# zW>YZN9ULB2%ZdafEKG1_^$&l}z&PltmlXkFE^NLvcd`y2+Od3OI=|fwxsZT=RI%+X zaA+NDw46TAAg?sxTwejL8Gg-9=>)4M#XjN}=#Be7dak3)|MBdZVBOj6Bo8asM*8b5-n z)#ijtXdFLkJ5HXu8l}l1n*3T{pCN>kv{@mZfXO4T6Y?2~A_cvcXjD?u1SP7QT71`4 zhc3P{Z*N6~zt3CQw>PQ^f2r^N)c;a14w?!|oG@BA)s=a1Za1HnHXUSgTh$F2WbYtF zmdvU2sce;!w5sBYPqH@b{+IpgYnry$j^7H$E%tsS~ z+!^r#W#8`#Yyja0{0N}bRke?xNCR&s8G8j)-2qS4-4!;`3T#R0lA)RXd&7MvN1YCz zk1GM<0vI1epO{Zc57k19I>u4&8Ws&j_~}vaF?z#Xwc`oGWv|j725SfNys$hJoQo0; zkE1@cX!~kLZjN^vZnW+>yf}}d&O8|*_1lM;98>^8Ui%2ZLQ?+=G&B1v3RILVtv$TY zCgkx*EkhAtt1>r^rKS{ycq*wWPQ|p)iJZlMUW78{Id2=nR>hj3KL|6)CiHU^}~mrn^r(%CXg? z&zUAC(^!e3BddU5&30Rl@w-$Ri~9$CJZfbVZIPl*Yp$CM+712rpGRW}Og0Ji`=2a@ zZ}zMg>RyIJm!4>i}wh>ss0`*qZKq6UQV?B0n|BBcEG<-H4Wh?+;j5ockNNV!5}PO4akA* zQNKYTj1LfwaaI=I_;OZlwmTPQNKgDDT=pk$pZp4OtD|P`OCV|we!3F-U>DxFE7BoV zp(>n|(*6ViFDmd#?aiO4B8_omHf?kr=L|+XHrlGnJvX(5>Iaom@^X2@u}(joq9hgD zvP+q*)eW8feJ z<@j}abp1DIH(RCvP5tGe7ef$X1Do?w!u~@+iJ~c*Tcuc|lEGGYC128dTEfK&T6+X& z5}PdHi*i@W$|$NAq@n^JLpU2y8e2&W zOST11$qm!JCBZ*we->%=rdjrW5}gg$>Zsd0G5Hj={P<0f$bZszd*JeWiQI$WiAuzC zE`~63O)jxsFw;7>z?lB(gCDH-DCU{s*`Iv-iu!oW`ZjlEhj}a2VQB|i;BItDN!w#i z)>^@fC}y$fH#8YL+x(XdeoEAo3s&*(mrpzOyz z2%qh|;uky#a0R8+GMaEURS2?TpFl7H>0YDCb`^j~BTnKb$(lg)_#%Fo2;d?-$quIg zPr5V8Ms*gik12!rK!N4~%{MEVc4(cVB>VQ&PCM*m8{(IuYX3Fd?NV91bo?#zbs!+5 z$zZg7C#y!P{}~f&@-HbQ*>j+Ce-0xc8_|XhW5oFF5X{?yP)HNKw**?S0o`D8MB@SV z_;?n8-Q`ko2SG>=yY(e2g|$TkwxtdW$b&6QKQydJmE4+TrLbe)uE;8eC@;7547}(y z86@){g@dTRt|b?E68f)M@Jn%sVFd^f5U{WG^?$E(_&?r5|3&!uf4+hKQT)R{x_>B9 zw^iAYK=z#;#dHvt`V*fCAtfSWoQ2Nu9hKT+kg=E%QC>y_u9#^+@H;WN6

=nXiSp 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�@uI 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

`WC?h zPP2oqB-|W5`0MrvU9rTzU~0=DK$cT`-V@j{0jk)F-p&C7D*uPwX(Z?7rz zNxkpq)}vI#WODc-P&-M${2Vg)5LV&mE-FGt*I6I z*#Wht+5Lo&o%(jNP0yGKSN0UE$Q9ZqK1a50?^6s*!JPTeh6t#g-v1(kHcSZrf3 zsfFX6V<-pmPB16t4Suh*MD2_#H*=vKuSeF4rd=5~UyxM19vNX$z5`?j-hA|5$8i2m z*kWs(=Ph96{47V$j2K{8zA{l>o*4{PNanXC+%8F@Z+8t<0%ufH&p44$ozK2ea+%WJ z+HsnW*r{k)S9WURp0}##k=}>Av_-L|m1Pfor^x4IjaM2hj5BAOH!jqWqL{ZX8I`F| zwOuZDMxy1K2Ue80-%?UYPf{pZS4xaEf6=Zzwp;t|{iZZUH#;2se8=m764W;T&%_w} zRN1%YPgaYcpC>Jm{}9*-TiH6g{ribc+}goW-`dbv+}h01>~pHk{ohAIzdU~7%ljAd z6}10%*|AZ3rG~n}FH30--0hp;QUtF=I0TE80v}Kwq^t>Nd$nLg?fAtUh!4sUFana# zZ@v*%7b{|dHfEU`2fl|5hsoq*-A+0mAXk9sZIa-uDClFU+N1o$xj!W?BC4hhA2yDU zWux<>CU{W5d4;&Z=tMd|&={PdFk1$!tT)?Xw~7U`b+*CPN(ES^_LHzBbCAMf-}R>& zSCZNE-?qBC@hHAw+Chf>k22P53<4VHvW zX%R1(s5m`@gq9E$JK22Fs6z2c*ofbBE|v#z^J@s?xdyj^iUL#B3A62L#u$>*r^$6z zYu}Pjl{Fj^tc2u+f>|3)cq&&SBMaT%dW~Yty$$UNs1_|6Z+D^OglT^M7VeoYC zt5g%%JsH?|lvU#rx{0Q|DS#MH!;nZ4?eKi2jM0YIOelj-I7$$j?2lP$CPO1n4^tFq zHzgl_$HAqYhNpYd3|MUfW;R#rK0(%Ne*$*Z<^R=x^x}waONxB)j&~qT z66@%%hQEH?S56r)UtuN~@ ze0lmpxys~Mu=TDJLwXGVbHs-KQ{BZ(Qt>;28O0p)(p+7jOp%{Kx(x2|mLuty6eTFn zAS@P}^;(nN?m%D$k$q%VMy|&PdDP>$R4;S#U-WofMw^SZ$Ms9E$BoAgU7wE!@ZYmf zT0J^Nh!0tWzPk-i#RXLv0McwYm(QLKveqoa+)NRGD@%V-LeDyK8L}ndO}N(?S#V!i z(1BTa@xmdDK#>{7df%zPfrA5woLY-!Q*C^5oO-mh-(KIXpsh~oUEaK)erWrqi)iiW(NU~!)9BvgKUe-TCUz~wXzU8bQ{ zb{0>trHMT87wRo2;5x?S0Oo>Sv)QS?=xA-E*d(yD*=ewN9}0`*mqnzAgI2NaD5?XC zE+`;m+j4F>gxkwxNpl9KLv2%SS4CZYc9?MdCZ%7we;WmmJL=Rs&H5B-VsYm*Krba~ z$2^Pg3kRC;VEKcetdMzRlv&V|y|ss4j!{`ySDsoL^v7UzSgFS{#MMk^M^EJ|&Wm_It}`(aR^mKzDbk1- zNQT#?^&14qM7t!BGB!8P5%$T0?KIDRi?43B%{Uu=h-rBCt`X1E0v^-@UgVrA)C>ee z>y*a%F3B^wptx<#N3!wWEh=%BBC(a?_3t-9!|X9-i(7mg#cR|XmAr+Kj6JHJ|6-%j zV_5E}fzj>8BlC`L;gT{f^-%W?|KhK}a&A}2b-Wo-kcKbFt+kciXJN?F3=($rFUYom zOnb%9>N0|YV|@CCXF~t`4TGD`0J~crP)$z8U46tb50jYt4K8r4UEwL5)|kKz9|uKw zzk!FDfq|cs*I_udMFuO*CHCl$FnH;J0{lV^RT`m1em2lxaw6CF#{f>Y`0%=8JBUFZ zmKj6|`Qtf#Bov96C$<>@^$s(l4a|=24#kq}osp}rcWi|dI$g`A&JB%!kL+IBfWZZZ zJ5*=KAF^N```+MTL>^yxdz{`<<`GvJbo<`fKfXx3T^#OEn@L!ls1Q8c6Wn`V_rF4? z#R*CLOc-WRb|V_lb9o1nqU@40?5@wB;H1&fw8Hr>EuaDD={@XkjC;WjY$Ay*^dsB% z72zfxdX6i`j$pr987ZCh9RW&fCdj$rGmYJNsr0Cy|4kU*kxtAiW~D!3$S?P&atwc$ z2?5jTnQT{`u$c~ifX1_0qwAxudjw`_ia5}h`g2ZLkjfIuM&(^9Nuy(5OF}>3iCZni zG@$WYxNI7d$+gwZMDou3XpDQFe{=uV^#Ua;&%LW`yq^Qr^3z zKnvDT_1x6Y8y5Inj*|SOFwRS+R*Xhv7eL6aQBv=D)OYei?t^ z%h4C&V>Tsv>5&II$673JHw$ht${rk;KG-c5g7t>^BQh872G zUr52IzJk27T-Jvg87~&%IT#Kv(Ei;`;Bd^?&JX`7-{(m!mJl$7;*=&?5sj2^qiheY<`I zXE)plZ`2Zp=?2O9^JK@>0*qz0uw(hy*Pr*Fu+&{Vn}+ z4>4jOYx8|_s(I`9#Fy3>waCIf`zG`Ci8H-M%#0)F#Rblc=KCx(;}Pf;=dW$`sT!nf zznbbjkRE%T0}gSG>jCcGj=q+aC3X_}Gg@^*fvFtsoHl#C(QtgU$)?=F&^OGa%w zwU2YN__#!j)wj)P^nJ0!`)Q3W!uL!r#LmuTN9lnXTnZu z{@ttl|K_Y{&OlGOJ{MWzbHV>p0QG<0jQ?7P{<8kUm!~hp$E-^LGr$MRnxC({EUKJN zVwI6sxUaSn_6rDCZ1&=7@yRzMz3dAP5~1FB?f|YfS7+#!tL;fY#tJdg*lUw zVCs;VtsqQ9988n}luaT7UA~b0whWI?F;89YpV$i{0H^aD?U{x;JA>A1dryC=h&qG* z(bF4+&#v#@HM=XijCj%xo0&OdR57Cj`Lk4UWL)cf*hk@*6yYR|wVD$ExHn=Rrt;(U zuM(|9=;}P!NP%C=A4ej~a#F1c%pqHOp}6dh6=yJ?br<@yN<(K^javp~baV-8tE{tk zuky2kD5$NY{k0KwVXFzNvpuao7oTRfL*5ey)+xtO7;tO4?W=#&x%`T6@opqG?LV{8 zd(i*+_I#a%1Wlc+EsTxCt!^N~`U_v4zL5W^?fcn)?rj}IN~}JT`dhiKUWFJk zS_4`oq?|zRJFpUBwUVaEvgJ@uO~~+oZ{|$r)*QwOGS@uDpv}ZnD)!)^b%WbB3kKib zhQsB?YuX|A;aY6x$J;sFx5g?A0X_x(JAK+>j-fg4oH!ptrDf`^J1f~BUq|_!+eq5Nq&kPI z5E6m7H%${Wxd5J7p~^9KE!{0!WXP^V_7JVGUgx*Y_y(FOR!YF(or3zJlIA3&mU^j1 zLv>*#7K;BiF-@sysSJIMit`-ad{eQ;>h%B)A$3%GzWofdx~_BenmPmsK|GV9D8~F^ z7tkV|^Ta`~s_Dr>gSIVWHSv@(C0gUCd!Vm$V}B>Y-;@7E+B*hU+HGy4NyoNr+v?c1 zZQJVDwmY_Mt7ALq6&sy&jFY_QR6YCM=f~dleOJ}0RqMyRs@A;c9QPb!j&Y6U*c!=# z2zX|XU#=JXW~HLO0jUk8ALN4fZF)us+1$f%|SVvMZ`03dA?gwUs=K{%o_;diV7Bl6-oU|oVU1M^j-tbCeT`RCkk)22m zs2>|%qGWV3n`%%6@V(dH2O0KHWOx?y4fWa~gtnVm;blb};O@2}bq)UQ)UnLw%YG?f zAS$RQ@hIr+^9J2vLYr>R0dS|_ z#O@*JjCN*sXM1DEj>h%@z4V#_9?r}-SgjmuS{w?=hPH6H2e*lAn~y^uU~!Jt0qQ4uT?c>c4usEcN}-cR z6`l1MzJpWOn*A2H<=x69Ev`&|lZTlS%{NCn6Q6uUbun0W1?gAg6ZVItJeciCGVHYYNGD(3GF~M>&hr;kp3!xoiVaJ+0AD!J z$xkX3Nu2!3;F{~#FH=Rz%2EI50DHYn70r| z-;X%tSgo;cA||5KHL_^E-= z;LrwJ2~P+Cc^+yOrb0hrMh)Fx3H~%sq+RF7|HHMn02e}MXi*dElp~QQ5cBG z-?X&R1id`3aeZg^f^zqyH9*^@ z6lb}As{ba*RrJbOw=>fX;#b6^0*r#iWpZ#L=$V-$EuFXu{m1Djo*;~=%An{QFz@at z#0`<;o1y1@0yJ-A9Q9*50o!96L0(^i)AV<$w7kT|QPQP7r^hDJx9F~?V3S8pusr2! zPky^mj9=G9KK_dE@+ko6KW|M0t$+!%N9dl4-(`V{z0=(fbjtxj9`kYz2+ zh^vnZZe)bw#FbleV%(g7gYHDh_V>-dQoTwC*Y}38u z{VWt_{#plFUV?VAIMQ`%PhdIeuHH$pfhAXWnB<@+bjm2t49{npp73h$5a3}$>sSmI z5ZSgxxnXK)QO{RrN%D{pc7RfQE|yytow4BOLsPHRt8DZBrmuvzv?R%2>yQ@48`3*v z@@MQI#a;@n97=ud@lE>X3neZa@NOxyw{LZNVlnCK-ob2ywXhs^(L&WB7^dhl5ni2S zuKnP55syB#A;!IKtKpWFteIMPNZ&O;IFw4FI$nfQ<0HR`kDlIWLwyd7R@Rx1zn?k2 z@hu<&8fsDJ;vwO@=nBVd*3N0ga!N+b9qw{v&uznOyY{@X`7t0ztHoie_p|ib+?K>x z3py4m`2kB(x$%}OxA^@kTu+@U!ilRpeIe}FDL`Rgi&}CIt09s3x|Yl22X<;Lven2VmCYzOw4DUj zo#6+SyZpTMX)~Wzv$a^86?tmCAxW?u^&61a_`WUJR>>@tSIAP-Y_%KX@)00>1xIjm zwCHloQLcak=i48VP}%AZg2VFH%4iG#K{WoP`FubN)q zhZoE)xn<6(S5PhxcS!Lp#+Pu4=ONN8{JJ;t>yM_xo zwlmBwi+5m~m(Rh})Y$GU)=-YtmiZkh+%6EB3kmS|dHdmgHuXUnou4^caag za^}hvW#eHn87jP(uH-Q$r!srmq|{80Tx#EvagmsUBB6*EPLk zTC+U)2{YFu;C1A7wJU2`s^n7k3~(MZ9{NU>q|nfsQO}3FOkQggzbzAI} z6d~#}Y087PUBGv7y9zaySwrVtx8ol$yGpgxg1d~bWd*4E`=FXyWq!&SR<@Pql522xykR-~lCin*<%E@Dd0zSX_`$%wFnF;>s20 z3t#aEaMX?X=m2(_xZi*DR>yT z0Q@P<6EwaB+iW@dX1Bu<%M%D^+{VHideHCg$Q(MxiA^y(6rAzr4mqR22ueznuVP4v z7O9n(Hr24x!hse#$qp)Nk#HCO9Zz(F8ybnGnIYtnBTX5gJ`fxazkqdazzMxKe> zv=5#;Rm(}OU8+SZrmDi7J9x_t?x-cn;R^dZITXQVbD$uU46n6*(&4=<2;=Dp_@Ouy z4X;vT;f840)hCz-`}^_@RH`d1Ko!ruekA^h!5(ZPjYv@ykI2;rT6!=P9%u0#WoDKg zws5p)2Naf<-s3iM?yRKxPMM%c{^KKkL;x)#%&i4WV;OYsa2fxL_SKWGDNM` za~=Ab?{nz9rdq;0iwCCPTX=LUW2v_B8vDcBz6Slud!^GGlb;TNp(Vn<;K2@z_xEYB z`a#3Fl7|?zZ&72&Y^s7UT`VT|=9H}JmaiX552nMTXf`N%p=pj|4Hkl{{%#CGSeVxmbdUc|p=@w&fWjt*ZQI^0 zqxtp{*SDbL);?klK|E%@L-*us^cHgx5Jp@b9|624cOhu^#5eopDFKFq!Ge)khuT=Ei(~VD6QClNesCF)fAhOR|czM%6F1R z7&i~@uv2td>Kx3%-8u#AQ4x*gaYRqx+SyI{dCBJ)&kRy!U}W8oZ~xnpG`vWMIDe+I zU4FVJ|0yv1ZE3W88}_j zZxGaw?=F()8gQMCjrj(7>#ghS8SglsU4~FG&t%Sy?yWy^hF zm4{;xwH%V%&Du5hEu+Xf1JIpf+Q3SYJllBH73xt3@O{Rn8Y0oqT2+0jc2U6A%S^H4 zs4I_d#qo9%yeSH^jF!{d9oh~Se2N`@ zPLoZ>selfeda$iuCU6uZ@h7W+XNN{4i_tijfjN?}$n)FTm-}$JGSlrQ39@d*TTnq` zw>95P#RLhBwTBuvZpbO3eWqLfi2b71pvPI)H4#{EnFkwXqU9**yf4UzB@^W^)4m-- z&sdl`_q5)eJd(Bc1CbQGF0#zH{291@nM-9Plh6%4U|eFFO+!14Jx%7zF3n~p%!TEEAronM6>C@8K#n!CYS}=x%E!(9%cc|k?}1_g$6s2MSghr)PJx;@YKwwm zB;isYnatJ*sX|Aqe1omKP-@{xMzQYrU`)OFMzc>xL_UGm`Wk)sQ`gh6@}xeOesao| zF?hdYbu-l&_E(%E7snOivgW9sibI+A!W^ro71o-@uQPGpUaE+i`g3y30`?1f=SXT5 z#aRtXa%CrIc$-R}{z)uNXsq&(+fW`!t|{zo#gZl$7=otP)HO4fURNB`>}d@N`O+Al z9-8fy(x0`R6)FvWQ%*bNV~XHd705-CbQ^s<%j%%pGeI;n@I8ZYYd^6l52GLOR1s@q zokw7#vzfUqF|wP8O3+@F$+PZvX-%0(8o71GOk+$v8Qti~aauJ}>qNky3u4EF#8u0L zdiUw#LtW84haGQ2&1GvKJEa00g9mH#arm&|0d=8zsU6pmp_J0%4uM&q9Hng$NF!#y z5@QQ%VH=mA;nh+l!A2`2)Y78yl>N1eD_}_~{Yn7Nn}(L*S)JHDeQDS|LUEC`Y(7Eu zsy?Lv{7Y+(A6IBY6_eGWNYPdv5XLH@6^x0I&Z=Q@!w4<`A6Mm+X4Qo8F3Qi9oklpr zA6l+fOE#C0QPlXq(}enqFU}sz*rcx<#X^bdFM4jl+$Y4u2+Fo?Z~Q_ostsP*|Ef&N z#FhA1F}qY#d*?||Q0(A>>B~Q^%CwLvc|*v(pC^T%ql$txK!Mt$)YPAqEY3 zc4%q_tIm0?)D^#02SzMq7vWs%qNi`6(CU-`4-?>R!n+S-b*O)++F=$ zvQU2hIEhsXIhB(aSTHT#B}yRz(c;fBvFpC7FBL!)dc27c_m2G~SoXVNlKkpE3cI9G zs$8N9MVY+hDL<7O_22PhZm>Hhp@lOG9nl{mF+(M)i}9I_Zp0 zrmq_sWuVN)N}jHgFdx8ij0UAjoJkR5p7^MXoP>Na3-)Ch=)p4FiLSF3Tjd~$=CE91 zF_y@@;m9fXI#os+W<}N+t*KU2rOMT_kuKDtj66lg>XZqs`ps$w<4(@2wUd*4CHKpn z;-E9>&z9uVWl<3it)q|Xyc}}R(JCVmV<@_=@II8**uYkCf44BjYfYV5YwJp@7|Eoe zP(kAHr+5o~OYy-h32&{ztHT|VURi&N?4nt{UmR__ydOW}SWa$i+$M2?D)g&n$2%M8 zg1RVHrM^!f--WdWL-R9{=Gz{-TCc35LFEaGC^39EQyK(MYJ#diGNofHwxwNqK zXWK(Lp&?Qc-8+uO6zT_bsujiJn`DOHMpy@Z3}{sH$)+{c(Voa@zbIE!Mts_78+7%Wq z2Bekm#Kke<**yMBEb}YrI}3fPVf*t%OFI@vYKL6B#E1ytjZZJcf_lg^rpbMVxo>8<)_vXf$9 z_^!rnzzMQeNd1=G-L(4M}{+IG8n)me$q7*9+7~bPhTT{d4eVD%M5QY+}D%D@XPp z2z;p;a>Hx~mVp=Cl)iAmje^c;^3XWPA12YJ@or(|@Mzo*n32IWA@i-C{J*Ve=Z3Vn zvfC{*(@-N6j+r7E9qC~pOz7Xp&kDGLHj7!Mq$383wdUTRDRVwGtAb#2->t81+`Y0r z#5{>cQ_LJ*IHI51lfh`REKQkCw-_z5r$EheW8n;hjSU?Oe3vsxQACk zW_W+tf|v4JUaP*mAAi9Og0oORyZYzc_q9WE)hUL& zK6596KC|ooZ=a>8+vi2VKU?IB@(W+|U#M2Gm0wUm^`k#qu0~BaF6esVb_FR8{5gU& zpcH9<&XjBvP9XDXB9tyAP9$E{nUR^W;qu-TN1P`ZNeT#DTF1G#9=iBu+8^#;;%0V$ zWB``n&{EhVj5S6A!ys_o>G1;+h4Lh&L?rkna}0k?uszF5Rd|h#UG@0%t7$dt(`+~D z(J@`jYtcKjH@SZk6FX}{;%5eQ_Rc(DO;+f0fW{R(jI_|Se8b1q^NsQzaYMbpk|v$( zD;-ixC|*bx@}6QAzN{+0NG~znh>}Yo@@{Fj>aLq)ix8!&Qm=?LWufglk=R=dz+okg z8#XFuK|@P&!hEji`OSdSnZ>K)%mK2lxTi*Qg{g;8$#WTC4O&x%<%arPphoX%7Q57O z1b$|BJds;H66xUHe)qPV{5bPG5O;_PPT$w0qg8rtu~GVDV$(~$S%#!kETYIg->5e$ z<+kobH@BK|0hGZdRJ!(8?D$4he;)Hqc{|vqX0M^^6ok8ksc@G`_@I~R7;^*#kHbM( zoWP0uxp<63ymp`0Fti9`5iEZaL)vywV{H?V%bR}U4?M`Y;75IvMWgTHIvqqcBR_9_ zS*#zx%ug8rQuLzD&EV=L5i2c57(~+s9V*yhmyjxL9q22v0)lhrQf35ki3u(DAh5Br^o&0SGXVv5Cl^|nIhaSKPH?A@xk zL0IqO;cg>z`Hr#qxzO#xFE$SsJJ;p}kK}k}_m?3Lr2482b?}jQ%Z9J5T`g)A=MdLngjV z${5`rXJnZkFtV+tDUNDst`_=?wn%f>3c`tLwYFH<>aJTg(>J#?cUEszH_tm?c4f$n z!NUIJZ@cPopW)kSH-Eb9M#1+#>UjaqmcZbei|Sz>~{8$i5F zGRtG#Nj%(`-(;8q!NyNM5+;7G3%yDPbjqn1&4ye7kSP3pnsASHnG&9QSmV+F5ZHbi zu@u)uFv>T{N#62NlW`)?qr|r;a5HU;C^H?`%DfaKd<@-rP$Mw&-im|Lavs+WU9UPK z`c$I~*A*zeL$x}`gS9yxaJ_Ta+7yR-2h6W>xxHzJ2=lLVA&oZ_NItspAGEdpNNo1u z1HD#{St$Oa{6ne!Qnw72?-v7Ek8v=@H<7=)iUGZHRef6phqf5+VeUn1SHy^t#tUQ9 z2K(_PMcGm})HssZ@+HhMzdYOb7sn1rb4Dy!)e0T4RT1yDH7G9;u(vH{A+N2qNsWfO z4gHA?Nm(mM+kEC!c;oR`%B(!ZCdf$=_iu)-ISoBKv24RJ$M=^*f&ED_*>~Z9u`Dqq z$c^EuH$4W)XBu6aN=(g;3|N_jtb%2?Nft6X8P&85sV>;*<**`(kW5N*WHI@*Q?cbU z=Om0mGOi!OOp9FVv6zyiAvgHMdw;t3zqYhnL&2Y*j5KE<6@IGh?}R^uw+C0;Tl5j= zoyBGSvGa8yg_r~d?2`y#_}kvu--wY&;#+eN=kEi(RK_rlq}@TVSKW-F!cw48L`ac} z_hK2&fH~u$8w`ab*v{NH>(f5r2^PO0Yi`1i*hNz!R#J}YBlYt69TVpJ#f4N%58iN(4rHnx8n=`1t^$4?<*JEtJEaM+e% zB6~zoay#%YQI_BML9C~n0M*2Vl=usaEz4GeK#q)aOS)Y~Wf&~BPa7Yis(0DDcrviT!VZdH^*jF zfD$BA7l+2RF^fnvRa^`Hd|JB<(R6nOR~lu&HSk0_YhrK92s1AG3sClO;b3!7M63Pw z3u|UyXSNuMCl6Wj%cR0kp3Jc3_~8S$muGcixSAA{9kW+@I2|dx;=q_gb@OK*@=>() z+e<8~ay2zhqj%0xnW)lUq{Gi9a2z;M%;`HF8nQwyd4Q!C*o3*yyDp6beb-nDpYb*< zC^~rrHmK8Z&nTE;YKUa=8%?Rg@nAM_VGvKNDjP>an~QU|I3I@+j?0&*P0nagj)s?~cwIzRV>9=YgThb${%r7bgKCyp`k(xjb3Sk>oU z2B1X6gh!WLs$%`F6D&sRkZb{UNPogSwdJriX&_74D3V6R{33!k$IGODAj( z0=yeDa2>QkciBnow(o@+R4rJADLAGU9dYbdEYa~w7i_roM&0V~i|pi9q6=KWXk;g0 zu%^C^|4N(_U_F<+Huy2Vs7zaJ$tqroGFG^tQ!!Vbdg@YPj^jX6GjEBHCtt>c>o->( zaLB@N-1I{gF!&fMM=>viCkX1IB|_mS3-8^?<&0?)FVrHK%ie79yJaFTzd{*x;HqMKI*V-udFQZ+1j3IxC*Mfo6DEBHg1hBs@}O0 zR)-}>qoj_Y@C|3*!DmlRULa7wQ;tnOXSCBWJ09C{6%KEZBw$i}Z^E6cruQv&Bst;8 z;5{T52<2@B?&KfCW@VWh7)`4_{W($>8|)d8ueaU?2bCjZayaJhzW~lmak@^-Yk=45 zsb}k0fcG8)ezr`@k5~d{OlfB=2P(5rP)8i=zIN-MQ#zaBacN<<-)M8_BanWYq5XKM zt~<-UeFbu&@1dnKyCIZ72{F%L+FAFL2`pxxGUeHrN!Sm(Vn+N3q8)GXsJdm~kLkFD z85|0)=aw?s-b+)SHIMEUO@_pyo<)wkcR{f0)wHX%3iw2gY6=yye(lP}?rrt?r#z!l zd&#vgtqrAm8fe=fPrkRw&yJYClOjlK0Od)e*9b`=YPwDi@3-<#y_*ea*2wr43ZjW02oMihacW!Pj*Ozn4YyBJIv0Q(`AoPr9B^(MM z8e8k{?t?R~^D%;(9ezq(t^)BtWlqUwZAJ$~QaRP{J=D{h8}PLf`Mpq|^FowWX7pgF zyiksu2ifYT_%h%kEShdh?N^uF<0mgKZh_cxOl&aqUC<^wW(h&D=i_EE;cGKtrPcAJ z8NqMIY54$=OD`5NIUunERZy@eo<^jwFTog-oW(f!f3tbf%n%k<5tbPorsWPj*psNM zTJ2tL*wEBg=MQG)d3LL8j#QN^zJhK!{)Ovej=mK^x*=218d2R+zK!0pHQf?a40W~V zpY{iO-s0`GIyjHJP?aZC;Sw|EfvBxc7eFU9VRmyzn>+n3v3CN!R^t_Tjv3&C_1%J~ z_OMhUWn~$z-x3Gzg$cgD8G1PfeR3ex+;9Rd*cNo?;E71blkodE;tB!q5ZV*b9WNpW z<4}w^kRw@517Ye-mIZYs-T)?ci~|a*j~tPV)PyP0FWO+8ZuLEE>8ppwtfHCIjxa_y zijguO9EvA3XAWvN1EII?Dm9fA>rpqt>4egij+;S|nd==8OrMfnW(U>}2J?vI+EMZ= zGrZGSzuDO@+*E$Ulnv3#^rry;9obPl9Z|osQt(&JCWf%dbnC5Y;2>(?VIN z#f@AAsV0@#yhe^2x7@Z;_@!H;sTVZ!mhexKflQjUwmiKl-tNe0hqf>vO5vw=f%bgdKKLmETp=dyG*$(&JZQH*%>kL<$anq z)zrg#9v&ESrv58e!#4MSZ-Vh0&bNcOc$gA)uOlAbv?x0Q>o7r#0(VTL4GEE6bEViI zT(A<|p>n&%mXodR$L5~`$Ff4r3L~Vj(!&wYB*J^xz3b6(>_@hq>RbzRt12+A$E;qh z$W5DN{p(V;suQ)><{Mv(f5_<@w)O`}X0ULwBhC;wR{$k(e;4k2l)ntuUWx2oIOzsm zcF?b7w|9SJgB9YV5WI_|m$>}(_%J#>0_9qfya;(2-H@hM7-}MRbo2(wP(&+v9RE_2 zYogoMCP?;g&1k8~MH5ioh`C2K2c;XS^|=^L-kIV%JGsSb{j4t2+F$lm%hh%QX@vsz zs2Qua2$-BOL2SF+_@tk$W&7{Eo#$%wKkn{VCiRP4Mpj@AsRA}kgNazl*>ivG}^jW# zdAOHOnrq`))F(ohF-Xyk$#HEiob3^MVa4Hb-dMkJKpkp>N23OChJ88faHM^$QWZ~- zM<>QTUZ9;uJj-$hF~^4+t`x#WK>Ud z&ruIIA+O$<3Wa+wUh8U%&Xn7@6A;u+Q`3#Ez4Df-yw^q|9MM(2^Z)OFNaKkJ#{OsY ziR?2H#qi&FhxY$d+3Mo_k4yM9^b21!Ux-QE_*5uC4E>lIcXT)oFxL86jB2s2Pg{AhPPe7av?5By2Fy(x-J|VnUV{Y z=u#kpJM%qO^zhbECc%^f&Xadvv*?joBO%G+SKXdMp@_uOaQ5{+EqVr4qKt)H(W}Y5 zMQ7%0^7G2W;A4aNptQLrWryN6Aa8)r6(scDp9aU{2OFF>xJ(tcMnCnS(f81F3IZ8- zA9|tj*-V&e6IA^eGQvD^yvMCM>#m>rI>mE(!Z2(WBCZ99;(Jujh039+d7w^a_<$W|wv6hZEkm6d;apAwS zW8dhhF%5!v_X;56>LgoYN1X$jc|k086y9Sa6Aju$=;ZG#{1Yd>zx_)``7b$Uu^Jy? z(9fsO`x*M8`|lQ!%m0d_lgiItK*8b@f2a(=nFn4oVfg#vkd5)mAq#|m=Wb?YJ73D`?d0kM=>WowC+lY%`y9s*sni!? zkH*)C-3JmMn#YQkLZ$Mv$;p_nV3-g9BbxHd@|a#7)G{?i6rqlidWWfZHp+WsXkrz0 zS!6hCrYR+Yu3FxiY9~dXePS&K91=F00k+=i<`<2sPAb zTZiP6tj}(4PecwwBzQdwn8Lw>0;yj-*CA&5RtYDS~Y?N;K@a4G)<+=5D6_Fl|E9oE0 z|3&eIFS;+}Xn1>|E}?zMGIz4@@MOB0LJ^KNEAG{3}-lAPYus911Li#^tfumikv3PpCu{qy(^8u2)WOcfqIW2}9J>>uyA8BE% z=Y5dYZ`3{203HvmALgKsHKA7kO|Y5rV~pD)KGbIM9~h`zWd;KMKS8^h&{>jP6-iQ< zm63fCJlu&bOO(`jmrd-L3XzM%ptR!9tm7UQwb(5e?HYMHIY^M>*32gD>T5Vw+;4Q$ zdDrQQ_>CThRUkR)X259Wk$Y&W2;#6n6-;U;#Hi`G{oCUxuJ_*>pGp@Rs;L-3vx|_y3>Y7 zu|4!Bz4KbfIm(`-RH|@{Pyx^4>M>!Y0PcA*`bM};>#_u=Q5iEe&4h=lcjvgdn#@Z` zV4m6z4igGHT9y(cY5#_qn^yg^#*k;_ixW#q>^ky%KGlxkJZO75o9qg{!q#1Qfwqr_6A^AeVmyzau;1OqO^}K`m}(Tp&Sx|pN!qDqs6A=NIIz3GA_}v@!NBQ z2O=uUWVPqq^2tAjj%(?cn4;6bJVGMr;4-?QSd6kRmWoxQ)RNCu<3NP&1V=_RBFpGg z9M(P7(V|jm>5dx3ki!T$L)Va*lNg;FY=|wSM;AtR>*q1^%(S&9=hKaW_4b9T7VD*c zXaS#sYQ%U!nai>ey5J5}LhCKuaBnMIm&C?+NcV4W_r$rQc2({{c*u)`UU0+j`Fdr> z670g6AsUKu+bxH?oHD&FQzSW_x}JQXB_scelV%{#qe+xE^+g{)!~r8Xencdo;w;!R zew7%FyFmftU%Fv=)%gs1OG7!AN~l5m74NM)#xNe+gFWJPdk_^$jb7bA;Q0^bxx8Ze zD_*PP`48@lJ4Pz}eyWT0|DDJE9wN*A9wUpKn(dOATKBk*I%ecBFBB+En*Dv+$=Lo{ zHaczdVLX9*%yZAga*@u>xQaB2d`g~cHyJ`&qgk%5di^FLYZ?+yp0eT1t?ncK}RsoHuW~-n%E-4s5Dfi1&slavaM3#72K{!+DTOWT@u50 z5?L{JrQPM)D_uQ3o^Nb_r(Dm}IM`WC(c_?`H`JP(RH=qr>s!?Mxq#S-gi%EfSfW zTddl(Am_B?9%R&DYd2CmXNqz;Wd3f)D7%)+?bl|LlHmF?s=qmEv?)cDi6&*UX*y-F z0#l!3O>Vp5Wqi+mKbI`tP+D6=OQ#)Q!d2GCDR2z>)*PH5ld(2lR30;xPOX$>IIKk6 zdJwJjoai$bIwH+wV_{V_%mt ztIla-W+u^S14?d3#|4|!2wO`ioKZ-jqr+^@>~{9Z=2<>SpG|~odNkgElCB_}8w4e~ z&qKUyDk6cD>+E=?-~stGyaAxP_jEJvXWU;lY|{$+eNPjl5Cs9au@(Ub;05~q96IuZ z&PCSm2VGZ|P$IUF$1BVsNphKXw1JUe5|4i#kpTGv4?2pHGt&Kow(Qkd1+WX8jZcr& z7k!-#3_1Yp3B(d&^#^ZBWlu#Y3ZXM~)m0;!a|LHvLtf|50}PPzXcJm_M++?hj0@Epp25S^ zx{GMW7paK`!DLMkNeXM!vbqMAwy0l^FpPZv!!2{6>sYoPRgW{ArQ(42iH>O_s9ki? z^JLc?cl=-)4`A_=Giv5xrqbAesz z4*V6@K-KqzsQ{wvxG>8s@v>^X;{iF58_LH29-GDsk6$5_+y4+b72t4Bd+@`r7OpGdD@)>PdN5DVvYs!jK%>1GeOO3s#oY} zdB@1W7BIVqQUy-Fk;qr2aZux289i=y_?ODlH&wXziUX$*|8c_U8aK4|dj{tt2IX&3 zecdo8#OeZEomxw2-jOOhPeGjK8R)Zras?CUhg^+cr*^Cb?VZ zKF!gcCz($}(7gN-A#!-l^u5A1&J-Qy0I91(|Mcjr;;Bd4A}<;*iIV92=-kum0{{6P z1`;4jz6QMR7{BN(`N1rIZtR3tLjRy#3Q-0KTAd6(>#w}~vEo25!xzqRL%Ll+wo@Xz z)9>sNrvra`_fqu!qmtlH(6#aCv^on|O|c3J-efD9g)oKhkZ?xzBnFLV9O6SwF|DeG z;o^N5UQ}a9f9E8HZc}%bPvOuX&qG%ilnIj`TF2r{IMggaQ`u>0rG(_j{fb^u538a9 z%v&_!6JRX-g1=GPTk{tI7RUuf2Z^1)s5{P3Um5?{yL;I_55u`x6$Txf`C-v=>~ z{4S6fL#jO%%6YalrloQ9tFw`vo-9CzmB>;UUMmAvK}ZLA{YO9Y09aNFaAu1oawfh& zlE6lMVZLQjQ@`WIdvC^^6`Ay(j^6vyot}roDR=!V@50(V-+ND>N>j!kTOJjNo!3nP zdxHDMoIj9wjSW;d^5A}hzH^2jU3bA#z-2=_yo3-2J|+phQoYmus09oI=?zRke;hsE zpLIOLfcRsHV7*J__v9=1R}XUhz0nSNWY?P;?NxldI^Np>zjlB02Kg}fy+oM$n+;EI z1wa5&*5?lABVX)I_rvtDC*ZSm6ia|Dm%5Mt6 zWB&IBmkF#XCmh~$QR9#60n8Zf4UQ3_6f`Uq>`&!y9at);%Ib}->BeI^zUoE7^+aUA z=kZFyzfh}mVs1!;53!i_73!Lcn+v_I-D`gqeM$!RI|$R_?ySt3QWW0!T7x|yy}%2q zYO~HEw%WWn2%8Y%#%b4wnz?Ty$36^KnK%>MX}hnAFg{mF6wF9LTg`|!++Q_6KUejH zs@Ve+iS!hMNegb8mMn|GQErmS5Hs@$?KFLJ)Y{~K>tn=-U%(}oS9q27t;nzkw%g9N zEhUh5o49+}Pb%>tCpg%cb7C!-+b@_Sh$si9>@mZ&C32KCC4>TR;M=SY^v{vnwYF&~ zF!ol)6DBsI(T|yIY;ROS0&s&$FD$C^=`tHuDztd=qWGM zsL{5~k&4M7{?s5W=Dq0h)_@;_(`5V#SwqK2esm_O5!BuTHI#w+b>ZNYXUZYJtsjr( z-(=k&?HVnv0vWMCuvl28*va2)FSIy)4na&h&u;9{APjm-4!!{Bum4ez4cbXB?G<+p zzB_Z-Fqp8hF&G4oEuBpS0}F-qhn@ligP96WbI5C?$!xxL8>t@rg3{K0j4W`V=D5dW zRgPl(diKNpQMNoFbl-*pg!dMDS$DP0xF(%?z_;EZQsvbAvo1M3;yW9$@vHD&y7$7{ zo5-feY72YG%SyxLjRTU+hrTptHIfuxmNlJ~+&MwCCVP%jR-eM}gM+Z~}Q8(%#6LCs~jCcwih z9ssEB7$?QO_;%1ge9Qos=DxOU*RwwH3GJB6wOi%GUbO)P#%C@ zo0+C2JAD3UymKLu=A`vJT%4|*&KAK6c)Zjm@P3o!FYm50lxiJ4@@;I7?!s`h`c@~( z_5g~FZcVd*wdzlr1Ua!PS;cDm+ZldX^)efB+Pkb{5NRjXnxk;4DANccv=SX^=?pfE zgeUTQVxuwB5|v-fsZz?R69*+Kl5E{6dl}}t52|L`RbA+nl8aJ0iERmrO4 zcKy}l_(SHhT@V0ViMR;ydbKR4kj1P9u^QF`>h|?y>*T@a64ujuElu-X=SN=8<9jb< z_OTQ$hwEvN{>ThM?W%VNZZmVDbf+90d#NNF)?!W7#v;+#cow7?QxR)4+AMI{tXhe~ zCZjePdTN}7xpd{<7-BLl&o&)cI5|Xyi3j zPH-7AiJFPO9TT+c6>zS4f#Pl}NADmP7He>oOeQqMwOF}cSKDQ`WX-I(j2#d2IqT8o z9SqctUzFLkS)uDYsMAKa;11{^%x&S-vcmzauU>vP$W5vW3H@$E=S`Rh6{gO_c&+XZ zQM+VxJXPk$!Df9lFH1-E2`+7M5I#>Tzq=B!=2Xt!1z+k&2Iy@A=nuIWjZX+5E+B8$ z1zXwe&yEk@T;#3AZ(CBU@v^{RHpnYBlOsh6_f}Nh1m(h*rc{l79gdEI?X_1~{c3GL z=GZQt#!70dZZ>v)K*!(ytZ;Z=Gy~ijT{yiKb*KIG1V3@+aB*}uR~BC>S)QidSUL#p zVZoKI{2Oyf$HQ%Ba{x%lQ);|SSF0=kM&qt1yx^shC0$#}7Y{#5xv<%9@_CLzuFn~A zooB%K@aXf(+Ob~)feLk(g}1nXuL@P=#zMQ(e^g@{p;Vt&ZaT7gw0q(=VJ-hn>FMv` zFdMl5{+CM^p(`odjB=JIG#9Y`-5i8F%WEyKX&93@lAI;sVkljCqI6ffzk{LbL1R%z z#>ewPUC&O5_kOiS?&>+!M&gZnxX(T#T$isp9wk9FKV&VNd`sJcjt48Yp>ZdTYeY(G zqt*T4($f0$bbAjCSPd2&luE5ogTD|?&6K>nGQ(a*aF5+pM$QE_7(duKxJN8ohjI^SQ3Wz>;K_k+-R6!53-{^Hx!Wz-8LhnL zm(GX8;oB@+mwO9rn;6ppng0)M-x!=(w{@GOW81cE+qP}n?$|auwr$(C(dpRe=q49+ z-tXK$=et#RR6RfU*j3M(wf5d?%sB>vc=Q$fZH}`(m~$-CEPsR=!Fci?!F|@v%WH#* z2=AhOEwK-Qd>z#%pxaP;l`V?H*nTqf;mZ8((Auci4hee)HwJ)0tp4(MC-ul?l?Q-29W3m!G;)vY5HToObAUp|!nQv?p^S zC+OQOQNcX0Ya(AhtlEf-A$9KHPCNpr_t+#ZI%ko=Jh%fjr=7;&P2=toMtcy-_aTsC z4ivFgvQk@r82i8}v7ln|rS>eAB!g$vo=sri9MNV={8Op)ry!Ica`;`Yz%3;$Llw|& zVG4ZFsamNmcIl&%iPT*fm3Pr68#d@wpMoIo_aOVomk;xJ4>jJ&C!<78vDYfhZ|g;K zt@;>$o3t6W%>u4B`U0!PXkC#@V*WUY&FdW_!=QvN?^KM5Ze2?!a$if=8@oHpQp-@g zaVQCfPyzy;A!HeVdmcJYfJ?wg}{c?*K1?Q#I8}PY>@s{omj-9Az z)!XhRJNl~6onw=~*tny22jaR2xP`@Hw<-3z5i^_?j~i)1>yZ>*K*5J`au~3`{JD>v z=*GIZn7m^1*L4)SeG6M}_h==JiDbBTsC3xHVcr+_yx4=d^yLFd*rRsvu@{!4Omr;f z;LTjfe3g)LD>|-q9X)r{Pr10O zuIBuCsblhU#ptiGit+3eQpkTWYwxxTBE0IMxV`lw+7y#PcHjs=Fu-(?r@7sUjN`xsK!i!aOtcCfX?c-rDjmL8TGh)~IB=_7B)864((4 zH;dgNI)VSW&@^(E^@rP;3F2;r(j53=I=|4MM^>3!GiK7`wsVj+l=BCQjmMfY1S{GnLMZ&F4Ho6*rV~Z zUmH;68q&f%UfL{Z1fSS*cUy7r;6}aS8LzTPtVmG2xxS2(+k4L(-rEiRESqx+VPKBAbpiI8je!h94S_pDB;&-yYK;F`|nIDFv0*(16nMRW@gbY}?h zCgb2d$4wLc%t3E6NfSSL$9e>A?T)2C_R2=_ModY1Oc-DA;@-4~KL@bKe*X#8sgXE& z%m{L1dT;}tp5Y9v5%Jd2E`UyQUifZ`R?=i=f;f*G=e6AJ~=?g5jro%h+ z2LoEU5=PUxR=o)(!z8Xrl1PuX0qx;U`jy0esyCjTc*CGWm0Xr;WVUQUGp{WveL9sf z()=^jQ$M_||cd2X&QNw3Sy13}Ivp+N8m2?Dc%piM!=pdrOc(-LGV3}7{J zk6~W{YNPn~sDl2CC`hYmB?Flh$cC{q=m-s#-&w_pJSGvECu@ASNo@)Eylfn+UH7#F z?H=45n-OzyC?!S`3^|Y>&z7VpDV+4@foqpA1y2;nR5WAxO_T>~WV^Q*|A-VE<&gKa$RzSy~?7)L9%yox+~xXg5V+UO_%MHeRhs!yQ=4`cwKfOkH9r z(f||LQ7%j0u6grb&M8EAw94D^Zc)u;rIPBEb3i)Aql(M`xAr#1`r~H@G@DVI%7vLs z6SJ4dlv4MjB;z)0ff9D67G()E%ug)K_Oe1uC}3J1hbBuEeVy~9ZB@o%qY9A;>K!}x zIH%n0Q8JrEk|ETc9wNMuoX(m*v8GLyy`e$aKeKdKJeJ7B<@%|k?_{TzJcg0IajtrY z(t1^|F=U|_3U|q4B+``VV?iL?kT*qi`v_6d_g|0s`*@IvH`Qu`Odv!+;I6v@@vaMk z5(0Di5hi9aWH0=!2`8CX^RE!oqr~Zv?YWUTs>w_B1p+7rDMi1W&%g(cV#$F+>fo*+ z%L@{PLSal!?Cf-{{Ln?8BDe-vBGhIpF-sWXc4$p4z(UrKl<#DuvhST2tdj@pVj`h` zYN4ZW<6JZj&zfLDlesy}U;^9QN55v|ytP*prTy}_%a2DpwIqx{+GTtlRAvRR4Q;+aA zZVf)2%|^w0bB)R-M0)w0|Lme9r}$gXoIQO=inahfSEMKfhvu|K0V>iddFLkObmwG| zReWX#QF?PV*9!NXyFHYD9_y}g9!!Dp$%mzOIIOveTTx1Zegbq7f zO2mr5XiQ;!Gzi*`DC9@5DEg z*o*{2f8+P7!N0mJGQKtk*8g1f{ok$`|7;%kX86W8+c&b6 z{%5-nPiAJ~?mWCC)_9ft0;#qozjhEmKe8fXJXE>R>ujj`L1hMwsSZabp|8K*9!4Cz zU@2a&7=dY3sgHlE>aF&)`{Sg!>*H6?4;aAZo+~aC`BB`^3${ljsBW$OoWGQ)PP6?` zze>pOm?r^Czr|y(7-$@l#*dSzR!mSr$2WU&Z?nROoCSOpsAN>hmE>@-n36VB=39 z9&}m4-Rh~wpZz^YE3PlRB|yMG?Wvb!wN4b+8||n1>!Z)q>*7Z!uqwzmN_RmA@;UZF zwJ%z;XEUD*Tqpt!cp~~ohh-97p-e)!7@ZF|S{FE4Z?LtQz@GS=S|{|`k`WbXb`R>% znUG^3UBEi}SD>v%h)i1jCTWXX;&av~dErQlQ%8=*UC)TMPAvvs=`3SPR(Jav0kR!_QpmdL5+wvWwYHS&zBXWfzO7=#{~ z^W?-6z_|Ycx?WR#!i3ixOZkdXF1<%Bo}rt97svh*p+_2^bLI}^@C30)s*OUauedkI zjgv7<31edL!2_9xNMNcnZl*?_<5f=bW|d7F;HamVOw=W$P^6YZ4W>p(54|(I`9~7o z_mk~_Fes7et3vd@Y(BaE`}Ou^>*`|tkKwv+ns0nlej{5+#|}{ep65qWu!{v1P1Qqz zp$!V^xhT@X&*3!qC{p$4G}3O5wXT4n3tC#V0>9y%U*R%HGWT>bK0OdU9uX?y%$Ii2Wd{kX30}NEIW7+LYwT4{*1Zj{=+d9zJRW0 z@AVji_xF@`Pxt8Xo`Y272_hYo37@*@P5v^v72lVXGhlI$NDcUv@X>`^!c=(%k1?Rc zksT7b&vW$Wz9@c((AbNXl6}ZE5C)g#ue19kOm?_c<`{?_+!+Ij;AX_j2{FSs0FqeG zCH~-A&9Z6FKC7&p-(!=m%n>>sJ1dmSa*S(B=%}a)B-XMwkD>zC#J6pXw%ra#{4WZn z71mIsvKqDW^zuZTZ**HhM-+<(vU=?!N=8jVr+ic-g;aklQcS5srmv<)kXAf~?%vP} z_51WM1I3uhP=F{CvZxZS^|^B zP;0PD{TzV?@S9W{hu38x@Eu|8DV%+Zup-ep4qxLS5CXA=V|vD%^~2VerGO(CDtt>g zTrTm-adnuI_20W*+CNL8Y`=;J{cB3|KbnI3U)sa}+5eQB4V+E>^{VyF@{MoCZ)7Xk zd?k3m`=;o6T{wVHqZ|&oEjE*bjao^9%T%E*$Pb`E-~8Z+X~5=aK3+|Dt|=roWX9xu zEr@E662gZ^@=BdNT=OtJPM#*z6EV~kR7KN;W7&0iqpjYqp-YvjW(C8E zQD*SCXgJ{=9_IxDmt$bDa$DM%tF|x|qVY-9^QM*+?zy|c)EdNzu-Z}u9>%sQ>%WI_y#FuFDYt~PIqmcdLgsq8;`qyiyZ<{{Nj>#5^lHA-a0WJoPXlCWuM zeU&jBA?dQ18R&hT;b89O`DheK@AHN6h9_;D@Kv=~%p)%a^jpDVcr zkGDP*Xz@K3aMk0ZHPZ7)XL(O$RnQV+052cSa#A~N)K{X6alQDL{sv*QM7Ot0n)-Tk zE+M06g3trTMwF~#ZwOJ%FH9$jC8ClOK0^1<8Ha8lg8{(MrYV3V)a3>d z(yXu0R0Z35QLPKk^8#{pr?C}DP7{TL^hdgj8WLU{%Rxxw_R+AQUGU`;*qJ>4+fEB5 zm?ReR6&eCV^WRd{{x3hQ@9V$u&Gn5g4JdErrSwm~F=98ywm5otV*sheFao&1&PCw3 zIB4Pw;7MqF{UHO##3)(QeQtMkt(~Q1%?qWkp!=mowPbt<1eC>U<%;Hwt#!+ds-+9p zmG0&X+m5dXPp;RMG$}zq-;V2Es@Dup?3H)y=M%e`?#FeR8Q^3pnszJpmF06Z6o-2Y zfWcccfYuGy(%-HSKJ(`pLFa>5kY}Wi^M1d*9;j=yHew9G}HYpLH43ql6GnNEhLm+LYWAb z^h4wpsFE>b7NZDF9YIi&a#AuB!x(9&JR$C2c9r6aIt*H3W73ig?1{0{J0xQ*Qwzn@ zejpAJpRDrYoMK!P%jG}icFmUA3iwBiVska}1<4Wbl&Q)S+DqjWh2+N}cgj2IAdGsb z=Jm56blWcDgxw}}P-qhxv>aN~4w6-#D`l4?rv{F#$~-A3hUHlm%{schs$Ha1kc9%6 zI@ghEGU^fyqm&QkjuH)7C4Z+^3X9}5i)0d)BEnfL4}nN>Z)ha6=m1q&1?VB3oZF2KnXUjdOI8rve(C`=5OZyi1- zoC4A-r9u=ZHo~sK=IJ)()=hCJG9^D1m9Byku_6>DtSca0#rd_lhgo12IX7qEyy$)* z`je&C#lu1BacH1|eHnq(kR?L5wwNpaq{?EyfB;hh9YG3`NY(UIx-3tcf+Yo9gy?2i zp1YRBTE443o>CVvA_#E;xb4Vk83G$dn~dBNLL{o07$f{;$vB{c1QR-F1;mix!N!df zaVxJ?e;cA+Bt(+hrbd>uSvWC1MwJK`&N<#t!XxBE)vj$3ob>cKZfY~fJ=Ji(Q~)zk z5R}de=6+qet#bp#f~1@@J1H(JP0%F?ugY0#LO>~J z-Fh)aDu#8ao|8%6@%M$Fn@nt5*Sv4{kzwHOCl1^rs1b(O{%C36JJB$!D2;#!YW|QH zgyKX}# z_DY29L_|bgQVMYPNGfI3yfq73u>wwB(A>baI12Kkdi)q#dmy&CfRzd>Z|1sxwS_gA zN&Y~LW8*!_CtQA1g|-@bcgP?7IUFg-&XM27*$9zL8OtoOsq4!A%gve%^$Ic(_!@s? z!SFyGi4e^cZ5V+D8IzUMSt62^A5TM)f=SikCH?3)c$*v;1YWSIrNoQ=rU`4Zn-yL( zT_!P)s72DStCd-fGI9G!)i)$AsGWKPmQ2jT06_n_S1-}k?%JZ znBNNfb4t&ph9O+JXn2h&09xns^lY7k+p084nk?6e2jq?B%wt0UBjr^UpM^y86R%0> zuhQuKS^&S&cR+zAR&l2o+uhm0iL_M;j~%x~P)?4uimKZelMS=2&&xY z!lYGq#HBSya|Ur$dT8x$Y|NE}dLph4A!3o+**sOM72*O3Ed-96L_$+CZKgvDt(HSY z%*ATn1j*YV%4*&it4{NQs?4fKu=lw1ZZa8srE{AiZ`Fj^AtlaEAKytUVD6FwO!d*r zR|DijnNbiMYGguF#Sx}V_0mnP<|Bo6*@TPWgES7861XW09CPS^s2aXCuEIPC*8>Xi zd4BkOE5aZ0i}2y7`LwEE?iPWD*9*Y>S&s==&M%dlr3d)1e;gATC&v!hb(EN;h0fUV za~F>892;o$;Bg(tH%S$Ax(9h*>b*teov4>sFtY)N%i@ zC4GLNFCLvmoLo4D(sCusxczY~IeiJ~pEK}QOYJzMlrf*(a*VBi>T2Hy3%2pi0QA^@zA9CK`U!&ENc0PEAKCQ)^m7vs5J4T{IzdTT2>ya$CCDZ?CAC zlTk&=U2J@jXm{3%$G38W>RUE(fVg}FQIyT&u2H+IE@>Y2crSV&Izo!C?ur~eMJ|Q{)Tq5SND1WF+S(DLDh82~8Y-zA zS_#tW$_m@-6co8#hujhwnc^-E6Fr=q4b*+opL~D2Y11f@2->E#86j?hfXt6(WmUQ5`^(ZuSS`R z#{_M)+a}i?bWExFO|CA{O#DW96*|e4{>IAj4o!sH^Dq?gp8ef)rgyb-Bp!(H`xhpM=sw!L!*rFK4^f zz-NZqj(u5IBwQVTu)s)-bIvlawWWlu?`QkQM*DD&fs<4h-N5t##;UARnV|4pl?m(v zgTf51+!B#$T=L_27bRE1xT8~jjGl6{%UeyXb0d}k5j@-JfU2GKbLS$wxT}j&x6{N( zXBRq=Zp;(aV319ne82cR{s58oOL3iF#8}I!A*g&WuI{fPYTD%J5g8CkFeR=ic9RqF zToR@5$@IS(w3)d{qC)~B6yOJr0GP!Ui40l`OKq#(clzTkS~&Xztq~X4+EaWvwo|OJ z_xv}^E{8`?$kS~IY&S0)zAQwkG`ocn0^&n}ht}xAm%Qwhf8$%=Uc97%a(_D!k^w>O z^*SOOfY=_V+R_Z6*+cCF((S8Gs~W$*jVolT@PgT(X?t_H2|C^P#lMojI>}_b9RE!w zttwmg&P=h~3ZZj&n>g;=3~!qN(KFcS>#n&S6M`tSryKh{?j2)Yjwu-M3$Gdwd6|8euKdx>QsfB-;_3 z;*(7BLs_M3nblw}in#n&nDr%ra+g*pHzK%>g>uz~%RTC%B*H`7K4zFF+&*WRClnL& zk-%QIm!W~QqN2^v=Oe=w<@DmT(Urv{5mc_f5dLKGeEt?rc&r{tEz*(wjen(C@%DG1 z7Q;&L7To%#)|hmK_W&n}^<{b0UBIW;x#hOuc?r;aD~Dc4Uf#*OLP5)x{>qo%a|S5^ zhuT|K9nZlU^#f)#_vx^PEqwK0G^88c@~r!2)ghsf#AMs6dEL(cy-G~6WRYqLpL8T_ zkegOm_?qm;>CYliF14X@i`G?D+#9u= z6?!vDJg2dH-yR}_?*OS+_3vz@c*BC5KyrYb+Pf?PBA3-FXhpOy+FJXSex)s!gE^?; z?OU9h!R=-}{Ha;@T`bFH#LyBPE|(4^^lMUyP)!ywr)V*=YaAOg0f$1JrxAPb(_heXl?3r;9OYCNMpx8Be*0_M8 z?|8~ZiS<^-tOLfeRlZ~df1%Zk zOLwrP%6iZ}@b--n(qDORx5WhFtH#YRe!wBNs@`^_@KAPVvltC?UmO9*47bbOy!pEVtUv*3XUGY3meZdV zMe3>0!!Z&4BogzZm-;~r^LPeBqGMW^Sz1>ea4{hkZRAjBA`tH4+50Wn`z_hKQ;e6F z9Tkt`^msMI6BZ#)v7~1{$WlwhWeHzZEn}~;JMe-fIh4L>d2$u46uQRI<5d=U!L(c1 zJXg~Nz<2nMZzawkXT{1*sYT~x(g(o+h&tJ!e#Buv5$q%)*;Wg{-C%H0zEQNaa0haU z(qHP3nN;*Q>_K0U?h*I|GgV%Sx4$=(3RI?2d90z7<|GMv1-}MLA2Lgu`1eFFL)FXo zUNL=t?cr@*6-~6^ablk`;-$01l}4I%Y-K>$JP+f9L&7)3t$-*Vq<}jhbKB=qU?|=08ZKh>97MV8u}6Jo(@T&aFtVaIv%p;%-;t>VMrq zeRK`!Ti4B5Y1I$T-=Ly)k7ormmg8WQ+vf9RmYv>}ou)u{q!g}^Gq9ybO-W5ok(h)i z@A_o=T@|*W6MNjT8#o|v2gNLx50tx7R4`7o3U)_5_~3QvcmQN$mFCcHWb^&)qfcx| zUm>uPCr67Lb8Q`x8_}5%w8oK|g8I{nRm;y>{Gb-La8t9GfoNc$85ArQUP~_&1hIJr zPC7?M)-6Z0(T~h_`*uU6l_rw4Uz_!FN!{%MKyY9>-cAX7*kYVwzM9|gDOTuQ5wYVu zC=4O%Gv$#gmjjI4DHLqBVM12Ri(w0AEz;1$>JiQ?{o zQ3=IkbS}Nt(T3zL<3+aX^M^yJk~!@e?FW_X{91n{7SHPVQ}fZnC)$5ivDjU&%SgY5 zR)@ZR-2Z{9AmVOsV)S)%Yhh(B3a$ZSY*ew>F=pbwh3?V z?(QG#Ln&ZbQ;?dtlIE%qtdy(9_ICNYpOmM-(7*E}+fs(P@9Jg?giX0+#Tbu`jEdhf z@ZB@USHTMuw@@hK3-oE5+Vt($C8?aoD6&gjY>l$C(Iw|lQi_8kqk8rFe8oe z8Iylg%`+N3i1S&DjExVS6*W+&=p?5;edKs^BRK61h$Qcw`{h3E{pz0`&2}fe=jp+b z6%R$yjF+h}TAd=fr<^NN7<5l^h=|JfX$00nKEljXisQP5c((&wj&MagjLBs?>|L>Gw3)c>Xsl?U~4hl9sRkul7q9Wd9G=MBL=dY}8Ts>pWf5&e6ue z`JdY2H^(==`M!~@C?!SA0RO>QnZ9f#xEQ?glsBs~aROmlo4# zAyFdoxpXP=wIa2Al9i45)$aDz;wtTm4?Ze-w^tv>u)UPsFXRT}1C6oRrryX5XL}W) z93k_?^W(M*hgJ`$LIzxy;vtqw7B5UZHd0Q+>j)wtnGX2*DfHv-d>~M)$`C>(dR7+A zMDfH4zAKrO$C{d6V?udc@yy)#i~ga@IX66vUW(3zYY3{WhE9~{PsuQX4$b28SXSX3-eFi@bN>r!>?H2h@E&9-7R&C-vqdV@$V0Lsqpt zjbnXeTH}FI&w|ajY5cza-hI)Z%AKP6mzCa;n|7|zZ@Fv$R5bwOu>e20fa!%bJ{$D% zuA85E9``DLD2AS!r|^Z`Ov>pqa!tfvlpHCkGGMh{{oBBCwP$+a)z^Xsel4!@|4V^< z&w~7W)yNq-*;$)7oBSh!>zn@@-}m}Pm15tw4~5T0q01?{rZzsaJh*%*QbxPIKx3Fx z2D5+!za)6r2B`)~kFRrv3bVy)Zx6FjR>UBrhL?(Z~3Ctgz{8N1)9p10tB! z+DE#=)!$sbKU;5iy`l~N}QLW2xQDpAhmJo_NHdh8U0Z9#(yPlRW^ zCF*O&nhe$|to$vdeU=Xb(~i`H|EtaSM=XG>@k>5tNkTLjI#3`6|7fK6p$1V^a+y|< z_mwEfuL5?NX1?j6o#{tYJEQL!D8UZTg5lQ03)giQ(Q^#lcIs-tPTiteb?dBIy7J`h zM;8HU2VzXt!v2&ys#6CRM=s7J%SJy;wAi&Ak&byZx*sCvYw@#8 zGwDLA);ZG!?Q17bgIP>)C~8~pYVWmDa$G`kxrP0V()Aj*sQPmd%;jIovvWCNvhcDb zt5f4v)VI!TpkZ7?<@NIf?wZdYU@(B`RE%J_SP?!tF0S?{JNwJNFUsukZDhp`;ITHbZ=Eor zHCY6-g-Ly8AC|SgR=&R0VlRiEH(y?&M$VuR$Y-7#8GZ)1dJzZ*qfAE66Dgy{d#1WZ5~a01t=9bMN?AAY#)yNd@Nu@JP!q0L$#j$6-|FVN`<&~oBp^_ zV7};D9+MMNP%q>6Px9;0*&P3^#f<(8vVyR*kNhGau|x*5X?4q$f>{j5BfpCSKMCY8(iE_6Xttnd~ z+~M4k&7T*ybc>0eht4vk_b0oIbhwTN5syi7H9%9RZ3yXQYB>a|7CJEpooy#iy-T;$ zs#z{idat26-K!Yg&zqFggcGbI+t}9I0b)&qtTP>)iV*eMG-0u6uTjcPaUX#%a_Y}< zz}iwL6uLU7gvi$!eA?hNcV0w$RitM!m9^0e8m*CM8<(qz3gAr^v&=;@xR+0s#J8o!cozES@En9Q&5TI1uE*0Gl9(ktSW*ODfRMX0I)D^ zmQE9}4bDv28oc%!KOp@gs!$iF*|#|ks#-pv%sL&ha~r~mHD~7?=pN5KX6|@rULB^_ zazCCgy#Sb=*#p2)_q}ywc5SFn)gufzVo)kc>HPy^nt%;y23c@ckWOr5A{deo)ki`I zSCv=YoHxbs!$ELNU`n7ASt0u?A?(JI42K?0i#Jyvb+p783i{NYu=i-zi?5(Q`F0mD z|N87{6zd@5*tJbhHIcxqv%vU7Rv$<$#G@?OMx50Au@mzfdwXmEeNXfc$e}~I%E(RU zptu~2cC0Gh zgC*7OzP9cly>=fI!XIOy5XP18x^v{77SHtk5wA@|q0IG+GRSe-$`m$rogq0Oq!ifM)r+a@hXE@tA7 zs+sk|+E{Xt83)%(wXO~2V)2<)0?dq=CY1mVN~R=#pR%`HE&YAS#C1q)VL{6&>(f$V zr;mw+Dj!XHG`<>+7A9>`Z1&08pU!gKlWkY8&8!w!?JxiykiI5 zBZ1unbN75nr|4cR88J;4g*xxZGHn-ZwG2wXWz(;o4V>K00A@x|MR%1EnIC3-*u^ne zJjtnKicOm3%9KTycM>R&4G(`SuS$4VZmI*G?4=;KmTP^_$KTFG40f4yKYBFGpgZ%` z2P%qaaIU^WweT=of5t*f?{mxb-E>qK9G+-N421XCNy7Xo>5^cEE@aZF+FI?VDnDI( za3lYLFY$2nu(Yq)W^W(TuKLH}a`bL38mc-h#wBv&qWLVYD>YTgEQL3y^7Sh)uF$q- z=fa)R2c1%>kNK19$6KffeIOb=bV^bKyzU`gSf>Au#1d-^ktLVYyL2sY1o{5vs!?O7 z=mbX0sRXyMIouu|{7V8;@r;{Xt!un4H;Ron%3g2A7-<3ATmu}>D|(&QYZ#wkU~bnN zGj1MTCie}D>}B4k0Di?u2szB867R(92*x%FBAq=bI*p1#iJ+9i%}= zS9AZh&wM*MqakS$$bQ8qW1;$ok_zg`6+}^2 z3Ru#Fs&U<=NE8UNhzLnxjSaDkVS;UI60?sDUZaG!gj6KfW$Qr46R{nl>-gN6# z$9^{*({$9qBnKH=F^x&L-Kdz~RgTl8>-6V#s`Z=EJ1D`RwYnB{H4p({L?6gNGoqSc zK+xWxAcTl8g#ndeT@Zq>P`~&-IYdD?3F0t(a!}o%1L80enRuEwb@EqMZ&T3NAO&JE zVu{3Rh&ri(*1juZGub7+f!Mw*qAO{NRGRFjNI&#`HR9&r7O^tCndH|uD~*BMJ}%-h z{8LgbnnQI^SNN;=YAU;2zwh8X2{wNgU7wIPexFojl0ISuu`-es@pBlMq`LUMR4EB4 zF>p8m1Q@~qBH>_Z5T{{R5U6265a~W41Q-%rygm61J;c=D5TfBADujb!1#sjlXnxd&nDQh!O<3RC~}HX$Ug}H3{}i_n083@ZS>bx$Xf$P~jCM z+QOac{Un1@B-)~#+WjblEF$(M2*1FgcywzpA_CLSTM|(qs1pBFoJ_A~qvSYmHWOit z$TnU<87i|@u4x@Wh)F}^Rl%6{VpZOQl;5HDkjd-(E@KslT1=tWoCF6KY7xpQZ2=X= zU?GY(wWEiJ0ehdq?crOUJ%`CmHpM@^d#)QvA`r5amMg;8&hJ=`S_YI+N9^X|v@t178WZ(*^CBeKR-HWST%$@wWZ4PuN2YKRWUl$9!^Q7+`P z+A@mt0OFuS)P-vooqh(LkDd!u%yz~+8uiCQcQ}9)&>2cWDHta%?hre;UjD$SPGReaLpb%X^iv`3N53?YG@ znT=*DOuKUnPUyzl9e>R0>=mTHOs|Ax7 z5JcyRXKc^0Q8lq&^344ij!{MgI`@*Sc%LU&3RznYv$Ygs&l9E_n*CQNwV2$i2O__r> zD(W|7j?$^fUsP0&KL&LYAU@GC7tKV=kZA~EoF1NnVLo=FxBW%b5+HEX+Gsv2g^0^H zs}NffG=kBvR+$-{-H{^+mN6xo1P>z!5tX**xvs&mEj`7-5k1OgPem(ffMB`tyJVC> zsI;?`RvBj)De7QxFU)!Q2fKqn7g^KiL1A8=fxL%U z0daqhW&;O$#Hr0x1Cpz$Usk)fCr|Z2rganjv>jO`znfa*k+4yzXjWft)ClL9QH+d@ z4fUw=D!H87hvHQji6$3K31Q5@AQdNLy0Qq&M_HX=RSHs=i-v`ARTkRSVgssJ!j|l2 zdA&ue!%smsq9v?-yZx)yX?1SfB1RGWCcu^6rjS-m?VoP4%cn7JgISHq41-O^I8{}u zK&b(Cs6v$&cEv`EI94st4mjyzmJL5mscgc|#>~x)C{x1S(Dy;>ljCW!T}KkbqY}@Z zM>x3>CpH~MESs(mhdJx6qLJB5Mq6RG(S|o0kJ4zV7UHdk(lRMbZ{rvwMr>Ph3)QUA;r;&Q-ZB*^+EDtIawC6D_E3VB+O}l;H3JMTxg<$nss_76&wP0<3by zT(B{F;+~aTB@Mmu2rQNdMDG{ko}ekRT91SHpoG18Oxyu|!_4PK zyny})%_G$TBhn}6m$GhD8qH8gh4!vp-Lk!LmxXKXMh5!i z7ckMWSg%-W)B#50w}-%GR7i+p9hT}b=q;kV=NxCakuY7KCKP(0vTc5e-8o#9gk*Kq z-?8svS(cP|e&LjOdSX1xp<;Kvew*X#>795K=kkEIt5s>-)zZR|7ZV&d)fWb~ePCK|{*fOK-cnNigD0O$jcOK--q|t51yATKmKipA6;!ee(b_> zn}VbmB@6cm9wTt~kGl@X27JeacFovA-i(9ZYmu|?xd}DSzh+KFlIPRZlV!9+8;|bg zX?YJE50cNP#~z(z)wcsPKLfu8wWm|Fw7Kn{aeKG*Zh%7B{q&r)-O9K6CdS}*uBo@! zDRj&sw2xXUFLKg;cD%$~72;x<-0(aJy%W2q;kDulnY@Xm^dGN%SjfkE7yC^=syAE5 zZTs%2!JaPnsikwJj~g%CQ>B}|;ay2#bAKMut=0n%g}W`H`iabm2%u5<7F3d7JvAwO z4rhGu`TB)x>`OW%!xNH|&Yhv;lFmUTx2fK7PMxvX&2}o>kxpf@*v)mS+_6q=uw2b{ zD&5geb+BB`b*kO*PPt?}Syiui^WO1 zWMHx6E_mzSfyi`T1WCQA%=Vz&_~ilIAbRO8Bh;98m%n5jpJmvYcbB~^ql$TJiFFpd zR3Cd~Tv_@4ddWK$%fPep&3`F7CY_pL=399aypx)$VeVOe6TQ=#x?=8Gc@wx3o62SO zTYeL{Q!9qzdrpRTd&O#|jPu9tp6~&>)PLf0W&~~w_uFrXhk^e@>>(<8cB{Utl{rVK z<~`CR3)v!pT(mdMqcoIkLTONs*2lCYc1psWqE;|UlZ-ZrQ94LRS`;=d%NX3$lrfc6 zP)c7|WSwMeqH*GC;&B3NB61>YVrtNqF}ut+rFT=YJ+>_mbVoX;l&(J9Fp8T;SSgg0i_=9p3y6k6~0g8dB z3QmJA3q6(!l2bfqnnxICl1G}QDXl7lX=DVGR`QUw(#0gK2~%om(WLCskaQ_AQxU8g zC*{;+sjX?O=J2_S&*af5_;LIx`SIK-`Z1&n^&Ptl_Z_ec;T^FHqf-%Qutzy(v`0JV zPmf~G$TrFBDQ>as32wRUnNEJ4QSB;PL)}VR1Ko03Bi-t1{c3_fAP7{{a8K`T(4)34 zas;kOMFydyy!MHqOT*$-sYz6)8z#APqDQ2=U@_`mx#&_vun0>8L?{vUXAvS^8dQZj z!c*Z;b3~~@!g$2caNWjAcpF0!P1W!qbsFqC(feJTZtSbQf*V>M*sFoWYgsN7y9B12 z5Du`bAgF6?y(qIgM{Y{BJq`^h#Z7RMeN}Q4H^KB)wDBR&Gz!*U?Hlw-G&zCjRd9kE zMCOPU{W^Cj&Oxs@L_C3-RbZ;Y)LKPvsER?lTFp05tHCRK9^9>sJb>kZAhBM5vtPiv zK@QiXN&TVpAl?3q&w#G}JHIwb^wm;>(yI|y2UH-PbWG@HRABFPnDXXX&@8p@`mV|Y z;;4WX)QFhdQ3nXBVb#wi1*lA);kwa3?*1(~3Ut@V5e*CgfDak~fbl;*`BXKqcKPQU z`}ft~_-6V>^0I|9mKqAcE|-OMPZ|LO9Wu5iJ|LuQ7nqOE^c@Z+X*V=^c<8A0bms(BT1cyEB z$nO)cr>TwKyi#JHF3;cqSVZV54x5t-)_`{#s*jP|x5m3V*X(y-%Z8P|tubLV$dPe$=}Rw`4%Rk{{B&Gh=$-&m=EY zfU$`^sMlDxEkM3vAG*DGqkNF=fp3Zae2IR40(u^McbHF@>erkp4OYvdRMrz`)G@Q- z9s^siMCS}UQ9PPj=PKQGc_DfH{xZX`QeVka%ScNni88j;DH5czRtb|@kg}ZUZIdR} z%5)^PI2AJ#3)C2Fh#ERiHd@29hemg{*-)Vpt#LCuPv)l zgrL1r3Tib1X~C7u;^=Cz=4_Q>Iie`Cj<|eyp*W2_5}%k2;-*SbDNPX|Rvh8Ml{k@nMIO{Sfblo?34~6wENYJt-%K{S=S^Cdx~=jA zJM)yEjfu@x>wt}x0$xsQ%Xslpy;PpMHS0RgQW^i}*Z$&g_H2Q=N_CWJXEEqcsc`m# z=cNp+VJdcM5?&;c=x1`@sCL;Un2~JF2^&M(2%O}MjAk~x#{LMd{W&87wO#m)#Mj{v+}8&F@kH=R(w-bBu%U2Ey*qnVAm;Naj@W%y;Is@mhfjXCA8 zuq@|#+w`Tvw#ZhZd1s3*bgzL z$yFiVM(?y%i-+GUE|sUk=_{35%W=3=_mqalDY!*(fN*2SyOl;-`=Vdy%VmRpx8-8V z;ay{L261B~v*BS?j%`?vaMBRsPFL)ExFgs$423fPZjVk=x;w6W=ccQ^Y&4o?4uRsv z3!WOy18L$y$-&F)$C*B<6-Ti;tI|AV$)b;-)7k*^Y&89&uw}InkX=xosX*=g+hLos z=3aYS!YuRm4d*+)YF|s}&5PX76gfCUx4&D212U&?V)5c$zwBr4$Zs?S4XpV+L&{3n zw{^qG%+sh4s@5R3HSjKvoEJsNS4@LhUGMb>+JgqG#_=>mPVMQc$Ckj+s^Quiyt%2l zJxEnb=hlo^=RO*?pX1mh zt1QZOFQ08;t@Q1>HyH><}U5iRS2i9+RJEFB9J>%2; zx$q3?VyP%nXD77vCMF^pD(&MGM~#l6e<;k7oyIfjtM8Ko>hm^hpp#`x3au%ACqs=l zJ1Thad&JyoA9;-5C8LqkDeD$?s(XarDju1PPb906!%@~K>lSrtdcbr5eO~X7nqPxP z?U#nQ+O&f;ay{QPJ+DnA$M#~~C|xo8v-M>v0NQz!-$f`rLzw4iJAlV@K&g(?HfufB z3RW9>9Wklv@FwcetknA4YE&j!t(i?6to@cFZQHhO+g-M8+qUhh zF7#BrJ8$m2Z~oj_vseDel`A8De3|=1oD*?&uyYYN*N}~?)My-1T(G`MIJbMEc$9HR zZ4&5AUL}^)w-@%pjss^Tl5!Ec)E6)gUd4H=Heegjr0Lb)L9>$GSI|IRv}Ec=*vD^@ zO&jV6(uwV(IiiE!-V1r+oadpj{=~}!{-}W{;79MlI}ogaY3eVnfpYF6hZaN?$p!bI z2cqsEsIU6xlza4D0}R;T61qv!18TxBw(+w3L#pfZIQ(adTXS{UJSp< zb!O#`*lRlfq}GyIPqO#gA{bs+v9r)A&f-}rX*jih83&-EpQ zVYq0+yt=)WJJUsC>$T!ZQ;bE4`9o$J=&u1b;krL!>*jj}77~Cn0FmMAiX4eIJ+3>S zrBv1$q@N|8w>+*NefU0b#L&sYUp>`tiT1p%H``sVuWq87KaY=7=1_ zF4Sb*IkuL~zp-$3%l2|A*K1L29|B?GTqvY5MYGKBd&?CFdO1WpIc?f^dVYj7*~FbX zek`1lMomdvdZ`xdF7RjZ_Qh2gY*FYKxEf(iZB48)PGC?m70!#YV1g*p)R*5e0B4XP z3?9k%2aU#9G>|16jJ6Al-CuYCw(=1*md)eFKZ=){W$>u*7R?HgKE|3g8*=o$m$0lQ zNl&9x&zv${xXZ?(2Fv82RJjjZ#CpOuny)=sV(d>_Fe@^1M|Szf9b(k{5uPC8VlS7` znKK36uj?mqrc#uM<|&y^VMwplBKH&~>eLh{n~Q%d6Y)sf(J8e=$*^uU?|WL_K^;(P zH#bVxxvo0rc!i02@;h7nOxhk83-9H)kUn{!shA*ou)>ZxFEr%35AGj)!D-1^+;m~6 z;uw0!%$t9{FMdH0%8rGl-u{&)I-4o_jw{O9 z7T)HkuUzgSWc44OCTzJ%A77bH*2|rs#nYG?&0*Gef0f$v965QIem@hRA&oV1B0V2J zUVC+Ew7)2|*vQr0yPd1J<=r;3Q~M8aOW8Ts<-R_911g|;v6?}ZbX|o2DifyiyL*+u zd1Y1Aw7*yG(bmGRpMD=UV|ioKKL-kqO3d)rDt;&h9jkIcD_J&u$b{I{AqpkrNyJZ% zqVQ>2mb=!0oL7z}5vyfn_AW=>p($;&(rfty3gT7{(mgQ@iOfLkL?Hyr?~wtt!JG*@=6g=YF}PE7S_Xa=$?yKPhnYHfx(GrlOR`fw6vxg!AZ&H zU1Q@twM~xhSt00!6y4^mAslr@(&Z((C-wV@+x{PSJNUoR$TmFo_5~9bWd8s3J%W=R%(VWC&g0rufod42*=a6*CgO5PKS)FHWEVEL0oSxVA?9Vp@${OFQ|Uq<5D$lB4dmT1%7cH?3h-i=Y90f} z`J8=ef{W*<-SzNh?=<_@^>J2j%`fLw$S6IR0Fx9Ory)S3r)_85PZZ=DFb0Abt3%_4 zV~5B8*?$=18t59$^M|M0&1J6(Jh$I84oD6Zuk6k1j-dZFaM#b9tX>xcPnDY>|7*~$ z_MM0xG^j3M&(a+a-)oANA6-&6#4p~A)dsHC3 z@n0x=;Q;wmYXEpDSAfw#G5%x)ret71aHvq4mVr~S(Pt!$-l7Ij5ypq_x2dtrL- zcMSYv0;&<-LNMAU6V*vToZwz{3P&|2FKzn0=__S}3dSsE`iEk1>_(0wj zdu4(6v~HMsrjg&NZ|Xt#z}_``r-Ar%ZlHSTklzV!B0##oF8IAm!cM0M+H+)MX7{IT z39Utyj#1t4gp--kV9ueQChgQ#A$EpqM;ya<(k^=Pbo#wqN4;!AM6vC@raQ9O+@ZR& zNWcF}o8Nb#D>se{OaH3`4*pdRXa0W(-v4vw{B8e@Z(rX?N>p=M7eXGcUL#iaUk?O@ z)RU!f%qyD@swqS^)DT}FkEa@y`Gv}moFo*+ZQp1}v2L;#=HR*mbQ87{)bDeU?feJy zsrLBO_~=UI&wbAJU;O;_hjHkvqDxGkve{+G$IRGc2p5E+x~lQjeiK zt)wobI?zqli$p~ z&f}{WEx}+(zX{jbE@`Kn^X6HVX*R(wD41)XMlOCgRLg0J_14#;n;WnDX2-z8BB!s? zN6O@C7{ir>(ASsRfc?S5mp4`SJw8XZC7)>sPOKb$3aUZ5R1J&Ya+Y&ok#?*UTddJ?zmN3nbo6- zLsdXb;(yU%T+QeiXzZ+M;&BY(GEDAXvM!XP$k`heqBYF62GC%sV-s#EgW!*b-$}Vh zhX2Aw(=Tl1;~QXYGP$_U{s+O#219z<%qsNg9eDg%9~bQzh126v9WJhE4j`SuVvxIT zT#s+eb4iwvLEda69(P>7SC)+|`~&?|S_udw&)Oc>s50=dwTFaC28)|Ae13>`KY(}) zlVBnw>LVYWW$CsVx0XNgFl88&zJN(v-B_;y6YAb!E-6Dl*KR9XL=Cx)u#1tZC;(SNL6P z08yq8dFDA)L_CO20map%ha;Qqy>Nz!T`jp0a`Y9gHv?z-1C%FkZS_YFC-PlwLIAY_M*^+wz?V#BNY; ztvwLW?bsLT8x6#67;n)%m)>jf4)8AG+qa!@M4um@a(h%e<%l{!Iw>ziH!xu=H_~BP zJ0xK?em0VxV4f;_F}+`31N>Cno9@Yx>;UW{yG7f1L-c|8l+ef7NNfSImbCO$A<+h^ zmb4V$B+{l^2p6&9Jof@(jbaua${a*?cIK+?(&W zfn;l{;jL&0O29dr>FfUYO~^d0n^fl4j1&y%|7t%*j)8sGov+!9$On)wLEO<$eQ&J98|B>a`*)#27=xO%J-s)s7`QIn3ha zNF7(^co(|Mi?rSY74F=XoeRpVB|Aj9%W|LpP!9<1lH1W$T(LV6t6q=8`cD4`S3P|w z0iE+M$2;}c!K57pU!_SZINYq|#n7Z@Q&31Hw`IcZhLmDQjqgG3`Q)lAZuWHlv*Eip zEA0v0v=#yW8l&WO6zbf7vLN0zmMbYN5w=*IVD!bh`^Z^cTxnJZ zXLtoh#_HgiKZ2-x>hbABWZ0K{no|-E$%)w^u$b@F5IVsw%b4+xtSvm#B95zFnkz2j z_1!I)r7bKY!@LDtDk&h^#0mHtDxhv3t(F1gEjqsRNuP0Sn%5{b4rA{!WA(D311KP? znJKWnv;oOa&LXUV(HVvJsKxP0Rp}p$QmBAxoZaVn!T#wlpA(FN<&D!oR2Px z-)FY}<08O00hVexfSsFWyMz|MkE7S`>RkTOAk8Adcu^CbEYP?A() zMDto@rFjbZOnS7slWwqW^DF|v^q;Rk2f`F~2f-Wpnr|~M%{__mXxM;8>Fw_?y~o*i zoKSv4GLClRZK3Gqrfbrz3H*uap=-vK3SAClGvk6o`QM9y~mtr>J>d8x8 zx){@y z+3c0(HfYec;@};Y35*jOv=iv!Lp(;1j!YGWy@C=tTMNjmQQwbU< ztteR$bF&ykWllQT2#;d&7VKlzE$~-g=#^BUPl?DNNEeI2yt&zA=;#Y> z3&P@U4Q1hixv#NYqLZ2;S^d1w#bB>bnhTtsF4FMJsv}=x`se@`5p3u}8QNVAdsEVU zTIE5fcIek1F-{_^z(QA*IF$zD6**@<=~%#+!^??Jl2%tsU4nwGk}tf~_im3VXnXiE zmRTgizLbW_;dc?U;OuNSRkSfmGavd_Q>pzo()ka!nHl!}nRG!zGWBbY(9`^15*9|q zbITG1jUALp?_59HN=T0zs-+V^Cyy3P%|FtZN2+9mL4fpKtvD0sjktnfBrWYZ4dXVN zdT3Q_F|R_M;>$qe+6+6Qk}18As#t=sQ+AnGrik73Tb+wn5@Cg7%IGM62~n5*5>muW zLnvU5eUMOGhh3pADlJ$f7FRO6sd#*A(HB3ij6bj=xvDtqIC{(|+sCGPd@5Skdot@H zel*NR(y$(!h88zB3VFj!q4h~zDV5?Hj*0GF4&>zWk~UAFo9NDA3Hiv%TALDrnIjMJ z(!gA-yZ|q&HM^})S^wZKdu#=cI3XlBI0I4Jj_O#6-*lm3!VJ%XrK+W|+pNr^wI7(^ zs05JDZ6+l>_I5r5Dy8d?&bzWLZ(Et>Lp(_HJaYBsA6iEN|5*Zv5IW`>;tz>i-m`uK z3wM2IE9Q4RI~b4w1_xK?kKq^t+U(zN2Mi|+8GYd5((?#z@TX*NZT3NQ*zz#AsXeq9cyc%Vo}pt_ek*5CGSR5j zDiQ6j&Kk9R=rAa6;ciq?-0+icC@X-+6g5z|ineUL6+O7Fi6O(tD`1_By!ku0o{GK0 zroJX>t<(I9erPWjM!X(DQ?_&+Ls$o@z80WM&M9r2$SZK$V=c1162$3mD4y7GBQKI5 zIXz@)k0r=2KR$>0Ll}80drEF(zsjL>C@<)|dh@RE(M%Zx@Tv%edZuJJ^FK)JKyv*0 zA$cRFM_;&6f>@`Dcc5OdU!xawA-hIwItzEkU%~I14M)<~K~pUJVz^W%l{d?a{U=!T`oDEh(f^vBlMuGc7!Eda__lLqXvbt2Jz-KmaQ&je%^d(p;$7$ z_H{QN$mZbeA_Fvtwc4DolAR*%v5Ktb_me@u5Qv2&o0$2!>1=!gt7+h$re_G4ju)o_ zY8DrSsXgtsj?%Ozj>l-Xpp<;!#mUA*KaIyLH7kMP3)PUR#4ACv6yiMX#f3No(X({$xeH}42}{aaz6}6BO=HQ_}J!x=5E$!Z-`Hl838{_&}A*vR%%%Y_qzb zi+>>P&Lv5ee#_^OUMzS+dYz9eUDejWPJsgBeW2Zrfnw}{eXfiBMcmvJ66G_rvjU?9 zpHm{)6y|i7@Bna`6$cF*FdT`^jhI650?Y)`yL6)JrLIB*X?1(>2IZsTX+mSfWj%3w zwH9G;WgIeRhI&-+Z_WO4K&D@)hcA~endOz*lpVO2xiw>@dc8Y{5V2bvGTHbMwcE)qC4!PlA2 z&}7483@}XIJjO1HNW>a&2)EC50imB_UK5HB1)VISkQQ-O8$JHVEwC$7HgnPQ1@WmD zm?jzcH0zv)8r^|fN<<3wul9O%=blIZJLfw`R&67lD=Tszh-j`Kg3H*x?<{XSsqcCo zdA_*FS3$dPx&sP_opKH1p?;o(KQL_Kj<$jcFs^@^4G|>BDq>zJLc$pL1K&YR*|N=S zO7-;1QT9i{T0XHGF3Ef76)M5t6~^}4*xwA|+|)D2^2!o~a1m@m^SOXC3UIRa>U0(1 zbHxitarJM;gJx1eA*Zkfr8);ol7+NK6SU|7jqNt8|2npUh%8L#*BVA3G5}5NuZ-NV z);oah-=YE`a$^8`=p)ZyzM}LasG=a%zJvaH6&;Y&_Tr36@p1xKV}|j1!IO3)c@r?> zq!dNhBlA{qh}SP@IbId-qk~1ZgA7GDI@UAp-!G;D(GSt;v_A1OkX6)1p(Km%nGwC*Q~21=7TCs<$nS!^1}xD1(k#))FwqTC0mQco&cIu%4PEJ4&sgK%m^85xje z3paZplmdkjk{5}%sh5i1-}y1-kwdRnNuQ^wE}|dVO!-Kiuxl8Av3i4)#yHCp9o)XH z3e0Gl13>Q&!NM_7_q_CtF={@yh6qs20v<9WTv;-!WP@ zxj)tjeTP!I!9i*pW}y;V&Nd+g2XG=~iPr>9+JHBzF6BMJP=ita=NJ z)1sixlkvU{-9`KQAW;fg#Rl?q0m2%N+x!8XF%q};0E{~BuX#9+KhI67ywKT(WRZb; z-hjk)te|_B@0jWvp*`LM<|Y`@A%${K2ORFQ4$kjum%>kWZ1@FPWOI0RA7BY2Ea0jb zsk0IB{OIAR;voS}My^)S)w+SpwsR_^{Z`QZ)-}@2>{}ho^>h+Iy-*ASz3q!BU(M!m zV5R|IjC><$vQ&$?0C{lIVT2(whkIad3V-i(dO_n;BHj9~_6RA|5#)x1YJ1rp1%bd; zfk5hFt>l)eR35oe8$<&|qX{J^7q4UQ$?SXVFlsm5FfSweTJHl8X za-5Y7jOS#=Y(o?~B%r^a$M;t;-nS_%nmV?>mC>|P_D^myBLCY6Sf5=o%wa`s+ zbmUjgo?aUbe*6X1MoZ*s9m(B)nKRKFl;SlYBR4|!W_s?Uwouyd z0ycbhCbw7kde=A5=jtk0LyzkXWrO(pw^2BwRoW{KHu8j22@w^^`41@#g*G^u29b9s z(n%w;^M=x|?5y(I8vr-qa_)EeLt{Ji87_0pn@UpMg^CE&OSGchoG5*UR=;T*k#goES{9McA z*!IFMs`<#}DhncL!g-wOLhf*%xnWOVi4)f+*}FLQ-wK?+fY%ZGI*t2aH*EP8XzD&- zU7xX27fKB4`H(T0iYT13KJX(xy*^mWc(aegH({Wk6z>T_^vmvlEm-L$Um}eMw%#+R zz7iXx)paPPH$7PYq|Q0yl{Y@lw=sP4@UBk!WeFR1&4L{LUqaiL7z)2&XKP=5w%uYMrUqAw#bu?$cXV5HPxW8RNz`)2~x=t_G(@~XZd zua*_(dGb*UocKXF{)%Y$q_d{3T!E8(aiqvvsC}wex#qr;Ikl#7pidwQlfJP8Yd-!p z@~8=$z^&3_Ih{nm?2y#^LW~})J+UN|Y7D)!VtzqVKR zex|M3)Ry?RXIQ7;PA=dAx8b}`e(iT`70Yw&zvl)Qeftgo$?fA0Ih~WYc8{id;I0IoQue(q1-rrf9(i^)uF1VJf&E6 z)62QwWIx}Ky#EQotdV;D;nM2WERUS#0qR)#lu3G1a=hr$GxqCD=eVmX`g0Ax$H|(} zi8Ue$IDQnETKbRGIU({`(q3XS#zZkAdTGiK%u+z}A|$EFG7`{!$w<_n6*i(K?CE1# zXljN4xFH7MB*iKpGPR~UZoN+Eb>fu;VnWyv`+>O|?FNaX)TTr(bAj0XFdWG#F;_t- zJffetWMTx}q?2U)s6BF}m_w3KdijbL`kr;YFNQ>zWESge#$WGU8KRr%r(8(Ehw57} zD3JCGddKnpo_g+A`d+T=(R)t9h&&lXNgF$h zk}4}g;kWB2|HD|R)Od~JZX#6WL6uZRUsPL+f-trJQaG)Tw`JVi(5#1EQjvSSyA+5+ zSFdgt0`{wj?LoxO&ri)&x%@7uQ6giFlbq$^d3U|2q-zZ+&tnMW0SO5^&MY;3olRmZc3&gm0W7gd&#Y}1`HVXb;l zBB7T0IZcBIlVy^#)%b_;ok<8ub6Eg!O-^vVPltz%cP zTl5~cMT>9D+~h@PkOL>jFmFJ@;>qg44EES-^y7S8D3-Uev`%5YwqoO>OQKqzG~b^! z0FXx#OZ2ebZr1EJasp!nte}Ayu;HrOuZ9wuOH2OQu(6&1$n+(JnGs;pKIdV1>1>u( z`D|IfUdK(w9uq0wz5f7GwUm{8DzS~1jx)Y_E-~EzVUU5d%|~DUu2|Ga*6BS6bDHmEqxVC|66-s%433$;DW+ z=I4dmPr!BKhMv`0Q$TfJrIf0k!f*(s(?45srMKGcn<-tspHaszbqmcnqC3X!)P`1? zO8kdm#Wt%tJPoiS$mf$=J@toPWb6~&qlf0cBsF(U5X{aw66<&%5QbYvf9+NNfNlv( z^tbuR+NubS_JEFoUhP)-jkgfi{P`PPou|LU%L{`)X85V}(BslptY3ZV5#4T+8=f8v z2FfeA*&}EPnaOKRYbmCC)jfKk**3TN%w=BR`f+bCL|`k?_Tfj?%-$J$e}Afe6d07M z?C@lMmHn=)s~5SC)YN}#$CRFxeQcu$3`uq|5Qb6Ue634f^Q8XXy}GBI<-6$~aNCfna8kuiO8)Us~Wa|3R@@+Q`8{ z&*Wdk#J>%{@$KXrQS$2&Um`R-3I_R)bL#vzU=4&VJLR$XjDdd8|#984z8e7xIR0GfOB{CvIq{s4Nhb}iMOH$!L&Rp#e7yPmGB zwb~r8yGn;^MIb6;FNslOg5-;;b8xTWGo43u`UOBGf%_prP)}(kO-=RwqEoNA0q_=m zvxZeV4U`Sz3lc;)?uR;H0e|o`Wc!z@mfpG#+m`)@6|Lc9OkJ0YbDJ8(xztk&!4f9qnYJDFV}w?f8*QHH!4+L zRlY9QcMAGJj4HynH#ap9!T?}aF3uHK(jc!jP^(j`qB(*CVQ{92n~*APJa4vLzp1-a zLN$Hv+`bg}#19v2v86%h!D9-sA7?ywJ#V>OH+QDJ-#*iI1FnQS=r!o7hOQH~;FO_9 zfyW{0GXqMW4AJ9?V7h}NAz+6Pkfy;)G1LwafA_}>AaDVKmBCvBb1;mB&5EN7s1j@t zWV=Ath!b2P_93!ow{S&z*xCR;?|Kv9#@@;SXWZ08iVC`3n3CD2?@P3>tTE+fEA9uIM-PK(YOoD+*|#y2t%l)lhG(Ro%M8tz zahRJra~nmOm%6Sw)!zmncf|=gh$A6Va=D2JSjAYId$mr48gJ)Dqc1Ext5PhYD_Uty zcpb*aZKMV+-mhrrTaXbmr%X!s34_FBRTyysV`wLiyHVZ$k&2EERDB&HCU=X^QYJM> zLu^CkuT^otcFKeX8ztV4OhKyb!+=0L4s$$)Ci;!=$XACTGFF+;1fr(@ihNIP=xjJE zG(K{b9F!I>$0pqvyL~_yhI-u6F)}%3JGY>v#Ui9bTeanX5ij}tcTPQ^m&Hj=!EH$m zn}0jhL?ypoNvqgGw(dB-xO6ou_>4VYC*>HyzRG&QW6`ppIpQ{c9t08XssJ!C5QV9_ zdDL<@Tyg@W-Xhs0Y&D&Sx!tixNnzM+s-AQo<7j?~aY?*V)M| zYjwN-jexQ^$y(ioR#8k?*fDWql!RON@FH=k5~?{ltGP>fhiWA(&>x7Md|wS@c{kBt zki9||UQi$_@isH^7^TA(&8VYr$Ec&vML01R*qHwS+QlRwQU#?WczN&+3z4uAh77}C zlhK8h+!e_N;$t0htG6BUsX%hb19EGa0t0X4WoA96PD+JItM)IEXT=VZXW0%jufh#S zSL|((fAtMZKOoWe-3@oj!CAHEm5?% zsoGCf6V)rcw3%NWKIbKF#9EWeTI0zztrK0u-i`!8STxPDB$m)k?i-GvtE@`>F=AU; z>Y~$zFq7wXye$0+(u0j@E_Tsx$x_P6RKG&%v!UEmnW zbNm}R9ZYt(rSY&b31yRO$reS_2J|{hhei|InedZa964^S)fT_WR=+v|T8~2SIu_lw zJW@2ZG!|j9p{IlGuk5a1yGP;;;&k7BMEJHK;>XG2+f2 zpTe&jGAr+o!l%@{7Ng7CI5=Axp%XyRI+MGV7wS?n&58eoZh}RdFM?sDV*IA_}yq=_FQe?1`5&(2`jds+b%IM=WmzR_1bs zC!*Gte(cAd-tCcK~|JK3|?BK-%jiybb!ncr< zZp{KPD=FYYkIj-2^rv=4Az%X?i85?h7TgMnjvvtmOa>Vlmn6C-x#J~tfp1M1c?;W6 z0&LCV65@P$dWw^M8~Jc3G8n9Ite`ekMqw_ei_Jyf^(97f429sF0Dg?sr9)a6{`tW4 zvYdyt?BHA&>ge;cEl2O-N$mc7i0mU&woMCORRMoy2O-zEa%KV9V(HbxxK;x$?T*~T z2L2IUA8vDm9*1a5TIzICIC2e0ZhJX)V~ z>&(p4HBul-exwp3wb<)2f&))J;C5=y8U5{9#o49#Kgfa){!=f8*-@swNvG z!lv>(a)Gg3hS?HUxkW28#QsPa#6sQv-Nok7!oOEfi<;4A9HZ>$2st@_3+chYAP+TO zkbCg_)`POgHPei8tWcpe=q+No_Or2sTi&rHytHdoqkAx+xegg5c7V|fzH^b~@4sjq zePL~y%&jyW`fPJFY!u^ih>Bm>npo+ zOBKo_1E1&!p!Kq~|Hgj2RsQfsRyrnxvXh>dExdKv|8c6jm& z5}>D)^*H4$%MBGX*{6L?MhGKM{P~ejI)4zR@M7F6$cpZT)fS>*a~&DrcQ*BMN4n(s z()7BDgalp-QSsa)hI(D%M|@>7ct!+JA_LN1i*zp|kkBuRcgyi2qEcPul2z{#pK+ zNqzhH#<#z36e(|i$rK@f&Ec^UOYt}R>a-gOhsP&jQLgzJ0AD(Y_%q?_T+cdQvaZH* zZZa5;DSAJ^hWBMJKw;bSGy;xuJ~&!c-2~hCqWo`k`0-fCo-G0$RU@ldXQA=n@KqjbzJN09=8#RQM|ngXX>d zSVSOw$sql{Adaz@E82C~N@2|}#3SO4X@3oLmv6a*+}n7$NuIr7iSFbrC-%d(87vBRP@^0A5)vt(0L<~GDA z%%ZqIO9ez`kB|jX&UwfbCx^30Cg$|K!n>t03dBRM{EmPrWv0)4y%OM zy)C`w6dA`4YDQF}*rw>U-&j_|2DLaGHVjW7rD-V2C4>|nG>OeH%d)Yq+{RcEwD&L+ z6xB+o_XuNpDoyfUTeuxj1K6q)@0@jjqk-iA28sL<6rGO55$#W*PK<)?&JQm)b0uuh z(KX8K2SYqE+UNo7*NtL{pAB}#;O`*b7la-|2h8%kg2)h;-scd;VzNI(smee)$Ixb8 z^p`PWudwN;FjuplVJbdT>%vX6L&6K&H3)9fEzUJF4;^MQBmd9QZEXNDWbFy@KN0Kmu9I$noX=}k?Mha^6qXUYeC;~< zI8*cf^x9K8$oilyrz0}^J6smKOD^Rb2KT$N+N?x~{u5^1F=!`$1sB)L*Mx;6bBV>1 zKQ?TEP!DFDf_MyI@A+W8woB?xGwEw_mSnsoGOlT!SwA#J_RC*Raajb)Ys!n3t2ffhdyj&p;UoCrxdH`e{!ER|5 zCT)7zy2FsXTmAp|miQ-pg4R9JBa1@$5Wy%TreoPC-w1$wN@u#87N~EG(rI2yU8(RP z@}Ozw)uwcn^q^LH4^eRAo2@@IdWSM__p!YD)7?^ak#1XEc&fYc=;LyRWfFgafuDq%6}*+7KWeUFM!ku+Ft!~Zw^!;X*n52zagtb%(p}%+pS>( zH%s|s!KB-BYTtPYp0b_Wpiz9fOrc8$zuqxSHJ?@KJzbAo!4YeKewRbJE&%SaG3_ys z)SQt~K$(jIfJPhyZSx_R*Aq9d%Wr!QT=DogKoU6HeFriLYht3^jpAuaIl*_=kk6Mn z?~VkZY&z$x zJ5XJav%e*AGD2u~GGzM&7@W+AD_bEhLL`b=1PmT13DsFt^iyLF3f>funlJW;vvU2~ zTng_E*q;TTnUt=&I*D!vW;<+ABMxrUYo6`Z=lbVbzSrxVzmU2=u7wf$YSEo{TR_={ zV)P?xN(`uj5mA{lL-|G3;=@68L|KAKOAGf4iTOfz88W|mY;a@;ZirrspoT10Pn{Yl! zemcOIu)GVj8CH0A5JSBt1*d%VsLv$cmJL>@HNd4q0S*NouO2p7C{sEM|IA3Al9e)Y z0K641NxZY%=1ZbX-O98`QBXFUYWfATts@qdfZgyRU}i0c?}(p(1|DM~GCWdTV*d^) zjYk?K6>~Jd4;W>T_Enh`#P=~}maZx)sauswr<~2VFNkk-$zo_%N$Po-&1AYx^KP_+ z;=TjXgsyB}KmdjEU`AYV?k_&$vNmtf=a8AA=)$yS=b%WVcAUKdO){G^#U9yF#eH7`aBdNmjk^TCGyl($N*1VyoP* zP%(3;a$`Mkjpie)Dbh|C1r8k4N#_gchB(?s!-jo_@SD8da-YpFwiHr+H1+6sc4#j| zn~=y;)+OJPypDPbD?3$QDr92um}q+M-3mz+I6Wc^AWBLZMRe*`yq^-P_+{5iz3!Gy zyv#Gf7}3@nb}pEV)ev!7#}Q(^s1a1C7usAi)vtF|wPy9uaVGeOXJhV6?^=K&ZTdjuf z&Qr6F?(-##%-|-)owkEb~H1ZKD9HYG+?QYAXeMM4xh12-s6v?UuX-P66JaYCfEj4-?4Vlru9t4Ky2_%ycg}i@JD({;X zyk=SkxXyQ+ma^7)uzg;j-f83m_&pr&s;_?lU+w+{v9b?+jSBcqRotONy4@36oV*cwQ=^HWJ1M3Z@xp-4&NB;Zkyix$XlpeVRbT zdDy8Fwe;CDpyg$i4{4Oj^aDJDu9A3Ty3ltR;|hZGnfR*D%yAd`&kZ!zC$+`{HWWwy zf_6`Ut2|0l?$ZyJ?f}7uIq6O8yRsP!Y~{+Nc=*cql$t{?CpN}ek)RwU2y~V#{8U|iCO{OgKwjpY%0?yD6bNK*HU@gKY%P5HVAR(L4_FtS5?L7n-UD zA1W=NYNjl<++A+gyIPwe5X)X+l!}5Q+oH-WSKw`v78@JMkpX^{4~3vIAO%*Kw)OekGvows>1Aq%PhY0`N+=MEN6s z@@HWAe2CRN5=*W1+b1P65uhASOWGoP{3*nwG_nKICd++FZ(nB;8YHjIGNlPJUxl}jM3A;s& z7)WdP6f7ao=A$;%kSsORx=N%{OK7>gAN(LpWC_=g4}-HdP_u0xhY2k}q-D=>KHhT{ zCViq^N6n6vlz{twddcd1X$``^l~Ey=FH%+FBx1s{z|#NuA6LiAc}<8ZzIMWkUn#+V zB53}PXU1=0VsB)k=V)X9uY%^^KECno?;A;q8efA#kw1%(laqxh$wQZwl&L{h?QbEq zYy4x8#RGNq_xfvan#;$nH?xFqN?z#1ga*O(>-oZ6jm>f~e`XXjIZS2VXI*O=`&@ec z1<=KY!Z;ZzHzJRaLFSAdv_%a-Hyf5FiFED}s0A`WU#5>E=@*A-X5Lt`4dGwk$u=98 z4)$Dyq1F*=HCk1=dh4r~czff1rpgAF^rIUr&eS(eP-0_@fZh+`UGyRvho$UmD*Lrm z;r7*Lz6Gf<#V$jRO&cKRCfnXcg~!-2#diJKO&p?(F-HPua6;MM<%(Nf9cCL;?N)e7 z3a>~=!gS|wFpi2eW~040eVL&(2pIFCHZFm~%GheVKKy_4eqm`+9vg3jL6=TI9d z7#C~pk&uZI>7&NvNGoaGt#Q!k4!OE2t+AlEAl9!1T2G))trhe8%^5qmFGX2!TkseR zkz@8=WoQiaxEm@^Hqv3zNVGjKYC^M#KXXYMLlW@lM!1~%io?*^rsSut;c74roY{KW zyLY2SGj;%IW|$c^D1tIY#%>!f6(1JCy$J`9sApEqYuwSHE_koFs3t|2pm+>qW*c_f!@q6Qh+EG znpZ;K0-%b#z*l++PqzA1G$Uz&g#qYsQqY*C63uoyQU%c61hOj2u;_F#7QZ^Hus}|w;uVA8YWOhBSF3!{OkaUX0fXZ zqU@4vn!hGS)sb=NKqF@u#9ER;G5tHzD%}Y?Cms)n$=L~*Tp)MsN=8fe38)>=hvV2> zW%f;v%|Dm1?~^VJi(>bGQ}Wy2KPdT+*}Y92*j8|*x%gc>6lBTynr^o! z!nOa+$&kY~ZMc|r_vVlt*;}2|mtefeoDcb-)dD|rSBvzksfj7>>4}SrkI(ykGG9CD z!aSntdHej^}U2?f#!HWx4a96V2kFg$mAdluqGicUFPP*XS zGeLpO#B2S3vG$I^kwx#f@Jwtc6Wg|J+qP{^Cbn(cwrzIIj%`em$-J41y8qw3U+%4X zSDotWI$gcahd#ZZv-e)lTCl{c9vC6j5a{qPu3KZtu}h~b3nAID_`LIXNK4%K`%FWp zxD;!VM4%)nKS%aP57&b4guA1}NMp1NI-NH)p+SnKMI@rn(+5!D$?z1Is*L2vSf*Lv zaJOObemEwSHvFzK9}o%Hg`Ut^J*#Gw&ZHHYotikV1?#YnlVnmf6@H;+IQy^LH*ca z;T3Q&kERLhCX(S=u;ZRJa}a)iU9|S+xLS2+uLoP{zI`2ylt_J8`;rmu9{$%9GwE&x zD3z*N*v?*`oXYP-UX@-A92>sZj)8my3kpnmqLir$BS_1#iLx6<*grmwq4INys>0L_ zuIS>uztHV{g(`31>GH;tg&AtD4xv^8_!E65#A`Xj9t4T0B*g`=t+`cx;eeHOPbc6t zGy4vg+*n@NQ^=XD2}!`hZUk#;6-lB&taWTnrOlSR1mwV9MzZe!J6? zCtfF1gMl$?Ps}PHtzAh<&({Mlg(c~W{~dWb@N_CI-Wl5qDK;Jy(HCJ8VF$Ikpr9No z|3r%T0sfzVO6?yzN-JMM*o0q>!ixVFQ}6$yPX5o5X=WCL>8~?}s5C5+7 z4>cM(8mJm*p9oS=(5Pa~+Ql`*>YzeFZ7Y!+aGLeV=tvATtwW|zK|`|KU;9{_);Ftp zi;x>?XN`z{SK5E%^z^oUn1e}K0wy96FIim7{dYf~cTP|~f8WgYeajx6b9yx95B;OK zcDPo~L`%3EA!ccty2fi<)T9+V^lPHD|5$__Ba0X(OO8sOmd2Lf_<<=)jXkg4Yx-D) zJx}b8G_p*|mk3EuJxYwL4hGJYjm56KwI@?QIVQVS+iGOGLfU(w74{68d3CCmBv@H? zNF81$-vX7*KwFb=K1EHZM_HS&E~k~urqle8LY1pbdxVflS3|fhZxwE)m(q|Fl*WdV z+;J;_E5I?dH{qk&yj-Q^$P18}a^jYGHk%n)JvWg$dUI{MroT+tlDpu$qx{fVb6lJ1 z+9RFvi`5FVGG*b&Sc&XQL~3n6%}^29GhnG5hLfmLpgdtdnVH^TcC_Huu{RzEl##9~ z-)MTO!QSXS2e4htRz1s2HOq}GpI9oh#28NMTIkb#@6`4cd6EfIn)1|s@;7*MGj#KkNk@^8}sK(eWOr-!KJQlq=d70^-FSLx!g zakO%Aycee0)w~|V#-~KFyO>T&ypBKPJrcKG<^OOluqtSICA63*eVKO$vDsFzqpNji zkWJ^l!WMpF+hIV@6JZm^=FHjQ_MKRHd~BAM1Sl>?YZ0$=h4K7S@sIf>u78KsWJ-0e z7UR&2-$!%GNt65~Ya#89TqVWr7lQWVL>pN}=^bcO@}<~Elb7a$JKq|W@!Ty*z;>NBL%{%0hWIMVx$8>;F`uhwcD+@CUND*MeaE(w> z)Y|*eypzc(3Kk2|O_SpijBrv=^D&kN`)mzgZsKfh?(Ry>LhtB1Wu}LS2TfR$INS?y zp}Lnsr_L0@xibB{e^9i(6N0!nx1t}96kH#+O7JK0`j|}81gB0Id+BjCZs_odo9~R3 zpwww@j{qsC!om^<*E@86ufYQ9?|FV~{B{%+Ap#*S0x|hpy$J50{X$&PqurM(0fnmH z3)nvB1su1VMIA#}uq6oH8b`D|bl`#Xm*C8L!&%rx(vqoJP#uTfm>C9A5)(@aLB=Cd zQS9w7Ps3vhZ4s5-FX})J_eqL6ZArPV!Mi0OMO&SKRV_w7RAZJxQBORIc}_u^bDm5IcI}v9dOS!mikx#5+O@N^ ztEa7yxkgT@S&>m&k=;VSkSi;RoV3C6p9S(@ zcE`>doZli=-QuD1<{Z<1+N$wEF?jh@D;7ETvK3tPmys9jxRG|VVgtM@gyd?0b`lVJ z96y6A+%9iXGDS5l1wG+!+JoWmx6Y1elyYf$y%tMO4X$e6tOcHH*tg5*KLfMWr)$1k zn*z(!phu{oM;wD_&@g&PqvYUvQFl?J1^3fKB)t)u|!Xyr{4-Z zAjNi{s}J2S*I{rgezEj^J%2`; zE75wu^BnHldj>82fr3ay_7L99`|{(G7kKTRHTC{9=ZoM1wY{e}F`x>7ns&w%~qw?#no z|65&AHgo#2)ch~=+JD^t@b5bRP@^&7k0yrp36sbQ7ZV!v=4&KMRNj;S|e3Pr*Y zfdcMioXKKSEH#utj`-~=IsW*u7vU!H)2n(pDu4;pjvMMacs=+gTd*J@(04^ly3K6S#RZD z3)1Y^1yOeZ$8Sr5zt0#y99-@Ye%v@W3I;A1^%29-Ft-vpJKo@Jqe$x@>z$Shmzt z3M5v6ohkM@%;SoyQoESuPgqobCg!e^Z4k``q&-&WEGF8{icN5zm%Y_Z649(fAJ3wL zi>R43V_hs0rV(mz=bft3ZQM!P+%-$fUqQ~c*c%07m%K$*dWSMQqxqU%d@{wLV&&-> zjZbI=$M51X#)dkX39QP{9Q@4O_XWlC!_y6Va0|x~Li%Z?V=N|8B;udU)2*&LMY6+P zkvHQ<4aFEmN(xPNPc76r($ZL|3gPFAVJ)(Y&w)73>ddru`Wj7b;?(A6Me@vR+@ao^ z)5GGJ8(Ht}mOL$%$}(hy9b`&PDsChYWp?+>2|La94)a&YEVK1BZ{$;QHS2+)N*W=} z5QFh%I&?+EU^=!@>c&@IGmfR?49H@HO3{Mtlhkw^jQiM}VTvF?a%aOPvkmiUS%gJ% zMp&C(+K$?3G(d+T||GjXN)1T5E;qIZQl;L?SQpSYnes!6Bvw>E#zh3g;M zvJPWof~gFjY0{j!VC^+szc1y9zb|=B{QV$gx3BRgOKU>(^F{Eo3RBP0bo`vt7-NJ~ z)Kv9L7F$JDji!nQ!1p=%piOo$L3BZo?_wNb4#lHgf1yc*NXRh3VH7b?-1TxCGZM z4))i$c{&rpqZ)mHIaHEJU$qvV^Oef0#5Df2^K}Fhg?go&osDDqDmjzH(!9!#K>OAK z*%2(qu&>{-?a#68!$?+KHfv9e;ZM3VF4hOx?3HgpMQ#qC&XPoqbHN5T#rJiJLsx{( z-BSeo$xqx{`unUG?sHEbB5H|EQvM{%nlZ5ROiF&jkOa}_8&}dV4+2g-esh!RV0EKY zdZJiQuE@R#8`S*dlRNsA>G^lfEoHX2pG_HYOD$F(h*RLqxLO^3{KJ(FPZ=)4Mh zpPqct_vHlwMmk(8D?CUZ=>sZFac0pzL!bQmp7y}pp$;$2*sAXquJE;F82s7+?EG2c zGz~B+XLKnt8bfN2A#=(@`?RH|Ol(n|B;a)LA2>dMh5X~=4s6W2E`Ho6kXS$ASa*Y1 zi0@-Ri6HTQ(T{B(?yJ7p@qIVrS&%LId-g~W8K0g&c1>%(ILA4=HZOdjrN!Ecmcn|6 z)EGBEj9|$0j*0vnQFJ?qYem#tBQIDHS3v5z&pqbI?Wjw#ve<-rc^l|7y@Nr2f1>OT z1%FvT#Iq_V&1A->DM6b}N03UBV<89~S2Q8>jDG&5-%?V7Q946c&OR&Q6h|BLqg?Uv zjf^&lO*H+`MUl*`@0fFEpdoDBs{?G%+LNUO5fVosetLzfH9BaBktQ>6TM|st9a0=bv|G=z{c!~?prox7infO> zMzCTBnH1mwv5`p(NQ5l`oe-?Rs7RG>fuhZ^M%Ls86a^^fz$99;C{~J9mZ>A5q)b}Pc(Qs?~N|E$e@{ROd&Uu&A81mC_X{r@xPQ#NyPbg*~%FEXTmsai)S}hWWRL%9Kb?yMIHvs)QqcK2*OMt?~#d0Ho%~a-mXh5GBxvgFMT+=jMII z8&I_K5#1qBl1C!&nxAum~gmLEx==D#4@bo*X zx2b_`=-pF$c2Stf7vd02y#mG%@Y{{_U}dZ(#Fb+~L@vUJ;AONl7?(s&(h9?}Bn55e zY-34DNyTeU1B*O~Nj2b9-mZ4SaTMA(;#kt$RGji3>s|;tlvUz+f{%OK>nmZ2@2FQ%`-ilMBwTbgk zJK0RF)Ds(B<$rFM5{>X&$gQa@LDraWNLg!If{7T}hoeRTrA?EqH|hoMHEGM4d;df-Y@GvMTyT$f)IY))DXRapiH z9`)(?a}z6|PHNnhnUb}RB7a zQl=F?TlOEcfLm#=Gxn1|+JivcoU% zjw6yyP^341c;+eCn38em%tm;-htzF}J@yi@U?HAuBkw!|!Z(`vcpIp(Z*wC-+l%-7 z(8HXh#BgFOIR_9?wZB)aOiOeek7g&9#0zJ)*)-%_B9Z-Mgr zUow#%TU+W_BW*Frvg=VRbU(}^W6cpl@peq}wfa|-b4l^nNMLK9@@-3`!);BZ3MNpf z_100RJ&X=F4~2sB#ED+JJx8Z~-5q?F3D;oYXL^AH_!O&~6%5q{bcumf9L$+O4a>ev&ARPUBk0M3I;diNFsGL8|iOrg_9LhWt zU5KL>c-!qAa{pNIT@L6IvTcO@86K2?bd0xID#r?|kK9?@x74vL#i}iN z`_ptgZ4985{+ZqeJaW0rO9p4FvCuL6NS+x|qTYMe7+=Ut8@f2WWh8>!c4U_Tff1AV z-34P7Z8>?`$16C<5e0ZGTAahBhQPM!Hpj5RX@aQqdgIlvzN0LEN-mgH$z^UOljF== z2~}mrvaa~X0W3{ka!p%9c${ZZa4q>uq52tG*^jR3CWBA_H<4&LiAQCJp*yCx62%Ak#EHtZe>B#5rD95ogU<}ge-kMso#-0 zmZ+eJN6lp>z;6LByk+O)${a7~@xtYf&{08vgTd>Zm0FQSz(e5{g^!k7NZlxIrmibA zuZ}cA!1*I!vP4^Jpxe=kTYAo_V#Z@vWhAujpxI6F*EKb#Um|#K#(8f@*s%uJQxR&1 z7#6=_K+c`3=PTm8l|JNowy5I9HJ@sC({zD&tZj-*-mh-_4$rxC(@{LwJ-g4?m19(Q z4S(294>juqt25=O{>7570xH9IR=I4% zQIhNY-%i7F0D+4|nxy z&;yuQQBWCc%)_h^9pkI_;6zw@5qZs88>L!Vta@5$rYtyL?+dmqWwKXB-82^M|%R{YOCF>^Ke?a-v9L(eNH~Zsspl}Bc%@Fw(mGX+xs~b|cS7qG4T6yc{ zE8_dga`z^u^wH7(5k<{;r%cux;?Q-6_fcZ`UK`w3DNNFPGWv42n)3Snb980|aU{Pl z<(7ma^RBV~ts%HC>Gs9GdQ3p_Rf2tRF4B*T$KT+Tzz<|ZhFuxvSOqd z2vttPT?SDt5&%)4uMcy9*hY(`aEwHXWY=lF*w7V!)qn%sDQSD>JBW~h;k?XRHa>5u zs06WfHy;{~lE{?_uZ9o17rxFx&wG3u&l>vU6L_dkr|-`j{=q~;gWdYRD*rx@_RU?6 z{`M4i*a9N7h%;-0WgmN8c(UYRjHqWyZBaa;d8NU|Ct(z)h3cCn*Q55k65})s07@71 z5nXRgSjV}!HgA$aRAsLQPn3qm$cCjNt;KEFH9F?m? zjP1XsnjR?DwnV{+w4{F_P>`*(K?0LiTXB}F`H`Ghf7JiL<5m!8%vrVv9i?ekkOZ0H zG$hWc+(;`jtsO-UX!gLT32^GP2=5XHNcyyC5iE`Zpm3~DMx$HSu-#&G@}MtZMCyY? z0ZrQv;hn%|lbH`K($0vX_RvDKDo0y5Qlc~}V(C%~db?!f(8cKnLAqB$0F z@mu?(5tSK#wZh;TFeLZdlb4Ho^3QXwLb*>;Q4VaDu==Yhc5M43#32KhaP=Hc5|%1V zhVj9CP8#J+3@$+m8jO+UKEPs5xm(4h*_j5*zOzCUnGWv=vpQ}@Nln7a6g-luYRoE>>s^jr$p6+$($S%xD3-l=s#rW zf*gJBK2Ex@QT0|6=On#N5|DQ)#mZ`hb0Yh1Pi~)#aj7T>2hu>VV<3j!bT!3ssVTFI z2D?RwRzBWhV-W^ZQ{m1>N`tL=>=P8>h7<4NH;N)et;A}P+O#Z1LnD>2n6gnv+M}W5k?pAy{gL^)R0?9?+%DhDv5D%mlrVJpAfgaOTIf~Zg*;3O5G)n@R%nG_Pm2_euY zDKk7TIE5;Mqshc7;$bF2vzn`Lc<6lAJVRU(eWYC02pjdVg-ic1N;F*~*yUW*n;mNo z*cfebi;Sgk5X4OGs5A=hj@Au}h{}%EW{HKk{}an$jK`FhGI#di=Pa*uO1db8DYq1I zg!}|r3FiKB2;p-@ku-DSIJ;!Ts2R81rL7SVRa3Z>G#BNbb7()nHDfmN*kw?EcFMIc z9MmD@%x*bD0Bm}bpL1-k{-yc4@@oxl@J(15^Drh(A`~FHLev`Ev=$I^34qV!#{?uD z95irtDUR;h1d%U(0d;hLeWrPP-Xo$WQ0zUJ3#JRTTpwo7`TxXzeegWWj5@x+ucw=*I+mLdfU zWF56HdtxzNzLDST1w1P7w3n~H)_xTdwe&YQTw7DSvd0y-|DYCzqN+f^H1T{qUKDqv zrs~Cc@eO_^HfJ5f0*yrW6Zhbc_jvc)5p-PJ+}&L@I4$PzZ-l`pLov!0*E4(2DC9ob z+@Xv!N^y%LE201_+Pg$oHCpa}suL&tWmRtW9tmzRCU4F@n#pjIBA#ss4KdxcjiDOo zh!F#umR-)QesBKnq}HIhwE=_o-V^X=K>xWhwOfKs{p_AM4=M`Co6-)7O4sRhdpEOg zBdc&!?j#;T3g}gG(mI^t?OCtAoCj|j=-%ltyrn&@Q_K8WRvGId#)=Heei+s1GPlv) z+vG%7;4UWNO)Qne(Q8LG;`na8w`0s;#bO^9)q{v6t>424s^81Z3|w_(2TiDXYBL1~ zDAHm}j~>{PUcHO`pfg2~g{Lx)kv|Ak#BGf_)h&pQt5RY?m~IOBeQb2}<;3;J4*c-u zMtWG8TyryV>H6H6iIewa%@BO_4O#7^$8VUQtE7-chp&u$Q@WG!R7tq{=%E^0zRp)^ zM}BP_+UI1g4_R5JFM_h21|Q=^p7`DQ2_h&gv<=RI>iBaLdj!=rx%Y_8bS!@0)RWfy zgP+6)5g!Ht{s!;z?Cw4^iT09~io9fT++S$~#^Lm3hwT(^FNOi>ktr`aFDKO;S6y>$ z)WPh@lh+0~C;Dx17Z7ww;gd4& zCY(0X?+0gav&`Y&cq{_8NBnSgHCk%3LyKC@mM9fK>Dl>vK;^rW1_+o1vu3W@EmOd$ zbHOf{lcP+qRzW`5KZzwd`SQXZBH?w7;5?-q`CaD(dAD^ttZC0 zZ7BTy8!7`-aT4NVru)~;G>9)Hg@^|GUXmEgp-V$aA>?a~ZuI?f;XQU`CjQS4D#@cX zrR#PSM_ndIn|e5A8}gc#-Gfw_@)4EM=$dH7siseE*li<5$r-)4mpx?AqMdnDEc~Mr zY0lK^0zQwPP>g;miOD7*bjAOz+-f1px_cftIJAx3NsV)%p13 z%&oTs_X@^TS$(5QRxp&RvVfr>SGI0FOILps4n+s7qn)os^7rq~grw1Jitr94J;RmJ zDHzPSuX6@K%)wgnuCWKD1XHof83WMN4JOhjb$|cR#9?T(@*wBKyY5asw8zOYBBd3X4Vw><>Xp}Uu=rq+#Ce-DQ?%Av7R-}vD-Mk{dhGI`f% z={LOu@CGYtZ6?w7gsE@pC$RtLyA&mHOLl(EBB9TsN_XtfPm5=t<#3N9H@PW;AkzJp zllJSS*Zh{#da{R5b_9A<&Cy4lP5oc2pmFiun=b55OIH5li=W7;2V+?5JBFy%{b6f7 zUrGZKru=kQ&h z&<~y=ez#@SPa5fCbIfq|H8U19BV)!3ykR3vm)#Js+SXQ|!dV5oMY>onrMn^%M_>Zo)keL@&kBn1;-a>=DxI`s?xIkn5w$;{9CR?T-+rNncmB#QzKZ4 z1jLNPZf@6gmo!vmACNp_-YV2kX$|LuBrv&ffWH%UeZcyGDgJt+#ZSaLxjFjf4)2?& z0J)-1|Db=p2PfJ;y~iTX7j+;Gj(sdx3X0uRw3mAs7rttp(W#;b{1bg;R@%zbsdsWiDd>kMZ)DE1@pMBqlK8H85UP;WJ) zxFIxajWx&u)l!2VPdbJrKDIt`xT$4~pw6s&&EU!b+Y|$i4T2cAbFLL9O{fFQ4MdzG z{R46e67zPPpzcen?^0%ySFg?PbrH@eYS4XE?U|?Brrw;6&`gyyW)frWFjy_cLV$_X zR=+6J)6NEg#V)%NOc;gn;ss8|8om&?7WV0ZsTWg=(`^ojlB0 z3=L*3*6vIm(aOz7&L=UuibN`m$r9t*L@miQ*MJBS@+96q>#k5#d}3}jJ2JMMlH#e5 zk;qy;#flIkQ5s7#x*Sx=;C8{nR51CF=0tj{v-NE4iHeZl_rjW4+LW-5!AmY1er#P1 zwM`AEGoLiN6O~+abtzs&&wTqG#!S&<=2XcVZhU+SZsKWa$1;Q=yYo4AiV!#Y! zVjYqgMQoA>GN)xJ&E6D8cn-mx9jo85!Gne<@d#o#ZRncx+M-}YeM^9na76&qpe5)* za0Oo#>a^(KR5(VNdF2lG15M4j1Z$PJ;#6K=>johKMTF_=K+aMXwvT#AQwBL zK>4*!aWToLP=!+te*kNdhLxK#l~{sWnqZ8joqg&3e^X}sJrIId{Ob8l`pQ)i{D1xn z{r7YOMI&byGw1)cr1g*MAO7+FLyoG93XTNQr#Ok#NTViUKPHl91a!i%2zx9l4iSn> zD4|5FRI#9=KJDVK738k_>&XGGLy5!eAjIC{NYIK%F*V(kt%t1pbFB)nbVX<`TLlFN zg_l)>muUz8&kxvNT&L6!OuHf9i%T@)iHnSpZz??z+e*f%$16;GNoHhVQqjBXgok{g zXq;zcoH&9J549B+VtiomDK*t@i9kJuO+r-%>Xl0!x63L*ZI+co&tNu}Z7MdOIvHu+ z)a4EWs+E$n)e0#0 z1C1izW47sx(uzq$iVahqHZtvToOjvZwk!7;Eop@7pnTNY@Qjw&9Wn=J0j^`nj~@F_ z5^5YYY({01$;H`~o%Vb!!oYzQ5+(N=D63YASjZx7P`3)EEk5-*brYYgLDRfW;>|UA zidi}Rdh`IJ*Xew?NVO_7KIM#oc@@{EdySVz@2=-xbh!Jv+gRZSH)5w3E`QYW34OW;(m* zIV50eblUJ;w5jkBmq03c3xYERS9qmqOUyws_#w;%#zg_^6~(AETdw6++#nQMuvc8ppNS2&h@ zb?GKgaR(YZxr-n5h=r)PZIq;&Ih$`RgQ=GR^_pq=-@gx|^FG0qN8*n1@@ck*)>WGr zc&7r~j@9iME^?#^PNSI2t`0iSiTbsz#}v=!HT(hOIr(Avo6j(lS?CR8NPJ9kW#+u) zKEE)JfgKM9MH!y^0P;mM-lDoQ_VgzIFx@IMW6bb8cha~4f9ZDj?CZaa&cmlI_+Z;; zj-rP#`DOgX4B$2VUJRD-^FKx~y<(DDh1}(BIK7}!v%S9?Fu#F(NZj=3v;EbL?|p%9$?x3FaRfTo=)=+8D71OuxZW z%~+m8C>{OClB2v>-2b)J0lDuMEQu%l%OG$x40)df6Ic{}PdWOVll-?CqH<$OA*dCM z1F`%!5HON`p+sF$sjrka#s1HJ&Z03HessHH2e0t}!$j0#5`0zdfjXpcXoifHdus}l zbg@WY(_jM1?n82xjj+DnKlG?qS6-pN`~^0u7AIelaE1f?ABaNAxPQA?N_DU=JXKZm zYy@{+@7|~iM9?cAD0+hM@kTJ_jS}V&LDUitI2gw6ie~O|uO!Qc1;Et;u>(|2*|LV* zKqxN|0{+G_s)(0sB3Zz3NG|%UmgbA{(LFZ(GUfXO?FZpc#~dz>=<=+n(SXp$ zk<1DwMwL*%prR{1NMGqUB+ineC^s#uI5hQg89?^%ni9G86@5 z{~B06<-3L)w2(wAM*HlX3KE=OpL9cKqmR?w-$a*IYOs+8T-l*?9ib{I;RuKQnXswE z72*8)&D`^17~!(-9}45u)JzP)LoM}Km@l`|r8=B^Wk(JflE*n>T{3!;hPmP34)~<3 zu$6t+dF#SEop~o1^XN^z;foKw#1z!qe1B4RYJ?ANy6()<8BvcaKH(X0y~!)_?Tz2)-}v0_+B)+&u0SIL@O4DYdJb^`9^u z`e=t_J3YJnw8QXG3m~P=Brg4MHS{Tl8M8leB*PQ@$%-S*-_Frp9z!sLKSRzGV84aF zo1%}eB9ri>SO@r#umqDzC9w|Tgokk4{qn5>9bz2aV1>Xp&X#O`f+9M(!%jukz}ythQF+c zB{NM~oytOn-BQzQ>AHPLf&epyEi~q6emkRmgkY!Y;i0Ty$lQ3OJx~uE|9StLf2fi~ ze>J|4f9W2%{-5uE6;~tI|Dx0QNAeH<2>&5R)lOkk9qp&A>}9v2u=H7e^ERO%3Z<3I zrW>qD`Y?i=ZlAJcm z8L#&&*Gu=?j=!K8G!V9^+}|5Nb*ps zg->j7`F^K7#cHF1d^Rey$Ba480e9|;)$zPLL2I^r>B7%bR_3tW7pGFm!fyXV*6!}1 zb9rIW3FY+2+M^5ciE`{rDk5Ubgkb#yM!L0Jb*5%`mAWkN3Prlez(-}Z!D2=SY{bV8 zuFdlLqsXq3nohIsIvLEr8X}(zxbMqP-S*g<;wdU|PZbS>T(0vXt>q1hzTHCb}2RBmxEIr4xVhXirtFUwdd z#>C@7G*P z;?{BUK4Eg1LgUu>?X9a>2VO{7$nj z84sdPK{wmZXlj?#`O4}Ll0QaZcA|j%JK;cX^TKqq1Vg4VyXS7e-;R+*4E3Kc(8E;;#`?NC5~FZe7MN1zbn}(!V&JhxmBvty!6oat+dfogz}6jhtCP z@&ArHfY~`*OhD(aQoO^EQVLHl7Jq$Nb%?idBD;kM0JMKk4fKlhNThu*zwG^`tz=c546iVOkkB3^T)rCkGP9(n)+@VEOjw?u|3 z;a?by0fBtc+H56ZOjV`Njti9|l5P>dT+^T>xulTJ_hG)%9aTP|Ehhb->5xnM&OZj# z+mF^;tguI;J+V4}3oreOK>*~z-S_bgB#?Z-6j}9 zZNUHf=jq~TecR#xze_{@?>o@{WA6LEp4I<-{U82O{X@-H99c4;Mc`!io-7Hm z5mFe%Gy;o1&0nyGRhG)awn8mAjRBp4lc-OAt)6|Ky@v!;< zWUL5sCq#$Dm1EJJ!8B}NEf9liA_fDZAdSx0^}kX#4~-wxT0dLRRxy2R!jA8-u|5OC z+V0sA4aN+TSDqkt_X?DI7xoyuEQ$QJ(%&L&os(#Lv?Bi|UeiJN1IUy+V8X^vS51G{ zDEsO~Zo>8Ih4vBUTs0bpHDAXAvxqkwygVsx60fgCKiO}XUT492r$l0WLk2vi0)0$3 z^n?16L~VX|;rFKf)zN-O`OW{C8+LO7S==I!fOz{-@@`06ikqzNK>Xs=2RTB7xJ~-- z_6j+8C8GSH80-^Ad5nL?Piw(P+{{ls5?B159_BwSAO#%zT}B*&ll01{o&N-lC@>+A z1f=@iso)MB5uKX~#NxWrqRM4?_2+d(uS)=)D1Qh?)$VaBZefBK-BkBKL{R+<%kh=KVp`@kYqZ?rnUZ7F#rrz%JEKmGPP0>w0 za-rN!1lF6;@6Yl|XZ5)~^mptp<7*zo->8Yl5a9qvvoHY^Xwh_Dz<^@@EI};T;A<=I zo&$VvP3?dKO9yu0r{yoI3Trbxlci3;5umCveX)|^+2MZf@-}S4oLzKiKyeeKlqp58 zKysNNvi8~I(J*5DY*%@G2X$i&sT)r3nW>~%Qeb{#erbCfJr+WnsXLX*E2)p<%f_?% zKqzIMKOCtv1TavWQ6R|beKzgxU*1B3l)JtNz_!d-$B%KJ(~T``{S6e9ag`Db9r_)# z{>>~mR){w>7pM<~8bs0lMaWU%>*dk;RrfV#*Nh15Q3x9^>39bVwkdrgw#|e6SOn1Sd-JND(u*h%9nJDGHfXThzo%15sWQ zi&~(x`rztj@j4y;7%`*EF@B4-Nk@^KACcH*y?t@FCha>G<|9aV?Z6G@heOb=7+e?* z+bdttZWuwN4DJ>wJJ_c1r=E;k{roIFUwZj$`TgE@SMR^4477HxY4c62iL6b0M`)H z&&y6njpnM7D$wiaL$nc(ABl;=0W%E%sK<8djk6)hv(8eRrU3#%G%yiv%-ZOYjMBiQ za^G<^{*?AZ>pPJiZC%3Q=D6DC+FSq6y#Sg#taZ%gZAXo;R~dg9)v!NX33F&z&al_b zwCE(VC^txuaBg{x_blSAq^~oxvw~Ge%BZgWAq*ok+emN{g~A+?mBT4kaY|12MYe%I zFh2?qVg*6Z1|^Gvozk_l3y$(q3Q$RUzE}UKxfm>!LZQW`Yc;fC2Pu#BW54|F2_02} z4KKpmxI=uogja-THQB$798ri&rwq3~FYeNKzF1kQ$%@2|gPVw??-LEqOPJFoK#n ztAl|qwT^wts`)8Xy<7M$m6@HMdz{To<~Uth!e@TAf{e%RD2*m)O<*CZ<1hb<;R5EY zbgUQOTl_rKupFJ_8ot4-W2`(#+{_ECNDyk zMJ-m6NiA2xGV{tBKo4zuJLC)5VNyT@O3odrCW6~hJ#Ma=4L?(t}^Y;_NE4i@&qBZ=l7NlErZ(9W0Qy56{5Ky{+ zJ@UtcfYw7(Syj8UQT3newiTq~HP}O$yb!63RXwR9SE(8K zqxfU|lk8kLxU--u^PKpJOQi<2cQtF0LD&-GSf}{5LcIW0Owf)|Ez6qYx30dCa|~Jw zoN%BuC@Q>rNRg9dX{Tll4SGvh`)7NLLTq#Cyf>-gPMLyzgAhayWX< zV0tmXZjA#-5gOBHG0EETwaAA8hLkRGAXO-Gu)=D!hWfOL4s0~{t8_H9be1#?bb4x? zy}bNDmkyDQ3&=LqFj4#0@GaM&qG8Hgqyn7-96TM5Y3C6+^S;{}s%iD6+!5u>A-W%3 z9Q|f*`klG%YsBs^I#LBI7`T8Aaroq6Ss&G_WuVq;no~ErdP-9#J`125NIu(A+J9H# zXC^yiNi8a`9P9X8Ss{95OZ5fyEz@G?035-`XrrsK#gP2c3n$fa=w9~t2}pDUsIg69 zry*8P0Cv^WR^KOSDy!sQd7)ry9$`aWT_=MAtNP0l^eRpHo&w4V7)x3TNGP8ZV6Xfp zqn66d!t&W14(HxN7>G8|MZ&Qp;X(tpD>92FkE*QIt97(>HYo?EF)@SSfLrj``fbIP z8*Pha78G^}pc$cl1?o~ru94U`SmO-Agj3QqzjPt57WQ;>z|-j_YW{4LnzVQ8)S9ZQI=kwc>Y7lK9Jli~=Vqx$HCE=Lq3z5hh)}?Ms<<61yb5UMeUqC`8dwO=jTT}V*Qo|eUF%eNm(p;2%{Rx4Ml-z5ax5gzzi zKo*yCJMWkH>#$=o#-MR}1k%5mMW23?xHH7@fnD4u7RwEa{hM=**2<}&|D0GPV(_%J z*4zzR`H*`V3;&ri2sOGhkc0egH_74GzUmV8lbGv()0H(k@Ze!=<8B&Z2SrHyK18tU zc}`d@?eUd|xVIHaxkl-NB6xzTQgPYip02rIObBH&{q>GAkOM;YA|9L#BUlSn7h-(>B_LMs2 zB44W492TBv1>%=>EyjJndrGw-WpzIr;GW6rmOmT6im<(_0O|V2&s%YhPqL@;y6C4K z!J=CTZ}cgDBA=ds?W*K&*FPlQ(UfN0y#F6%?-Zn26r^icRhMnswr$(CZFSkU?dq~^ z+qP}9t4{U&abo75xta4`tcx!qGvbRKduOh-GM^O8%N3IK5Cj6@6R|^Rn+4L@UPPA6 zCjRF72z$8*4ps1!N7@oKI&<{|qFKn0m7AZDpHP)s(|Q||xnIGO*v{JQlqPFd5NcTq z_e|Y3&0$&E7S)s!f~?e<$t!l2B0iXYKhI-hIYg&0=@y1j;ExvsZ@qja8xSkh*gw?xe-cQPqI0DR9F{~6r=mqwaGiqEv~WM8OS`H zdB!b%(3M^tn8ed70}(CI2B$2HACsw%`l7&Uo&~%JGUq>BMw%DtVsZS|GpW;G~ zve&s?z%u>z&VF)nkW~}w)Xh8n=9%ea@fWVU-C-R1o#QW1f!jRYna5-(bJSLv5j;n; zJ6;jQ#+aYHBdk2FXO8Z8rUMMX5x|?6qk!`mC$V(y`)d>lLDF9(pdRuaB;6Yc)C<4sj)h zgxL75B!zS8XH=5`;!>OfCgiHM8=CXNfK}dYYw^ur5e?abHJj3$a#Gs`9syf9YS54+ znq0_ud1tCpty{5h2X3=zp`#l~s;gomv9KBKcuWy9jwWr0c3ZM%8r9Gl4i~WFFVFLp zS4nL5Ibi0`u;XK{xOp6IO6`kIHzh@(=DJFF*&MF`JV&^akEVU5lFzxlKYV{w)7XpB zHv7k@+%2(4Q1x}Gv*qw>eq{Xq+ya`3f#e-TXVKx8G_LSurNv&4QLJ)p`kU}O!uiZ z*9qj*0D#N7N?}(`*uCDjO%Wyh_$u0K61{M)h3x$`86$ePVAAETmsPyR-g24=EexY( z_6-j4J+fM5;-Y88sf;dWhLZH`xO~!<<%~u(uWj_rCwQCEg+0`kb5AU<=EWC9I=#^L zSl-1agz1EgkvmD9m0Q-bC2o~6PI)>7A04)eyu}!=5$X|+KW1FxMZ;a8Z2JSw5Z41j ztxtS|(LPD%@P^Cyy;-rn^{~8T;Ce^_EoT9xYruF;B-|&euW>fFm}~=fo1#4+EW;|XrSq>bg43Ik@WRUU;wrt>$r|4|V&0xP z`$RXpkM-c@8%uoE$eEmR;O!YLeW>7${vHPTgq1rn(*A?ks(y42&5~?Z*2XP1bEa!y;V`tl(8 zgun79P`ecOPGYa~|*?}1YcsK$-BVJCiQD#qH@ z<22ko#(6-xxZ-J<5l zEN1zj-%AC)8Bc8t1GgnOB!7OV9hH^flx&;6?7SNRCWK+LL?-WrMb&6?2hN%L1HOx> z?saN~upWxFeL+iIc~i_Ku)h^Jec;ig?ES10F&rE`$?0b9>yHmuG!kBht0Dbh(dX~e zM#I+LkkCJM6gDb&RWV}3R;c?su#%(Bwxz;m;ZSuy1UW+Pmc30V7|BHeah&=V)5BU& z77YBqpp36l%qf6juc+h4HS@?{m{TV;N+3I;Qg5!B!(6A_U#LwFwCB59i(_sJ#ht0u zK!>gAH>Fx{fa_ym=5Ty}`sN+ko2c;9VwoS)1=WP8fI@9UrupjkX0sj0UCbu)X5UvC z$s0q^lW@Z^lu142W9GSedB#j=Luk`Se8S|&EW?ggh#Gy${Tqag8X^c^*RGtG;hjYm zY=Q_ivkYHKH?An)AK$_d9F+4LAsai)RY3jDD!HdSv-Zh3m(Lxc>m~P*BJh!TxCH4UWg)U`t#v}p zhPyG(-@k6fZg(j2?8~>$rA)OC_6I*upJWzDI!@ACvjzljOc_!MW+;J^hZ@(h*ZhDq zntW2c7%vz|QgikL>T1kSU3ZlS<-DqknR3pm2oGp}LrMFrNb2(~9{a@P9=}lTx0^+5 z1Zz}7DQ%B{Nl~_AJR%C%wz8TbHXByB$Fzq0OUe-8R`Y-ACTK-jBJ+!L18zO|Z>JtMm8o^s}1N1foLH}9Vd zP?z9fR!<~AZa~=HbrM1l=lHcCI0fN&XUj(W2)r;SCJ{u|BLbo5V&r7O17*tWlKC=m zlX>f85fV%7O>GBV?Xia@IK<$|6XqZRkp_eJv%HOap4PNd|3m2MMu~0^q57fAd}1iS z(2MIrbD263D>(D$vs$Hva?mJ+BfsSZ{tM%A1tkEy(gd}m1!pu>VA>st6%#I;E@u$N00RZ zasg6_ZhO7*eO2Vg*~5GE9%T`)ni*D?v&?vrZaeEnv?`r9pqd@sk;X@nI3z}rNLQmv zv>IZp%|PO9m5~};hw(1wL4s~ewqgYK-$#+nDaD`%pw%gl)>iR=qD&i+7cOJ{7-(Vu zG4Xp|{pXea_jpb$^IGI`4RH-i1Z5>r4@(B=@_+~x5|uy2%2g?IlucRv<6sTksnzmS zr=U#h)Wmiej5R9%%ok0tB; zH-A{)!PT=DMXRnS@&+w4hTCovZ8bsIQ$kY!qpuAP zmaWzob;6GK`3L#8#Yz}38sdl4+12?=yHuk{bBDbIJ?!Z~5UeL&8+Usf08x1j4&`K(9B~|qY za=!^@I&SC~4_H3DId53f0s14#lMPQAo5ZssI&)d+1En5(p%ASD)${a@n&##?=x!vg z+5uX@tuwjJ*F;hmPP^ikM31CDiVTIGf|4?HVM%SRT?;*ul;9{+RM8RjH>aSBG*6Kk zcQ8c@J)(FVb(S$Jcrt9r1r3>zshj$S*}96CYg4VYpnKFVdi#Az*$&ZgnZEQt=e_j>c7M znXg$~Ig34KeUEI<-d5Q#=ymJ$>lveMN*pQI$trPm3RxdGh_gN}?`VqXh_BQOL}!Qj z8Ut_<@dAbB^6&PqEC8qyF0whfcg|B|>v!k)9lzb-fRfWVg_{wJ^(?$mi-aIO7=}_% zB35buTV#W0Pq55+fUbTsA+mZ!10%yzr%Z<9F`(B58W_V>S&P#8B=Jn{sx?KzpY)s1r-b?qdbAsQnp#;R(0>s>b6$ZfJ%0J*U<|JtuoP-FzCwCK(JhSz3ywk1V zepa)~Cz0HAo`etYVA^Wy7<(+aT0~%OkVn>chho~Ze;kYit2KvV6jAK)8~a3seHPh# z-BGCagaAKy;YX*N=YAsFeC11&>w-q;5o|iGQLLHseBx}XU?VTuE}A;0X;=J=p$+gQnWhG$10h}~ykl_3z@Y3>s2UTLVWVBFk`P4gR;D_p-X4%@kvv)Isavfw z4{LlGSwWnL$SXiN<&|+k&cQxGBANmD!JVqM+HzsZm7Si@K#qoXanF-<6nu5Hj5eO! zVOJ4wtD8#q>xE2eGsH8K`y6L8+xORaceMML&*wD2yF=4otU=_B_M#?5tyGx&7)bLb zTd67YKWkrSi(bH%F##E|0#jm1p)$NwEKS;GN(~TJkCYsl57)MNg1EFqW# zeIgQ?HAOVVq<2{O2Na;uY%IkXKdcH3F>U@x9gQ(X&SYnpNy;yjZy~+TOd?~0i7#IO zR5HXm%9vIqflmN68&^cZZ1v0L46&U!nxXZ(>&Ak4z0+%Gr?eyM_cg~!&fjP~ubc2v zKyBJB&>Z?(V*oAt0)T+h&Z!mv%cn-n9ERIU{}bp>834en(Gj(!&nAHGn3IRQfORh+ zm>uZb>B!($)NY-yo81n;ZEpz}I5 z4uk>h_Vl3c>|WhiK12Ompd3KH7J7Zl-g^O38P zMJo_}EpHJ9PvnMEMFt^nbcen}H4J}U+*LCZ1+bIkrIYa21X(Pfg-=|`>{w^JzO>z1 zM?n?O%=^QUF1`^T)Ww51qmG+Lj!)j!Tx@kA8@)bPpKqfTs=v%G4inIMkpcXMIolZh zq5qp&BemB0x1Nrj=?X2C%1Yx*a|UAvCU7wl9T%FUmKG*kqqED+rG>@DBIfqm+PqLa za(m5$9+^i=>wEPvrBXE8>@V(Q>)GPI)?4p;ZapK zSEg2ri>-oLzuQTc$(~05l+$kX6;Cu*yIZrfHqv%}3=a?K zr4^ixIm;+froeRfLD>>us7qyHRK8yUzB1GZ4J(k`DoYz6+opyP5gSGj6--R4R>l4C z+w26zS7YYH-8=~qWnEB@>%Zz6^K3U^f5i*qtu0ZQ&b0$>;Fen*)i$}cpfurNC^pKz z30r=I43k%L^C?>OSHW0G%-EfE) zK5YRLcVcS7X?lU2)=<|)mwut5l8(<18;g<=%b@0k^F;X#=R&N`eda!;EGZc;vgJzb zDI{hrz7c34UMxbvXq-YYH0ck0lG3GMH5$VZ0z-j->^$<0gush)0?8KcQt97W9LWKX+pl+mKG~Am; zZ1$4KAb`%npmmp#DAX7YkCMo}#f(#<9W7s0W_w|Tao%s422p+a7H@%G>5==V#)jUQ zb!Qj7$OAvIweQ@@)k|mg?fW)(Y9ZKAKzl^4qRGt=+j*l*y&$(f3DR>%tc1x^Uxc$i zX-xP$qhV}4Sz3d}7POqFgD<8y(yEDXWIp!zy!Sv}YOMQLm6u8Lb zWV$Hh@iQVvGfAX?(!Is>@@KH&+{r$?F3VFLWY21yjZs0(L_JYm(C+*hed&bcLW1!z z6<)+CWg|oSI4U72Qi!mMR?|7G;$pcZFC{yMN^mv!nK?D7x-QGoy&1F>L3l5y6}gFs z2K|Tnc?aX=WtOZSGSJqTG^M3YR2ifWZ!tKXTI%WR ziAq~K?Mw*YGHHp-rQlD0C#Upd{zwprtG?8X0@UK|YsLD$Lj@n=jp~+Cb6nj<#-*}M zy1KR$#w2lNmr&Bic?GsJxa#_)+Bua>8~-u7qN!w?_UL0{rQ(b6be~8Gun8?lDrAbB z((#y=5NcYzJf#fwkP+$iz~2yR#v{W`yM3wFjlq*cM5Nq4A0gDtdSO}?2l12)cW^kR zUJUKQB+4>Y5@MFhnG)&&wP^u{HEbOQ5)Dc$H;uo_5fE5#8H!Q}#%+sfieyyM&~j3v9;H}uCb+t%ZnN-7hdLYOn=iKSpHSWN;O)2v_E(oai-=gV`JM5`Kz zDp>1e`kF_Jr5#U>$0cvBN}R<@!{G`hlByc3wF^Vw6g3vr(U_Lsg7s-1m{jRqy%GbH zbET1_R?|>%ykk3lpDmW`VsDaeIKB}H38@yyt+Z3DwR%F1Mw5^xh-jc@xJAK9kPtec z*V}XLlX8Mu9x23rzR&?8tKBr!19QKqSe$;F9X=5#!23FdgvP(h@&+jP{#~+(qi6L)Zji6VloGhfNPU1%n zjBF+v9<1}kNw3M!1gJ2jRx@=+>||6v`m483R6Su9VJ0VSm?}?JTDb7dkA$L77&vl* z5OJog0BK62bvl|7%nTkBjEQX^3XK_STP!Z>?VpncN7Lw(i#ZvQvtckuMZc{cUT>p^ z6>+%$|3>o6IE`L|EjJegEpmLP`5ifQO_vMxcVldF&7|I>VQuKImt<4B9@mx1$;NAL z-Bt#RPZ>`cVb!c`y%AnyM}7I!0;ukoF}fa>8((T5QesE~iOpIJ-?81r_S)*!rl?)U z#jFfG*Lhx4e)*RS*P!r6CFjIMX<^Z3a~>TNa;(VH4BgQC3CeipRJ5pdrP#`~g^Rj( z-DDnQN^l!3Pt&%dq+XItTa}T2bp0Bd(JxE3w(tV{i-pOZbm8#`t@y@gA2b7>B^Mbc zu0}TmU@d^8UBbq~zz*3bDWqmY+Ul`2Hpdym;U{eslBdq8?3O~ZNVeDyxT8xn#~!2k zx2DADnu)y!gKNHohMt^{Y>tmuN4&AMm-|?pJlzI}#fIV&!u?u-L-yXSry!`4`&kBe z!JLsjnB;fdP`%h;gQo`!Lu{$NBX^7uQsg|Cp~XR4LFp4#TmGzvU10Hm1~duicu)@y zA5cDMep$&bw>76xKEJ~JkzF3Ybuxw80|{VPY$1a(j(`G_!nC2X#$ogO8sGHp#&iVU|9jTW2tI1%seu~P= zAIPO5Ug!9_^`kdr|q~ zp$~){&f$rWQu`S9265Ytz6jhtaY#qBJF_|J=DO)e97?52R4)IbX5NxbYF_F=y+Lz+Ye4}Xv(CCd3qQ9cyH_Z?DBYubvpNPI^;I%1UGAT zQ;5dnAG^mblG2(&~H-@)-pl! z+ITtQ^TvH07x)^m8Avxi(5i+z@|Q6J?2rO_;=x^BcaLna!d+N*r0^aJJEg^5*(Z49 zuq8?J%?s_G;)GW+As{v(Ng;*a>u^IVoH1x_WGhU*BGxE20;2l)UNuK|D{NBdTaH*-R>`m#=OOokPOOu(zbbWx)7__%`UwqW)?g)K!=KSKm7t9#e~_M7xr?L+ zu+2NHDH&F}2M8~8)ukwX5wj}?ZBk}y7PM5ToFSAa-6L|UCC_9{oia7&`lW$VJ)D>9 zwn?I1hy+i_hFj(U_mK26jmjc3@{h_xi8zlB*w6TB&5B{`zNM4f5l+6UdCwW5V@NMt zU%|d%>fOywrr$~$y?yTiR{lVT*#R@XxwK?}KBW$a7l$XE2{Q+5sAc3^%|Eb!rH^cB zl*icJU)`~sZR6mW0^bOWv3dDq=B*H9r%;%(QNZ2@a~O{}eHjSa*;p07(GQE-RpoEg zoL6vqv4dN9BiW*?>LKP=b4@hY*&|AFe{n&+fqFxTv=dc~f5CF|Yq zjQskcF+uVjPT}1>vc&KW)7>fAjKe9dkwV=9ViW(B)GnSfy|oSO_`!PTMU`vsM_1)7kL}$4Ms+SXp){NPY^Y@T`JmKfmAt>DJOGNnF&FE?iSwNno zCm=CDy%TWxc$7TB4SvVDr7jtwxocZDw`oZ}L%MWw$ zmCl4&_n`%PNmb$1go9OlcV|Zh7#Z?%jUyU)8wgoPuh8hJj-+oMZNUM#_tyG)GGkhy8D|mcGI`~#n>6t>Ku|nXIln8bI>{c)c$UZU5+Im zIvg*@TW@46o?)ye`4akumKuw=hqe@vcMhl_g5TU$B=;>TSQ~%0lm$Ur(?Hmxi)<)V zas))nAx&BUXR?_8HNbITp!p-G78gAES8Z4F*{q^2r(p!;0A2LS3)}ZkF2UeC3hxEo zE8lw$c9s;Qi0=pZ+=dr({JLIUojjZ;(xtPeI{D zJ$%pFaJ7TJL3B8H81k2T>6C=xA)A%Kp5s2e-B`wH!m$kWU(D(0%r{->9x{AA+k61p z`|N`TVX9$7{+80+Qa;vVKqprXG0pRFFLsWVljQlzqOQX6*uVJ_U$T5!)qt9`GK!HY zX+&f^4JebUkdMk<494&sD~R)74Qiui>T9oGPkU^LKPzf{!|$Pf3VQ z9uzL`IhKHAn$;^8UdmV*4vwh7ezoZ9w0tKlW323o#+E&?){prqj=&MzHg2v3bSzhD z?wDE#yKxfuztde3w&2^h8&aX7<=}-NMSMc;({hv=LIMLzVw-&F8;Iluz;uI+%8eq> zH$%`Xnh@8pSWjKBx_%j4GbXI?ES|XF!3=}IvZu~|{+F>=b3czH0*q);@~4w${imyk z`G5aN{zsF*Kl^|B=j)%clPr{w1mHtRHF) zsA;jJS&`o}Kl4&l)D@55ZpAd7CuyNTPzCPuOU>pVc()d^KffLx(EOksF=Gn#&~?%P z4Q&66nxhZKg=Ds(2vFHtf$zmcbRckcqvap$(Tg&h@85PuD1@XSEU@A@28?ZU2Qn(q zID{-`Sv-(MF9Fripo2upt~)Ii7#u}sP&{wv?<-Go4)9M`p0m1T#d;3aN}<-Ai6l^* zql{=Qn2mMr;$e1POFKH~Vv$-iW==us8!oMmDuR|6K$ymCn3VSS)*JnNguX{BqP~BT7F<%^hi9SXm8<`7r(DU?j!ygj}eG7a_ zbXzl1o2BMO+@X`wml;Y{E-+*baS*T!#Bl^IIuF#ljt$XAT0_Uui`lF|iI&wg>#X^Q zU(vNz&NfmQFywB#L1$%Z0sr zH@%s&CtHRa9E#(=usV#736Z&|&;5NHMT424rRM(acCZC7@Xal3Z))kE?~#Iwjdn_R z$37?qf}|wZ9OxR@$fzk)CR1B;2porBF$WnX*oV$J7TG4i?w{BQ>93U2E5)f|9$nPl z{yRwq_&GwFC<=oj!SNRl!d~_;1_ibNng`&SOCnlQ7%rSaUNAntG9f1f;wDsjAqyFS zknJD1@b|c%#S?yS&MtW#vGoDhHaX`{@N#SD1+*p@yX`isBAe=Kn1 zolwrCxHp8f3Q7Du1T+XcO~JE3ixlIZ7FR1;g zvXHxIXOjjzddSHP)?xegg{+g>(cSZ(pU{6jJ(~^uj$=Q~r{vK8Pw(shIEwsd|4;vX z{Zp~(g%gqr^7qzp-IXhp_s1-$q|l4wQ=v$weS;+1J8HF0L`8vg|n zpomvblUJWZmVxMB{AqOgkrUQvZky zbj8n+2Y!Uvo-QkZhPD_*^Plm=VLk_r$yQH%v)6LL$L=1E?h=0MA& zd|zv!@F$W4**-eoBHUebtn`m`Qf4Hjjb;*&NdK%N10!f3^_%Ibx>K5QYCs2GN2|%X zC?h_;T}zLM40+z|w?0McY)CO_H5tqhWg76{U^$yqGWE-FJPVm?k|NT1(k&&e!dbhCM!$)6{4J*LiJclrr@vK}c5zf{N@HnWDFq7LUh!z5 zAIUPoUyRnTH~s}EDRY&|tbMa*I^NU;&9qI^(@hqNOjI5!D`3gcZI)V>`TA!T9HYTU z9)_!m1n&xp#V%#0P7TnZom8uT*!{e!GsgbbQLpsFxkFv>`8Iq7W)8K$8ETc-Df za@{JH!xOU#?(S!O2ec^Ofgoc&AZT2$z{)ParO(FGaNd?Z!C7sy-xe{uDR83E(D%Ya ze7f^R^Gem{47lS+rr&+9RV(My?G_61Zs;lZe#A%{N2g;mPjau%9-_zF}*v z7P8+CTDYTuz>bWvX^FNW*CEF`u=}XZJp{8xQ;``d3v$hX))BT~NcO6`8C7SIIClF6 zXA?pQxPdJ{lOLczr4!5&%C4zhNwvfG z8oIh&!Fy&JLkOai#3JoU*XZ7 z-TnSd$lA!>Gcrub8vR?F`wg`1FRbQhmpWpsl5-}+F=6v7=D9F!M-#v}umB*XFpkNJ z^sF_3wi`UUZoq(;{UsT;V2}VFtP%JYx)1>XSy{oxB?z+Lh=a2<=?bEg@ksFaww2=vX7CgfGMIdT)`d; zJtg8UWH!14wCbK(A^ul9L^Y^WBzr-AJ_cZ6^ukEr0-FmwW0(Axr!M6YvT+_KzsuWi z!@7l*54A>=I+x;VqzQ+ui*U-U#wRdxy)W!fwEus&SV&JEhx$pDC4UlU+W%F0_usMn z|1AIMpO=67Nx7v4_~E^kj0_Ldv;=O^(CKI&&n4pa^9veR6H{#%izpn}j9UVHrvmwU z@knGF;q7eDOhb;QGGEfRYHniX0EDtcPDM_|(Ba!TKFU^nj=%>FEw$B6RzKXDW=W~q zRLiE=RiJLDT<9$NtLumF@J>SDcN|ol%6ZI!BFDyG_mjqAOl4ebZw>C3=`2yiMkGM| z{oZwHKoqRMq8F^u*+1|aDkPt| ziFSC^inXU^-xGEOEB!BP&(>y34Jcb ztM(AutKyK_tELE_X+62Vst9Ha@}$Yx8k^yf779n5BUd07p|x&bKtKnynd-#L#6;}G zMe_O8xn;0HfpH5=>c>~C=!7F1&NjpOm5eT%W_OPjb-c#jw(Z7~`%uegZ>GU%W|PiF zu95h8Axp?2_Yl)#s=U^dKlnI;x&6|&@2`_W=$49)SJ;kexz?!aMq9h5frDR{MQ zMhSk-Mx76R8SsW9aO2=s$&R5usZb6sjYA|N<+EJSf;sOFh5bO3JSFay@OnzHw+0kd}4h_tb+A}(L6(V2`6p3pkD=07LxC0*j# zDf`1$;|Prm^oa>O5xmHQ8(zaYgC1!UQg^a{$ zLkDxw+$(!c6r0?x#YpY4~aJA+anhhc4=|OoFKBG0*&-}L684qAtQM=(FpQ*x`WUV13V4oSrGA>hK7APr%Y|#=CzzMs105zRzEFT8N$9~H z`#h32B^;mZ4eO9gefnkgGS|Zz=cUEIG1PlA+LI*Xnx{m>MZiM({aY|5W^c$6$s>K?DYX>+%bTz(~+TP__;msYLpYt*a^{(^RXM{TO?R<52 z&8(T-f9&vm1MRYRBf>un#6swb1CesoVx@kD5$%mcwoZ0P@Rh{D$K4Y}Q*}Nhz+sGb zCO;`SB-dm-8-UV%+(9~axpcDO7rW=;tJPNqGjmr*}-pm&a3pNdK*QaVL2rvgs2XtoOt#N;NlgjJ|zb&;@ zM$L{}IrUhz;TW+Ym}8RdKL;3T5n)u5dO7GB{M*3#rrR4Tm%h^*I1VLas6} zs4h~}R5JB5sFWFD9I1=Cn0zxn{|%pg1`O@o)4t>?@o&w;p_| zJwmg{+&+#Rm&pGlV)9LKeII;b@3r_D7!xT+z>4U!NFxNIBRYVGV!+x>9;vFZ&>&#i zg11r>1c?B)hcQwT%I>A$e9onCorci%H*P!#Qb74x) z=l2+yFBZ{)Nkmm9p2V;b?59u8?*QDC7bl|&Z?tPuV=cE1+LzZwxTL?aN2*IOjJ?H^ zs&igm!ZdO%_B%=@hc6m)GO?t{6e$@=w3E_kK5zmSuCNP)<0ns#%$HRrjWdFaoZy&W zx3b3DrW=1E4%`;Y&76YzIxW@gO#V?grbiM zRA$P#wm{j*DsGQH-_}26;D)OudBp0}6T0OMT4|6*%3;wDWL3{?=mR;Z0uVLlHP1A^ zXcH%k%+SSzRFW85YBG_(%J*ddL}HyQz+4y75n=&nVy<1oy$x>X`pZ{fWU3;D=Rc2| z-~+!k*qPgkho6`=9v7%q$|ya}ZmEPb%XY{ZG>oLbKuH#~WdFbq& z6qrXzEcy+ZDFSyW6nh|X!J~l>AQXBF3aEt%SoOkz=lZf{r4>yAT+D`MWaA6815;!sI;>9hZV+E}gq{Kg)XnY!E{c$@U2Z{ySQmTm zIpul5A^>D}JE3YrpaG#5YfCX0ZIB&wbqCXQV*mSakn!amJYUqGksj3l+hd&nFE9Vc zVsdf%Pd3Xx`+xf9>z}IB!MwDVmiSKAV{&jv?ta%bUfLjFe|xCCcF6r+YY%Kk=OcdSBKi>BuZO-mk;eV*bDb!|3KTTGtyUsU&bq-j|}o# z5}*p}t;mZv-B*WSmsez$4X6|{i&Vu&tGDN10c4u~RhoiBYWEVT9j5v80Ejnq#^uff z)LWNdfmg4+i(fyw4=v*Dfg~t$ux(-Rbm-nAytnwx3qy}qr6z8M3Zxn_v?c}i8NRi| zujZ%;#0y7{&OWd=TG1rCj}78`dp8rNdnhj&bjR}626V^v76-J3t#xM?2DI=~Ht>eg zJ+aT1{?#_{2LPiRc*FGS6Zma@`wR4YY!?j1XLL6d#%FL>48~`2cLc_#f0qo#XMDF5 z#%Flf48~`A_XNhLZ+U(JM3_m8Qh;Y2hYu(3g?G z+ggZj(_h=jh{w0k%&$kiZ*V;+VBdqDdvlJ{XThz!HTY|E2WH00-O$64vc3(haessy zw*Dd6mFBiMcOPLcVNiFIS&iUMSxH7W(-+k>QK0;E|r^D9y|(p`A_L z1a0KFDUp4SO8tYUEw&EC+~}%WfpDUNHfdtfO?&y_l+Q-XAwX$8272ZU<*$PI_$AxG z5`H}p3#uidt1AzGa3jsaTU1c7%Z*rD40vfo+1H3=?0xXCw=7`d#htLALx;4omuP zk#|6xott0CuFW|!&TS?~l*~0OxeGg+G`4ePoL1u2=C)MQ84WaZ8Y6H@tya{Nrg@os z;jPeppKTb}M#KIVG~zY@^Hig5P>MgTx4n{OM7`3*mKi$Qpr95vBbv3*rYhX(a;*)t z&`tmDIrWrY4>!S%Fr3IN;AuzGHm_a8*>I|JC<`P)OxL$`$#J!Tw;3|Dumh12kx@y^)L4y`Bj15`r#($)4TBSu2<=MLen@D9ru7n>D`l+% z8`sJ4wcW{Q{=yTaBppX${PL^JBV{yN+EI#fSpV7Fw*;=Pv9hJ`R|u+sH{JQwZ2GhS z#=@e)#ZQBvb2I(&RTSlYxB4~c-88V5ME*)KpDmMf$OXU29?fT&!8KGYWdGQ<@?>@7 z#54WdNb<3`ob=K6m@`aHEOHauCD(F@HN_NVec;>UqpBLT>}455L^UzM4eR`7Fz8$YrY`#-Ft#4XivR+xFwHlw_+LnLeowNMvfKC~>vX?WHD?kbQ z#5`UGiLDi+evJ)U+u4;+rAH8b-z7JXXP?;cHYRzs5a&%eZgsF*}H$)Q0FMUK%ywizLl zeQRW2NeD9~;*pd_Wfl8SHNL=Giv*pQ(qU|(-rlw)JKXvOhCNbAigmTlqj;FCkUD4mLTnkSy(2kwav4ZYkIJiNFz6XD`zQD^!s-lTY8C% zxWXb*-xwuakhM2*Xf3xjjtTm7DcAmV^ju3j*jp6rgTA2>clJ~R5AlcyO?b{_R$@tv z+x@k~aEcTa)5fNf)ypcxA;)s*2C>pAqP%t>3&?-Of=B0)f~)5^ZDhEKA^kQA16C0v zZ!K&IxR4`@S_9&vvdE3CtFwQ>U;;I+_Y-ELEcwsARB-}@#|u8-7fM<)BhO%Wj@Xkr zcSV7B{jxkx!&=~5BjTQMB6HuHx4rXI$4CSEZ-4iShISKx!!07T+n~u(=Xs=Bu0(Z- zcM8}Uu(PCz1S@HT(JDV_rD*V%`<_(oWA<4u-P^bUfRO2ds^L^a^E&p|9Y;Pr@ltbR#r20e4K4~4u`S@`|g6k8My=3DmY>ylm%o|Y@!}2ZQO`5)J zd0~<{cnHHaxfVqLW^~H7d@P#QR<>~0p&Cp{>Rj2O{xQ}!@i?#sd$!`yh{B=ua~2(I z)Qy{WK8d+9JmVFaE->ejX5#6dA#313%|#oRS(SuSM9Fg3QM`ospO1=Gsnhuir#3}l z+#b2pVC~Dq-!ro(pY=pH4K?DIt$IC6E9N^^ZBzqgy++{O^)X?x?P0lGq`Pv=QFW= zi09L@&CmUs+egp&TH9B}@rn`h)A@-t3$lMmi8iC!w{wDN>=j~(NXJiuTbqIOS~~0 z3c0fbvob-BLM4y_JMr`$8>(SzCzi0?3VNA2jvHQ2ZhCX<;;h^ zK{H|l)xE_XMu@ez1At_~xcIpO#ehwM$bFlHkOR#I%7W!X(FW#&Y3F^ix{|))+|t-` z>`B_X?XDg_4A76D|8@za3$lUZMdZeRC9;KmHL&GzMY;vjlj0w+HP)?vwZBEWMcp0p zs|u*euL^9a+p-6+b=p1Fvlx)Dh0|?*#dSq>C9{>+!yXU=X6R6Y(*4t44%{%lM5(St zu_&MmoLF=)m9oD#73d__3LedC_p(RL*s)|`L)6fwB}y9+Bp!kCS7cB#(JtXG5ei`t zB8q_knP52KK&(XUNGxS+NvwG+^01RQr4je=10sSExDmv#^l)@6fRJ0rL|~L~KNeb? zG#{D?hY3OvE)8ZGtd`mc--yqMefT1lm(Wx2!Jp>W8Jq^>@*z6DHW+q zHt8#H)6JL{WY=KGb;jD@rCs9YA*OFXo9`>R9)Qg#Z0dy*sRVo)B`05v3Uxg=p zpXF?MwH|7c5+mx7&k42Ul;(wuRPJXxliun#u^m(@NL^igSAV?NcEIsQSRZko|0cKW zSq>H+v$1zq9_3t$o!bg#0n1Pbuo8dH9CMFG$T0To_mC)&*HZ!$f)B+0vXD=Exyie90^| z5$nLaPBgm!^$Rr*h2)HTdy0gJQ~&hzK#~~|%iox4lKU5<2)K)c?W&H5TAUXZT#a#o z!hioI1T*$>%;1(5;CR2_=cppblL=*9YBv0=Hj&IXY%I;U@Luy;F?)RR&D0+UjZ}qL zBSVxflPX|#3A5USV?j6ps=^6VM5E1%>C9lx+V;uZX#e0URRpDt>%VqHJ z^^7`C8+$rcrI#e-pDLNFat{~o1MUth6N`MI5Dsue*yKD;nOw2KrDu_=KLC$esbiMD zM^zLWayr8*UII1)WH*hn0|mRG_x0_$7QD_Wl{vN0MbFB2^E66t3`2v~^|{%|r<5(| z=6Y8ZAY&!)Dd36)iDiv>HKRf(bFk^9F8P2tSr(ijivX%3%+6g7MHCA<<2gE~_LU^r z-s!(Mtl2iIZL@e5a)54d>6_(xZj4)!^0(u;{)D)0ZHbv5ii-#&&K(KL)17;iSL8yv zS>d(XylF0EiwMKAbYuxMV2Rd)->e36|0WlDOSxx^gzRW9{Y@?64A410BXLJ_m0xV# zeq?O8jO8Vsv=2Q-p~K3#zNw&d9A!7yopk>T8P(Qgv&QlHxp~ffZF}vb@VC93;eMa8 zIuVebMm<|)QPybBI(-{oUt-bs#41fQWE-*oYW;9S?ijKgm*##GTmL2SnyO|uPcKhV zaTR{N7UxoUyb=AZ9&U~(YYo_~nb8*s9dUQg(|*Z)@BAMr3DmB%`v>JXS03%e4JjFVjKLj^zlJ|Eu`lz#qK zeea5cW@eZ1rmO!uZ`?s~LU6whFQO}}nq5JHoK-V7R*Jse_}TA@4XRJA z3i!cgefo{Tbqg$%b^>nY;!1 zdQH6C@guk8N)24gd(R8zngD|vtOeT! zuK7LYicNFp^bu2yBFl#Uy}AnKdam_7$8zQdO^chB1r5#hiM`wMx`x({kwdLRvw6cC zu!R;)fc_2kDNn_P-c8WLvnIg&Mq~j@bA5U*qJmX(ePmCn9HybQZX`t$!`%6^gR=&P zWy7Dnu?nerO`99Eg#yhAhG*MIvdY{))VTLsG6GG3ED zi>MzNo-Hi_s*fzsIHzP47sfYD3zrS8-Fuhi84ayXBb!=HX3jYy{OU~>&e>Y`!C}i` zrf2Vetth%#OG6K4T*5h1pQd)A>JT!WB6p(u+k)siJJuXqIk;`d>v;rjCB(k#=K(>V z&)t%Bv5m;v9WqVa9*MtC=Mg@8$MfN@dw_C;#uxNiv2mxvL&)Dve1(GB{PW8D4i0~D z^EM*0&$h;IXoTZEa_Cl#M}aacchH^^pNP9SjYn#Hn~F8Yw5-ETjfd?)UO=}vxmK;= z`nz!*Mv-0v4R02;oXJ(?2h2aoCtnw#y6`k7Um4r_pZAwE|3UJJlA)Qg^}i?$e2x3U z|IYf3Qe2fqQ9#ux0yNGtB`N|{43EP|ON~KN4U5njz>8Wc*O2LmU@i0W#7TWj$+GG#fLLaZBFiD}u#QX`BqE z2~%mqqc!cyD{}`7Tw9=4o{qHaY=HvCB`%KwxQSG_QzDW;6)4|Q9t(EgGzqaLZ;4@0 z?*TLV+{Kyw-N9g*%YMTgf`NZrUSqCI#`1xIG?)L_XNrOi8p&qzl@#EP-;2dT13PRM z&y4;-ct7bzsU}q9o&lV`vX?XIhWS@T=*|=bS&=3{mQwYHXS}s1H)kQQ|F^QBZjsU~ zd9=ONKS;ubFW>y6A5i=uVjoIyel&$7n&IWDh$Lz^5eG=k9aj-e?~Xt7N<7thK+$qA z`NoTKZw4_D5Oq`~gmjop5Gz{{JO%m-*#g6#0f1xJz-GChx70d^)~?tCHwaPJaNfhG zBp(p<3q2!bxkS|$i1rpk#V-lL+{LSV-Z{Y71s=$ehLi)|wAX#$)$Ec)2S;vLPrw+& z*U>@q_!$s;rg*gEPm>GVy?%jOir;B8JWm%Dt&g)dOU2EigzZ=mluOfVK$1bZJLgWi6y2 zu~32uD-le*$ZOTH!tLPLdb6B@k%43F8i&AVf_@`tL5R&`kDj(~ydNNUZ&9ykp=CWLRBT%=_y#D6BKHE{&mHqk-@r%=o6BLg?guy>%-$9G6MW1F1 zg_2hCSP9Pc`xC5GA0#n!J0RRA{ten!(X#HJn`H0-sHO8CuLkkSzO(!sZ)E4HpaA+eMJSbU4$AMsX zJ#0LEZqaF*h|K;wc4|2Hn3G|~_4MoNnXTmC7EBq@wD!YSqf`A&5hD!Og4oFQ#F)8n zUYPZTO6Lc7W@SSKML1_>AN3>1-V-pBCe`9VVxztFE{lKOvb6Rtat0oQ)}2#7Mw|DJv9dxg!sY93$68MEC7v6R@#_>k;M}?d!5@sRb!#fSy4P=Zl*~?)JWY zmNR<=TUD%?kvXY=3QDcd!w!rvXZn2UpX+5OGzsFy$p)5tIn2$`3{ma1ff8B#Bx+M;P$hgw zbx2DhoGU`+e^U^(I0mC3;P-9DG|IUAL|UvuTag){Kgki{tuGEi=M8xP-#Bw`pYP)( zRF2B3xoy6lVg!C0-i$AjXegoB6B%GTAR6M?OAW!jjWxt~fVG{~4RtX`9SP@PCG;}Uv3VCD{K84?&EB0{K4wiw%P93CEneOqPS)5jGNgB3De=;ww!@Ps%}G>rI^`oZ9-frjc#Ks^`zac|!JUxUB5>$2$tMIj9D-}u z_4TJ5OueRG{zKV#_t}tXWMwmVvpt?KU;Iblgwx*uN2r?rp39}AOxsBP=^{FyzkQSX ze{e$o>-PTt$ng52{leEPzEGj6<+v)0`p)K3p{Wp-P)KPF3@WZQR7p=6s3jR@$&De7 zi(Nn&C?%ix+0-^UiX1?w)NA4zHaC6vvJmZ2aaKFhYOZ=LhWN5 zqh8*`T-9xuzG=c*f*x_&WU&2%Q^6qgmaJyO#pn83r0j?{g+p3*n0FU-h=t?l0eTxV zPw5600b2&RmlQL`O{kc6uA@k13>FMA16Q$a)Jc%jU@Dq4+hdQS73xFOow36XFetKA z@1=yJ58tOsX4UQ^hvu8F_Mb%cs@#V0D$z&#NlAEwEe&>x%~5H|5l{!s#xkc*xin`7 z!q&HJwx}v3Uct}cUp|>Br}tnDCwS~T9%w*ws2Lo8Z3kH zBJ3fXn4^a?A*!!$osiLKH4u1+_7C49B7Yj z)sM?qpi7hPQ?qm?&}TG85y1rAJ+hk-*G}OHtdup6$i(_`#-OB7P6b1)tl>t`xRFgp z={BsX(RMi~-c&RBqAj^j;9*iEU(nduJ+DQiLW@uR(P7=r`2_MJl_fOGR1ab$w$M*M zouyNBFq}n!jN5Aj%*pslZKa(S+37%+G27&Lp2Jk`X zJ_3PB`k3Bh7tG6>j!T7qeZocC*XF+OheTc zZQZtsJTUQz?!Sq-OyR_LL|sU`Ab2U!ZnmH{^z>Bd5RfI-byO9BsevH$*A;`|#qCJ3D> zpO%J1IP`3DTEGS6MW6JD*h!vGP99PqAyR5j%MI}UV#fX>JGE-MlHyxQo-fG1AC_$3 zP@%v+oyh#BLt*^?=BNHSJAMuR!WYpO3RI6BP(DRj2f0*J5IEWVzJ&pS;3cb;m=W(@4FYA9+X^OYCk!n1z(gt^k?EZPcY%?Dq~=rS~a>5sOyp;z_fGAggCmb z8AA+61S|u(5j7Dt5e(V5FIF|D#F?v>*e=It^}MtmzTjTmWu;wtoy=x z2Uv|U)==u9z{i4hhSO(fLFlUEV4Er!(3v!H;2vOiXlYd^A->PHrZX$^4;d`XI*gW@ zw_zs7JP+gnE<#1$Y_mRvb%&Q&52RDZj7>7k&DWWxPc;*usAo8;ae)0DIAoC@q~TMJe>Rxir_v6iCAl* zsUu~`=7at%iiBC4M(x(PH=x7-r{!|avkPY7qNaC53(Q!dngEcsu-6yRBj#1CWwL#G zGSuk}QKAW`@vsduYW zBby)E(<%Gg|7Fdydt3-?73yp&&ffyK%}u(16Bq-pKd$r#kjm}g$D8z!M#%6`ZugCu zSa%n7Czkah#YBn7qaMU_F5(iNSN+&v=P{-;Kg_eA4+7pxAaPz*ByNLeM@4k!xXj}H zb|rZ$<*J7kTZt&B;_;vE*hX)9t|Uj(=P5Ybkz{vqz&P{e$g6xN^`&B=dj6va^d0Eb z2g@d^(d29de=y9Q4@@UxafdLo<=q-gEsBK$^a$tsss5ST;v-W7W9<+0-R3Zal9a3V zYovo=rWrJXV=;5&^;1g=lM-Rw1c!Bk+ERXA%ef&hV(6f@vxH$I6}bv23zQ%gS07zCzt@6^C`T8{Su#wyYn z*o$UORi6G%^oA;tb4vwp+O;-;QUA))$f^@lVamtEv7S;BAzqS=!m_PXDg%5{wZ+zu z<;A4))6oZKcFfj!*J6*a!$5Q z@(Qpzz!*^Z@5-3a{*%P7Eo`zG)o`xy~8J7Ys9AzK?Ka~o%4 zaeW&jtA7=P{v!Lr7x5Pg)Q;6q)KEVeoN(<+i%^(ze?6*!g;Y zN#6zJhQ$BZ4)U;rBUFv+nyS};m56Akk0h6GrN7^l&NRBd*(tJYL+nHvo%X zS8OE&wicLzTz?^ghtAy|ORc>*+>-BX5Xa!9u-o+rhOZq=gaM7T7+Dh5GdIN~H_nQK zJ4q7VV7o-vDPErMWt-?N0@Pi!* zGGJuJK$@B5lt(C|%Qm?OkBBW805!fP;aM|0UamNIY$TUkPW89kz{21szmpb>W|F>_ z*0G>NaE8=cB%NBbg~(`d0Tx@#qPRpFUU=zEIO}+sigA{n<9p#RbD!A*73#S~VBg!AqK^aQ*`Kn=UOyLZMEdY-<6oR zJ<19{KJ{xmSlueD81DF^SkGCj6!wN`uvIM6a*T~b^=r83cm4*dqQ*uR6tfp5g`=3Z z?jjG{{B+WQB#|jYKEUJ}RPOL`_e!g^F6Ai<)3R@u=nn}L#uBra9z?=TW}r6&N{=+P zPu(_(h>Nq+8H77xlI^88{N@7{!33K~s%*3tNSQ;`=TECIF-S`@)*RJD+D^Qy(@wta zjYY5}gari4l(`~%LXxdywZ4)nip&>(&BzybRWkJ!9XM(9DG&Xb1vUBv?P}yjOX5wu ztK~($>-pM^_?Muim!Vn3ttir9nN8BU*G{5D-G5{AB*Teh796sesqBbVlnKj1Pk3*Da?;joS1(|N zV#P3i*gOK4BsQF3$zzRW=5xv)6VvLh3U{E3b8zp zaU{rXw7hz=h*8_zeX7##>#1xgRqjrr#i`N&k_Qw)t^G{tf6$Sq_kyf4sWv@AizsFf zMcBlp!fkF*??-Julz;9(K~D#jtvTrOXsyLsTM8v`2N>QF@(RbOVR(o*7N}GmHM4kj z3xgD1bFP4yo9xto04?!`Y`bHx0{RG}XDJpTuYhHz&d_C=CU|7)B1|r!wad&5pUgpi zECC%=BFzK!mm<8~tj;|MTftb{^PfWQAbq`UFk+?Ign6MoUr zJ|k#HFrQoBeMcGUZ#A4laf7t=`8`wzoee{Mq#bl7_`dNY=H)t}N99bf{=78?@ci!A z4RVJ3ZsF*}6M)AeE0oLL6^V6LfZ;{ou^vMxmOc@m;~u$Oux1s9?P=qj1lb;f6|I(?PiB=ke&RvN_8BlB8R-bDj(3QG7}?*WK4!n7knhdcRH z3;`55!w}Ru{3|4uZ+arHlw@Y!hd|z)^B<^#C*OZu|5t!AHtsuI6!^DqW1m$?JpZxl zmohfC6R7ta^IIKNP!y6TD|g85-xcOLIFRsdH2i|~7DA+3P0FpMM|EnK0w zwV+>VB54{M%rV)8jfKLsPuFI{{oj20&Tau{KDWC8h!5;+Ui_G@Wu2LC3*fxgCMKqx zW0!4z9>;Bc-=0u@0iL-0$HhbJVS-s;$DX$#MPuVuHQ+*s*RYcMkT`LZOovz^S$C0m zum=q}=+t)O{|1sUkn~7!?(La&Vqpt|qNKt)QVb_y4N_(%Lkut!>WRn;YV_@n>4|N1 zCkcu4)%zy}geWcV*vI?GLXYi-kvddr)S^-tqH3V4W@!`mQYJ`ntjSWDtypRndUpBC*BdJPrBm!v znu?6p3%4>kD=um58Yzh17i22nvRWzmKxC9^F;JSyjnWLzZnv85fc1@H1mR68NYm-s ztvh)A5)xgS?e!54b+DbzLq8zu(%(Zni=Y#ShTnnmg;zIAqBdE}!Zw8k z@Q84Gl6Z`x$EXGFQXQ!y&xFcJ!scXh=l!;sH%fINtAZE*}~g>Z$^YO%+Q9j#x2OO}a~UI7?>64UO~S0k za&{-KwDH31?Sy0sO*TiF@}R6`+xYvfGvL@r*na0%svgw=M9?l~!gtbgi6*-MNeZi= zW0H!ncwXaSc}x+qtYcW!@JbCfE49L$yT*N!$;2RV6Co0%(k0Gm+fhOrO`f2pv7@7- zAJRjrR!Vka0QaI@cwyGe>1&d#nHmsRCa}{6iJ<`TqoW}KJcy~HUGq$psb||W%0Byo z&_LVbU{fcah(i{hs$H=5;$71A@;nGnXISx?DskniQ6ftIpM9s;8&lV08#C8z8`IZx z8?#rP(Fj*L(J@yw!E#Ps;gc+XPEz|0puUW#TkAya@2fl}my+>up#^vew0g7@arahiR}wo{*~N^!)R>29 z4I}H;6iShe9VVL%#k;EZG!BUWrM4MBr>yc8r)MKm6iVy#EsIoh9ConTyM+N}V$DS3 zig(d$3Abkc*nuDoOKTGqw`)5#vhH&r3tTsy21MHA%Gb!kv=)Tn z%~Vv&okuRrqQ6onU%M6CyhPboQy#RVk5UajU`rrGkq6H#cRH!|MB^;tCxeFNZp+)X z!$0xm4NcVvi!=vkCh??Q5MX1Sjgy7UbWoa{z*)>fTkUxH%G=_JLwN0Y$p6hZHa5M!1n);djfFRa0Yk zwzr6XL7hol<4(bN55baoYu2`hZ%PQCG`V6^>6DGU+5%CztRqfT;3eHbby!*X6ES_@ zpfVdta)|D?KDwpB5Zw0+~-2o-a6adK)~y3vmUY!Pf{1*|Wj zp8N%m9<7FnRe1pMi|-h$U=({67#9z*&id>ZM7g|KM#j`4{#MWfRJ9ObdcKFc#E16& z^CmSJdJQjg>TO&x#^+Q-6S*1_+nn|Ng2=Ao{#jy1@Y^n|PEg}}bEeZ5mklmIMI-!g z)qSw2v11F}*KgHZ^fqO`L#&nt2bk#-SoIN!QVf{E&NS-p_@*M(@o+{Gzj8hDvgRS;?i^bPZKmp^zR;gK zGnq4{1&Zd-hC_RlA=}E?(~QF@k`(v-xueZ}ES34L^+kU9d0&dDpY!&&?)AQHq590M z{)=;vHo`&~7RAoQAM^&ZB5NKU2wEMu?&&rB zW1cs#wlB-+b|N4RwCb0}*#vYOSNt_HeL^qBiHaNJ1g|*%zV(%qh;7Y$Zc)mgJrG3y zA{&eTEQ=zni~Buci<4u;16^TO_*kjoe27rxlP0Fdpl02cTRxny(mqTK)=D^mEw z5b30M`%!?>^xvIsY*C(8o>k;lC4WbV4MBcvN35>44}UgEy)^Zi+~ohJI~_3{K27BG z(3X^d6$4mD4t|?#Knw2Rhf0z%RFA0d4P!|&NzvSWKH7x%8E9nlD0}Tzk#@y%?Za;B zs@GIZ^MRTd#WRel(>v7VstX9L#iEXbC}<}4EfJiF$J*#vZk@eKlWL%Wrh}9-j-Q$- z@3(5v--oh|5f%j%gfmtMkQXDCW@V}36+~tb7zvw>UiojgoCs0Dn_{2ex$HA7K)4@%kIA`dq8hKw3B^%y&WVvRuVtN(4py@1MC>q92*i zcMbt949#bpJ>M5ge_PPM*%!75T4uXvLKn!lS{(}IAcv7njqW7etF_mAY}Lpz9F#P0 z5+o@GJEb)j4q(?3)2X}!cq*!?D(P5)yM8cFZY2wF&lH5&CrZqC@97e=II{foEH2G# z{&}aD-7~-i$6r7|ufJ6c%eA>h3dQJ$D&kjvePQt_bHe;t_B`9gV$Gx{58`?P2kvZ! zxIw5KK&Fqt1~lCCyCc+^)(WC^Z*|L|Nxy0NFX+Fo1nYj~+k;QzK7ATl_WzIHPgLK~ z$=1RBpB3@N{DrT#e4#*&SMGB~cn7$h;t>j4a>H1!^)D%;Ne!pP%4^fmE_6Uaw47~k z_-|J!T!B0(1oJY+0b{2c@ab-}v)4UqQ~>ehkxwBXA+`p0ZJHXEF-4C>HgvP*bi_Pe zk7G94=ahz1_YU>hm7+_ck4742QfJ&OW=0*n@7gI!_D#?lS4yi^C$%QWwm34UJtfxa zRKF$2xn#b0H}MfkjB(cajqJNNc+R1y8N@dFzgt-;;rpMv&+Z=*F#qqX zM8w6|#_1pPeo=nmi~b80sxpo^B8c9^BY(Ahg#-I*Pz>Y0S&mFl^>__PL=szBAwsE# z1)u*E5XZ)Br+*qf7%^&y(~&yih3Xz_tk`D_U*5X z>ty-I-X6V+&JCsKp3&ZNIlq5 zL{H-!ZC^f8$r3n@=NtwW16E4c^2|#7CAd?6MzU3&_V^&(2IqBEE0O~(kM8%H6~M?| zP16b9c%U{Pz<%$cGh@?P1&J=7_)uBT8^51CuE9@^=OPU_0Z2x%A*69@*&JwCsRK0a zeYslop=kL0j(%9uGgIVgi0 zi!*lMuE6g;`qSC|SSyKM2G>TC0&BCQ)Pd|6twNRB-RjR6NzDy;eKEovlN~+=eX(O0EC(7bEqCFIyS6Te)*j8y zG3Op^4$t4mfEPelebp5~&oHBb=@<6C?8NPdAALr2k^SRBVlnS!kPf$X8^oqVw@e~} zWwLlZYI(g(cl?0sY_-R8HCy@itCjfk2w#K!w+$0E$+@w%28>CL;ABGE82zJ zyipciUw53xf7poNdt#bT=v7rcYVU2OR-j$R6*GyR0VFqv40Qr6duC6>FYaB2UV!~? z#POl4cns0JxJPiNE}}cBPZbin1s%Zx<1HjbgWupBA>4p2Sf@hIL(WN$2?>`CA>l0n zh(0yGV51Dbi|`@4X+wEUSdhD1lXsQ4e59xJL0d1L@EFspD5vQd;t$#dhgw;-k2VRye3)U&4lWNXgG0rbIS_ zWWlq<74E4A#I6|}Gs3NP;}1FkM=NA1avMO%)d)Og0t_&7*$(fO?G#HUYX2+FyC+g?ri1@2RIi#|BG{x zem?(~F8v?>^2PFnFUBv7YeK2x9=iMRyDTpoas+}J5ED7Alo=z%2a!OGsaFI0MSXLG z)Ylj+Gyc_(vOa%SPJ&AiwySNSQzWJ-W$nmOalB2Ij2cjltR<^S-T>%#zQ~u|A(KhZ zlUcbFS6Lo?{9uMDucr~O%`QSfVE(v%+w^_|p>MywWByi2EYuT-14wnsgDC49IcU$n}`^UtwLlss6}v-sSXK2$3;JPhc{ z=eQAJ{2T92@3}QFM)wM$YrjkVR0<*Drt!^7re~4YZX3toGQ;3f3%c`s5IYlHtZTQ2 ze@Er|sZ#wV%gyU2k1k4#?~NXU&(t~?uR9zGYYwVKrI9ip&(Nr zQ4luhTVV6EG3>PrqH-cejv;jwjn4s5u#VkY!VeRP^ynq-EK9iaB_w<7r^6 zG&`15zK-#^NcHNtI}0jKWzE#W?X$lPF>0r$D+N)Ey$4xyMs#39AS_XkB!{Q7Sg;`x zaRKu}pKSwcZ7t;+NqoJR*^0CZjOvz$ESw}2fa0N(Q&9U1!XJ_pa=%Vkuim3+DJF<@ zfz93@PS^Vzlr)l{ImZM~NKk<$%f{?uU@m2HmAq*dHU-mfIb z(alU`7n4uTj|GP?)){c_`(`ABp}b5#NyC!qN}5v(s=O&wjae4Z7faQw=RKwk$Pf;= zt4lpQ>|x{)ZmFX6;0g0CMzk>a(R|fJN*hJcfk-8=-Ra`6Z~?p!8VmEm)_NoVw@gYa z_1_gTZi7ixX{=8tXOu9UhPQ{I0kGuA0vXheGUwveQ5y5HAk0nJ(6p*%Q0#DPKkbDI zMGfj2R{qw25l71Flovz**5?J!+q>Vt=#MW zLZQ9bwS~Vm3k`HM%jG~PsmhbK)k#vDqb){^4IfZl^g<=6&SIm1M8+-5aLJxCFPMox zrpdJ8F9!L`mN>!bl~2SKZ6c$nABKHQy*2Sc6_c(j?Z3P4_GL1B6e3PEy_S$$x#Gh zEyac8<~&oe$TdNWG0a5yCD~RSG-WqGBHOG$U4)fnQ>dkEk+)9OpcEnra4Hkjp>kG= zVbHFU^emRk>7crwwT3=dI(Av9n!&3Nu6~A&4-f>QT9+USf-lw%g+Mc)g^#;CMGE@f zD|N9$-7oFMdgNgy4VotDs-&EwkYs?W)-p^$qFqh8$D;-Xor76y6)~pvZ;W_*8!DtU(M)rx$7-s?2zMhqO z=haRbCd{8b-X^=$tHrWWzJ1*%)raxit}x-Ut9QXTr=pd6X?kM=_00U-%(SnL7CX?FlXwh>Y}4-Az)DiVzXj(vZ5!#-NB(`P4D7CBKJJSfyvHymLRQtB z>5{dsb0*^!x4K-s3l-%WF)=2(myW06)mya_5B;01Fr7#BC~<*<9gR=DI~iK}vM^M6 z*nfbC%X-XS5fRc4jCn$^O{c9ie}MlSuBf*P6>3kx(P^2=`@H6ANwm*h_R#?E+y-%aPWk}G7!->a>jyQp>q1zN8mGFue zKh|!GO4k7KRt_dW_F664M&H7phTC=XHUr5zb-3dOM?_MW_xKd zdohvq?l-t`a8O8hO>}55HOMGrDGkS%EOhHTDFx%%LNg(8&xSO|sWqNfpZ2ai&+WSN z2MzVsMG^jisH2CWZ9z{|in{oUR?V#hTjC+gu2F_eP=9$F+*pEX=U6d)ndA=(UtM(= zKc>ACf`x=aZ&6ikVQn=u;0RbxEUY>AwpduZ;u%10v-rclr5WXR4QwaEHZ&W;&4oF; z`g--a3VMkw&Q&lA@^*IIc8gj53KrbGekL#=nCM3|C|*3V0HxdxUgH%utTjf_D_TPJ zbD88>QJgP&bkXl85K>uAdtR_d*bZc<58#_?HG zxR?DdyW;sfkMatD}8AbPEHR$Fqj7=jLADFUhs)gOQ;+{wOh|68F*KgxbL|j+I zjhAv7quKhX{6m;Ney+P}Pv3lKos|(FvMEIqU4t5@kD?j3L2vY#o`-S zf<+df0@PGsB*nrX;jf#&MbD2#q-2TJ`1gr$d|xK#bBSSD;a(EC81PQ+@yrMLmh^tO zWo-O+vX?uk2}#yq88n$6VSo?5?HmfcMgot68__?}o|+akrfSAr;lC z%jiVJYH8OhBm8sQRiCy=Hz)&~+>}h{ua+iK6+8@8x3ntPL@H<;8uhhxOi-5p5dw^z zdf*4?ngaSxOUDR8PKkmB>D%|lKX`7e2G=tL;(^?_Cl znNt43D8a6p0&f>(efqp7lPgZntPdJBqfVN=ua9h;wP=k~J2A&$WlE{2&#=kiv&iEv z2@oyG7&N25?Tm?@Isfy<_ZP8?px|vrVA6oG@i*{ge;da-t3xsGFwoJ?@Acpij(ZBX z%)Wiz_ER$Q%gz)rs`G>O$L+WFKHUs>349Hrkvs&ur~Mk$Xosz^Sehb;Ypux13GB~O zt8tba4Y|i1{lP;$TIF3=Oj&(AnnB_x!rPngospXZmyGmPTQE=F8_soE(VxLXA~%Xq zzE`66P>?^>iX{@K3Wdf7+=ENfxI;zuJfm^6{#QPzI(kR|=y&y=Y&&H6tD^j^K4`w) zGh3bzuOWAu?SaJ_=^imOuQS|*j_4?8e3aP3fsvRB?vVCdgO6Q|sR)0XW;YT!eliFG zwJXyt0KY3UMvURwC_Q8HPm(G))9Snr5^UMrYZ8C$T9-x@ncrc3_ay1$)n${Jw6|l| z32FO5;0l65>JojpKEyM%#$>7``ali1zJ6Us={DDtDUZUG*ENm8l+z;UTg_%fcHm~* z0Si9H$n2Mm^J=MOF*zGQ8H2QLIB=321}wS3hd36JS0X?NL^OVBtXeN5QQ?^S**BL- zo`2`%G1`5-{S2`4NA_yy`H>e97sChrkpK>ILX?si!j`Os1-CdxY@9}#o8>htaNSaE zjUg5r!aI||?!bZas7kC$CWXA33~=*j^q3}jQ%!Wj^CdQ>H)@uvmP1N*(0?QGRNQdV zXHdi6N885Ow`&Kgs!ywS0CS)0>Dj0rE`^mtzeLU6kvX?tTQXL-u_NV;csPM_`lIY! z2mNHC0u+Nr!Mr~>GV+wT58i+buC6@8>8BN=rLvDINhe~Sgrt%jCpU6l)GX~+Rt~s! z%FUQ3e9taf-0sEqdAwfjx$J;nwEdTV&|k79v)sye#h+nI_|KTye^k2jKbyD-S?N1E z{%h&Z*YGcVQGMY{++_C$toJPF%sHD^QcO^96bP+<^%znh6%k?_v>+6CxQ! z+V>~U%!l3}6l4gWZ~V~PuxOgJ80o|KtG8#SK0sFxb)@P~`+6%quzg#t%8IrO za~SCuufd*-YKOW~MT&r`=gtpSbxY=@3<(O%;0(pEjtdpB{E&7OC8P2*P#&9Gic# zx?k6JnqZUUGp}vR5kM!A8wd(`m}$Mt({eCLBppja7j>^Ji=04BKvTs1$8>zwPaEbW zTg?d@jV~fU76%-3(*`#b1u~74-PMjLpvI~djMYyp@q-8Wu3*VG-}t?K7Bt&x{DCWk z-%-V_V1GUMmlJawIGsk+Iift=ee(qNWMK%oBkcKwhAOd08TISQFS{@{f+@_noG3nK zRX;LyClB*fp}tsERm=1F-@-cLd>yTp>s|fdlu1zkV`-Cbi zEYqiMAy6Zy*FBDRpm$Oq2ize?o0R&21xD^!$4kz~HAkPv_LpCZQTHucR+rUf+cvsv*D2e!ZKKP!ZQEV8ZQJZyotKyIci(-f-R5Bi*1kkV>t4JlMQF(5qEf5m5o4P%w zGu#A$sppIt)wk2-HT~xOO>M+%6~19~*LLx8;J7NNpZ}{en^xNNhpW1~#mAqQLHoHM zQ|mEclq1~x0YT2Bmcym0odL!RMF- zutMY+LHL}e%4ayCyGFVVu0ohxNwsXY+)HlWUx|mZSS3^>aly0Un9!$2K2sc~g;XKT z8F#l&tfyqzHR+f0?G`Mp@5^jUq}K;}&?l7rsSfF*RZMmDsd4 zxinjF<}KckfE`ooGvj93(nZdYp?BkXEj@$C(@qQGe@nv@Yjf99@CZ<1*Ws?OQwwMk zwzg^61c%AZ8`oGVrE5BQE)nX{ajyT?l2K=@h%sG}jm|n+F}JP1=9j8{@vUP)X|Y}h zPwx%ZCtFXu(7R(u$dY!E5N9=y(_uGI`9Oq7xX{~1PE{}A}D$@7?%oR8tAtGPsj$u&1w zsx+d>GXVA4;|D0&R%q)Eos;UzRqZ^hG|!obTgH$XVk<~9$TxO1mt~pTJmzK zN#z6jMaWt_862!)eiRQK$&aOf{zx*LwgK8x)Y=frdZ?0_&yz&#O$-GCCiK9CxJ03^CX~%RdM;W>8UIe{0SV=u%n*g-3I$mvfgXo9 zTpFg5{$&)j+&D|Fcm1sID_aZNc+{lJP`o*eHFouLr2yR4&>D!Cw*~PXHXR+gQqQC5 zh6sf?_(`qI>&LBB7{iHi?>-a~EutANv@~+(K8RL;7a4^=Cdf3yJs9)(fR)ep?M!ynorb*t|BnWJeKy3UyiBShNYmtqtoJ`gI|^XX~9QfO>jTX?7FBfD!c z_B&P__HuC z_oomG?1MpSh@VbjwfSP?#)F4K-qmakv0W2mB^&ex_N@OTYOM7`KMARkU%4s9Pf7!U z9<1!5^20}W9+ESid?fMh(mRCzY(xKu+VQY4dzVN+K$?_5Kve%1RegYyxz&I6pMO#R z@GrwZWT``YDIYfRo0`ODq-_L|1R=%)A*l-rLdgpgKn0EJL6AZJMg*&{Pt}U2PDtZm z7N~W${B|m~v4(55u%^}iCFBMtuwC(1KDVS{X<2b;sk>cXWvg2yS@hTOIx8&$j_mVx zT)X={%kj&UfBR-2Hv5$hscI(y?<|j<=fUwUSZgbBT+`vz82(f8%6C6cci#5k)b{Xh zUF(he&6E8T^s^x2>$?plWINAY|HO^(nZ1?Nk~itOEvHBy*y@DoX}tT=jVev$hOYwJoN{EL3|Tn!cDKM4NgMN^F01JF_Ad@G0Ck#wMwg~N-~93hS2uyjLTbZ^m9>vne48ygKo^_k#Vrsdn#h(!wqSt zBwdP!8*5G6xQ2UG=&D;5K{rk4@{iXLoGprHh+uZg3*)h8Hr5NX`zF`7=4&gcM#dz_ z2QzJ9DH8a_NAd?dZ6Th*bL;R_ywhq^hnCm$&#k3jmOqr9xOnr)mzX&#&|MkYI%nyk z%{6|-n$doCc{Zte+Sy`Ii};&SU|c~BJGr-@Ylq|UPBk*nR*_?z!dTX|Bd!FUc_4>( zx07kPfPjHjcyzKByPn5Q&Z^NX=>vAwcKmaHFI{fz*64OZGQ1gbp<;ddQ`XQT!Cua6O2vvw3v48W>qu-d7|W##ktIs#OM`D} z^kYYpG>Q}DinOEfD%}sF7gvJz+4UgVhyn!##$B~5ZzOBgTv|tlJjJ5)Yogj@#zQuT zF*Hf7|GYpT=aNoSB6y~M5~BJt5!lyG$W4zp(>shZUp6+l!d-Lz)ZkIDl_z*FXU+|K z79qB;($UAyM8ywvk_-_NHV&ojC*tLc0AwWlY5$I4et5Yv9zV#yJ6-mId~cK&JU5_P z+~+2~{p#*EgS|fTV9*ECs5a?TpGvJBnXECc^-BN16kZ=oW3X|t#rdpfu55kW0FmQCu&R?j%lllLI|$Pu1^xe%_9~5fe_U; z0hf0Gf7xBM6Ri@USX=clJBT)$hUXyg-gSQ%84;5d=mcQ2*a{;5iIoO4{67X zY=qDj5$9Gill7uVpV)iVLSH!-Cxz26wHxTKa>;k_C2Ej!ODcYen(`0lZmHb@Dqo?* zFEU@LL)&}C@R)rnep0;sab=%$$XofEJ7_$?lF5UO0FO9`?e=GlD9nQ7cux1e+Ili8 z)Qs6^>^k0VPD7luN=iMurkogttX!t1V2?%}Wxu_0Xv>MHg=Dq~i8nspMp_I|a`1D- zfnF3jxX=#PoAi*|q-k+3Y6;rO>@#a2r<`)dzjN`z zHHrTm3``iEdk&h+zZuL5qfU}LPmKxRK1iGg6wBPw*5gKDPwEeIT!03dR!p~4H4yGx z`x&eJe|j{JquZZh@fm0(t?*rpUCo(uzx(72H>+=y4l6QD z1ep}A=JIrI<*BfUwC~n-+x-yg7D78d>~?W#gbm?erH9PciLB=eER|6}YkKX>>hQ`~ z)9BLlzRc3}?nn`uG!kS?lDq2WMNy~$`pr>1`qerSl9rh{8M9$B^QX+r0u^IXaCq8K z96xb$Z`M!4^@aYqpf)i|2fon*dm^F$BXnTN+iVk{d6Avshf?rXy%KT;mLTr*uIVzS zze&^Wvk$uiH{2uI0fBO#3H0i^mVwZe!(~&T%cL9P6|dX&8RMGRg=K#f8h(g(G6#&9z4+k}9Fm7E zw9FNDBs8Ah&o&A#cu1&Bo|T6`%dY&OD(^g|9*%hY!JR-H0oF~DfXCTKf4!PV5W-*v zV9%={Coei&kl__R$Yn}Px>Y7)X1Hpo3vt9_6uD6e<=)Q*ct^Yh2_O!!uB&N@d$*P! zLA1vhw02O+LPxgF6J@LNO2;rO`)Az4PWDbZhuqnZa|uP9Q?zA{)Q+3mO^sxgCKt~t zwnIHP2DvZDLE80f{XQz)2SR;RhFqT|7{og=q5Ly&W<&u0Xjw4-WT8q+7@M9Q6Z;9w|`LpuaIq- zdKWt*NF!s2RUAO9Z1Ao{kpnp_KnX&gFG@v*512CnvS{p6lgY`I(_p9{ZRJbH}ssxO)WO`zQs1|j2YSJDo-Q1#Kl>??}zYu~|%J?e@ z4Yc;V16X|85u+&6RCdjPwr|bGhn`Lyd?ab(a2}qRd`|(n?4zi+pk<~6qB#ZWM+Kz~ z4s?F11koy~M6<{Q3UJQA< zMCVV*Dcoxc&_7TKUzwGIauQN}1Y{n_F7sMSBYnbQ-l!L*wu_~?aZwTGgyf5$zrJ|9 z`{a2nD64ZJqzD@HH4r$b=dgmiPt+g=_@X$N;OfA=1`$Qdpi;R7sYw!sk8alO?z!1O ze-^=N1%-94|JfB&Bt28CFgRKzsxYbS*=kx$=Xs0oo08F$Wo#QOcT9pBjO{~{(4h`J zL0)J8?4PHp?`{iq_sBWg%iY&BE;0?y;Uw1M7%3<&$N-UPEJl#7b+4aYmv}k+FA_1@W>eEo#(DnUV3Dkd)^BAuV~Q(GIfPrs#WhgBiCOcR@2z zPEK`p4qJkqUlSu!Nh?u;|Ea`zWu8PWTA^j4d|gvm?z&LE^u{~VF!7C0gPac+h1lwP zZnSx~xQ4W8Cj(eYa>a0F&w!hGwjbSVj>|^c8^3s*#CVw*xzBk|eXZ7WlyYrF(K8(@ zb*bH?O?IB_l}$IhQ+irye~pGAD~VOQ8~E6Q%6+ty@$p)c4;&3WFNj@tqJ!vxKQcGrV57tB3tzKIv8oGi=?JWGi!X7CFm_0YlTdWda|I`3d1 zPj@~bv1Kxi zlhPDE&pP!%llCp(EG3!`9#0d(9vcVcQoA-=^lsfdT^AT@Izgq8I~)*rTRZf^Rk1ZK z>0wM=-|jv-exRdB%w#c#Jn1%1sacfl4eGI_v}lOpiHGY+O%jGWUbIRU*!;34zWFV{I#>-hrE86Pm|W zfpS~M*oz);^I2vi4+AzmryDRAJ$0iBL1aE(3^*7a^z8EAbcZ*{>@Ayd1*fHc$lM1l z2;-Nd_ZvL{_6}-}emq1efN+|p^0gL!%WgUr8R($*&oU48R*9x<;wI!I0f%s}M92>5 z4!r4uPMl9@#!^a8cXfcfpqL8mj`EfumS6 zjRIalAojv{j2u4+EJiWScl+o~HAWYhL%219z@13)Md#fk)&S;a`$}NK!R-!d^uC8jfeJXOfKy%PMlo2Lnkq(q!}pvlFk&`Xz0^EgUmXV~sIx z=!vY3JV!zDYqg_g27HYSRU8@-hH_Hy0F^>YL-L0caJxeLJosAyZ%L!CpVHgrtavgm zXXqPF&m-M-$Ft{iboSqCLpcx*NMBX^uAjVo6s>)s*!Br5>=ms;k+H8kaU%G9)q5y& zzH^asqhBQz9IsJ7bCSLs`MeNY#_p_jymVB$cLsjmlH%Kp;8Jy84A5+x4XGCXEobpG zGOdByIvrTHONqKlKEhkwB%fS1_NZZbFKUy^+`b+%*5M(Dffv8eMcD2Yn&Y_`5};pt zxsl=76LCfB4i+M^S6he?cT_Hp9Xm;7;Y^EpwZqv?K4Mh&+=wIxdv@(~QyfyF%2r`0 z@LhZ}Q?;FLcE0rXu2_1eNNsTG=vIm~qGiUDz#bT`{=>CdALW!EJy-Gmwq$L&+3cp- zXzQ&yT?F&te%hLi5hGmHn1)fT=4{FoSN9OKSToWv+^S)zFsaEIpU z65iJu7c&?iC`!X*pkDUJg6&h3%aClySD*^upDamUWkiE{Ju7x9h`rcCJ|9yEQY4i; zAv_wt&g7yFW8s1!TFz^8#iD{G=g!7dU-_p0QBZq@hPiEz3ixDi8o8$z}>TVEn3iCBw530s(m;mYz5`2 zHPSlFQFO=2=ozf(C9KFGDG-5SI7f+G4vKK#D!XLZ4yfg-t~O zA)ErN_F4}w`??URIt`MVr5kSssqRis;DS6{T&nE(8_(yAH*oQz?q)^7(gV{BmAl6;!4bL^FK9Z8HU#L3x@w z>8v8dq@;~_QIu0jHsctE6CSli6uLA$CF|zsi-@|Z+hTO{PGVDC>9obc>?wU;5NnDz zTyZXfj52&l!fIk>RfSa=Pt^h5?Ht?>HTr=RMvg2Z5^cpSF1f>|?#z~3Yq3T!dy?o>)%6DaNALgxEX z0#Hos96masQwEQn!l#iY4m7Og9O0ck8RgjUMk-|tQ!jH82DGjwCwD~x_!}5wxH-=3?pkzYH1HN=!C}Zc<{xs+Z~HujL5hlvfn?C)4Eg& zzEa4G{vj*C%ZOn@HUP}bv91hXv|fl$1)TG8IWl@uy(|W-UK5oX^upUrNEA)!I>u+4 z=h=A+RjspzG{CPvT(#WOZ?tB8;<5!e-sg*e&0Fc@T?@OqMz1}%8CXK7s> z$BcEMpg6ccDYscA!nP%QSnz7WZAIF(CWjNg4tO#aFxXIuvqwJA;vM#S(l5Vj#t_%n z_4TN=%d6dK(uZ49jGDFno_Z6c!yZOaKQ|$>3^y_f!{pnC(s1Mmb>{`TF8r_|EAZ## zIn_COmJRu^IeNxBa>c*z$YH$7kS%_AGS219y#tv3v{6!gh$)OnjE6n&sp7}C<;t)e+twQ6cs@!!1H&9Gc6WyD3@myMry}eXH`EQSaGJ!5*PYYYVd{h(ywb0c%9@|Kiltn`tt3- zvA4j0cxoxgk>ha=T{aHPopsn@?#d3Y&KtZl%oL#TZh89@AS)^mE23ZS_bgXN7oH?Q z0A+dYw7$F{hb+jJta67*kb~j;;~j*bkptk^2)`0e^Ks}lICStn9Kg}&m5X4U$56Eac@+PAapY-oPrK#_!$Nx#L`WOBW|5E)!k&33$ zx2gJ<5q6Yz38JL9;#@Kiup=u;V<904YcnOwk)oAZ-cPCnR&=y@>YDkRoVS@LV3YW? zr!M~T`G)%8pXzK5ldxhP=l5CH8&BeYKi;3{fnsmTqV$af|LhS2adW`#WiWueumut0 zgx=tGBh23-2z;!BCNK!Tlp)k}aG?nz5s`zT5YZ2&A%YVw5KINWa6-ulUONI*Uw=S< zojl|P{p$b22>odeFy%gsR5CF+REm~`m=7Vc46QGV=<>$c0dFE9tS>sBkT!ED8#Kd~ zst}bn&D0%+sn4EI#Z>xJj!bQ*6IFDGyj>{LKf^iyIyhGzl&iQZju9@qJX3P$mEC)u zl3A5}lTBxv4Ksx@r_E?G z+{b3Dy!gyCLwbrap`OiCNIqa%g)F1xB-4laS-q@MVJp9CcGN>A06vp3+e$bzq0)?L zS3O2>mHu3-OE1(yqKIn5d2@$J6)r0iM>c1?<}j7)+_Vl$6oZx(Gb_g9Uc6De#ypU$ zOH?4tOVA1S@iMsyjWf9xWAm()Q(2pFHF(h%dG%~pRGm^hOzb>=lb6>N=DL+01RRix zYt?MTnm>Gi++e^#rtR>l_CQt9K0gu-%U&i!0;>>gDN0phWK?BHj*a^;=fZl~mQlZ6 zn*Gu9vvPJK;faw=V~d653`LOFidV9n%Mk9iQQqT-G6H?)@Tohct$gSSlQ6BiHb_8q zx?Rpt0YP#fZmVSu#x$zFtQHO+eL*M|Ne6XohEwDu!YsLNN>Z>uzGFA2uM!Y_lY#4zGvD7F6DisvLD1EJdFR>c( zbn7XQxvJCNpdimFGR~REki2kxYzgaY<5<}x1U5FscNTK0btj$#UWtn}`oc5}HQmL1te~_&VWOl_@m3V;Z2S38 zwZhnBeeqVQ9MOaaxk-r*1aq{465;9WG)r;cnf_3u_^zeh5w~AViVD4AFG1PJqPH^; z^ea2PIX9nIy)ldWpa7ajIp(G7LD@C~@^8f!?DGtJqT{pQ-Bj`EE27nXa>u_;a6!Zx zmQU=l)aqejRTHg14Ok^*q322=$@v_e4X~Ie^PaitDys9QHLT#RX2L)F(YWQ*dJ2|Q zPaFf-wJf^y!0{WL(Ps+RTD6WQD`))y(G&V zNSJRj28OdOnN)cacXPq-%A!#>_*4(yI^RYZQjT z*QKZ$12?ZH($B`eknPDmQ50?ax@|_Xf6X;B+BUpH5>FvYIzN0x#QAf8=hWv#7Scj_ zn3~ksjfYp`b9XtPL>H$y2S2a-dzSB@d94cbIt2UJE>Kr5fNquI>(A4kt#6eUR4)W> zm6B`q;k$vxwgrTC`m5G00?K;MiWh3yshY5xjulHf{-1k?KX1w!+(p~Mx^|LBNrvLJ z3&4Wig1)FYt=ZJvJK8(U^-^0(u5;}K1$OUy1Nz??Bf#k?;AP*`)7Wns>VK0E{r@bq z|2gdc3;u_HiT)u;(OPO<9@WRDN=EbCD@`+te$xb;Sg7H$LZlX8PS_k6;-7QybkrO@ zm=V7P`_?eb2g|mCuo8=vJ(w@APwIb@>B%wesPp&h{SmU)R2l99wXat57djfKEnFw_ zO?KXbqGSkMPV9)oM6Hkg<4{|7-E{kuOu@Vh-5UHr+$DH&yoOvQp=vd~kQ7)o>XQ6< zobi2~P5dlWVzOioL*>bD&+ZZknNe-b_zTGUn;tAiUo7d5N+?kj2ut`=_q_n@XfHWC zTFfQEvbK^!&#wb!LC(82f(mm!iRXNuoWye!+H-}!B-V2qLPR04Ce*a93XpLaOqpp< zw101S<3k)5sL@Z`9UpqaD{?dF zP0AE#fP+YB$X^U1sFk#aGy=}uIKQQ^hKak0ig%BgD|ZI!hR6aONqaF{^wozr}f2ny-lEl00e|a_}}fR6`YM7+?AXh%xz5n z50(9Y@&E8I*FO}g!g(z`y8q>COZj_vhXCzAfFnWRXW#&w4+R|985D;61BwJup%N$M z2WQ*H(0JDG=88+n4j0W1&UKB8Nb!zYm9;#EhF%zcNe4_#ilY41bqReJLZDCi3Sh z2@dsyA}kOS9JXms>G$J3prC`&^xwgDXqIOjF0{ z)GTGvq57)C&=JJ_xM}R?lchA`4+8hKF?irxoUPn5U9`7_h!Ue4+GAuZQ>-hU!7$w zT7tRX0tSZ?R?KcbN~(mtSSkJRd%q9Jbod=Tq;0GicOR_b{Om`Os{t ze7*JFR))9;{yFWy+TFrp1JEU10v7R5efKZ%wc-ZP_;NwIZ==$7Rrx*T)ns8?!9&u0 z%4F4ukY;WyuE5={MW)#K4o139!Q^_jS zG=L3Rfx~?iO&N$xLJ9P{A9P>A7E1>YQ}Sv3bs6j^xxRWf8M~~FW!ajFJ>Tcb+#>X~ zwV9Jt8V}{i#gsrw#oH)?0$I0d>MP8*l z`BMrP?_so*fVRx1n)VvZb)=8l_oP96`$cp*xZ_TzZO&pv-kr7`I@6G7Qs=@Hj9k69 z7qKoQhmlu-x3>9zN83&~H=IXpZJ%5?XK)wK%NCkBKjFam`YsVd$=xjuYY~;@(;`Vl z(A?hG8-}OU0GZgi5-m1uT6dPwIUDy)iGjg1mpG=WeS`$DHII|AR~dUm(*0@SO2`jK zCH@^jrY+miY8pO`&hN6e5@~}A)jGbV7Pz3vi!)eHq9;`cW2?MqfX0IM|)@uAP?uWL?}XoF|AHi~N~0| zokk6?O5eBt#bD`FK$;K^e^UKcx|WQUW;*Uw2H?GFF!GO<8xVgqFbVRhkw-ya zcPLtbMvqxrOO_r+5Kf>?18vh06zPr$!{mgsu??86byKz8NEEX6{ixRBL5o}#ZD@j? zEY&#FlzXU@ab;gFx3z5{C4wtoMAl4}#6_7;Hl8yZ2RN`Y&nF)`MAK3a)*BbGK%ddK zwSwQ1n@r!SzYZe8|cJ#k<*Te>C%X4=xY;{`AC>mJFW8>oN(zJJny9Dix4%SI@t zc>p|rlmtIao$QzKR&;{L+Dn1`q}8EX(PQBzcoJ)HJ}Z`iE)8a^Mblz58drZ)yS%s< zeF~SiyW>Y~dD(#yl|qlg;x6K#Uk?Y`(Ek)Je)&i=V8e#XX zkkS(QzCRT>=Ch>nnNoXKrvE${&4mu@71wa5onK=R&XV@ec>?lOeS~B zuEoZJp!bH-0?|wisaWk_hi9}=^}8sWwH$Q{cC^3Nn`Sg@UbW0${4`HF?9!b4U<=|f z9p8OXxoYek(9Y$UyP=4f>c0;o>N8jw(sI$c~LSBEh%dW2`hBL==9?x@*oYFL<>>i6Ww-58mwan+E zDl*j{!J-TnBL9IJU`pXE5p0cKWXeE{e5aBKm-hi{B5D!SPsIgXa|}zROc<+RM)!d; zuUvq@Z2$9!Fwo;*Ca5DifEtI<9bEMgO)Kf!jj1Acip98-1zs&8U!Nv)x<3mYUPBy) zczlRqde|D>eiy9EH3BD{b=JQ}Xu8L73`eq!Gch|;NJ{#biQK`n&X(tPB4?t5qZ!MR zH@vC3fW@P(^1uv3n0y2KMHf(ofowy{_;|W^T4Yb zfx%Xu<@>_#Erreq{oqOi!9BnoHX##)46Mo9fSG0p=1@3aE@gD6PfE=P29aD3#4&eeqO*7+Rm z&f)7%c}xW|Jc#<_1k5c$8jiqM4;QNIcT6%)J~6!)o^pGKC_nIOzo5J%3!ANIp#?G0 zuB5vpGo&`!PQNzMxiEsSNu2(CX0_516k}dd^%C{OKtm&1EPBiAAA_OpZmL`D00;)Z zxlTY}t5<$xH%o}6`Ibl;PXeBzrO(2d_jUJqc_JptU8_Pzp#`F9reBT0ROyl|r+2VM z4!%-$6P<0OJFA|DY=2%?7?wF>SzgbsR@r6opWd)cQIT23F-3hLwF$17sst3T2S7j{ zv-EULbX~DSXRL_=hA$e|?eAkVA4Y^J=3|TWP5|MxP;H3aVHp%{Ikm1Y>=!Z7vHY|{ zG|PK=`p0*b0-!{I3gsTVzZoa*XM~Vpk>8+4;1wsJpjX$2trz{SJ>Ek~=u2S->q4=! zxqQIyZz-hm#}{XOa*fOX4GOwap5Q{0DJZ0Xf_D$I+8yYt_IlwD+7~?^@^6%ZYaFq4 z3FHDl4@3T{rKz0}_LE@SdX63$H(zvCw-^iW(AqC;n!abK%WYGmoRW5ay}1v>=N&OO zex1RQ8$*>1xf=o%EyD9U|sFGW${oSsZd#HZgVen(0_ir zo;DliofncVV~u`;yG7T)SPw6d>!a+PHJqVq2a~#Z{)lHg^j;+P5cp4PIuPxc9g)OH z-U%|mL=e(E7fq+?%CFk?N*WxBySCsPK8TE-{Y||Z63E5pr}FgBo%_tn>Nl23tn2Qk zxN-|y)s9pGq0ZBa!`4zrlYF=)SiY#Dc+>mM;Gv)|3NIn^Hk zs?Myhg57dh>LM~<wP7M%T&cc1{miqXXMAw^HN1M)Yp zG;)|MsZcwa1_17z>uZ9CGZb}tBPK#AiVg zql(Ts`LeMLe7fDBZ;d}O&O~Iv@$e}?7Ws`@s~chkw@|aM?xU%^EBx}6y)GQuq!%?s z4lCNSJ-WRPylLIjs2$_0=QEuCCc%;`ULCLK39J|eID8JD0Rr_lT-NRmfdWpDW0i7yS=JVN zGR@ySCN5CCI6Y7E0wKt}AEx=d=KKsHb&+z2pfnzatZg@gM3v>$VSIr{obD z1dJ%4=;tj~RZ!~wC5W&b`-vM^^L7wNM7Ht+P{8YphYP|f{SKiwzAjH_JHq1*DTCW< z&_@2ZqC9|b7SUate;Z7cv2g0s`rL59NA-)831v$aQ{zD-+Pc@vRQ3!=0)83bhE#f)k6p8!5MCQPZe6i2c*I!5r=cA@qhbK}G_w?NRlx zLj8DM<(zN>v}WTQq{Tm*&}cR1D)9#=X(s`y$YUK8WOPA0qNvPusrY;wmjO6cc7kZ4T%x3v}yOnm8jtb7=70CWt zO;+>QhemT#+5zX~dcY*rGAwz;d{lN-yA3b*I!h+&_D~S%0f<@{lK7u1zy1`pMvR-^ zldlb-a_~XOZ!W5di1TB{^fu7su8*_m9fyo~>a!LyQ=XC4#q^VAj|3}WmMLH-ZVnW7 zGATve?s2iClwCY$tJNF z^*XB&3Mr1=^SF%oMYE;z=6x*VSns&t6uoevx!1!N#%SDVaI#^V8ix#WT)6wXzBOYv zk&e@o;X+EY6Z7fgT063W{QL-gw2|LPpk-&P;8h&o)ENp0W14b~Kn1kxy|5@!G*+4l zH-zhoTD^)FDB-f^yQ)19QR4*w56Jl6m33h%!g&>1+Bbn+tBP^6QoC7H43)tfv~W(J zr^X0CWtm%44Jqv3o^;dA@44Zn{`@@V2Li2QmaD9EVDF)dsDjYD+Hz zhe{USX99Lsml6&}u}%pEUXDjlI(Pxk8thudZ2eErJ$I*&+P zY}unwwfhnm5AA8>P&87Q@a>JWZJ=7FjvEci=B-$$-l7XD7fd@XA&_Hu67WNUmNjSxDRNI zL8v=bb4~>AM@;^lSv|#w$6E_zf@QQp*G23|?h$5G4ZyFI1~n7pr7%y17zJSsstCLJ z$48~Mdh0T_JEE1c`l&6iFZ)hAH=IquUshbRudriYXFo4q;q7H-U&7%^@8y2qu&EA_ zq4`AcnqL_TKEZl2_n?$>bkoEz(~_U#g@c$yNJHftX&p~11*GtBE1D=QGZ zz)kH=r>skF$JkFVJ?ie`wGCo2+hXPqZcdx7#V3tsoJgbZRQT z;T6yoOpAl~dhtbzCTF{|ljI+RpKBD>XzIh800U>WBcHE&L2-r+?TZ}`(LTUWl(r}F zSG&ri=XVN81%)czxv)Teu}?Y-^cy9zNKt(kc!gG^>w(CFMm`FugGIVcXLZXK+DeVrd) zJhK61{6i%l=6Vm(G8<`_+ptyL{1k^D+sp9-{}VUe}67V+oE-z-(F)Y-+)I@h{^) z{LB6iRo{Eox+vn;61zTOz&J09%tkWFFiTt;3FR&_2;tD6KRS6MNf*HZEjq?%k}-Ve zv+6@ptoNyqhb*HtC;6$Pud;K z$+NK{jGiRKfg=Wn68-hCW#wO5Ve}-GjRe#MXmTVxN%p{zRVV%Bsos=>s)Ci0YA8U{ zL2h(|%Yt6SyPDA35;G)L3}7vbbXrH#^)U>A+s1Oj5X$v(UdW6>yF@6%6mqP>sAb)(Z8M8DQl9FDRdLJ2X~kyb(UryE=M$O zIk4t8VW%@*@nt)zG0E;vX7ngAwXJpQOsU(;#UeSCuig!=CR%%}j zi?u~rIUL6k2>!jr^ieh=tXQPN){tyE72l(Yz0bv=K3@rG8=Z09`%|7wQ@uDqXKQ7@ z$q9T?hV{wY1eT@W;BLUG{h^-{>ED%zH~?E<>)$KS=^f~*e8!b(=p)-rY}QB2X_;i5 z#m@p(@$Oaas?j zJi$mV`?f$+u>()RtnP_9EmNoZ8JT=}v*Dny5i4!U_uyj%Lu{iUy=P>gX-mBLzexM4 zpva;nTeR`U-QC^Y-QC^Y-DxNs8h3YhcW>O?p>b~<8h9`gcV=$9m^bs*M@7`fS^J}Q zt&=-<=1Q}1u|N=2hHy%7PYfX&#=EC&?LJ)@3XG8w=u61Be#n7|j|7u|m6h^*Vw5-?XRoOgl$9BZlO-X9Bwlw3`U2_Mi z1Jy(zdeXzGbvy1jo$}wJFK^$j`RE8mh;O3br-21I-AU#^>QZwVtJWoiE5Er?X+_Uc z2^3`Fa0w82hV9r_PrJq=)&rjj2OUPF3J(+T<;6i=dP7E<&_1*$^bm{a@4yG^zr#}A z!3g!~TM}zPpw)n$J@l%)^h3H#&Gcy2#$SV7#=4*zvL#g#{6W@=C8)y9KTw_H7RF(B z3b1(NYLvs`Y!jQmegO`-&3E(T7X@-dMd|>!CHJDTg&8Iff?=0OT9(rl6KHUYZQ4Z5 z9@1`9AJAw_4kKzUb0rElc3J(>9Ah`XJLdsIo!CSc6xV0r*e-YezMMJYn{^;|)X_b4 zcgK5V8NusdcmAjooL!z2N?;ZwyJujQF~MwQkV>icedH2kzojaR4M4kClIE`#B%PC z8H{VRJDoxq(5N@P>-`kHbSDfhbe9BrHMf@5H<3-I))hce*>Jhl+1_RbEL0h67r9N- zn<=hcMT{x)FU|Si4~==r*3_+}Uve{1t8k5)|{u+?R z*iKu3e=qA?%6Gj}!}9v6hqQVuD1~Qu0y5Csr90{7Q>w{JrnN6QR9&s^ zRA1!bc5rpX!?J%1zRbfxVzu3Ok41Sum1%jrnP zMj=iFO%{wFuE!t-0Q(5ZlTC$;T>q>e(vm-Q4?aeJ0^LRL5rBS+P`GB-f@J$i%l`A; z!vy;6Q~0)vdUOr7_K-XI=k!F@bjl-s$y@LP8r_1MQz);n_ne9SiN+ixPO-^8r;yBF zl(Blj+vCO8n!A!NOTer^lQc)jJ)l4}1E88?Fq>y{?WzTJ5h{@j>~x1MZj?8w)#)`V z#u1BS~ae&Mu>N0biQ0)ewG45;x@M=*a(X*;6yLaW(yC?fWAC!q-Ays8XG@#}-BTh`zWd z%aGkGCXqdx`-T-}Ox~1$Vv&J>B_kz+3vtRe<78Nmw?{iw+40%9NzzTy8UT&{y)g{l z@uVn}2vMnYVXN)>g8-~k)1EI8zL4Pimgg;>-__ezC+5e)at%Ci)Lyij%PuDm6r6 zV%Du*>FGV%CTUzswpDYy43b*={>|$le>UzTjtqyXsyg-$yx1v+e zZv6Uc)^}OiffnmkS0iNZvosQdf^!xf>C6_?hArK6SEZ0Nj-bNu0t~jM(_;>pqkm#!g<$I}vJ;dQ~UQ?;<18~ik{!2rT7v4>{~ z=n7SP;Nx0>I5x!J!+3@C4W!M_y#{*;6gd6vA|vaQ%7A|!7;`5-L%b~*yD3QHmBKO$ z#9v)`o&Yp$;|1^ly_-j1oSscmFTermmJX!4aCk9q+z?v_ZPe5JaT9jE>f2bxQr9Bp zA1Dc0D@X2ZPpqFXT{5$3er&?-7~~rR`)UM}v&--Sg&{#KYzYx$u_U>Nke1<^sq`6m zLRj?7E!F|1#Ia?q<6oR$D2c(MOU(&Ip2&D29aV2dm`JX#AwJvxIk}|ci>D5~NhG4; zQ(M7lJs*wH+HN1O;wJg<6d@+N`+?nHB;Bxy&#j|o-(g?bC<V5`-4h$|tlam}u;7wW&6-UirNAhxL8TnZXnyIPO>)!CU))vpfN8+;WDEl?*iu-8e?V<+X4fwZX70k#@J^+PI>WmbQem}lZ zZ}!PvN^5@3OLZs;K&P|dfZ0HG$aRzc4Hw*V*AO#vDh+0{c} z7z*}fwcy8?HYIcU^50r!zN>dOZLyh9lz}rXDWkKm!Y zyj1gXass1%Cs1> z4>)KI*?J|n8c7R+%9l=gdTNeP!k$VP%ZxzXl~J62n&h1xk4WO~bCehhXc2n^GWZDO zovWp**>=+{1tU+`Yvd!YR2SqI8Y7zauY#IgarrgOI&=xBq+rE!KwNGctm4gMx}{|l z))ns4c2@1vFa__W~_^$0`?U&IlD^$O9joT!^%< z!qcPJFVqU*RlhA1?fZ?jE?ndLW%N=IZ7D5MU0ncMRNG0Xk?i3(9I z2U&k9581#yNH)xFc<2LDw&*GTe?AjJE&ipQ{WSc9Bn1Lu{htfZKeAq51Yh_f`$Cn5 zrGbtr>iZ>)XToTqY)T`XB!TYe(zm(#L^=f_OQrZm7b!+TEj{v@(V0;hE@nzvkcdRx zGmr>ybdfqKm}C%H>84T&0%&MeM_|njg+6e_MzrgW$1YD#<}^w2KKwNIZQmn5^R^?u zqYa+tsew=+mWaBL)E^yh7QO0!aV`@1^%t*M@h@)%B6UMnqP-&>@VhTZ@HXiEAEeSC zBCZMWs0R69pPn1GV?jMMV!prJ!1*Z0e1E=y>?RHAxfpT3E(Kh@Fk)^~_ZxfY$nodx zO7f502tWTx4EEC+i2cg}%)fLUg|B>YtI1!yUkk{2Vnhxlosnn#I}vLIb%%queC>?y zw=0h8X8BYE(6{u^BbY&o#=0pE%a*`^3Y=2~Y&8*Kt+tEB-eJ>95?7NOI|lw)@L|A& z7w=&1mXrG6ddefYH*~O)QMqDWcuDf&kV`T}Z_+EbU&1ExYV61>6OV<6mVFarF`+@A z(7=cRBt(K!Rd72;ELI|3vkbMv2G&*Wmd(3Fn6<}%@JGQd1!QNCuEz* zr>4u>!Hr<$i!rq|<%!3-iAH${hcV;OQh zd|1xH@qpP`rFw8ay^kc6O=U;BMww1FX>@0jbk-lW2xr?^jz>_aWKT0hU<6# zAWi07J@5F?H3dd3AE}6Bk}foKqMOsGjhcr*d(C@ZjH6f}~+Hav+Jg3pK-lLsbmE zBDsOng<*HqP0EalYQl)WQ+4Kr<&Bt1;*V1G;6Y=C4@M0qtnfFf#kR^;Vip&<+7cG? zW1Pi?MmZ1E7s`!-Fp5{h@2F&=^`1QW0v#Dx0-5jW1X_+R+qF`NQm7c@PKq?@R(E@AEvE z0slq*n7dX3`WW^H;Rs@1aRk5C$AR0i?HnkU=za$ zVUn9}tf_Aqa9!^SY0yCdxx=MX0~OsBFYMw=gt;s%IU3OCV6Q)DadL4XKXz;A3XI$! zD{Y_;q+QEO0DV*3>q)#ZhdHp}PtvMyaAHBoOs9O*%|4&0h6OmW4(337GQJ8W z%8sR5zfT@XZO8A(KuRA*_VW7T5f)vI>WdV3a{Oz&pJTVeXb{~3BhPXn;Rx|?(XP-g zXW}&HZQ^rZ780P15W0Uy8;R-wzG^?o^0Df_BxhC3bVE3ApYo%tQY&BUBokl$^~^cY z<{jfXEg3n@@w{Z`6x=yAHb_0?!B2{QRRmNuQ$(ws8_o#gEM6DSUca!p*6CHunNj}a z(me5vostj{I#l^}@61pu{R4(#dXuPrJdNhnbTsYLB2FTIXjXC>*YSu(n?j!{x!%yo zb!pwMI?+XllFA}NlpUK#AS$e;h_}^C(tBPhJ;|EgsitI3;Fpgkt}>~bvP+NA4;xqQ zdfm*l{0C_2@X&B$1ukqHFG@3|b&4tJD+Yzm9=TFIzTcPQG#EUPvW!a|KS_{`P_gQN zB$b4{QD=?v;FblS$oz0vfS;2@dp@UB&rGH*IE4bd!pl8U?1;%YNF~UN$}&nhVqMh= zPM=NenM??R0=X^J^X^(;Rh#WIUXIHohtiwMNANVX?g_bnG z6NbG~?hJ#xu64Fy1^`Z=DVT{1;;P0z;nx$Ts$m5SC(YZ@L9HH;pu(j3;`|NE>?c zGG03j@?*cc_Lc`w2%Qabb=Flk+wq`BIy}t}_(>K&%&`?R$pLc2K2h~#M?EW!@3d4# za~ndfG5w@56ohW7$!osBcYoS)?fCyjZbVXB;|J%ycs*Cz@C+y)?uJHiD{39)Nz8r+ zTR@*CjrMMCvs_{}k{5GWhg^w4s_aFn6rr6O(dnKZu`=D~@yiNwYE+sMeik#WidqEW z-hrXm76a{qeT4R71=Rz4T%QRpqkD{9tTUe3pXfF;1bYU!xLAv-p;Hy;goOTll9uiz5FI z6MWNlM&655c1;D&7Q8C0c-C=#qnH|0IkTm=z7TP;Cxt14ug)CU?!hC7pT2end{KlY z`Gw+yBSHdqBe0C6d(J84y#@)BKA$viw7JK4Ct0Kn?QJ>@lWFsFG*5oa32< z=E3YLQ!w6vI4v!3b)M_G$9v8GcU}2N`(B!jU*!(Swq0o>d*8?o-42e7w3Y*qQ9C?P z^Q7J4x@($z^{umRk@#fYD2c7z3qtE)D&P>7CW_SPqC!fJaT9+YvPV3}`x0fkFrtFx zho$B98DddBx)%|%Fj4vN#spfr(wEov&ndVg9N_*b>UYtDQ;x$B2tkEK|8e88X~19> zHyEg0dZhMkf1c!JUBiq|_=4MkEoailegxO8I%yZ>pj##+Dfu-)a!|3I%0_)MjYE8H z(Wo_YORVnh4zg{{g{3c6vN$IVU|T*0WUPY4_ieHP8Simtl(}L(%S|-D5cic)?YxMJ zUMH|2IB3g8u%@uYsllho^*-rUp-sCCAFOLVZh{Yc!8~wG@h5Q#mhSMRyK{1i1F~+S zMiZS{8|ZD8ry6{AImrO0Fo0>Jp=-7eiLs<2SVAv`-mswmmPMYA)*=(Q- zin4ORNd;CQRzrkd47|p3M{0l*B6cz|*Y72@i_x%m!ja?`+aW*cx-=?v2NzSei85$s zEwaM`PXoQ7S%@1#7-u{lD^kW1_k{@HiC=?0LWbXDC}HMB+S8r!rvNO#9!MAO$946|0TxeF>g30cqUu#vcy2tCL_hh0sYe&@;}Whk_ncz)4(?K|CG> z2Wvp6(o9+w3A5oO1y+$!RyZaqdPfBLprx{i)70Ph7+>3uo?k)2k3^M*rAe|=Fnd!< zFWA5Lr&%FS31v8#%~fa2L5fdpWJ+@26Yi>L&c0Fb+l`D=8n9?jIpmyj4KKqRJP>2< zdMqmH&o@{kHMtA==!Cd%^BIPeGE3U(6-xpKAA`K_l6U{=k+5gg;7I(NC`?}89&^oafQ(Y+zQ*~G z?id1kccEX;gw{7UV!kB`ikY%RdlP$4kR0dd%&8+DKJ!1G&^f-pV`afZIuZTw`3-(J zFj zrVoB6lqow+&BA>|E9%w3%=|EO`y;dM?dkb~8;C}b57d1(JH$*7Q#|c;jE1VgMDSbk z{51g_HJFl2t6vhLMoXmkT>uvzDr*S|D4o^w@h=;fFaaZNWI&`&Eqaw$2zZU<&_EoF z=ys7_+Bcnh?jKNs*j`ftQg{kAAqh+0*Wpv8Nh^>r{1=hp*)`JGIgy%!uSt_O&}Bi| z=*A>v^il?V#Th8!v$#-IW5Hvn7Fd8BhP8*1tFB?0nZS7fbACi*T!GOK|VwBZ{|(Jf*l}7Gly$( z46wvl@qxEbq415Dy5}CTrwKk-nClcb#7H9qhD2oj zgPVAJ96Fq2dW+f1L~U{|zqq@87ZQzh{5n8*=4xj560-v|+KD!jO=^|ZqQO~i##qRP zG!}a|8lBGV^vr1utBH~xbql@R-Z*J`30I`fywcT?tT0q0q|ImF&R#r$|08p7r?nyX zwORjd&jJzuH<<(Df7$!=z(5FJPyGx2{ZY{WV!0sQD-&q2%J|Z_KLD|2w<$bu}J^ehj-@!cnc9gLV;($FhREG=0 zg;wy`|4}i*w({v10N6MB6`6-{v@@tELK%bXuum}%`C{HrABLO6A-88M#6?<2>bQeP z*rj{CMOf$#eWEMm)uPd*4ts?-;5~HBhkF&f+s(lj03UG#KXko|!G|Oci66ah{L~sF zKX^Tgafx05KX^@9cR$aCH+O>x=Ng%u)}RAdl`t}qU`A%o1(Sw3-INs~SZx+LwBKB` z+br3U>PR!KJw}r*M`z!bX2WQ1${d-kKK9hXM7*Tf5dR1`NZ`n#Mw3~eMW9UEBFcd| zEXxDenkQqySSpLZ&^o}JcHu1_W*tnj>Pgr?tWTLt58F90*uK|FT zrNo?!VR#=w+NX}Nu*k2)xYjDAwrprR^Vx@IqBNNKO}W_KR3;+Y&(c|2+{td~)!j1r z54Y}XTsmygq|nmE>cO<`cG_}6uZNK?ZC0hEnj)>kBzG9dj!wXFw!Qg9ummf25k>k* zm7M$N1z0Iy;xO_O$v*9>@o?uLVrf~Mv^R{DOvJ;AvGtj=+Q{GQA#Z3IW=txLIynjB zIdkYER^Kgfe26d^k5rMW&T~c7C*LHPbsJII%J4n0PH9gCokzu=Bv;|0D2>T<8KYT| z|6R;dNv5@zx>xW%9g4(EI$XVLa_+F|w_Bnkjb>jx;H-?<*V&@zwPQ{e`g- zuKUd`a<_`XmB(nu`H4r`cn1b!@uoD88H3g1-o%9l`-vz9;}{*Hhotb$=py>5K2Y7b zw^#i-HBgX{m#%Qxc&azcs8t)*eps93y!Fs3cJyqQAhPcv0*5FTvnvpl$It*z^UzHs zuG3BoX{k5CLuzFHTXvr&9DAksrLuM7F`A71M_HxnpL3$=6G7>-$_qC%bueNHel~7z ziJx1&>T!!VtZ>91@JewQXSu~kv6`ASYIy-vDd#uibd)29t6r$Ed#U)Drg<9^yB58G<(d4^4?N|;5 zdnErrIHf1>!|I?oIZFqOcH8e4cT+{dSTq9ITJp*W0Lb?|)#7RhP}}C&MNJKR%%Viy zh>S6@h!^`J9YJR|V6!}=phwr#uWK)2_t@gG7;7m75TcB+~vnA zd&N}M$a`(MK)N#6*RFtDxZ-jmNMuCh+x+NG|8~*UeAw0e?fP_Ifgk7^zcEu=3NQF{{6tM_X3Z1ol=Gau0 z^6=vP3xusLEqC0y$yK7Vt;!26G9>En0kwKVhw~OPB^};NwWg?5XRR59Z%3=B{H9v| zWOYSv`@qd4Te-EQr1?J+%}AP|EG5tK|4ae(2}29^2ss#YkRg(QfQ6&lC`GcD4QX)I zN5r_A@QwQkn)H~E`HLQYq`$pnz(Kx(2EPIKzXKV5d<#Aw&1SQDHc~=}oof&4B;9le z)*da-kaSZrKkZ~O&c&ox7tktd*j9Q3Y3d=)-Ihkcos*RY$_KYMDq}rS5Vz18(akr! z`aV}*ImeVs*LeL zL!aHmf&hpe;q&v?Om7ipyBp7KXGCY@)$qc?_y?$ z?Xryuw-W;Gr?NsG*>P<|373$m-eak3#g-N3z(}s}zxvoRF3Q57rM79WY>M&Gbv9x-t@Y6N z{jqB?h@|Bd@xa91@ky zUx_a3SAoW0HjcqMNq><*O5W;A%~=Bo1d?O5B<2lNC)F0owxw zJTxaBwW*d|QW(HheIz|hXZ))X%x9`Ej?#EI%rm#wCsC#>_18%!yZum6Z*mCOC1cE4 zQ713VbKRU?f<`T+w`hN+j5KcXUr2a7d>B zT%JXT$7+2)xV;GDx~Pg%2loCS7|97*O0z;0`@%}p*RZ~jm4oFG^vjRGmq3iP3+oQK zTm6E)k+LtU^!teEA{(hMmo}=N zS#f*A&6lvl+0OL*XR=-E$CfAi(KY*C{+Yd4oge9R1#~Y0Ma@1RHOKM_1qqN0)vf1^ z;(8yhdc4<28LiQ_HX}ywdsfFr>qwmsc$H%GIq|$J!Ce-@(3*vegDDqaFNQZom?Mfl z0md95?2c&myErbH;@|WYZly6=1upD=3S$nm1|#YeEy|)?Gj9#o)ZSq8ZVYp`{z!NN zz1o%UjO}oVavN zt2aPrV|GWYk{ZkwGPI}PirNUZje<2;?0qfMM_TO3SRRCq(n(RMAmQK3;yY~^N##vx zbyUk~{rjpA-_(y^_Ik>6TO4jOy?7>{zz@F9Qm*8P5OoL7Y9R~S@o+$msOk?%V;$PF zrWa@*@FOeD3z}=Z3#Z8&D*4tAb|cy@F^MK_dvOSCa?-yw0@rLpZ~tY!mv50EX8Gp< z&h$&Y|L4m6Z#j_v*jn<%^o1|hFJvii%6(=*-ivMAr7VjG7W1D%DQLly^U(@}4a&)6 zfsiXmwo+wUgga`_+1AU#)%il@ci`B!4DR|p%=ZeOV2QF<*>2$Bex9E{r!gP-9C0)2 zcl$p<8sJ4b-Vt*HA#=u*b*qPlhC2RcoMc26hi$+?8^I9|?9*}M5wBvnGj+~@6^ky>`$dD*Q2DH9mk6Jps#WgBBhv zUb-dcD2$z87SR@Bg-MULy%Ex=zQ$5h1&>*#xM!pM*vXft(CWKd9nUcYf>)|64b^pE+8-Gm?}FS4pX593Z<_1CpTL@ z*pyMQ;Z0*oIN?3HG%T_B?47oWdnWAA{9=*enYBPteOm!txFmai-s4G^DuZ}U9li(; z?>e8>Afcw@98G+biOVVOinbCFhp<1h3*QLA8}cSlA%jf3WxH2skCIE&Z>x7+B3SJC zJPjr@K4LbTPT-tX@kR_>RxdZ3g_%#El;VPWBKg~8hIt?Qdi4G|*O37q5FFO>%|TNR zFvkqD_8&+(mAR-!UK>^G1BFd2Qz0Dcj@gZnrmc~%Vw6_|(5(XLf~&)hh{g+%A%r?a zlZ6wGe_|E?qH<*k-T`68RNN)4vcuNCo&!-1D?OH8S$B1#Q&bc)awdI%Ij1l2J#G2_ zl70xl0uvC|9TB0h-!VJRD*PPI${{+^4>02YFWCzb5onmx&y1eur|ZP^JFrjJ%BczT{O&L(jJIOAJ9m0y2)45`^8c4DOq;gcXBZP&8;Eq2_pG7XgWS zyd*4`(3WH#iLYWj8+iKX$X;bU%9U0|%i>texwN^o_Zhj8EID(o`M(fZG1!kC?&|&h z($@3uxgG9T+1^ua+wOSk_`Y7AumZGv*Tg}(RBo?|!NK^_btADPN_;G@v$6E$5|Kku z8WS(IibDXSZuqA<^w`K%WFs~TzANRr98HJOL?8%XCkY_M_bHyiQ=}6IHKKi%RjJ2)<8NSRlRXDMa!!8v`+7OU)7V_R8+@26+@lJ1KhFWXO6}Vtlyhg=1YyvPqi)5O)i2S9JWzL^XvaE3)Y3 zK;BKUcI7KMhoVka)MaE{uQimbhkWjJb7&T()ke%|Duw3Tp`YX=EQI3&!P)20t_nn} z>kO_%UZ+U+WcR#t#RKfqdc2Iiu@%D19OVV5HKYXuJfO0_tGo?Lf_6}%tsy3YhtAVy z20kk6rF8mer0M44q|Br7z~j;^RCCwX%SwqWM%?Y^UP*1Ky88^&6_BaIaz*;X%qLam zR&%7xHE;3==)S!=*VRoqj*O)lY_9ZXsypiRshR7WmrmZ8gK!*0A-iPWSXcx-Id*N0BJ!y5!p%n7U7AEY` z##nZsKSiO*0Cc$y%lQ%*o*}&I&DTO(t9DlJYCkncu(S9;kfW-|uX}#R(F2s3OEUpU zRNWQ3vYkbSoK~!veLn$LyDUE@DMMI%@a?UifVXC^g*(S>=C6q}7ahJIecmOm(+ntw zE8k=T@b~ip(imhzSYi&E16EO17X76l7Ej?EYp+7j7}b!0)X=AP)!J6A*o<)F2*%oN zoT$>tFty$#;!1sT;HvD9wKy!`l=-=h44#^l)!Q{Y)hDdtVg@d2?{;~jXs$MCqDu0EYaQ;4d^FKoozr1gcG9Nn-;l!3UfM|?^;Gt_%vyqAuFrUcZ~m;=ZFrTd+f=%!{S_$&=t|03w2ZtZ zl~Hhtyk%UQM-%vT8t*CL=ccg!y{M0uHJVP4liXP4&T&db z^mVO*Urd9PH1xevNot*sG6X$PV!ca~(%O)@og!GX!+Jl&IjL!TLN&=}(D0md zeiITKs?*|P^c(M9uP{hauA%Y9)*DX5EOq?2tmBHUn8LpP##5q*>H^W(bZ;d~QtC9_ zpl52acO|TWWfvK<*rw~69YDUr7d>XttE_!hl&CJ@NpTMa&v8^~qK4x@Yv#-opy`2R z>JcH%Ap^)cB+L=Sn2uXL8XboT-VyZ)oVM$P1r@Kw7pHU$uBeevz#1J!D}Cb0Q)r`( zK(on>etSq)7x)=^PNBIj5I|Ks4X8}2sK`x@HV%xCMb-dP70rN-ws%@UiRTpD)_Hb~ zzoYc|GtZBa9kk83k^lNc8bK+r)ewgjiD1hbnCnJB?)S)CM-Nq(cVw6guR77W1=CrT z-zCzdIz8zHlpI0N&}^b4CT%>H4J%w|Z2)~a12x$N5TsE^(K0b<;qv+5!ES`Tj=^oNn70g49>WsHs2ihj1? zd-@4|25nwbgWuEHS7LAI{06K~RIQ$AxBbW^w{ z%;tSrV_|Nw9=Fjs1{r}^M<6rKa{*fN~dh`olG+&5T9G6=cK;dQQa3mn@ zw45im&xA`}`KB5nVSyb|s01czGqV$g^Mf}g6Dk&WdngEgr=UD$L>atEcOl;QGR^ri zje7eiCsrQlq0ZWPemFVW7MnXbBtfpg^R8;%Mh9nkn(kCT9n1>R4BnVAUgnoFT8!sA z@TzbvSR{wxYFTs53Y@brnNJIOg1{52&^uWZas+X+LwJC(?J^`&#x+*s$x;h>Y2r5q#1eJi`1NAY{L zdC;snWvDLV7P6F7YVC>M4h&h-#qXix&2j3>(Y45g0S>JCU|qo9T-?Fx9i^=fP_h?7 zc^&#o=V{zh4b|agVD$$StDHsq^pm0e!F_STQaVc0emyK13i&_lb=OdfA2DPTADq=% z3q6Ol2u`U|EoEEKe<&y#7yX~Hw6AE{2RujFsK1MS1n`v3VS$AK|F3i>=23Vn8!vi(nf@_#ad{bKmS z7uy$-)YhGmRWUxYT;?}PV1@*s1J%$3Gr$NH=!CTGWXr%nz@;L0ToW?Mq*G*9&Xo`q z6%)}%+=n4>Mlkgq6X#B0;iovJo^}f8WBftwr*>dZ-Q|=lq?sGr&Y!1Rwhtb4r&?au zd-%5?W}-6;UG{QYai9zE(-62A2XaBAU{JOxH?S5n_`V^Xk)l7v=n!hRH{F)Rc=KpdvwBF=Bjhw zA3Lcnw;RqI4?H$pWw>dKtzi=+o&9KDy1l;Q2K#z zxf^kX_LNIX%}#!+4X%PqA8>{tEGeoP8Un+WJ>rG?jg5hapT|zMA`!jdayhlOvwruf z*%tDeYS?w9^;d0oTkb>>wD<^hX=&+cE7+K?Teny?x=hb-bh>$a_KyA^YP=fE;&Hf= zJxtXWrGskUp=KMpJ{6eDIM(j!x|X2E_VQ(WfeO_1bftFz<} ziy0aZ)Ra?H!Vb;QQ~J$E^6dIdoj<|r^(5c`gSaDKXqM()6r{YGM4iye2%Y;^V`Cv} z@BGy|bZ2YeB+g&is-1{Ja-(IjvBT%bcBhQ1J|M2N2r71d!oL`VS^4#?7dm-wIKtX~ zIBljLER`D6H=HTR&-BGNBwwD15Dh zvO?sQEGtxy=U=IZj@SD1+01hM8FgiE6z&K^w6hLiYB$p zoWxJfzl`-VtB8pj`{<$J!0+Hre$^|!UK259+yw+9UO-Wp1B&N}W35)>gvG#fx$gE~oVu&EUdMs}}_Qlz9#iSWLaD_Ye>=?7zx z2X^@%+Qj6|-S#?NM^|V@OB&X3jZl^)JaUe@85T8&>%k3q4dgT!^$ zBuhiY?i5dGX<{kmAX2ia@yG*amBVV~O6l<}(Hz{h3Ef>QpV30}{>l%+wX7jOuS&cC z`HeG<;EYDU7})M!g6=*<8KTIX6Vw}boB{mCcgb}B*|Qzc%>Hc-+Hn`q@ngg+f>?Uu z;Hy#fto(c)x=mplLKYb%%XaLa3vBsXBu!ZqqDq@0;7}*@NRHHoo${&fLZp@Y$bYJ4 zAXg!IYuFVE;g5SDyb%TAEguPSmI`8PB}M7q@bctE@n0cmyngcb;|;$PLn5NSf@Scz zGOkIOL^%;^{ptPq&r0tnX6wlP*_lT0?SH8B|CBEIV)()r+ZU2lzKW?Zc<1SCC=ZCJ zB6M^V3u%85g`q2;P+K(hgGvR_o2|suwofdXM!f9&c!$}qVNev1yqg{LHxY{3K34;V z5yN*gKg?i0dYwueZ^6&u1I6fTuvHB@%pwMET0EWHP<@~}P z9~^j#Q%|kSI%QCZZ*o{V`YhTvqvBAM zN=Hv0wu7gCO);l*je9wH)4RAYHKQPX2|b|DcW+CX=w(RnsCg%1z%8=BA}y6vddBY< zk_D3?S!N!@2pCqqY!j^(Vd|bAc0CQJZaU~X{hFSG^(oy4W3S59N*x_=`fgx z-Cip_6ksNmhpMj35j;RvUBnQ02D`aV`6rtkt&JU#COIWUC1Dy@QK_09Gv=@6$bJ18 zBK5!tMPw07GmbvhtDzB72<67Y4{gfdj@sxh@&#J&c08^Kejgiik%3BU7_KfXB3}s zWlzAUoIl3Y5o;rGhyis; zYxfB`Cx59fhMHlLl_z?F$1S1s^`u*foK>8UAVgx9C?v-iDU&u??rXTjh4Vx;SUcGc zV|(WW-wx)$8llH%7BOoo{0ZinksL*!r8+o2KfBx>@{5^hS*|B$A@u{ADGI}SSk>uLhy|e`w;Q5jYK1Sc&as14Ba zJ>3ITFf|r!FKg`)O2rzl{>sscbn+qYY1XZxcu3v*ka~nTnVBDv{_nS_@sF6bps&K& z_^XKK_^%XW|0709M&H`l@n5C*H_JD^8NZPouP*tM9w}JX!g*NZ(OVZ+>31KnE|PxP zBE+VdxcnlLEF%l-+((y| zEOEeDodHJKc?9X0+q>_R96I;quBgdun6isY_Ad-tij_&M{6#A;Qb?aOzwi<>zM}#` z`j;HN@0?)rF2!u#6X7rq(PK|3Lm$x>Yn>#3NQ7>@?lYGVEyPEWYQZL`RJvD-RoV{L zm4OL|as;fzoTy_A_Bf@)4Vg`Qve&qR>8R6GNQMHb^f z#sbGbsmgM{H0Nvh|9J7yznS~~hvQD!$=vE+KlJzE-}t8bMzX4<>z91JSr{ssV$8*| z!etZyhi0{!7vu-M0up5q(3=N`i6}^hE*Z#;7mH*rghw6+YQ09p1a7@1Fy3gH+*C{+ zOT#ar`a*B{SNGnM_d!t=#r)Uxq*{vgYUPvtRkq_bw`s2TG&kY9)om3mJppcrOv3$7Vo3K zUX7rhb<5Yvcf0$;FnmSs^LJiQh(F>PIkN`cUni$h8yE|d)}Z3~hr8XK1%KuFrI(Np zotSGbHYP{aeRAgNQiJqKaqab58ME-B@^p9bNR4$0_WMBwa%q80KO3`GNW?-78!>EY zOF$ix@{-WSESenb;-WiVntYC03A*M%zQH1WiG zc>zWAZhdBLG5{_4mfxls?A}d!GTZW*rAuh*>c8j7qjLfi@r#uWsW{ZSM@KV;t}f(c z7UvgWWeOw@9#H4Z!Ou00xj5G;rrJdzN78fIVaMEZ`;;HX<}E0Q@i|&&R%srapc6;m z$k18RMilxc{e+j&61fpvxT0@YF?Oxr=hNUoE6|tx1%?;Uv~JpRCNk{{72de{D(dxQ5ogX=|y<&iYDI|Q-gEIr~M`vX; zPfD)Pv0k*#{+iFg-zQCMuE}6LQ|~`o6;d^5Q|Rw1wL(0AA%7u>2Iz?3)&|W6J!;iq{*_~swR)2syiR2(|ok~;VvAIz5 z7cd0Kn8X&KGoldS4G9doB`AOD%4r((FC zgx@T_>Y zsihRy%Iu>SrHEG5bP581X~BWvN+P(=E-kH|o#UM$G8`0tyrP1fHtGo$_Z`zQ!VedbZtXo^wgt!Y+`JWii$Vg`iz4Q~JF7(|89bV7()(=d~HX@C|Y zJeQy2hdC!#S;51Vp%@|T?pkG#N5J^ArWzbL%5FEFcx%sRYr~E02Yl;X2HGu|bvS(O zTq0VzLJP5ok+G=3V5t+4NYYozuYyX8!b_4Wd1W$Pv2M7+5}7F3&vE&24P(wjz~a;f z8TUv9`DukEO8jw-L?DY)>ksJg{IHcOwLRmORgS-(K@d1IgmI6FRBMM$om}Q z%w;83{;`c7A}fRS>Ge8BQLO0us8~IN9v=bro^k`)@_&fzm4_X(+}$4_eJ&6$v<4}- zVxzS-2TPN0yh1V1v*%jnx<}02*i&bRc*CLhdDR3MSW`!fOY>c!ZJ=88P{S;Znum4 zb4OoHKhi0l9BRn+m3cIkA2z2cv?E8PBt(t-s~VJ;D8zH)kfM-7JY9gAiE7aPY&h-2 ze!_Y*0KtUZx^)z?5VwPhOy8j?Qw1o%4cvcXix-{WEod>hLc7wfe&kD6%`H*yQNdsvzm7z|CU3*#n}^xGPLt+ z$w)=egkTGGupz-48F zf(iY8a>#TyP`6O)PRuqumS=*;d@h0aYy?Ob@E%W-_L?_IH_%m(9<~P3L?`0ON|FIvm^aJ|n@7kGYLL=48_8GG7W%2_%am5Lxri6a zCYKzUebo&Dk?efNE;)iKjE$OU$KX9n!^SSC@*ae27kpi^Cj}rb&AvZtol=8a-TVy3 zjL%PbQW&_qrfSaB?$9Pga0o|B)+e_V=J_%#*D@pBLWoCo?%*gtws`KMUpNu$GuwP; zj$S}@;&~Icc;g>v)uVk)7B?v?`?Xar`!cZWE9%ne*T7edko`I;9>5FUa7cJ&IiGS} ze^s#lfy*ynKWQC(g4{%%uo#aG@fla`y8d{zMFfg!tpHIRWLbBIZ9SKnfX~=sR2e+bF`n%AjwCZ+x?TBU$Cu z5orYeL*>`VSrfvXI9M1G8yLvx!;V!inkWLEBmrI!UJ6yzAFXT@^IeLz0Tkq*vgsR8QaqvM@1ayGmdFl^mTUIfim&-m2x$_~EEUpwlGjakAf&!izy_j|Nh zoc-{TcK3ix($)24LN^FmN5_z5?!rAxite!iQ{~C}4=Tu+@+XwXnaU>?%ASFKNPREX zsB3bt6_H^jIBYI`Da^4ZeOZ#w>`r4@7YZ;L%u@ns5Shd1EI?x^elvnhda6t(_JMQ) zcEibgsW}W|zo3A0iX(BkQY=!}6`7fYnu!K#)7F5gOI2I@<`Tmstw$5m(Xj~r36{`^ zbbCf#gQ!yAQLAyWSPb__<8mlAMHT+O7JkaiCh3uMX&Lkfp|wd;#RHOLBQmDRoTf>m zT=xyKl58FPS%C8pY(nQhaq)=VK*T`p?Og-0(9L=rg*5n--qZb~mFt{gg>=+h6ljo5 zvGu<~kh~LEbGQh~3Wt7PZQzgT=Xv|3R;uW$A&fOf?uRL_=$166kfabfkCREYSH&;? z9Q@_3IxB|CB?cRtOQ$G9YN*tpy49YA;Diwa`0jC%#HCOIH>bps$oS_7jD2hE1HTHr zCZV9m{H4$y8#tR;pRMG;WBKn;^merH%cRzp)Yq~%U`rd?wU}gj(dq!<)J?;6^%1+O zDru@_B{kaBn`}Tx&yxnz#1Q*=@v8smyO^DIqi}*ZO~TY+U|?7(OM1 z$nG<8dB!a(GRCSh72Q;XEVr@8LJlT}EZ>5#+BSR!BJqW%X=?r=7e}C{q22Tv*QY;B zNw;B9`%O1KqJT)>x@Fducqm5D;%jsOW*QU%Wt#=K`5KMeLZj7J;u#8|LhX1-uuEpT zoa#!>p~7Ll8k61{-PF_*=mgQUkd)5Bp5z=7aoR*$XI!PlSx1?`WNREo@@3<1Ezz5B z291F%Hl`o*z;a;Lp)%DB)MSH^T3hX0wM0sxbTOPbAz#WIPtKc@)ZUd?)9{YCFrbis zXK-MjFIivTYaL^TT3_?5<>sz?V_KRYaAQRBuu&Fb|2RFZ-8(_$CiXkwEZ!jYln|P| zj=%F1-WKrju)}QbBFYwIe)q$^jg;G)D%0VUiw&W{f5TZoumJgsK;T&BiP=0-uqM3F zg}IC>hbx;@w+FbYTo}6s9R#@&^kZojbi|}egfp7sq|}fSVI_w8q!gLnmG)wQbntir z#vVmD>WN8tMRuPo=`-Hk84a`_E$_2Pku8$=i0H2sVpLD~%iW$C6ai5ZYj`x1tN(`B zuFwO$%?-x&J#&cyVe}*X2gTX>zDLvSp&0-)>bMSpK?|a@6X<(@W&JO&Ef0GM5If2c zuOGt4+1d@sRM2yt@gVq!qhwi~AtQi-YQ0J?a&RE+bK z>E+R)nSUkK+WkmqGX@rL%lQ;FMHDFoQeChA2+!{cGwwwmx$rVoYB5pkFpZSqYJy0o z3JEfIN0n4Wkvv6!PMLboM(xD>A#P_!iKs2S_yZ^&KQ+jZI*2~WC*oab+{~&`;^mL^ zH#TKa2M@iWJ{6!rRAeH%n{Ua@|G?WH>khPG81evVb&~3*Q7w?bO#6MaG@$%Gu~$)$ z3T;XUWnGyu)jjdf8l`kohOH?{O|BpvUF|27vMGF3&hob4BECz88>BUa#8a7EqRAy_ z8R;Ph@U@}f-%idqJ^MLi%9N3f!*h4{#7g@i1eQrqv|3H!(BDFr-cB#C@WVfqsBwgT z;`B>!MPc56EiR6fXYla%JrfmQD=H1-l5{X4na{`taY>S94A^HC)4AcyyX6<`O(&se z<(s`@WqT11Z6527MsxsLsC7l9&<$e}Mn^k0`SHjT@n;Z?>eD!l4UPO-KZ3K;G!jg; zvZ~5hMqLF96W4B#*N1b22EwJ+uk#thE0MHdacP}W^&E4L7h@NN9h5X1o-iw(>59Hb zZUwJZ;OZ7>{sa_0I}dt+=6DmP*hnP<-!6c1%Y=DVjM~ROxS~($AuHOdqJ?VBlJ=fbOp~e-;mkoFS+n$I-7+_P|Ld_L!?czS8Z3J_?y8v zlP?@gqQ%^Gsfht`5Ov%#jb9*|=x`V<@GG2HqxrJ)7{^Dr%tw0iEd=nsRV{d1pV~*3 z{{__J;!|wqJ(o=SQz{qTH$Qa0_Fn2OI^pvgDep6{?1eP@uddVAE=#Hp#rUIAV$sSl zcT9DTo(Z2D1_b?s49)X13=cAz>xA$gZIt*7Hd71m^{(`uUj%oS1duam$GJ|7_-Ir}9I) z`xkS2&S$okws0@EmXfBPjzbJ`%BJm`G?;M=jAb3KP1{xSS^qkSaxdBcn?BS)4418V zZgag!TW1t=dBU-fGe(o-`u83J$gzt%ohdv;rX$ITY9><*Mas0ytbNSOd~}=?GKW>7 z!D+4~fqeqIb)#v_=@8s<#RW)!XMduJ-g5AYX0|kiw&OJ56e6hDLPPHnC%IIp^9B`a zmxM8zWSw3*6^yh>n9M|cjMr@%)wp!udMC!Cn~sk3bY>i}dUu-)VxeQRg=W>J3n_pK z;W{xV$#ME~V(6s&c2)@f1LbR4{n3T~$o)8tx6`NV*k|pwoMyM0H9Rpsr_fCDxXsp@ zE^8#ZWNq7JS1w<70M^oX>%qUphOzvNUj0EdW^3Ln1#%n{YuFV zuC->G(1rsn25yky{lDSs=5tkN9z;Pfz26 z*48Htvh$0eJH6B*_ye-@n_N&4?1LjCZNmJSAU9+OsgQ7kU2mGe{vZy_VR0R{0Jwy{ zpMX3vAO65^3>x|~aW$#d1KRlG?mOY3qn8A#gzr_l&fv_b-r3Gt&bZdQtP3t&QWoxq zNC@4~;>`No)?iHg@Z)BZ&yi+GUS65|~Q+X?QI+LWemkB%zzAc#jOrYWDS0{juI`| zN6PF0*fb}qjamOCI&0%*0MFJucMsZ@8(O$n4$1hceNIDYfawJ^q?zcJvBhsiBwRWgJWdCGxX25nTG1re)^q+c)VkxF|#o+ z->rv0b^=xr5FuNL1Hgq1)g1ZhE>7;Gh{aFuLD#Xcyu*pUZvu}7y#RE?={S@t-9lbgL z#!459*A*H+NMaVnzYAxz7h5*78k8v>eCiAHYLD}pOx+!<6cle$e)iE1p)~z26FuH; z>6ik1R6RMV$sVe&VnMk6!PI3%h++gHT8WYHhuLdM|8Po-aBM2KlCH^oTOd8 z7!NA;M`3;F-;D{FN-j#xwD7m8Hi$0WuAoC*Ww9YrRh@h8O*hknzt)5e+pNjY{|K|7 z;-8ip{Q5gd#rXgFYx;L>*l(V1d~<%ISsmO>X%U^9_0D9==#Ky%2OkhJvh%0`9Mha1 zycnN=pd6z5pat$2p*vl=xT%hxoVEOENt-2g%OXmuShGqcaX8tYh^A)z5-{t6isq#O zsw8TB@$nWbV>&*f)P-sf?c?TQ&u7jGb3=0q)X6uW+ z{EzKnS0^u4SPq-SsY@R(SsEW+zvwo>=?!vE*RdlT_KP|DSXb(ePbaHC`=Ab&I@piy zo8mLC0ADNhKZO}zWo7`vlrOV#M^D@OQEF50xH0@bOLgxDs&LpOB_lfwn_ z2?JxMvf2hIO~F)jf-q&@DWx?d{-_R_(l&xcQ~IzvW`5enDcCxhRjoc*rAheQB&17WrZ=0b=Mwq}ff_U{WqUM-MrjY4} zBK|1egEsSb``Ut+h{>OgV#QMnB3PBdzm=sIXKVJYv3uZ0t?M)iO6KAB^DSYAsLsoC zuSNxTad!BX^N9sphn*CJ5Y-)v&0>oMXG!9Y88Y-3YZs%I<4Qba7LvBuAJ(Dd7x8j^6g+||ovYHE z0<2(p88We=+4$Y66A|P)lEM&^X9;Z6u_HMb!_}C+vKR1qsEdjAi|_^CEBGv1mOp*{ z9%L;cNdF{}63r{+;jh74Hkhn4oJ370?8wA>KrI+{_YU%JlnrZ`xC9~cO?Y3UsreCe zY%$+(zUk=o=j9sf!EZ6z0c;`q`9I#q#PFg$5q=o$%slmehvfbAO`O`k#W%FxPCPG& zNAaHr@m|21IM6IEWHdXun_M(z)SxPV#T9QZPbx8t_4nNqd~WfTcT359P4j|!!~Be& z66JUpzaGiGS!1`VD5PL!v;X;eAlU3ERl3;gv--Fwv@XSIu=9f_t~p|HkdE5c`8OUx z)}I-3D=t$Xq78E}dpUL>0{ia~rPw2l_Mqz z8kHlnRA-F>F4&Yxlogq3;4eJeqT|g8UrVDpzF%})t4IS1w+}~Fs9D|cvJqW~FJ8X? zs3UfTMv;YGoDE!?T)ek*9@g^zlYf#;xmdI=X1YjrkN^3wi(N85b4xC6ri$k#c<) z{YXrQzt~Pv{*SVT=r8x0tOykf{T#;{reVoc(!!ixb0#?NIN)+GYBFoox}}zadi(1_ zEk*(zM^X+VV+B!9_Mg>wbOrOj0n>Z6TN;<6+j3`#r$pr2xAUy1ZM;QIa@7sZD3N>o zFb!j%jcw&jPkJpKf6&`iG&|-`hZFndQWC^eVRL$nf-GEEx!JQ! z8`>6827?p}KBQ@s3D%jYrTtbGHHYmPh-k$#wHG&M<;u+Gj+;9z#9B#w8E#J?_a0Ca zpi(&>P!pv(f+=?ouTEfxmBqzUr=xv4epnU_plkkYAtiujjKMiQ5lhf7GXhC=9 zrlVk%Ifk_2^NCl{SPInF25ajAtbr;m&$}ssPSY(y2H6b9iP{K|k4&sAyu`sWb}^JH zPGvA;-9HHyUb|sr-A@Y^&N}U@ci>WvZrW; zL#ynj04sCEmV_m{qn0B_b$dtlmSVuPPE6Jtj20Uy7d2Cu)u{M8C|zo|*^JnPMRcMb zgwl?^zYW2<4FG;4f{cYA#1sB_jPe#pMIV%-J~F{}51}(uQoXoZc|!^QoEhvkX@>t} zVlD?s($np1=%C0Cd5>Ud&h0|U%iS%})D0IA!xjiDdc&JdMsyzP<8p-F%9-hvXShJG zF3<01C?as3xSg?GJpq&QN;tf?Fr%nhDG${c@UL+fo3MexpiFx&i_}JxB4yKDUJ0`c zwwEg;iFgYMq|<(rhivc>MfnX#bDk?38Uga9dGDHG^R}-<2T8%6m^@usxmsaP8wI#2e;IaK4Y2kQbu#>m23A;7 zxfE!7jvG;2Mv%6ekdJT-hicy;A^0_lJs zBy9SiPKyy88#k1~(VUGM3BO`-qTAUBC`Aj&k*Qya8jBD%FU(ZfuqJTTCFUZnb8gR+ z3DLf)KxfqA&78s`RlhHJj@@`}UYK^XFinuf^xxqLLh!;dDzHC&@xaxl^baia@7eak z9a>#ZpgJyUe1jhPlT0(gp6Gt5HGM79ptTu^aa5-;q>y3iVyNP69zi!{>}6ygFzM7! z*_8vKt8O2kLeMnYfxT~J;Q;=(`tC1blYneR#-?jTuEra>h782n!alCr%o>C?Mo2e+ zh-DL4VhlL#R;=89&d{j=zl3Pu;c&+sq&|IiQS;P{`4{t8B8z8wA9pMv_; zE@S`CkP6y5I11X@n3$Uq{kx>EZ<23(6Mmyv)%ttofe#HhP=AV?gn2ow(h!Eu8d+^K zKN27{9xXClm9l=KRzhT^_OI3I>S?xth1eH)-WU0vv#9>4>8GD>@-fFYDMTiXaX_#B zi5;#p?m5Rfj@RuI+n;Z@sDAKf`c8(_L9hBuyMZiP{lBoP#T)UbN|d8S9}ZkUU6u>W1K?;GhJJ)K9z? zr-|F!%So6sPBmB*Dq4y&1b8|U`6(&?6j?q9r8bnEZ%CP0@XVYJxp6bRN^%H>kTVF7 z21zPAF$5hy`Hv}949!DzowwM8V{Ie2^H-QSZPqDCqA_%qQvE^_1oJP`vKCro+K*J$ zoL|Bc2pK!!E6kWD&>bBI{y69zy#ub9!$hc8VqT4&Gm_Qg#J&YjEM>3OT{Np8F6Bud ziwjzxEfxU>4C?DmL8IXW;_8~lUFEW^wxhHx3O7z&a>RH5Ob>9}ubj+|gI<_Cgx8|# zMW%SmAz@Ir%sz%SGi+@t*o-inGF5x=mr7{jj%OA} zkp+6w>&vvB=?U-VKGD?7w2Za%Ik&D)?dkCQ8ECYNOQWMJ{ot8p9Z=;#V~9Di6{9g^ zq{n9nzo3umXcsEE`&I&_q8)H8W7L8#=lEzP1Wlo6A9N9tP%%26MqeG)CXnh4$^%l= zL_4@q(U=4w5|u!BU8kV91cFv zZ%J87u(?!9JNp|ns~cG+ZZr;&9akXV;xQ5}!gcNZL#F@pqB0br{4TemryBPR2@tT!POc9}Uv zu5LH1K(W6YxSu59HGK*Khi1o1#_a}5cSPRp1a&sp`?G7oALD*4=0#@asilv(gmXH5 zHDPWb)>bUk=hh>|ZAap4=R)6$THVoG#9myY$=ky5}ktw9_Wc=Uv#fTc){BwutH{UnDxxZ1YU~P%W59dQ- zo0?;axULb6p=*(>(kI;00yLp43J{BT?n}QM_(XgyV3d#;JmIUy55^MEw*&5-bPfVL+{< z++cE`MkYvpx(lAr9HhR1z@S1bDhspGQW5?SJjoFs?6NHDh5-u-9OL@1$)j9%0)Zn3 z3VVX%N8xfj24{BK!T^WNG$gjzUryC}{65FISvPKnjQh}1G z?GA3)^|A2Bgh`RJ`sw4@G@f0Zn8W)T3{7Nu4?eT5(WrURic-a?cb6#fEGi~M71ISN z%ND?edOo$cZ1!GuD)%Imcu$#E-+2Z+sJdqgvHn59tv3)4ScowGn?Tgh&Vp zm0yg-A1Q!tUr6X4Z7 z9;B|5A@bG1j35-Y!3j;smBEQk$d$Xuh4u?v|p+Dgizk$`Lv7+GjhCwqUaps zzv)9_4)-b9uKIsm2R@_qgM$y?Y=kC0x8aU#y8VEaa2pMzw2PxJO*_&D*PR-n@{;af z<|aDCMCcyd-cGm)1C8BdqTN199Qh+3K0=%oe-ji$%3U_VkJ>%(s@Un3np*1aJ{c4iX>;iZ zYsJ0GsyK!sVvGbrYzM7FTgddn$BKiatZ*~J#$s#2^rjty3#7Cv612^fsG-r%qj;~e znyNDfm`o9d@q(R!&N64&M9Rux5&~k)Oqx)a-`Qy0vxO*RIQdc&*OZrSjz-Sm8EDcm zB#fazBh=z9DjoTwEI-mfE!&UDe=^(BGi|qJj7Lq-#ink4-%2NqN0Mx z_{+;KTdmgwvEj5Ed3e!YP95oFr0+07GtEj1>8qR6Tt-J9taFg=e$Hbi+=znD$h((F zh%FbAtTE^)LBuz~bo6>d5F=|rwPcJm?9Y_!vtSZBLg`-uen$KWEB;nbFP=FT*4MOd7gWt&fsq+TyTY9`V z#Cs!a;pUP_{5BDpdeac3O7ylK`MFcoyKyVfpmds&2+w`_?0HM!M5|*MO$<}J8TnX$ zH8DKJMdHD$y6BsdB;>a`ktGSD{IeF0ATrg8_CfG20;`19-p%HIaPB~qKq3|^ zAE$uQ9O>`@uGpk(wa<(J;X!fe<}r;hb&vI|s)rNfF_z2llcaVO*}YS&v#qlYoAXp5 zSQ7!Kb`

&NGpjo?1TvP$CPXhdG}*A3c9K7o+Z^v28eaH4scyXW!LA&}pycHuGl+ zz6Sy`a>5al5w$%VhO(T(ek-hKP<2Px$R2WVLD)NO2@MOtN0b%wc`Dz&5R_d;oT;v! zET*_Hp>DJi(@Oco{3x^U9wA(F&ixu@l)^)B6iP23>5%o^H5h@hH2<&?|IhRcv#ZF{ zg>G$&@m~#5r-p+T6_V^34Wg|x^5qXoXGW+q{o>WM7%CmnIW}g0Ro6-?>*rPYMS$VT z&}mgdAkpPrtIez}Z7rZ#6wxtSnby_Y4bcOm(Q|azXDyzxM5jEH1?zr`8S3lqW~vAIk+Dph-6dP{t^pVC%C#kgYG$>oNa zUq_3&X4V&W=Hxici-9Q@_F6a$?yd8&jW-0Xp+=Go=Ps$V$6_2;K{l+=HCuYgs>HZv zi9Q;>5mGzPEf39%nd_bOa=k2X1LEQG*sQ>r71mNU&9gRJ2Y7F^N56xtyO#!+s@Pm) z&QIGGT~o8XWKwxpT#>)AyuhG8A-n|V{}yNEkHrg>0Y^kDSn@?s&t4pf=MKsOH~;~g z#Pl2Nu>4`O#r<>ic$3o)aElZ=FYd7b0O{@ulMnnl5mav6bM?o#doF`tL}3Uqcau&u zpvH0h)w7W-c8LLi$qt3myf`*W0nRdBm@rb~kdZI<^CsUCEkCV&a{7b7kV~(h3!cCh z*gbz^X9aUNKMhvs>sHbl*Uwd}u-gov6g2-b!bT%g8)u^!{nDWgWBM7qqYZs60=pkH z+Y5qeRs=N2Xv4;UrF7M~qYd*ywo-`P0|?lqxj|KX%?Joibub+2hO7*&+a?DppoCLQ zVhA>=g{8$VvaeX&o7oL|-9r}yM{kI28#aU0=5IChA{X{d1-&+d*fAnb`nD15ltWr> zgTr1c@$QXc0;hDE0^XT^A#ey`uwj}I_12>LWVk2~2 zpF}k$Sp88bh`fo4VSmh=r|4>oGEy)oi%puR(TA-}7Y$+-cex?Z&2)N(-z(!?5%^3c0jn}lr4z4vh=^M;MbD2Ktb7L3$p~NFY^G4#Ql1&o~_I= z74}GgFFppp11uhiEGIbbck=py%XCtCgYT90;7xvqb_ZW65T`#uQSsvgN zRK)nsGf~zHzL2Qi4bl=_v5%MXgdxqAD)m>}vL9hz*S7yT%9ddla9G#0KR6KVB_+d- zex51Q4t!ua)6PBP^}+R4L8IwWeb!}vKWX+z`8j%YE|Wdn*y!bt&pw6XTmPXQtBn_6 zZqpO1rbo$Z$sBbRo8KEef9ElmpLzDGe+zyUR`uYpb{IjMFnxruc!vLc`RKO(P$q%K zMV==wPq3`!uk)(94t3?;x%i{bv<#AU>EL(9nDUh18I1Gex)2u{xXN!NZB{^?Q!`K%dCy_hu6pos?OTlpja_ zg6PHggir~_#$9g?QR-L@1j(Ozk!5qAdAQG(81QnB@rt9>R58$)Y1*>0)Qra=qO5^W z(0@dVtc};9jw@FQA?~wh^Mu8=jYZL|s7-V;F#y2??JeR(H8rnb%Ty8Qe|X!`gY1IZ zHqGIATRSDR+-A0AvdH3iphsLG{_m&9AbqV%`)gnl=qtTK_PDxH{ z-`@7VslW04HQ%UK-2NJyhWlvgsaYUsHn>IAfNyRZ2cYj36Kg8KFW^~-duroeYG}LI z-NNY;ispIx6f3}=6~dK%D_mHmo;3>(AMDtezPOlV-Jaa=d4JeN^kbh)f!px{7nTBP zlN%gDXlP>+8W!<0@l)}efO@8`QRtJ?);ZSXQqp?t2i{ngKPpnbTz7gmXEQ?!1K?&u;-0@dtNg*efyZC`#3Mh(?kuTMs6 zKDQo08jjb~F~I=ST=$^fHvG2&fh3Ad8>vRUL%c$~pM^T;LG8h&M4=jjv7MJ?kzu2r z%flho)`Q_429DUE98CmMF%TG}O@Qd3{0*&Bb${A8%f4>n_SO4&`zFAmb!EvLDQbr#(|?`F~99q4s^P zK?fECrTp>N?dIPuRh+8ge;t={JznRf<$J0FMW=RGoWpGHQZdw=8nH`tl={G8*OF}`WP@%^4)!y&J2 zj0rjH$dNWFOcB{s1JbxZ3`tEoS{>L^MUZsLi7H3D(%ssI4wjmz7a;{b#U~V0Z3r3l z5k2G6cn82s%b;x1WvK3Xxdlz7ByLOy-Q`mo8E1COJ&%39$L8=myua1l%{NUI`de7pWxWG1u<69`|FiPBy{YeW;HC;7-=z+Cv1i z8kL7|bMMJ7IRkx~YAV-A$}H?@ttgYaf7SLDix@%a1L%=ynTyynmVo6C;IchoYo-u1 z1`Oe!b+y6ae_U{zg3**ZU*pJ?s6T$N{eL}9|0QvJbA02Q?;F)>ubxP%=svP8iQ+7Y zOhH7{P4vG7HZMYG@(<_W0`uzIHVQjEHgfmpmK>Ni=yw*YuSTD#z!Q}Y zls+~ODK+ib$g!Xsx^7$-Ez6$dlLKLQK<)Sz<=jJsmzQ+kvf#-eE5@yKR_bJ}_+9J4 z{`%ZQHb`g8HH#kRR$SNh;=VNSHY|P=F4ZBxqBnL02kkOr(-3r}&e z;|qUwEfc39xYHn`$M%ARfPGY&21mBL1y!m{ts3&?g2|kRLf()&YU_QG z&00uGNf62Vg%?RB?74aC9&&^2k zi%Xd%;+SYuwTFohOz}mM0vrgka?^P`;4Xc zLE6={{EC^0n8#67YpV?l&iTM5D$0BHu`5*1lbsgD3mh0gYj1SzmJ+OQ{cqzX+dGUs zz7BKcelz#756T=&c9d5K`4#u(Hqa%D6mHF4Q>NoG+cnH?KrL1FDQ)py^%Y`UXw4F& ztR6AVbKCy?7LwRn=9mXHE6B+)R}wDfb7d-`x+?aEp5|BNG zN969ACLAAAv`7|#)+zSUD!n1tR<00(qAF|k*CJ`D)Q3@0q}-%LaIcgXz(UQ8R&#a_ zeaes-Ybn=N?O|&v#s}pa^c;jwjMU!N1e{a&1U@Rgq4X%;dUlSSSfhq*1ptZv2~AKt zR!kYOM2?|56IAv(a+R;yhq1pZxYW<3@UaqZXp9II?qW4 z_7q$(j5M7ypJrqzahx!F^b}0+@V42~(fdXB-zfX0AVC5s$)3ivZQHhO+qP}nwr$(C z?e1yYwr=L*Vt4N%Zuc_kxALPZ3J;k%IG{82soh;ZgvU&r7g$Y`o;`lT zbMXbCe&$Th=cN|)C_WQ+g3Iph^b<*0k^9rZbI^KDj5w~H6 z?b#>xOAre-X|G`oc_i?&b!Rx5(;CxP2DcB+lxt|7q$kz)X%(*|Rqlc1BZ?^3*^2)P z8f_$u^Mii1qn#P9Jz&?Jsm6Wa`RHxV=#@|GhY#xnG^9s!)DfX4wE zdI>{A$gsW=rBnKnrO|VfKx0jt6}vlP<*)6LkS0-G*mEQZ$V&oz8qpw}Cn)*?ypz0a z5YE+5A=C{LwJ3HlwmWj#t`{43xpKvE`H6-1y0eR~v&I|0=OG0LS(DZQVx<{ZztKBd zqTqv&eQ#xauLI;+eWKZYcH#N6m_58ejAp5PWD}?WIiJ)UA8?W35gfZf)}24w=%cQ9 zi2h8Hqb5P>JejI7y6e)e8ORFdREsLNye+v$}*uY-E}5@G{@$Xm?y3SNvyr!9M>} zjUjDhIA7wS9WHwX2n1x4DIHQ7(lp%Uc~x7uFJHR%A1&f{3=^!SpqmVqEr2Iop|2MV z%Z#=&X6ue{X5?ryM2eP%=!oO<)kmyan~us0^@;>YgsXNOuRux%bn1D_)2wUoOE}5b zK86lJHV^+zj*UUNzv{k1{FrCQ-RhsEji(_fD|$rg{M+)K6IH zZ9?;S1DSRMjtGVb09^BEb`1_g~{v+-PklEGa2H`70t zRxYoeDtp`j%24iZnUG!6AloKW2jd7j=JgO=>Kj%+(ar5#i$iD@!)-Ss5g&qow13^P z;pf~2kJXPI;pe!**0nwQpud1+iPC;#>Iw>F(C9-#MqnbDdev$btiYnIo?;B#OI^~) z#;aGMk`rK@B9?M9?AJiO6kQdrlwuv3&JVf}M$4OuE;HtWTo)E6T0>#}=K#WgRkM5{ z;tMJ)06+r~006`P^gl*S-^R%5Kj)$SJNqC0G5y2eO>Hm57w?}ht36XmSY16qHfS`u z1X#c#>9**&`fw`5@ijhysJPrKRHO0u9JYkxwT$ZgO^pl^>!}Q;EqIqAYk`RRM4HL@ zc}vSy7faVijo7ELnHo#Zl$MY0ZBLIB?DZ60O@QVUTu-w{MnB3ly9x)@4vRQmMmlJI`~jr@6rI zH3B=7#W$U2ppPAYeoWOrQT@M_LwpnWc8p(P;rBy}A9Hcu;lEOEZx0mS!@Ybd27OZ( zo*3S7Jp>Qm(lO^Q8a^HQUm)cS2a?dE?Bn@{*Yr~PAb~01#o)`9rj0LA#tQ2oCc5A% z_8rQ?DDwzvoE(u=C+oymP*UxoS3TUoX`LUSyQKDxq=@ehck@yVEWpplQ-Vy;PBa)o zaBSxhLsBG!4yYaYWT9G|)*$&G24F~BEl5)Eaano1xH0!1|OrhGY9} zaX>YQi?_1p7k)36sN1#}f@z8dYe#CyrA8*Bbe0q~1bj7w@uY=eq$8niFV_@Wvhu7o*|y|*10%MFcIg20y=FqO3V z8N6KZcQ=Su)66wrjGji)3RGynOPQu*zjTI)>nOQd&@X2>#*Kt>8qL{iXj_=?b;5^f z`l}drMzT#9yGXx*%D8y=yj^Zd2OTWJ`--MDIfkrAWF{oJrxM zjSt)pc}hJN)BqR z-7@I)B!B<4xnNO16Uq}kcpt4$py;6-Ccl1u;MsfU$T^G639IeDn1;yE$JCBWY(z>n zrV#6tu?Kuisccqb_kZ^v#Sk%;r>&GolGIFzA5ItO1+SKMrL2-`)!ut-=P6{dRwU&` zLE);j`?Hoa330HPrI{Q016DHe1yX1m)ei6^W443m6ge=qmOaY6LnptBE1ub7D4$(D z#!2+b!jgBXA7Q#fF0QPHU9SEvNN<}D$(vlxoX~X79AGW~MDd|?JIPe;;JcAO6X&R1 z05x{&g_0e=rTg6zoT;=uBeyA&>^g45dL!>vJ5k*wTU>gUFyZrD(Ul7X(OT~1w;6A& zbnO@NinlXym?`?Mz)tqU!CqvS3b$Q)kG~y8mLvNlJTJrNkc5(Ki^zhDC_iA(C@R$O zGI3i5g?j2uu_f*;)oGo%q)uFW{p@+e>C<&B#iX4ohT%NFXJk+}gSK#9wE~*6WSc9M zDT*9Z_Gda&`Ff9}iEK`+*6bo|N=t+yP{375_{5=e!u8fZ`6g+L2d3OhfG9?zg1g*7 zD$i$q4j2Q@OfC<91-VD^ND)ibT`g%r&aA8KF-YtKU#2XpiHf)2c8j8vt-7HfJz4ev zJ$SalE9QnjtjvqHS9(N(F>}+jhzO}5n8h=^?>5Xn#@yD%mrdNn1g8{Nh=>JAXYn{} zbG$JBwC=aMWP@$|(V`A-^;udC=S`ZyBd3XU&LKvLq%hGd0=;#FPqri`1SJz$Es%%A z!--2D=R-x;E=vnw@PgP#!X3`((BmHgCo|lUuVVp1B<}ine~ieEIC@r8EwE}!&XT`X zqaCyE;pkMTaC`g8BtnZEO$~y0Y^G;(>2&x00R5oLolPDMFrH-*iA|ki9 zD|itGsGN^Kiey4e58|xGzr=NAWuHGxdMVi?^f()3L8G&Jw$^PkR%c1fQa_p#(Ua0N z@3}HerjOWZwNzy-U&*-ImTzE%2)y?X_iFTXE$P;lFFv~zQe9VZVJ=1aoSJ?Uwv$`@ zeo&VMAZxgga}`x3V>n{wzQ8_hHCpSrqQ?7RYgLgk536;dtYr+=bsR zFJ7GIuQVFF0cCH6d<`e?+^kZDoOX4xEa;`q5r?I>{;LYwC37BW8RWokSCvc)AHx-L zntJ|NTf*$S;`dJzg0o3mVajhAVIWT;Dm?PTnm1geL+bl(aW7tMF@p*Q%)j9eUD5wu z!3sQokp_QsW8yAWLVkQ;sm{kdV}mDelG@hrOPL3cKv)#-6K=wMP@D0B{JydQyI1LylIgw~f+LHSc#k?(U@Tm`3z0 zkI*1DHlVYW%YY(4M3}JJpVpJT%^7J`oAIbs2(Q&ZFI~{7y@5z}SJlFA-KAl%UtIu9 zghbtvz=2R8c2C!}Q@Ed)I!?v)~T- zK1yL|^OeE9Chq(TtsJo_?u;QhR$h4Q!n#8uS+z`pWu)9A3B|)3P`6lkcJBhGm{@w% z48E^IHsQQ6hT3Olm5rZSc!`sI8O2T*DddSjiGQmp14a?(Nv}KAWe$Erd=&5CO06A; z()-nQAZZPfM|E-936_eoA=l1`m;Ys9Q%YQR&fAHX$P=J0G-5k18-m*n`}&qr&2De3 z*5KjqYup@H2y6 z!!sU*eQ~nMChFW1bJX0swzl3pi$yAxTO@K9d2$cc`F8Z_R*aTv3Gl-@F#EGk7kJwN z*vE}@ZE6CB1v~r$EBr$$mIiPH?+fFL<23BjnBapYc)K1#6L!&kG(VE+qp(C? zWA2g4&%|y{L1_K#II>8^mfy~rS(WB%pV?#Pq0MFeJ+)v5NE?ph&$J|AwPpltQ20(}w zs?;>dAOd;0+d9%xmG$r7M@s`-60|NeOUT9;wkmT%GIb{IDu!X!hgsBHKT}K$w}Gbq zW=HC9Ho2sSUF;lI`2ySgtO;2jby6UvU-F#eb%K)`%igKn%nYuJ#)0!>1Pa*8aizcx zr*M(c01ZF5%m2M3>trx%6BT0-O{1x@dGr*emFylBb@Jd&v1h}=_nj5dk5SQ0>vzr2 zJyafR`5vrZj|MEqw2Ry4D^${x*?%2Xy?=o}2x|!AmXdgohq^Qx7Mg5|z^1XbgHQ3m z+%%-Qjmc1Fc9%c`(=PJx{hbPah?=+0GHq?hR{$c>;SW29Yq9HCD|f2qwW`L~=?a$l z0$Jv zFicFly&@rfnQMsVPUq{~kQMk;5Ul8bh=*F0O1F?mp5zIitWafZ3Hrjs{JdddFvCP+ zkWTy9nJn=`I-Bw==>nY7&iKERgFfNE`ekWk2xB+MxkfMMd*QqjYY6Dh^!F_NJw|38 z@r%$Z$K6n(BJEw(-5ZAoyf?|JMOWc*ij~bc1~#>~F||yltLglckJ0$Sv-7U^|G*d^ zbNQW8;yo$%=@v#mI4={J3W46Rj&P3k0H-XUGyp#=9HEIOxx{h_&Ee3={c!419y zT@tH3Iou;jWM#m=a~@eoE`bu(J2WSfjf@|qN7cIED|K}}n6T&A2Z0ogH0!iH5~k?w zcTSIyp1V@Ss5KUo6XG2j#{IP(8z1QlNco+#vfwOg%y(8-H)Fz&7YQPNhMU(;HL@k~ zE=Z)4x@B`aYer2uHcxy%}~h&{XLvKK6^BQaH7jmB$GaZ>pI5J1rUpp{!JADVI|5gDp|F@{Wno&+K`WyMhPXPeH_djOlH*j=v&^L4vGIz8Tb8@o# zI}p?Vk0HfBu7CK)`wzt$;Ce~R%{-)xiM}THq&xbLCzlCKVNO-^nrx)&MO63XYd4+PXA8EVe3SE3LhqD{H-*SBlSE zuYYEZ5E8ghQ$25dQypixPdF#B-L7$CdH97I-vn5h=O}F|3RRgsrlnatv@>?Z9zvLG zCpLT~A5xfXJH<`3mMolMLFH0 z9@*gn9ksbqM#tS_BOlzlFsFf|AGVs5gft-H`3~9k8019=jRIBIWF78|cywfPb`Qxh zWSt+FX#Qp=;_WAE+-( zt+>Txp4^9H%o<9-3TI?QktvEB(FqyBp*Pf4vBSY&;+KRUKhr(0W;)V4 z&u#cUoRNYK_P-L8q=Ou9%K==j4i&~3==Uzpr@_;bGkye9mgIt`PY^)InF|@ySt+$P zFQLz8@MVjoYonLL2F*YT1>RdrZyZebqb-hmtA@fs;}dEqz%o1$Pv5y&ic4ye;aEWn z9S}>N8{C=Y@$@jEZ8l&@N&?;ao$_B(V8y_vh&L7)O<-y`#D#&-0)y-Pn$Lt9=5sPY zz)__0rdyz~(n4m&2t=ie9%^HPV@&y7DB{h9umxc>=|F^{df^cW&#*r-aoYeH5I3ws zhwWlN5}mT*U_2NPj^eH26dL`!GUQI3vsTXfm`Lp?%_Y}cOfgr%1d#`*b!(5M>%!kX zj{z$(AXkUkN)-vft526JH&=Sy(J~@p*6C#Vhs@eiiwp$|9YOFZFsgG#%N8l?`0=cs ziJdybCieHiE&#O(-;|hUS2Hz?F}ibeg?D+`3a4agEm*8X^B%#yplaXHoCB!4p| zfKzt+qN;Z4F5xI``aj^ZywpV!Fo6@ygYhom@*-{I+g1YGL%fSo0r}V#a=!K$`fkk} z7ce6f1Ii+i4oId-`t2kPVamJ2=KOpUzuEk|c7nai68?Lp20)uw~ zqPp41#%6d@&=i+l_3{(M4D+_d_L^@kcO2^$9Ya$^jvAJK>w!LC8ppH5nf29=gXkJA zX6>23gg)GhmGKJ~hzoLxJH$R5zQ-jW{jnslp7$7R>Nc&zViXLTD-Ryv&=y0bkH!YO zS!l_FOX2o(=1G^0H;JDqT@dEbrkEyP(25E{eLxr*RpQ%6OPvr%mr0#JTDUaksEHMK z)+B49D4+;1D&rGdawn%(^}8byBv{;8<0-> zB9uCdlTFbiv&}+#y355Q5_h$|+==6vN_MLqnf`?#VbKgV7E1ie*htt+^<&=1$r)C$ zOLoT@93p-uj8Mb~efBMbSZ3nP^i!9ll znX-?JOgdz6R0*G%cvE>b$Qv_=&}bw~-e_1W%^J}=@Rc0V96(2ZU8^vNQ+7`ANwIs( z_|Me^NA#w1kDvdE`%aWt000%M5FB4WofUYNUH&(*jDbpdSqVFaIjiN`eBhyX(G;I$ zCA>`>u$GGzOVa?zzT6!i@w44W_MI5PFVp2fAP$Ym6Nei{Y zHhd=7VqA**!DJOnRC#hgN@a)EOPb@GI(axS=qW&HiHLOUQ78=4m8zIm$J6}I!4zr& zzawscX-FSO=byDJ_Zy-6DiomL9)}+eXaJ%ZD!#l>hGQ!rV0s51`9T+iL(Rv+SA(&l zkv(8X!y6IIhgWD~Q)uC37*9vjB5mQ znNujV5~YYjr6sVMkbz|sLjK;=`Ha@7BGAK&AY-t0(<8nF0eKDCNq-b*X5X5U2QwB7 zYpyD0?r{!J8e2=Mud+~0bU1SQBO=uhdNbv6hh4j%4CHN5X%cWOGcV0NBAei5Ke;Pr62&A^7mbaa~%EN7x)dlYW7EToFY!$ z_7eK-B7`&SU4qZA3aFcoHTvL_pBKUiZ-ixeAoz81Sqt!}g(4gU?h4rDLL7cytmiyH zA(`0S$`CA~-g`FhVBy4$aM-f!YO}4=a0#)(bSE4Uo~%Kh2nDGxjYFYlTOefgY}qS| zRz(Z8hV?529RajXrHG2&p>x`1kEGBD#0lo6xS;GfLAIs$4zlWsQ?Mg!5>0E?by1sh z0#SL?V%K<;b#U>{G4;RCSCUAcBPvco)VT~sVnW|D<*aA5&)3>np zr%+T)P=qx>Q*jD8)2fCuU-Krt1W>Y+h*{-8WJ4!IO)U1Dq1C{B8aV zqn1b#mpSv}v5Su4KrOYbrfWZTMt4+W5?5)7BiF8RAWBj-t|`Y*bBXFH*Tp4@G*=Dg z639=NO)k+G!%pJYGAz;h(QV;H)>%iV=N{cK>K?4oV;TxARjZ2vf-K5wqODvSAXyLC zOKw5=n1w|C?L6B41B2wiaD9_>(z~^#XL~_=-JF`r^ z7?Z3u0mD53#62FzJ-!pY&|g|jefRqisRPh8`Pq-&Y=hBuf!uZhq<7v(l(PWWw7<@4 ze_`AHg1!O3#Qg=UJEshl*(kGmFV+E*pgoE6hE#?~t}t6CFExKF^-Os=GwhE)n1B@RcrJ zPp{bGS?c+7J4vXKz+-uk<$G#0o1veXt7Z*7Hq80JgsFIBZrQ$DL>@}q-w}*;e2`eL z_mY9f)S0UrR;XDHZ};56X~Ek=6V{bX#`vEMYA<%H)aAvc z_p+gEbfye4Yc}^9i9|it!&K5z{Q$%bHq$xYTO;bk387O%G;r734qojeIR~`z@GxC` zntA8B^sp`%B;pqahbMaf^WW9aw1+ucfLB(y!|kE+);On~lEkxCr4Tz;j&8|HfIrZW zp1}LOcwD`qaG#=c-vE2hf^y$}H6p&)0$0+H^jLec0H35wg1#lC0FSX}wPw7zHfohoC}eD8gQ&ypD5j6v_7dIts`+Yp_^ezVaN$iPq! zXV>X&&6Zl1(6^*LKj;O*3V)b6*XAE!RbOg1e`t%AuJF&fd&#%q#? zEwFR3)U-7tsh8N+B5GH7)Z4U!f=xxWX_E^0#zf{^5e#vB!Rahg5N>Unp%Lb z2;MQ04&>5yfz>yR!Dpiy`LX@8_$UqRQ?w5!ir%q1ZtXi?1aIyneB#U4?zff`n65T1p zrImtSc_Y1pJxmdj*T?y1x~VXP0^k#-Ts`C`~m>ARCr%tgS}r6xa(GFlFG??M4h0q`8s{rVBX01NUF4U)4+TlJk8+2}`^32%-W55F%QH&~J7AH0ch7FZjv+H|zobs8|mtO1d665N$-?H{6?M~$`CFSDqSCjjbE^2J$6UjK9JSBd~2MIE|AgSXdn{2Y~epf19 z=bG5-y>+j2HGi3#fo#vtk}j^C3vDPM9#}N45^ck_nMi}~%qVM3`+T5jaPI77)E4iy zYba>uD;c=-HT=0rSg_34$*xpaFC|l@_#1sU-4|*DeZuL$980M>>FoALyNTxSdf(;n zJ|Po2)699%osa6gyo0-zGMGQYtOYj>G9dRe;UnXoUy`d^nRHpgC&L%>*)WxdW=Kiv zL~guefTk>!qR8H-Ulbg;#83#~J@ z|BDHd9X5bCE7Vq?&#yn1&TpRdW5qX%Y%8}`82U4VPvDle;AV25s-EjA0eK@*i-|x#2SL07uL69Vl*3n0tZSxT9aU2a4VvaYeN5g}Z^o zo>01D9D896TOYLD2y^9by8X(XEw$rJ-Mf^?s_tLcxa7n%o$X)e$g&<;XVVSVRy|l^ zUUSCwjjcV&_5#`&X1&LWdcK$T;@ueleN*wtvOU1L-YtCv{iNE-*Rp4Ym~FPZ8mnUn^RuW`0&~bnU8Q ztUcRoe}~)?I*uv|%)nW(obyWE2jo=U)vbUQF~fjepZ zWkGFQQl}@jxZ-}ywK%^UQ!gZk2Z(bqh)78SAu&7+I8sV~(BUc{K+XPeP z>WAAnS*7aCv#@vNIsb|`vdam#6{?m?USzXGCIgby^267Jk&UDE;3AJ^?ecEMw}(E{ zBuyG)i(a7zsr^+hr9P7a`Pe)E_UHK|tphZoRi4PyRX?vIOtC`KIj<)w3A=|wuF49| z=R-wuW=#!-)RMj87ssV|NxlP+$PuZji5e$&W*ZznP>AzHyse@_nV$iUt5Z_<_C_mnDmm98YO4Jidmp_O+8=Y{8@ZZ~0{zt#{e|JUy?~dp{o`3kq`47b^ABvc($logn8u+!*gn?IR zhJgod0&6J;stR^jVEC(TfQo%G;$hkAs-8GGY6d~e;R+@c6h(RcY(hV`r+B8$pTpmL6MPJ zGkF|;hWe`_+Uan@@uJ-8eQ5%0_f^n#B6i)o@MLTRG4uC4 z4W7J_YeVidfITaEKk=d%4Zic^UgINhMeP81;WKj~Y<);VawD&3hwL<=dXWZe2VR@$ zelqEFRPRC}Se3hq^)}aDPj|_?j(h`O049ZIGf438a&3bY8$8nh}#qOOzBRqI+K z8mA2gxFw4!822)x4f2iXXBvWh67)d4Ybq$6R+^-JWcu&cGzO!Ub@Efp~@T4PaeY2w`Me^#LK zD9Z~+rTjh2Dwmm`T3X8(2=?}Q4!a^kVCk3y&p*YYR-uOfyOHQ|j$#&5JX>R@P^2zj z8kj+hBP+|ME+g!n#f#PFv=OtHi1&5;DNsGz8#PiTg+1upA}c>-GK*RUS8E=wlU*cnyKc|Lu0E>aQV zxmJ!&tG+6}fIRIULNe{EI^;mC>@_=N=KwZoJ)2^C_4e0y*&Z4K1Yd1>2(Nw+fv!BO znL1UirZ}lCJn~+7k)3+}&f9}uj9FViC58-yugkkqYk=T>|AmoLUqg1mh^cvr zj2;R_u#6z>S;#nf!RW0qbg8|>U})ZI_2faQ4&kOrid*zh7e!Yr(zA+={!(%o+tN{fO*6_)T*`2bcr#ZH@-VDBTsTi8Wy%>tm4W$lm6ZD zjm<4SJ|}x=%kdI&!L4Z&wu)2#*XB*Q$L@ef6k(H)Mp)%1xW#hP%gktiSCJIf!+h;SaV zmk5hOb_$8W<2*7b_S}>Q6!}kw5~ozhTCN>g1aCIUjUIu{9|Av;jM9Bcx&4_&!3o^Ji=}S8(l$TU!H3ljbPLr*6^E*FLMN}oI@chuw67lg^2Unl4jkwH|l(w z@xJ(2ybWR6cQqiFJ(47VY@&v=EsJQRq%ek*28TYdF7kHSNK^6<<*5PU3S_#3FQR0A z_71)QGPUuGC)z~qk)z@e4#WehhZ4YD!ZpAkzaAGmp#5jX+~tHNhW#R#`VTh2?0)Gw zvx~urk(ovOK%bK)Q0$qD;pC*MG*|dpD)$RRb?iDCk>V8{fQB`8;&2dfqvJ_wSgaAh z;LqN~b-{QL+lM<@$9I&Fv*cF_vMqRhNMCZ`skH9EUtXt&@w5eXzo?e|p$P^JACO!N zm5NS>nUw;CC!czhOd=Q(iul{p`hg4KhCqr9XyJ55ih5P}t2SB<*yODN(!KiydgmO~ zv8zb)mhWcw>+0!K8t!-;0~&w!6U}%;lGJOls*q>e=JovzTKD$a!)_dvi+@VFU(qIx z`cC+=H}MS#l*A)t&RrKU0C>HTqR?hxoT@zM!2l{BT~=RVqP6Y!d*$&Wg*_TkPActV zkt=rOX+`hsiTERku5Ed62ZT%~gpx-B3=e#-V(C6HV7FGGK(%~+Cj}0vI6h`fEA3u> zGlvfGtZrp{f1PWfK7{~~gdF@<_82@PkPDIdOtpBMFjj?Z+m~e_A)PmE+wMV)Wxm@7 z0getVb_M@OI!_n)`%>f5`u_{lh=ze<)Ui^-41J{^4nVx$efY1;i2`i-&`OIBJV4 zQIH}wUnKb@Vg{DR*T`r2aeOW9VAnoLgX(XyXdWz|zA~e+y0HS&Y_EZ>#EvGX>1^4o zT&j4%a#G^hA!AwnFx!GM-P8Nx?bse9sWKW0d-L(<;WK9^_vYp%)701Tnh}7dECitA zE|o*(ogR)4Tn0ogbQEaKUpD#v&K$ec`4Et77@c=!;-mJ^ekS(ez6Z_^w>0P;y!{nj zotwNh_ui1qZ+74DmluvNwW)96!5M&no5(0Cmu+@dR?-3Oxtj`0?!$o`fbKwQ_Y#Cd z#Q~+yr!_#Oy~L<0kXmHz_`waJ+0ZJ`>+c@&*c0O$_rJT#F}+Y!*VC931*5yyr3jdp_AiUZ z=vk~xMyjj~LmzC`d#+7DstK`Mkx*QS6;xhc$NZAltzn4T5icc1rw*r0Nbq~Nq^UWx z&=k$GRqWQJh7*_QL|E!a_N-i*?2Wk6rK2*^tqeE&)L0Bh8aS)sosMr=aBNr_Nvh`* zj>D)A5S+sUD@z9&+MP)w>xZz7@>?i@+ZN+xjH{7omqm_+WG|oCJt2z4>u2>9Rx+6l zL0!@cYtsFxLk(8S0Hh2nwdKZ}8JRh9iVITM4Hz}!(zfNws3b~vkw+8c$9r5Vrl;AW zxzfaq%ImH^bs4IhFH5x;ab__ayle!YBkW|Y^!W6biG{Gw;^o0%Eji4Zir7VBENTb# z%`IC<5>l)~SkmAsCrxwY#*>`qevvU9n3cFg9{4C;YrS6KIC-`co*NmXQ#+tW5+F~H7^cn80;dzb5##yGVNDm zfIrw^za7C6@gGt%oe(G3^mw1ottSd~DUEDP8ig$BH$GIpqWqh+9;u0dCgQ=R2{$%r za=WQ+ClcG0cknCZcl93&(dh#6rqY9vOzGIsvhNUqyklx4kYasDedta0x}At{PajK` z4LgAZGBh~Y&f!e zXO*(=&Ay*qWT4vp0)O2DmSEzyfDT64@;WD%nwD5nA<8}bq~WYzm@=>-#N`=-zkLG5 zdDOmk!COP1i*IFsIO`|nh}&lSGVL<+x!5Wwr~3f5ryZ7fv@dYvSDC} zLSA8D)%J`wqBQU92#|5?A%_;&Et+>7=j0%l2?VKC_*0bWox<}e?3Uz`D=Z*x(~Sq@ zB$b=<1%#k%`{@O#3lo*1E0&iX1ef*@1Qitorhs$K>rtgvs zN^~-6){)!6QAI;*)&q6BOs)_-d$r=(Ksz)=a{euVoR%c)zs<--UJ|HT>otm!t#fbI za;0URb-4#=tYhTU^ka<)3m2Nm8$4VHF2$ou7RA}`MV^}@zkj7ilt^jxPtUkxmg&bz zN{uFQ(>04c&v3tYr_h`0Q}v$25L-q#-x9D+LNMoFvkE<5cXDZ;&Rxy?iH{9VR?K$E z*^}T*qZdub0X)Ux?&VN;+6KiWW?q^98s;8|yN4-Zr0?We(}f?VPJ{eqP28*2`8KUR;Cq?> z908JhLt(aXwr=uryK3Wxk9+cM_Vu1@nkTcK#QH$)%L0IrcR=xIk9@?vu;=<$6ZxQZ zHO%7>zf9e>T=FcL8WP&sI(Qf(=H~x-bZqv;NX8kP@SS%8)kJ#Xc#C5m8RB>=%nRN9 zxE*RAO*Qbs6L#wU`Y~JB^aBOh55kUCL;;!Nh>xUoQg;i5!ac4VnL7gLegtIheD}w8llOG3R-tKUG%>vEE7{;jUFk~A zi;(8E^8(XBZKKFNqbqr1P_4VCU$Oj1ZcBB1r)h3(}X+=FYr5&P5KBOhOfokHp#&0!B|8)^M zSB9p2s0!D_!4I%~!JunkpdPTzW7ilKtVJTEq(>aHsT~ZR)jTKY?WQKt$D$> zN;_cjnl6^z$vx`aA{!oTLXKDCoE7?s_}`W~!zt-HuiQpjv{=Sik*6o;xg+A7&l`n+ zGZKw>0JXUR4#nbhn34YEkHUMGt+3d=R6Zen5_B?pjh~-X0xyQ;RXGA>>zMZzOM2=% zz%@`SIl~T~qaVQM@7w~5o3+a?$8`m?821UHS6^UZh9q@vCcmXUD?;(XL$XHbVBkg} zLQJ{q&j~w7?yyM;3WpwH_T5S2xnkfw$b_dBU)f}3^r1@Qhe5i~W%uxMh>wz5uZiLe zxgHWaRnfthY5PyRf{Ewiz+pUMB;5q>mZp49EH;9IZ4Vn6jbVFO9NKg{n6 z)^8Q5vVv6AL-roLTK?*1HnlrSbeU(1ZT@;Pg)?6fm`ZV;-oCAe{5H`Yb48gq*;+iT zeZ-B|K&W~Q?ZWq{_u}>=pCo{o zS;N?#m~z83yt^vHSFl7YmB$(u`J|tmpihbKOhdjg>cKMA`3(1Jo+ET!1iI1J+YTIj zRow1Dy&-P#4f(jm+qON}7IXs>!C4Qr3v0T3ICKuxc4Jv66nyozm=mb^YY0)Kx}lb` zEkOH0<_OFDK^XEWedyeGOxmM1J=GpYVV#iies$@dS#og2ac%Vb%nj6ARhe~ASk!D< zsgSJRTk{N{g$y>0KxATdH>AJ_~oRDN;Pgu>{)~wK;)2 zX&_+ifit@m+Zous&aLbC#G5lTp`oGf*Lc?&MQ6Bom;tX;EY}1DgFhILMP!XbTSq}< zc|l%LNfOz~Jq_RmS$#kABCa=9?QH&;Q4j9><(Djy8sjqL(YO7J&%kvXU$kKmt=pCO zNRy07%lpy?bYrtmmWFQxyK_bcqI?$hTn7m*5OY+nrgk-R60lRv&aj)q5R1S%g}d;W zRW`3`UL$Mm!xof4sbH^^vrxPy)+$X+JFYR!Ic(jGyNn^CH~kS<56f_EEj3rUd381W zFI(%%i+t%xM>Ct1A`%-7AI@-rjiz~ND)2tWs9;(>^qw$|lt>S+a1yU{{V(L_!`cFL z-9+9+#-iT-lzVB5&o1jh5z$#LvR1lq4>L(_ol&LpeC}y0l$)c8K~H0;YHeUj8_inf zcUpoXnt@uApx2KyH<+*sZ8*uMQ4{>vD?nh$d$68d@r$Ke#lsTE8?7FnX0a~^13l_& zpDmy=N-NUUMt{4`!Rv zra0Qr=_~{i65WhGWSD-G)VzSe0KxiYE)pWz5GGleUczNt?l)V)Wx}~;aI>6I6Xe#L zg@PM;yk1$}FTdcQP^$-8JwzX&+|M+@zDS{GQYs5t`~44c$@xhua$ZCHcXr5G+O&mU zBeU;__8$nI0M$Ests&C83om<20#$N39tE1=FSowy>63dO?okK=klN^3Ppe)V(@c-J zry;@ikE;Mu#Y?$F5v@MR-VnH3Pw2GIbE_drr-o5?=DjgU{;X;?*T@ulM-Q0Z)_d zTPG+9d5K9On%p+$kus$U?M`~ee5%H3MJOms(Rw%&c-Xh6e@|^Hixwb(P@<|=uIg11 zhH*uy285EUEb-iX<~ZSE4S@`|wr5=h@1G`Nc|N?+1HaD6>4%rXzN#^* z*;BjXpnI9&VSGgYLa12As$HY#gScf4mjw_{JdXTQI8ZhQgL1|=ZSwZsVhgOMcElr}!dz5HO8 z8G1F}7Y&f{l zdtbX>Pd2w78Ue#MEDWm~G`b1uv|70bllgC(=UKK&2)zgIGZq*&_~+sUpPyj&9iPzE*7jotcz!$mrqNs5_(1SG<0jyvgtJMXHdY3yveI3@AK?)&OT@FwQSZ?)daSV9BT_}iK!k%Rvf`#$go|2_kOtz^nAyWFyDTuZ z`DbD-EILAH`VV-S$M-p8AyD*=Mmco3DGRPX?ixW{QKd7V!n|fEC*lA3+iFC`kyE+2 z5Msvo2(>Zn*vvD0a-m+yR4wpzRDONw$~C8cLN#B(M5^(K_g640v|}1EY8zk~GRg=B z$nK^>+#X>sg6Y(uC*I&P>dq!diNg5>akYA7GWi?Fik*$9*$LbRgUc2&*!QSlp7=$ zQm}1FP%9q=>;Os94DBt;-BNUZW)Y{z{6fRAR1Ml|IOi<0gTyNPh}BMtZ5T9rG}Ej- znF9_XkM$vzONS$7lpD~^Kw<4%d=b^tQkv4AP;$E{KC}k$eDXH~9DT^8C+f<-;ldPF zQH;YBxP@u^nQ_H3P1Fi4m=8%Lc><;}JrY0;Ej@5%(Va`r(v}pr^{>I-BG;w|E>Y4I zd%2kdF9&^tKgP!oEeO?CXVWzJbL*jereUV&m;xydMx1x(Ng}*`g&nO^6VKtui31Ce z81!O>RXD%}Uf_%PJOb{Gk7N4*|F}9NksS%QHkv4mKL2-9bqe^1h>EY{x=G@HXFB)~ zU-kby0TlaccKA9F{AW7&X8XoB^EZBLd>hW8e%LW3rcS^B5`8r|1O&h)27!Q*2+R*5 zSj_=QAz&};j_=1u$(YThqZ7I|R=Y0KX=z)#6*RdbQxC>1Rae*3ZJhTkuWnp&E1mdV zdfk~JiKPwt(t2-YzfSQ!t~-4+t~=dbGlyOQ+P6S~UK5=&Go14ueozY|+R_f#{Go4* z#d^{JDE@=~>*A?Rfsb&2-1I34|78oBP(K&W{tx*8E)x#KuAKMKFI_M=FokfRTc43% z5&(wlxPugM&}$k9PB)ssxzGlLmyGsy0IF^BAp`yHUxI|G)8GLXgGZ)M0siz@?sX`8 zfHcUP40uQ_^x<8h!HU&N5n#x^?H*k8+6K)Yxx=;St5hm`lDiBC`W+R$v8mMNyy zHuN1vJxn(9Axf!ovwWbPy5b7vq&zbXR9oG|h}6ceYBSZ&oB#|?pUM&BMyn}(k&~hc4Nny zpHV+9QTA{%M#C?PkJXb_8$m@wU60s?jiPNAVe^0g%&g)$n54^HG z*|nDkqH1wgImwqOV#i{|hQ)D0lc=uH;(kh(w_@LDJ z(epmI5sSj2Kc(9BVcw!V&Ig-x0MTIw6Uk_MuX-y@c9OggYPXL^v;>HOI~~tCy||F1 zL<16OzBG^xwIQ{sGWyHYYm?F?t{Rl8A)yLkqoSJNx>%K^3L!&tGKemu#yjnmMn6*8 zOvzBHD4&Yz_SP&!tx_?Y$p(9OHKXTKe!VlcpmH|1MAMMj$ad(OKOcXd z)g1GB)W7#qlWo2b=8qp$G$ma~ZYQE0%fOWsbl_3ajBNSSqAv=$Lw2An@u#ZM1wqf+ zZXXf80c8{Z5G@tr03XFW^q9co+LC!h6a?;t*-?LTfmpLwgvhMp45DSy`RO`)=!n?? z`$iVDwM!X%8xBF0l|af;s&p8qApC^uJH1vR!2ASq9np^S2#$7x@DX;2KywbYBmdOc zKL!M?@S}E-S#VV!MNPI6JZ{o2dB=|FjW@_|I~PdKZRj|BxvU>^g*uNGuhnzX-KoN@ zF4z5tf%aiv-DTL*t6C*lwzy*5TrL?imi$qJ*KxPkgafG`p(bHv9@LoNr`X>|777|P=#cy^yq@tGFNo!D4)Xq zB$W%KxoUE@{`|>X^cm4dMHATGPT@^dQWH${JBo;{xw zq8Ronryrw$6=yHEV^5?a;UnJ>s^fz-mYv_bSN`iboltF~nnb$-|tfmvMT8-W?_%q`uHJK7kB z>#xve2qRv3i{IWqL{M3Eq&A2a>_MA5lXM7=Sad>CZ`D~=POKW@=OUi4^T-;BSyc$U zggBc)s&8gfn6!u!sBmr76D9`ricR${$GkZoA=M`(tF;N196ZGS&M+T?C`{a#=?XQ{ z6>Fv*P$=zDDiz}HQ5bbZ=#=S#aaw?&#;@`$>B8}^03R<2RpPkHTg;$RG1oUrL|(c6 z))%(ju}cd;M?bhRw8JxgwfGS=r04H>KE>G9H(xC%o?~pkz}%MBFt{yB%t5M@I=l@6 zD>t|8Z_fA!F@sT~ziF7cZIrc5Wa8SK6uilbjTHW{Olwz?c6Kyh!ZdMA(PU$PtRiMT z*kF?45M_sNVnc;HMtN94@?37CNZm@Du@(b;c~ej?m#-Sh7uV!KrVy$t;b(V*fL^w- ze6yP)Yv0A*=)ryj;sjB^Nl~D1c;cMA6y<_qmMH=*xnbfy#;X_N!X@f7IC{=F{(8-0UrfCM_@qgeLjNR~nClyoMAO zRk;Ix!_5R~0)q0qpJdz*LVH&YHlF@zNzRHB!p{gti|}Uawzs z=^&<^%GTYi(zn)Mu#X9Gj)gukUFb*9#*t9BkU-~t%4%Q2|0^$4MxulCmm4AYovx;m zr6#iR7aiw`80_UPBF&^dl70d?;G15BD>SSper?Dja|qwBxo5$u{?POSd_&C*apVw9 zHrwKzRz@?vvC!e+YpwMfz@8*Y-EdJX8Gg6v8G{si{SY%x76&u1ZEN12wJv}uD|%*f zj0d4C3%>AH;XY5z z_w|HW`m%>V5;i1P1(o;%HQOQ~okpauGau=npz4+GXrk{IS*N?oH;tUI{G4a){femDo z^E?Qcw|0v$skw&O~o%35n>tpRn?iNya zY1r^p*vnNqwx0pfTe#{IJq?AQDdKbH-yK#F8$O>qPtWcsC7dmgwv_y0Uab0CZ|3u7 zvp;u}3|IbwJ`b>WY#0lhIEUE`WsU9{`Uj+*f6-PA6;fAt_NsY^_a;$m;DIm8na-Bg z-4y5NEe<`FXQyL6Qxf%yE~-pbdeM7;k!!9eUG_+BxU?$?JXoOEw%Cn}CzhxkS)>jZ zH$y~)JbHjMGlL4(QSX4bj(&X@!{er@B*!Y;lqyP%Qz!R(s|JCN{YtMuajAfbruvCq zM!;6#_(PGoURZS-i4~k))roaoR;4|D<6upr0wgILFOQp7z->;`uGAq}MhUP7!@Oa) z7x=0O4>K>TxvkYT(Cc@wqLL>H>JP%0eg^wJ#VWSz8sZt=Jz4iw?Wo}=+F^FH=tZ09 zKn=A@!Zn>EAheph>p6-Zg`M5^;hc#ACjG3uehT$F#e6h`;Q2bK>=;(7_!bVK9xlB` zr7ThcEZ#`$?wYd0wwf}sQfeyk*&1{kaWbqHLC$ zuQuFcKEQG@L+czG%9^jsT{x$Cd#NkJNX3U@>uM48g3BAr^hR04{M2j6T+t;11Ofqq1W}N5W!EIx zjTa#WPci^V{t0@@xPm(}X6Ck$eNeZ!)M8;hD-^k;)wH^_s-}hL5Lgt^qI#z2WdVPY z&)f9q(@OR3$K04WYQ|=Z?DuPp-EQ;o^JD9#=Mh%E+u_`hNQ>yu^MqmJs*sGUe*ldYL>gZ5zAlvRE?#E%`5Dpot}M1kNdLj;FDpK;SnS;@ z^4pWkkaq%p?(U?#^!)@$1sh%u;cO$4&%Ai^JuSRXreE&>ckbTG9p1|&iIyRc_p~@` zRdsmJbO8T$Gy2nwXt?i)mG9s{Ea^*lsNU_&_}giz%)U9#E9bOt-vBjF*O)ceA9~W4 zuYU1-{FBPj{$u5Ct`TN-JNNkx8Ts;+iUjlkE!0zxZ~V_vDc)gRaDt> zL)!RN(z1plN7GKE2+Eu4d>1V$tgTh5GOmIl6ZfI%`r z)6t|3(hg*c>~ME2<=s^<(v&`F%5(|qm&}G13!aK>Vhgc%3s_iekajL)LYc6xPNk5T2dcOTYe}iOPmnI%0k;?HU-LNz9wDb{XhbUJ!Nz&lD z(y6-W!~t(;1~iu@5yO+ZOD3pIkhTykMLW@a#k>wd2G&sV%FnCz?aH?_C7!}+ZOWUE zQ01M-R`qNOLj2(l0heaz4k58&U9Dp$nl6g98ku_O>h1!?RAy{)u$Oem)n__M0nb;J zl}l})=gTmjMV%!fRM37L)$*zfg)JG>0KXtXh8Y=x3b(tER6&_Vr8{7)#Dxr3dBQ?R z5dIN(l#~(G=O5q+WxnmM(aw<>7Xt7MgXj+}jsVAe-AQ9+49wx=a19YzK`Y<)%qvX>AwPdv zTG0a;Ktp+L4zm^=3Xiq~?=z%y6%E#omN7(JMPzNtSwB?GFr{-;IzgvU{hHB1qa*SH9G6NO=3USR`$#5DiGE_pS{iSo z1Q~2gWLquGktSiZg90J6M9V}ON~v)pC{fc@IqsS8_gqzBG-c7^ybMDnPwBaE=+y!e z3$q?U+;j@Bgwf5&@qFd*VPvgr5A&r_ql`2<<+PUDA7D`C8!=@|`sDLo>Bo!C(KHo< zGQOPBCB6|*8He`5qt18_BMY*}44K2TV+90k`SyiVw{yiz8x$3$s{;eF&W$o&9xd>J zX|l_sMlofAo?4zWfAWPR9gK&2{{n<-rQ7Cnd$b9c01sVD;@R%)fcf4y;4!QX59s0j zoq-LQ!Z0T_sO`p<)HiW|ozs$nJY#o-1AOe)o;4uCguz}CHT4(%w^tElm6%*%c^^K~oTEV_lA6ScWT~V#gXM;mkKI0o4XOLU0hs_QnYU`mp>~a!Dtk-Lny_V^m<%! zCn_$;D+A@Tdqz&z91?7swHzoTZG34uylB15>whiPw0X~*J2i{s9tO%(exkBo%$!ZD z7&z0LFqOX0Ks>ZqZPzG;sI}l@ot5ez#%v!MSB;10rHFs3E?IO(YXZAN(uz82ZaG58 zj^VsSjY2mn&X%f&vh>?#2p6Pkm)~lEE0p&`B!CAkM{lGuCax}p6?r))!cE)RwC#V0 z!%iYNgI_ptFMf6>9HCvhInB#ZcXH=Ljx}%FsmqLK&m5`zIq}N-Auz)&QRBUCmT=61 zT{GPOpwWis39kENSI=m-2E1m?UZA;h3h)UgEV~@|)n#6c`=>dWVNN|%YR#@v6^5Jx zW=TNDC5l^5jM_+Zceyg%KvfXR1SWsp*)g+=&JV7hb$knx$EQF|Dr`07{DB;3d|F~m zL43B-btP5Xaw>M!o2W@j+m{U6=x#r`)q>v|JT~p`T@>W;!Kbcs0ezLaIv0j5D!^d~k zH+aWU#hh6+uy{1{KV4ta$U@>3ms`Jym(6v4x+c6wYi6{(0?zcCaBLW=V-Av5IJc7v|H65w?7`&s35XN-EW@wBETKB^W=>2KRP^Px zlm)~Goo9|Hv?76seMA=NlsF}S%nXaE12p<2+Yt$)l&+&dOVZfMlSZ>vHjJz%rxrOYSLUl{(axTzcyv&oe5EQ>?C7^-jD9=>8c*+N0 z6jwYcA#578rBTIrMMYSBjypde$Zu0rT~J(T7(tJwpp+^3ijBE(QUMREAR}5>rPCqq zP;F}bOF-t=4Kx+H5uSUToDmyzgYzvxw&VIVPh%5B?z(H-n*a5cNOs3u%D4?$J6lyR zIE;+cBv-Muj1=yli8bm!z<~3>56^ntt6(~Yfa(BGRJ?e{ZL(cwvR!ENbi^_)%2Qu* zriV}3;DK-t99?i2LwIwnOS>>2GQ!bFcfM8UB_7VzzfJKb^B)bfA6wI^CSW>5=CXZg zb=f=eK<=v7_7oI!?g7WiGJhERGOiv`yb4OU==P$7nZ>ZQF_~}?!C#tTuggGRdP3LC z7Aa|Aj-kH?$u=z@y~hO}?|RR2q4s6~bLhn({1zQK<|9dWHuJQfJMsJU+v;McL6Sc>+^NZ+WjWF%y4*8=)Z(lP= zvm@Lo$&P;Dhqb+(U<>jFcuJ_E!{zWi;`v0tI|0?J;s}oLCj8DX{NM#f5f=#78^U#@ z;c6>w(7?aDCMiO@Q7*uWKVNKnAu0a%rE6Z=_#K@0^Zt>A4@Uo@nvP zG`*wT4oM$-4Q4j+%rGb=hlngT=Op+^)S}>?6c4gq24WC&$(HPab;xm5badc?BhQGr z589Mxw#yQFo)t20h>3Sr$vm?AE6FB*Ag+8qyARf1Uh5T3e7xPe=|w^d)#5zMY?$;| z!^yJWsyIg-S+W=_6&pG^H>fsRbrTcxv3^qo&3gOOcIY|6e{x$*le!VRP>u8vZEUw>m_S{^E%_%&O6#ZW9r@*@ z)eWWeh3q9MadGl@`Q}ksMm{{t+ltD?fvdG>%4W(I^&h}4wt=ghxHUd@#8w|)AzLRU-J&(P8FVs}2VUg*m+hb` zS0!C%-KX84(}2X&g0p}``&pMh$+onPpOxFv&b5>}mA!r3%kL=rwE~97Iq(#~*LH8;*{Ivb&^ zthFm2tg2g9BU)xW=K??%V1-a^Q2%GTle*gZH>qc9;@o6qqQrW4{%F+qPJhei-7m-E zXr@p^g?`F$p7Y*?y*iH^gJ*Qx0`cTt1yO7(?$|Q@Wu0V}+14{9C-FG*%}1}mPV(M{ zJ$cT}p-(UjW`{dpMay(r9As&?ew z3h_P4mu{Z^=~X&iZ|{BC^aXX=k9OYfY2D7_#;xlXY~F8P)^7I7^ac3pJ^t}yaNIBD zgr4V_TK0P_zvku~lfrD(`CxJi{LUVs7Z^R8cm10|wFqQ<2 zDUe9diJ8JI4?sKVx-6*=G9hidM2-=W4b>Eej4^G(01BVN+@2_~9EJ)*#+V_y4@NR; za4S85LsMZCjkSgq+*nH>cCZDS>a0zmTjL>Q;abfu77se4^#w%r-jYyuxnqEKEx@yu z4I_GR;m_YC0|{gjHb|*HibL!eg|FHv$I77piCteq~&PbcKp(TQv$R|;P|?l z;D^l%#R)l?Nh2$c&D!5u{r(d8e*&zG8E_WVAx>-YC>Pw-`uoDz8S;j9GcF%8^|wwv z&OqDW;`zdyg~S=EzV4t~E$a1Lps6*N5FyL*AFOCboUCVy;X(ESQk;M4Xv{xcYyz^b zqt6-XS>%Cs0e9d%z>x`gGE@vX+c`1#5@!C;WkFGVHBe2pgd0T?ooPDX-Ern|r_A(X z-CwIXu_4&3I;Fx^L`n`wx<{2+8!)6jgfG8o10!6kI69y(1fsY zY5y=OydOStLuhRSNd+YWmLIzm2^_s>ytpwel*MQELom|GG#d?bqVZ#+5Rxi*_Wet$ zr-RklP;0e6%sUee-&A>txMU9@{9SA}HNz}4izWy@Sr(~L!Bnx1R52Jrh8`(QHMEd38QZL_t-gUwl_SF4C>dRy010%cAS>{h<4!`YSdbT6Y%Ae7G-p$F&BaEw z0ADK$D8(n-f&xRqWrT^bBFZMew-!WVr(GduYQ@aJUsSGbFs9rsdLC(-1Vx(`0kBm;V&z_(J7OMmiq6dgK0RjfX%0;T9p1~d# zB;ECn?*spYV7u!qm(Lr@$g-Gr=2DLpq(Mg3A z*^^;kx3VumizDxu7&7h$= zRDu6z8huw?tZ;GCAdqMl*(vA&tBRCSJ`oxwGJYEko7i|IN`26b`fa7V110^TdU6|T zz03mjuJddj1b!?}fg;j4D%9N$4_{qC>NEni$CvATI#Me>mHpb8H9)zlGxXKdERFQ~ z#m!&)Qns+1VeLt0Xf2a)uj-PJKN&P@G@?xmmg*QWLLsVb*6&n5Hh-|pmH0lvmNlhM zsUPe7y(p+(=MnVl;lub{>Z0r1DC8EV=FA)H8m1O}SH%MgY-foyKg1X?rSy+dS;5>P;4&v0f{G!}({QZ}8s?1N^{O%=Ia3eWRbVbYR?= z=Xq^qFGOQ6Ee@sP0%u+i7$b~8p&qruvuI5&Fw47)Iz`Wx6=H>27*xxg-GX8? znl7WM4x5)mE7PC3Dndh&OTaMkNuJ)tbUOi7V#K3U*7GV5>%oz1IjV_o8@k=Jy4{(X zYhFvvk4=v)Zf=knIkU!@yZ#0+1`VFUO}=r#~1`kC|*= z9Id^?BiqZ0L{2u^N`89-KPkiSVN&vD=ME+GR$JQ0OVi`u#~v1zuY~0Zl>QOUVfI=> z;Bb%ru?QZ;*Oft8ix=(az+kKH%hzSuG;o=>0X1<1Um;JDG}FvV#hjJ%PPWU8hfN4e zPZ5XdTgy0p-U?^(xo~gM0u9+>fmWU81c4PNBD$^?b}bs)*BYQQ0cz975vyi|Cy|-! zub=C{7mHngbHUydX%B`A#1OVZUjEa>yVS#q3Tg~GRKndVG3lsWTB)bBKbd6N7x)qA zmtz*`txy1{id5+=Nd@?Furs0B8UbOMLKs+hl;WSb5OEsu97ZF_+i1k`T_!Qa2rTDP zhr0ry?QJVVNp^hwk{vDq(AOWFP|?lBVEVt;Tc4mVL(yuM`)RLvB!bgNqAf>2*_bXZ z(Qexj5=C=#?og6($SjT1c|=6Td062U39(7G@>I>rWKvG(Qd)A%=DD4@k)2s$|jWWFi`PH4%iZO9uuhj zVreTSYpG>>%3HjZPX_K0rF($JsP#vY@`bf!Y61eHW=3RO;~p83fAGi@V}~9GH9$&c z97`%`CXgk|4z(Q`W)ML%k|e{=hKs}aC$PB4hs=5+(08+BE)n{&6+tdqKrce%*I==& z3JDig(#B)abVKv9f|nD`TbY+4(lkM$1#Az)80#}f)F zLoWg>b5!IO=OB%FZ<0haP#8IdygbD%QDyk}4iLflQOTc?M?f!ADFKb-q^ZHvsf$4} zattkVkCaDm%)u*ZJ+C8bR^HqZ77P~uub?x2)3oqlhh+&W(nB44zT80{6B5p)*bRl4 z9KDbuSiFoELKS$tpgci{zQ~`R@NPrwUegth*v-7ydGe~b8|58F*9Z}IDT)c9g3MzZ zye;pjXYKK)O`6$KIyXJBDBlcQOiezYbWX=W;b-UBYS+Qy9X2ztb=jD<+f2lKjK9vRoGdUSi}2SMh~490hf=f=fpM)VH8|g;s4$rIh;c@1klcy@07GW_=|*0MNt18N3k4LVz;O4xRLqVJT*HJ3jNmN6)|_|H&V7TghLrl zs2NyjueS~Bh*@w%Oo!E8SQRZAYxCrV43AYJZ<68EA<#n!A z^iEwN^-M3eB>mxrzjO8jq>SCLZy!>soy0pE2H1W)W*KBriy+o~)F>gzP{sT*)pwl5ll_-9;LbOZ;I);?CzJ4>2J+2E

    b`mYv)7rou<66E$`ee9EjM-Ww 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

    (|2Ko?Oi3!bp&wR^+M%*Y7BtkR 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

    sAw!Wxztj)c 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

    %8exwGA<15~Xcj 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

  1. %4U8-}q*Pte|F21o`Rm7^P%hG|Fzo1=HI1Ro)o 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ν9Q(2Kh%1^T^btPtHroGrbJ`+RqisTNQlYD#XjcR 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

    lhsLB=zBq4Y{BY-%y$G<^uJ~IN-p%`5!NNZ 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

      vMdEJykYah#o>kPa5K;;v`AmPf@ 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

      Cw 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%0D-AyDR)y=LNTyoC_;w~G`XNF=gk=* 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 ZcMHuJOKS0n?5|>w>_&#S_PgyVZ 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 z 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 Bud~OcZOv%HM(lcC(7zyr} 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�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ν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

      &&+k)QAD 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

      t|#fw36$;VK2%H{xa)rx<0SuCxLNku;qdG8 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�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�Ax-MrZKojKULxESnIqN&`D}Mb* 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

      Q5GkU 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 pR4zzI6l~9tJ0h5) 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

      BMs3R1{z8e5zK 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 z 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 Xx#0@2L0#xWp)q)3WG((**|Pl)RKWKS literal 0 HcmV?d00001 diff --git a/Havana-Web/src/main/java/org/alexdev/http/HavanaWeb.java b/Havana-Web/src/main/java/org/alexdev/http/HavanaWeb.java new file mode 100644 index 0000000..1030421 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/HavanaWeb.java @@ -0,0 +1,133 @@ +package org.alexdev.http; + +import com.google.gson.Gson; +import io.netty.util.ResourceLeakDetector; +import org.alexdev.duckhttpd.routes.RouteManager; +import org.alexdev.duckhttpd.server.WebServer; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.LogDao; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.log.Log; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.alexdev.http.game.news.NewsManager; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.server.ServerResponses; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.template.TwigTemplate; +import org.alexdev.http.util.config.WebLoggingConfiguration; +import org.alexdev.http.util.config.WebServerConfigWriter; +import org.alexdev.http.util.config.WebSettingsConfigWriter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +public class HavanaWeb { + private static Logger logger = LoggerFactory.getLogger(HavanaWeb.class); + + private static final Gson gson = new Gson(); + private static ScheduledExecutorService scheduler; + private static ExecutorService executor; + + public static void main(String[] args) throws Exception { + WebLoggingConfiguration.checkLoggingConfig(); + ServerConfiguration.setWriter(new WebServerConfigWriter()); + ServerConfiguration.load("webserver-config.ini"); + + logger.info("HavanaWeb by Quackster"); + logger.info("Loading configuration.."); + + ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.ADVANCED); + + Settings settings = Settings.getInstance(); + settings.setSiteDirectory(ServerConfiguration.getString("site.directory")); + settings.setDefaultResponses(new ServerResponses()); + settings.setTemplateBase(TwigTemplate.class); + settings.setSaveSessions(true); + + // Spammers + /*Settings.getInstance().getBlockIpv4().add("192.190"); + Settings.getInstance().getBlockIpv4().add("79.108"); + Settings.getInstance().getBlockIpv4().add("194.59"); + Settings.getInstance().getBlockIpv4().add("185.189"); + Settings.getInstance().getBlockIpv4().add("212.8"); + Settings.getInstance().getBlockIpv4().add("104.250"); + */ + + if (!Storage.connect()) { + Log.getErrorLogger().error("Could not connect to MySQL"); + return; + } + + GameConfiguration.getInstance(new WebSettingsConfigWriter()); + + /*byte[] pw = "lol123".getBytes(StandardCharsets.UTF_8); + byte[] outputHash = new byte[PwHash.STR_BYTES]; + PwHash.Native pwHash = (PwHash.Native) PlayerDao.LIB_SODIUM; + boolean success = pwHash.cryptoPwHashStr( + outputHash, + pw, + pw.length, + PwHash.OPSLIMIT_INTERACTIVE, + PwHash.MEMLIMIT_INTERACTIVE + ); + System.out.println(new String(outputHash));*/ + + WordfilterManager.getInstance(); + StickerManager.getInstance(); + ItemManager.getInstance(); + NewsManager.getInstance(); + + executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + scheduler = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors()); + scheduler.scheduleWithFixedDelay(new Watchdog(), 1, 1, TimeUnit.SECONDS); + + logger.info("Registering web routes.."); + //logger.info(EmailUtil.renderRegistered("Alex", "01/01/1970", UUID.randomUUID().toString())); + + Routes.register(); + logger.info("Registered " + RouteManager.getRoutes().size() + " route(s)!"); + + int port = ServerConfiguration.getInteger("bind.port"); + logger.info("Starting http service on port " + port); + + WebServer instance = new WebServer(port); + instance.start(); + } + + /** + * Boots up JTwig engine. + */ + /*private static void setupTemplateSystem() { + var template = JtwigTemplate.inlineTemplate("test"); + var model = JtwigModel.newModel(); + model.with("test", "HavanaWeb"); + template.render(model); + }*/ + + public static ExecutorService getExecutor() { + return executor; + } + + public static Gson getGson() { + return gson; + } + + public static long hashSpriteName(String name) { + name = name.toUpperCase(); + long hash = 0; + for (int index = 0; index < name.length(); index++) { + hash = hash * 61 + name.charAt(index) - 32; + hash = hash + (hash >> 56) & 0xFFFFFFFFFFFFFFL; + } + + return hash; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/Routes.java b/Havana-Web/src/main/java/org/alexdev/http/Routes.java new file mode 100644 index 0000000..e8b981e --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/Routes.java @@ -0,0 +1,321 @@ +package org.alexdev.http; + +import org.alexdev.duckhttpd.routes.RouteManager; +import org.alexdev.http.controllers.BaseController; +import org.alexdev.http.controllers.api.*; +import org.alexdev.http.controllers.groups.*; +import org.alexdev.http.controllers.groups.discussions.DiscussionActionsController; +import org.alexdev.http.controllers.groups.discussions.DiscussionController; +import org.alexdev.http.controllers.groups.discussions.DiscussionPreviewController; +import org.alexdev.http.controllers.habblet.*; +import org.alexdev.http.controllers.homes.HomesController; +import org.alexdev.http.controllers.homes.NoteEditorController; +import org.alexdev.http.controllers.homes.WidgetController; +import org.alexdev.http.controllers.homes.store.StoreController; +import org.alexdev.http.controllers.homes.widgets.*; +import org.alexdev.http.controllers.housekeeping.*; +import org.alexdev.http.controllers.site.*; + +public class Routes { + public static String HOUSEKEEPING_PATH = "allseeingeye/hk"; + + public static void register() { + RouteManager.addRoute(new String[] { "/", "/index", "/home"}, HomepageController::homepage); + RouteManager.addRoute("/maintenance", HomepageController::maintenance); + + RouteManager.addRoute("", new BaseController()); + + // Site + RouteManager.addRoute("/me", AccountController::me); + RouteManager.addRoute("/welcome", AccountController::welcome); + + // News + RouteManager.addRoute("/articles", NewsController::articles); + RouteManager.addRoute("/articles/archive", NewsController::articles); + RouteManager.addRoute("/articles/category/*", NewsController::articles); + RouteManager.addRoute("/articles/*-*", NewsController::articles); + + // Events + RouteManager.addRoute("/community/events", NewsController::events); + RouteManager.addRoute("/community/events/archive", NewsController::events); + RouteManager.addRoute("/community/events/category/*", NewsController::events); + RouteManager.addRoute("/community/events/*-*", NewsController::events); + //RouteManager.addRoute("/events/steampunk", CustomEventsController::steampunk); + + // Fansites + RouteManager.addRoute("/community/fansites", NewsController::fansites); + RouteManager.addRoute("/community/fansites/archive", NewsController::fansites); + RouteManager.addRoute("/community/fansites/category/*", NewsController::events); + RouteManager.addRoute("/community/fansites/*-*", NewsController::fansites); + + // Site + RouteManager.addRoute("/community", CommunityController::community); + RouteManager.addRoute("/games", GamesController::games); + RouteManager.addRoute("/games/score_all_time", GamesController::games_all_time); + RouteManager.addRoute("/habblet/personalhighscores", GamesController::personalhighscores); + RouteManager.addRoute("/credits", CreditsController::credits); + RouteManager.addRoute("/credits/history", CreditsController::transactions); + RouteManager.addRoute("/credits/pixels", SiteController::pixels); + RouteManager.addRoute("/credits/club", ClubController::club); + RouteManager.addRoute("/credits/collectables", CollectablesController::collectables); + RouteManager.addRoute("/credits/club/tryout", ClubController::clubTryout); + RouteManager.addRoute("/tag", TagController::tag); + RouteManager.addRoute("/tag/*", TagController::search); + //RouteManager.addRoute("/help/install_shockwave", SiteController::install_shockwave); + //RouteManager.addRoute("/help/shockwave_app", SiteController::shockwave_app); + RouteManager.addRoute("/help/*", FaqController::faq); + + // Client + RouteManager.addRoute("/components/updateHabboCount", ClientController::updateHabboCount); + RouteManager.addRoute("/client", ClientController::client); + RouteManager.addRoute("/clientlog/update", ClientController::blank); + RouteManager.addRoute("/cacheCheck", ClientController::blank); + //RouteManager.addRoute("/beta_client", ClientController::betaClient); // R34 client: deprecated + RouteManager.addRoute("/client_popup/install_shockwave", ClientController::clientInstallShockwave); + RouteManager.addRoute("/client_error", ClientController::client_error); + RouteManager.addRoute("/client_connection_failed", ClientController::client_connection_failed); + + // Account + RouteManager.addRoute("/account/banned", AccountController::banned); + RouteManager.addRoute("/account/logout", AccountController::logout); + RouteManager.addRoute("/account/login", AccountController::login_popup); + RouteManager.addRoute("/account/password/forgot", RecoveryController::forgot); + RouteManager.addRoute("/account/password/recovery", RecoveryController::recovery); + RouteManager.addRoute("/account/activate", RecoveryController::activate); + RouteManager.addRoute("/login_popup", AccountController::login_popup); + RouteManager.addRoute("/account/submit", AccountController::submit); + RouteManager.addRoute("/security_check", AccountController::securityCheck); + RouteManager.addRoute("/account/reauthenticate", AccountController::reauthenticate); + + // Profile + RouteManager.addRoute("/profile", ProfileController::profile); + //RouteManager.addRoute("/profile/flash", ProfileController::profile_flash); + RouteManager.addRoute("/profile/verify", ProfileController::verify); + RouteManager.addRoute("/profile/send_email", ProfileController::send_email); + + RouteManager.addRoute("/profile/wardrobeStore", ProfileController::wardrobeStore); + RouteManager.addRoute("/profile/passwordupdate", ProfileController::passwordupdate); + RouteManager.addRoute("/profile/emailupdate", ProfileController::emailupdate); + RouteManager.addRoute("/profile/characterupdate", ProfileController::characterupdate); + RouteManager.addRoute("/profile/profile.action", ProfileController::action); + RouteManager.addRoute("/profile/profileupdate", ProfileController::profileupdate); + RouteManager.addRoute("/profile/securitysettingupdate", ProfileController::securitysettingupdate); + RouteManager.addRoute("/club", ProfileController::club); + + RouteManager.addRoute("/friendmanagement/ajax/editCategory", FriendManagementController::editCategory); + RouteManager.addRoute("/friendmanagement/ajax/createcategory", FriendManagementController::createcategory); + RouteManager.addRoute("/friendmanagement/ajax/deletecategory", FriendManagementController::deletecategory); + RouteManager.addRoute("/friendmanagement/ajax/viewcategory", FriendManagementController::viewCategory); + RouteManager.addRoute("/friendmanagement/ajax/updatecategoryoptions", FriendManagementController::updateCategoryOptions); + RouteManager.addRoute("/friendmanagement/ajax/movefriends", FriendManagementController::movefriends); + RouteManager.addRoute("/friendmanagement/ajax/deletefriends", FriendManagementController::deletefriends); + + // Register + RouteManager.addRoute("/register", RegisterController::register); + RouteManager.addRoute("/register/cancel", RegisterController::registerCancelled); + RouteManager.addRoute("/captcha.jpg", RegisterController::captcha); + + // Habblets + RouteManager.addRoute("/habblet/ajax/namecheck", NameCheckController::namecheck); + RouteManager.addRoute("/habblet/ajax/updatemotto", UpdateMottoController::updatemotto); + RouteManager.addRoute("/habblet/ajax/roomselectionCreate", RoomSelectionController::create); + RouteManager.addRoute("/habblet/ajax/roomselectionConfirm", RoomSelectionController::confirm); + RouteManager.addRoute("/habblet/ajax/roomselectionHide", RoomSelectionController::hide); + RouteManager.addRoute("/components/roomNavigation", NavigationComponent::navigation); + RouteManager.addRoute("/habblet/proxy", ProxyHabblet::moreInfo); + RouteManager.addRoute("/habboclub/habboclub_confirm", HabboClubHabblet::confirm); + RouteManager.addRoute("/habboclub/habboclub_subscribe", HabboClubHabblet::subscribe); + RouteManager.addRoute("/habboclub/habboclub_reminder_remove", HabboClubHabblet::reminderRemove); + RouteManager.addRoute("/habblet/ajax/habboclub_gift", ClubController::habboClubGift); + RouteManager.addRoute("/habblet/ajax/habboclub_enddate", HabboClubHabblet::enddate); + RouteManager.addRoute("/myhabbo/tag/add", TagController::add); + RouteManager.addRoute("/myhabbo/tag/remove", TagController::remove); + RouteManager.addRoute("/habblet/ajax/redeemvoucher", VoucherController::redeemVoucher); + RouteManager.addRoute("/remove_all_tags", TagController::remove_all_tags); + RouteManager.addRoute("/habblet/ajax/tagsearch", TagController::tagsearch); + RouteManager.addRoute("/habblet/ajax/tagfight", TagController::tagfight); + RouteManager.addRoute("/habblet/mytagslist", TagController::mytaglist); + RouteManager.addRoute("/habblet/ajax/tagmatch", TagController::tagmatch); + RouteManager.addRoute("/habblet/ajax/tagmatch", TagController::tagmatch); + RouteManager.addRoute("/habblet/ajax/collectiblesConfirm", CollectablesController::confirm); + RouteManager.addRoute("/habblet/ajax/collectiblesPurchase", CollectablesController::purchase); + RouteManager.addRoute("/habblet/ajax/load_events", EventController::loadEvents); + RouteManager.addRoute("/habblet/ajax/mgmgetinvitelink", InviteController::inviteLink); + RouteManager.addRoute("/habblet/habbosearchcontent", InviteController::searchContent); + RouteManager.addRoute("/habblet/ajax/confirmAddFriend", InviteController::confirmAddFriend); + RouteManager.addRoute("/habblet/ajax/addFriend", InviteController::addFriend); + RouteManager.addRoute("/myhabbo/avatarlist/avatarinfo", FriendsWidgetController::avatarinfo); + RouteManager.addRoute("/myhabbo/friends/add", InviteController::add); + RouteManager.addRoute("/habblet/cproxy", ProxyHabblet::minimail); + RouteManager.addRoute("/habblet/ajax/removeFeedItem", FeedController::removeFeedItem); + RouteManager.addRoute("/habblet/ajax/nextgift", FeedController::nextgift); + RouteManager.addRoute("/habblet/ajax/giftqueueHide", FeedController::giftqueueHide); + RouteManager.addRoute("/habblet/ajax/clear_hand", ProxyHabblet::clearhand); + RouteManager.addRoute("/habblet/ajax/token_generate", ProxyHabblet::token_generate); + RouteManager.addRoute("/habblet/ajax/preview_news_article", HousekeepingNewsController::preview_news_article); + + // Groups + RouteManager.addRoute("/groups/*/id", GroupController::viewGroup); + RouteManager.addRoute("/groups/*", GroupController::viewGroup); + RouteManager.addRoute("/grouppurchase/group_create_form", GroupHabbletController::groupCreateForm); + RouteManager.addRoute("/grouppurchase/purchase_confirmation", GroupHabbletController::purchaseConfirmation); + RouteManager.addRoute("/grouppurchase/purchase_ajax", GroupHabbletController::purchaseAjax); + RouteManager.addRoute("/groups/actions/startEditingSession/*", GroupController::startEditingSession); + RouteManager.addRoute("/groups/actions/cancelEditingSession", GroupController::cancelEditingSession); + RouteManager.addRoute("/groups/actions/group_settings", GroupHabbletController::groupSettings); + RouteManager.addRoute("/groups/actions/saveEditingSession", GroupController::saveEditingSession); + RouteManager.addRoute("/groups/actions/update_group_settings", GroupHabbletController::updateGroupSettings); + RouteManager.addRoute("/groups/actions/check_group_url", GroupHabbletController::checkGroupUrl); + RouteManager.addRoute("/groups/actions/show_badge_editor", GroupHabbletController::showBadgeEditor); + RouteManager.addRoute("/groups/actions/update_group_badge", GroupHabbletController::updateGroupBadge); + RouteManager.addRoute("/groups/actions/confirm_delete_group", GroupHabbletController::confirmDeleteGroup); + RouteManager.addRoute("/groups/actions/delete_group", GroupHabbletController::deleteGroup); + RouteManager.addRoute("/myhabbo/tag/addgrouptag", GroupTagController::addGroupTag); + RouteManager.addRoute("/myhabbo/tag/listgrouptags", GroupTagController::listGroupTag); + RouteManager.addRoute("/myhabbo/tag/removegrouptag", GroupTagController::removeGroupTag); + RouteManager.addRoute("/groups/actions/join", GroupMemberController::join); + RouteManager.addRoute("/groups/actions/confirm_leave", GroupMemberController::confirmLeave); + RouteManager.addRoute("/groups/actions/leave", GroupMemberController::leave); + RouteManager.addRoute("/myhabbo/groups/memberlist", GroupMemberController::memberlist); + RouteManager.addRoute("/myhabbo/groups/batch/confirm_revoke_rights", GroupMemberController::confirmRevokeRights); + RouteManager.addRoute("/myhabbo/groups/batch/revoke_rights", GroupMemberController::revokeRights); + RouteManager.addRoute("/myhabbo/groups/batch/confirm_give_rights", GroupMemberController::confirmGiveRights); + RouteManager.addRoute("/myhabbo/groups/batch/give_rights", GroupMemberController::giveRights); + RouteManager.addRoute("/myhabbo/groups/batch/confirm_remove", GroupMemberController::confirmRemove); + RouteManager.addRoute("/myhabbo/groups/batch/remove", GroupMemberController::remove); + RouteManager.addRoute("/myhabbo/groups/batch/confirm_accept", GroupMemberController::confirmAccept); + RouteManager.addRoute("/myhabbo/groups/batch/accept", GroupMemberController::accept); + RouteManager.addRoute("/myhabbo/groups/batch/confirm_decline", GroupMemberController::confirmDecline); + RouteManager.addRoute("/myhabbo/groups/batch/decline", GroupMemberController::decline); + RouteManager.addRoute("/myhabbo/avatarlist/membersearchpaging", MemberWidgetController::membersearchpaging); + RouteManager.addRoute("/groups/actions/confirm_select_favorite", GroupFavouriteController::confirmselectfavourite); + RouteManager.addRoute("/groups/actions/select_favorite", GroupFavouriteController::selectfavourite); + RouteManager.addRoute("/groups/actions/confirm_deselect_favorite", GroupFavouriteController::confirmdeselectfavourite); + RouteManager.addRoute("/groups/actions/deselect_favorite", GroupFavouriteController::deselectfavourite); + + // Group discussions + RouteManager.addRoute("/groups/*/id/discussions/page/*", GroupDiscussionsController::viewDiscussionsPage); + RouteManager.addRoute("/groups/*/discussions/page/*", GroupDiscussionsController::viewDiscussionsPage); + RouteManager.addRoute("/groups/*/id/discussions", GroupDiscussionsController::viewDiscussions); + RouteManager.addRoute("/groups/*/discussions", GroupDiscussionsController::viewDiscussions); + RouteManager.addRoute("/groups/*/id/discussions/*/id", DiscussionController::viewDiscussion); + RouteManager.addRoute("/groups/*/discussions/*/id", DiscussionController::viewDiscussion); + RouteManager.addRoute("/groups/*/id/discussions/*/id/page/*", DiscussionController::viewDiscussion); + RouteManager.addRoute("/groups/*/discussions/*/id/page/*", DiscussionController::viewDiscussion); + RouteManager.addRoute("/discussions/actions/pingsession", DiscussionActionsController::pingsession); + RouteManager.addRoute("/discussions/actions/newtopic", DiscussionActionsController::newtopic); + RouteManager.addRoute("/discussions/actions/savetopic", DiscussionActionsController::savetopic); + RouteManager.addRoute("/discussions/actions/previewtopic", DiscussionPreviewController::previewtopic); + RouteManager.addRoute("/discussions/actions/previewpost", DiscussionPreviewController::previewpost); + RouteManager.addRoute("/discussions/actions/opentopicsettings", DiscussionActionsController::opentopicsettings); + RouteManager.addRoute("/discussions/actions/confirm_delete_topic", DiscussionActionsController::confirm_delete_topic); + RouteManager.addRoute("/discussions/actions/deletetopic", DiscussionActionsController::deletetopic); + RouteManager.addRoute("/discussions/actions/savetopicsettings", DiscussionActionsController::savetopicsettings); + RouteManager.addRoute("/discussions/actions/updatepost", DiscussionActionsController::updatepost); + RouteManager.addRoute("/discussions/actions/deletepost", DiscussionActionsController::deletepost); + RouteManager.addRoute("/discussions/actions/savepost", DiscussionActionsController::savepost); + + // Store + RouteManager.addRoute("/myhabbo/store/main", StoreController::main); + RouteManager.addRoute("/myhabbo/store/items", StoreController::items); + RouteManager.addRoute("/myhabbo/store/preview", StoreController::preview); + RouteManager.addRoute("/myhabbo/store/purchase_confirm", StoreController::purchaseConfirm); + RouteManager.addRoute("/myhabbo/store/background_warning", StoreController::backgroundWarning); + RouteManager.addRoute("/myhabbo/store/purchase_stickers", StoreController::purchaseStickers); + RouteManager.addRoute("/myhabbo/store/purchase_backgrounds", StoreController::purchaseBackgrounds); + RouteManager.addRoute("/myhabbo/store/purchase_stickie_notes", StoreController::purchaseStickieNotes); + RouteManager.addRoute("/myhabbo/sticker/place_sticker", WidgetController::placeSticker); + RouteManager.addRoute("/myhabbo/sticker/remove_sticker", WidgetController::removeSticker); + RouteManager.addRoute("/myhabbo/widget/add", WidgetController::placeWidget); + RouteManager.addRoute("/myhabbo/widget/delete", WidgetController::removeWidget); + RouteManager.addRoute("/myhabbo/save", HomesController::save); + + // Homes + RouteManager.addRoute("/home/*", HomesController::home); + RouteManager.addRoute("/home/*/id", HomesController::home); + RouteManager.addRoute("/myhabbo/widget/edit", WidgetController::editWidget); + RouteManager.addRoute("/myhabbo/store/inventory", HomesController::inventory); + RouteManager.addRoute("/myhabbo/store/inventory_items", HomesController::inventoryItems); + RouteManager.addRoute("/myhabbo/store/inventory_preview", HomesController::inventoryPreview); + RouteManager.addRoute("/myhabbo/tag/list", HomesController::tagList); + RouteManager.addRoute("/myhabbo/noteeditor/editor", NoteEditorController::noteEditor); + RouteManager.addRoute("/myhabbo/noteeditor/preview", NoteEditorController::notePreview); + RouteManager.addRoute("/myhabbo/linktool/search", NoteEditorController::search); + RouteManager.addRoute("/myhabbo/noteeditor/place", NoteEditorController::place); + RouteManager.addRoute("/myhabbo/stickie/edit", NoteEditorController::stickieEdit); + RouteManager.addRoute("/myhabbo/stickie/delete", NoteEditorController::stickieDelete); + RouteManager.addRoute("/myhabbo/startSession/*", HomesController::startEditingSession); + RouteManager.addRoute("/myhabbo/cancel/*", HomesController::cancelEditingSession); + RouteManager.addRoute("/myhabbo/stickie/delete", NoteEditorController::stickieDelete); + + // Widgets + RouteManager.addRoute("/myhabbo/rating/rate", RateController::rate); + RouteManager.addRoute("/myhabbo/rating/reset_ratings", RateController::resetRating); + RouteManager.addRoute("/myhabbo/badgelist/badgepaging", BadgesController::badgepaging); + RouteManager.addRoute("/myhabbo/avatarlist/friendsearchpaging", FriendsWidgetController::friendsearchpaging); + RouteManager.addRoute("/myhabbo/groups/groupinfo", GroupController::groupinfo); + RouteManager.addRoute("/myhabbo/guestbook/preview", GuestbookController::preview); + RouteManager.addRoute("/myhabbo/guestbook/add", GuestbookController::add); + RouteManager.addRoute("/myhabbo/guestbook/remove", GuestbookController::remove); + RouteManager.addRoute("/myhabbo/guestbook/configure", GuestbookController::configure); + RouteManager.addRoute("/myhabbo/traxplayer/select_song", TraxController::selectSong); + RouteManager.addRoute("/trax/song/*", TraxController::getSong); + + // Minimail + RouteManager.addRoute("/minimail/loadMessages", MinimailController::loadMessages); + RouteManager.addRoute("/minimail/recipients", MinimailController::recipients); + RouteManager.addRoute("/minimail/preview", MinimailController::preview); + RouteManager.addRoute("/minimail/sendMessage", MinimailController::sendMessage); + RouteManager.addRoute("/minimail/loadMessage", MinimailController::loadMessage); + RouteManager.addRoute("/minimail/deleteMessage", MinimailController::deleteMessage); + RouteManager.addRoute("/minimail/undeleteMessage", MinimailController::undeleteMessage); + RouteManager.addRoute("/minimail/emptyTrash", MinimailController::emptyTrash); + + // Quick menu + RouteManager.addRoute("/quickmenu/groups", QuickmenuController::groups); + RouteManager.addRoute("/quickmenu/rooms", QuickmenuController::rooms); + RouteManager.addRoute("/quickmenu/friends_all", QuickmenuController::friends); + + // API + RouteManager.addRoute("/api/advertisement/get_img", AdvertisementController::getImg); + RouteManager.addRoute("/api/advertisement/get_url", AdvertisementController::getUrl); + RouteManager.addRoute("/photos/my_photos", PhotosController::viewphotos); + RouteManager.addRoute("/api/verify/get/*", VerifyController::get); + RouteManager.addRoute("/api/verify/clear/*", VerifyController::clear); + + // Housekeeping + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "", HousekeepingController::dashboard); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/", HousekeepingController::dashboard); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/login", HousekeepingController::login); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/api/ban", HousekeepingCommandsController::ban); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/logout", HousekeepingController::logout); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/transaction/lookup", HousekeepingTransactionsController::search); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/transaction/track_item", HousekeepingTransactionsController::item_lookup); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/users/search", HousekeepingUsersController::search); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/users/create", HousekeepingUsersController::create); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/users/edit", HousekeepingUsersController::edit); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/users/imitate/*", HousekeepingUsersController::imitate); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls", HousekeepingInfobusController::polls); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/create", HousekeepingInfobusController::create_polls); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/delete", HousekeepingInfobusController::delete); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/edit", HousekeepingInfobusController::edit); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/view_results", HousekeepingInfobusController::view_results); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/clear_results", HousekeepingInfobusController::clear_results); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/send_poll", HousekeepingInfobusController::send_poll); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/close_event", HousekeepingInfobusController::close_event); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/infobus_polls/door_status", HousekeepingInfobusController::door_status); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/articles", HousekeepingNewsController::articles); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/articles/create", HousekeepingNewsController::create); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/articles/delete", HousekeepingNewsController::delete); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/articles/edit", HousekeepingNewsController::edit); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/configurations", HousekeepingConfigController::configurations); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/bans", HousekeepingBansController::bans); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_ads", HousekeepingAdsController::roomads); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_ads/delete", HousekeepingAdsController::delete); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_ads/create", HousekeepingAdsController::create); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_badges", HousekeepingRoomBadgesController::badges); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_badges/delete", HousekeepingRoomBadgesController::delete); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/room_badges/create", HousekeepingRoomBadgesController::create); + RouteManager.addRoute("/" + HOUSEKEEPING_PATH + "/catalogue/edit_frontpage", HousekeepingCatalogueFrontpageController::edit); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/BaseController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/BaseController.java new file mode 100644 index 0000000..00c01eb --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/BaseController.java @@ -0,0 +1,123 @@ +package org.alexdev.http.controllers; + +import io.netty.handler.codec.http.HttpHeaderNames; +import org.alexdev.duckhttpd.routes.Route; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.Routes; +import org.alexdev.http.util.SessionUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class BaseController implements Route { + private static Logger logger = LoggerFactory.getLogger(BaseController.class); + + @Override + public void handleRoute(WebConnection webConnection) throws Exception { + /*if (!webConnection.request().headers().isEmpty()) { + for (String name: webConnection.request().headers().names()) { + for (String value: webConnection.request().headers().getAll(name)) { + System.out.println("HEADER: " + name + " = " + value); + } + } + System.out.println(); + }*/ + + if (webConnection.isRequestHandled()) { + if (GameConfiguration.getInstance().getBoolean("maintenance") && !webConnection.getRouteRequest().startsWith("/api")) { + if (!webConnection.getRouteRequest().startsWith("/maintenance") && !webConnection.getRouteRequest().startsWith("/" + Routes.HOUSEKEEPING_PATH)) { + webConnection.redirect("/maintenance"); + return; + } + } + } + + if (!webConnection.getRouteRequest().startsWith("/api")) { + if (!webConnection.request().headers().isEmpty()) { + String host = webConnection.request().headers().get(HttpHeaderNames.HOST); + + if (webConnection.request().headers().contains("X-Forwarded-Proto")) { + String request = webConnection.request().headers().get("X-Forwarded-Proto"); + + if (host != null && request.equalsIgnoreCase("http")) { + String targetUrl = "https://" + host; + String requestUri = webConnection.request().uri(); + + if (!requestUri.startsWith("/")) { + targetUrl += "/"; + } + + targetUrl += requestUri; + + webConnection.movedpermanently(targetUrl); + return; + } + } + } + } + + if (webConnection.isRequestHandled()) { + /*if (!(webConnection.getRouteRequest().equals("/register") + || webConnection.getRouteRequest().equals("/client") + || webConnection.getRouteRequest().equals("/login_popup") + || webConnection.getRouteRequest().startsWith("/clientlog") + || webConnection.getRouteRequest().equals("/client") + || webConnection.getRouteRequest().equals("/security_check") + || webConnection.getRouteRequest().startsWith("/account/") + || webConnection.getRouteRequest().startsWith("/api/") + || webConnection.getRouteRequest().startsWith("/habblet/") + || webConnection.getRouteRequest().startsWith("/groups/actions") + || webConnection.getRouteRequest().startsWith("/myhabbo/"))) { + webConnection.session().set("lastBrowsedPage", webConnection.getRouteRequest()); + }*/ + + if (webConnection.session().getBoolean("authenticated")) { + this.handleAuthenticatedRoute(webConnection); + } else { + SessionUtil.checkCookie(webConnection); + } + } + } + + private void handleAuthenticatedRoute(WebConnection webConnection) { + if (webConnection.getRouteRequest().equals("/client")) { + webConnection.session().set("lastRequest", String.valueOf(DateUtil.getCurrentTimeSeconds() + SessionUtil.REAUTHENTICATE_TIME)); + } + + if (webConnection.session().contains("lastRequest")) { + long lastRequest = webConnection.session().getLongOrElse("lastRequest", 0); + + if (DateUtil.getCurrentTimeSeconds() > lastRequest) { + //if (webConnection.cookies().exists(SessionUtil.REMEMEBER_TOKEN_NAME)) { + webConnection.session().set("clientAuthenticate", true); + //} + } + } else { + webConnection.session().set("clientAuthenticate", false); + + } + + /*StringBuilder postRequest = new StringBuilder("("); + StringBuilder getRequest = new StringBuilder(); + + for (var entry : webConnection.post().getValues().entrySet()) { + postRequest.append(entry.getKey()); + postRequest.append(" = "); + postRequest.append(entry.getValue()); + postRequest.append(", "); + } + + for (var entry : webConnection.get().getValues().entrySet()) { + getRequest.append(entry.getKey()); + getRequest.append(" = "); + getRequest.append(entry.getValue()); + getRequest.append(", "); + } + + getRequest.append(")"); + postRequest.append(")"); + + logger.info("Request: " + webConnection.getUriRequest() + " from " + webConnection.getIpAddress() + " with payload POST: " + postRequest + ", GET: " + getRequest);*/ + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/api/AdvertisementController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/AdvertisementController.java new file mode 100644 index 0000000..c0b5975 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/AdvertisementController.java @@ -0,0 +1,39 @@ +package org.alexdev.http.controllers.api; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.ads.Advertisement; + +public class AdvertisementController { + public static void getImg(WebConnection webConnection) { + if (!webConnection.get().contains("ad")) { + webConnection.send(""); + return; + } + + Advertisement advertisement = AdManager.getInstance().getAd(webConnection.get().getInt("ad")); + + if (advertisement == null) { + webConnection.send(""); + return; + } + + webConnection.redirect(advertisement.getImage()); + } + + public static void getUrl(WebConnection webConnection) { + if (!webConnection.get().contains("ad")) { + webConnection.send(""); + return; + } + + Advertisement advertisement = AdManager.getInstance().getAd(webConnection.get().getInt("ad")); + + if (advertisement == null) { + webConnection.send(""); + return; + } + + webConnection.redirect(advertisement.getUrl()); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/api/PhotosController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/PhotosController.java new file mode 100644 index 0000000..e74a9ca --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/PhotosController.java @@ -0,0 +1,77 @@ +package org.alexdev.http.controllers.api; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.game.item.Photo; +import org.alexdev.http.dao.CommunityDao; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.photorenderer.PhotoRenderer; +import org.alexdev.photorenderer.RenderOption; +import org.alexdev.photorenderer.palettes.GreyscalePalette; +import org.apache.commons.codec.binary.Base64; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +public class PhotosController { + public static void viewphotos(WebConnection webConnection) throws Exception { + if (!webConnection.session().contains("user.id")) { + webConnection.send("Please sign in"); + return; + } + + PhotoRenderer photoViewer = null; + var photos = CommunityDao.getPhotos(webConnection.session().getInt("user.id")); + + StringBuilder stringBuilder = new StringBuilder(); + + var renderOption = RenderOption.GREYSCALE; + + if (webConnection.get().contains("greyscale")) { + renderOption = RenderOption.GREYSCALE; + } + + if (webConnection.get().contains("sepia")) { + renderOption = RenderOption.SEPIA; + } + + if (renderOption != RenderOption.GREYSCALE) { + stringBuilder.append("

      View images as greyscale? View Greyscale

      "); + } else { + stringBuilder.append("

      View images as original Sepia? View as Sepia

      "); + } + + photoViewer = new PhotoRenderer(GreyscalePalette.getPalette(), renderOption); + + //int i = 1; + for (Photo photo : photos) { + var src = photoViewer.createImage(photo.getData()); + stringBuilder.append(" "); + + /*if (i % 6 == 0) { + stringBuilder.append("
      "); + } + + i++;*/ + } + + /*i = 1; + for (Photo photo : photos) { + PhotoRenderer photoViewer = new PhotoRenderer(); + var src = photoViewer.createImage(photo.getData(), photoViewer.getCachedPalette(), PhotoRenderOption.GREYSCALE); + stringBuilder.append(" "); + + if (i % 6 == 0) { + stringBuilder.append("
      "); + } + + i++; + }*/ + + stringBuilder.append("

      Made by Alex

      "); + webConnection.send(stringBuilder.toString()); + } + + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/api/VerifyController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/VerifyController.java new file mode 100644 index 0000000..fd30a7f --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/api/VerifyController.java @@ -0,0 +1,36 @@ +package org.alexdev.http.controllers.api; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.dao.VerifyDao; + +public class VerifyController { + public static void get(WebConnection webConnection) { + if (webConnection.getMatches().isEmpty() || webConnection.getMatches().get(0).isBlank()) { + webConnection.send("error: INVALID"); + return; + } + + var username = VerifyDao.getName(webConnection.getMatches().get(0)); + + if (username == null) { + webConnection.send("error: INVALID"); + return; + } + + webConnection.send(username); + } + + public static void clear(WebConnection webConnection) { + if (webConnection.getMatches().isEmpty() || webConnection.getMatches().get(0).isBlank()) { + webConnection.send("error: INVALID"); + return; + } + + try { + VerifyDao.clearName(webConnection.getMatches().get(0)); + webConnection.send("SUCCESS"); + } catch (Exception ex) { + webConnection.send("error: INVALID"); + } + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupController.java new file mode 100644 index 0000000..a04a995 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupController.java @@ -0,0 +1,332 @@ +package org.alexdev.http.controllers.groups; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.dao.GroupEditDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; +import org.alexdev.http.util.HomeUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; + +public class GroupController { + public static void viewGroup(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().contains("authenticated")) { + return; + } + + webConnection.session().set("page", "community"); + + String match = webConnection.getMatches().get(0); + + String groupAlias = null; + Group group = null; + + if (StringUtils.isNumeric(match) && webConnection.getRouteRequest().endsWith("/id")) { + group = GroupDao.getGroup(Integer.parseInt(match)); + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (!group.getAlias().isBlank()) { + webConnection.redirect("/groups/" + group.getAlias()); + return; + } + + } else if (!webConnection.getRouteRequest().endsWith("/id")) { + groupAlias = match; + group = GroupDao.getGroupByAlias(groupAlias); + } + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + long sessionTime = -1; + if (webConnection.session().getBoolean("authenticated")) { + int userId = webConnection.session().getInt("user.id"); + sessionTime = GroupEditDao.getSession(userId, group.getId()); + } + + if (sessionTime != -1) { + webConnection.session().delete("homeEditSession"); + webConnection.session().set("groupEditSession", group.getId()); + } + + if (group.getAlias() != null) { + if (group.getAlias().equalsIgnoreCase("battleball_rebound")) { + webConnection.session().set("page", "games"); + } + + if (group.getAlias().equalsIgnoreCase("lido")) { + webConnection.session().set("page", "games"); + } + + if (group.getAlias().equalsIgnoreCase("snow_storm")) { + webConnection.session().set("page", "games"); + } + + if (group.getAlias().equalsIgnoreCase("wobble_squabble")) { + webConnection.session().set("page", "games"); + } + } + + var template = webConnection.template("groups"); + template.set("editMode", sessionTime != -1); + template.set("group", group); + template.set("stickers", WidgetDao.getGroupWidgets(group.getId(), true)); + template.set("tags", TagDao.getGroupTags(group.getId())); + template.set("guestbookSetting", WidgetDao.getGroupWidgets(group.getId()).stream().filter(w -> w.getProduct().getData().equalsIgnoreCase("guestbookwidget")).findFirst().get().getGuestbookState()); + template.set("stickerLimit", HomeUtil.getStickerLimit(true)); + + if (sessionTime != -1) { + template.set("expireMinutes", TimeUnit.SECONDS.toMinutes(sessionTime - DateUtil.getCurrentTimeSeconds())); + } + + if (group.getRoomId() > 0) { + Room room = RoomDao.getRoomById(group.getRoomId()); + + if (room != null) { + template.set("room", room); + } + } + + template.set("hasMember", false); + + if (webConnection.session().getBoolean("authenticated")) { + int userId = webConnection.session().getInt("user.id"); + + GroupMember groupMember = group.getMember(userId); + + if (groupMember != null) { + template.set("hasMember", true); + template.set("groupMember", groupMember); + } + } + + template.render(); + } + + public static void startEditingSession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + String match = webConnection.getMatches().get(0); + + Group group = null; + + if (StringUtils.isNumeric(match)) { + group = GroupDao.getGroup(Integer.parseInt(match)); + } + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (group.isMember(userId) && group.hasAdministrator(userId)) { + if (!GroupEditDao.hasSession(userId, group.getId())) { + GroupEditDao.delete(userId, group.getId()); + + GroupEditDao.createSession(userId, group.getId()); + webConnection.session().delete("homeEditSession"); + webConnection.session().set("groupEditSession", group.getId()); + } + } + + webConnection.redirect(group.generateClickLink()); + } + + public static void cancelEditingSession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + if (!webConnection.session().contains("groupEditSession")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.session().getInt("groupEditSession"); + + if (GroupEditDao.hasSession(userId, groupId)) { + GroupEditDao.delete(userId, groupId); + webConnection.session().delete("homeEditSession"); + webConnection.session().delete("groupEditSession"); + } + + Group group = GroupDao.getGroup(groupId); + webConnection.redirect(group.generateClickLink()); + } + + + public static void saveEditingSession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.session().getInt("groupEditSession"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + List groupWidgets = WidgetDao.getGroupWidgets(groupId, true); + + try { + if (webConnection.post().contains("background")) { + int backgroundId = Integer.parseInt(webConnection.post().getString("background").split(":")[0]); + + + List widgetList = WidgetDao.getInventoryWidgets(playerDetails.getId()); + Widget widget = widgetList.stream().filter(w -> w.getId() == backgroundId).findFirst().orElse(null); + + if (widget != null) { + group.setBackground(widget.getProduct().getData()); + group.saveBackground(); + group.save(); + } + } + + if (webConnection.post().contains("stickers")) { + String[] stickerData = webConnection.post().getString("stickers").split(Pattern.quote("/")); + + if (stickerData.length >= HomeUtil.getStickerLimit(true)) { + webConnection.send(""); + return; + } + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = groupWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + + if (webConnection.post().contains("widgets")) { + String[] stickerData = webConnection.post().getString("widgets").split(Pattern.quote("/")); + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = groupWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + + if (webConnection.post().contains("stickienotes")) { + String[] stickerData = webConnection.post().getString("stickienotes").split(Pattern.quote("/")); + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = groupWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + } catch (Exception ex) { + + } + + GroupEditDao.delete(userId, groupId); + + webConnection.session().delete("homeEditSession"); + webConnection.session().delete("groupEditSession"); + + webConnection.send(""); + } + + public static void groupinfo(WebConnection webConnection) { + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + var template = webConnection.template("homes/widget/habblet/groupinfo"); + template.set("group", group); + template.render(); + + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupDiscussionsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupDiscussionsController.java new file mode 100644 index 0000000..cee0eb1 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupDiscussionsController.java @@ -0,0 +1,166 @@ +package org.alexdev.http.controllers.groups; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupForumType; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.GroupDiscussionDao; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +public class GroupDiscussionsController { + public static void viewDiscussions(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "community"); + String match = webConnection.getMatches().get(0); + + String groupAlias = null; + Group group = null; + + if (StringUtils.isNumeric(match) && webConnection.getRouteRequest().endsWith("/id/discussions")) { + group = GroupDao.getGroup(Integer.parseInt(match)); + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (!group.getAlias().isBlank()) { + webConnection.redirect("/groups/" + group.getAlias() + "/discussions"); + return; + } + + } else if (webConnection.getRouteRequest().endsWith("/discussions")) { + groupAlias = match; + group = GroupDao.getGroupByAlias(groupAlias); + } + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + var template = webConnection.template("groups/view_discussions"); + template.set("group", group); + render(webConnection, group, template, 1); + template.render(); + } + + public static void viewDiscussionsPage(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "community"); + + String match = webConnection.getMatches().get(0); + + String groupAlias = null; + Group group = null; + + if (StringUtils.isNumeric(match) && webConnection.getRouteRequest().contains("/id/discussions")) { + group = GroupDao.getGroup(Integer.parseInt(match)); + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (!group.getAlias().isBlank()) { + webConnection.redirect("/groups/" + group.getAlias() + "/discussions"); + return; + } + + } else if (webConnection.getRouteRequest().contains("/discussions") && !webConnection.getRouteRequest().contains("id/")) { + groupAlias = match; + group = GroupDao.getGroupByAlias(groupAlias); + } + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + int page = 1; + + try { + page = Integer.parseInt(webConnection.getMatches().get(1)); + } catch (Exception ex) { + + } + + var template = webConnection.template("groups/view_discussions"); + template.set("group", group); + render(webConnection, group, template, page); + template.render(); + } + + private static void render(WebConnection webConnection, Group group, Template template, int pageNumber) { + boolean loggedIn = webConnection.session().getBoolean("authenticated"); + template.set("hasMember", false); + template.set("canViewForum", group.getForumType() == GroupForumType.PUBLIC); + template.set("canPostForum", false);//(loggedIn && (!group.canForumPost(playerDetails.getId())))); + + if (webConnection.session().getBoolean("authenticated")) { + int userId = webConnection.session().getInt("user.id"); + + GroupMember groupMember = group.getMember(userId); + template.set("canPostForum", group.canForumPost(groupMember)); + + if (groupMember != null) { + template.set("hasMember", true); + template.set("groupMember", groupMember); + template.set("canViewForum", (loggedIn && group.canViewForum(groupMember))); + } + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + List discussionTopics = new ArrayList<>(); + + int limit = GameConfiguration.getInstance().getInteger("discussions.per.page"); + int discussionCount = 0; + int pages = 1; + + if ((boolean)template.get("canViewForum")) { + discussionCount = GroupDiscussionDao.countDiscussions(group.getId()); + pages = discussionCount > 0 ? (int) Math.ceil((double) discussionCount / (double) limit) : 1; + discussionTopics = GroupDiscussionDao.getDiscussions(group.getId(), pageNumber, limit, webConnection.session().getIntOrElse("user.id", 0)); + } + + for (int i = 1; i < 3 + 1; i++) { + int newPage = pageNumber - i; + + if (newPage >= 1) { + template.set("previousPage" + i, pageNumber - i); + } else { + template.set("previousPage" + i, -1); + } + } + + for (int i = 1; i < 3 + 1; i++) { + int newPage = pageNumber + i; + + if (newPage > 1 && newPage <= pages) { + template.set("nextPage" + i, pageNumber + i); + } else { + template.set("nextPage" + i, -1); + } + } + + template.set("currentPage", pageNumber); + template.set("pages", pages); + template.set("discussionTopics", discussionTopics); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupFavouriteController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupFavouriteController.java new file mode 100644 index 0000000..3ae8960 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupFavouriteController.java @@ -0,0 +1,90 @@ +package org.alexdev.http.controllers.groups; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.util.RconUtil; + +import java.util.HashMap; + +public class GroupFavouriteController { + public static void confirmselectfavourite(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + String groupName = GroupDao.getGroupName(groupId); + + if (groupName == null) { + webConnection.send(""); + return; + } + + var template = webConnection.template("groups/favourite/confirm_select_favourite"); + template.set("groupName", groupName); + template.render(); + } + + public static void selectfavourite(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !group.isMember(userId)) { + webConnection.send(""); + return; + } + + PlayerDao.saveFavouriteGroup(userId, groupId); + RconUtil.sendCommand(RconHeader.REFRESH_GROUP_PERMS, new HashMap<>() {{ + put("userId", String.valueOf(userId)); + }}); + + webConnection.send("OK"); + } + + public static void confirmdeselectfavourite(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/favourite/confirm_deselect_favourite"); + template.render(); + } + + public static void deselectfavourite(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !group.isMember(userId)) { + webConnection.send(""); + return; + } + + PlayerDao.saveFavouriteGroup(userId, 0); + + RconUtil.sendCommand(RconHeader.REFRESH_GROUP_PERMS, new HashMap<>() {{ + put("userId", String.valueOf(userId)); + }}); + + webConnection.send("OK"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupHabbletController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupHabbletController.java new file mode 100644 index 0000000..6cfb385 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupHabbletController.java @@ -0,0 +1,362 @@ +package org.alexdev.http.controllers.groups; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupForumType; +import org.alexdev.havana.game.groups.GroupPermissionType; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.GroupEditDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.GroupUtil; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.RconUtil; + +import java.util.HashMap; +import java.util.stream.Collectors; + +public class GroupHabbletController { + public static void groupCreateForm(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails.getCredits() < GameConfiguration.getInstance().getInteger("group.purchase.cost")) { + var template = webConnection.template("groups/habblet/purchase_result_error"); + template.render(); + } else { + var template = webConnection.template("groups/habblet/group_create_form"); + template.set("groupCost", GameConfiguration.getInstance().getInteger("group.purchase.cost")); + template.render(); + } + } + + public static void purchaseConfirmation(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + String name = HtmlUtil.removeHtmlTags(StringUtil.filterInput(webConnection.post().getString("name"), true)); + + var template = webConnection.template("groups/habblet/purchase_confirmation"); + template.set("groupName", name); + template.set("groupCost", GameConfiguration.getInstance().getInteger("group.purchase.cost")); + template.render(); + } + + public static void purchaseAjax(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + var template = webConnection.template("groups/habblet/purchase_ajax"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails.getCredits() < GameConfiguration.getInstance().getInteger("group.purchase.cost")) { + webConnection.send(""); + return; + } + + CurrencyDao.decreaseCredits(playerDetails, GameConfiguration.getInstance().getInteger("group.purchase.cost")); + + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + String name = HtmlUtil.removeHtmlTags(StringUtil.filterInput(webConnection.post().getString("name"), true)); + String description = HtmlUtil.removeHtmlTags(StringUtil.filterInput(webConnection.post().getString("description"), true)); + + int groupId = GroupDao.addGroup(name, description, playerDetails.getId()); + + // (int userId, int x, int y, int z, String skin, int stickerId, int groupId, boolean isPlaced) + WidgetDao.purchaseWidget(0, 40, 34, 6, 1, StickerManager.getInstance().getStickerByData("guestbookwidget", StickerType.GROUP_WIDGET).getId(), "", groupId, true); + WidgetDao.purchaseWidget(0, 433, 40, 3, 1, StickerManager.getInstance().getStickerByData("groupinfowidget", StickerType.GROUP_WIDGET).getId(), "", groupId, true); + WidgetDao.purchaseWidget(0, 0, 0, 0, 1, StickerManager.getInstance().getStickerByData("memberwidget", StickerType.GROUP_WIDGET).getId(), "", groupId, false); + WidgetDao.purchaseWidget(0, 0, 0, 0, 1, StickerManager.getInstance().getStickerByData("traxplayerwidget", StickerType.GROUP_WIDGET).getId(), "", groupId, false); + + template.set("groupName", name); + template.set("groupId", groupId); + template.set("deductedCredits", playerDetails.getCredits()); + template.render(); + } + + public static void groupSettings(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + if (group.getOwnerId() != userId) { + webConnection.send(""); + return; + } + + var template = webConnection.template("groups/habblet/group_settings"); + template.set("group", group); + template.set("selected" + group.getGroupType() + "GroupType", " checked=\"checked\""); + template.set("selected" + group.getForumType().getId() + "ForumType", " checked=\"checked\""); + template.set("selected" + group.getForumPermission().getId() + "ForumPermissionType", " checked=\"checked\""); + template.set("charactersLeft", String.valueOf(255 - group.getDescription().length())); + template.set("rooms", RoomDao.getRoomsByUserId(userId).stream().filter(room -> room.getData().getGroupId() == 0 || room.getData().getGroupId() == group.getId()).collect(Collectors.toList())); + template.render(); + } + + public static void checkGroupUrl(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/habblet/check_group_url"); + template.set("url", HtmlUtil.escape(webConnection.post().getString("url"))); + template.render(); + } + + public static void updateGroupSettings(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.post().getInt("groupId"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + return; + } + + if (group.getOwnerId() != userId) { + return; + } + + /** + + name: Alex's group + description: lol fuck u xdddd + groupId: 114 + type: 1 + url: + forumType: 0 + newTopicPermission: 0 + + */ + + String name = HtmlUtil.removeHtmlTags(webConnection.post().getString("name")); + String description = HtmlUtil.removeHtmlTags(webConnection.post().getString("description")); + String url = webConnection.post().getString("url").replaceAll("[^a-zA-Z0-9]", ""); + + if (url.length() > 30) { + url = url.substring(0, 30); + } + + if (name.length() > 30) { + name = name.substring(0, 30); + } + + if (description.length() > 255) { + description = description.substring(0, 255); + } + + int groupType = webConnection.post().getInt("type"); + int forumType = webConnection.post().getInt("forumType"); + int forumTypePermission = webConnection.post().getInt("newTopicPermission"); + int roomId = 0; + + try { + roomId = webConnection.post().getString("roomId").length() > 0 ? webConnection.post().getInt("roomId") : 0; + } catch (Exception ex) { + + } + if (groupType < 0 || groupType > 3) { + groupType = 0; + } + + if (roomId < 0) { + roomId = 0; + } + + if (forumType < 0 || forumType > 1) { + forumType = 0; + } + + if (forumTypePermission < 0 || forumTypePermission > 2) { + forumTypePermission = 0; + } + + group.setName(name); + group.setDescription(description); + + if (group.getGroupType() != 3) { + group.setGroupType(groupType); + } + + group.setForumType(GroupForumType.getById(forumType)); + group.setForumPermission(GroupPermissionType.getById(forumTypePermission)); + + if (group.getAlias() == null || group.getAlias().isBlank()) { + group.setAlias(null); + + if (!url.isBlank()) { + boolean existing = GroupDao.hasGroupByAlias(url); + + if (!existing) { + group.setAlias(url); + } + } + } + + RoomDao.saveGroupId(group.getRoomId(), 0); + + if (roomId > 0) { + Room room = RoomDao.getRoomById(roomId); + + if (room == null || room.getData().getOwnerId() != userId) { + roomId = 0; + } else { + RoomDao.saveGroupId(roomId, groupId); + } + } + + group.setRoomId(roomId); + group.save(); + + GroupUtil.refreshGroup(groupId); + + var template = webConnection.template("groups/habblet/update_group_settings"); + template.set("group", group); + template.set("message", "Editing group settings successful"); + template.render(); + } + + public static void showBadgeEditor(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.post().getInt("groupId"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + return; + } + + if (group.getOwnerId() != userId) { + return; + } + + var template = webConnection.template("groups/habblet/show_badge_editor"); + template.set("group", group); + template.render(); + } + + public static void updateGroupBadge(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.post().getInt("groupId"); + String badge = HtmlUtil.removeHtmlTags(webConnection.post().getString("code")); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + return; + } + + if (group.getOwnerId() != userId) { + return; + } + + group.setBadge(badge.replaceAll("[^a-zA-Z0-9]", "")); + group.saveBadge(); + + GroupUtil.refreshGroup(groupId); + webConnection.redirect(group.generateClickLink()); + } + + public static void confirmDeleteGroup(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.post().getInt("groupId"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + return; + } + + if (group.getOwnerId() != userId) { + return; + } + + var template = webConnection.template("groups/habblet/confirm_delete_group"); + template.set("group", group); + template.render(); + } + + public static void deleteGroup(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int groupId = webConnection.post().getInt("groupId"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + return; + } + + if (group.getOwnerId() != userId) { + return; + } + + GroupEditDao.deleteGroupWidgets(groupId); + GroupEditDao.pickupUserWidgets(groupId); + + GroupMemberDao.deleteMembers(groupId); + GroupMemberDao.resetFavourites(groupId); + GroupDao.delete(groupId); + + RconUtil.sendCommand(RconHeader.GROUP_DELETED, new HashMap<>() {{ + put("groupId", String.valueOf(groupId)); + }}); + + var template = webConnection.template("groups/habblet/delete_group"); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupMemberController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupMemberController.java new file mode 100644 index 0000000..4162d30 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupMemberController.java @@ -0,0 +1,455 @@ +package org.alexdev.http.controllers.groups; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.GroupMemberDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.util.RconUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.List; + +public class GroupMemberController { + public static void join(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var playerDetails = PlayerDao.getDetails(userId); + + if (playerDetails == null || group.isMember(userId) || group.isPendingMember(userId) || group.getGroupType() == 2) { + webConnection.send(""); + return; + } + + if (group.getGroupType() == 0 || group.getGroupType() == 3 || playerDetails.getRank().getRankId() >= PlayerRank.MODERATOR.getRankId()) { + var template = webConnection.template("groups/member/member_added"); + template.render(); + + /*webConnection.send("

      \n" + + "You have now joined this group

      \n" + + "\n" + + "

      \n" + + "Ok\n" + + "

      \n" + + "\n" + + "
      "));*/ + } + + if (group.getGroupType() == 1) { + var template = webConnection.template("groups/member/member_added_request"); + template.render(); + /*webConnection.send("

      \n" + + "Your membership request has been sent.

      \n" + + "\n" + + "

      \n" + + "Ok\n" + + "

      \n" + + "\n" + + "
      "));*/ + } + + if (playerDetails.getRank().getRankId() >= PlayerRank.MODERATOR.getRankId()) { + GroupMemberDao.addMember(userId, groupId, false); + } else { + GroupMemberDao.addMember(userId, groupId, group.getGroupType() == 1); + } + } + + public static void confirmLeave(WebConnection webConnection) { + var template = webConnection.template("groups/member/confirm_leave"); + template.render(); + + /* + webConnection.send("

      \n" + + + "Are you sure you want to leave this group?

      \n" + + "\n" + + "\n" + + "

      \n" + + "Cancel\n" + + "Ok\n" + + "

      \n" + + "\n" + + "
      "));*/ + } + + public static void leave(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + if (group.isMember(userId)) { + GroupMember groupMember = group.getMember(userId); + + GroupMemberDao.deleteMember(userId, groupId); + + if (groupMember.getUser().getFavouriteGroupId() == group.getId()) { + PlayerDao.saveFavouriteGroup(userId, 0); + + RconUtil.sendCommand(RconHeader.REFRESH_GROUP_PERMS, new HashMap<>() {{ + put("userId", String.valueOf(userId)); + }}); + } + } + + /*webConnection.send("

      \n" + + "Are you sure you want to leave this group?

      \n" + + "\n" + + "\n" + + "

      \n" + + "Cancel\n" + + "Ok\n" + + "

      \n" + + "\n" + + "
      "));*/ + var template = webConnection.template("groups/member/leave"); + template.set("groupId", groupId); + template.render(); + } + + public static void memberlist(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !group.hasAdministrator(userId)) { + webConnection.send(""); + return; + } + + int pageNumber = 1; + + try { + pageNumber = webConnection.post().getInt("pageNumber"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + int pendingMembers = GroupMemberDao.countMembers(group.getId(), true); + int groupMembers = GroupMemberDao.countMembers(group.getId(), false); + + int limit = 12; + boolean isPending = webConnection.post().getBoolean("pending"); + List groupMemberList = GroupMemberDao.getMembers(groupId, isPending, "", pageNumber, limit); + + int memberCount = isPending ? pendingMembers : groupMembers; + int pages = memberCount > 0 ? (int) Math.ceil((double)memberCount / (double)limit) : 0; + + if (pages == 0) { + pages = 1; + } + + GroupMember selfMember = group.getMember(userId); + webConnection.headers().put("X-JSON", "{\"pending\":\"Pending members (" + pendingMembers + ")\",\"members\":\"Members (" + groupMembers + ")\"}"); + + var template = webConnection.template("groups/memberlist"); + template.set("pages", pages); + template.set("memberList", groupMemberList); + template.set("currentPage", pageNumber); + template.set("selfMember", selfMember); + template.render(); + + + } + + public static void confirmRevokeRights(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int targetIds = webConnection.post().getArray("targetIds").size(); + + var template = webConnection.template("groups/member/confirm_revoke_rights"); + template.set("targetIds", targetIds); + template.render(); + } + + public static void revokeRights(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || group.getMember(userId).getMemberRank() != GroupMemberRank.OWNER) { + webConnection.send(""); + return; + } + + List data = webConnection.post().getArray("targetIds"); + + for (String user : data) { + if (!StringUtils.isNumeric(user)) { + continue; + } + + int memberId = Integer.parseInt(user); + GroupMember groupMember = group.getMember(memberId); + + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.OWNER) { + continue; + } + + GroupMemberDao.updateMember(groupMember.getUserId(),groupMember.getGroupId(), GroupMemberRank.MEMBER, false); + } + + webConnection.send("OK"); + } + + public static void confirmGiveRights(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int targetIds = webConnection.post().getArray("targetIds").size(); + + var template = webConnection.template("groups/member/confirm_give_rights"); + template.set("targetIds", targetIds); + template.render(); + } + + public static void giveRights(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || group.getMember(userId).getMemberRank() != GroupMemberRank.OWNER) { + webConnection.send(""); + return; + } + + List data = webConnection.post().getArray("targetIds"); + + for (String user : data) { + if (!StringUtils.isNumeric(user)) { + continue; + } + + int memberId = Integer.parseInt(user); + GroupMember groupMember = group.getMember(memberId); + + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.OWNER) { + continue; + } + + + GroupMemberDao.updateMember(groupMember.getUserId(),groupMember.getGroupId(), GroupMemberRank.ADMINISTRATOR, false); + } + + webConnection.send("OK"); + } + + public static void confirmRemove(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int targetIds = webConnection.post().getArray("targetIds").size(); + + var template = webConnection.template("groups/member/confirm_remove"); + template.set("targetIds", targetIds); + template.render(); + } + + public static void remove(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !(group.getMember(userId).getMemberRank() == GroupMemberRank.OWNER || group.getMember(userId).getMemberRank() == GroupMemberRank.ADMINISTRATOR)) { + webConnection.send(""); + return; + } + + List data = webConnection.post().getArray("targetIds"); + + for (String user : data) { + if (!StringUtils.isNumeric(user)) { + continue; + } + + int memberId = Integer.parseInt(user); + GroupMember groupMember = group.getMember(memberId); + + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.OWNER || groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR) { + continue; + } + + GroupMemberDao.deleteMember(groupMember.getUserId(), groupMember.getGroupId()); + + if (groupMember.getUser().getFavouriteGroupId() == group.getId()) { + PlayerDao.saveFavouriteGroup(groupMember.getUserId(), 0); + + if (groupMember.getUser().isOnline()) { + RconUtil.sendCommand(RconHeader.REFRESH_GROUP_PERMS, new HashMap<>() {{ + put("userId", String.valueOf(userId)); + }}); + } + } + } + + webConnection.send("OK"); + } + + public static void confirmAccept(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + String groupName = GroupDao.getGroupName(groupId); + + if (groupName == null) { + webConnection.send(""); + return; + } + + var template = webConnection.template("groups/member/confirm_accept"); + template.set("groupName", groupName); + template.render(); + } + + public static void accept(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !(group.getMember(userId).getMemberRank() == GroupMemberRank.OWNER || group.getMember(userId).getMemberRank() == GroupMemberRank.ADMINISTRATOR)) { + webConnection.send(""); + return; + } + + List data = webConnection.post().getArray("targetIds"); + + for (String user : data) { + if (!StringUtils.isNumeric(user)) { + continue; + } + + int memberId = Integer.parseInt(user); + GroupMember groupMember = group.getPendingMember(memberId); + + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.OWNER || groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR) { + continue; + } + + GroupMemberDao.updateMember(groupMember.getUserId(), groupMember.getGroupId(), GroupMemberRank.MEMBER, false); + } + + webConnection.send("OK"); + } + + public static void confirmDecline(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int targetIds = webConnection.post().getString("targetIds").split(",").length; + + var template = webConnection.template("groups/member/confirm_decline"); + template.set("targetIds", targetIds); + template.render(); + } + + public static void decline(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + int userId = webConnection.session().getInt("user.id"); + + Group group = GroupDao.getGroup(groupId); + + if (group == null || !(group.getMember(userId).getMemberRank() == GroupMemberRank.OWNER || group.getMember(userId).getMemberRank() == GroupMemberRank.ADMINISTRATOR)) { + webConnection.send(""); + return; + } + + List data = webConnection.post().getArray("targetIds"); + + for (String user : data) { + if (!StringUtils.isNumeric(user)) { + continue; + } + + int memberId = Integer.parseInt(user); + GroupMember groupMember = group.getPendingMember(memberId); + + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.OWNER || groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR) { + continue; + } + + GroupMemberDao.deleteMember(groupMember.getUserId(), groupMember.getGroupId()); + } + + webConnection.send("OK"); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupTagController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupTagController.java new file mode 100644 index 0000000..ebfd3e7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/GroupTagController.java @@ -0,0 +1,110 @@ +package org.alexdev.http.controllers.groups; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.util.List; + +public class GroupTagController { + public static void addGroupTag(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (group.getOwnerId() != userId) { + webConnection.send(""); + return; + } + + var tagList = TagDao.getGroupTags(groupId); + + if (tagList.size() >= GameConfiguration.getInstance().getInteger("max.tags.groups")) { + webConnection.send("taglimit"); + return; + } + + String tag = StringUtil.isValidTag(webConnection.post().getString("tagName"), 0, 0, groupId); + + if (tag == null) { + webConnection.send("invalidtag"); + return; + } + + if (WordfilterManager.filterSentence(tag).equals(tag)) { + StringUtil.addTag(tag, 0, 0, groupId); + } + + webConnection.send("valid"); + } + + public static void removeGroupTag(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (group.getOwnerId() != userId) { + webConnection.send(""); + return; + } + + TagDao.removeTag(0, 0, groupId, webConnection.post().getString("tagName")); + List groupTags = TagDao.getGroupTags(groupId); + + var template = webConnection.template("groups/habblet/listgrouptags"); + template.set("tags", groupTags); + template.set("group", group); + template.render(); + } + + public static void listGroupTag(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + int groupId = webConnection.post().getInt("groupId"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + List groupTags = TagDao.getGroupTags(groupId); + + var template = webConnection.template("groups/habblet/listgrouptags"); + template.set("tags", groupTags); + template.set("group", group); + template.render(); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionActionsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionActionsController.java new file mode 100644 index 0000000..7805b65 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionActionsController.java @@ -0,0 +1,577 @@ +package org.alexdev.http.controllers.groups.discussions; + +import io.netty.handler.codec.http.FullHttpResponse; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupForumType; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.groups.GroupPermissionType; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.GroupDiscussionDao; +import org.alexdev.http.game.groups.DiscussionReply; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.http.util.Captcha; +import org.alexdev.http.util.XSSUtil; + +public class DiscussionActionsController { + public static void newtopic(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + + var template = webConnection.template("groups/discussions/newpost"); + template.render(); + } + + public static void savetopic(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String captcha = webConnection.post().getString("captcha"); + String message = webConnection.post().getString("message"); + String topicName = webConnection.post().getString("topicName"); + + int groupId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + } catch (Exception ex) { + + } + + if (topicName.isBlank() || message.isBlank()) { + var template = webConnection.template("groups/discussion_replies"); + template.set("hasMessage", true); + template.set("message", "Please supply a valid message."); + template.render(); + return; + } + + if (!webConnection.session().getString("captcha-text").equals(captcha)) { + webConnection.session().delete("captcha-text"); + + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"captchaError\":\"true\"}"); + webConnection.send(httpResponse); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var latestMessage = GroupDiscussionDao.getLatestReply(userId); + + if (latestMessage != null && latestMessage.getMessage().startsWith(message)) { + var template = webConnection.template("groups/discussion_replies"); + template.set("hasMessage", true); + template.set("message", "Do not spam the forums"); + template.render(); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/"); + return; + } + + if (group.getForumType() == GroupForumType.PRIVATE || + group.getForumPermission() == GroupPermissionType.MEMBER_ONLY || + group.getForumPermission() == GroupPermissionType.ADMIN_ONLY) { + var groupMember = group.getMember(userId); + + if (groupMember == null) { + webConnection.redirect("/"); + return; + } + + if (group.getForumPermission() == GroupPermissionType.ADMIN_ONLY) { + if (groupMember.getMemberRank() != GroupMemberRank.ADMINISTRATOR && groupMember.getMemberRank() != GroupMemberRank.OWNER) { + webConnection.redirect("/"); + return; + } + } + } + + if (topicName.length() > 32) { + topicName = topicName.substring(0, 32); + } + + /*int topicId = 1; + + if (WordfilterManager.filterSentence(message).equals(message)) { + topicId = GroupDiscussionDao.createDiscussion(groupId, userId, topicName); + GroupDiscussionDao.createReplies(topicId, userId, message); + }*/ + + int topicId = GroupDiscussionDao.createDiscussion(groupId, userId, topicName); + GroupDiscussionDao.createReplies(topicId, userId, message); + + webConnection.session().delete("captcha-text"); + webConnection.send(group.generateClickLink() + "/discussions/" + topicId + "/id"); + } + + public static void pingsession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"privilegeLevel\":\"1\"}"); + webConnection.send(httpResponse); + } + + + public static void opentopicsettings(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + } catch (Exception ex) { + + } + + int topicId = 0; + + try { + topicId = webConnection.post().getInt("topicId"); + } catch (Exception ex) { + + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/discussions/opentopicsettings"); + template.set("topic", discussionTopic); + template.render(); + } + + public static void confirm_delete_topic(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/discussions/confirm_delete_topic"); + template.render(); + } + + public static void deletetopic(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + } catch (Exception ex) { + + } + + int topicId = 0; + + try { + topicId = webConnection.post().getInt("topicId"); + } catch (Exception ex) { + + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null) { + webConnection.redirect("/"); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + if (discussionTopic.getCreatorId() != userId) { + var playerDetails = PlayerDao.getDetails(userId); + var groupMember = group.getMember(userId); + + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.MEMBER) { + return; + } + } + } + + GroupDiscussionDao.deleteDiscussion(groupId, topicId); + webConnection.send("SUCCESS"); + } + + public static void savetopicsettings(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + int topicId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + topicId = webConnection.post().getInt("topicId"); + } catch (Exception ex) { + + } + + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null) { + webConnection.redirect("/"); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/discussion_replies"); + var playerDetails = (PlayerDetails)template.get("playerDetails"); + + int userId = webConnection.session().getInt("user.id"); + + if (discussionTopic.getCreatorId() != userId) { + var groupMember = group.getMember(userId); + + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.MEMBER) { + return; + } + } + } + + int pageNumber = 1; + + try { + pageNumber = webConnection.post().getInt("page"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + try { + String topicTitle = webConnection.post().getString("topicName"); + + if (topicTitle.length() > 32) { + topicTitle = topicTitle.substring(0, 32); + } + + discussionTopic.setOpen(webConnection.post().getInt("topicClosed") == 0); + discussionTopic.setStickied(webConnection.post().getInt("topicSticky") == 1); + discussionTopic.setTopicTitle(topicTitle); + GroupDiscussionDao.saveDiscussion(discussionTopic); + } catch (Exception ex) { + + } + + DiscussionController.appendpagedata(template, webConnection, group, discussionTopic, pageNumber); + template.render(); + } + + public static void updatepost(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + int topicId = 0; + int postId = 0; + int pageNumber = 1; + + try { + groupId = webConnection.post().getInt("groupId"); + topicId = webConnection.post().getInt("topicId"); + postId = webConnection.post().getInt("postId"); + pageNumber = webConnection.post().getInt("page"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null || !discussionTopic.isOpen()) { + webConnection.redirect("/"); + return; + } + + DiscussionReply discussionReply = GroupDiscussionDao.getReply(discussionTopic.getId(), postId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionReply == null) { + webConnection.redirect("/"); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/"); + return; + } + + if (Captcha.matches(webConnection, webConnection.post().getString("captcha"))) { + webConnection.session().delete("captcha-text"); + + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"captchaError\":\"true\"}"); + webConnection.send(httpResponse); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + if (discussionReply.getUserId() != userId) { + /*var playerDetails = PlayerDao.getDetails(userId); + var groupMember = group.getMember(userId); + + if (groupMember == null) { + if (playerDetails.getRank().getRankId() < 6) { + return; + } + } else { + if (groupMember.getMemberRank() == GroupMemberRank.MEMBER) { + return; + } + }*/ + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("groups/discussion_replies"); + var playerDetails = (PlayerDetails)template.get("playerDetails"); + + try { + String message = webConnection.post().getString("message"); + discussionReply.setMessage(message); + + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + discussionReply.setEdited(true); + } + + GroupDiscussionDao.saveReply(discussionReply); + /*if (WordfilterManager.filterSentence(message).equals(message)) { + discussionReply.setMessage(message); + + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + discussionReply.setEdited(true); + } + + GroupDiscussionDao.saveReply(discussionReply); + }*/ + } catch (Exception ex) { + + } + + webConnection.session().delete("captcha-text"); + + DiscussionController.appendpagedata(template, webConnection, group, discussionTopic, pageNumber); + template.render(); + } + + public static void deletepost(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + int topicId = 0; + int postId = 0; + int pageNumber = 1; + + try { + groupId = webConnection.post().getInt("groupId"); + topicId = webConnection.post().getInt("topicId"); + postId = webConnection.post().getInt("postId"); + pageNumber = webConnection.post().getInt("page"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null || !discussionTopic.isOpen()) { + webConnection.redirect("/?1"); + return; + } + + DiscussionReply discussionReply = GroupDiscussionDao.getReply(discussionTopic.getId(), postId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionReply == null) { + webConnection.redirect("/?2"); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/?3"); + return; + } + + var template = webConnection.template("groups/discussion_replies"); + var playerDetails = (PlayerDetails)template.get("playerDetails"); + + int userId = webConnection.session().getInt("user.id"); + + if (discussionReply.getUserId() != userId) { + var groupMember = group.getMember(userId); + + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + if (groupMember == null || groupMember.getMemberRank() == GroupMemberRank.MEMBER) { + return; + } + } + } + + try { + if (discussionReply.getUserId() != userId) { + GroupDiscussionDao.deleteReply(discussionReply); + } else { + if (!Group.hasTopicAdmin(playerDetails.getRank())) { + discussionReply.setDeleted(true); + GroupDiscussionDao.saveReply(discussionReply); + } else { + GroupDiscussionDao.deleteReply(discussionReply); + } + } + } catch (Exception ex) { + + } + + DiscussionController.appendpagedata(template, webConnection, group, discussionTopic, pageNumber); + template.render(); + } + + public static void savepost(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + int topicId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + topicId = webConnection.post().getInt("topicId"); + } catch (Exception ex) { + + } + + if (!webConnection.session().getString("captcha-text").equals(webConnection.post().getString("captcha"))) { + webConnection.session().delete("captcha-text"); + + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"captchaError\":\"true\"}"); + webConnection.send(httpResponse); + return; + } + + String message = webConnection.post().getString("message"); + + if (message.isBlank()) { + var template = webConnection.template("groups/discussion_replies"); + template.set("hasMessage", true); + template.set("message", "Please supply a valid message."); + template.render(); + return; + } + var template = webConnection.template("groups/discussion_replies"); + var playerDetails = (PlayerDetails)template.get("playerDetails"); + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null || (!discussionTopic.isOpen() && !Group.hasTopicAdmin(playerDetails.getRank()))) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var latestMessage = GroupDiscussionDao.getLatestReply(userId); + + if (latestMessage != null && latestMessage.getMessage().startsWith(message)) { + template.set("hasMessage", true); + template.set("message", "Do not spam the forums"); + template.render(); + return; + } + + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.redirect("/"); + return; + } + + if (group.getForumType() == GroupForumType.PRIVATE) { + var groupMember = group.getMember(userId); + + if (groupMember == null) { + webConnection.redirect("/"); + return; + } + } + + webConnection.session().delete("captcha-text"); + + //if (WordfilterManager.filterSentence(message).equals(message)) { + GroupDiscussionDao.createReplies(topicId, userId, message); + //} + + int limit = GameConfiguration.getInstance().getInteger("discussions.replies.per.page"); + int replyCount = GroupDiscussionDao.countReplies(discussionTopic.getId()); + int pages = replyCount > 0 ? (int) Math.ceil((double) replyCount / (double) limit) : 1; + + DiscussionController.appendpagedata(template, webConnection, group, discussionTopic, pages); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionController.java new file mode 100644 index 0000000..d57b6a5 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionController.java @@ -0,0 +1,186 @@ +package org.alexdev.http.controllers.groups.discussions; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupForumType; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.GroupDiscussionDao; +import org.alexdev.http.dao.ReplyDao; +import org.alexdev.http.game.groups.DiscussionReply; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; +import java.util.stream.Collectors; + +public class DiscussionController { + public static void viewDiscussion(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "community"); + String match = webConnection.getMatches().get(0); + + int discussionId = 0; + + try { + discussionId = Integer.parseInt(webConnection.getMatches().get(1)); + } catch (Exception ex) { + + } + + boolean hasPageSpecified = false; + int pageNumber = 1; + + try { + pageNumber = Integer.parseInt(webConnection.getMatches().get(2)); + hasPageSpecified = true; + } catch (Exception ex) { + + } + + String groupAlias; + Group group; + + if (StringUtils.isNumeric(match) && webConnection.getRouteRequest().contains("/id/discussions")) { + group = GroupDao.getGroup(Integer.parseInt(match)); + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (!group.getAlias().isBlank()) { + webConnection.redirect("/groups/" + group.getAlias() + "/discussions/" + discussionId + "/id" + (hasPageSpecified ? "/page/" + pageNumber : "")); + return; + } + + } else { + groupAlias = match; + group = GroupDao.getGroupByAlias(groupAlias); + } + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(group.getId(), discussionId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + + var template = webConnection.template("groups/discussion"); + + if (pageNumber <= 0) { + pageNumber = 1; + } + + if (!webConnection.session().contains("hasViewedDiscussion" + discussionId)) { + webConnection.session().set("hasViewedDiscussion" + discussionId, true); + GroupDiscussionDao.incrementViews(discussionId); + } + + appendpagedata(template, webConnection, group, discussionTopic, pageNumber); + template.render(); + } + + public static void appendpagedata(Template template, WebConnection webConnection, Group group, DiscussionTopic discussionTopic, int pageNumber) { + boolean loggedIn = webConnection.session().getBoolean("authenticated"); + boolean hasTopicAdmin = false; + + if (loggedIn) { + var playerDetails = (PlayerDetails)template.get("playerDetails"); + hasTopicAdmin = Group.hasTopicAdmin(playerDetails.getRank()); + } + + template.set("group", group); + template.set("hasMember", false); + template.set("hasMessage", false); + template.set("canViewForum", group.getForumType() == GroupForumType.PUBLIC); + template.set("canReplyForum", false);//(loggedIn && (!group.canForumPost(playerDetails.getId())))); + + int userId = webConnection.session().getIntOrElse("user.id", 0); + + if (webConnection.session().getBoolean("authenticated")) { + GroupMember groupMember = group.getMember(userId); + + template.set("canViewForum", (loggedIn && group.canViewForum(groupMember))); + template.set("canReplyForum", (loggedIn && group.canReplyForum(groupMember))); + + if (groupMember != null) { + template.set("hasMember", true); + template.set("groupMember", groupMember); + + if (!hasTopicAdmin) { + hasTopicAdmin = (groupMember.getMemberRank() == GroupMemberRank.ADMINISTRATOR || groupMember.getMemberRank() == GroupMemberRank.OWNER); + } + } + } + + if (!discussionTopic.isOpen()) { + template.set("canReplyForum", false); + } + + if (!((boolean)template.get("canViewForum"))) { + template.set("hasMessage", true); + template.set("message", "View forums denied. Please check that you are logged in and have the appropriate rights to view the forums. If you are logged in and still can't view the forums, the group may be private. If so, you need to join the group in order to view the forums. "); + return; + } + + int firstReply = GroupDiscussionDao.getFirstReply(discussionTopic.getId()); + template.set("firstReply", firstReply); + + int limit = GameConfiguration.getInstance().getInteger("discussions.replies.per.page"); + + int replyCount = GroupDiscussionDao.countReplies(discussionTopic.getId()); + int pages = replyCount > 0 ? (int) Math.ceil((double) replyCount / (double) limit) : 1; + List replyList = GroupDiscussionDao.getReplies(discussionTopic.getId(), pageNumber, limit, webConnection.session().getIntOrElse("user.id", 0)); + + if (userId > 0) { + var isNew = replyList.stream().filter(DiscussionReply::isNew).collect(Collectors.toList()); + + if (isNew.size() > 0) { + ReplyDao.read(userId, replyList.stream().filter(DiscussionReply::isNew).collect(Collectors.toList())); + } + } + + for (int i = 1; i < 3 + 1; i++) { + int newPage = pageNumber - i; + + if (newPage >= 1) { + template.set("previousPage" + i, pageNumber - i); + } else { + template.set("previousPage" + i, -1); + } + } + + for (int i = 1; i < 3 + 1; i++) { + int newPage = pageNumber + i; + + if (newPage > 1 && newPage <= pages) { + template.set("nextPage" + i, pageNumber + i); + } else { + template.set("nextPage" + i, -1); + } + } + + template.set("currentPage", pageNumber); + template.set("pages", pages); + template.set("replyList", replyList); + template.set("discussionId", discussionTopic.getId()); + template.set("discussionTopic", discussionTopic); + template.set("hasTopicAdmin", hasTopicAdmin); + + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionPreviewController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionPreviewController.java new file mode 100644 index 0000000..8e3e9ef --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/groups/discussions/DiscussionPreviewController.java @@ -0,0 +1,114 @@ +package org.alexdev.http.controllers.groups.discussions; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.dao.GroupDiscussionDao; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; + +public class DiscussionPreviewController { + public static void previewtopic(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int groupId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + } catch (Exception ex) { + + } + + String topicName = webConnection.post().getString("topicName"); + String topicMessage = webConnection.post().getString("message"); + + int userId = webConnection.session().getInt("user.id"); + var displayBadges = GroupDiscussionDao.getDisplayBadges(userId); + + var template = webConnection.template("groups/discussions/previewtopic"); + template.set("topicName", topicName); + template.set("topicMessage", BBCode.format(HtmlUtil.escape(BBCode.normalise(topicMessage)), false)); + template.set("previewDay", DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "MMM dd, yyyy").replace("am", "AM").replace("pm", "PM").replace(".", "")); + template.set("previewTime", DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "h:mm a").replace("am", "AM").replace("pm", "PM").replace(".", "")); + template.set("userReplies", GroupDiscussionDao.countUserReplies(userId)); + + template.set("hasBadge", false); + template.set("hasGroup", false); + + if (displayBadges[0] != null) { + template.set("hasBadge", true); + template.set("badge", displayBadges[0]); + } + + if (displayBadges[1] != null) { + template.set("hasGroup", true); + template.set("groupId", ((PlayerDetails) template.get("playerDetails")).getFavouriteGroupId()); + template.set("groupBadge", displayBadges[1]); + } + + template.render(); + } + + public static void previewpost(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int topicId = 0; + + try { + topicId = webConnection.post().getInt("topicId"); + } catch (Exception ex) { + + } + + int groupId = 0; + + try { + groupId = webConnection.post().getInt("groupId"); + } catch (Exception ex) { + + } + + DiscussionTopic discussionTopic = GroupDiscussionDao.getDiscussion(groupId, topicId, webConnection.session().getIntOrElse("user.id", 0)); + + if (discussionTopic == null) { + webConnection.redirect("/"); + return; + } + + + String topicMessage = webConnection.post().getString("message"); + + int userId = webConnection.session().getInt("user.id"); + var displayBadges = GroupDiscussionDao.getDisplayBadges(userId); + + var template = webConnection.template("groups/discussions/previewpost"); + template.set("postName", "RE: " + discussionTopic.getTopicTitle()); + template.set("postMessage", BBCode.format(HtmlUtil.escape(BBCode.normalise(topicMessage)), false)); + template.set("previewDay", DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "MMM dd, yyyy").replace("am", "AM").replace("pm","PM").replace(".", "")); + template.set("previewTime", DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "h:mm a").replace("am", "AM").replace("pm","PM").replace(".", "")); + template.set("userReplies", GroupDiscussionDao.countUserReplies(userId)); + + template.set("hasBadge", false); + template.set("hasGroup", false); + + if (displayBadges[0] != null) { + template.set("hasBadge", true); + template.set("badge", displayBadges[0]); + } + + if (displayBadges[1] != null) { + template.set("hasGroup", true); + template.set("groupId", ((PlayerDetails)template.get("playerDetails")).getFavouriteGroupId()); + template.set("groupBadge", displayBadges[1]); + } + + template.render(); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/EventController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/EventController.java new file mode 100644 index 0000000..e80b8bf --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/EventController.java @@ -0,0 +1,22 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.EventsDao; +import org.alexdev.http.server.Watchdog; + +import java.util.stream.Collectors; + +public class EventController { + public static void loadEvents(WebConnection webConnection) { + if (!webConnection.post().contains("eventTypeId")) { + webConnection.send(""); + return; + } + + int filterId = webConnection.post().getInt("eventTypeId"); + + var tpl = webConnection.template("habblet/load_events"); + tpl.set("events", Watchdog.EVENTS.stream().filter(event -> event.getCategoryId() == filterId).collect(Collectors.toList())); + tpl.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/FeedController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/FeedController.java new file mode 100644 index 0000000..a5f6b04 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/FeedController.java @@ -0,0 +1,93 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.AlertsDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.alerts.AccountAlert; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.game.account.BeginnerGiftManager; + +import java.util.List; + +public class FeedController { + public static void removeFeedItem(WebConnection connection) { + if (!connection.session().getBoolean("authenticated")) { + connection.redirect("/"); + return; + } + + int feedItemIndex = -1; + + try { + feedItemIndex = connection.post().getInt("feedItemIndex"); + } catch (Exception ex) { + + } + + if (feedItemIndex != -1) { + int userId = connection.session().getInt("user.id"); + List accountAlerts = AlertsDao.getAlerts(userId); + + try { + AccountAlert alert = accountAlerts.get(feedItemIndex); + AlertsDao.deleteAlert(userId, alert.getId()); + } catch (Exception ex) { + + } + + connection.send(""); + } + } + + public static void nextgift(WebConnection connection) { + if (!connection.session().getBoolean("authenticated")) { + connection.send(""); + return; + } + + var template = connection.template("habblet/nextgift"); + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + var statistics = new PlayerStatisticManager(playerDetails.getId(), PlayerStatisticsDao.getStatistics(playerDetails.getId())); + + template.set("newbieRoomLayout", statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT)); + template.set("newbieNextGift", statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT)); + + if (statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT) > 0 && statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT) > 0) { + int seconds = statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT_TIME) - DateUtil.getCurrentTimeSeconds(); + + if (BeginnerGiftManager.progress(playerDetails, statistics)) { + seconds = statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT_TIME) - DateUtil.getCurrentTimeSeconds(); + template.set("newbieNextGift", statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT)); + } + + if (seconds < 0) { + seconds = 0; + } + + template.set("newbieGiftSeconds", seconds); + } + + template.render(); + } + + public static void giftqueueHide(WebConnection connection) { + if (!connection.session().getBoolean("authenticated")) { + connection.send(""); + return; + } + + int userId = connection.session().getInt("user.id"); + + int nextGift = (int) PlayerStatisticsDao.getStatisticLong(userId, PlayerStatistic.NEWBIE_GIFT); + + if (nextGift == 3) { + PlayerStatisticsDao.updateStatistic(userId, PlayerStatistic.NEWBIE_GIFT, 4); + } + + connection.send(""); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/HabboClubHabblet.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/HabboClubHabblet.java new file mode 100644 index 0000000..afca0c6 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/HabboClubHabblet.java @@ -0,0 +1,113 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.AlertsDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.alerts.AlertType; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.util.RconUtil; + +import java.util.HashMap; +import java.util.concurrent.TimeUnit; + +public class HabboClubHabblet { + public static void confirm(WebConnection webConnection) { + int optionNumber = 1; + + try { + optionNumber = Integer.parseInt(webConnection.post().getString("optionNumber")); + } catch (Exception ex) { + + } + + if (optionNumber < 0 || optionNumber > 4) { + return; + } + + var choiceData = ClubSubscription.getChoiceData(optionNumber); + + var template = webConnection.template("habblet/habboClubConfirm"); + template.set("clubCredits", choiceData.getKey()); + template.set("clubDays", choiceData.getValue()); + template.set("clubType", optionNumber); + template.render(); + } + + public static void subscribe(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + return; + } + + int optionNumber = 1; + + try { + optionNumber = Integer.parseInt(webConnection.post().getString("optionNumber")); + } catch (Exception ex) { + + } + + var choiceData = ClubSubscription.getChoiceData(optionNumber); + + int credits = choiceData.getKey(); + int days = choiceData.getValue(); + + var template = webConnection.template("habblet/habboClubSubscribe"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails.getCredits() < credits) { + template.set("subscribeMsg", "You don't have enough credits to complete the subscription purchase."); + } else { + template.set("subscribeMsg", "Congratulations! You have successfully subscribed to " + GameConfiguration.getInstance().getString("site.name") + " Club."); + + boolean firstTime = (playerDetails.getFirstClubSubscription() == 0); + + ClubSubscription.subscribeClub(playerDetails, optionNumber); + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.CLUB_MEMBER_TIME_UPDATED, DateUtil.getCurrentTimeSeconds() + ClubSubscription.getClubGiftSeconds()); + + if (playerDetails.isOnline()) { + RconUtil.sendCommand(RconHeader.REFRESH_CLUB, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + if (firstTime) { + RconUtil.sendCommand(RconHeader.REFRESH_HAND, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + } + } + } + + template.render(); + } + + public static void enddate(WebConnection webConnection) { + var template = webConnection.template("habblet/habboClubEnddate"); + + if (webConnection.session().getBoolean("authenticated")) { + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails.hasClubSubscription()) { + template.set("hcDays", TimeUnit.SECONDS.toDays(playerDetails.getClubExpiration() - DateUtil.getCurrentTimeSeconds())); + } + } + + template.render(); + } + + public static void reminderRemove(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + AlertsDao.disableAlerts(playerDetails.getId(), AlertType.HC_EXPIRED); + + webConnection.send(""); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/InviteController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/InviteController.java new file mode 100644 index 0000000..33bb46d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/InviteController.java @@ -0,0 +1,189 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerManager; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.http.util.RconUtil; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; + +public class InviteController { + public static void inviteLink(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + //PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + Template template = webConnection.template("habblet/invite_referralLink"); + template.render(); + } + + public static void searchContent(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Template template = webConnection.template("habblet/invite_searchContent"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + Messenger messenger = new Messenger(playerDetails); + + String searchString = webConnection.post().getString("searchString"); + int pageId = webConnection.post().contains("pageNumber") ? webConnection.post().getInt("pageNumber") - 1 : 0; + int nextPageId = -1; + int previousPageId = -1; + + List searchedFriends = new ArrayList<>(); + + for (int userId : MessengerDao.search(searchString)) { + if (playerDetails.getId() == userId) { + continue; + } + + searchedFriends.add(PlayerDao.getDetails(userId)); + } + + searchedFriends.sort(Comparator.comparing(PlayerDetails::getName)); + + var searchMap = StringUtil.paginate(searchedFriends, 5); + List searchResults = null; + + if (searchMap.containsKey(pageId)) { + searchResults = searchMap.get(pageId); + } else { + searchResults = new ArrayList<>(); + } + + if (searchMap.containsKey(pageId - 1)) { + previousPageId = pageId -1; + } + + if (searchMap.containsKey(pageId + 1)) { + nextPageId = pageId + 1; + } + + nextPageId = nextPageId > -1 ? nextPageId + 1 : -1; + previousPageId = previousPageId > -1 ? previousPageId + 1 : -1; + + template.set("searchResults", searchResults); + template.set("currentPage", pageId + 1); + template.set("totalPages", searchMap.size()); + template.set("previousPageId", previousPageId); + template.set("nextPageId", nextPageId); + template.set("messenger", messenger); + template.render(); + } + + public static void confirmAddFriend(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Template template = webConnection.template("habblet/invite_confirmAddFriend"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + webConnection.send(""); + return; + } + + template.set("username", playerDetails.getName()); + template.render(); + } + + public static void addFriend(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int accountId = 0; + + try { + accountId = webConnection.post().getInt("accountId"); + } catch (Exception ex) { + + } + + Template template = webConnection.template("habblet/invite_addFriend"); + template.set("message", createFriendRequestResponse(webConnection, accountId)); + template.render(); + } + + public static void add(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int accountId = 0; + + try { + accountId = webConnection.post().getInt("accountId"); + } catch (Exception ex) { + + } + + webConnection.send(ResponseBuilder.create("application/x-javascript", "Dialog.showInfoDialog(\"add-friend-messages\", \"" + createFriendRequestResponse(webConnection, accountId) + "\", \"OK\");")); + } + + public static String createFriendRequestResponse(WebConnection webConnection, int accountId) { + String response; + + Messenger target = MessengerManager.getInstance().getMessengerData(accountId); + Messenger callee = MessengerManager.getInstance().getMessengerData(webConnection.session().getInt("user.id")); + + if (target == null) { + //player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.FRIEND_REQUEST_NOT_FOUND))); + response = "There was an error finding the user for the friend request."; + } else { + if (target.getMessengerUser().getUsername().equalsIgnoreCase("Abigail.Ryan")) { + target = null; + } + + if (target == null) { + //player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.FRIEND_REQUEST_NOT_FOUND))); + response = "There was an error finding the user for the friend request."; + } else if (callee.isFriendsLimitReached()) { + //player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.FRIENDLIST_FULL))); + response = "Your friends list is full."; + } else if (target.hasFriend(webConnection.session().getInt("user.id"))) { + response = "This person is already your friend"; + } else if (target.hasRequest(webConnection.session().getInt("user.id"))) { + response = "There is already a friend request for this user."; + } else if (target.isFriendsLimitReached()) { + response = "This user's friend list is full."; + } else if (!target.allowsFriendRequests()) { + //player.send(new MESSENGER_ERROR(new MessengerError(MessengerErrorType.TARGET_DOES_NOT_ACCEPT))); + //return; + response = "This user does not accept friend requests at the moment."; + } else if (webConnection.post().getInt("accountId") == webConnection.session().getInt("user.id")) { + response = "There was an error processing your request."; + } else { + response = "Friend request has been sent successfully."; + target.addRequest(callee.getMessengerUser()); + + RconUtil.sendCommand(RconHeader.FRIEND_REQUEST, new HashMap<>() {{ + put("userId", webConnection.session().getInt("user.id")); + put("friendId", webConnection.post().getInt("accountId")); + }}); + } + } + + return response; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NameCheckController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NameCheckController.java new file mode 100644 index 0000000..7036d23 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NameCheckController.java @@ -0,0 +1,49 @@ +package org.alexdev.http.controllers.habblet; + +import io.netty.handler.codec.http.FullHttpResponse; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.util.RegisterUtil; + +public class NameCheckController { + public static void namecheck(WebConnection webConnection) { + String errorMessage = ""; + + String username = webConnection.post().getString("name"); + int errorCode = RegisterUtil.getNameErrorCode(username); + + if (errorCode == 6) { + errorMessage = "This name is unacceptable to hotel management."; + } else if (errorCode == 5) { + errorMessage = "Your username is invalid or contains invalid characters."; + } else if (errorCode == 4) { + errorMessage = "This name is not allowed."; + } else if (errorCode == 3) { + errorMessage = "The name you have chosen is too long."; + } else if (errorCode == 2) { + errorMessage = "Please enter a username."; + } else if (errorCode == 1) { + errorMessage = "A user with this name already exists."; + } + + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"registration_name\":\"" + errorMessage + "\"}"); + webConnection.send(httpResponse); + } + + public static boolean hasAllowedCharacters(String str, String allowedChars) { + if (str == null) { + return false; + } + + for (int i = 0; i < str.length(); i++) { + if (allowedChars.contains(Character.valueOf(str.toCharArray()[i]).toString())) { + continue; + } + + return false; + } + + return true; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NavigationComponent.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NavigationComponent.java new file mode 100644 index 0000000..7aa6854 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/NavigationComponent.java @@ -0,0 +1,9 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; + +public class NavigationComponent { + public static void navigation(WebConnection webConnection) { + webConnection.send(""); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/ProxyHabblet.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/ProxyHabblet.java new file mode 100644 index 0000000..13a0843 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/ProxyHabblet.java @@ -0,0 +1,195 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.controllers.site.MinimailController; +import org.alexdev.http.dao.CommunityDao; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.XSSUtil; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.UUID; +import java.util.function.ToIntFunction; + +public class ProxyHabblet { + public static void moreInfo(WebConnection webConnection) { + if (!webConnection.get().contains("hid")) { + webConnection.send(""); + return; + } + + if (webConnection.get().getString("hid").equals("h21")) { + webConnection.send("\n" + + "
      \n" + + "
        \n" + + "\n" + + "
      • \n" + + "
        \n" + + " Room name\n" + + " Alex \n" + + "\t\t\t\t

        test

        \n" + + "
        \n" + + "
      • \n" + + "
      \n" + + "
      \n" + + "\n"); + return; + } + + if (webConnection.get().getString("hid").equals("h122")) { + int limit = GameConfiguration.getInstance().getInteger("hot.groups.community.limit"); + + var hotGroups = CommunityDao.getHotGroups(limit, 0); + var hotSortedGroups = new ArrayList<>(hotGroups.keySet()); + hotSortedGroups.sort(Comparator.comparingInt((ToIntFunction) hotGroups::get).reversed()); + + var hotHiddenGroups = CommunityDao.getHotGroups(limit, limit); + var HotHiddenSortedGroups = new ArrayList<>(hotHiddenGroups.keySet()); + HotHiddenSortedGroups.sort(Comparator.comparingInt((ToIntFunction) hotHiddenGroups::get).reversed()); + + + Template template = webConnection.template("habblet/community_hot_groups"); + template.set("hotGroups", hotSortedGroups); + template.set("hotHiddenGroups", HotHiddenSortedGroups); + template.render(); + + return; + } + + if (webConnection.get().getString("hid").equals("h120")) { + Template template = webConnection.template("habblet/showMoreRooms"); + template.set("highestRatedRooms", RoomDao.getHighestRatedRooms(5, 0)); + template.set("highestHiddenRatedRooms", RoomDao.getHighestRatedRooms(5, 5)); + template.render(); + return; + } + + if (webConnection.get().getString("hid").equals("h24")) { + Template template = webConnection.template("habblet/tagList"); + template.set("tagCloud", Watchdog.TAG_CLOUD_20); + template.render(); + return; + } + + if (webConnection.get().getString("hid").equals("groups")) { + var hotGroups = CommunityDao.getHotGroups(GameConfiguration.getInstance().getInteger("hot.groups.limit"), 0); + + var sortedGroups = new ArrayList<>(hotGroups.keySet()); + sortedGroups.sort(Comparator.comparingInt((ToIntFunction) hotGroups::get).reversed()); + + Template template = webConnection.template("habblet/hot_groups"); + template.set("groups", sortedGroups); + template.render(); + return; + } + + webConnection.send(""); + } + + public static void minimail(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String habbletKey = ""; + + if (webConnection.get().contains("habbletKey")) { + habbletKey = webConnection.get().getString("habbletKey"); + } + + if (habbletKey.equalsIgnoreCase("news")) { + webConnection.send("
      \t\t\n" + + "\t\n" + + "\t
      \n" + + "\t\n" + + "\t\t
      \n" + + "\t\t\n" + + "\t\t\t
      \n" + + "\t\t\t\n" + + "\t\t\t
      The shit you don't even wanna know!
      \n" + + "\t\t\t\n" + + "\t\t
      \n" + + "\t\t\n" + + "\t\t
      \n" + + "\t\t\n" + + "\t\t\t
      \n" + + "\t\t\t\n" + + "\t\t\t\t
        \n" + + "\n" + + "\t\t\t\t
      \n" + + "\t\t\t\t\n" + + "\t\t\t
      \n" + + "\t\t\t\n" + + "\t\t
      \n" + + "\t\t\n" + + "\t\t
      \n" + + "\t\n" + + "\t
      \n" + + "\n" + + "\t\n" + + "\n" + + "
      \n" + + "\n" + + ""); + return; + } + + Template template = webConnection.template("habblet/minimail"); + webConnection.session().set("minimailLabel", "inbox"); + MinimailController.appendMessages(webConnection, template, true, false, false, false, false, false); + template.set("minimailClient", true); + template.render(); + } + + public static void clearhand(WebConnection connection) { + if (!connection.session().getBoolean("authenticated")) { + connection.send(""); + return; + } + + /* + System.out.println(connection.session().getString(XSSUtil.XSSKey)); + System.out.println(connection.session().getString(XSSUtil.XSSRequested)); + System.out.println(connection.session().getString(XSSUtil.XSSSeed)); + */ + + if (!XSSUtil.verifyKey(connection, "/credits")) { + connection.send("Failed to securely verify request"); + return; + } + + int userId = connection.session().getInt("user.id"); + ItemDao.deleteHandItems(userId); + + RconUtil.sendCommand(RconHeader.REFRESH_HAND, new HashMap<>() {{ + put("userId", userId); + }}); + + connection.send(""); + } + + public static void token_generate(WebConnection connection) { + if (!connection.session().getBoolean("authenticated")) { + connection.send(""); + return; + } + + String uuid = "token-" + UUID.randomUUID(); + connection.session().set("authenticationToken", uuid); + connection.send(uuid); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/RoomSelectionController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/RoomSelectionController.java new file mode 100644 index 0000000..122aeb8 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/RoomSelectionController.java @@ -0,0 +1,58 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; + +public class RoomSelectionController { + public static void confirm(WebConnection webConnection) { + var template = webConnection.template("habblet/roomselectionConfirm"); + template.render(); + } + + public static void create(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated") || !webConnection.post().contains("roomType")) { + webConnection.send(""); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (!playerDetails.canSelectRoom()) { + webConnection.send(""); + return; + } + + int roomType = Integer.parseInt(webConnection.post().getString("roomType")); + + if (roomType < 0 || roomType > 5) { + webConnection.send(""); + return; + } + + webConnection.send(""); + } + + public static void hide(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (!playerDetails.canSelectRoom()) { + webConnection.send(""); + return; + } + + playerDetails.setSelectedRoomId(-1); + + PlayerDao.saveSelectedRoom(playerDetails.getId(), -1); + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.NEWBIE_ROOM_LAYOUT, -1); + + webConnection.send(""); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/UpdateMottoController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/UpdateMottoController.java new file mode 100644 index 0000000..417ecd4 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/UpdateMottoController.java @@ -0,0 +1,81 @@ +package org.alexdev.http.controllers.habblet; + +import io.netty.handler.codec.http.FullHttpResponse; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.RconUtil; + +import java.util.HashMap; + +public class UpdateMottoController { + public static void updatemotto(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (webConnection.session().contains("lastMottoUpdate")) { + long lastUpdateDate = webConnection.session().getLongOrElse("lastMottoUpdate", DateUtil.getCurrentTimeSeconds()); + + if (DateUtil.getCurrentTimeSeconds() < lastUpdateDate) { + FullHttpResponse httpResponse = ResponseBuilder.create("" + HtmlUtil.escape(playerDetails.getMotto())); + webConnection.send(httpResponse); + return; + } + } + + webConnection.session().set("lastMottoUpdate", String.valueOf(DateUtil.getCurrentTimeSeconds())); + + String responseMotto = ""; + String motto = WordfilterManager.filterSentence(HtmlUtil.removeHtmlTags(webConnection.post().getString("motto"))); + + if (motto.length() > 100) { + motto = motto.substring(0, 100); + } + + if (motto.replace(" ", "").isEmpty()) { + responseMotto = "Click to enter your motto/ status"; + motto = ""; + } else if (motto.toLowerCase().equals("crikey")) { + responseMotto = ""; + /* else { + // Check previous motto and send back figure + if (playerDetails.getMotto().toLowerCase().equals("crikey")) { + responseMotto = "" + motto; + } + }*/ + } else { + + } + + if (!playerDetails.getMotto().equals(motto)) { + PlayerDao.saveMotto(userId, motto); + + if (playerDetails.isOnline()) { + RconUtil.sendCommand(RconHeader.REFRESH_LOOKS, new HashMap<>() {{ + put("userId", userId); + }}); + } + } + + FullHttpResponse httpResponse = ResponseBuilder.create(responseMotto + HtmlUtil.escape(motto)); + webConnection.send(httpResponse); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/VoucherController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/VoucherController.java new file mode 100644 index 0000000..0862ef8 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/habblet/VoucherController.java @@ -0,0 +1,53 @@ +package org.alexdev.http.controllers.habblet; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.game.catalogue.CatalogueItem; +import org.alexdev.havana.game.catalogue.voucher.VoucherManager; +import org.alexdev.havana.game.catalogue.voucher.VoucherRedeemMode; +import org.alexdev.havana.game.catalogue.voucher.VoucherRedeemStatus; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.util.RconUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +public class VoucherController { + public static void redeemVoucher(WebConnection webConnection) { + var tpl = webConnection.template("habblet/redeemvoucher"); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + AtomicInteger redeemedCredits = new AtomicInteger(0); + List redeemedItems = new ArrayList<>(); + + var voucherStatus = VoucherManager.getInstance().redeem(playerDetails, VoucherRedeemMode.IN_GAME, webConnection.post().getString("voucherCode"), redeemedItems, redeemedCredits); + + if (voucherStatus == VoucherRedeemStatus.FAILURE) { + tpl.set("voucherResult", "error"); + } + + if (voucherStatus == VoucherRedeemStatus.FAILURE_NEW_ACCOUNT) { + tpl.set("voucherResult", "too_new"); + } + + if (voucherStatus == VoucherRedeemStatus.SUCCESS) { + tpl.set("voucherResult", "success"); + } + + if (redeemedItems.size() > 0) { + RconUtil.sendCommand(RconHeader.REFRESH_HAND, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + } + + if (redeemedCredits.get() > 0) { + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + } + + tpl.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/HomesController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/HomesController.java new file mode 100644 index 0000000..6f352ef --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/HomesController.java @@ -0,0 +1,571 @@ +package org.alexdev.http.controllers.homes; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.HomeEditDao; +import org.alexdev.http.dao.HomesDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Home; +import org.alexdev.http.game.homes.Widget; +import org.alexdev.http.game.stickers.StickerCategory; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.HomeUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +public class HomesController { + public static void home(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().contains("authenticated")) { + return; + } + + Template template = webConnection.template("home"); + PlayerDetails playerDetails = null; + + if (webConnection.session().contains("authenticated")) { + playerDetails = (PlayerDetails) template.get("playerDetails"); + } + + String username = webConnection.getMatches().get(0); + + if (webConnection.getRouteRequest().endsWith("/id")) { + try { + int userId = Integer.parseInt(username); + username = PlayerDao.getName(userId); + } catch (Exception ex) { + + } + } + + if (username == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + PlayerDetails user = PlayerDao.getDetails(username); + + if (user == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (playerDetails == null || playerDetails.getRank().getRankId() < PlayerRank.MODERATOR.getRankId()) { + if (!user.isProfileVisible() || user.isBanned() != null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + } + + Home home = HomesDao.getHome(user.getId()); + + boolean defultWidgets = false; + + if (home == null) { + home = new Home(user.getId(), "bg_pattern_abstract2"); + defultWidgets = true; + //StickerManager.getInstance().createHome(user.getId()); + //home = HomesDao.getHome(user.getId()); + } + + boolean canAddFriend = false; + + int userId = -1;//webConnection.session().getInt("user.id"); + long sessionTime = -1;//HomeEditDao.getSession(webConnection.session().getInt("user.id")); + + if (webConnection.session().getBoolean("authenticated")) { + userId = webConnection.session().getInt("user.id"); + sessionTime = HomeEditDao.getSession(webConnection.session().getInt("user.id")); + + if (sessionTime != -1 && userId == user.getId()) { + webConnection.session().delete("groupEditSession"); + webConnection.session().set("homeEditSession", user); + } + + if (userId != user.getId() && !MessengerDao.friendExists(userId, user.getId())) { + canAddFriend = true; + } + } + + List widgets = null; + + if (defultWidgets) { + widgets = StickerManager.getInstance().getDefaultWidgets(user.getId()); + } else { + widgets = WidgetDao.getHomeWidgets(user.getId(), true); + } + + var enabledBadges = BadgeDao.getBadges(user.getId()).stream().filter(Badge::isEquipped).sorted(Comparator.comparingInt(Badge::getSlotId)).collect(Collectors.toList()); + var guestbook = WidgetDao.getHomeWidgets(user.getId()).stream().filter(w -> w.getProduct().getData().equalsIgnoreCase("guestbookwidget")).findFirst().orElse(null); + + webConnection.session().set("page", "me"); + + template.set("user", user); + template.set("tags", TagDao.getUserTags(user.getId())); + template.set("hasBadge", enabledBadges.size() > 0); + template.set("editMode", sessionTime != -1 && userId == user.getId()); + template.set("stickers", widgets); + template.set("homeBannerAd", HomeUtil.getRandomAd()); + template.set("home", home); + template.set("canAddFriend", canAddFriend); + template.set("guestbookSetting", guestbook != null ? guestbook.getGuestbookState() : "public"); + template.set("stickerLimit", HomeUtil.getStickerLimit(user.hasClubSubscription())); + template.set("tagCloud", new ArrayList()); + + if (enabledBadges.size() > 0) { + template.set("badgeCode", enabledBadges.get(0).getBadgeCode()); + } + + template.set("hasFavouriteGroup", false); + + if (user.getFavouriteGroupId() > 0) { + Group group = GroupDao.getGroup(user.getFavouriteGroupId()); + + if (group != null) { + template.set("hasFavouriteGroup", true); + template.set("group", group); + } + } + + if (webConnection.session().getBoolean("authenticated")) { + if (user.getId() == userId) { + PlayerStatisticsDao.updateStatistic(userId, PlayerStatistic.GUESTBOOK_UNREAD_MESSAGES, 0); + //HomesDao.resetUnreadMessages(userId); + } + } + + template.render(); + } + + public static void inventory(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var tpl = webConnection.template("homes/inventory/inventory"); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + List categories = StickerManager.getInstance().getCategories(playerDetails.getRank().getRankId()); + var stickerCategories = categories.stream().filter(category -> category.getCategoryType() == StickerCategory.STICKER_BACKGROUND_TYPE).sorted(Comparator.comparing(StickerCategory::getName)).collect(Collectors.toList()); + var backgroundCategories = categories.stream().filter(category -> category.getCategoryType() == StickerCategory.BACKGROUND_CATEGORY_TYPE).sorted(Comparator.comparing(StickerCategory::getName)).collect(Collectors.toList()); + + List widgetList = WidgetDao.getInventoryWidgets(playerDetails.getId(), 1); + List inventoryWidgets = new ArrayList<>(); + + for (Widget widget : widgetList) { + if (inventoryWidgets.stream().anyMatch(w -> w.getStickerId() == widget.getStickerId())) { + Widget w = inventoryWidgets.stream().filter(inv -> inv.getStickerId() == widget.getStickerId()).findFirst().get(); + w.setAmount(w.getAmount() + 1); + } else { + inventoryWidgets.add(widget); + } + } + + inventoryWidgets.sort(Comparator.comparingInt(Widget::getId).reversed()); + + int emptyBoxes = 0; + + if (widgetList.size() > 0) { + Widget widget = widgetList.get(0); + webConnection.headers().put("X-JSON", "[[\"Inventory\",\"Web Store\"],[\"" + widget.getProduct().getCssClass() + "\",\"" + widget.getProduct().getData() + "\",\"" + widget.getProduct().getName() + "\",\"Stickers\",null,1]]"); + } else { + webConnection.headers().put("X-JSON", "[[\"Inventory\",\"Web Store\"],[\"\",\"\",\"\",\"Stickers\",null,1]]"); + } + + if (widgetList.size() > 20) { + emptyBoxes = (int) (Math.ceil(widgetList.size()/4.0) * 4); + } else { + emptyBoxes = 20 - widgetList.size(); + } + + List emptyBox = new ArrayList<>(); + + if (emptyBoxes > 0) { + for (int i = 0; i < emptyBoxes; i++) { + emptyBox.add(null); + } + } + + tpl.set("stickerCategories", stickerCategories); + tpl.set("backgroundCategories", backgroundCategories); + tpl.set("emptyBoxes", emptyBox); + tpl.set("widgets", inventoryWidgets); + tpl.render(); + } + + public static void inventoryItems(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + + int typeId = 0; + String type = webConnection.post().getString("type"); + + if (type.equalsIgnoreCase("stickers")) { + typeId = 1; + } + + if (type.equalsIgnoreCase("backgrounds")) { + typeId = 4; + } + + if (type.equalsIgnoreCase("notes")) { + typeId = 3; + } + + if (!type.equalsIgnoreCase("widgets")) { + List widgetList = WidgetDao.getInventoryWidgets(webConnection.session().getInt("user.id"), typeId); + List inventoryWidgets = new ArrayList<>(); + + for (Widget widget : widgetList) { + if (inventoryWidgets.stream().anyMatch(w -> w.getStickerId() == widget.getStickerId())) { + Widget w = inventoryWidgets.stream().filter(inv -> inv.getStickerId() == widget.getStickerId()).findFirst().get(); + w.setAmount(w.getAmount() + 1); + } else { + inventoryWidgets.add(widget); + } + } + + inventoryWidgets.sort(Comparator.comparingInt(Widget::getId).reversed()); + + int emptyBoxes = 0; + + if (widgetList.size() > 20) { + emptyBoxes = (int) (Math.ceil(widgetList.size() / 4.0) * 4); + } else { + emptyBoxes = 20 - widgetList.size(); + } + + List emptyBox = new ArrayList<>(); + + if (emptyBoxes > 0) { + for (int i = 0; i < emptyBoxes; i++) { + emptyBox.add(null); + } + } + + var tpl = webConnection.template("homes/inventory/inventory_items"); + tpl.set("emptyBoxes", emptyBox); + tpl.set("widgets", inventoryWidgets); + tpl.set("widgetMode", false); + tpl.render(); + } else { + List widgetList = new ArrayList<>(); + + if (webConnection.session().contains("groupEditSession")) { + int groupId = webConnection.session().getInt("groupEditSession"); + widgetList = WidgetDao.getGroupWidgets(groupId); + widgetList = widgetList.stream().filter(widget -> widget.getProduct().getType() == StickerType.GROUP_WIDGET).collect(Collectors.toList()); + } else { + int userId = webConnection.session().getInt("user.id"); + widgetList = WidgetDao.getHomeWidgets(userId); + widgetList = widgetList.stream().filter(widget -> widget.getProduct().getType() == StickerType.HOME_WIDGET).collect(Collectors.toList()); + widgetList.removeIf(widget -> widget.getProduct().getData().equalsIgnoreCase("profilewidget")); + } + + var tpl = webConnection.template("homes/inventory/inventory_items"); + tpl.set("widgetMode", true); + tpl.set("widgets", widgetList); + tpl.render(); + } + } + + public static void inventoryPreview(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int itemId = webConnection.post().getInt("itemId"); + String type = webConnection.post().getString("type"); + int typeId = 0; + + if (type.equalsIgnoreCase("stickers")) { + typeId = 1; + } + + if (type.equalsIgnoreCase("backgrounds")) { + typeId = 4; + } + + if (type.equalsIgnoreCase("notes")) { + typeId = 3; + } + + if (type.equalsIgnoreCase("widgets")) { + typeId = webConnection.session().contains("groupEditSession") ? StickerType.GROUP_WIDGET.getTypeId() : StickerType.HOME_WIDGET.getTypeId(); + } + + Widget widget = null; + + if (typeId == StickerType.GROUP_WIDGET.getTypeId()) { + int groupId = webConnection.session().getInt("groupEditSession"); + List widgetList = WidgetDao.getGroupWidgets(groupId); + widget = widgetList.stream().filter(w -> w.getId() == itemId).findFirst().orElse(null); + } else if (typeId == StickerType.HOME_WIDGET.getTypeId()) { ; + int userId = webConnection.session().getInt("user.id"); + List widgetList = WidgetDao.getHomeWidgets(userId); + widget = widgetList.stream().filter(w -> w.getId() == itemId).findFirst().orElse(null); + } else { + List widgetList = WidgetDao.getInventoryWidgets(webConnection.session().getInt("user.id"), typeId); + widget = widgetList.stream().filter(w -> w.getId() == itemId).findFirst().orElse(null); + } + + if (widget != null && typeId == 1) { + webConnection.headers().put("X-JSON", "[\"" + widget.getProduct().getCssClass() + "\",\"" + widget.getProduct().getData() + "\",\"" + widget.getProduct().getName() + "\",\"Sticker\",null,1]"); + } else if (widget != null && typeId == 4) { + webConnection.headers().put("X-JSON", String.format("[\"%s\",\"b_%s\",\"%s\",\"%s\",null,1]", widget.getProduct().getCssClass(), widget.getProduct().getData(), widget.getProduct().getName(), "Background")); + } else if (widget != null && typeId == 3) { + webConnection.headers().put("X-JSON", "[\"commodity_stickienote_pre\",null,\"Notes\",\"WebCommodity\",null,1]"); + } else if (widget != null && (typeId == StickerType.GROUP_WIDGET.getTypeId() || typeId == StickerType.HOME_WIDGET.getTypeId())) { + webConnection.headers().put("X-JSON", "[\"" + widget.getProduct().getCssClass() + "\",null,\"\",\"Widget\",\"true\",1]"); + } else { + webConnection.headers().put("X-JSON", "[\"\",\"\",\"\",\"Sticker\",null,1]"); + } + + var tpl = webConnection.template("homes/inventory/inventory_preview"); + tpl.render(); + } + + public static void startEditingSession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + String match = webConnection.getMatches().get(0); + + if (!StringUtils.isNumeric(match)) { + webConnection.redirect("/me"); + return; + } + + int targetId = Integer.parseInt(match); + + if (targetId != userId) { + webConnection.redirect("/me"); + return; + } + + Home home = HomesDao.getHome(targetId); + + if (home == null) { + StickerManager.getInstance().createHome(targetId); + } + + if (!HomeEditDao.hasSession(userId)) { + HomeEditDao.createSession(userId); + webConnection.session().set("homeEditSession", userId); + webConnection.session().delete("groupEditSession"); + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + webConnection.redirect("/home/" + playerDetails.getName()); + } + + public static void cancelEditingSession(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + String match = webConnection.getMatches().get(0); + + if (!StringUtils.isNumeric(match)) { + webConnection.redirect("/me"); + return; + } + + int targetId = Integer.parseInt(match); + + if (targetId != userId) { + webConnection.redirect("/me"); + return; + } + + if (HomeEditDao.hasSession(userId)) { + HomeEditDao.delete(userId); + webConnection.session().delete("homeEditSession"); + webConnection.session().delete("groupEditSession"); + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + webConnection.redirect("/home/" + playerDetails.getName()); + } + + public static void save(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + if (!HomeEditDao.hasSession(userId)) { + webConnection.send(""); + return; + } + + Home home = HomesDao.getHome(userId); + List homeWidgets = WidgetDao.getHomeWidgets(userId, true); + + try { + if (webConnection.post().contains("background")) { + int backgroundId = Integer.parseInt(webConnection.post().getString("background").split(":")[0]); + + + List widgetList = WidgetDao.getInventoryWidgets(playerDetails.getId()); + Widget widget = widgetList.stream().filter(w -> w.getId() == backgroundId).findFirst().orElse(null); + + if (widget != null) { + home.setBackground(widget.getProduct().getData()); + home.saveBackground(); + } + } + + if (webConnection.post().contains("stickers")) { + String[] stickerData = webConnection.post().getString("stickers").split(Pattern.quote("/")); + + if (stickerData.length >= HomeUtil.getStickerLimit(playerDetails.hasClubSubscription())) { + webConnection.send(""); + return; + } + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = homeWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + + if (webConnection.post().contains("widgets")) { + String[] stickerData = webConnection.post().getString("widgets").split(Pattern.quote("/")); + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = homeWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + + if (webConnection.post().contains("stickienotes")) { + String[] stickerData = webConnection.post().getString("stickienotes").split(Pattern.quote("/")); + + for (String sticker : stickerData) { + int stickerId = Integer.parseInt(sticker.split(":")[0]); + String[] coordData = sticker.replace(stickerId + ":", "").split(","); + + int x = Integer.parseInt(coordData[0]); + int y = Integer.parseInt(coordData[1]); + int z = Integer.parseInt(coordData[2]); + + Widget widget = homeWidgets.stream().filter(w -> w.getId() == stickerId).findFirst().orElse(null); + + if (widget != null) { + widget.setX(x); + widget.setY(y); + widget.setZ(z); + widget.save(); + } + } + } + } catch (Exception ex) { + + } + + webConnection.send("\n"); + + + HomeEditDao.delete(userId); + webConnection.session().delete("homeEditSession"); + } + + public static void tagList(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + int accountId = webConnection.post().getInt("accountId"); + + var template = webConnection.template("homes/widget/habblet/taglist"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + webConnection.send(""); + return; + } + + List tags = TagDao.getUserTags(accountId); + + template.set("tags", tags); + template.set("user", playerDetails); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/NoteEditorController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/NoteEditorController.java new file mode 100644 index 0000000..3562af7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/NoteEditorController.java @@ -0,0 +1,297 @@ +package org.alexdev.http.controllers.homes; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; +import org.alexdev.http.dao.GroupEditDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +public class NoteEditorController { + public static void noteEditor(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String noteText = webConnection.post().getString("noteText"); + int skin = webConnection.post().getInt("skin"); + + if (noteText.length() > 500) { + noteText = noteText.substring(0, 500); + } + + Template template = webConnection.template("homes/editor/noteeditor"); + + if (skin > 0 && skin < 9) { + template.set("skin" + skin + "Selected", " selected"); + } + + template.set("noteText", noteText); + template.render(); + } + + + public static void notePreview(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String noteText = BBCode.format(HtmlUtil.escape(BBCode.normalise(webConnection.post().getString("noteText"))), false); + int skin = webConnection.post().getInt("skin"); + + if (noteText.length() > 500) { + noteText = noteText.substring(0, 500); + } + + Template template = webConnection.template("homes/editor/preview"); + template.set("skin", StickerManager.getInstance().getSkin(skin)); + template.set("noteText", noteText); + template.render(); + } + + public static void search(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String query = webConnection.get().getString("query"); + int scope = webConnection.get().getInt("scope"); + String type = null; + + + List> querySearch = new ArrayList<>(); + + switch (scope) { + case 1: + type = "habbo"; + + List searchedFriends = new ArrayList<>(); + + for (int playerId : MessengerDao.search(query)) { + searchedFriends.add(PlayerDao.getDetails(playerId)); + } + + searchedFriends.sort(Comparator.comparing(PlayerDetails::getName)); + + for (PlayerDetails playerDetails : searchedFriends.stream().limit(10).collect(Collectors.toList())) { + querySearch.add(Pair.of(playerDetails.getName(), String.valueOf(playerDetails.getId()))); + } + + break; + case 2: + type = "room"; + + var roomList = RoomDao.searchRooms(query, -1, 30); + + for (Room room : roomList.stream().limit(10).collect(Collectors.toList())) { + querySearch.add(Pair.of(room.getData().getName(), String.valueOf(room.getData().getId()))); + } + + break; + default: + type = "group"; + + var groupList = GroupDao.querySearch(query); + + for (Group group : groupList.stream().limit(10).collect(Collectors.toList())) { + querySearch.add(Pair.of(group.getName(), String.valueOf(group.getId()))); + } + + break; + } + + Template tpl = webConnection.template("homes/editor/search"); + tpl.set("querySearch", querySearch); + tpl.set("type", type); + tpl.render(); + } + + public static void place(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + int skin = webConnection.post().getInt("skin"); + String noteText = webConnection.post().getString("noteText"); + + if (noteText.length() > 500) { + noteText = noteText.substring(0, 500); + } + + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + Widget widget = WidgetDao.getInventoryWidgets(userId, StickerType.NOTE.getTypeId()).get(0); + widget.setX(20); + widget.setY(30); + widget.setZ(1); + + if (isGroupEdit) { + widget.setGroupId(webConnection.session().getInt("groupEditSession")); + } + + widget.setText(noteText); + widget.setSkinId(skin); + widget.setPlaced(true); + widget.save(); + + webConnection.headers().put("X-JSON", "" + widget.getId() + ""); + + Template tpl = widget.template(webConnection); + tpl.render(); + } + + public static void stickieEdit(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("stickieId"); + int skinId = webConnection.post().getInt("skinId"); + + Widget widget = null; + + if (isGroupEdit) { + widget = WidgetDao.getGroupWidget(widgetId, webConnection.session().getInt("groupEditSession")); + } else { + widget = WidgetDao.getHomeWidget(userId, widgetId); + } + + if (widget == null) { + webConnection.send(""); + return; + } + + Template tpl = widget.template(webConnection); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if ((skinId == 7 || skinId == 8) && !playerDetails.hasClubSubscription()) { + skinId = 1; + } + + if (skinId == 9 && playerDetails.getRank().getRankId() < 5) { + skinId = 1; + } + + widget.setSkinId(skinId); + widget.save(); + + webConnection.headers().put("X-JSON", "{\"id\":\"" + widget.getId() + "\",\"cssClass\":\"n_skin_" + widget.getSkin() + "\",\"type\":\"stickie\"}"); + + + tpl.set("sticker", widget); + tpl.render(); + } + + public static void stickieDelete(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int stickieId = webConnection.post().getInt("stickieId"); + + if (isGroupEdit) { + WidgetDao.delete(stickieId, webConnection.session().getInt("groupEditSession")); + } else { + WidgetDao.deleteHomeNote(stickieId, userId); + } + + webConnection.send("SUCCESS"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/WidgetController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/WidgetController.java new file mode 100644 index 0000000..9bd865b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/WidgetController.java @@ -0,0 +1,329 @@ +package org.alexdev.http.controllers.homes; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.dao.GroupEditDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +public class WidgetController { + public static void editWidget(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("widgetId"); + int skinId = webConnection.post().getInt("skinId"); + + Widget widget = null; + + if (isGroupEdit) { + widget = WidgetDao.getGroupWidget(widgetId, webConnection.session().getInt("groupEditSession")); + } else { + widget = WidgetDao.getHomeWidget(userId, widgetId); + } + + if (widget == null) { + webConnection.send(""); + return; + } + + Template tpl = widget.template(webConnection); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if ((skinId == 7 || skinId == 8) && !playerDetails.hasClubSubscription()) { + skinId = 1; + } + + if (skinId == 9 && playerDetails.getRank().getRankId() < 5) { + skinId = 1; + } + + widget.setSkinId(skinId); + widget.save(); + + if (widget.getProduct().isGroupWidget() || widget.getProduct().isHomeWidget()) { + webConnection.headers().put("X-JSON", "{\"id\":\"" + widget.getId() + "\",\"cssClass\":\"w_skin_" + widget.getSkin() + "\",\"type\":\"widget\"}"); + } + + + tpl.set("sticker", widget); + tpl.render(); + + } + + public static void placeSticker(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("selectedStickerId"); + int zindex = webConnection.post().getInt("zindex"); + + if (zindex < 0 || zindex > 100) { + zindex = 0; + } + + Widget widget = WidgetDao.getInventoryWidget(userId, widgetId); + widget.setX(20); + widget.setY(30); + widget.setZ(zindex); + + if (isGroupEdit) { + widget.setGroupId( webConnection.session().getInt("groupEditSession")); + } + + widget.setPlaced(true); + widget.save(); + + webConnection.headers().put("X-JSON", "[\"" + widget.getId() + "\"]"); + + Template tpl = widget.template(webConnection); + tpl.render(); + + } + + public static void placeWidget(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("widgetId"); + int zindex = webConnection.post().getInt("zindex"); + + if (zindex < 0 || zindex > 100) { + zindex = 0; + } + + Widget widget = null; + + if (isGroupEdit) { + widget = WidgetDao.getGroupWidget(widgetId, webConnection.session().getInt("groupEditSession")); + } else { + widget = WidgetDao.getHomeWidget(userId, widgetId); + } + + widget.setX(10); + widget.setY(10); + widget.setZ(zindex); + + if (isGroupEdit) { + widget.setGroupId(webConnection.session().getInt("groupEditSession")); + } + + widget.setPlaced(true); + widget.save(); + + webConnection.headers().put("X-JSON", "[\"" + widget.getId() + "\"]"); + + Template tpl = widget.template(webConnection); + + if (isGroupEdit) { + tpl.set("group", GroupDao.getGroup(widget.getGroupId())); + } + + tpl.render(); + + } + + public static void removeSticker(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("stickerId"); + Widget widget = null; + + if (isGroupEdit) { + widget = WidgetDao.getGroupWidget(widgetId, webConnection.session().getInt("groupEditSession")); + } else { + widget = WidgetDao.getHomeWidget(userId, widgetId); + } + + if (widget == null) { + webConnection.send(""); + return; + } + + widget.setX(0); + widget.setY(0); + widget.setZ(0); + widget.setGroupId(0); + widget.setPlaced(false); + widget.save(); + + webConnection.send("SUCCESS"); + } + + public static void removeWidget(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + boolean isGroupEdit = webConnection.session().contains("groupEditSession"); + + if (isGroupEdit) { + int groupId = webConnection.session().getInt("groupEditSession"); + Group group = GroupDao.getGroup(groupId); + + if (group == null) { + webConnection.send(""); + return; + } + + if (!GroupEditDao.hasSession(userId, group.getId())) { + webConnection.send(""); + return; + } + + + } else { + if (!webConnection.session().contains("homeEditSession")) { + webConnection.send(""); + return; + } + } + + int widgetId = webConnection.post().getInt("widgetId"); + + Widget widget = null; + + if (isGroupEdit) { + widget = WidgetDao.getGroupWidget(widgetId, webConnection.session().getInt("groupEditSession")); + } else { + widget = WidgetDao.getHomeWidget(userId, widgetId); + } + + if (widget == null) { + webConnection.send(""); + return; + } + + if (widget.getProduct().getData().equalsIgnoreCase("groupinfowidget") || widget.getProduct().getData().equalsIgnoreCase("profilewidget")) { + webConnection.send(""); + return; + } + + widget.setX(0); + widget.setY(0); + widget.setZ(0); + + if (isGroupEdit) { + widget.setGroupId(webConnection.session().getInt("groupEditSession")); + } + + widget.setPlaced(false); + widget.save(); + + webConnection.send("SUCCESS"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/store/StoreController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/store/StoreController.java new file mode 100644 index 0000000..dd29d46 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/store/StoreController.java @@ -0,0 +1,345 @@ +package org.alexdev.http.controllers.homes.store; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.stickers.StickerCategory; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.game.stickers.StickerProduct; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.RconUtil; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +public class StoreController { + public static void main(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var tpl = webConnection.template("homes/store/main"); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + List categories = StickerManager.getInstance().getCategories(playerDetails.getRank().getRankId()); + var stickerCategories = categories.stream().filter(category -> category.getCategoryType() == StickerCategory.STICKER_BACKGROUND_TYPE).sorted(Comparator.comparing(StickerCategory::getName)).collect(Collectors.toList()); + var backgroundCategories = categories.stream().filter(category -> category.getCategoryType() == StickerCategory.BACKGROUND_CATEGORY_TYPE).sorted(Comparator.comparing(StickerCategory::getName)).collect(Collectors.toList()); + + int stickerCategory = -1; + List products = new ArrayList<>(); + + if (stickerCategories.size() > 0) { + stickerCategory = stickerCategories.get(0).getId(); + } else if (backgroundCategories.size() > 0) { + stickerCategory = backgroundCategories.get(0).getId(); + } + + if (stickerCategory != -1) { + int finalStickerCategory = stickerCategory; + products = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getCategoryId() == finalStickerCategory).collect(Collectors.toList()); + } + + int emptyBoxes = 0; + + if (products.size() > 20) { + emptyBoxes = (int) (Math.ceil(products.size()/5.0) * 5); + } else { + emptyBoxes = 20 - products.size(); + } + + StickerProduct product = null; + + if (products.size() > 0) { + product = products.get(0); + webConnection.headers().put("X-JSON", "[[\"Inventory\",\"Web Store\"],[{\"itemCount\":" + product.getAmount() + ",\"previewCssClass\":\"" + product.getCssClass() + "\",\"titleKey\":\"\"}]]"); + } else { + webConnection.headers().put("X-JSON", "[[\"Inventory\",\"Web Store\"],[{\"itemCount\":0,\"titleKey\":\"\"}]]"); + } + + List emptyBox = new ArrayList<>(); + + if (emptyBoxes > 0) { + for (int i = 0; i < emptyBoxes; i++) { + emptyBox.add(null); + } + } + + tpl.set("stickerCategories", stickerCategories); + tpl.set("backgroundCategories", backgroundCategories); + tpl.set("products", products); + tpl.set("product", product); + tpl.set("emptyBoxes", emptyBox); + tpl.render(); + } + + public static void items(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var tpl = webConnection.template("homes/store/items"); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + int subCategory = webConnection.post().getInt("subCategoryId"); + StickerCategory category = StickerManager.getInstance().getCategory(subCategory); + + if (category == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + List products = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getCategoryId() == category.getId()).collect(Collectors.toList()); + + int emptyBoxes = 0; + + if (products.size() > 20) { + emptyBoxes = (int) (Math.ceil(products.size()/5.0) * 5); + } else { + emptyBoxes = 20 - products.size(); + } + + tpl.set("products", products); + tpl.set("emptyProducts", emptyBoxes); + tpl.render(); + } + + public static void preview(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int productId = webConnection.post().getInt("productId"); + StickerProduct stickerProduct = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getId() == productId).findFirst().orElse(null); + + if (stickerProduct == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (stickerProduct.getType() == StickerType.STICKER || stickerProduct.getType() == StickerType.NOTE) { + webConnection.headers().put("X-JSON", "[{\"itemCount\":" + stickerProduct.getAmount() + ",\"previewCssClass\":\"" + stickerProduct.getCssClass() + "\",\"titleKey\":\"" + stickerProduct.getName() + "\"}]"); + } else if (stickerProduct.getType() == StickerType.BACKGROUND){ + webConnection.headers().put("X-JSON", "[{\"bgCssClass\":\"b_" + stickerProduct.getData() + "\",\"itemCount\":" + stickerProduct.getAmount() + ",\"previewCssClass\":\"" + stickerProduct.getCssClass() + "\",\"titleKey\":\"" + stickerProduct.getName() + "\"}]"); + } + + var tpl = webConnection.template("homes/store/preview"); + tpl.set("product", stickerProduct); + tpl.render(); + } + + public static void purchaseConfirm(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int productId = webConnection.post().getInt("productId"); + StickerProduct stickerProduct = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getId() == productId).findFirst().orElse(null); + + if (stickerProduct == null) { + return; + } + + + var tpl = webConnection.template("homes/store/purchase_confirm"); + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + tpl.set("product", stickerProduct); + + if (playerDetails.getCredits() < stickerProduct.getPrice()) { + tpl.set("noCredits", true); + } else { + tpl.set("noCredits", false); + } + + tpl.render(); + } + + public static void backgroundWarning(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var tpl = webConnection.template("homes/store/background_warning"); + tpl.render(); + + } + + public static void purchaseBackgrounds(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int widgetId = webConnection.post().getInt("selectedId"); + + /* + +

      +You already own this item.
      +

      + +

      +Cancel +

      + +
      + + */ + + StickerProduct stickerProduct = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getId() == widgetId).findFirst().orElse(null); + + if (stickerProduct == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (stickerProduct.getType() != StickerType.BACKGROUND) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails.getCredits() < stickerProduct.getPrice()) { + webConnection.send(""); + return; + } + + for (int i = 0; i < stickerProduct.getAmount(); i++) { + WidgetDao.purchaseWidget(userId, 0, 0, 0, 0, stickerProduct.getId(), "", 0, false); + } + + CurrencyDao.decreaseCredits(playerDetails, stickerProduct.getPrice()); + + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + webConnection.send("OK"); + } + + public static void purchaseStickers(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int widgetId = webConnection.post().getInt("selectedId"); + + StickerProduct stickerProduct = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getId() == widgetId).findFirst().orElse(null); + + if (stickerProduct == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (stickerProduct.getType() != StickerType.STICKER) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails.getCredits() < stickerProduct.getPrice()) { + webConnection.send(""); + return; + } + + for (int i = 0; i < stickerProduct.getAmount(); i++) { + WidgetDao.purchaseWidget(userId, 0, 0, 0, 0, stickerProduct.getId(), "", 0, false); + } + + // if (type.equalsIgnoreCase("stickers")) { + // typeId = 1; + // } + // + // if (type.equalsIgnoreCase("backgrounds")) { + // typeId = 4; + // } + // + // if (type.equalsIgnoreCase("notes")) { + // typeId = 3; + // } + + CurrencyDao.decreaseCredits(playerDetails, stickerProduct.getPrice()); + + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + webConnection.send("OK"); + } + + public static void purchaseStickieNotes(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int widgetId = webConnection.post().getInt("selectedId"); + + StickerProduct stickerProduct = StickerManager.getInstance().getCatalogueList().stream().filter(product -> product.getId() == widgetId).findFirst().orElse(null); + + if (stickerProduct == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + if (stickerProduct.getType() != StickerType.NOTE) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (playerDetails.getCredits() < stickerProduct.getPrice()) { + webConnection.send(""); + return; + } + + + for (int i = 0; i < stickerProduct.getAmount(); i++) { + WidgetDao.purchaseWidget(userId, 0, 0, 0, 0, stickerProduct.getId(), "", 0, false); + } + + CurrencyDao.decreaseCredits(playerDetails, stickerProduct.getPrice()); + + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + webConnection.send("OK"); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/BadgesController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/BadgesController.java new file mode 100644 index 0000000..1f1acd0 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/BadgesController.java @@ -0,0 +1,51 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +import java.util.List; + +public class BadgesController { + public static void badgepaging(WebConnection webConnection) { + int widgetId = webConnection.post().getInt("widgetId"); + int pageNumber = webConnection.post().getInt("pageNumber"); + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null) { + webConnection.send(""); + return; + } + + var pages = widget.getBadgeList(); + boolean showLast = true; + + List badgeList = pages.get(0); + + if (pageNumber > pages.size()) { + pageNumber = pages.size(); + } + + if (pageNumber >= pages.size()) { + showLast = false; + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + if (pages.containsKey(pageNumber - 1)) { + badgeList = pages.get(pageNumber - 1); + } + + var template = webConnection.template("homes/widget/habblet/badgepaging"); + template.set("sticker", widget); + template.set("pages", pages.size()); + template.set("showLast", showLast); + template.set("badgeList", badgeList); + template.set("currentPage", pageNumber); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/FriendsWidgetController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/FriendsWidgetController.java new file mode 100644 index 0000000..a1607ab --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/FriendsWidgetController.java @@ -0,0 +1,62 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +import java.util.List; + +public class FriendsWidgetController { + public static void friendsearchpaging(WebConnection webConnection) { + int widgetId = webConnection.post().getInt("widgetId"); + int pageNumber = 1; + + try { + pageNumber = webConnection.post().getInt("pageNumber"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + String searchString = webConnection.post().getString("searchString"); + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null) { + webConnection.send(""); + return; + } + + var pages = searchString.isBlank() ? widget.getFriendsPages() : widget.getFriendsPagesSearch(searchString); + List friendsList = widget.getFriendsList(searchString, pageNumber); + + var template = webConnection.template("homes/widget/habblet/friendsearchpaging"); + template.set("sticker", widget); + template.set("pages", pages); + template.set("friends", widget.getFriendsAmount()); + template.set("friendsList", friendsList); + template.set("currentPage", pageNumber); + template.render(); + + } + + public static void avatarinfo(WebConnection webConnection) { + int userId = webConnection.post().getInt("anAccountId"); + PlayerDetails playerDetails = PlayerDao.getDetails(userId); + + if (playerDetails == null) { + webConnection.send(""); + return; + } + + var template = webConnection.template("homes/widget/habblet/avatarinfo"); + template.set("avatar", playerDetails); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/GuestbookController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/GuestbookController.java new file mode 100644 index 0000000..a27b18d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/GuestbookController.java @@ -0,0 +1,200 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.dao.GuestbookDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.GuestbookEntry; +import org.alexdev.http.game.homes.Widget; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; + +import java.util.concurrent.ThreadLocalRandom; + +public class GuestbookController { + public static void preview(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + String message = BBCode.format(HtmlUtil.escape(BBCode.normalise(webConnection.post().getString("message"))), false); + + if (message.length() > 200) { + message = message.substring(0, 200); + } + + Template template = webConnection.template("homes/widget/guestbook/preview"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + template.set("message", message); + template.set("author", playerDetails); + template.set("formattedDate", DateUtil.getFriendlyDate(DateUtil.getCurrentTimeSeconds())); + template.render(); + } + + public static void add(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int widgetId = webConnection.post().getInt("widgetId"); + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null || !widget.getProduct().getData().toLowerCase().equals("guestbookwidget")) { + webConnection.send(""); + return; + } + + String message = webConnection.post().getString("message"); + + if (message.length() > 200) { + message = message.substring(0, 200); + } + + if (!widget.isPlaced()) { + webConnection.send(""); + return; + } + + if (!widget.isPostingAllowed(webConnection.session().getInt("user.id"))) { + webConnection.send(""); + return; + } + + int homeId = 0; + int groupId = 0; + + if (widget.getProduct().getType() == StickerType.GROUP_WIDGET) { + groupId = widget.getGroupId(); + } else if (widget.getProduct().getType() == StickerType.HOME_WIDGET) { + homeId = widget.getUserId(); + + if (homeId != webConnection.session().getInt("user.id")) { + PlayerStatisticsDao.incrementStatistic(homeId, PlayerStatistic.GUESTBOOK_UNREAD_MESSAGES, 1); + //HomesDao.incrementUnreadMessages(homeId); + } + } + GuestbookEntry guestbookEntry = null; + + if (WordfilterManager.filterSentence(message).equals(message)) { + guestbookEntry = GuestbookDao.create(webConnection.session().getInt("user.id"), homeId, groupId, message); + } else { + guestbookEntry = new GuestbookEntry(ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE), webConnection.session().getInt("user.id"), homeId, groupId, message, DateUtil.getCurrentTimeSeconds()); + } + + Template template = webConnection.template("homes/widget/guestbook/add"); + template.set("entry", guestbookEntry); + template.set("sticker", widget); + template.set("canDeleteEntries", widget.canDeleteEntries(webConnection.session().getInt("user.id"))); + template.render(); + } + + public static void remove(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + int entryId = -1; + int widgetId = -1; + + try { + entryId = webConnection.post().getInt("entryId"); + widgetId = webConnection.post().getInt("widgetId"); + } catch (Exception ex) { + + } + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null || !widget.getProduct().getData().toLowerCase().equals("guestbookwidget") || !widget.isPlaced()) { + webConnection.send(""); + return; + } + + GuestbookEntry entry = GuestbookDao.getEntry(entryId); + + if (entry == null || !widget.canDeleteEntries(webConnection.session().getInt("user.id")) && entry.getUserId() != webConnection.session().getInt("user.id")) { + webConnection.send(""); + return; + } + + int homeId = 0; + int groupId = 0; + + if (widget.getProduct().getType() == StickerType.GROUP_WIDGET) { + groupId = widget.getGroupId(); + } else if (widget.getProduct().getType() == StickerType.HOME_WIDGET) { + homeId = widget.getUserId(); + } + + GuestbookDao.remove(entryId, homeId, groupId); + + Template template = webConnection.template("homes/widget/guestbook_widget"); + template.set("editMode", webConnection.session().contains("homeEditSession") || webConnection.session().contains("groupEditSession")); + template.set("sticker", widget); + template.render(); + } + + public static void configure(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int widgetId = webConnection.post().getInt("widgetId"); + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null || !widget.getProduct().getData().toLowerCase().equals("guestbookwidget") || !widget.isPlaced()) { + webConnection.send(""); + return; + } + + int ownerId = 0; + + if (widget.getProduct().getType() == StickerType.GROUP_WIDGET) { + ownerId = GroupDao.getGroupOwner(widget.getGroupId()); + } else if (widget.getProduct().getType() == StickerType.HOME_WIDGET) { + ownerId = widget.getUserId(); + } + + if (ownerId != userId) { + webConnection.send(""); + return; + } + + if (widget.getGuestbookState().equalsIgnoreCase("private")) { + widget.setExtraData("public"); + } else { + widget.setExtraData("private"); + } + + widget.save(); + + webConnection.send(ResponseBuilder.create("text/javascript", "var el = $(\"guestbook-type\");\n" + + "if (el) {\n" + + "\tif (el.hasClassName(\"public\")) {\n" + + "\t\tel.className = \"private\";\n" + + "\t\tnew Effect.Pulsate(el,\n" + + "\t\t\t{ duration: 1.0, afterFinish : function() { Element.setOpacity(el, 1); } }\n" + + "\t\t);\t\t\t\t\t\t\n" + + "\t} else {\t\t\t\t\t\t\n" + + "\t\tnew Effect.Pulsate(el,\n" + + "\t\t\t{ duration: 1.0, afterFinish : function() { Element.setOpacity(el, 0); el.className = \"public\"; } }\n" + + "\t\t);\t\t\t\t\t\t\n" + + "\t}\n" + + "}")); + + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/MemberWidgetController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/MemberWidgetController.java new file mode 100644 index 0000000..af99422 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/MemberWidgetController.java @@ -0,0 +1,47 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +import java.util.List; + +public class MemberWidgetController { + public static void membersearchpaging(WebConnection webConnection) { + int widgetId = webConnection.post().getInt("widgetId"); + int pageNumber = 1; + + try { + pageNumber = webConnection.post().getInt("pageNumber"); + } catch (Exception ex) { + + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + String searchString = webConnection.post().getString("searchString"); + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null) { + webConnection.send(""); + return; + } + + var pages = widget.getMembersPages(); + List memberList = widget.getMembersList(searchString, pageNumber); + + var template = webConnection.template("homes/widget/habblet/membersearchpaging"); + template.set("sticker", widget); + template.set("pages", pages); + template.set("members", widget.getMembersAmount()); + template.set("membersList", memberList); + template.set("currentPage", pageNumber); + template.set("group", GroupDao.getGroup(widget.getGroupId())); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/RateController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/RateController.java new file mode 100644 index 0000000..b1f5805 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/RateController.java @@ -0,0 +1,87 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.dao.RatingDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +public class RateController { + public static void rate(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + int widgetId = -1; + int rating = -1; + + try { + widgetId = webConnection.get().getInt("ratingId"); + rating = webConnection.get().getInt("givenRate"); + } catch (Exception ex) { + + } + + if (rating < 1 || rating > 5) { + webConnection.send(""); + return; + } + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null) { + webConnection.send(""); + return; + } + + int homeId = widget.getUserId(); + + if (homeId == userId) { + webConnection.send(""); + return; + } + + if (RatingDao.hasRated(userId, homeId)) { + webConnection.send(""); + return; + } + + RatingDao.rate(userId, homeId, rating); + + var template = webConnection.template("homes/widget/habblet/rate"); + template.set("sticker", widget); + template.render(); + } + + public static void resetRating(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int widgetId = webConnection.get().getInt("ratingId"); + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null) { + webConnection.send(""); + return; + } + + int homeId = widget.getUserId(); + + if (homeId != userId) { + webConnection.send(""); + return; + } + + RatingDao.deleteRating(homeId); + + var template = webConnection.template("homes/widget/habblet/rate"); + template.set("sticker", widget); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/TraxController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/TraxController.java new file mode 100644 index 0000000..589723f --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/homes/widgets/TraxController.java @@ -0,0 +1,105 @@ +package org.alexdev.http.controllers.homes.widgets; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.SongMachineDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.song.Song; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; +import org.alexdev.http.game.stickers.StickerType; +import org.apache.commons.lang3.StringUtils; + +public class TraxController { + public static void selectSong(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + int widgetId = -1; + int songId = -1; + + try { + widgetId = webConnection.post().getInt("widgetId"); + } catch (Exception ex) { + + } + + try { + songId = webConnection.post().getInt("songId"); + } catch (Exception ex) { + + } + + Widget widget = WidgetDao.getWidget(widgetId); + + if (widget == null || !widget.getProduct().getData().toLowerCase().equals("traxplayerwidget")) { + webConnection.send(""); + return; + } + + boolean canSelect = false; + + if (widget.getProduct().getType() == StickerType.GROUP_WIDGET) { + canSelect = (GroupDao.getGroupOwner(widget.getGroupId()) == playerDetails.getId()); + } else if (widget.getProduct().getType() == StickerType.HOME_WIDGET) { + canSelect = (widget.getUserId() == playerDetails.getId()); + } + + if (!canSelect) { + webConnection.send(""); + return; + } + + var songList = widget.getSongs(); + Song song = SongMachineDao.getSong(songId); + + if (songId == 0 || song == null || songList.stream().noneMatch(s -> s.getId() == song.getId())) { + widget.setExtraData(""); + } else { + widget.setExtraData("" + song.getId()); + } + + WidgetDao.save(widget); + + Template template = webConnection.template("homes/widget/habblet/trax_song"); + template.set("sticker", widget); + template.render(); + } + + public static void getSong(WebConnection webConnection) { + String songData = null; + + try { + songData = webConnection.getMatches().get(0); + } catch (Exception ex) { + + } + + if (!StringUtils.isNumeric(songData)) { + webConnection.send(""); + return; + } + + try { + Song song = SongMachineDao.getSong(Integer.parseInt(songData)); + String data = song.getData().substring(0, song.getData().length() - 1); + + String trackData = data; + trackData = trackData.replace(":4:", "&track4="); + trackData = trackData.replace(":3:", "&track3="); + trackData = trackData.replace(":2:", "&track2="); + trackData = trackData.replace("1:", "&track1="); + + String author = PlayerDao.getName(song.getUserId()); + webConnection.send("status=0&name=" + song.getTitle() + "&author=" + author + trackData); + } catch (Exception ex) { + webConnection.send(""); + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingAdsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingAdsController.java new file mode 100644 index 0000000..d92bc96 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingAdsController.java @@ -0,0 +1,180 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.AdvertisementsDao; +import org.alexdev.havana.game.ads.AdManager; +import org.alexdev.havana.game.ads.Advertisement; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.Routes; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.SessionUtil; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; + +public class HousekeepingAdsController { + + /** + * Handle the /housekeeping/room_ads URI request + * + * @param client the connection + */ + public static void roomads(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_ads"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_ads")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + if (client.post().queries().size() > 0) { + List advertisementList = new ArrayList<>(); + + for (var kvp : client.post().getValues().entrySet()) { + String key = kvp.getKey(); + String value = kvp.getValue(); + + if (!key.startsWith("roomad-id-")) { + continue; + } + + int roomId = client.post().getInt("roomad-" + value + "-roomid"); + boolean isLoadingAd = client.post().contains("roomad-" + value + "-loading-ad") && client.post().getString("roomad-" + value + "-loading-ad").equalsIgnoreCase("on"); + boolean isEnabled = client.post().contains("roomad-" + value + "-enabled") && client.post().getString("roomad-" + value + "-enabled").equalsIgnoreCase("on"); + String image = client.post().getString("roomad-" + value + "-image"); + String url = client.post().getString("roomad-" + value + "-url"); + + advertisementList.add(new Advertisement(Integer.parseInt(value), isLoadingAd, roomId, image, url, isEnabled)); + } + + AdvertisementsDao.updateAds(advertisementList); + AdManager.getInstance().reset(); + + /* + for (var kvp : client.post().getValues().entrySet()) { + String key = kvp.getKey(); + String value = kvp.getValue(); + + System.out.println(key + " / " + value); + }*/ + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "All room ads have been saved successfully!"); + + RconUtil.sendCommand(RconHeader.REFRESH_ADS, new HashMap<>()); + } + + } catch (Exception ex) { + + } + + var advertisements = new ArrayList<>(AdManager.getInstance().getAds());//.stream().sorted(); + advertisements.sort(Comparator.comparingInt(Advertisement::getId)); + + tpl.set("pageName", "Room Ads"); + tpl.set("roomAds", advertisements); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void delete(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_ads"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_ads")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + int id = client.get().getInt("id"); + AdvertisementsDao.deleteAd(id); + + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "Room ad has been deleted successfully"); + + RconUtil.sendCommand(RconHeader.REFRESH_ADS, new HashMap<>()); + } catch (Exception ex) { + + } + + AdManager.getInstance().reset(); + var advertisements = AdManager.getInstance().getAds();//.stream().sorted(); + + + tpl.set("pageName", "Room Ads"); + tpl.set("roomAds", advertisements); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void create(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_ads_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_ads")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + if (client.post().getValues().size() > 0) { + int roomId = client.post().getInt("roomid"); + String url = client.post().getString("url"); + String image = client.post().getString("image"); + boolean isEnabled = client.post().contains("enabled") && client.post().getString("enabled").equalsIgnoreCase("on"); + boolean isRoomLoadingAd = client.post().contains("loading-ad") && client.post().getString("loading-ad").equalsIgnoreCase("on"); + + AdvertisementsDao.create(roomId, url, image, isEnabled, isRoomLoadingAd); + AdManager.getInstance().reset(); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Room ad has been created successfully"); + + RconUtil.sendCommand(RconHeader.REFRESH_ADS, new HashMap<>()); + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + + + tpl.set("pageName", "Room Ads"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingBansController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingBansController.java new file mode 100644 index 0000000..a72ab0d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingBansController.java @@ -0,0 +1,34 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.BanDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.Routes; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.SessionUtil; + +public class HousekeepingBansController { + public static void bans(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/users_bans"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "bans")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + tpl.set("bans", BanDao.getActiveBans()); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCatalogueFrontpageController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCatalogueFrontpageController.java new file mode 100644 index 0000000..9791f97 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCatalogueFrontpageController.java @@ -0,0 +1,67 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.Routes; +import org.alexdev.http.dao.NewsDao; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.SessionUtil; + +import java.util.HashMap; +import java.util.List; + +public class HousekeepingCatalogueFrontpageController { + public static void edit(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + PlayerDetails session = PlayerDao.getDetails(client.session().getInt("user.id")); + + if (!HousekeepingManager.getInstance().hasPermission(session.getRank(), "catalogue/edit_frontpage")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().getValues().size() > 0) { + if (client.post().getString("header").isBlank()) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "Header cannot be blank"); + } else if (client.post().getString("subtext").isBlank()) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The subtext cannot be blank"); + } else { + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The frontpage has been successfully saved"); + } + + GameConfiguration.getInstance().updateSetting("catalogue.frontpage.input.1", client.post().getString("image")); + GameConfiguration.getInstance().updateSetting("catalogue.frontpage.input.2", client.post().getString("header")); + GameConfiguration.getInstance().updateSetting("catalogue.frontpage.input.3", client.post().getString("subtext")); + GameConfiguration.getInstance().updateSetting("catalogue.frontpage.input.4", client.post().getString("link")); + + RconUtil.sendCommand(RconHeader.REFRESH_CATALOGUE_FRONTPAGE, new HashMap<>()); + } + + List images = NewsDao.getTopStoryImages(); + + Template tpl = client.template("housekeeping/catalogue_frontpage"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + tpl.set("pageName", "Edit Catalogue Frontpage"); + tpl.set("images", images); + tpl.set("frontpageText1", GameConfiguration.getInstance().getString("catalogue.frontpage.input.1")); + tpl.set("frontpageText2", GameConfiguration.getInstance().getString("catalogue.frontpage.input.2")); + tpl.set("frontpageText3", GameConfiguration.getInstance().getString("catalogue.frontpage.input.3")); + tpl.set("frontpageText4", GameConfiguration.getInstance().getString("catalogue.frontpage.input.4")); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCommandsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCommandsController.java new file mode 100644 index 0000000..4a7ca35 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingCommandsController.java @@ -0,0 +1,42 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.moderation.actions.ModeratorBanUserAction; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.SessionUtil; + +import java.util.HashMap; + +public class HousekeepingCommandsController { + + /** + * Handle the /housekeeping URI request + * + * @param client the connection + */ + public static void ban(WebConnection client) { + // If they are logged in, send them to the /me page + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.send(""); + } + + var playerDetails = PlayerDao.getDetails(client.get().getString("username")); + + if (playerDetails != null) { + RconUtil.sendCommand(RconHeader.DISCONNECT_USER, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + int banningId = client.session().getInt("user.id"); + var banningPlayerDetails = PlayerDao.getDetails(banningId); + + //ModerationDao.addLog(ModerationActionType.ALERT_USER, player.getDetails().getId(), playerDetails.getId(), "Banned for breaking the HabboWay", ""); + client.send(ModeratorBanUserAction.ban(banningPlayerDetails, "Banned for breaking the HabboWay", "", playerDetails.getName(), 999999999, true, true)); + return; + } + + client.send("User doesn't exist"); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingConfigController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingConfigController.java new file mode 100644 index 0000000..3ce905a --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingConfigController.java @@ -0,0 +1,65 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.SettingsDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.Routes; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.ConfigEntry; +import org.alexdev.http.util.SessionUtil; +import org.alexdev.http.util.config.WebSettingsConfigWriter; + +import java.util.ArrayList; +import java.util.Comparator; + +public class HousekeepingConfigController { + /** + * Handle the /housekeeping/articles URI request + * + * @param client the connection + */ + public static void configurations(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/configurations"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "configuration")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().queries().size() > 0) { + SettingsDao.updateSettings(client.post().getValues().entrySet()); + + // Reload config + // GameConfiguration.getInstance(new WebSettingsConfigWriter()); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "All configuration values have been saved successfully! It will take effect within 30 seconds."); + } + + var settings = new ArrayList(); + + for (var setting : SettingsDao.getAllSettings().entrySet()) { + settings.add(new ConfigEntry(setting.getKey(), setting.getValue())); + } + + settings.sort(Comparator.comparing(ConfigEntry::getKey)); + //var settings = SettingsDao.getAllSettings().entrySet();//.stream().sorted(); + + tpl.set("pageName", "Configurations"); + tpl.set("configs", settings); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingController.java new file mode 100644 index 0000000..ab953ad --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingController.java @@ -0,0 +1,137 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.Routes; +import org.alexdev.http.dao.HousekeepingDao; +import org.alexdev.http.dao.housekeeping.HousekeepingPlayerDao; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.game.housekeeping.HousekeepingStats; +import org.alexdev.http.util.SessionUtil; + +public class HousekeepingController { + + /** + * Handle the /housekeeping URI request + * + * @param client the connection + */ + public static void dashboard(WebConnection client) { + // If they are logged in, send them to the /me page + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + Template tpl = client.template("housekeeping/login"); + tpl.render(); + } else { + + int currentPage = 0; + + if (client.get().contains("page")) { + currentPage = Integer.parseInt(client.get().getString("page")); + } + + boolean zeroCoinsFlag = false; + + if (client.get().contains("zerocoins")) { + zeroCoinsFlag = true; + } + + String sortBy = "created_at"; + + if (client.get().contains("sort")) { + if (client.get().getString("sort").equals("last_online") || + client.get().getString("sort").equals("created_at")) { + sortBy = client.get().getString("sort"); + } + } + + Template tpl = client.template("housekeeping/dashboard"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + tpl.set("pageName", "Dashboard"); + tpl.set("players", HousekeepingPlayerDao.getPlayers(currentPage, zeroCoinsFlag, sortBy)); + tpl.set("nextPlayers", HousekeepingPlayerDao.getPlayers(currentPage + 1, zeroCoinsFlag, sortBy)); + tpl.set("previousPlayers", HousekeepingPlayerDao.getPlayers(currentPage - 1, zeroCoinsFlag, sortBy)); + tpl.set("page", currentPage); + tpl.set("sortBy", sortBy); + tpl.set("stats", new HousekeepingStats( + HousekeepingDao.getUserCount(), + HousekeepingDao.getInventoryItemsCount(), + HousekeepingDao.getRoomItemCount(), + HousekeepingDao.getGroupCount(), + HousekeepingDao.getPetCount(), + HousekeepingDao.getPhotoCount())); + tpl.set("zeroCoinsFlag", zeroCoinsFlag); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + } + + /** + * Handle the /housekeeping/login URI request + * + * @param client the connection + */ + public static void login(WebConnection client) { + String[] fieldCheck = new String[] { "hkusername", "hkpassword" }; + + for (String field : fieldCheck) { + + if (client.post().contains(field) && + client.post().getString(field).length() > 0) { + continue; + } + + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You need to enter both your email and password"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + /*if (!PlayerDao.emailExists(client.post().get("hkemail"), 0)) { + client.session().set("showAlert"434, true); + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You have entered invalid details"); + client.redirect("/housekeeping"); + return; + }*/ + + PlayerDetails playerDetails = new PlayerDetails(); + + if (!PlayerDao.login(playerDetails, client.post().getString("hkusername"), client.post().getString("hkpassword"))) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You have entered invalid details"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "root/login")) { + client.session().set("alertColour", "warning"); + client.session().set("alertMessage", "You don't have permission"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + client.session().set(SessionUtil.LOGGED_IN_HOUSKEEPING, true); + client.session().set(SessionUtil.USER_ID, String.valueOf(playerDetails.getId())); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + } + + /** + * Handle the /housekeeping/login URI request + * + * @param client the connection + */ + public static void logout(WebConnection client) { + if (client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Successfully logged out!"); + client.session().set(SessionUtil.LOGGED_IN_HOUSKEEPING, false); + } + + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingInfobusController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingInfobusController.java new file mode 100644 index 0000000..a7769d5 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingInfobusController.java @@ -0,0 +1,458 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.AdvertisementsDao; +import org.alexdev.havana.dao.mysql.InfobusDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.infobus.InfobusPoll; +import org.alexdev.havana.game.infobus.InfobusPollData; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.Routes; +import org.alexdev.http.dao.NewsDao; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.SessionUtil; +import org.alexdev.http.util.piechart.PieChart; +import org.alexdev.http.util.piechart.Slice; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class HousekeepingInfobusController { + + /** + * Handle the /housekeeping/infobus_polls URI request + * + * @param client the connection + */ + public static void polls(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/infobus_polls"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + tpl.set("pageName", "View Infobus Polls"); + tpl.set("infobusPolls", InfobusDao.getInfobusPolls()); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void create_polls(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/infobus_polls_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + if (client.post().getValues().size() > 0) { + String question = client.post().getString("question"); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Infobus poll has been created successfully"); + + InfobusPollData infobusPollData = new InfobusPollData(question); + infobusPollData.getAnswers().addAll(client.post().getArray("answers[]")); + InfobusDao.createInfobusPoll(playerDetails.getId(), infobusPollData); + + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } + } catch (Exception ex) { + + } + + tpl.set("pageName", "Create Infobus Poll"); + tpl.set("oneHourLater", DateUtil.getDate(DateUtil.getCurrentTimeSeconds() + TimeUnit.HOURS.toSeconds(1), "yyyy-MM-dd'T'HH:mm")); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/infobus_polls/delete URI request + * + * @param client the connection + */ + public static void delete(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/articles"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + InfobusPoll poll = InfobusDao.get(client.get().getInt("id")); + + if (poll == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The infobus poll does not exist"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } + + if (poll.getInitiatedBy() != playerDetails.getId()) { + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus/delete_any")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "No permission to delete other polls"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + } + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus/delete_own")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "No permission to delete"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no infobus poll selected to delete"); + } else { + var answers = InfobusDao.getAnswers(poll.getId()); + int totalAnswers = answers.values().stream().mapToInt(Integer::intValue).sum(); + + if (totalAnswers > 0) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You can't delete a poll with answers"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Successfully deleted the infobus poll"); + + InfobusDao.delete(client.get().getInt("id")); + InfobusDao.clearAnswers(client.get().getInt("id")); + } + + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + + } + + /** + * Handle the /housekeeping/infobus_polls/send_poll URI request + * + * @param client the connection + */ + public static void send_poll(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/articles"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + InfobusPoll poll = InfobusDao.get(client.get().getInt("id")); + + if (poll == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The infobus poll does not exist"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } + + client.session().set("alertColour", "warning"); + client.session().set("alertMessage", "The infobus poll request has been sent"); + + RconUtil.sendCommand(RconHeader.INFOBUS_POLL, new HashMap<>() {{ + put("pollId", String.valueOf(poll.getId())); + }}); + + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + + } + + /** + * Handle the /housekeeping/infobus_polls/edit URI request + * + * @param client the connection + */ + public static void edit(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/infobus_polls_edit"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + InfobusPoll infobusPoll = InfobusDao.get(client.get().getInt("id")); + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no infobus poll selected to edit"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else if (infobusPoll == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The infobus poll does not exist"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else { + if (client.post().queries().size() > 0) { + int id = infobusPoll.getId(); + String question = client.post().getString("question"); + + var answers = InfobusDao.getAnswers(infobusPoll.getId()); + int totalAnswers = answers.values().stream().mapToInt(Integer::intValue).sum(); + + if (totalAnswers > 0) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You can't edit the poll if it has answers"); + } else { + /*var activePoll = InfobusDao.getActivePoll(); + + if (activePoll != null && activePoll.getId() != infobusPoll.getId() && enabled) { + client.session().set("alertColour", "warning"); + client.session().set("alertMessage", "Cannot activate this poll while there's already a different active poll"); + enabled = false; + } else {*/ + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The infobus poll was successfully saved"); + + InfobusPollData infobusPollData = new InfobusPollData(question); + infobusPollData.getAnswers().addAll(client.post().getArray("answers[]")); + InfobusDao.saveInfobusPoll(id, infobusPollData); + } + + //RconUtil.sendCommand(RconHeader.REFRESH_INFOBUS_POLLS, new HashMap<>()); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } + + //tpl.set("pollDate", DateUtil.getDate(infobusPoll.getExpiresAt(), "yyyy-MM-dd'T'HH:mm")); + tpl.set("poll", infobusPoll); + } + + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/infobus_polls/edit URI request + * + * @param client the connection + */ + public static void view_results(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/infobus_polls_view"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + InfobusPoll infobusPoll = InfobusDao.get(client.get().getInt("id")); + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no infobus poll selected to edit"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else if (infobusPoll == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The infobus poll does not exist"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else { + tpl.set("poll", infobusPoll); + } + + var image = new BufferedImage(500, 250, BufferedImage.TYPE_INT_ARGB); + + var answers = InfobusDao.getAnswers(infobusPoll.getId()); + int totalAnswers = answers.values().stream().mapToInt(Integer::intValue).sum(); + + var slices = new ArrayList(); + + int i = 0; + + if (totalAnswers > 0) { + for (var answer : answers.entrySet()) { + Color color = null; + + if (i == 0) { + color = Color.BLUE; + } + + if (i == 1) { + color = Color.RED; + } + + if (i == 2) { + color = Color.YELLOW; + } + + if (i == 3) { + color = Color.PINK; + } + + if (i == 4) { + color = Color.ORANGE; + } + + try { + slices.add(new Slice(infobusPoll.getPollData().getAnswers().get(answer.getKey()), (double) (answer.getValue() > 0 ? totalAnswers / answer.getValue() : 0), color)); + } catch (Exception ex) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was an answer to a question that doesn't exist, some answers may not be visible on this chart"); + } + + i++; + } + } + + new PieChart(image, slices); + + tpl.set("imageData", "data:image/png;base64," + HtmlUtil.encodeToString(image, "PNG")); + tpl.set("noAnswers", totalAnswers == 0); + + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void clear_results(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/infobus_polls_view"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + InfobusPoll infobusPoll = InfobusDao.get(client.get().getInt("id")); + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no infobus poll selected to edit"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else if (infobusPoll == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The infobus poll does not exist"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + return; + } else { + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The infobus poll has had all answers cleared"); + + InfobusDao.clearAnswers(infobusPoll.getId()); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + } + } + + public static void close_event(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + int userId = client.session().getInt("user.id"); + PlayerDetails playerDetails = PlayerDao.getDetails(userId); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The infobus status has been sent"); + + RconUtil.sendCommand(RconHeader.INFOBUS_END_EVENT, new HashMap<>()); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + } + + public static void door_status(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + int userId = client.session().getInt("user.id"); + PlayerDetails playerDetails = PlayerDao.getDetails(userId); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "infobus")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + RconUtil.sendCommand(RconHeader.INFOBUS_DOOR_STATUS, new HashMap<>() {{ + put("doorStatus", String.valueOf(client.get().getInt("status"))); + }}); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The infobus door status has been sent"); + + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/infobus_polls"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingNewsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingNewsController.java new file mode 100644 index 0000000..c43bcb3 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingNewsController.java @@ -0,0 +1,268 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.Routes; +import org.alexdev.http.dao.NewsDao; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.game.news.NewsCategory; +import org.alexdev.http.game.news.NewsDateKey; +import org.alexdev.http.game.news.NewsManager; +import org.alexdev.http.util.HousekeepingUtil; +import org.alexdev.http.util.SessionUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class HousekeepingNewsController { + private static final int MAX_NEWS_TO_DISPLAY = 250; + + /** + * Handle the /housekeeping/articles URI request + * + * @param client the connection + */ + public static void articles(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/articles"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "articles/create")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + tpl.set("pageName", "View News"); + tpl.set("articles", NewsDao.getTop(NewsDateKey.ALL, MAX_NEWS_TO_DISPLAY, true, List.of(), 0)); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/articles/create URI request + * + * @param client the connection + */ + public static void create(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + PlayerDetails session = PlayerDao.getDetails(client.session().getInt("user.id")); + + if (!HousekeepingManager.getInstance().hasPermission(session.getRank(), "articles/create")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().queries().size() > 0) { + long publishDate = DateUtil.getFromFormat("yyyy-MM-dd'T'HH:mm", client.post().getString("datePublished")); + + List categories = new ArrayList<>(); + + for (String data : client.post().getArray("categories[]")) { + var category = NewsManager.getInstance().getCategoryByLabel(data); + + if (category != null) { + categories.add(category); + } + } + + int articleId = NewsDao.create( + client.post().getString("title"), + client.post().getString("shortstory"), + client.post().getString("fullstory"), + client.post().getString("topstory"), + client.post().getString("topstoryOverride"), + session.getId(), + client.post().getString("authorOverride"), + client.post().getString("category"), + client.post().getString("articleimage"), + publishDate, + client.post().getString("futurePublished").equals("true"), + client.post().getString("published").equals("true") + ); + + NewsDao.insertCategories(articleId, categories); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The submission of the news article was successful"); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/articles"); + return; + } + + List images = NewsDao.getTopStoryImages(); + + Template tpl = client.template("housekeeping/articles_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + tpl.set("pageName", "Create News"); + tpl.set("images", images); + tpl.set("randomImage", images.get(ThreadLocalRandom.current().nextInt(images.size()))); + tpl.set("currentDate", DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "yyyy-MM-dd'T'HH:mm")); + tpl.set("categories", NewsManager.getInstance().getCategories()); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/articles/delete URI request + * + * @param client the connection + */ + public static void delete(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + NewsArticle article = NewsDao.get(client.get().getInt("id")); + + Template tpl = client.template("housekeeping/articles"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (article.getAuthorId() != playerDetails.getId()) { + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "articles/delete_any")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + } + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "articles/delete_own")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no article selected to delete"); + } else if (!NewsDao.exists(client.get().getInt("id"))) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The article does not exist"); + } else { + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Successfully deleted the article"); + NewsDao.delete(client.get().getInt("id")); + } + + + tpl.set("pageName", "Delete News"); + tpl.set("articles", NewsDao.getTop(NewsDateKey.ALL, MAX_NEWS_TO_DISPLAY, true, List.of(), 0)); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + + } + + /** + * Handle the /housekeeping/articles/edit URI request + * + * @param client the connection + */ + public static void edit(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/articles_edit"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "articles/edit_own")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + tpl.set("images", NewsDao.getTopStoryImages()); + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no article selected to edit"); + } else if (!NewsDao.exists(client.get().getInt("id"))) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The article does not exist"); + } else { + NewsArticle article = NewsDao.get(client.get().getInt("id")); + + if (article.getAuthorId() != playerDetails.getId()) { + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "articles/edit_any")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + } + + if (client.post().queries().size() > 0) { + long publishDate = DateUtil.getFromFormat("yyyy-MM-dd'T'HH:mm", client.post().getString("datePublished")); + + List categories = new ArrayList<>(); + + for (String data : client.post().getArray("categories[]")) { + var category = NewsManager.getInstance().getCategoryByLabel(data); + + if (category != null) { + categories.add(category); + } + } + + NewsDao.insertCategories(article.getId(), categories); + + article.setTitle(client.post().getString("title")); + article.setShortStory(client.post().getString("shortstory")); + article.setFullStory(client.post().getString("fullstory")); + article.setTopStory(client.post().getString("topstory")); + article.setTopstoryOverride(client.post().getString("topstoryOverride")); + article.setAuthorOverride(client.post().getString("authorOverride")); + article.setArticleImage(client.post().getString("articleimage")); + article.setPublished(client.post().getString("published").equals("true")); + article.setFuturePublished(client.post().getString("futurePublished").equals("true")); + article.setTimestamp(publishDate); + + article.getCategories().clear(); + article.getCategories().addAll(categories); + + NewsDao.save(article); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The article was successfully saved"); + } + + tpl.set("currentDate", DateUtil.getDate(article.getTimestamp(), "yyyy-MM-dd'T'HH:mm")); + tpl.set("article", article); + tpl.set("categories", NewsManager.getInstance().getCategories()); + } + + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void preview_news_article(WebConnection webConnection) { + if (!webConnection.post().contains("body")) { + webConnection.send(""); + return; + } + + webConnection.send(new HousekeepingUtil().formatNewsStory(webConnection.post().getString("body"))); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingRoomBadgesController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingRoomBadgesController.java new file mode 100644 index 0000000..4724979 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingRoomBadgesController.java @@ -0,0 +1,170 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.BadgeDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.Routes; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.HousekeepingUtil; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.SessionUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HousekeepingRoomBadgesController { + public static void badges(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_badges"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_badges")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + if (client.post().queries().size() > 0) { + Map> badges = new HashMap<>(); + + for (var kvp : client.post().getValues().entrySet()) { + String key = kvp.getKey(); + + if (!key.startsWith("roombadge-id-")) { + continue; + } + + String values = key.replace("roombadge-id-", ""); + + String[] data = values.split("_"); + int roomId = client.post().getInt("roomad-" + values + "-roomid"); + String badgeCode = client.post().getString("roomad-" + values + "-badge"); + + if (!badges.containsKey(roomId)) { + badges.put(roomId, new ArrayList<>()); + } + + badges.get(roomId).add(badgeCode); + } + + BadgeDao.updateBadges(badges); + sendRoomBadgeUpdate(); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "All badge rooms have been saved successfully!"); + } + + } catch (Exception ex) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "Error occurred, make sure the room ID is a valid number"); + } + + RoomManager.getInstance(); + tpl.set("roomBadges", RoomManager.getInstance().getRoomEntryBadges()); + tpl.set("util", new HousekeepingUtil()); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void delete(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_badges"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_badges")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().queries().size() > 0) { + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "All badge rooms have been saved successfully!"); + } + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "There was no badge selected to delete"); + } else { client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Successfully deleted the badge"); + + String[] data = client.get().getString("id").split("_"); + BadgeDao.deleteRoomBadge(data[0], data[1]); + } + + sendRoomBadgeUpdate(); + + tpl.set("roomBadges", RoomManager.getInstance().getRoomEntryBadges()); + tpl.set("util", new HousekeepingUtil()); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void create(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/room_badges_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "room_badges")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().getValues().size() > 0) { + try { + BadgeDao.createEntryBadge( + client.post().getInt("roomid"), + client.post().getString("badgecode")); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "Successfully created the room entry badge"); + + sendRoomBadgeUpdate(); + client.redirect("/" + Routes.HOUSEKEEPING_PATH + "/room_badges"); + + return; + } catch (Exception ex) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "Error occurred, make sure the room ID is a valid number"); + } + + } + + tpl.render(); + + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + private static void sendRoomBadgeUpdate() { + RoomManager.getInstance().reloadBadges(); + RconUtil.sendCommand(RconHeader.REFRESH_ROOM_BADGES, new HashMap<>()); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingTransactionsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingTransactionsController.java new file mode 100644 index 0000000..49f193b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingTransactionsController.java @@ -0,0 +1,81 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.Routes; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.SessionUtil; +import org.apache.commons.lang3.StringUtils; + +public class HousekeepingTransactionsController { + + /** + * Handle the /housekeeping/users/search URI request + * + * @param client the connection + */ + public static void search(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/transaction_lookup"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "transaction/lookup")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + try { + if (client.post().getValues().size() > 0) { + var transactions = TransactionDao.getTransactionsPastMonth(client.post().getString("searchQuery"), true); + tpl.set("transactions", transactions); + } + + if (client.get().getValues().size() > 0) { + var transactions = TransactionDao.getTransactionsPastMonth(client.get().getString("searchQuery"), true); + tpl.set("transactions", transactions); + } + } catch (Exception ex) { + + } + + tpl.set("pageName", "Transaction Lookup"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + public static void item_lookup(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/transaction_item_lookup"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "transaction/lookup")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + var transactions = TransactionDao.getTransactionByItem(StringUtils.isNumeric(client.get().getString("id")) ? client.get().getInt("id") : 0); + tpl.set("transactions", transactions); + + tpl.set("pageName", "Transaction Lookup"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingUsersController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingUsersController.java new file mode 100644 index 0000000..9983de1 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/housekeeping/HousekeepingUsersController.java @@ -0,0 +1,296 @@ +package org.alexdev.http.controllers.housekeeping; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.netty.NettyPlayerNetwork; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.Routes; +import org.alexdev.http.dao.housekeeping.HousekeepingPlayerDao; +import org.alexdev.http.game.housekeeping.HousekeepingManager; +import org.alexdev.http.util.SessionUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.validator.routines.EmailValidator; + +import java.util.ArrayList; +import java.util.List; + +public class HousekeepingUsersController { + + /** + * Handle the /housekeeping/users/imitate/ URI request + * + * @param webConnection the connection + */ + public static void imitate(WebConnection webConnection) { + if (!webConnection.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + webConnection.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = webConnection.template("housekeeping/users_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "user/imitate")) { + webConnection.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + var playerName = webConnection.getMatches().get(0); + PlayerDetails player = PlayerDao.getDetails(playerName); + + if (playerName == null) + return; + + webConnection.session().set("authenticated", true); + webConnection.session().set("captcha.invalid", false); + webConnection.session().set("user.id", player.getId()); + webConnection.session().set("clientAuthenticate", false); + webConnection.session().set(SessionUtil.LOGGED_IN_HOUSKEEPING, false); + webConnection.session().set("lastRequest", String.valueOf(DateUtil.getCurrentTimeSeconds() + SessionUtil.REAUTHENTICATE_TIME)); + webConnection.redirect("/me"); + + } + + /** + * Handle the /housekeeping/users/search URI request + * + * @param client the connection + */ + public static void search(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/users_search"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "user/search")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (client.post().queries().size() > 0) { + String[] fieldCheck = new String[]{"searchField", "searchQuery", "searchType" }; + + for (String field : fieldCheck) { + if (client.post().contains(field) && client.post().getString(field).length() > 0) { + continue; + } + + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You need to enter all fields"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + return; + } + + String field = client.post().getString("searchField"); + String input = client.post().getString("searchQuery"); + String type = client.post().getString("searchType"); + + List whitelistColumns = new ArrayList<>(); + whitelistColumns.add("username"); + whitelistColumns.add("id"); + whitelistColumns.add("credits"); + whitelistColumns.add("pixels"); + whitelistColumns.add("mission"); + + List players = null; + + if (whitelistColumns.contains(field)) { + players = HousekeepingPlayerDao.search(type, field, input); + } else { + players = new ArrayList<>(); + } + + tpl.set("players", players); + } + + tpl.set("pageName", "Search Users"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/users/create URI request + * + * @param client the connection + */ + public static void create(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/users_create"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "user/create")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + /*tpl.set("defaultFigure", Configuration.REGISTER_FIGURE); + tpl.set("defaultMission", Configuration.REGISTER_MOTTO); + tpl.set("defaultCredits", Configuration.REGISTER_CREDITS); + tpl.set("defaultDuckets", Configuration.REGISTER_DUCKETS);*/ + + if (client.post().queries().size() > 0) { + String[] fieldCheck = new String[]{"username", "password", "confirmpassword", "figure", "email", "mission"}; + + for (String field : fieldCheck) { + if (client.post().contains(field) && client.post().getString(field).length() > 0) { + continue; + } + + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You need to enter all fields"); + } + + if (!client.session().contains("alertMessage")) { + client.session().set("alertColour", "warning"); + + /*if (PlayerDao.emailExists(client.post().get("email"), 0)) { + client.session().set("alertMessage", "The email chosen is already in use"); + + } else */ + if (!client.post().getString("password").equals(client.post().getString("confirmpassword"))) { + client.session().set("alertMessage", "The two passwords do not match"); + } else if (client.post().getString("password").length() < 6) { + client.session().set("alertMessage", "The password needs to be at least 6 or more characters"); + } else if (!EmailValidator.getInstance().isValid(client.post().getString("email"))) { + client.session().set("alertMessage", "The email entered is not valid"); + + } + } + + // Successful maybe? + if (client.post().queries().size() > 0 && !client.session().contains("alertMessage")) { + int userId = -1; + //int userId = PlayerDao.create(client.post().get("username"), client.post().get("email"), client.post().get("password"), client.post().get("mission"), client.post().get("figure")); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The new user has been successfully created. Click here to edit them."); + } + } + + tpl.set("pageName", "Create User"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } + + /** + * Handle the /housekeeping/users/edit URI request + * + * @param client the connection + */ + public static void edit(WebConnection client) { + if (!client.session().getBoolean(SessionUtil.LOGGED_IN_HOUSKEEPING)) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + Template tpl = client.template("housekeeping/users_edit"); + tpl.set("housekeepingManager", HousekeepingManager.getInstance()); + + PlayerDetails playerDetails = (PlayerDetails) tpl.get("playerDetails"); + + if (!HousekeepingManager.getInstance().hasPermission(playerDetails.getRank(), "user/edit")) { + client.redirect("/" + Routes.HOUSEKEEPING_PATH); + return; + } + + if (!client.get().contains("id")) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You did not select a user to edit"); + } + + if (client.post().queries().size() > 0) { + String[] fieldCheck = new String[]{"username", "figure", "email", "motto", "credits", "pixels"}; + + for (String field : fieldCheck) { + if (client.post().contains(field) && client.post().getString(field).length() > 0) { + continue; + } + + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You need to enter all fields. The " + field + " field is missing."); + } + + if (!client.session().contains("alertMessage")) { + client.session().set("alertColour", "warning"); + + /*if (PlayerDao.emailExists(client.post().get("email"), client.get().getInt("id"))) { + client.session().set("alertMessage", "The email chosen is already in use"); + } else */ + + if (!EmailValidator.getInstance().isValid(client.post().getString("email"))) { + client.session().set("alertMessage", "The email entered is not valid"); + } else if (!StringUtils.isNumeric(client.post().getString("credits"))) { + client.session().set("alertMessage", "The value supplied for credits is not a number"); + } else if (!StringUtils.isNumeric(client.post().getString("pixels"))) { + client.session().set("alertMessage", "The value supplied for pixels is not a number"); + } + } + } + + PlayerDetails player = PlayerDao.getDetails(client.get().getInt("id")); + + if (player == null) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "The user does not exist"); + } else { + //Player session = client.session().get(SessionUtil.PLAYER, Player.class); + PlayerDetails session = PlayerDao.getDetails(client.session().getInt("user.id")); + + if (session.getRank().getRankId() <= player.getRank().getRankId()) { + client.session().set("alertColour", "danger"); + client.session().set("alertMessage", "You cannot edit someone that has a equal or higher rank than you"); + } else { + if (client.post().queries().size() > 0 && !client.session().contains("alertMessages")) { + player.setFigure(client.post().getString("figure")); + player.setMotto(client.post().getString("motto")); + player.setPixels(Integer.parseInt(client.post().getString("pixels"))); + player.setCredits(Integer.parseInt(client.post().getString("credits"))); + player.setEmail(client.post().getString("email")); + + PlayerDao.saveDetails(player.getId(), player.getFigure(), player.getPoolFigure(), player.getSex()); + PlayerDao.saveMotto(player.getId(), player.getMotto()); + PlayerDao.saveCurrency(player.getId(), player.getCredits(), player.getPixels()); + PlayerDao.saveEmail(player.getId(), player.getEmail()); + + client.session().set("alertColour", "success"); + client.session().set("alertMessage", "The user has been successfully saved"); + } + } + + tpl.set("playerId", player.getId()); + tpl.set("playerUsername", player.getName()); + tpl.set("playerEmail", player.getEmail()); + tpl.set("playerMotto", player.getMotto()); + tpl.set("playerPixels", player.getPixels()); + tpl.set("playerCredits", player.getCredits()); + tpl.set("playerFigure", player.getFigure()); + } + + tpl.set("pageName", "Edit User"); + tpl.render(); + + // Delete alert after it's been rendered + client.session().delete("alertMessage"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/AccountController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/AccountController.java new file mode 100644 index 0000000..b4d4899 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/AccountController.java @@ -0,0 +1,351 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.alerts.AlertType; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.GroupDiscussionDao; +import org.alexdev.http.game.account.BeginnerGiftManager; +import org.alexdev.http.game.friends.FriendsFeed; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.*; + +import java.time.LocalDateTime; +import java.time.Period; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class AccountController { + public static void submit(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + String username = HtmlUtil.removeHtmlTags(webConnection.post().getString("username")); + String password = HtmlUtil.removeHtmlTags(webConnection.post().getString("password")); + + if (SessionUtil.login(webConnection, username, password, true)) { + webConnection.redirect("/security_check"); + } else { + boolean rememberMe = webConnection.post().getString("_login_remember_me").equals("true"); + + var template = webConnection.template("account/submit"); + template.set("rememberMe", rememberMe ? "true" : "false"); + template.set("username", username); + template.render(); + } + } + + public static void securityCheck(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + //System.out.println("webconnection " + webConnection.getIpAddress() + " is not authenticated after submitting"); + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("/security_check"); + template.set("redirectPath", webConnection.session().contains("lastBrowsedPage") ? webConnection.session().getString("lastBrowsedPage") : "/me"); + template.render(); + } + + public static void me(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("me"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.redirect("/"); + return; + } + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + + webConnection.session().set("page", "me"); // Set current page + webConnection.session().delete("captcha.invalid"); // Wipe any trace of making /register remember + + /*if (CacheManager.useCachePage(webConnection, "me")) { + webConnection.send(CacheManager.getPage(webConnection, "me")); + return; + }*/ + + if (playerDetails.hasClubSubscription()) { + template.set("hcDays", TimeUnit.SECONDS.toDays(playerDetails.getClubExpiration() - DateUtil.getCurrentTimeSeconds())); + } + + NewsArticle[] articles = new NewsArticle[5]; + + int i = 0; + + boolean includeUnpublished = template.get("playerDetails") != null && ((PlayerDetails)template.get("playerDetails")).getRank().getRankId() > 1; + List articleList = includeUnpublished ? Watchdog.NEWS_STAFF : Watchdog.NEWS; + + if (articleList == null) { + articleList = List.of(); + } + + for (var article : articleList) { + articles[i++] = article; + } + + for (i = 0; i < 5; i++) { + if (articles[i] == null) { + articles[i] = new NewsArticle(0, "No news", 0, "", "", "", DateUtil.getCurrentTimeSeconds(), "attention_topstory.png", "", "", "0", true, 0, false); + } + + template.set("article" + (i + 1), articles[i]); + } + + var alerts = AlertsDao.getAlerts(playerDetails.getId()); + var statisticsValues = PlayerStatisticsDao.getStatistics(playerDetails.getId()); + + if (statisticsValues.isEmpty()) { + PlayerStatisticsDao.newStatistics(playerDetails.getId(), UUID.randomUUID().toString()); + statisticsValues = PlayerStatisticsDao.getStatistics(playerDetails.getId()); + } + + var statistics = new PlayerStatisticManager(playerDetails.getId(), statisticsValues); + + template.set("newbieRoomLayout", statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT)); + template.set("newbieNextGift", statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT)); + + if (statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT) > 0 && statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT) > 0) { + int seconds = statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT_TIME) - DateUtil.getCurrentTimeSeconds(); + + if (BeginnerGiftManager.progress(playerDetails, statistics)) { + seconds = statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT_TIME) - DateUtil.getCurrentTimeSeconds(); + } + + if (seconds < 0) { + seconds = 0; + } + + template.set("newbieNextGift", statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT)); + template.set("newbieGiftSeconds", seconds); + } + + if (playerDetails.hasClubSubscription()) { + if (alerts.stream().anyMatch(alert -> alert.getAlertType() == AlertType.HC_EXPIRED)) { + AlertsDao.deleteAlerts(playerDetails.getId(), AlertType.HC_EXPIRED); + } + } else if (alerts.stream().noneMatch(alert -> alert.getAlertType() == AlertType.HC_EXPIRED)) { + if (playerDetails.getFirstClubSubscription() > 0) { + AlertsDao.createAlert(playerDetails.getId(), AlertType.HC_EXPIRED, ""); + } + } + + if (playerDetails.getSelectedRoomId() == -1 && statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT) != -1) { + statistics.setLongValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT, -1); + } + + if (playerDetails.formatJoinDate("MM/dd").equalsIgnoreCase(DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "MM/dd")) && + !(playerDetails.formatJoinDate("MM/dd/yyyy").equalsIgnoreCase(DateUtil.getDate(DateUtil.getCurrentTimeSeconds(), "MM/dd/yyy")))) { + LocalDateTime birthday = DateUtil.getDateTimeFromTimestamp(playerDetails.getJoinDate()); + LocalDateTime now = DateUtil.getDateTimeFromTimestamp(DateUtil.getCurrentTimeSeconds()); + + Period period = Period.between(birthday.toLocalDate(), now.toLocalDate()); + + template.set("hasBirthday", true); + template.set("birthdayAge", period.getYears()); + + if (String.valueOf(period.getYears()).endsWith("1")) { + template.set("birthdayPrefix", "st"); + } else if (String.valueOf(period.getYears()).endsWith("2")) { + template.set("birthdayPrefix", "nd"); + } else if (String.valueOf(period.getYears()).endsWith("3")) { + template.set("birthdayPrefix", "rd"); + } else { + template.set("birthdayPrefix", "th"); + } + } else { + template.set("hasBirthday", false); + } + + template.set("tags", TagDao.getUserTags(playerDetails.getId())); + template.set("lastOnline", DateUtil.getFriendlyDate(playerDetails.getLastOnline())); + template.set("tagRandomQuestion", TagUtil.getRandomQuestion()); + template.set("events", Watchdog.EVENTS);//EventsDao.getEvents()); + template.set("groups", GroupDao.getJoinedGroups(webConnection.session().getInt("user.id"))); + template.set("alerts", AlertsDao.getAlerts(playerDetails.getId()).stream().filter(alert -> !alert.isDisabled()).collect(Collectors.toList())); + template.set("recommendedGroups", Watchdog.RECOMMENDED_GROUPS);//RecommendedDao.getRecommendedGroups(false)); + template.set("staffPickGroups", Watchdog.STAFF_PICK_GROUPS); + + FriendsFeed.createFriendsOnline(webConnection, template); + MinimailController.appendMessages(webConnection, template, true, false, false, false, false, false); + + var pendingDetails = GroupMemberDao.getPendingMembers(playerDetails.getId()); + template.set("pendingMembers", pendingDetails.getKey()); + template.set("pendingGroups", pendingDetails.getValue()); + + var newGroupPosts = GroupDiscussionDao.getNewGroupMessages(playerDetails.getId(), playerDetails.getLastOnline()); + template.set("newPostsAmount", newGroupPosts.getKey()); + template.set("newPosts", newGroupPosts.getValue()); + template.set("unreadGuestbookMessages", statistics.getIntValue(PlayerStatistic.GUESTBOOK_UNREAD_MESSAGES)); + template.render(); + + ClubSubscription.countMemberDays(playerDetails, statistics); + //CacheManager.savePage(webConnection, "me", ((TwigTemplate)template).renderHTML(), (int) TimeUnit.SECONDS.toSeconds(15)); + //webConnection.send(CacheManager.getPage(webConnection, "me")); + + var ipAddress = webConnection.getIpAddress(); + var latestIpAddress = PlayerDao.getLatestIp(playerDetails.getId()); + + if (latestIpAddress == null || !latestIpAddress.equals(ipAddress)) { + PlayerDao.logIpAddress(playerDetails.getId(), ipAddress); + } + + if (!webConnection.cookies().exists(SessionUtil.MACHINE_ID) || !webConnection.cookies().get(SessionUtil.MACHINE_ID).equals(playerDetails.getMachineId())) { + if (!playerDetails.getMachineId().isBlank()) { + webConnection.cookies().set(SessionUtil.MACHINE_ID, playerDetails.getMachineId().replace("#", ""), 2, TimeUnit.DAYS); + } + } + } + + public static void welcome(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("welcome"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + + if (!playerDetails.canSelectRoom()) { + webConnection.redirect("/me"); + return; + } + + // Set current page + webConnection.session().set("page", "welcome"); + template.render(); + } + + public static void reauthenticate(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + if (webConnection.post().queries().size() > 0) { + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + String username = playerDetails.getName(); + String password = webConnection.post().getString("password"); + + if (SessionUtil.login(webConnection, username, password, false)) { + webConnection.redirect(webConnection.session().contains("clientRequest") ? webConnection.session().getString("clientRequest") : "/me"); + return; + } + } + + // Set current page + webConnection.session().set("page", "reauthenticate"); + + var template = webConnection.template("account/reauthenticate"); + template.render(); + + // Delete alert after it's been rendered + webConnection.session().delete("alertMessage"); + + } + + public static void login_popup(WebConnection webConnection) { + // Set current page + webConnection.session().set("page", "login_popup"); + + var template = webConnection.template("account/login"); + template.render(); + + // Delete alert after it's been rendered + webConnection.session().delete("alertMessage"); + + } + + public static void banned(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + webConnection.session().delete("lastBrowsedPage"); + + var template = webConnection.template("account/banned"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair == null) { + webConnection.redirect("/me"); + return; + } + + // Set current page + webConnection.session().set("page", "banned"); + + String bannedMessage = String.format("You have been banned from %s. The reason for the ban is \"%s\". The ban will expire at %s.", + GameConfiguration.getInstance().getString("site.name"), + pair.getKey(), + DateUtil.getDate(pair.getValue(), DateUtil.LONG_DATE)); + + template.set("bannedMsg", bannedMessage); + template.render(); + + if (!webConnection.cookies().exists(SessionUtil.MACHINE_ID) || !webConnection.cookies().get(SessionUtil.MACHINE_ID).equals(playerDetails.getMachineId())) { + if (!playerDetails.getMachineId().isBlank()) { + webConnection.cookies().set(SessionUtil.MACHINE_ID, playerDetails.getMachineId().replace("#", ""), 2, TimeUnit.DAYS); + } + } + + // Delete user login session + SessionUtil.logout(webConnection); + + //webConnection.session().delete("user.id"); + //webConnection.session().delete("authenticated"); + } + + public static void logout(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + SessionUtil.logout(webConnection); + + // Set current page + webConnection.session().set("page", "logout"); + + var template = webConnection.template("account/logout"); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClientController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClientController.java new file mode 100644 index 0000000..fab0918 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClientController.java @@ -0,0 +1,209 @@ +package org.alexdev.http.controllers.site; + +import io.netty.handler.codec.http.FullHttpResponse; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.room.handlers.RoomSelectionHandler; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.SessionUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.sql.SQLException; +import java.text.NumberFormat; +import java.util.Locale; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +public class ClientController { + public static void client(WebConnection webConnection) throws SQLException { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/login_popup"); + return; + } + + webConnection.session().set("clientRequest", webConnection.request().uri()); + + if (webConnection.session().getBoolean("clientAuthenticate")) { + webConnection.redirect("/account/reauthenticate"); + return; + } + + boolean forwardRoom = false; + int forwardType = -1; + int forwardId = -1; + + var template = webConnection.template("client"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + SessionUtil.logout(webConnection); + webConnection.redirect("/"); + return; + } + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + + if (webConnection.get().contains("createRoom") && StringUtils.isNumeric(webConnection.get().getString("createRoom"))) { + int roomType = Integer.parseInt(webConnection.get().getString("createRoom")); + boolean setGift = false; + + if (!playerDetails.canSelectRoom()) { + int roomLayout = (int) PlayerStatisticsDao.getStatisticLong(playerDetails.getId(), PlayerStatistic.NEWBIE_ROOM_LAYOUT); + + if (roomLayout == 0) { + if (!(roomType < 0 || roomType > 5)) { + setGift = true; + } + } + } else { + setGift = RoomSelectionHandler.selectRoom(playerDetails.getId(), roomType); + } + + if (setGift) { + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.NEWBIE_ROOM_LAYOUT, roomType + 1); + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.NEWBIE_GIFT, 1); + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.NEWBIE_GIFT_TIME, DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(1)); + } + + playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + forwardRoom = true; + + forwardType = 2; // Private room + forwardId = playerDetails.getSelectedRoomId(); + } + + if (webConnection.get().contains("forwardId")) { + forwardRoom = true; + try { + forwardId = webConnection.get().getInt("roomId"); + forwardType = webConnection.get().getInt("forwardId"); + } catch (Exception ex) { + + } + } + + if (webConnection.get().contains("shortcut")) { + int redirectionId = 0; + + if (webConnection.get().getString("shortcut").equals("roomomatic")) { + redirectionId = 1; + } + + if (redirectionId > 0) { + template.set("shortcut", "shortcut.id=" + redirectionId + ";"); + } + } + + var ssoTicket = playerDetails.getSsoTicket(); + + // Update sso ticket + if (GameConfiguration.getInstance().getBoolean("reset.sso.after.login") || ssoTicket.isBlank()) { + ssoTicket = UUID.randomUUID().toString(); + PlayerDao.setTicket(webConnection.session().getInt("user.id"), ssoTicket); + } + + template.set("ssoTicket", ssoTicket); + template.set("forwardRoom", forwardRoom); + + if (forwardRoom) { + template.set("forward", ""); + template.set("forwardSub", "sw9=\"forward.type=" + forwardType + ";forward.id=" + forwardId + ";processlog.url=\""); + + template.set("forwardScript", ""); + template.set("forwardSubScript", "sw9=\\\"forward.type=" + forwardType + ";forward.id=" + forwardId + ";processlog.url=\\\""); + } + + template.render(); + } + + public static void clientInstallShockwave(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/login_popup"); + return; + } + + var template = webConnection.template("client_install_shockwave"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + + template.render(); + } + + public static void updateHabboCount(WebConnection webConnection) { + FullHttpResponse httpResponse = ResponseBuilder.create(""); + httpResponse.headers().set("X-JSON", "{\"habboCountText\":\"" + NumberFormat.getNumberInstance(Locale.US).format(Watchdog.USERS_ONLNE) + " members online" + "\"}"); + webConnection.send(httpResponse); + } + + public static void blank(WebConnection webConnection) { + webConnection.send(""); + } + + public static void client_error(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("client_error"); + + if (webConnection.session().getBoolean("authenticated")) { + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + } + + if (webConnection.get().contains("error_id")) { + template.set("errorId", webConnection.get().getString("error_id")); + } + + template.render(); + } + + public static void client_connection_failed(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("client_connection_failed"); + + if (webConnection.session().getBoolean("authenticated")) { + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + } + + if (webConnection.get().contains("error_id")) { + template.set("errorId", webConnection.get().getString("error_id")); + } + + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClubController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClubController.java new file mode 100644 index 0000000..0fd177b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ClubController.java @@ -0,0 +1,221 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.club.ClubSubscription; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.TimeUnit; + +public class ClubController { + public static void club(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "credits"); + renderclub(webConnection); + } + + public static void renderclub(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("club"); + + if (webConnection.session().getBoolean("authenticated")) { + var playerDetails = (PlayerDetails) template.get("playerDetails"); + var statistics = new PlayerStatisticManager(playerDetails.getId(), PlayerStatisticsDao.getStatistics(playerDetails.getId())); + ClubSubscription.countMemberDays(playerDetails, statistics); + } + + for (int i = 0; i < 3; i++) { + var choiceData = ClubSubscription.getChoiceData(i + 1); + + template.set("clubChoiceCredits" + (i + 1), choiceData.getKey()); + template.set("clubChoiceDays" + (i + 1), choiceData.getValue()); + } + + if (webConnection.session().getBoolean("authenticated")) { + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + PlayerStatisticManager statisticManager = new PlayerStatisticManager(playerDetails.getId(), PlayerStatisticsDao.getStatistics(playerDetails.getId())); + + if (playerDetails.hasClubSubscription()) { + template.set("hcDays", TimeUnit.SECONDS.toDays(playerDetails.getClubExpiration() - DateUtil.getCurrentTimeSeconds())); + + int days = (int) TimeUnit.SECONDS.toDays(statisticManager.getLongValue(PlayerStatistic.CLUB_MEMBER_TIME)); + int sinceMonths = days > 0 ? days / 31 : 0;//(int) (now - player.getDetails().getFirstClubSubscription()) / 60 / 60 / 24 / 31; + + template.set("hcSinceMonths", sinceMonths); + } + } + + appendgiftdata(template, webConnection.session().contains("lastClubGiftMonth") ? webConnection.session().getInt("lastClubGiftMonth") : 1, 0, webConnection); + template.render(); + } + + + public static void habboClubGift(WebConnection connection) { + if (!connection.post().contains("month") || + !connection.post().contains("catalogpage")) { + connection.send(""); + return; + } + + if (!StringUtils.isNumeric(connection.post().getString("month")) || + !StringUtils.isNumeric(connection.post().getString("catalogpage"))) { + connection.send(""); + return; + } + + int month = connection.post().getInt("month"); + int catalogpage = connection.post().getInt("catalogpage"); + + var template = connection.template("habblet/habboclubgift"); + appendgiftdata(template, month, catalogpage, connection); + template.render(); + } + + private static void appendgiftdata(Template template, int month, int catalogpage, WebConnection connection) { + XSSUtil.clear(connection); + + var giftOrder = new ArrayList<>(Arrays.asList(ClubSubscription.getGiftOrder())); + giftOrder.add(0, "club_sofa"); + + int position = month - 1; + + if (position >= giftOrder.size()) { + position = 0; + } + + var nextSpriteGift = giftOrder.get(0); + + try { + nextSpriteGift = giftOrder.get(position); + } catch (Exception ex) { } + + List pages = new ArrayList<>(); + + catalogpage = 0; + + if (month >= 5 && month <= 8) { + catalogpage = 1; + } + + if (month >= 9 && month <= 12) { + catalogpage = 2; + } + + if (month >= 13 && month <= 16) { + catalogpage = 3; + } + + if (month >= 17 && month <= 20) { + catalogpage = 4; + } + + if (month >= 21 && month <= 23) { + catalogpage = 5; + } + + if (catalogpage == 0) { + pages.add(1); + pages.add(2); + pages.add(3); + pages.add(4); + pages.add(5); + } + + if (catalogpage == 1) { + pages.add(5); + pages.add(6); + pages.add(7); + pages.add(8); + pages.add(9); + } + + if (catalogpage == 2) { + pages.add(9); + pages.add(10); + pages.add(11); + pages.add(12); + pages.add(13); + } + + if (catalogpage == 3) { + pages.add(13); + pages.add(14); + pages.add(15); + pages.add(16); + pages.add(17); + } + + if (catalogpage == 4) { + pages.add(17); + pages.add(18); + pages.add(19); + pages.add(20); + pages.add(21); + } + + if (catalogpage == 5) { + pages.add(19); + pages.add(20); + pages.add(21); + pages.add(22); + pages.add(23); + } + + var definition = CatalogueManager.getInstance().getCatalogueItem(nextSpriteGift); + + template.set("pages", pages); + template.set("currentPage", month); + template.set("lastPage", giftOrder.size()); + + if (definition.getDefinition() == null) { + template.set("item", definition.getPackages().get(0).getDefinition()); + } else { + template.set("item", definition.getDefinition()); + } + + connection.session().set("lastClubGiftMonth", month); + } + + public static void clubTryout(WebConnection webConnection) { + var template = webConnection.template("club_tryout"); + + for (int i = 0; i < 3; i++) { + var choiceData = ClubSubscription.getChoiceData(i + 1); + + template.set("clubChoiceCredits" + (i + 1), choiceData.getKey()); + template.set("clubChoiceDays" + (i + 1), choiceData.getValue()); + } + + if (webConnection.session().getBoolean("authenticated")) { + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + PlayerStatisticManager statisticManager = new PlayerStatisticManager(playerDetails.getId(), PlayerStatisticsDao.getStatistics(playerDetails.getId())); + + if (playerDetails.hasClubSubscription()) { + template.set("hcDays", TimeUnit.SECONDS.toDays(playerDetails.getClubExpiration() - DateUtil.getCurrentTimeSeconds())); + + int days = (int) TimeUnit.SECONDS.toDays(statisticManager.getLongValue(PlayerStatistic.CLUB_MEMBER_TIME)); + int sinceMonths = days > 0 ? days / 31 : 0;//(int) (now - player.getDetails().getFirstClubSubscription()) / 60 / 60 / 24 / 31; + + template.set("hcSinceMonths", sinceMonths); + } + + template.set("figure", playerDetails.getFigure()); + template.set("sex", playerDetails.getSex()); + } + + webConnection.session().set("page", "credits"); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CollectablesController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CollectablesController.java new file mode 100644 index 0000000..9513498 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CollectablesController.java @@ -0,0 +1,154 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.CurrencyDao; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.catalogue.collectables.CollectableData; +import org.alexdev.havana.game.catalogue.collectables.CollectablesManager; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.messages.incoming.catalogue.GRPC; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.game.collectables.CollectableEntry; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.XSSUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +public class CollectablesController { + public static void collectables(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + int pageId = GameConfiguration.getInstance().getInteger("collectables.page"); + CollectableData collectablesData = CollectablesManager.getInstance().getCollectableDataByPage(pageId); + + webConnection.session().set("page", "credits"); + + var template = webConnection.template("collectables"); + template.set("hasCollectable", (collectablesData != null)); + + List entries = new ArrayList<>(); + + if (collectablesData != null) { + collectablesData.checkCycle(); + + template.set("collectableSprite", collectablesData.getActiveItem().getDefinition().getSprite()); + template.set("collectableName", collectablesData.getActiveItem().getDefinition().getName()); + template.set("collectableDescription", collectablesData.getActiveItem().getDefinition().getDescription()); + template.set("expireSeconds", collectablesData.getExpiry() - DateUtil.getCurrentTimeSeconds()); + + + for (String sprite : collectablesData.getSprites()) { + ItemDefinition definition = ItemManager.getInstance().getDefinitionBySprite(sprite); + entries.add(new CollectableEntry(sprite, definition.getName(), definition.getDescription())); + } + } + + template.set("collectablesShowroom", entries); + template.render(); + } + + public static void confirm(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int pageId = GameConfiguration.getInstance().getInteger("collectables.page"); + CollectableData collectablesData = CollectablesManager.getInstance().getCollectableDataByPage(pageId); + + if (collectablesData == null) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("habblet/collectiblesConfirm"); + + template.set("collectableName", collectablesData.getActiveItem().getDefinition().getName()); + template.set("collectableCost", collectablesData.getActiveItem().getPriceCoins()); + + template.render(); + } + + public static void purchase(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("habblet/collectiblesPurchase"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var pair = playerDetails.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + return; + } + + int pageId = GameConfiguration.getInstance().getInteger("collectables.page"); + CollectableData collectablesData = CollectablesManager.getInstance().getCollectableDataByPage(pageId); + + if (collectablesData == null) { + webConnection.redirect("/"); + return; + } + + + if (playerDetails.getCredits() >= collectablesData.getActiveItem().getPriceCoins() && + playerDetails.getPixels() >= collectablesData.getActiveItem().getPricePixels()) { + + if (collectablesData.getActiveItem().getPriceCoins() > 0) { + CurrencyDao.decreaseCredits(playerDetails, collectablesData.getActiveItem().getPriceCoins()); + } + + if (collectablesData.getActiveItem().getPricePixels() > 0) { + CurrencyDao.decreasePixels(playerDetails, collectablesData.getActiveItem().getPricePixels()); + } + + template.set("message", "You've successfully bought a " + collectablesData.getActiveItem().getDefinition().getName()); + + + try { + var items = CatalogueManager.getInstance().purchase(playerDetails, collectablesData.getActiveItem(), "", "", DateUtil.getCurrentTimeSeconds()); + + String transactionDscription = GRPC.getTransactionDescription(collectablesData.getActiveItem()); + + if (transactionDscription != null) { + TransactionDao.createTransaction(playerDetails.getId(), + items.stream().map(e -> String.valueOf(e.getDatabaseId())).collect(Collectors.joining(",")), + collectablesData.getActiveItem().getId() + "", + collectablesData.getActiveItem().getAmount(), + "Collectable " + transactionDscription, + collectablesData.getActiveItem().getPriceCoins(), collectablesData.getActiveItem().getPricePixels(), true); + } + + } catch (Exception ex) { + template.set("message", "Purchasing the collectable failed due to system error"); + } + + RconUtil.sendCommand(RconHeader.REFRESH_HAND, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + RconUtil.sendCommand(RconHeader.REFRESH_CREDITS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + } else { + if (collectablesData.getActiveItem().getPricePixels() > playerDetails.getPixels()) { + template.set("message", "Purchasing the collectable failed. You don't have enough pixels."); + } else { + template.set("message", "Purchasing the collectable failed. You don't have enough credits."); + } + } + + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CommunityController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CommunityController.java new file mode 100644 index 0000000..ced764c --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CommunityController.java @@ -0,0 +1,60 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.XSSUtil; + +import java.util.List; + +public class CommunityController { + public static void community(WebConnection webConnection) { + XSSUtil.clear(webConnection); + var template = webConnection.template("community"); + + if (!webConnection.session().contains("authenticated")) { + return; + } + + /* + if (CacheManager.useCachePage(webConnection, "community")) { + webConnection.send(CacheManager.getPage(webConnection, "community")); + return; + } + */ + //boolean includeUnpublished = template.get("playerDetails") != null && ((PlayerDetails)template.get("playerDetails")).getRank().getRankId() > 1; + NewsArticle[] articles = new NewsArticle[5]; + + int i = 0; + List articleList = /*includeUnpublished ? Watchdog.NEWS_STAFF : */Watchdog.NEWS; + + for (var article : articleList) { + articles[i++] = article; + } + + for (i = 0; i < 5; i++) { + if (articles[i] == null) { + articles[i] = new NewsArticle(0,"No news", 0, "", "","", DateUtil.getCurrentTimeSeconds(), "attention_topstory.png", "", "", "0", true, 0, false); + } + + template.set("article" + (i + 1), articles[i]); + } + + webConnection.session().set("page", "community"); + + template.set("recommendedRooms", Watchdog.RECOMMENDED_ROOMS); + template.set("hiddenRecommendedRooms", Watchdog.HIDDEN_RECOMMENDED_ROOMS); + template.set("randomHabbos", PlayerDao.getRandomHabbos(18)); + template.set("tagCloud", Watchdog.TAG_CLOUD_10); + template.set("recentTopics", Watchdog.RECENT_DISCUSSIONS); + template.set("recentHiddenTopics", Watchdog.NEXT_RECENT_DISCUSSIONS); + + template.render(); + + //CacheManager.savePage(webConnection, "community", ((TwigTemplate)template).renderHTML(), 15); + //webConnection.send(CacheManager.getPage(webConnection, "community")); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CreditsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CreditsController.java new file mode 100644 index 0000000..eacf099 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/CreditsController.java @@ -0,0 +1,99 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.TransactionDao; +import org.alexdev.havana.game.item.Transaction; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.util.XSSUtil; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.List; + +public class CreditsController { + public static void credits(WebConnection webConnection) { + XSSUtil.createKey(webConnection, "/credits"); + + var template = webConnection.template("credits"); + webConnection.session().set("page", "credits"); + template.render(); + } + + public static void transactions(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Calendar presentDayCalendar = Calendar.getInstance(); + Calendar currentCalendar = Calendar.getInstance(); + Calendar futureCalendar = Calendar.getInstance(); + Calendar previousCalendar = Calendar.getInstance(); + + var template = webConnection.template("credits_history"); + var details = (PlayerDetails) template.get("playerDetails"); + + int userId = details.getId(); + boolean viewAll = false; + + if (details.getRank().getRankId() >= PlayerRank.MODERATOR.getRankId()) { + viewAll = true; + + try { + if (webConnection.get().contains("userId")) + userId = webConnection.get().getInt("userId"); + } catch (Exception ex) { + + } + } + + boolean hasDateParameter = webConnection.get().contains("period") && DateUtil.getFromFormat("yyyy-MM-dd", webConnection.get().getString("period")) > 0; + List transactionsThisMonth = null; + + + if (hasDateParameter) { + long time = DateUtil.getFromFormat("yyyy-MM-dd", webConnection.get().getString("period")); + + currentCalendar.setTimeInMillis(time * 1000); + futureCalendar.setTimeInMillis(time * 1000); + previousCalendar.setTimeInMillis(time * 1000); + } + + previousCalendar.add(Calendar.MONTH, -1); + futureCalendar.add(Calendar.MONTH, 1); + + int year = currentCalendar.get(Calendar.YEAR); + int month = currentCalendar.get(Calendar.MONTH) + 1; + transactionsThisMonth = TransactionDao.getTransactions(userId, month, year, viewAll); + + template.set("canGoNext", currentCalendar.get(Calendar.MONTH) != presentDayCalendar.get(Calendar.MONTH) || currentCalendar.get(Calendar.YEAR) != (presentDayCalendar.get(Calendar.YEAR))); + + String previousMonth = new SimpleDateFormat("MMMM").format(previousCalendar.getTime()); + int previousYear = previousCalendar.get(Calendar.YEAR); + int previousNumericalMonth = previousCalendar.get(Calendar.MONTH) + 1; + + template.set("previousYear", previousYear); + template.set("previousMonth", previousMonth); + template.set("previousNumericalMonth", previousNumericalMonth); + + String futureMonth = new SimpleDateFormat("MMMM").format(futureCalendar.getTime()); + int futureYear = futureCalendar.get(Calendar.YEAR); + int futureNumericalMonth = futureCalendar.get(Calendar.MONTH) + 1; + + template.set("futureYear", futureYear); + template.set("futureMonth", futureMonth); + template.set("futureNumericalMonth", futureNumericalMonth); + + webConnection.session().set("page", "credits"); + + template.set("currentYear", year); + template.set("currentMonth", new SimpleDateFormat("MMMM").format(currentCalendar.getTime())); + + template.set("transactions", transactionsThisMonth); + template.render(); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FaqController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FaqController.java new file mode 100644 index 0000000..afec068 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FaqController.java @@ -0,0 +1,13 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.util.XSSUtil; + +public class FaqController { + public static void faq(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("faq"); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FriendManagementController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FriendManagementController.java new file mode 100644 index 0000000..9ab0789 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/FriendManagementController.java @@ -0,0 +1,287 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.game.messenger.MessengerCategory; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.dao.FriendManagementDao; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.XSSUtil; + +import java.util.*; +import java.util.stream.Collectors; + +public class FriendManagementController { + public static void friendmanagement(Template template, WebConnection webConnection, int limit, int currentPage, int categoryId, String searchString) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var friendsCount = 0; + List friends = new ArrayList<>(); + + if (searchString != null) { + friends = FriendManagementDao.getFriendsSearch(playerDetails.getId(), searchString, currentPage, limit).stream() + .sorted(Comparator.comparingLong(MessengerUser::getLastOnline).reversed()) + .collect(Collectors.toList()); + friendsCount = FriendManagementDao.getFriendsCount(playerDetails.getId(), searchString); + } else { + friends = FriendManagementDao.getFriends(playerDetails.getId(), currentPage, limit).stream() + .sorted(Comparator.comparingLong(MessengerUser::getLastOnline).reversed()) + .collect(Collectors.toList()); + friendsCount = FriendManagementDao.getFriendsCount(playerDetails.getId()); + } + + + int pages = friendsCount > 0 ? (int) Math.ceil((double)friendsCount / (double)limit) : 0; + + if (pages == 0) { + pages = 1; + } + + var categories = MessengerDao.getCategories(playerDetails.getId()); + categories.sort(Comparator.comparingInt(MessengerCategory::getId)); + + friends.forEach(friend -> { + if (categories.stream().noneMatch(category -> friend.getCategoryId() == category.getId())) { + friend.setCategoryId(0); + MessengerDao.updateFriendCategory(playerDetails.getId(), friend.getUserId(), 0); + } + }); + + if (categoryId > -1) { + friends = friends.stream().filter(friend -> friend.getCategoryId() == categoryId).collect(Collectors.toList()); + } + + template.set("friends", friends); + template.set("categories", categories); + template.set("currentPage", currentPage); + template.set("pageLimit", limit); + + if (currentPage >= 2) { + template.set("firstPage", 1); + } else { + template.set("firstPage", -1); + } + + if (currentPage > 1) { + template.set("previousPage", currentPage - 1); + } else { + template.set("previousPage", -1); + } + + if (pages >= (currentPage + 1)) { + template.set("nextPage", currentPage + 1); + } else { + template.set("nextPage", -1); + } + + if (pages >= (currentPage + 2)) { + template.set("lastPage", pages); + } else { + template.set("lastPage", -1); + } + } + + public static void editCategory(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("profile/profile_widgets/friend_category_widget"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + String newName = webConnection.post().getString("name"); + int categoryId = webConnection.post().getInt("categoryId"); + + if (!newName.isBlank()) { + MessengerDao.updateCategory(newName, categoryId, playerDetails.getId()); + } + + RconUtil.sendCommand(RconHeader.REFRESH_MESSENGER_CATEGORIES, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + var categories = MessengerDao.getCategories(playerDetails.getId()); + categories.sort(Comparator.comparingInt(MessengerCategory::getId)); + + template.set("categories", categories); + template.render(); + } + + public static void createcategory(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("profile/profile_widgets/friend_category_widget"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + String newName = webConnection.post().getString("name"); + + if (!newName.isBlank()) { + if (newName.length() > 50) { + newName = newName.substring(0, 50); + } + + MessengerDao.addCategory(newName, playerDetails.getId()); + } + + RconUtil.sendCommand(RconHeader.REFRESH_MESSENGER_CATEGORIES, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + var categories = MessengerDao.getCategories(playerDetails.getId()); + categories.sort(Comparator.comparingInt(MessengerCategory::getId)); + + template.set("categories", categories); + template.render(); + } + + public static void deletecategory(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("profile/profile_widgets/friend_category_widget"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + int categoryId = webConnection.post().getInt("categoryId"); + MessengerDao.deleteCategory(categoryId, playerDetails.getId()); + + RconUtil.sendCommand(RconHeader.REFRESH_MESSENGER_CATEGORIES, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + var categories = MessengerDao.getCategories(playerDetails.getId()); + categories.sort(Comparator.comparingInt(MessengerCategory::getId)); + + MessengerDao.resetFriendCategories(playerDetails.getId(), categoryId); + + template.set("categories", categories); + template.render(); + } + + public static void viewCategory(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int pageNumber = webConnection.get().contains("pageNumber") ? webConnection.get().getInt("pageNumber") : 1; + int pageSize = webConnection.get().getInt("pageSize"); + int categoryId = webConnection.get().contains("categoryId") ? webConnection.get().getInt("categoryId") : -1; + String searchString = webConnection.get().contains("searchString") ? webConnection.get().getString("searchString") : null; + + if (webConnection.get().queries().size() == 0) { + pageSize = webConnection.post().getInt("pageSize"); + searchString = webConnection.post().contains("searchString") ? webConnection.post().getString("searchString") : null; + } + + if (pageSize > 100 || pageSize <= 0) { + pageSize = 30; + } + + if (pageNumber <= 0) { + pageNumber = 1; + } + + Template template = webConnection.template("profile/profile_widgets/friend_view_category"); + friendmanagement(template, webConnection, pageSize, pageNumber, categoryId, searchString); + template.render(); + } + + public static void updateCategoryOptions(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Template template = webConnection.template("profile/profile_widgets/friend_category_options"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + template.set("categories", MessengerDao.getCategories(playerDetails.getId())); + template.render(); + } + + public static void movefriends(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int pageSize = webConnection.post().getInt("pageSize"); + int categoryId = webConnection.post().contains("moveCategoryId") ? webConnection.post().getInt("moveCategoryId") : -1; + + if (pageSize > 100 || pageSize <= 0) { + pageSize = 30; + } + + Template template = webConnection.template("profile/profile_widgets/friend_view_category"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (webConnection.post().contains("friendList[]")) { + for (String value : webConnection.post().getArray("friendList[]")) { + try { + int userId = Integer.parseInt(value); + MessengerDao.updateFriendCategory(playerDetails.getId(), userId, categoryId); + } catch (Exception ex) { + + } + } + } + + RconUtil.sendCommand(RconHeader.REFRESH_MESSENGER_CATEGORIES, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + friendmanagement(template, webConnection, pageSize, 1, categoryId, null); + template.render(); + } + + public static void deletefriends(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Template template = webConnection.template("profile/profile_widgets/friend_view_category"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (webConnection.post().contains("friendList[]")) { + for (String value : webConnection.post().getArray("friendList[]")) { + int userId = Integer.parseInt(value); + + MessengerDao.removeFriend(playerDetails.getId(), userId); + MessengerDao.removeFriend(userId, playerDetails.getId()); + } + + } + + if (webConnection.post().contains("friendId")) { + int userId = webConnection.post().getInt("friendId"); + + MessengerDao.removeFriend(playerDetails.getId(), userId); + MessengerDao.removeFriend(userId, playerDetails.getId()); + } + + RconUtil.sendCommand(RconHeader.REFRESH_MESSENGER_CATEGORIES, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + + + friendmanagement(template, webConnection, 30, 1, -1, null); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/GamesController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/GamesController.java new file mode 100644 index 0000000..2fcfa8f --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/GamesController.java @@ -0,0 +1,128 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.HighscoreDao; +import org.alexdev.havana.game.games.enums.GameType; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +public class GamesController { + private static final int HIGHSCORES_LIMIT = 10; + + public static void games(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("games"); + + if (!webConnection.session().contains("highscoreGameId")) { + webConnection.session().set("highscoreGameId", "1"); + } + + GameType gameType = GameType.BATTLEBALL; + int gameId = webConnection.session().getInt("highscoreGameId"); + + if (gameId == 1) { + gameType = GameType.BATTLEBALL; + } + + if (gameId == 2) { + gameType = GameType.SNOWSTORM; + } + + if (gameId == 0) { + gameType = GameType.WOBBLE_SQUABBLE; + } + + webConnection.session().set("gameScoreViewMonthly", true); + + webConnection.session().set("page", "games"); + appendpersonalhighscores(template, gameType, 1, gameId, webConnection.session().getBoolean("gameScoreViewMonthly")); + template.render(); + } + + public static void games_all_time(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + var template = webConnection.template("games"); + + if (!webConnection.session().contains("highscoreGameId")) { + webConnection.session().set("highscoreGameId", "1"); + } + + GameType gameType = GameType.BATTLEBALL; + int gameId = webConnection.session().getInt("highscoreGameId"); + + if (gameId == 1) { + gameType = GameType.BATTLEBALL; + } + + if (gameId == 2) { + gameType = GameType.SNOWSTORM; + } + + if (gameId == 0) { + gameType = GameType.WOBBLE_SQUABBLE; + } + + webConnection.session().set("gameScoreViewMonthly", false); + + webConnection.session().set("page", "games"); + appendpersonalhighscores(template, gameType, 1, gameId, webConnection.session().getBoolean("gameScoreViewMonthly")); + template.render(); + } + + private static void appendpersonalhighscores(Template template, GameType gameType, int pageNumber, int gameId, boolean viewMonthly) { + template.set("scoreEntries", HighscoreDao.getScores(GamesController.HIGHSCORES_LIMIT, gameType, pageNumber, viewMonthly)); + template.set("gameId", gameId); + template.set("pageNumber", pageNumber); + template.set("viewMonthlyScores", viewMonthly); + + boolean hasNextPage = false; + + if (HighscoreDao.getScores(GamesController.HIGHSCORES_LIMIT, gameType, pageNumber + 1, viewMonthly).size() > 0) { + hasNextPage = true; + } + + template.set("hasNextPage", hasNextPage); + } + + public static void personalhighscores(WebConnection webConnection) { + var template = webConnection.template("habblet/personalhighscores"); + + int pageNumber = 1; + + if (webConnection.post().contains("pageNumber") && StringUtils.isNumeric(webConnection.post().getString("pageNumber"))) { + pageNumber = webConnection.post().getInt("pageNumber"); + + if (pageNumber < 1) { + pageNumber = 1; + } + } + + int gameId = 1; + GameType gameType = GameType.BATTLEBALL; + + if (webConnection.post().contains("gameId") && StringUtils.isNumeric(webConnection.post().getString("gameId"))) { + gameId = webConnection.post().getInt("gameId"); + + if (gameId == 1) { + gameType = GameType.BATTLEBALL; + } + + if (gameId == 2) { + gameType = GameType.SNOWSTORM; + } + + if (gameId == 0) { + gameType = GameType.WOBBLE_SQUABBLE; + } + + webConnection.session().set("highscoreGameId", String.valueOf(gameId)); + } + + appendpersonalhighscores(template, gameType, pageNumber, gameId, webConnection.session().getBoolean("gameScoreViewMonthly")); + template.render(); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/HomepageController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/HomepageController.java new file mode 100644 index 0000000..5d078d3 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/HomepageController.java @@ -0,0 +1,42 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.HomeUtil; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.XSSUtil; + +public class HomepageController { + public static void homepage(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/me"); + return; + } + + boolean rememberMe = webConnection.get().getString("rememberme").equals("true"); + String username = HtmlUtil.removeHtmlTags(webConnection.get().getString("username")); + + var template = webConnection.template(GameConfiguration.getInstance().getString("homepage.template.file")); + template.set("rememberMe", rememberMe); + template.set("username", username); + template.set("tagCloud", Watchdog.TAG_CLOUD_20); + + boolean isValentinesMonth = Integer.parseInt(DateUtil.getCurrentDate("M")) == 2 && Integer.parseInt(DateUtil.getCurrentDate("DD")) <= 16; + template.set("isValentinesMonth", isValentinesMonth); + template.set("randomValentinesImage", HomeUtil.getRandomValentinesImage()); + + template.render(); + + // Delete alert after it's been rendered + webConnection.session().delete("alertMessage"); + } + + public static void maintenance(WebConnection webConnection) { + var template = webConnection.template("maintenance"); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/MinimailController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/MinimailController.java new file mode 100644 index 0000000..f78fb1e --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/MinimailController.java @@ -0,0 +1,442 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.messenger.Messenger; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.http.dao.MinimailDao; +import org.alexdev.http.game.minimail.MinimailMessage; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; + +public class MinimailController { + public static void loadMessages(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + var template = webConnection.template("habblet/minimail/minimail_messages"); + appendMessages(webConnection, template, false, false, false, false, false, false); + template.render(); + } + + public static void appendMessages(WebConnection webConnection, Template template, boolean isPageLoad, boolean messageSent, boolean messageDeleted, boolean messageUndeleted, boolean trashEmptied, boolean isMuted) { + XSSUtil.clear(webConnection); + + String label = webConnection.post().getString("label"); + + if (label.isBlank()) { + if (!webConnection.session().contains("minimailLabel")) { + label = "inbox"; + } else { + label = webConnection.session().getString("minimailLabel"); + + if (label.equals("conversation") && !webConnection.post().contains("conversationId")) { + label = "inbox"; + } + } + } + + var startNumber = 0; + boolean unreadOnly = false; + + try { + startNumber = webConnection.post().getInt("start"); + } catch (Exception ex) { + webConnection.send(""); + return; + } + + try { + unreadOnly = webConnection.post().getBoolean("unreadOnly"); + } catch (Exception ex) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + int pageNumber = 0; + if (startNumber > 0) { + pageNumber = startNumber / 10; + } + + webConnection.session().set("minimailLabel", label); + template.set("minimailLabel", label); + + List entireMessageList = new ArrayList<>(); + + if (label.equalsIgnoreCase("inbox")) { + entireMessageList = MinimailDao.getMessages(userId); + } + + if (label.equalsIgnoreCase("sent")) { + entireMessageList = MinimailDao.getMessagesSent(userId); + } + + if (label.equalsIgnoreCase("trash")) { + entireMessageList = MinimailDao.getMessageTrash(userId); + } + + if (label.equalsIgnoreCase("conversation")) { + int conversationId = 0; + + try { + conversationId = webConnection.post().getInt("conversationId"); + } catch (Exception ex) { + + } + + entireMessageList = MinimailDao.getMessagesConversation(userId, conversationId); + } + + if (unreadOnly) { + entireMessageList.removeIf(MinimailMessage::isRead); + } + + template.set("unreadOnly", unreadOnly); + + entireMessageList.sort(Comparator.comparingLong(MinimailMessage::getDateSent).reversed()); + var paginatedMessages = StringUtil.paginate(entireMessageList, 10, true); + var minimailMessages = paginatedMessages.get(pageNumber); + + template.set("showOlder", false); + template.set("showOldest", false); + + if (paginatedMessages.containsKey(pageNumber + 1)) { + template.set("showOlder", true); + } + + if (paginatedMessages.containsKey(pageNumber + 2)) { + template.set("showOldest", true); + } + + if (paginatedMessages.containsKey(pageNumber - 1)) { + template.set("showNewer", true); + } + + if (paginatedMessages.containsKey(pageNumber - 2)) { + template.set("showNewest", true); + } + + template.set("minimailMessages", minimailMessages); + template.set("totalMessages", entireMessageList.size()); + template.set("minimailClient", false); + + var endPage = 10; + var startPage = startNumber; + + if (startNumber != 0) { + startPage++; + endPage = startNumber + 10; + } else { + startPage = 1; + } + + if (endPage > entireMessageList.size()) { + endPage = entireMessageList.size(); + } + + template.set("startPage", startPage); + template.set("endPage", endPage); + + Map playerDetailsMap = new HashMap<>(); + + for (MinimailMessage minimailMessage : minimailMessages) { + if (!playerDetailsMap.containsKey(minimailMessage.getToId())) { + playerDetailsMap.put(minimailMessage.getToId(), PlayerDao.getDetails(minimailMessage.getToId())); + } + + if (!playerDetailsMap.containsKey(minimailMessage.getSenderId())) { + playerDetailsMap.put(minimailMessage.getSenderId(), PlayerDao.getDetails(minimailMessage.getSenderId())); + } + + + minimailMessage.setAuthor(playerDetailsMap.get(minimailMessage.getSenderId())); + minimailMessage.setTarget(playerDetailsMap.get(minimailMessage.getToId())); + } + + if (!isPageLoad) { + if (messageSent) { + if (isMuted) { + webConnection.headers().put("X-JSON", "{\"message\":\"You are muted and cannot send messages.\",\"totalMessages\":" + entireMessageList.size() + "}"); + } else { + webConnection.headers().put("X-JSON", "{\"message\":\"Message sent successfully.\",\"totalMessages\":" + entireMessageList.size() + "}"); + } + } else if (messageDeleted) { + webConnection.headers().put("X-JSON", "{\"message\":\"The message has been moved to the trash. You can undelete it, if you wish\",\"totalMessages\":" + entireMessageList.size() + "}"); + } else if (messageUndeleted) { + webConnection.headers().put("X-JSON", "{\"message\":\"Message undeleted\",\"totalMessages\":" + entireMessageList.size() + "}"); + } else if (trashEmptied) { + webConnection.headers().put("X-JSON", "{\"message\":\"The trash has been emptied. Good Job!\",\"totalMessages\":" + entireMessageList.size() + "}"); + } else { + webConnection.headers().put("X-JSON", "{\"totalMessages\":" + entireMessageList.size() + "}"); + } + } + } + + public static void recipients(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + Messenger messenger = new Messenger(playerDetails); + + StringBuilder recipients = new StringBuilder(); + + int i = 0; + for (MessengerUser messengerUser : new ArrayList<>(messenger.getFriends().values())) { + i++; + + recipients.append("{\"id\":").append(messengerUser.getUserId()).append(",\"name\":\"").append(messengerUser.getUsername()).append("\"}"); + + if (messenger.getFriends().size() > i) { + recipients.append(","); + } + } + + webConnection.send("/*-secure-\n[" + recipients.toString() + "]\n */"); + } + + public static void preview(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + webConnection.send(BBCode.format(HtmlUtil.escape(webConnection.post().getString("body")), false)); + } + + public static void sendMessage(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + List minimailMessageList = new ArrayList<>(); + String message = webConnection.post().getString("body"); + + var template = webConnection.template("habblet/minimail/minimail_messages"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + var muteExpireTime = PlayerStatisticsDao.getStatisticLong(playerDetails.getId(), PlayerStatistic.MUTE_EXPIRES_AT); + var isMuted = muteExpireTime > 0 && muteExpireTime > DateUtil.getCurrentTimeSeconds(); + + if (!isMuted) { + if (webConnection.post().contains("recipientIds")) { + String[] recipients = webConnection.post().getString("recipientIds").split(","); + String subject = webConnection.post().getString("subject"); + + Messenger messenger = new Messenger(playerDetails); + + for (String data : recipients) { + if (!StringUtils.isNumeric(data)) { + continue; + } + + int toId = Integer.parseInt(data); + + if (!messenger.hasFriend(toId)) { + continue; + } + + if (WordfilterManager.filterSentence(message).equals(message)) { + minimailMessageList.add(new MinimailMessage(-1, webConnection.session().getInt("user.id"), toId, webConnection.session().getInt("user.id"), false, subject, message, 0, 0, false)); + minimailMessageList.add(new MinimailMessage(-1, toId, toId, webConnection.session().getInt("user.id"), false, subject, message, 0, 0, false)); + } + + } + } else if (webConnection.post().contains("messageId")) { + int messageId = 0; + int userId = webConnection.session().getInt("user.id"); + + try { + messageId = webConnection.post().getInt("messageId"); + } catch (Exception e) { + + } + + MinimailMessage minimailMessage = MinimailDao.getMessage(messageId, userId); + + if (minimailMessage != null) { + minimailMessage.setConversationId(messageId); + MinimailDao.updateMessage(minimailMessage); + + if (WordfilterManager.filterSentence(message).equals(message)) { + minimailMessageList.add(new MinimailMessage(-1, webConnection.session().getInt("user.id"), minimailMessage.getSenderId(), webConnection.session().getInt("user.id"), false, "Re: " + minimailMessage.getSubject(), message, 0, minimailMessage.getConversationId(), false)); + minimailMessageList.add(new MinimailMessage(-1, minimailMessage.getSenderId(), minimailMessage.getSenderId(), webConnection.session().getInt("user.id"), false, "Re: " + minimailMessage.getSubject(), message, 0, minimailMessage.getConversationId(), false)); + } + } + } + + MinimailDao.createMessages(minimailMessageList); + } + + appendMessages(webConnection, template, false, true, false, false, false, isMuted); + template.render(); + } + + public static void loadMessage(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int messageId = 0; + + try { + messageId = webConnection.get().getInt("messageId"); + } catch (Exception ex) { + webConnection.send("1"); + return; + } + + if (!(messageId > 0)) { + webConnection.send("2"); + return; + } + + MinimailMessage minimailMessage = MinimailDao.getMessage(messageId, userId); + + if (minimailMessage == null) { + webConnection.send(""); + return; + } + + boolean canSetUnread = false; + + if (webConnection.session().getString("minimailLabel").equalsIgnoreCase("conversation")) { + if (userId != minimailMessage.getTargetId() && userId != minimailMessage.getSenderId()) { + webConnection.send(""); + return; + } + } else if (webConnection.session().getString("minimailLabel").equalsIgnoreCase("sent")) { + if (userId != minimailMessage.getTargetId() && userId != minimailMessage.getSenderId()) { + webConnection.send(""); + return; + } + } + + canSetUnread = true; + + minimailMessage.setTarget(PlayerDao.getDetails(minimailMessage.getToId())); + minimailMessage.setAuthor(PlayerDao.getDetails(minimailMessage.getSenderId())); + + if (canSetUnread && !minimailMessage.isRead()) { + minimailMessage.setRead(true); + MinimailDao.updateMessage(minimailMessage); + } + + + var template = webConnection.template("habblet/minimail/minimail_load_message"); + template.set("minimailLabel", webConnection.session().getString("minimailLabel")); + template.set("minimailMessage", minimailMessage); + template.render(); + } + + public static void deleteMessage(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int messageId = 0; + + try { + messageId = webConnection.post().getInt("messageId"); + } catch (Exception ex) { + webConnection.send(""); + return; + } + + if (!(messageId > 0)) { + webConnection.send(""); + return; + } + + MinimailMessage minimailMessage = MinimailDao.getMessage(messageId, userId); + + if (minimailMessage == null) { + webConnection.send(""); + return; + } + + if (!minimailMessage.isTrash()) { + minimailMessage.setTrash(true); + MinimailDao.updateMessage(minimailMessage); + } else { + MinimailDao.deleteMessage(minimailMessage); + } + + var template = webConnection.template("habblet/minimail/minimail_messages"); + appendMessages(webConnection, template, false, false, true, false, false, false); + template.render(); + } + + public static void undeleteMessage(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int messageId = 0; + + try { + messageId = webConnection.post().getInt("messageId"); + } catch (Exception ex) { + webConnection.send(""); + return; + } + + if (!(messageId > 0)) { + webConnection.send(""); + return; + } + + MinimailMessage minimailMessage = MinimailDao.getMessage(messageId, userId); + + if (minimailMessage == null) { + webConnection.send(""); + return; + } + + minimailMessage.setTrash(false); + MinimailDao.updateMessage(minimailMessage); + + var template = webConnection.template("habblet/minimail/minimail_messages"); + appendMessages(webConnection, template, false, false, false, true, false, false); + template.render(); + } + + public static void emptyTrash(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.send(""); + return; + } + + int userId = webConnection.session().getInt("user.id"); + MinimailDao.emptyTrash(userId); + + var template = webConnection.template("habblet/minimail/minimail_messages"); + appendMessages(webConnection, template, false, false, false, false, true, false); + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/NewsController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/NewsController.java new file mode 100644 index 0000000..d15da9d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/NewsController.java @@ -0,0 +1,167 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.http.dao.NewsDao; +import org.alexdev.http.game.news.*; +import org.alexdev.http.util.XSSUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class NewsController { + public static void articles(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "community"); + + var template = webConnection.template("news_articles"); + template.set("newsPage", "news"); + rendernews(webConnection, template, null); + template.render(); + } + + public static void fansites(WebConnection webConnection) { + XSSUtil.clear(webConnection); + webConnection.session().set("page", "community"); + + var template = webConnection.template("news_articles"); + template.set("newsPage", "fansites"); + rendernews(webConnection, template, NewsManager.getInstance().getCategoryByLabel("fansites")); + template.render(); + } + + public static void events(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + webConnection.session().set("page", "community"); + + var template = webConnection.template("news_articles"); + template.set("newsPage", "events"); + rendernews(webConnection, template, NewsManager.getInstance().getCategoryByLabel("events")); + template.render(); + } + + private static void rendernews(WebConnection webConnection, Template template, NewsCategory override) { + int newsArticleId = 0; + + try { + newsArticleId = Integer.parseInt(webConnection.getMatches().get(0)); + } catch (Exception ignored) { + } + + int filterCategoryId = (override != null ? override.getId() : 0); + boolean hasArchive = false; + + /*if (filterCategoryId > 0) { + var categoryLabel = webConnection.getMatches().get(0); + var category = NewsManager.getInstance().getCategoryByLabel(categoryLabel); + + if (category != null) { + filterCategoryId = category.getId(); + } + + template.set("urlSuffix", ""); + hasArchive = true; + }*/ + + NewsView view = NewsView.DEFAULT; + + template.set("monthlyView", false); + template.set("archiveView", false); + + template.set("archives", new HashMap>());; + template.set("months", new HashMap>()); + template.set("articlesToday", new ArrayList<>()); + template.set("articlesYesterday", new ArrayList<>()); + template.set("articlesThisWeek", new ArrayList<>()); + template.set("articlesThisMonth", new ArrayList<>()); + template.set("articlesPastYear", new ArrayList<>()); + + if (webConnection.getRouteRequest().endsWith("archive") || + webConnection.getRouteRequest().endsWith("archive/")) { + template.set("urlSuffix", "/in/archive"); + template.set("archiveView", true); + view = NewsView.ARCHIVE; + + } else if (filterCategoryId > 0 || webConnection.getRouteRequest().contains("/category/")) { + if (webConnection.getRouteRequest().contains("/category/")) { + override = NewsManager.getInstance().getCategoryByLabel(webConnection.getMatches().get(0)); + } + + if (override != null) { + filterCategoryId = override.getId(); + view = NewsView.MONTHS; + template.set("monthlyView", true); + } + + } else { + template.set("urlSuffix", ""); + } + + boolean includeUnpublished = template.get("playerDetails") != null && ((PlayerDetails)template.get("playerDetails")).getRank().getRankId() > 1; + NewsArticle newsArticle = null; + + if (!NewsDao.exists(newsArticleId)) { + try { + var articles = NewsDao.getTop(NewsDateKey.ALL, 1, includeUnpublished, List.of(), filterCategoryId); + + if (articles.size() > 0) { + newsArticle = articles.get(0); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + } else { + newsArticle = NewsDao.get(newsArticleId); + } + + + if (newsArticle == null || (!newsArticle.isPublished() && !includeUnpublished)) { + newsArticle = new NewsArticle(1, + "No news", + -1, + "Hotel Staff", + "", + "There is no news.", + System.currentTimeMillis() / 1000L, + "", + "", + "", + "", + true, 0,false); + //webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + //return; + } + + template.set("currentArticle", newsArticle); + + if (view == NewsView.ARCHIVE) { + var monthlyArticles = NewsDao.getArchive(includeUnpublished); + template.set("archives", monthlyArticles); + template.set("archiveView", true); + } + + if (view == NewsView.MONTHS) { + var monthlyArticles = NewsDao.getPastYear(includeUnpublished, filterCategoryId); + template.set("months", monthlyArticles); + template.set("monthlyView", true); + } + + if (view == NewsView.DEFAULT) { + var articleList = NewsDao.getTop(Integer.MAX_VALUE, includeUnpublished, filterCategoryId); + template.set("articlesToday", articleList.get(NewsDateKey.TODAY)); + template.set("articlesYesterday", articleList.get(NewsDateKey.YESTERDAY)); + template.set("articlesThisWeek", articleList.get(NewsDateKey.THIS_WEEK)); + template.set("articlesThisMonth", articleList.get(NewsDateKey.THIS_MONTH)); + template.set("articlesPastYear", (articleList.get(NewsDateKey.TODAY).isEmpty() && articleList.get(NewsDateKey.YESTERDAY).isEmpty() && articleList.get(NewsDateKey.THIS_WEEK).isEmpty() && articleList.get(NewsDateKey.THIS_MONTH).isEmpty()) ? + articleList.get(NewsDateKey.PAST_YEAR) : + List.of()); + //template.set("articlesThisYear", hasArchive ? articleList.get(NewsDateKey.THIS_YEAR) : List.of()); + } + + //template.set("articles", articleList); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ProfileController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ProfileController.java new file mode 100644 index 0000000..51162d1 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/ProfileController.java @@ -0,0 +1,669 @@ +package org.alexdev.http.controllers.site; + +import io.netty.handler.codec.http.FullHttpResponse; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.dao.mysql.WardrobeDao; +import org.alexdev.havana.game.misc.figure.FigureManager; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.Wardrobe; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.SessionDao; +import org.alexdev.http.util.*; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.validator.routines.EmailValidator; + +import javax.mail.internet.AddressException; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; + +import static org.alexdev.havana.game.achievements.progressions.AchievementTraderPass.isActivated; + +public class ProfileController { + public static void profile(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var statistics = new PlayerStatisticManager(userId, PlayerStatisticsDao.getStatistics(userId)); + + webConnection.session().set("page", "me"); + int tab = 0; + + if (webConnection.get().contains("tab")) { + String value = webConnection.get().getString("tab"); + + if (StringUtils.isNumeric(value)) { + tab = Integer.parseInt(value); + } + }; + + Template template = null; + + switch (tab) { + case 1: { + template = webConnection.template("profile/change_looks"); + profile_flash(template, webConnection); + break; + } + case 2: { + template = webConnection.template("profile/change_preferences"); + preferences(template, webConnection); + break; + } + case 3: { + template = webConnection.template("profile/change_email"); + break; + } + case 4: { + template = webConnection.template("profile/change_password"); + break; + } + case 5: { + template = webConnection.template("profile/friend_management"); + FriendManagementController.friendmanagement(template, webConnection, 30, 1, -1, null); + break; + } + case 6: { + template = webConnection.template("profile/change_trade_settings"); + tradesettings(template, webConnection); + break; + } + default: { + template = webConnection.template("profile/change_looks"); + profile_flash(template, webConnection); + break; + } + } + + if (template != null) { + template.set("settingsSavedAlert", false); + template.set("accountActivated", isActivated(statistics.getValue(PlayerStatistic.ACTIVATION_CODE))); + + if (webConnection.session().contains("settings.saved.successfully")) { + template.set("settingsSavedAlert", true); + } + + template.set("randomNumber", ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE)); + template.render(); + } + webConnection.session().delete("settings.saved.successfully"); + + webConnection.session().delete("alertMessage"); + webConnection.session().delete("alertColour"); + } + + + private static void changelooks(Template template, WebConnection webConnection) { + // https://www.habbo.com/habbo-imaging/avatarimage?figure={{ wardrobeFigure1 }}&size=s&direction=4&head_direction=4&crr=0&gesture=sml&frame=1 + // System.out.println("lol 123"); + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (!playerDetails.hasClubSubscription()) { + webConnection.redirect("/"); + return; + } + + + List wardrobeList = WardrobeDao.getWardrobe(playerDetails.getId()); + + Wardrobe wardrobeSlot1 = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == 1).findFirst().orElse(null); + Wardrobe wardrobeSlot2 = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == 2).findFirst().orElse(null); + Wardrobe wardrobeSlot3 = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == 3).findFirst().orElse(null); + Wardrobe wardrobeSlot4 = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == 4).findFirst().orElse(null); + Wardrobe wardrobeSlot5 = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == 5).findFirst().orElse(null); + + template.set("wardrobe1", false); + template.set("wardrobe2", false); + template.set("wardrobe3", false); + template.set("wardrobe4", false); + template.set("wardrobe5", false); + + if (wardrobeSlot1 != null) { + template.set("wardrobe1", true); + template.set("wardrobeUrl1", HtmlUtil.createFigureLink(wardrobeSlot1.getFigure(), wardrobeSlot1.getSex())); + template.set("wardrobeFigure1", wardrobeSlot1.getFigure()); + template.set("wardrobeSex1", wardrobeSlot1.getSex()); + } + + if (wardrobeSlot2 != null) { + template.set("wardrobe2", true); + template.set("wardrobeUrl2", HtmlUtil.createFigureLink(wardrobeSlot2.getFigure(), wardrobeSlot2.getSex())); + template.set("wardrobeFigure2", wardrobeSlot2.getFigure()); + template.set("wardrobeSex2", wardrobeSlot2.getSex()); + } + + if (wardrobeSlot3 != null) { + template.set("wardrobe3", true); + template.set("wardrobeUrl3", HtmlUtil.createFigureLink(wardrobeSlot3.getFigure(), wardrobeSlot3.getSex())); + template.set("wardrobeFigure3", wardrobeSlot3.getFigure()); + template.set("wardrobeSex3", wardrobeSlot3.getSex()); + } + + if (wardrobeSlot4 != null) { + template.set("wardrobe4", true); + template.set("wardrobeUrl4", HtmlUtil.createFigureLink(wardrobeSlot4.getFigure(), wardrobeSlot4.getSex())); + template.set("wardrobeFigure4", wardrobeSlot4.getFigure()); + template.set("wardrobeSex4", wardrobeSlot4.getSex()); + } + + if (wardrobeSlot5 != null) { + template.set("wardrobe5", true); + template.set("wardrobeUrl5", HtmlUtil.createFigureLink(wardrobeSlot5.getFigure(), wardrobeSlot5.getSex())); + template.set("wardrobeFigure5", wardrobeSlot5.getFigure()); + template.set("wardrobeSex5", wardrobeSlot5.getSex()); + } + + if (!playerDetails.hasClubSubscription()) { + int validateFigureCode = FigureManager.getInstance().validateFigureCode(playerDetails.getFigure(), playerDetails.getSex(), false); + + if (validateFigureCode == 6) { + template.set("figureHasClub", true); + } else { + template.set("figureHasClub", false); + } + } else { + template.set("figureHasClub", false); + } + } + + public static void passwordupdate(WebConnection webConnection) throws Exception { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + Template template = webConnection.template("profile/change_password"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + boolean logout = false; + + if (webConnection.post().getString("currentpassword").isBlank() || + webConnection.post().getString("newpassword").isBlank() || + webConnection.post().getString("newpasswordconfirm").isBlank() || + webConnection.post().getString("captcha").isBlank()) { + + webConnection.session().set("alertMessage", "Please enter all fields"); + webConnection.session().set("alertColour", "red"); + } else { + String currentPassword = webConnection.post().getString("currentpassword"); + String newPassword = webConnection.post().getString("newpassword"); + String newPasswordConfirm = webConnection.post().getString("newpasswordconfirm"); + String captcha = webConnection.post().getString("captcha"); + + if (!PlayerDao.login(playerDetails, playerDetails.getName(), currentPassword)) { + webConnection.session().set("alertMessage", "Your current password is invalid"); + webConnection.session().set("alertColour", "red"); + } else if (newPassword.length() < 6) { + webConnection.session().set("alertMessage", "Password is too short, 6 characters minimum"); + webConnection.session().set("alertColour", "red"); + } /*else if (newPassword.length() > 25) { + webConnection.session().set("alertMessage", "Password is too long, 25 characters maximum"); + webConnection.session().set("alertColour", "red"); + } */else if (!newPassword.equals(newPasswordConfirm)) { + webConnection.session().set("alertMessage", "The passwords don't match"); + webConnection.session().set("alertColour", "red"); + } else if (!webConnection.session().getString("captcha-text").equals(captcha)) { + webConnection.session().set("alertMessage", "The security code was invalid, please try again."); + webConnection.session().set("alertColour", "red"); + } else { + webConnection.session().set("alertMessage", "Your password has been changed successfully. You will need to login again."); + webConnection.session().set("alertColour", "green"); + + PlayerDao.setPassword(playerDetails.getId(), PlayerDao.createPassword(newPassword)); + logout = true; + } + } + + + template.set("randomNumber", ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE)); + template.render(); + + webConnection.session().delete("alertMessage"); + webConnection.session().delete("alertColour"); + webConnection.session().delete("captcha-text"); + + if (logout) { + SessionUtil.logout(webConnection); + } + } + + public static void emailupdate(WebConnection webConnection) throws AddressException { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + + if (webConnection.post().getString("password").isBlank() || + webConnection.post().getString("captcha").isBlank()) { + + webConnection.session().set("alertMessage", "Please enter all fields"); + webConnection.session().set("alertColour", "red"); + } else { + String currentPassword = webConnection.post().getString("password"); + String email = webConnection.post().getString("email"); + String captcha = webConnection.post().getString("captcha"); + + if (!PlayerDao.login(playerDetails, playerDetails.getName(), currentPassword)) { + webConnection.session().set("alertMessage", "Your current password is invalid"); + webConnection.session().set("alertColour", "red"); + } else if (!EmailValidator.getInstance().isValid(email)) { + webConnection.session().set("alertMessage", "The email you entered is invalid"); + webConnection.session().set("alertColour", "red"); + } else if (!webConnection.session().getString("captcha-text").equals(captcha)) { + webConnection.session().set("alertMessage", "The security code was invalid, please try again."); + webConnection.session().set("alertColour", "red"); + } else { + webConnection.session().set("alertMessage", "Your email has been changed successfully."); + webConnection.session().set("alertColour", "green"); + + if (!playerDetails.getEmail().equals(email)) { + var activationCode = UUID.randomUUID().toString(); + + if (GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + if (EmailUtil.send(webConnection, email, "Activate your account at Classic Habbo", + EmailUtil.renderActivate( + playerDetails.getId(), + playerDetails.getName(), + email, + activationCode + ) + )) { + PlayerStatisticsDao.updateStatistic(playerDetails.getId(), PlayerStatistic.ACTIVATION_CODE, activationCode); + + if (GameConfiguration.getInstance().getBoolean("trade.email.verification")) { + if (playerDetails.isTradeEnabled()) { + SessionDao.saveTrade(playerDetails.getId(), false); + + RconUtil.sendCommand(RconHeader.REFRESH_TRADE_SETTING, new HashMap<>() {{ + put("userId", playerDetails.getId()); + put("tradeEnabled", "0"); + }}); + } + + } + + PlayerDao.setEmail(playerDetails.getId(), email); + } + } + } + } + } + + + webConnection.redirect("/profile?tab=3"); + webConnection.session().delete("captcha-text"); + } + + public static void characterupdate(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + + String[] expectedFields = new String[] { "figureData", "newGender" }; + + for (String field : expectedFields) { + if (!webConnection.post().queries().containsKey(field) || webConnection.post().queries().get(field).isEmpty()) { + webConnection.redirect("/profile"); + return; + } + } + + String newFigure = webConnection.post().getString("figureData"); + String newGender = webConnection.post().getString("newGender"); + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + int validateFigureCode = FigureManager.getInstance().validateFigureCode(newFigure, newGender, playerDetails.hasClubSubscription()); + if (validateFigureCode > 0) { + webConnection.redirect("/profile");/*?errorCode=" + validateFigureCode);*/ + return; + } + + if (newGender.charAt(0) != 'M' && newGender.charAt(0) != 'F') { + webConnection.redirect("/profile"); + return; + } + + + PlayerDao.saveDetails(playerDetails.getId(), newFigure, playerDetails.getPoolFigure(), newGender); + + if (playerDetails.isOnline()) { + RconUtil.sendCommand(RconHeader.REFRESH_LOOKS, new HashMap<>() {{ + put("userId", playerDetails.getId()); + }}); + } + + webConnection.session().set("settings.saved.successfully", ""); + webConnection.redirect("/profile"); + } + + public static void action(WebConnection webConnection) { + webConnection.redirect("/profile"); + } + + public static void club(WebConnection webConnection) { + webConnection.session().set("page", "me"); + ClubController.renderclub(webConnection); + } + + public static void preferences(Template template, WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + template.set("onlineStatusEnabled", ""); + template.set("onlineStatusDisabled", ""); + //template.set("hasFlashWarningEnabled", ""); + //template.set("hasFlashWarningDisabled", ""); + template.set("followFriendEnabled", ""); + template.set("followFriendDisabled", ""); + template.set("profileVisibleEnabled", ""); + template.set("profileVisibleDisabled", ""); + template.set("allowFriendRequests", ""); + template.set("allowFriendRequests", ""); + template.set("wordFilterSetting", ""); + template.set("wordFilterSetting", ""); + template.set("onlineStatusEnabled", ""); + template.set("onlineStatusDisabled", ""); + + if (playerDetails.isOnlineStatusVisible()) { + template.set("onlineStatusEnabled", "checked=\"checked\""); + } else { + template.set("onlineStatusDisabled", "checked=\"checked\""); + } + + /* + if (playerDetails.hasFlashWarning()) { + template.set("hasFlashWarningEnabled", "checked=\"checked\""); + } else { + template.set("hasFlashWarningDisabled", "checked=\"checked\""); + } + */ + + if (playerDetails.doesAllowStalking()) { + template.set("followFriendEnabled", "checked=\"checked\""); + } else { + template.set("followFriendDisabled", "checked=\"checked\""); + } + + if (playerDetails.isProfileVisible()) { + template.set("profileVisibleEnabled", "checked=\"checked\""); + } else { + template.set("profileVisibleDisabled", "checked=\"checked\""); + } + + if (playerDetails.isAllowFriendRequests()) { + template.set("allowFriendRequests", "checked=\"true\""); + } else { + template.set("allowFriendRequests", ""); + } + + if (playerDetails.isWordFilterEnabled()) { + template.set("wordFilterSetting", ""); + } else { + template.set("wordFilterSetting", "checked=\"true\""); + } + } + + public static void profileupdate(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + String motto = webConnection.post().getString("motto"); + boolean profileVisibility = webConnection.post().getString("visibility").equals("EVERYONE"); + boolean onlineStatusVisibility = webConnection.post().getString("showOnlineStatus").equals("true"); + boolean wordFilterEnabled = !webConnection.post().getString("wordFilterSetting").equals("false"); + boolean allowFriendRequests = webConnection.post().getString("allowFriendRequests").equals("true"); + boolean allowFriendStalking = webConnection.post().getString("followFriendSetting").equals("true"); + boolean shockwavePreferred = webConnection.post().getString("clientpreference").equals("SHOCKWAVE"); + String authToken = webConnection.session().getString("authenticationToken"); + + if (motto.length() > 32) { + motto = motto.substring(0, 32); + } + + SessionDao.savePreferences(motto, profileVisibility, onlineStatusVisibility, wordFilterEnabled, allowFriendRequests, allowFriendStalking, userId); + PlayerDao.setAuthToken(userId, authToken, DateUtil.getCurrentTimeSeconds()); + + webConnection.session().set("settings.saved.successfully", "true"); + webConnection.redirect("/profile?tab=2"); + } + + private static void tradesettings(Template template, WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + /*boolean canUseTrade = TimeUnit.SECONDS.toDays(DateUtil.getCurrentTimeSeconds() - playerDetails.getJoinDate()) >= 3 && + PlayerStatisticsDao.getStatistic(playerDetails.getId(), PlayerStatistic.ONLINE_TIME) >= TimeUnit.HOURS.toSeconds(1);*/ + boolean canUseTrade = !GameConfiguration.getInstance().getBoolean("trade.email.verification") || isActivated(PlayerStatisticsDao.getStatisticString(playerDetails.getId(), PlayerStatistic.ACTIVATION_CODE)); + template.set("canUseTrade", canUseTrade); + + if (!playerDetails.isTradeEnabled()) { + //template.set("tradeDisabled", "checked=\"checked\""); + } else { + //template.set("tradeEnabled", "checked=\"checked\""); + } + } + + public static void securitysettingupdate(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + String currentPassword = webConnection.post().getString("password"); + + if (currentPassword.isEmpty()) { + webConnection.session().set("alertMessage", "You did not enter a password"); + webConnection.session().set("alertColour", "red"); + } else if (!PlayerDao.login(playerDetails, playerDetails.getName(), currentPassword)) { + webConnection.session().set("alertMessage", "Your current password is invalid"); + webConnection.session().set("alertColour", "red"); + } else if (GameConfiguration.getInstance().getBoolean("trade.email.verification") && + !isActivated(PlayerStatisticsDao.getStatisticString(playerDetails.getId(), PlayerStatistic.ACTIVATION_CODE))) { + webConnection.session().set("alertMessage", "You must verify your email before enabling trade."); + webConnection.session().set("alertColour", "red"); + } else if (EmailUtil.isAlreadyTradePass(playerDetails.getId(), playerDetails.getEmail())) { + webConnection.session().set("alertMessage", "This email is already used for a trade pass."); + webConnection.session().set("alertColour", "red"); + } else { + webConnection.session().set("alertMessage", "Security settings updated successfully"); + webConnection.session().set("alertColour", "green"); + + /*boolean canUseTrade = TimeUnit.SECONDS.toDays(DateUtil.getCurrentTimeSeconds() - playerDetails.getJoinDate()) >= 3 && + PlayerStatisticsDao.getStatistic(playerDetails.getId(), PlayerStatistic.ONLINE_TIME) >= TimeUnit.HOURS.toSeconds(1); + + if (!canUseTrade) { + webConnection.post().setValue("tradesetting", "false"); + }*/ + + boolean tradeSetting = webConnection.post().getString("tradingsetting").equals("true"); + SessionDao.saveTrade(playerDetails.getId(), tradeSetting); + + RconUtil.sendCommand(RconHeader.REFRESH_TRADE_SETTING, new HashMap<>() {{ + put("userId", playerDetails.getId()); + put("tradeEnabled", tradeSetting ? "1" : "0"); + }}); + } + + webConnection.redirect("/profile?tab=6"); + } + + public static void wardrobeStore(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + if (!StringUtils.isNumeric( webConnection.post().getString("slot"))) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + int slotId = webConnection.post().getInt("slot"); + + String figure = StringUtil.filterInput(webConnection.post().getString("figure"), true); + String sex = StringUtil.filterInput(webConnection.post().getString("gender"), true); + + if (sex.isBlank()) { + sex = "M"; + } + + PlayerDetails playerDetails = PlayerDao.getDetails(userId); + + if (!FigureManager.getInstance().validateFigure(figure, sex, playerDetails.hasClubSubscription())) { + webConnection.redirect("/"); + return; + } + + if (slotId < 1 || slotId > 5) { + webConnection.redirect("/"); + return; + } + + List wardrobeList = WardrobeDao.getWardrobe(userId); + Wardrobe wardrobeData = wardrobeList.stream().filter(wardrobe -> wardrobe.getSlotId() == slotId).findFirst().orElse(null); + + if (wardrobeData == null) { + WardrobeDao.addWardrobe(userId, slotId, figure, sex.toUpperCase()); + } else { + WardrobeDao.updateWardrobe(userId, slotId, figure, sex.toUpperCase()); + } + + FullHttpResponse httpResponse = ResponseBuilder.create("application/json", "{\"slot\":\"" + slotId + "\",\"u\":\"" + HtmlUtil.createFigureLink(figure, sex) + "\",\"f\":\"" + figure + "\",\"g\":77}"); + webConnection.send(httpResponse); + } + + public static void verify(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var statistics = new PlayerStatisticManager(userId, PlayerStatisticsDao.getStatistics(userId)); + + webConnection.session().set("page", "me"); + + var template = webConnection.template("profile/verify_email"); + template.set("accountActivated", isActivated(statistics.getValue(PlayerStatistic.ACTIVATION_CODE))); + template.render(); + + webConnection.session().delete("alertMessage"); + webConnection.session().delete("alertColour"); + } + + public static void send_email(WebConnection webConnection) throws AddressException { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + + var playerDetails = PlayerDao.getDetails(userId); + var statistics = new PlayerStatisticManager(userId, PlayerStatisticsDao.getStatistics(userId)); + + if (isActivated(statistics.getValue(PlayerStatistic.ACTIVATION_CODE))) { + webConnection.session().set("alertMessage", "Your email is already activated"); + webConnection.session().set("alertColour", "red"); + webConnection.redirect("/profile/verify"); + return; + } + + statistics.setValue(PlayerStatistic.ACTIVATION_CODE, UUID.randomUUID().toString()); + + if (GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + webConnection.session().set("alertMessage", "A verification email has been sent to your email address"); + webConnection.session().set("alertColour", "green"); + + EmailUtil.send(webConnection, playerDetails.getEmail(), "Activate your account at Classic Habbo", + EmailUtil.renderActivate( + userId, + playerDetails.getName(), + playerDetails.getEmail(), + statistics.getValue(PlayerStatistic.ACTIVATION_CODE) + ) + ); + } + + webConnection.redirect("/profile/verify"); + } + + public static void profile_flash(Template template, WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + int userId = webConnection.session().getInt("user.id"); + var statistics = new PlayerStatisticManager(userId, PlayerStatisticsDao.getStatistics(userId)); + + webConnection.session().set("page", "me"); + int tab = 0; + + if (webConnection.get().contains("tab")) { + String value = webConnection.get().getString("tab"); + + if (StringUtils.isNumeric(value)) { + tab = Integer.parseInt(value); + } + }; + + // Template template = webConnection.template("profile/change_looks_flash"); + changelooks(template, webConnection); + + if (template != null) { + template.set("accountActivated", isActivated(statistics.getValue(PlayerStatistic.ACTIVATION_CODE))); + + if (webConnection.session().contains("settings.saved.successfully")) { + template.set("settingsSavedAlert", "true"); + } + + template.set("randomNumber", ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE)); + template.render(); + } + webConnection.session().delete("settings.saved.successfully"); + + webConnection.session().delete("alertMessage"); + webConnection.session().delete("alertColour"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/QuickmenuController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/QuickmenuController.java new file mode 100644 index 0000000..e1e41cc --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/QuickmenuController.java @@ -0,0 +1,69 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.RoomDao; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.http.util.XSSUtil; + +import java.util.Comparator; +import java.util.stream.Collectors; + +public class QuickmenuController { + public static void groups(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var groups = GroupDao.getJoinedGroups(webConnection.session().getInt("user.id")); + + var tpl = webConnection.template("quickmenu/groups"); + tpl.set("groups", groups); + tpl.render(); + } + + public static void friends(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var friends = MessengerDao.getFriends(webConnection.session().getInt("user.id")); + + var friendsOnline = friends.values().stream() + .filter(MessengerUser::isOnline) + .sorted(Comparator.comparingLong(MessengerUser::getLastOnline).reversed()) + .limit(10) + .collect(Collectors.toList()); + + var friendsOffline = friends.values().stream() + .filter(user -> !user.isOnline()) + .sorted(Comparator.comparingLong(MessengerUser::getLastOnline).reversed()) + .limit(10) + .collect(Collectors.toList()); + + var tpl = webConnection.template("quickmenu/friends_all"); + tpl.set("onlineFriends", friendsOnline); + tpl.set("offlineFriends", friendsOffline); + tpl.render(); + } + + public static void rooms(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var tpl = webConnection.template("quickmenu/rooms"); + tpl.set("rooms", RoomDao.getRoomsByUserId(webConnection.session().getInt("user.id"))); + tpl.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RecoveryController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RecoveryController.java new file mode 100644 index 0000000..0b434d7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RecoveryController.java @@ -0,0 +1,184 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.EmailDao; +import org.alexdev.http.util.EmailUtil; +import org.alexdev.http.util.SessionUtil; +import org.apache.commons.validator.routines.EmailValidator; + +import java.util.UUID; + +public class RecoveryController { + public static void forgot(WebConnection webConnection) { + if (!GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("account/email/account_forgot"); + + if (webConnection.post().getValues().size() > 0) { + if (webConnection.post().contains("actionList")) { + var email = webConnection.post().getString("ownerEmailAddress"); + + if (!webConnection.post().contains("ownerEmailAddress") + || !EmailValidator.getInstance().isValid(email) + || !EmailDao.getDetailsByEmail(webConnection.post().getString("ownerEmailAddress"))) { + template.set("invalidForgetName", true); + template.render(); + return; + } + + template = webConnection.template("account/email/sent"); + template.render(); + //template.set("validForgetName", true); + return; + } + + if (webConnection.post().contains("actionForgot")) { + var email = webConnection.post().getString("forgottenpw-email"); + + if (!webConnection.post().contains("forgottenpw-username") || webConnection.post().getString("forgottenpw-username").isBlank()) { + template.set("invalidForgetPassword", true); + template.render(); + return; + } + + if (!webConnection.post().contains("forgottenpw-email") || webConnection.post().getString("forgottenpw-email").isBlank()) { + template.set("invalidForgetPassword", true); + template.render(); + return; + } + + var details = EmailDao.getDetails(webConnection.post().getString("forgottenpw-username"), webConnection.post().getString("forgottenpw-email")); + + if (!EmailValidator.getInstance().isValid(email) || details == null) { + template.set("invalidForgetPassword", true); + template.render(); + return; + } + + //var statistics = new PlayerStatisticManager(playerDetails.getId(), PlayerStatisticsDao.getStatistics(playerDetails.getId())); + var recoveryCode = UUID.randomUUID().toString(); + var userId = PlayerDao.getId(webConnection.post().getString("forgottenpw-username")); + + PlayerStatisticsDao.updateStatistic(userId, PlayerStatistic.FORGOT_PASSWORD_CODE, recoveryCode); + PlayerStatisticsDao.updateStatistic(userId, PlayerStatistic.FORGOT_RECOVERY_REQUESTED_TIME, DateUtil.getCurrentTimeSeconds()); + + if (GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + EmailUtil.send(webConnection, email, "Password recovery at Classic Habbo", + EmailUtil.renderPasswordRecovery( + details.getId(), + details.getName(), + recoveryCode + ) + ); + } + + + template = webConnection.template("account/email/sent"); + template.render(); + return; + //template.set("validForgetPassword", true); + } + } + + + webConnection.session().set("page", "recover"); + template.render(); + } + + + public static void recovery(WebConnection webConnection) throws Exception { + if (!GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + webConnection.redirect("/"); + return; + } + + int userId = 0; + + try { + userId = webConnection.get().getInt("id"); + } catch (Exception ex) { + + } + + String recoveryCode = webConnection.get().getString("code"); + + var template = webConnection.template("account/email/account_recovery"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (webConnection.post().contains("user_id") && webConnection.post().contains("recovery_code")) { + userId = webConnection.post().getInt("user_id"); + recoveryCode = webConnection.post().getString("recovery_code"); + } + + if ((userId == 0 || recoveryCode == null) || !EmailDao.recoveryExists(userId, recoveryCode)) { + webConnection.session().set("alertMessage", "The recovery code was invalid"); + webConnection.session().set("alertColour", "red"); + } else { + if (webConnection.post().contains("password") && webConnection.post().contains("confirmpassword")) { + var password = webConnection.post().getString("password"); + var newPassword = webConnection.post().getString("confirmpassword"); + + if (!newPassword.equals(password)) { + webConnection.session().set("alertMessage", "The passwords don't match"); + webConnection.session().set("alertColour", "red"); + } else if (newPassword.length() < 6) { + webConnection.session().set("alertMessage", "Password is too short, 6 characters minimum"); + webConnection.session().set("alertColour", "red"); + } else { + webConnection.session().set("alertMessage", "Your password has been changed successfully."); + webConnection.session().set("alertColour", "green"); + + PlayerDao.setPassword(userId, PlayerDao.createPassword(newPassword)); + EmailDao.removeRecoveryCode(userId); + } + } + + template.set("recoveryCode", recoveryCode); + template.set("userId", userId); + } + + template.render(); + + webConnection.session().delete("alertMessage"); + webConnection.session().delete("alertColour"); + } + + public static void activate(WebConnection webConnection) { + if (!GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + webConnection.redirect("/"); + return; + } + + int userId = 0; + + try { + userId = webConnection.get().getInt("id"); + } catch (Exception ex) { + + } + + String activationCode = webConnection.get().getString("code"); + + var template = webConnection.template("account/email/account_activated"); + template.set("verifySuccess", true); + + if (userId == 0 || activationCode == null) { + template.set("verifySuccess", false); + } else if (!EmailDao.exists(userId, activationCode)) { + template.set("verifySuccess", false); + } else { + EmailDao.activate(userId, activationCode); + } + + template.render(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RegisterController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RegisterController.java new file mode 100644 index 0000000..a67f3b9 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/RegisterController.java @@ -0,0 +1,274 @@ +package org.alexdev.http.controllers.site; + +import io.netty.handler.codec.http.FullHttpResponse; +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.util.MimeType; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.PlayerStatisticsDao; +import org.alexdev.havana.dao.mysql.ReferredDao; +import org.alexdev.havana.game.misc.figure.FigureManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.FigureUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.dao.RegisterDao; +import org.alexdev.http.util.*; + +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +public class RegisterController { + public static void register(WebConnection webConnection) throws Exception { + if (webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/me"); + return; + } + + int maxConnectionsPerIp = GameConfiguration.getInstance().getInteger("max.connections.per.ip"); + String ipAddress = webConnection.getIpAddress(); + + if (PlayerDao.countIpAddress(ipAddress) >= maxConnectionsPerIp) { + webConnection.session().set("alertMessage", "You already have enough accounts registered"); + webConnection.redirect("/"); + return; + } + + if (webConnection.cookies().exists(SessionUtil.MACHINE_ID)) { + var machineId = webConnection.cookies().get(SessionUtil.MACHINE_ID); + + if (PlayerDao.countMachineId("#" + machineId) >= maxConnectionsPerIp) { + webConnection.session().set("alertMessage", "You already have enough accounts registered"); + webConnection.redirect("/"); + return; + } + } + + if (GameConfiguration.getInstance().getBoolean("registration.disabled")) { + var template = webConnection.template("register_disabled"); + template.render(); + return; + } + + int referral = 0; + + try { + referral = webConnection.get().contains("referral") ? webConnection.get().getInt("referral") : 0; + } catch (Exception ignored) { + + } + + if (referral > 0) { + webConnection.session().set("referral", referral); + } + + if (webConnection.post().queries().size() > 3) { + String[] checkEmpty = new String[]{"bean.avatarName", "bean.captchaResponse", "retypedPassword", "bean.email"}; + + for (var field : checkEmpty) { + if (webConnection.post().queries().containsKey(field) && webConnection.post().getString(field).isBlank()) { + webConnection.session().set("captcha.invalid", false); + webConnection.redirect("/register?errorCode=blank_fields"); + break; + } + } + + String username = "";//HtmlUtil.removeHtmlTags(webConnection.session().getString("registerUsername")); + String email = "";//HtmlUtil.removeHtmlTags(webConnection.session().getString("registerEmail")); + + if (webConnection.post().contains("registerUsername")) { + username = HtmlUtil.removeHtmlTags(webConnection.session().getString("registerUsername")); + } + + if (webConnection.post().contains("registerEmail")) { + email = HtmlUtil.removeHtmlTags(webConnection.session().getString("registerEmail")); + } + + if (webConnection.post().contains("bean.avatarName")) { + username = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.avatarName")); + } + + if (webConnection.post().contains("bean.email")) { + email = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.email")); + } + + //String username = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.avatarName")); + //String email = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.email")); + + if (webConnection.post().queries().size() > 10) { + String password = HtmlUtil.removeHtmlTags(webConnection.post().getString("retypedPassword")); + String day = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.day")); + String month = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.month")); + String year = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.year")); + String figure = null; + String gender = null; + + if (webConnection.post().contains("randomFigure")) { + String temp = HtmlUtil.removeHtmlTags(webConnection.post().getString("randomFigure")); + figure = temp.substring(2); + gender = temp.substring(0, 1); + } else { + figure = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.figure")); + gender = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.gender")); + } + + webConnection.session().set("registerUsername", username); + webConnection.session().set("registerPassword", password); + webConnection.session().set("registerShowPassword", password.replaceAll("(?s).", "*")); + webConnection.session().set("registerFigure", figure); + webConnection.session().set("registerGender", gender); + webConnection.session().set("registerEmail", email); + webConnection.session().set("registerDay", day); + webConnection.session().set("registerMonth", month); + webConnection.session().set("registerYear", year); + + if (!FigureManager.getInstance().validateFigure(figure, gender, false)) { + webConnection.redirect("/register?error=bad_look"); + return; + } + + if (!RegisterUtil.isValidName(username)) { + webConnection.redirect("/register?error=bad_username"); + return; + } + + if (!RegisterUtil.isValidEmail(email)) { + webConnection.session().set("email.invalid", true); + webConnection.redirect("/register?error=bad_email"); + return; + } + } + + String captchaResponse = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.captchaResponse")); + + if (!captchaResponse.equals(webConnection.session().getString("captcha-text"))) { + webConnection.session().set("captcha.invalid", true); + webConnection.redirect("/register?error=bad_captcha"); + return; + } else { + if (webConnection.post().contains("bean.email")) { + email = HtmlUtil.removeHtmlTags(webConnection.post().getString("bean.email")); + webConnection.session().set("registerEmail", email); + } + + if (!RegisterUtil.isValidEmail(webConnection.session().getString("registerEmail"))) { + webConnection.session().set("email.invalid", true); + webConnection.redirect("/register?error=bad_email"); + return; + } + + String hashedPassword = PlayerDao.createPassword(webConnection.session().getString("registerPassword")); + int userId = RegisterDao.newUser( + webConnection.session().getString("registerUsername"), + hashedPassword, + webConnection.session().getString("registerFigure"), + webConnection.session().getString("registerGender"), + webConnection.session().getString("registerEmail")); + + String activationCode = UUID.randomUUID().toString(); + PlayerStatisticsDao.newStatistics(userId, activationCode); + + if (GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + EmailUtil.send(webConnection, webConnection.session().getString("registerEmail"), "Activate your account at Classic Habbo", + EmailUtil.renderRegistered( + userId, + webConnection.session().getString("registerUsername"), + webConnection.session().getString("registerEmail"), + activationCode + ) + ); + } + + var latestIpAddress = PlayerDao.getLatestIp(userId); + + if (latestIpAddress == null || !latestIpAddress.equals(ipAddress)) { + PlayerDao.logIpAddress(userId, ipAddress); + } + + referral = webConnection.session().getInt("referral"); + + if (referral > 0) { + ReferredDao.addReferred(referral, userId); + } + + webConnection.session().delete("referral"); + webConnection.session().delete("captcha.invalid"); + + webConnection.session().set("user.id", userId); + webConnection.session().set("authenticated", true); + + /* + if (GameConfiguration.getInstance().getBoolean("free.month.hc.registration")) { + PlayerDao.saveSubscription(userId, 0, DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(30)); + } + */ + + /*if (webConnection.cookies().exists(SessionUtil.MACHINE_ID)) { + var machineId = webConnection.cookies().get(SessionUtil.MACHINE_ID); + + if (PlayerDao.countMachineId("#" + machineId) > 0) { + PlayerDao.setMachineId(userId, "#" + machineId); + webConnection.cookies().set(SessionUtil.MACHINE_ID, machineId.replace("#", ""), 2, TimeUnit.DAYS); + } + }*/ + + //AlertsDao.createAlert(userId, AlertType.CREDIT_DONATION, "A reminder
      If you play for 5 minutes daily, you will receive 120 credits!"); + webConnection.redirect("/welcome"); + } + + //webConnection.session().delete("captcha-text"); + } else { + var template = webConnection.template("register"); + + if (webConnection.session().getBoolean("captcha.invalid") || webConnection.session().getBoolean("email.invalid")) { + if (webConnection.session().getBoolean("captcha.invalid")) { + template.set("registerCaptchaInvalid", true); + } + + if (webConnection.session().getBoolean("email.invalid")) { + template.set("registerEmailInvalid", true); + } + + template.set("registerUsername", webConnection.session().getString("registerUsername")); + template.set("registerShowPassword", webConnection.session().getString("registerPassword").replaceAll("(?s).", "*")); + template.set("registerFigure", webConnection.session().getString("registerFigure")); + template.set("registerGender", webConnection.session().getString("registerGender")); + template.set("registerEmail", webConnection.session().getString("registerEmail")); + template.set("registerDay", webConnection.session().getString("registerDay")); + template.set("registerMonth", webConnection.session().getString("registerMonth")); + template.set("registerYear", webConnection.session().getString("registerYear")); + } + + template.set("randomNum", ThreadLocalRandom.current().nextInt(0, 10000)); + template.set("randomFemaleFigure1", FigureUtil.getRandomFigure("F", false)); + template.set("randomFemaleFigure2", FigureUtil.getRandomFigure("F", false)); + template.set("randomFemaleFigure3", FigureUtil.getRandomFigure("F", false)); + + template.set("randomMaleFigure1", FigureUtil.getRandomFigure("M", false)); + template.set("randomMaleFigure2", FigureUtil.getRandomFigure("M", false)); + template.set("randomMaleFigure3", FigureUtil.getRandomFigure("M", false)); + + template.set("referral", webConnection.session().getInt("referral")); + + template.render(); + } + } + + public static void registerCancelled(WebConnection webConnection) { + webConnection.session().delete("referral"); + webConnection.session().delete("captcha.invalid"); + webConnection.redirect("/"); + } + + public static void captcha(WebConnection webConnection) { + String captchaText = Captcha.generateText(7); + webConnection.session().set("captcha-text", captchaText); + + FullHttpResponse response = ResponseBuilder.create( + HttpResponseStatus.OK, MimeType.getContentType("png"), Captcha.generateImage(captchaText) + ); + + webConnection.send(response); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/SiteController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/SiteController.java new file mode 100644 index 0000000..ddc4588 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/SiteController.java @@ -0,0 +1,19 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.util.XSSUtil; + +public class SiteController { + public static void pixels(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + if (!webConnection.session().contains("authenticated")) { + return; + } + + var template = webConnection.template("pixels"); + webConnection.session().set("page", "credits"); + template.render(); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/controllers/site/TagController.java b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/TagController.java new file mode 100644 index 0000000..bbae129 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/controllers/site/TagController.java @@ -0,0 +1,330 @@ +package org.alexdev.http.controllers.site; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.MessengerDao; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.dao.mysql.TagDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.tags.HabboTag; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.server.Watchdog; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.http.util.RconUtil; +import org.alexdev.http.util.TagUtil; +import org.alexdev.http.util.XSSUtil; +import org.apache.commons.lang3.StringUtils; + +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TagController { + public static void tag(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + int pageId = webConnection.get().getInt("pageNumber"); + + List tags = new ArrayList<>(); + Map> paginatedUsers = StringUtil.paginate(tags, 5); + + if (!paginatedUsers.containsKey(pageId - 1)) { + pageId = 1; + } + + if (paginatedUsers.get(pageId - 1) == null) { + paginatedUsers.put(pageId - 1, new ArrayList<>()); + } + + var tpl = webConnection.template("tag"); + tpl.set("tagList", paginatedUsers.get(pageId - 1)); + tpl.set("pageId", pageId); + tpl.set("totalCount", tags.size()); + tpl.set("tagCloud", Watchdog.TAG_CLOUD_10); + tpl.set("tagSearchAdd", ""); + tpl.set("showOlder", false); + tpl.set("showOldest", false); + tpl.set("showNewer", false); + tpl.set("showNewest", false); + tpl.set("showFirst", false); + tpl.set("showLast", false); + tpl.set("showFirstPage", 1); + webConnection.session().set("page", "community"); + tpl.render(); + } + + public static void search(WebConnection webConnection) { + String tag = null; + int pageId = 1;// + + try { + pageId = webConnection.get().getInt("pageNumber"); + } catch (Exception ex) { + + } + + if (webConnection.get().contains("tag")) { + tag = webConnection.get().getString("tag"); + } else { + tag = webConnection.getMatches().get(0); + } + + respondWithSearch(webConnection, tag, pageId, "tag"); + } + + + public static void tagsearch(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + int pageId = 0; + String tag = webConnection.post().getString("tag"); + + respondWithSearch(webConnection, tag, pageId, "base/tag_search"); + } + + private static void respondWithSearch(WebConnection webConnection, String tag, int pageId, String template) { + XSSUtil.clear(webConnection); + + try { + tag = URLDecoder.decode(tag, StandardCharsets.UTF_8); + } catch (Exception ex) { + + } + + List tags = tag.isBlank() ? new ArrayList<>() : TagDao.getTagInfoList(tag); + Map> paginatedUsers = StringUtil.paginate(tags, 5); + + if (!paginatedUsers.containsKey(pageId - 1)) { + pageId = 1; + } + + tag = StringUtils.normalizeSpace(HtmlUtil.removeHtmlTags(tag)); + var tpl = webConnection.template(template); + + tpl.set("tagSearchAdd", ""); + + if (webConnection.session().getBoolean("authenticated")) { + int userId = webConnection.session().getInt("user.id"); + + var temporaryTag = StringUtil.isValidTag(tag, userId, 0, 0); + boolean isValidTag = temporaryTag != null; + + if (isValidTag) { + tpl.set("tagSearchAdd", "

      Tag yourself with: " + tag + "

      \n"); + } + } + + tpl.set("showOlder", false); + tpl.set("showOldest", false); + tpl.set("showNewer", false); + tpl.set("showNewest", false); + tpl.set("showFirst", false); + tpl.set("showFirstPage", 1); + tpl.set("showLast", false); + + int codePage = pageId - 1; + + if (paginatedUsers.containsKey(codePage - 1)) { + tpl.set("showOlder", true); + } + + if (paginatedUsers.containsKey(codePage - 2)) { + tpl.set("showOldest", true); + } + + if (paginatedUsers.containsKey(codePage + 1)) { + tpl.set("showNewer", true); + } + + if (paginatedUsers.containsKey(codePage + 2)) { + tpl.set("showNewest", true); + } + + if (paginatedUsers.containsKey(codePage + 3)) { + tpl.set("showLast", true); + tpl.set("showLastPage", paginatedUsers.size()); + } + + if (paginatedUsers.containsKey(codePage - 3)) { + tpl.set("showFirst", true); + tpl.set("showFirstPage", 1); + } + + tpl.set("tagList", paginatedUsers.get(pageId - 1)); + tpl.set("totalTagUsers", paginatedUsers); + tpl.set("tag", tag); + tpl.set("pageId", pageId); + tpl.set("totalCount", tags.size()); + tpl.set("tagCloud", Watchdog.TAG_CLOUD_10); + tpl.set("lastPage", tags.size()); + webConnection.session().set("page", "community"); + tpl.render(); + } + + public static void add(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + return; + } + + var tagList = TagDao.getUserTags(userId); + + if (tagList.size() >= GameConfiguration.getInstance().getInteger("max.tags.users")) { + webConnection.send("taglimit"); + return; + } + + String tag = StringUtil.isValidTag(webConnection.post().getString("tagName"), userId, 0, 0); + + if (tag == null) { + webConnection.send("invalidtag"); + return; + } + + if (WordfilterManager.filterSentence(tag).equals(tag)) { + StringUtil.addTag(tag, userId, 0, 0); + } + + webConnection.send("valid"); + + RconUtil.sendCommand(RconHeader.REFRESH_TAGS, new HashMap<>() {{ + put("userId", userId); + }}); + } + + + public static void remove(WebConnection webConnection) { + XSSUtil.clear(webConnection); + + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send(""); + return; + } + + var template = webConnection.template("homes/widget/habblet/taglist"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + webConnection.send(""); + return; + } + + String tag = webConnection.post().getString("tagName"); + TagDao.removeTag(userId, 0, 0, tag); + + List tags = TagDao.getUserTags(userId); + + template.set("tags", tags); + template.set("user", playerDetails); + template.render(); + + RconUtil.sendCommand(RconHeader.REFRESH_TAGS, new HashMap<>() {{ + put("userId", userId); + }}); + } + + public static void mytaglist(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + return; + } + + var template = webConnection.template("habblet/myTagList"); + template.set("tags", TagDao.getUserTags(userId)); + template.set("tagRandomQuestion", TagUtil.getRandomQuestion()); + template.render(); + } + + public static void tagfight(WebConnection webConnection) { + /*
      + Tie!
      + test + (1) hits +
      + alex + (1) hits +
      +
      + + New Fight + +
      +*/ + String firstTag = HtmlUtil.removeHtmlTags(webConnection.post().getString("tag1")); + String secondTag = HtmlUtil.removeHtmlTags(webConnection.post().getString("tag2")); + + int firstCount = TagDao.countTag(firstTag); + int secondCount = TagDao.countTag(secondTag); + int imageNumber = 0; + + String result = "Tie!"; + + if (secondCount > firstCount) { + imageNumber = 1; + result = "The winner is:"; + } + + if (secondCount < firstCount) { + imageNumber = 2; + result = "The winner is:"; + } + + var template = webConnection.template("habblet/tagFightResult"); + template.set("result", result); + template.set("resultTag1", firstTag); + template.set("resultTag2", secondTag); + template.set("resultHits1", firstCount); + template.set("resultHits2", secondCount); + template.set("tagFightImage", imageNumber); + template.render(); + } + + public static void tagmatch(WebConnection webConnection) { + if (!webConnection.session().getBoolean("authenticated")) { + webConnection.redirect("/"); + return; + } + + var template = webConnection.template("habblet/tagMatch"); + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + webConnection.redirect("/"); + return; + } + + String friendName = webConnection.post().getString("friendName"); + String errorMessage = ""; + + if (!MessengerDao.friendExists(playerDetails.getId(), PlayerDao.getId(friendName))) { + errorMessage = "Friend not found. Are you sure that they really exist?"; + } + + template.set("errorMsg", errorMessage); + template.render(); + } + + public static void remove_all_tags(WebConnection webConnection) { + int userId = webConnection.session().getInt("user.id"); + + if (userId < 1) { + webConnection.send("Please login to remove all your tags."); + return; + } + + var myTagList = TagDao.getUserTags(userId); + TagDao.removeTags(userId, 0, 0); + webConnection.send("All tags removed!

      The tags removed: " + String.join(", ", myTagList)); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/CommunityDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/CommunityDao.java new file mode 100644 index 0000000..f964410 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/CommunityDao.java @@ -0,0 +1,153 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.dao.mysql.ItemDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.Photo; +import org.alexdev.http.game.CommunityPhoto; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.photorenderer.PhotoRenderer; + +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CommunityDao { + public static Map getHotGroups(int limit, int offset) { + Map hotGroups = new HashMap<>(); + // SELECT group_id, COUNT(group_id) AS popularity FROM groups_memberships WHERE (UNIX_TIMESTAMP(created_at) + 2592000) > UNIX_TIMESTAMP() GROUP BY group_id + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT *, " + + "(SELECT COUNT(*) FROM groups_memberships " + + "WHERE group_id = id " + + "AND (groups_memberships.created_at between (CURDATE() - INTERVAL 1 MONTH ) and CURDATE())) AS popularity " + + "FROM groups_details " + + "WHERE groups_details.created_at between (CURDATE() - INTERVAL 1 MONTH) and CURDATE()" + + "LIMIT " + limit + " OFFSET " + offset, sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + hotGroups.put(GroupDao.fill(resultSet), resultSet.getInt("popularity")); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return hotGroups; + } + + public static List getRecentDiscussions(int limit, int offset) { + List discussionList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT DISTINCT " + + "cms_forum_threads.*, " + + "cms_forum_replies.created_at AS last_message_at, " + + "cms_forum_replies.id AS last_reply_id, " + + /* + "creator.username AS creator_name, " + + "creator.id AS creator_id, " + + "replier.username AS last_reply_name, " + + */ + "'' AS creator_name, " + + "0 AS creator_id, " + + "'' AS last_reply_name, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) AS reply_count, " + + /*(userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE cms_forums_read_replies.reply_id = last_reply_id AND cms_forums_read_replies.user_id = " + userId + " AND " + + "last_message_at < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL " + GroupDiscussionDao.MAX_UNREAD_DAYS + " DAY))) AS has_read " : "0 as has_read ") +*/ + "0 as has_read " + + "FROM " + + "cms_forum_replies " + + "INNER JOIN cms_forum_threads ON cms_forum_threads.id = cms_forum_replies.thread_id " + + //"INNER JOIN users replier ON cms_forum_replies.poster_id = replier.id " + + //"INNER JOIN users creator ON cms_forum_threads.poster_id = creator.id " + + "WHERE " + + "cms_forum_replies.id = (SELECT MAX(id) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) " + + "ORDER BY " + + //"is_stickied DESC, " + + "cms_forum_replies.created_at DESC " + + "LIMIT " + limit + " OFFSET " + offset, sqlConnection); + /*preparedStatement = Storage.getStorage().prepare("SELECT DISTINCT " + + "cms_forum_threads.*, " + + "NOW() AS last_message_at, " + + "0 AS last_reply_id, " + + "'null' AS creator_name, " + + "0 AS creator_id, " + + "'null' AS last_reply_name, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) AS reply_count, " + + "0 as has_read " + + "FROM " + + "cms_forum_threads " + + "ORDER BY " + + "created_at DESC " + + "LIMIT " + limit + " OFFSET " + offset, sqlConnection);*/ + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + discussionList.add(GroupDiscussionDao.fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return discussionList; + } + + public static List getPhotos(int userId) throws SQLException { + List photoList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM items_photos WHERE photo_user_id = ? ORDER BY timestamp DESC", sqlConnection);// (photo_id, photo_user_id, timestamp, photo_data, photo_checksum) VALUES (?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + Blob photoBlob = resultSet.getBlob("photo_data"); + int blobLength = (int) photoBlob.length(); + + byte[] photoBlobBytes = photoBlob.getBytes(1, blobLength); + photoList.add(new Photo(resultSet.getInt("photo_id"), resultSet.getInt("photo_checksum"), photoBlobBytes, resultSet.getLong("timestamp"))); + } + + } catch (Exception e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return photoList; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/EmailDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/EmailDao.java new file mode 100644 index 0000000..7be293d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/EmailDao.java @@ -0,0 +1,212 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class EmailDao { + public static boolean exists(int id, String activationCode) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_statistics WHERE user_id = ? AND activation_code = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.setString(2, activationCode); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static boolean recoveryExists(int id, String recoveryCode) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users_statistics WHERE user_id = ? AND forgot_password_code = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.setString(2, recoveryCode); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static void activate(int userId, String activationCode) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET activation_code = NULL WHERE user_id = ? AND activation_code = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, activationCode); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + } + + public static void removeRecoveryCode(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET forgot_password_code = NULL, forgot_recovery_requested_time = NULL WHERE user_id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void removeRecoveryCodeBatch() { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET forgot_password_code = NULL, forgot_recovery_requested_time = NULL WHERE forgot_recovery_requested_time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))", sqlConnection); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasUserTradePass(int userId, String email) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users INNER JOIN users_statistics ON users.id = users_statistics.user_id WHERE email = ? AND id <> ?", sqlConnection); + preparedStatement.setString(1, email); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = resultSet.getString("activation_code") == null && resultSet.getBoolean("trade_enabled"); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static PlayerDetails getDetails(String username, String email) { + PlayerDetails playerDetails = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE username = ? AND email = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, username); + preparedStatement.setString(2, email); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + playerDetails = new PlayerDetails(); + PlayerDao.fill(playerDetails, resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return playerDetails; + } + + public static boolean getDetailsByEmail(String email) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM users WHERE email = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, email); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/FriendManagementDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/FriendManagementDao.java new file mode 100644 index 0000000..764ee37 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/FriendManagementDao.java @@ -0,0 +1,158 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.game.messenger.MessengerUser; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class FriendManagementDao { + /** + * Gets the friends through pagination. + * + * @param userId the user id + * @return the friends + */ + public static List getFriends(int userId, int page, int itemsPerPage) { + List friends = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id,username,figure,motto,last_online,sex,allow_stalking,is_online,category_id,online_status_visible FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ? " + + "ORDER BY UNIX_TIMESTAMP(last_online) DESC LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + friends.add(new MessengerUser(resultSet.getInt("id"), resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), resultSet.getInt("category_id"), + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } + + /** + * Gets the friends through pagination. + * + * @param userId the user id + * @return the friends + */ + public static List getFriendsSearch(int userId, String searchQuery, int page, int itemsPerPage) { + List friends = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id,username,figure,motto,last_online,sex,allow_stalking,is_online,category_id,online_status_visible FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ? " + + "AND username LIKE ? ORDER BY UNIX_TIMESTAMP(last_online) DESC LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, searchQuery + "%"); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + friends.add(new MessengerUser(resultSet.getInt("id"), resultSet.getString("username"), resultSet.getString("figure"), + resultSet.getString("sex"), resultSet.getString("motto"), resultSet.getTime("last_online").getTime() / 1000L, + resultSet.getBoolean("allow_stalking"), resultSet.getInt("category_id"), + resultSet.getBoolean("is_online"), resultSet.getBoolean("online_status_visible"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; +} + + /** + * Gets the friends through pagination. + * + * @param userId the user id + * @return the friends + */ + public static int getFriendsCount(int userId, String searchQuery) { + int friends = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) as friends_amount,username FROM messenger_friends INNER JOIN users ON messenger_friends.from_id = users.id WHERE to_id = ? AND username LIKE ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setString(2, searchQuery + "%"); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + friends = resultSet.getInt("friends_amount"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } + + /** + * Counts the friends through search querying. + * + * @param userId the user id + * @return the friends + */ + public static int getFriendsCount(int userId) { + int friends = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT count(*) as friends_amount FROM messenger_friends WHERE to_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + friends = resultSet.getInt("friends_amount"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return friends; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/GroupDiscussionDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/GroupDiscussionDao.java new file mode 100644 index 0000000..9371429 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/GroupDiscussionDao.java @@ -0,0 +1,643 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.groups.DiscussionReply; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.apache.commons.lang3.tuple.Pair; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class GroupDiscussionDao { + public static final int MAX_UNREAD_DAYS = 7; + + public static Pair> getNewGroupMessages(int userId, long lastOnline) { + var groupData = new HashMap(); + var groups = new HashMap(); + int pendingMembers = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "groups_details.id AS group_id, " + + "groups_details.name AS group_name " + + "FROM groups_memberships " + + "RIGHT JOIN " + + "groups_details ON groups_memberships.group_id = groups_details.id " + + "WHERE (owner_id = ? " + + "OR (groups_memberships.user_id = ? AND groups_memberships.is_pending = 0 AND (groups_memberships.member_rank = '1' OR groups_memberships.member_rank = '2' OR groups_memberships.member_rank = '3')))", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int groupId = resultSet.getInt("group_id"); + String groupName = resultSet.getString("group_name"); + groupData.put(String.valueOf(groupId), groupName); + } + + if (groupData.size() > 0) { + preparedStatement = Storage.getStorage().prepare("SELECT group_id " + + "FROM cms_forum_replies " + + "INNER JOIN cms_forum_threads ON cms_forum_threads.id = cms_forum_replies.thread_id " + + "WHERE " + + "cms_forum_threads.group_id IN (" + String.join(",", groupData.keySet()) + ") " + + "AND (DATEDIFF(NOW(), cms_forum_replies.created_at) <= " + GroupDiscussionDao.MAX_UNREAD_DAYS + ") " + + "AND NOT EXISTS (SELECT * FROM cms_forums_read_replies WHERE cms_forums_read_replies.reply_id = (SELECT MAX(id) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id)" + + " AND cms_forums_read_replies.user_id = " + userId + ") " + + "GROUP BY group_id", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + int groupId = resultSet.getInt("group_id"); + + if (!groups.containsKey(String.valueOf(groupId))) { + groups.put(String.valueOf(groupId), groupData.get(String.valueOf(groupId))); + } + + pendingMembers++; + } + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return Pair.of(pendingMembers, groups); + } + + public static List getDiscussions(int groupId, int page, int itemsPerPage, int userId) { + List discussionList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "cms_forum_threads.*, " + + "cms_forum_replies.created_at AS last_message_at, " + + "cms_forum_replies.id AS last_reply_id, " + + "creator.username AS creator_name, " + + "creator.id AS creator_id, " + + "replier.username AS last_reply_name, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) AS reply_count, " + + (userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE (cms_forums_read_replies.reply_id = last_reply_id AND cms_forums_read_replies.user_id = " + userId + ") OR " + + " (DATEDIFF(NOW(), cms_forum_replies.created_at) > " + GroupDiscussionDao.MAX_UNREAD_DAYS + ")) AS has_read " : "0 as has_read ") + + "FROM " + + "cms_forum_replies " + + "INNER JOIN cms_forum_threads ON cms_forum_threads.id = cms_forum_replies.thread_id " + + "INNER JOIN users replier ON cms_forum_replies.poster_id = replier.id " + + "INNER JOIN users creator ON cms_forum_threads.poster_id = creator.id " + + "WHERE " + + "cms_forum_replies.id = (SELECT MAX(id) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) AND " + + "group_id = ? " + + "ORDER BY " + + "is_stickied DESC, " + + "cms_forum_replies.created_at DESC " + + "LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + discussionList.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return discussionList; + } + + public static int countDiscussions(int groupId) { + int discussions = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS discussion_count FROM cms_forum_threads WHERE cms_forum_threads.group_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + discussions = resultSet.getInt("discussion_count"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return discussions; + } + + public static List getReplies(int groupId, int page, int itemsPerPage, int userId) { + List replyList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "cms_forum_replies.*, " + + "users.id AS user_id, " + + "users.figure AS figure, " + + "users.username AS username, " + + "users.is_online AS is_online, " + + "IFNULL(users.favourite_group, 0) as group_id, " + + "(SELECT users_badges.badge FROM users_badges WHERE users_badges.user_id = users.id AND users_badges.equipped ORDER BY slot_id ASC LIMIT 1) AS equipped_badge, " + + "(SELECT groups_details.badge FROM groups_details WHERE groups_details.id = users.favourite_group) AS group_badge, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.poster_id = users.id) AS forum_messages, " + + (userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE (cms_forums_read_replies.reply_id = cms_forum_replies.id AND cms_forums_read_replies.user_id = " + userId + ") OR " + + " (DATEDIFF(NOW(), cms_forum_replies.created_at) > " + GroupDiscussionDao.MAX_UNREAD_DAYS + ")) AS has_read " : "0 as has_read ") + + "FROM " + + "cms_forum_replies " + + "INNER JOIN users ON users.id = cms_forum_replies.poster_id " + + "WHERE " + + "thread_id = ? " + + "ORDER BY " + + "cms_forum_replies.created_at " + + "ASC LIMIT " + ((page - 1) * itemsPerPage) + "," + itemsPerPage, sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + replyList.add(fillReply(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return replyList; + } + + public static int getFirstReply(int discussionId) { + int id = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM cms_forum_replies WHERE thread_id = ? ORDER BY created_at ASC LIMIT 1", sqlConnection); + preparedStatement.setInt(1, discussionId); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + id = resultSet.getInt("id"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return id; + } + + public static int countReplies(int groupId) { + int replies = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "COUNT(*) AS replies " + + "FROM " + + "cms_forum_replies " + + "INNER JOIN users ON users.id = cms_forum_replies.poster_id " + + "WHERE " + + "thread_id = ? " + + "ORDER BY " + + "cms_forum_replies.created_at " + + "ASC", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + replies = resultSet.getInt("replies"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return replies; + } + + public static int createDiscussion(int groupId, int posterId, String topicTitle) { + int id = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_forum_threads (topic_title, poster_id, group_id) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setString(1, topicTitle); + preparedStatement.setInt(2, posterId); + preparedStatement.setInt(3, groupId); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet != null && resultSet.next()) { + id = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return id; + } + + public static DiscussionTopic getDiscussion(int groupId, int discussionId, int userId) { + DiscussionTopic topic = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "cms_forum_threads.*, " + + "cms_forum_replies.created_at AS last_message_at, " + + "cms_forum_replies.id AS last_reply_id, " + + "creator.username AS creator_name, " + + "creator.id AS creator_id, " + + "replier.username AS last_reply_name, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.thread_id = cms_forum_threads.id) AS reply_count, " + + (userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE (cms_forums_read_replies.reply_id = last_reply_id AND cms_forums_read_replies.user_id = " + userId + ") OR " + + " (DATEDIFF(NOW(), cms_forum_replies.created_at) > " + GroupDiscussionDao.MAX_UNREAD_DAYS + ")) AS has_read " : "0 as has_read ") + + "FROM " + + "cms_forum_replies " + + "INNER JOIN cms_forum_threads ON cms_forum_threads.id = cms_forum_replies.thread_id " + + "INNER JOIN users replier ON cms_forum_replies.poster_id = replier.id " + + "INNER JOIN users creator ON cms_forum_threads.poster_id = creator.id " + + "WHERE " + + "cms_forum_threads.group_id = ? " + + "AND cms_forum_threads.id = ? " + + "ORDER BY " + + "cms_forum_replies.created_at " + + "DESC " + + "LIMIT 1", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, discussionId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + topic = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return topic; + } + + public static DiscussionReply getReply(int discussionId, int replyId, int userId) { + DiscussionReply reply = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "cms_forum_replies.*, " + + "users.id AS user_id, " + + "users.figure AS figure, " + + "users.username AS username, " + + "users.is_online AS is_online, " + + "IFNULL(users.favourite_group, 0) as group_id, " + + "(SELECT users_badges.badge FROM users_badges WHERE users_badges.user_id = users.id AND users_badges.equipped ORDER BY slot_id ASC LIMIT 1) AS equipped_badge, " + + "(SELECT groups_details.badge FROM groups_details WHERE groups_details.id = users.favourite_group) AS group_badge, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.poster_id = users.id) AS forum_messages, " + + (userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE (cms_forums_read_replies.reply_id = cms_forum_replies.id AND cms_forums_read_replies.user_id = " + userId + ") OR " + + " (DATEDIFF(NOW(), cms_forum_replies.created_at) > " + GroupDiscussionDao.MAX_UNREAD_DAYS + ")) AS has_read " : "0 as has_read ") + + "FROM " + + "cms_forum_replies " + + "INNER JOIN users ON users.id = cms_forum_replies.poster_id " + + "WHERE " + + "thread_id = ? AND cms_forum_replies.id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, discussionId); + preparedStatement.setInt(2, replyId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + reply = fillReply(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return reply; + } + + public static DiscussionReply getLatestReply(int userId) { + DiscussionReply reply = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "cms_forum_replies.*, " + + "users.id AS user_id, " + + "users.figure AS figure, " + + "users.username AS username, " + + "users.is_online AS is_online, " + + "IFNULL(users.favourite_group, 0) as group_id, " + + "(SELECT users_badges.badge FROM users_badges WHERE users_badges.user_id = users.id AND users_badges.equipped ORDER BY slot_id ASC LIMIT 1) AS equipped_badge, " + + "(SELECT groups_details.badge FROM groups_details WHERE groups_details.id = users.favourite_group) AS group_badge, " + + "(SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.poster_id = users.id) AS forum_messages, " + + (userId > 0 ? "(SELECT COUNT(*) FROM cms_forums_read_replies WHERE (cms_forums_read_replies.reply_id = cms_forum_replies.id AND cms_forums_read_replies.user_id = " + userId + ") OR " + + " (DATEDIFF(NOW(), cms_forum_replies.created_at) > " + GroupDiscussionDao.MAX_UNREAD_DAYS + ")) AS has_read " : "0 as has_read ") + + "FROM " + + "cms_forum_replies " + + "INNER JOIN users ON users.id = cms_forum_replies.poster_id " + + "WHERE " + + "poster_id = ? ORDER BY created_at DESC LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + reply = fillReply(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return reply; + } + + public static int countUserReplies(int userId) { + int replies = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) FROM cms_forum_replies WHERE cms_forum_replies.poster_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + replies = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return replies; + } + + public static String[] getDisplayBadges(int userId) { + String[] badges = new String[2]; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT " + + "(SELECT users_badges.badge FROM users_badges WHERE users_badges.user_id = users.id AND users_badges.equipped ORDER BY slot_id ASC LIMIT 1) AS equipped_badge, " + + "(SELECT groups_details.badge FROM groups_details WHERE groups_details.id = users.favourite_group) AS group_badge " + + "FROM " + + "users " + + "WHERE " + + "users.id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + badges[0] = resultSet.getString("equipped_badge"); + badges[1] = resultSet.getString("group_badge"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return badges; + } + + public static void createReplies(int threadId, int posterId, String message) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_forum_replies (thread_id, message, poster_id) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, threadId); + preparedStatement.setString(2, message); + preparedStatement.setInt(3, posterId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteDiscussion(int groupId, int topicId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_forum_threads WHERE id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, topicId); + preparedStatement.execute(); + + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_forum_replies WHERE thread_id = ?", sqlConnection); + preparedStatement.setInt(1, topicId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveDiscussion(DiscussionTopic discussionTopic) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_forum_threads SET topic_title = ?, is_open = ?, is_stickied = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, discussionTopic.getTopicTitle()); + preparedStatement.setBoolean(2, discussionTopic.isOpen()); + preparedStatement.setBoolean(3, discussionTopic.isStickied()); + preparedStatement.setInt(4, discussionTopic.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveReply(DiscussionReply discussionReply) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_forum_replies SET is_deleted = ?, is_edited = ?, message = ? WHERE id = ?", sqlConnection); + preparedStatement.setBoolean(1, discussionReply.isDeleted()); + preparedStatement.setBoolean(2, discussionReply.isEdited()); + preparedStatement.setString(3, discussionReply.getMessage()); + preparedStatement.setInt(4, discussionReply.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteReply(DiscussionReply discussionReply) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_forum_replies WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, discussionReply.getId()); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void incrementViews(int discussionId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_forum_threads SET views = views + 1 WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, discussionId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static DiscussionTopic fill(ResultSet resultSet) throws SQLException { + return new DiscussionTopic(resultSet.getInt("id"), resultSet.getInt("group_id"), + resultSet.getString("topic_title"), + resultSet.getInt("reply_count"), resultSet.getBoolean("is_open"), + resultSet.getBoolean("is_stickied"), resultSet.getInt("views"), + resultSet.getTime("created_at"), resultSet.getTime("last_message_at"), + resultSet.getInt("creator_id"), + resultSet.getString("creator_name"), resultSet.getString("last_reply_name"), resultSet.getInt("has_read") != 0); + } + + private static DiscussionReply fillReply(ResultSet resultSet) throws SQLException { + return new DiscussionReply(resultSet.getInt("id"), resultSet.getInt("user_id"), + resultSet.getString("message"), resultSet.getString("figure"), + resultSet.getString("username"), resultSet.getBoolean("is_online"), resultSet.getString("equipped_badge"), + resultSet.getInt("group_id"), resultSet.getString("group_badge"), + resultSet.getInt("forum_messages"), + resultSet.getBoolean("is_edited"), resultSet.getBoolean("is_deleted"), + resultSet.getTime("created_at"), resultSet.getTime("modified_at"), resultSet.getInt("has_read") != 0); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/GroupEditDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/GroupEditDao.java new file mode 100644 index 0000000..6431b47 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/GroupEditDao.java @@ -0,0 +1,151 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.concurrent.TimeUnit; + +public class GroupEditDao { + public static void createSession(int userId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO groups_edit_sessions (user_id, group_id, expire) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.setLong(3, DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(30)); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasSession(int userId, int groupId) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_edit_sessions WHERE user_id = ? AND group_id = ? AND expire > ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.setLong(3, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static long getSession(int userId, int groupId) { + long expireDate = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM groups_edit_sessions WHERE user_id = ? AND group_id = ? AND expire > ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.setLong(3, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + expireDate = resultSet.getLong("expire"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return expireDate; + } + + public static void delete(int userId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM groups_edit_sessions WHERE user_id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, groupId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteGroupWidgets(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_stickers WHERE group_id = ? AND user_id = 0", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void pickupUserWidgets(int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_stickers SET group_id = 0 WHERE group_id = ? AND user_id <> 0", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/GuestbookDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/GuestbookDao.java new file mode 100644 index 0000000..2c1cedf --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/GuestbookDao.java @@ -0,0 +1,156 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.game.homes.GuestbookEntry; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class GuestbookDao { + public static GuestbookEntry create(int userId, int homeId, int groupId, String message) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int guestbookId = -1; + long guestbookCreation = -1; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_guestbook_entries (user_id, home_id, group_id, message) VALUES (?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, homeId); + preparedStatement.setInt(3, groupId); + preparedStatement.setString(4, message); + preparedStatement.execute(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + guestbookId = resultSet.getInt("id"); + guestbookCreation = DateUtil.getCurrentTimeSeconds(); + } + + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + + return new GuestbookEntry(guestbookId, userId, homeId, groupId, message, guestbookCreation); + } + + public static void remove(int id, int homeId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_guestbook_entries WHERE id = ? AND home_id = ? AND group_id = ?", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.setInt(2, homeId); + preparedStatement.setInt(3, groupId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static GuestbookEntry getEntry(int id) { + GuestbookEntry entry = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_guestbook_entries WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + entry = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return entry; + } + + public static List getEntriesByHome(int homeId) { + List entries = new ArrayList(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_guestbook_entries WHERE home_id = ? ORDER BY created_at DESC LIMIT 500", sqlConnection); + preparedStatement.setInt(1, homeId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + entries.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return entries; + } + + public static List getEntriesByGroup(int groupId) { + List entries = new ArrayList(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_guestbook_entries WHERE group_id = ? ORDER BY created_at DESC LIMIT 500", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + entries.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return entries; + } + + private static GuestbookEntry fill(ResultSet resultSet) throws SQLException { + return new GuestbookEntry(resultSet.getInt("id"), resultSet.getInt("user_id"), resultSet.getInt("home_id"), resultSet.getInt("group_id"), + resultSet.getString("message"), resultSet.getTime("created_at").getTime() / 1000L); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/HomeEditDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/HomeEditDao.java new file mode 100644 index 0000000..f55710e --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/HomeEditDao.java @@ -0,0 +1,111 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.concurrent.TimeUnit; + +public class HomeEditDao { + public static void createSession(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO homes_edit_sessions (user_id, expire) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds() + TimeUnit.MINUTES.toSeconds(30)); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasSession(int userId) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM homes_edit_sessions WHERE user_id = ? AND expire > ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static long getSession(int userId) { + long expireDate = -1; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM homes_edit_sessions WHERE user_id = ? AND expire > ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setLong(2, DateUtil.getCurrentTimeSeconds()); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + expireDate = resultSet.getLong("expire"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return expireDate; + } + + public static void delete(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM homes_edit_sessions WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/HomesDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/HomesDao.java new file mode 100644 index 0000000..cfb94d4 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/HomesDao.java @@ -0,0 +1,78 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.homes.Home; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class HomesDao { + public static void create(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO homes_details (user_id) VALUES (?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + } + } + + public static Home getHome(int userId) { + Home home = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM homes_details WHERE user_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + home = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return home; + } + + public static void saveBackground(int userId, String background) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE homes_details SET background = ? WHERE user_id = ?", sqlConnection); + preparedStatement.setString(1, background); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(sqlConnection); + Storage.closeSilently(preparedStatement); + }//guestbook_unread_messages + } + + private static Home fill(ResultSet resultSet) throws SQLException { + return new Home(resultSet.getInt("user_id"), resultSet.getString("background")); + } + + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/HousekeepingDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/HousekeepingDao.java new file mode 100644 index 0000000..11fd8cc --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/HousekeepingDao.java @@ -0,0 +1,178 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +public class HousekeepingDao { + public static int getUserCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM users", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getRoomItemCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM items WHERE room_id > 0", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getGroupCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM groups_details", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getInventoryItemsCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM items WHERE room_id = 0", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getPetCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM items_pets INNER JOIN items ON items_pets.item_id = items.id", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getPhotoCount() { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) AS counted FROM items_photos INNER JOIN items ON items_photos.photo_id = items.id", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("counted"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/MinimailDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/MinimailDao.java new file mode 100644 index 0000000..049bd79 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/MinimailDao.java @@ -0,0 +1,256 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.minimail.MinimailMessage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class MinimailDao { + public static MinimailMessage getMessage(int messageId, int targetId) { + MinimailMessage message = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_minimail WHERE id = ? AND (target_id = ? OR sender_id = ?)", sqlConnection); + preparedStatement.setInt(1, messageId); + preparedStatement.setInt(2, targetId); + preparedStatement.setInt(3, targetId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + message = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return message; + } + + public static List getMessages(int userId) { + List messages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_minimail WHERE to_id = ? AND is_trash = 0 AND is_deleted = 0 AND target_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + messages.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messages; + } + + public static List getMessagesSent(int userId) { + List messages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_minimail WHERE sender_id = ? AND is_trash = 0 AND is_deleted = 0 AND target_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + messages.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messages; + } + + public static void createMessages(List minimailMessages) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_minimail (target_id, sender_id, to_id, subject, message, conversation_id) VALUES (?, ?, ?, ?, ?, ?)", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (MinimailMessage minimailMessage : minimailMessages) { + preparedStatement.setInt(1, minimailMessage.getTargetId()); + preparedStatement.setInt(2, minimailMessage.getSenderId()); + preparedStatement.setInt(3, minimailMessage.getToId()); + preparedStatement.setString(4, minimailMessage.getSubject()); + preparedStatement.setString(5, minimailMessage.getMessage()); + preparedStatement.setInt(6, minimailMessage.getConversationId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void updateMessage(MinimailMessage minimailMessage) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_minimail SET is_trash = ?, conversation_id = ?, is_read = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, minimailMessage.isTrash() ? 1 : 0); + preparedStatement.setInt(2, minimailMessage.getConversationId()); + preparedStatement.setInt(3, minimailMessage.isRead() ? 1 : 0); + preparedStatement.setInt(4, minimailMessage.getId()); + preparedStatement.execute(); + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteMessage(MinimailMessage minimailMessage) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_minimail SET is_deleted = 1 WHERE id = ? AND target_id = ?", sqlConnection); + preparedStatement.setInt(1, minimailMessage.getId()); + preparedStatement.setInt(2, minimailMessage.getTargetId()); + preparedStatement.execute(); + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void emptyTrash(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_minimail SET is_deleted = 1 WHERE is_trash = 1 AND target_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.execute(); + } catch (Exception ex) { + Storage.logError(ex); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getMessagesConversation(int userId, int conversationId) { + List messages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_minimail WHERE conversation_id = ? AND target_id = ? OR (sender_id = " + userId + " AND id = " + conversationId + ")", sqlConnection); + preparedStatement.setInt(1, conversationId); + preparedStatement.setInt(2, userId); + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + messages.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messages; + } + + public static List getMessageTrash(int userId) { + List messages = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_minimail WHERE is_trash = 1 AND is_deleted = 0 AND target_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + messages.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return messages; + } + + private static MinimailMessage fill(ResultSet resultSet) throws SQLException { + return new MinimailMessage(resultSet.getInt("id"), resultSet.getInt("target_id"), resultSet.getInt("to_id"), resultSet.getInt("sender_id"), + resultSet.getBoolean("is_read"), resultSet.getString("subject"), resultSet.getString("message"), resultSet.getTime("date_sent").getTime() / 1000L, + resultSet.getInt("conversation_id"), resultSet.getBoolean("is_trash")); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/NewsDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/NewsDao.java new file mode 100644 index 0000000..b6d9d28 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/NewsDao.java @@ -0,0 +1,493 @@ +package org.alexdev.http.dao; + +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.game.news.NewsCategory; +import org.alexdev.http.game.news.NewsDateKey; + +import java.io.File; +import java.nio.file.Paths; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class NewsDao { + public static Map> getPastYear(boolean includeUnpublished, int filterCategoryId) { + var monthlyNews = new LinkedHashMap>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT *, " + + "CONCAT(MONTHNAME(created_at), ' ', YEAR(created_at)) AS month_year, " + + "(SELECT GROUP_CONCAT(category_id SEPARATOR ',') FROM site_articles_categories " + + "WHERE article_id = site_articles.id GROUP BY article_id) AS categories FROM `site_articles` WHERE "); + + if (!includeUnpublished) { + queryBuilder.append("is_published = 1 "); + } else { + queryBuilder.append("(is_published = 0 OR is_published = 1) "); + } + + + if (filterCategoryId > 0) { + queryBuilder.append("AND ((SELECT COUNT(*) FROM site_articles_categories WHERE category_id = " + filterCategoryId + " AND article_id = id) > 0) "); + + } + + queryBuilder.append("ORDER BY created_at DESC"); + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare(queryBuilder.toString(), sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String monthYear = resultSet.getString("month_year"); + + if (!monthlyNews.containsKey(monthYear)) { + monthlyNews.put(monthYear, new LinkedList<>()); + } + + monthlyNews.get(monthYear).add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return monthlyNews; + } + + public static Map> getArchive(boolean includeUnpublished) { + var categorised = new LinkedHashMap>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT *, " + + "(SELECT label FROM article_categories WHERE article_categories.id = (SELECT category_id FROM site_articles_categories WHERE article_id = site_articles.id GROUP BY article_id LIMIT 1)) as category_name, " + + "(SELECT GROUP_CONCAT(category_id SEPARATOR ',') FROM site_articles_categories WHERE article_id = site_articles.id GROUP BY article_id) AS categories " + + "FROM `site_articles` WHERE "); + + if (!includeUnpublished) { + queryBuilder.append("is_published = 1 "); + } else { + queryBuilder.append("(is_published = 0 OR is_published = 1) "); + } + + queryBuilder.append("ORDER BY created_at DESC"); + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare(queryBuilder.toString(), sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + String categoryName = resultSet.getString("category_name"); + + if (categoryName == null) { + continue; + } + + if (!categorised.containsKey(categoryName)) { + categorised.put(categoryName, new LinkedList<>()); + } + + categorised.get(categoryName).add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return categorised; + } + + public static List getTop(NewsDateKey dateKey, int limit, boolean includeUnpublished, List excludeNews, int filterCategoryId) { + List articles = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + Calendar c = Calendar.getInstance(); + + StringBuilder queryBuilder = new StringBuilder(); + queryBuilder.append("SELECT *, " + + "(SELECT GROUP_CONCAT(category_id SEPARATOR ',') FROM site_articles_categories WHERE article_id = site_articles.id GROUP BY article_id) AS categories" + + " FROM `site_articles` WHERE "); + + if (!includeUnpublished) { + queryBuilder.append("is_published = 1 "); + } else { + queryBuilder.append("(is_published = 0 OR is_published = 1) "); + } + + if (dateKey == NewsDateKey.TODAY) { + queryBuilder.append("AND YEAR(created_at) = YEAR(NOW()) AND MONTH(created_at) = MONTH(NOW()) AND DAY(created_at) = DAY(NOW()) "); + } + + if (dateKey == NewsDateKey.YESTERDAY) { + queryBuilder.append("AND DATE(created_at) = SUBDATE(CURRENT_DATE(), INTERVAL 1 DAY) "); + } + + if (dateKey == NewsDateKey.THIS_WEEK) { + queryBuilder.append("AND UNIX_TIMESTAMP() < (UNIX_TIMESTAMP(created_at) + " + TimeUnit.DAYS.toSeconds(7) + ") "); + //queryBuilder.append("AND YEARWEEK(created_at) = YEARWEEK(NOW()) "); + } + + if (dateKey == NewsDateKey.THIS_MONTH) { + queryBuilder.append("AND UNIX_TIMESTAMP() < (UNIX_TIMESTAMP(created_at) + " + TimeUnit.DAYS.toSeconds(c.getActualMaximum(Calendar.DAY_OF_MONTH)) + ") "); + //queryBuilder.append("AND (YEAR(created_at) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(created_at) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)) "); + } + + if (dateKey == NewsDateKey.PAST_YEAR) { + queryBuilder.append("AND UNIX_TIMESTAMP() < (UNIX_TIMESTAMP(created_at) + " + TimeUnit.DAYS.toSeconds(c.getActualMaximum(Calendar.DAY_OF_YEAR)) + ") "); + //queryBuilder.append("AND (created_at >= (NOW() - INTERVAL 12 MONTH)) "); + } + + /*if (dateKey == NewsDateKey.THIS_YEAR) { + queryBuilder.append("AND ((YEAR(created_at) = YEAR(NOW())) OR (YEAR(created_at) = YEAR(NOW()) - 1))"); + }*/ + + + /*if (dateKey == NewsDateKey.LAST_MONTH) { + queryBuilder.append("AND YEAR(created_at) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(created_at) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)"); + }*/ + + /*if (dateKey == NewsDateKey.LAST_WEEK) { + queryBuilder.append("AND YEAR(created_at) = YEAR(CURRENT_DATE - INTERVAL 1 WEEK) AND MONTH(created_at) = MONTH(CURRENT_DATE - INTERVAL 1 WEEK)"); + }*/ + + if (excludeNews.size() > 0) { + queryBuilder.append("AND id NOT IN (" + String.join(",", excludeNews) + ") "); + } + + if (filterCategoryId > 0) { + queryBuilder.append("AND ((SELECT COUNT(*) FROM site_articles_categories WHERE category_id = " + filterCategoryId + " AND article_id = id) > 0) "); + + } + + queryBuilder.append("ORDER BY created_at DESC LIMIT " + limit); + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare(queryBuilder.toString(), sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + articles.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return articles; + } + + public static HashMap> getTop(int limit, boolean includeUnpublished, int filterCategoryId) { + HashMap> articleMap = new HashMap<>(); + + var newsToday = getTop(NewsDateKey.TODAY, limit, includeUnpublished, List.of(), filterCategoryId); + var exclusionList = newsToday.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList()); + + var newsYesterday = getTop(NewsDateKey.YESTERDAY, limit, includeUnpublished, exclusionList, filterCategoryId); + exclusionList.addAll(newsYesterday.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList())); + + var newsThisWeek = getTop(NewsDateKey.THIS_WEEK, limit, includeUnpublished, exclusionList, filterCategoryId); + exclusionList.addAll(newsThisWeek.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList())); + + var newsThisMonth = getTop(NewsDateKey.THIS_MONTH, limit, includeUnpublished, exclusionList, filterCategoryId); + exclusionList.addAll(newsThisMonth.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList())); + + var newsPastYear = getTop(NewsDateKey.PAST_YEAR, limit, includeUnpublished, exclusionList, filterCategoryId); + exclusionList.addAll(newsPastYear.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList())); + + + /*var newsThisYear = getTop(NewsDateKey.THIS_YEAR, limit, includeUnpublished, exclusionList, filterCategoryId); + exclusionList.addAll(newsThisYear.stream() + .map(article -> String.valueOf(article.getId())) + .collect(Collectors.toList()));*/ + + articleMap.put(NewsDateKey.TODAY, newsToday); + articleMap.put(NewsDateKey.YESTERDAY, newsYesterday); + articleMap.put(NewsDateKey.THIS_WEEK, newsThisWeek); + articleMap.put(NewsDateKey.THIS_MONTH, newsThisMonth); + articleMap.put(NewsDateKey.PAST_YEAR, newsPastYear); + //articleMap.put(NewsDateKey.LAST_WEEK, newsLastWeek); + //articleMap.put(NewsDateKey.LAST_MONTH, newsLastMonth); + //articleMap.put(NewsDateKey.THIS_YEAR, newsThisYear); + return articleMap; + } + + public static Map getCategories() { + var categories = new HashMap(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM article_categories", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + categories.put(resultSet.getInt("id"), new NewsCategory(resultSet.getInt("id"), resultSet.getString("label"), resultSet.getString("category_index"))); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return categories; + } + + public static void insertCategories(int articleId, List newsCategories) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM site_articles_categories WHERE article_id = ?", sqlConnection); + preparedStatement.setInt(1, articleId); + preparedStatement.execute(); + + for (var category : newsCategories) { + preparedStatement = Storage.getStorage().prepare("INSERT INTO site_articles_categories (article_id, category_id) VALUES (?, ?)", sqlConnection); + preparedStatement.setInt(1, articleId); + preparedStatement.setInt(2, category.getId()); + preparedStatement.execute(); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static int create(String title, String shortstory, String fullstory, String topstory, String topstoryOverride, int authorId, String authorOverride, String category, String articleImage, long publishDate, boolean isFuturePublished, boolean isPublished) { + int articleId = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO `site_articles` (title, author_id, author_override, short_story, full_story, created_at, topstory, topstory_override, article_image, is_future_published, is_published) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setString(1, title); + preparedStatement.setInt(2, authorId); + preparedStatement.setString(3, authorOverride); + preparedStatement.setString(4, shortstory); + preparedStatement.setString(5, fullstory); + preparedStatement.setTimestamp(6, new java.sql.Timestamp(publishDate * 1000L)); + preparedStatement.setString(7, topstory); + preparedStatement.setString(8, topstoryOverride); + preparedStatement.setString(9, articleImage); + preparedStatement.setBoolean(10, isFuturePublished); + preparedStatement.setBoolean(11, isPublished); + preparedStatement.execute(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + articleId = resultSet.getInt(1); + } + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return articleId; + } + + public static boolean exists(int id) { + boolean exists = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM site_articles WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + exists = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return exists; + } + + public static NewsArticle get(int id) { + NewsArticle article = null; + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT *, (SELECT GROUP_CONCAT(category_id SEPARATOR ',') FROM site_articles_categories WHERE article_id = site_articles.id GROUP BY article_id) AS categories FROM site_articles WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + article = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return article; + } + + public static void delete(int id) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM site_articles WHERE id = ? LIMIT 1", sqlConnection); + preparedStatement.setInt(1, id); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void publishFutureArticles() { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE site_articles SET is_published = 1 WHERE CURRENT_TIMESTAMP() > created_at AND is_published = 0 AND is_future_published = 1", sqlConnection); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void save(NewsArticle article) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE site_articles SET title = ?, short_story = ?, full_story = ?, topstory = ?, article_image = ?, is_published = ?, created_at = ?, is_future_published = ?, author_override = ?, topstory_override = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, article.getTitle()); + preparedStatement.setString(2, article.getShortStory()); + preparedStatement.setString(3, article.getFullStory()); + preparedStatement.setString(4, article.getTopStory()); + preparedStatement.setString(5, article.getArticleImage()); + preparedStatement.setBoolean(6, article.isPublished()); + preparedStatement.setTimestamp(7, new java.sql.Timestamp(article.getTimestamp() * 1000L)); + preparedStatement.setBoolean(8, article.isFuturePublished()); + preparedStatement.setString(9, article.getAuthorOverride()); + preparedStatement.setString(10, article.getTopstoryOverride()); + preparedStatement.setInt(11, article.getId()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static List getTopStoryImages() { + List images = new ArrayList(); + + for (File file : Objects.requireNonNull(Paths.get(Settings.getInstance().getSiteDirectory(), "c_images", "Top_Story_Images").toFile().listFiles())) { + if (!file.getName().contains(".gif")) { + continue; + } + + images.add(file.getName()); + } + + Collections.sort(images); + return images; + } + + private static NewsArticle fill(ResultSet resultSet) throws SQLException { + return new NewsArticle( + resultSet.getInt("id"), resultSet.getString("title"), resultSet.getInt("author_id"), resultSet.getString("author_override"), + resultSet.getString("short_story"), resultSet.getString("full_story"), resultSet.getTime("created_at").getTime() / 1000L, + resultSet.getString("topstory"), resultSet.getString("topstory_override"), resultSet.getString("article_image"), resultSet.getString("categories"), + resultSet.getBoolean("is_published"), resultSet.getInt("views"), resultSet.getBoolean("is_future_published")); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/RatingDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/RatingDao.java new file mode 100644 index 0000000..23fe1ef --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/RatingDao.java @@ -0,0 +1,196 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +public class RatingDao { + public static void rate(int userId, int homeId, int rating) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO `homes_ratings` (user_id, home_id, rating) VALUES (?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, homeId); + preparedStatement.setInt(3, rating); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void deleteRating(int homeId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM `homes_ratings` WHERE home_id = ?", sqlConnection); + preparedStatement.setInt(1, homeId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasRated(int userId, int homeId) { + boolean hasRated = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM `homes_ratings` WHERE user_id = ? AND home_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, homeId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + hasRated = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasRated; + } + + public static double getAverageRating(int homeId) { + double rating = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT AVG(rating) AS 'average_rating' FROM homes_ratings WHERE home_id = ?", sqlConnection); + preparedStatement.setInt(1, homeId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + rating = resultSet.getDouble("average_rating"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rating; + } + + public static int getUserRated(int userId, int homeId) { + int rating = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT rating FROM homes_ratings WHERE user_id = ? AND home_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, homeId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + rating = resultSet.getInt("rating"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return rating; + } + + public static int getHighVoteCount(int homeId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(rating) as 'votes' FROM homes_ratings WHERE home_id = ? AND rating >= 4", sqlConnection); + preparedStatement.setInt(1, homeId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("votes"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } + + public static int getVoteCount(int homeId) { + int count = 0; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(rating) as 'votes' FROM homes_ratings WHERE home_id = ?", sqlConnection); + preparedStatement.setInt(1, homeId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("votes"); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/RecommendedDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/RecommendedDao.java new file mode 100644 index 0000000..3838c34 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/RecommendedDao.java @@ -0,0 +1,41 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.Group; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class RecommendedDao { + public static List getRecommendedGroups(boolean staffPick) { + List groupList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT groups_details.* FROM cms_recommended INNER JOIN groups_details ON cms_recommended.recommended_id = groups_details.id WHERE type = 'GROUP' AND is_staff_pick = ?", sqlConnection); + preparedStatement.setInt(1, staffPick ? 1 : 0); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + groupList.add(GroupDao.fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return groupList; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/RegisterDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/RegisterDao.java new file mode 100644 index 0000000..9ad2ad3 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/RegisterDao.java @@ -0,0 +1,43 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class RegisterDao { + public static int newUser(String username, String password, String figure, String gender, String email) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int userId = -1; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO users (username, password, figure, sex, pool_figure, sso_ticket, email) VALUES (?, ?, ?, ?, '', '', ?)", sqlConnection); + preparedStatement.setString(1, username); + preparedStatement.setString(2, password); + preparedStatement.setString(3, figure); + preparedStatement.setString(4, gender); + preparedStatement.setString(5, email); + preparedStatement.execute(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + userId = resultSet.getInt(1); + } + } catch (SQLException e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return userId; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/ReplyDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/ReplyDao.java new file mode 100644 index 0000000..09bb571 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/ReplyDao.java @@ -0,0 +1,68 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.groups.DiscussionReply; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.List; + +public class ReplyDao { + public static void read(int userId, List replies) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT IGNORE INTO `cms_forums_read_replies` (user_id, reply_id) VALUES (?, ?)", sqlConnection); + sqlConnection.setAutoCommit(false); + + for (DiscussionReply reply : replies) { + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, reply.getId()); + preparedStatement.addBatch(); + } + + preparedStatement.executeBatch(); + sqlConnection.setAutoCommit(true); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static boolean hasRead(int userId, int replyId) { + boolean hasRated = false; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM `cms_forums_read_replies` WHERE user_id = ? AND reply_id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, replyId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + hasRated = true; + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return hasRated; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/SessionDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/SessionDao.java new file mode 100644 index 0000000..91bf5eb --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/SessionDao.java @@ -0,0 +1,112 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.account.ClientPreference; + +import java.sql.*; + +public class SessionDao { + public static int getRememberToken(String token) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int userId = 0; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT id FROM users WHERE remember_token = ?", sqlConnection); + preparedStatement.setString(1, token); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + userId = resultSet.getInt("id"); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return userId; + } + + public static void setRememberToken(int userId, String token) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET remember_token = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, token); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void clearRememberToken(int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET remember_token = ? WHERE id = ?", sqlConnection); + preparedStatement.setNull(1, Types.VARCHAR); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void savePreferences(String motto, boolean profileVisibility, boolean showOnlineStatus, boolean wordFilterEnabled, boolean allowFriendRequests, boolean allowStalking, int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET motto = ?, profile_visible = ?, online_status_visible = ?, wordfilter_enabled = ?, allow_friend_requests = ?, allow_stalking = ? WHERE id = ?", sqlConnection); + preparedStatement.setString(1, motto); + preparedStatement.setInt(2, profileVisibility ? 1 : 0); + preparedStatement.setInt(3, showOnlineStatus ? 1 : 0); + preparedStatement.setInt(4, wordFilterEnabled ? 1 : 0); + preparedStatement.setInt(5, allowFriendRequests ? 1 : 0); + preparedStatement.setInt(6, allowStalking ? 1 : 0); + preparedStatement.setInt(7, userId); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void saveTrade(int userId, boolean tradeSetting) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users SET trade_enabled = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, tradeSetting ? 1 : 0); + preparedStatement.setInt(2, userId); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/SiteDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/SiteDao.java new file mode 100644 index 0000000..822bdf8 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/SiteDao.java @@ -0,0 +1,40 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.util.DateUtil; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.concurrent.TimeUnit; + +public class SiteDao { + public static int getLastVisits() throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int count = 0; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT COUNT(*) as count FROM users WHERE UNIX_TIMESTAMP(last_online) > ?", sqlConnection); + preparedStatement.setLong(1, DateUtil.getCurrentTimeSeconds() - TimeUnit.DAYS.toSeconds(30)); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + count = resultSet.getInt("count"); + } + } catch (SQLException e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return count; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/StoreDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/StoreDao.java new file mode 100644 index 0000000..e0b0163 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/StoreDao.java @@ -0,0 +1,70 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.stickers.StickerCategory; +import org.alexdev.http.game.stickers.StickerProduct; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class StoreDao { + public static List getCategories() { + List categoryList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers_categories", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + categoryList.add(new StickerCategory(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("min_rank"), + resultSet.getInt("category_type"))); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return categoryList; + } + + public static List getCatalogue() { + List productList = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers_catalogue", sqlConnection); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + productList.add(new StickerProduct( + resultSet.getInt("id"), resultSet.getString("name"), resultSet.getString("description"), resultSet.getInt("min_rank"), + resultSet.getString("data"), resultSet.getInt("price"), resultSet.getInt("amount"), + resultSet.getInt("category_id"), resultSet.getInt("widget_type"), resultSet.getInt("type"))); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return productList; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/VerifyDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/VerifyDao.java new file mode 100644 index 0000000..564d513 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/VerifyDao.java @@ -0,0 +1,55 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class VerifyDao { + public static String getName(String verifyCode) { + String name = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT username FROM users_statistics INNER JOIN users ON users_statistics.user_id = users.id WHERE verify_code = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, verifyCode); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + name = resultSet.getString("username"); + } + } catch (SQLException e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return name; + } + + public static void clearName(String verifyCode) throws SQLException { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE users_statistics SET verify_code = NULL WHERE verify_code = ? LIMIT 1", sqlConnection); + preparedStatement.setString(1, verifyCode); + preparedStatement.execute(); + } catch (SQLException e) { + Storage.logError(e); + throw e; + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/WidgetDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/WidgetDao.java new file mode 100644 index 0000000..a3b1ba8 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/WidgetDao.java @@ -0,0 +1,408 @@ +package org.alexdev.http.dao; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.http.game.homes.Widget; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class WidgetDao { + public static List getHomeWidgets(int userId) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE user_id = ? AND group_id = 0", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static List getHomeWidgets(int userId, boolean isPlaced) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE user_id = ? AND group_id = 0 AND is_placed = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, isPlaced ? 1 : 0); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static List getGroupWidgets(int groupId) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE group_id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static List getGroupWidgets(int groupId, boolean isPlaced) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE group_id = ? AND is_placed = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, isPlaced ? 1 : 0); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static List getInventoryWidgets(int userId, int typeId) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers INNER JOIN cms_stickers_catalogue ON cms_stickers_catalogue.id = cms_stickers.sticker_id WHERE cms_stickers.user_id = ? AND cms_stickers_catalogue.type = ? AND cms_stickers.group_id = 0 AND is_placed = 0", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, typeId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static List getInventoryWidgets(int userId) { + List widgets = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE user_id = ? AND group_id = 0 AND is_placed = 0", sqlConnection); + preparedStatement.setInt(1, userId); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + widgets.add(fill(resultSet)); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widgets; + } + + public static Widget purchaseWidget(int userId, int x, int y, int z, int skinId, int stickerId, String text, int groupId, boolean isPlaced) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + int widgetId = 0; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("INSERT INTO cms_stickers (user_id, x, y, z, skin_id, sticker_id, text, group_id, is_placed) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, x); + preparedStatement.setInt(3, y); + preparedStatement.setInt(4, z); + preparedStatement.setInt(5, skinId); + preparedStatement.setInt(6, stickerId); + preparedStatement.setString(7, text); + preparedStatement.setInt(8, groupId); + preparedStatement.setInt(9, isPlaced ? 1 : 0); + preparedStatement.executeUpdate(); + resultSet = preparedStatement.getGeneratedKeys(); + + if (resultSet.next()) { + widgetId = resultSet.getInt(1); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + Storage.closeSilently(resultSet); + } + + return new Widget(widgetId, userId, x, y, z, stickerId, skinId, groupId, text, 1, isPlaced, null); + } + + public static void save(Widget widget) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("UPDATE cms_stickers SET group_id = ?, x = ?, y = ?, z = ?, skin_id = ?, text = ?, is_placed = ?, extra_data = ? WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, widget.getGroupId()); + preparedStatement.setInt(2, widget.getX()); + preparedStatement.setInt(3, widget.getY()); + preparedStatement.setInt(4, widget.getZ()); + preparedStatement.setInt(5, widget.getSkinId()); + preparedStatement.setString(6, widget.getText()); + preparedStatement.setInt(7, widget.isPlaced() ? 1 : 0); + preparedStatement.setString(8, widget.getExtraData()); + preparedStatement.setInt(9, widget.getId()); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static void delete(int widgetId, int groupId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_stickers WHERE group_id = ? AND id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, widgetId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + + public static void deleteHomeNote(int stickieId, int userId) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("DELETE FROM cms_stickers WHERE group_id = 0 AND is_placed = 1 AND user_id = ? AND id = ?", sqlConnection); + preparedStatement.setInt(1, userId); + preparedStatement.setInt(2, stickieId); + preparedStatement.execute(); + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + public static Widget getGroupWidget(int widgetId, int groupId) { + Widget widget = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE group_id = ? AND id = ?", sqlConnection); + preparedStatement.setInt(1, groupId); + preparedStatement.setInt(2, widgetId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + widget = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widget; + } + + public static Widget getInventoryWidget(int userId, int widgetId) { + Widget widget = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE id = ? AND user_id = ? AND is_placed = 0", sqlConnection); + preparedStatement.setInt(1, widgetId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + widget = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widget; + } + + public static Widget getHomeWidget(int userId, int widgetId) { + Widget widget = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE id = ? AND user_id = ? AND group_id = 0", sqlConnection); + preparedStatement.setInt(1, widgetId); + preparedStatement.setInt(2, userId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + widget = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widget; + } + + public static Widget getWidget(int widgetId) { + Widget widget = null; + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + preparedStatement = Storage.getStorage().prepare("SELECT * FROM cms_stickers WHERE id = ?", sqlConnection); + preparedStatement.setInt(1, widgetId); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + widget = fill(resultSet); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return widget; + } + + private static Widget fill(ResultSet resultSet) throws SQLException { + return new Widget(resultSet.getInt("id"), resultSet.getInt("user_id"), resultSet.getInt("x"), resultSet.getInt("y"), resultSet.getInt("z"), + resultSet.getInt("sticker_id"), resultSet.getInt("skin_id"), resultSet.getInt("group_id"), resultSet.getString("text"), 1, resultSet.getBoolean("is_placed"), + resultSet.getString("extra_data")); + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/dao/housekeeping/HousekeepingPlayerDao.java b/Havana-Web/src/main/java/org/alexdev/http/dao/housekeeping/HousekeepingPlayerDao.java new file mode 100644 index 0000000..2d32b81 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/dao/housekeeping/HousekeepingPlayerDao.java @@ -0,0 +1,104 @@ +package org.alexdev.http.dao.housekeeping; + +import org.alexdev.havana.dao.Storage; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; + +public class HousekeepingPlayerDao { + + public static List getPlayers(int page, boolean zeroCoinsFlag, String sortBy) { + List players = new ArrayList<>(); + + int rows = 25; + int nextOffset = page * rows; + + if (nextOffset >= 0) { + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + sqlConnection = Storage.getStorage().getConnection(); + + String statement = ""; + + if (zeroCoinsFlag) { + statement += " AND credits = 0 "; + } + + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE username <> '' " + statement + "ORDER BY " + sortBy + " DESC LIMIT ? OFFSET ?", sqlConnection); + preparedStatement.setInt(1, rows); + preparedStatement.setInt(2, nextOffset); + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + PlayerDetails playerDetails = new PlayerDetails(); + PlayerDao.fill(playerDetails, resultSet); + + players.add(playerDetails); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + } + + return players; + } + + public static List search(String type, String field, String input) { + List players = new ArrayList<>(); + + Connection sqlConnection = null; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + + try { + + sqlConnection = Storage.getStorage().getConnection(); + + if (type.equals("contains")) { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE " + field + " LIKE ?", sqlConnection); + preparedStatement.setString(1, "%" + input + "%"); + } else if (type.equals("starts_with")) { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE " + field + " LIKE ?", sqlConnection); + preparedStatement.setString(1, input + "%"); + } else if (type.equals("ends_with")) { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE " + field + " LIKE ?", sqlConnection); + preparedStatement.setString(1, "%" + input); + } else { + preparedStatement = Storage.getStorage().prepare("SELECT * FROM users WHERE " + field + " = ?", sqlConnection); + preparedStatement.setString(1, input); + } + + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) { + PlayerDetails playerDetails = new PlayerDetails(); + PlayerDao.fill(playerDetails, resultSet); + + players.add(playerDetails); + } + + } catch (Exception e) { + Storage.logError(e); + } finally { + Storage.closeSilently(resultSet); + Storage.closeSilently(preparedStatement); + Storage.closeSilently(sqlConnection); + } + + return players; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/CommunityPhoto.java b/Havana-Web/src/main/java/org/alexdev/http/game/CommunityPhoto.java new file mode 100644 index 0000000..093bc2b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/CommunityPhoto.java @@ -0,0 +1,63 @@ +package org.alexdev.http.game; + +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.Photo; +import org.alexdev.http.util.HtmlUtil; +import org.alexdev.photorenderer.PhotoRenderer; + +public class CommunityPhoto { + private final Photo photo; + private final PhotoRenderer photoViewer; + private final Item item; + private final long id; + + public CommunityPhoto(Photo photo, PhotoRenderer photoViewer, Item item) { + this.id = photo.getId(); + this.photo = photo; + this.photoViewer = photoViewer; + this.item = item; + } + + public long getId() { + return id; + } + + public String getDate() { + var customData = this.item.getCustomData(); + + if (customData.contains("\r")) { + return customData.substring(0, customData.indexOf("\r") - 3); + } + + return null; + } + + public String getDescription() { + var customData = this.item.getCustomData(); + + if (customData.contains("\r")) { + return customData.substring(customData.indexOf("\r") + 1); + } + + return null; + } + + public Photo getPhoto() { + return photo; + } + + public String renderPhoto() { + try { + var src = this.photoViewer.createImage(photo.getData()); + return HtmlUtil.encodeToString(src, "PNG"); + } catch (Exception e) { + + } + + return null; + } + + public PhotoRenderer getPhotoViewer() { + return photoViewer; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/account/BeginnerGiftManager.java b/Havana-Web/src/main/java/org/alexdev/http/game/account/BeginnerGiftManager.java new file mode 100644 index 0000000..dbcc38c --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/account/BeginnerGiftManager.java @@ -0,0 +1,64 @@ +package org.alexdev.http.game.account; + +import org.alexdev.havana.game.alerts.AlertType; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.player.statistics.PlayerStatistic; +import org.alexdev.havana.game.player.statistics.PlayerStatisticManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.dao.mysql.AlertsDao; + +import java.util.concurrent.TimeUnit; + +public class BeginnerGiftManager { + public static boolean progress(PlayerDetails playerDetails, PlayerStatisticManager statistics) { + if (!(statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT) > 0 && statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT) > 0)) { + return false; + } + + if (statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT) > 2) { + return false; + } + + if (statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT_TIME) > DateUtil.getCurrentTimeSeconds()) { + return false; + } + + int roomLayout = statistics.getIntValue(PlayerStatistic.NEWBIE_ROOM_LAYOUT); + int gift = statistics.getIntValue(PlayerStatistic.NEWBIE_GIFT); + + ItemDefinition itemGift = null; + + switch (gift) { + case 1: + itemGift = ItemManager.getInstance().getDefinitionBySprite("noob_stool*" + roomLayout); + break; + case 2: + itemGift = ItemManager.getInstance().getDefinitionBySprite("noob_plant"); + break; + } + + if (itemGift == null) { + return false; + } + + String presentLabel = GameConfiguration.getInstance().getString("alerts.gift.message").replace("%item_name%", itemGift.getName()); + AlertsDao.createAlert(playerDetails.getId(), AlertType.PRESENT, presentLabel); + + ItemManager.getInstance().createGift(playerDetails.getId(), playerDetails.getName(), itemGift.getSprite(), presentLabel, ""); + + int nextGift = gift + 1; + + if (nextGift < 3) { + statistics.setLongValue(PlayerStatistic.NEWBIE_GIFT, nextGift); + statistics.setLongValue(PlayerStatistic.NEWBIE_GIFT_TIME, DateUtil.getCurrentTimeSeconds() + TimeUnit.DAYS.toSeconds(1)); + } else { + statistics.setLongValue(PlayerStatistic.NEWBIE_GIFT, 3); + statistics.setLongValue(PlayerStatistic.NEWBIE_GIFT_TIME, 0); + } + + return true; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/account/CacheManager.java b/Havana-Web/src/main/java/org/alexdev/http/game/account/CacheManager.java new file mode 100644 index 0000000..5c9ba70 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/account/CacheManager.java @@ -0,0 +1,36 @@ +package org.alexdev.http.game.account; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.util.DateUtil; + +public class CacheManager { + public static void savePage(WebConnection connection, String pageName, String page, int maxLifetimeSeconds) { + connection.session().set("savedCache" + pageName + "Time", String.valueOf(DateUtil.getCurrentTimeSeconds() + maxLifetimeSeconds)); + connection.session().set("savedCache" + pageName + "Source", page); + } + + public static void deletePage(WebConnection connection, String pageName) { + connection.session().delete("savedCache" + pageName + "Time"); + connection.session().delete("savedCache" + pageName + "Source"); + } + + public static String getPage(WebConnection connection, String pageName) { + return connection.session().getString("savedCache" + pageName + "Source"); + } + + public static boolean useCachePage(WebConnection connection, String pageName) { + if (connection.session().contains("savedCache" + pageName + "Time")) { + try { + long expire = connection.session().getLong("savedCache" + pageName + "Time"); + + if (DateUtil.getCurrentTimeSeconds() < expire) { + return true; + } + } catch (Exception ex) { + + } + } + + return false; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/account/ClientPreference.java b/Havana-Web/src/main/java/org/alexdev/http/game/account/ClientPreference.java new file mode 100644 index 0000000..71f8ab9 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/account/ClientPreference.java @@ -0,0 +1,6 @@ +package org.alexdev.http.game.account; + +public enum ClientPreference { + SHOCKWAVE, + FLASH +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/collectables/CollectableEntry.java b/Havana-Web/src/main/java/org/alexdev/http/game/collectables/CollectableEntry.java new file mode 100644 index 0000000..27e485a --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/collectables/CollectableEntry.java @@ -0,0 +1,25 @@ +package org.alexdev.http.game.collectables; + +public class CollectableEntry { + private String sprite; + private String name; + private String description; + + public CollectableEntry(String sprite, String name, String description) { + this.sprite = sprite; + this.name = name; + this.description = description; + } + + public String getSprite() { + return sprite; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/friends/FriendsFeed.java b/Havana-Web/src/main/java/org/alexdev/http/game/friends/FriendsFeed.java new file mode 100644 index 0000000..69a4c98 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/friends/FriendsFeed.java @@ -0,0 +1,31 @@ +package org.alexdev.http.game.friends; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.dao.mysql.AlertsDao; + +import java.util.stream.Collectors; + +public class FriendsFeed { + public static void createFriendsOnline(WebConnection webConnection, Template template) { + if (!webConnection.session().getBoolean("authenticated")) { + return; + } + + PlayerDetails playerDetails = (PlayerDetails) template.get("playerDetails"); + + if (playerDetails == null) { + return; + } + + var friends = AlertsDao.getOnlineFriends(playerDetails.getId()); + var requests = AlertsDao.countRequests(playerDetails.getId()); + + template.set("feedFriendsOnline", friends.values().stream().filter(MessengerUser::isOnline).collect(Collectors.toList())); + template.set("feedFriendRequests", requests); + + webConnection.session().delete("friendsOnlineRequest"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionReply.java b/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionReply.java new file mode 100644 index 0000000..394cdf6 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionReply.java @@ -0,0 +1,136 @@ +package org.alexdev.http.game.groups; + +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; + +import java.sql.Time; + +public class DiscussionReply { + private final int id; + private final int userId; + private final boolean isNew; + private final int groupId; + private String message; + private final String figure; + private final String username; + private final boolean isOnline; + private final String equippedBadge; + private final String groupBadge; + private final int forumMessages; + private final long createdAt; + private boolean isEdited; + private boolean isDeleted; + private final long modifiedAt; + + public DiscussionReply(int id, int userId, String message, String figure, String username, boolean isOnline, String equippedBadge, int groupId, String groupBadge, int forumMessages, boolean isEdited, boolean isDeleted, Time createdAt, Time modifiedAt, boolean hasRead) { + this.id = id; + this.userId = userId; + this.message = message; + this.figure = figure; + this.username = username; + this.isOnline = isOnline; + this.equippedBadge = equippedBadge; + this.groupId = groupId; + this.groupBadge = groupBadge; + this.forumMessages = forumMessages; + this.isEdited = isEdited; + this.isDeleted = isDeleted; + this.createdAt = createdAt.getTime() / 1000L; + this.modifiedAt = modifiedAt.getTime() / 1000L; + this.isNew = (!hasRead); + } + + public String getCreatedDate(String dateFormat) { + return DateUtil.getDate(this.createdAt, dateFormat).replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public String getEditedDate(String dateFormat) { + return DateUtil.getDate(this.modifiedAt, dateFormat).replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public String getMessage() { + return WordfilterManager.filterSentence(this.message); + } + + public String getFormattedMessage() { + return BBCode.format(HtmlUtil.escape(BBCode.normalise(WordfilterManager.filterSentence(this.message))), false); + } + + public String getFigure() { + return figure; + } + + public String getUsername() { + return username; + } + + public boolean isOnline() { + return isOnline; + } + + public String getEquippedBadge() { + return equippedBadge; + } + + public boolean hasBadge() { + return equippedBadge != null; + } + + public int getGroupId() { + return groupId; + } + + public boolean hasGroupBadge() { + return groupBadge != null; + } + + public String getGroupBadge() { + return groupBadge; + } + + public int getForumMessages() { + return forumMessages; + } + + public long getCreatedAt() { + return createdAt; + } + + public boolean isEdited() { + return isEdited; + } + + public boolean isDeleted() { + return isDeleted; + } + + public long getModifiedAt() { + return modifiedAt; + } + + public void setMessage(String message) { + this.message = WordfilterManager.filterSentence(message); + } + + public void setEdited(boolean edited) { + isEdited = edited; + } + + public void setDeleted(boolean deleted) { + isDeleted = deleted; + } + + public boolean isNew() { + return isNew; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionTopic.java b/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionTopic.java new file mode 100644 index 0000000..8278b82 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/groups/DiscussionTopic.java @@ -0,0 +1,165 @@ +package org.alexdev.http.game.groups; + +import org.alexdev.havana.game.groups.*; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; + +import java.sql.Time; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class DiscussionTopic { + private final int id; + private final String creatorName; + private final int creatorId; + private final String lastReplyName; + private final int replyCount; + private final int groupId; + private String topicTitle; + private boolean isOpen; + private boolean isStickied; + private int views; + private final long createdAt; + private final long lastMessageAt; + private boolean isNew; + + public DiscussionTopic(int id, int groupId, String topicTitle, int replyCount, boolean isOpen, boolean isStickied, int views, Time createdAt, Time lastMessageAt, int creatorId, String creatorName, String lastReplyName, boolean hasRead) { + this.id = id; + this.groupId = groupId; + this.topicTitle = topicTitle; + this.replyCount = replyCount; + this.isOpen = isOpen; + this.isStickied = isStickied; + this.views = views; + this.creatorId = creatorId; + this.creatorName = creatorName; + this.lastReplyName = lastReplyName; + this.createdAt = createdAt.getTime() / 1000L; + this.lastMessageAt = lastMessageAt.getTime() / 1000L; + this.isNew = (!hasRead); + } + + public boolean canPostReply(Group group, GroupMember member) { + if (!this.isOpen) { + return false; + } + + if (group.getForumType() == GroupForumType.PRIVATE || + group.getForumPermission() == GroupPermissionType.MEMBER_ONLY || + group.getForumPermission() == GroupPermissionType.ADMIN_ONLY) { + + if (member == null) { + return false; + } + + if (group.getForumPermission() == GroupPermissionType.ADMIN_ONLY) { + return member.getMemberRank() == GroupMemberRank.ADMINISTRATOR || member.getMemberRank() == GroupMemberRank.OWNER; + } + } + + + return true; + } + + public List getRecentPages() { + List pageList = new ArrayList<>(); + + int limit = GameConfiguration.getInstance().getInteger("discussions.replies.per.page"); + + if (this.replyCount > limit) { + for (int i = 0; i < 2 + 1; i++) { + int newNumber = this.getReplyPages() - i; + + if (newNumber > 1) { + pageList.add(newNumber); + } + } + } + + Collections.sort(pageList); + return pageList; + } + + public int getId() { + return id; + } + + public int getGroupId() { + return groupId; + } + + public int getCreatorId() { + return creatorId; + } + + public String getCreatorName() { + return creatorName; + } + + public String getLastReplyName() { + return lastReplyName; + } + + public String getTopicTitle() { + return WordfilterManager.filterSentence(topicTitle); + } + + public int getReplyCount() { + return replyCount; + } + + public int getReplyPages() { + int limit = GameConfiguration.getInstance().getInteger("discussions.replies.per.page"); + return (this.replyCount > 0 ? (int) Math.ceil((double)replyCount / (double)limit) : 1); + } + + public boolean isOpen() { + return isOpen; + } + + public boolean isStickied() { + return isStickied; + } + + public int getViews() { + return views; + } + + public void setTopicTitle(String topicTitle) { + this.topicTitle = topicTitle; + } + + public void setOpen(boolean open) { + isOpen = open; + } + + public void setStickied(boolean stickied) { + isStickied = stickied; + } + + public void setViews(int views) { + this.views = views; + } + + public long getCreatedAt() { + return createdAt; + } + + public long getLastMessageAt() { + return lastMessageAt; + } + + public String getCreatedDate(String dateFormat) { + return DateUtil.getDate(this.createdAt, dateFormat).replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public String getLastMessage(String dateFormat) { + return DateUtil.getDate(this.lastMessageAt, dateFormat).replace("am", "AM").replace("pm","PM").replace(".", ""); + } + + public boolean isNew() { + return isNew; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/homes/GuestbookEntry.java b/Havana-Web/src/main/java/org/alexdev/http/game/homes/GuestbookEntry.java new file mode 100644 index 0000000..84dbd88 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/homes/GuestbookEntry.java @@ -0,0 +1,54 @@ +package org.alexdev.http.game.homes; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; + +public class GuestbookEntry { + private final int id; + private final int userId; + private final int homeId; + private final int groupId; + private final long creationDate; + private final String message; + + public GuestbookEntry(int id, int userId, int homeId, int groupId, String message, long creationDate) { + this.id = id; + this.userId = userId; + this.homeId = homeId; + this.groupId = groupId; + this.message = message; + this.creationDate = creationDate; + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public PlayerDetails getUser() { + return PlayerDao.getDetails(this.userId); + } + + public int getHomeId() { + return homeId; + } + + public int getGroupId() { + return groupId; + } + + public String getCreationDate() { + return DateUtil.getFriendlyDate(this.creationDate); + } + + public String getMessage() { + return BBCode.format(HtmlUtil.escape(BBCode.normalise(WordfilterManager.filterSentence(this.message))), false); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/homes/Home.java b/Havana-Web/src/main/java/org/alexdev/http/game/homes/Home.java new file mode 100644 index 0000000..3b2c694 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/homes/Home.java @@ -0,0 +1,29 @@ +package org.alexdev.http.game.homes; + +import org.alexdev.http.dao.HomesDao; + +public class Home { + private int userId; + private String background; + + public Home(int userId, String background) { + this.userId = userId; + this.background = background; + } + + public int getUserId() { + return userId; + } + + public String getBackground() { + return background; + } + + public void setBackground(String background) { + this.background = background; + } + + public void saveBackground() { + HomesDao.saveBackground(userId, background); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/homes/Widget.java b/Havana-Web/src/main/java/org/alexdev/http/game/homes/Widget.java new file mode 100644 index 0000000..5a9c21b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/homes/Widget.java @@ -0,0 +1,443 @@ +package org.alexdev.http.game.homes; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.badges.Badge; +import org.alexdev.havana.game.badges.BadgeManager; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.groups.GroupMember; +import org.alexdev.havana.game.groups.GroupMemberRank; +import org.alexdev.havana.game.item.Item; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.messenger.MessengerUser; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.game.room.RoomManager; +import org.alexdev.havana.game.song.Song; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.http.dao.FriendManagementDao; +import org.alexdev.http.dao.GuestbookDao; +import org.alexdev.http.dao.RatingDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.stickers.StickerManager; +import org.alexdev.http.game.stickers.StickerProduct; +import org.alexdev.http.game.stickers.StickerType; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class Widget { + private static final Integer FRIENDS_PAGING_AMOUNT = 32; + private static final Integer MEMBER_PAGING_AMOUNT = 32; + + private final int id; + private final int userId; + private int x; + private int y; + private int z; + private final int stickerId; + private int skinId; + private int groupId; + private int amount; + private String text; + private boolean isPlaced; + private String extraData; + + public Widget(int id, int userId, int x, int y, int z, int stickerId, int skinId, int groupId, String text, int amount, boolean isPlaced, String extraData) { + this.id = id; + this.userId = userId; + this.x = x; + this.y = y; + this.z = z; + this.stickerId = stickerId; + this.skinId = skinId; + this.groupId = groupId; + this.text = text; + this.amount = amount; + this.isPlaced = isPlaced; + this.extraData = extraData; + } + + public Template template(WebConnection webConnection) { + Template tpl = null; + + if (this.getProduct().getData().equalsIgnoreCase("groupinfowidget")) { + tpl = webConnection.template("homes/widget/group_info_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("guestbookwidget")) { + tpl = webConnection.template("homes/widget/guestbook_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("stickienote")) { + tpl = webConnection.template("homes/widget/note"); + } else if (this.getProduct().getData().equalsIgnoreCase("memberwidget")) { + tpl = webConnection.template("homes/widget/member_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("traxplayerwidget")) { + tpl = webConnection.template("homes/widget/trax_player_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("profilewidget")) { + tpl = webConnection.template("homes/widget/profile_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("roomswidget")) { + tpl = webConnection.template("homes/widget/rooms_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("highscoreswidget")) { + tpl = webConnection.template("homes/widget/highscores_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("badgeswidget")) { + tpl = webConnection.template("homes/widget/badges_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("friendswidget")) { + tpl = webConnection.template("homes/widget/friends_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("groupswidget")) { + tpl = webConnection.template("homes/widget/groups_widget"); + } else if (this.getProduct().getData().equalsIgnoreCase("ratingwidget")) { + tpl = webConnection.template("homes/widget/rating_widget"); + } else { + tpl = webConnection.template("homes/widget/sticker"); + } + + tpl.set("editMode", webConnection.session().contains("homeEditSession") || webConnection.session().contains("groupEditSession")); + tpl.set("sticker", this); + + if (webConnection.session().contains("homeEditSession")) { + PlayerDetails playerDetails = PlayerDao.getDetails(webConnection.session().getInt("user.id")); + tpl.set("user", playerDetails); + tpl.set("canAddFriend", false); + + if (this.getProduct().getData().equalsIgnoreCase("profilewidget")) { + var badges = BadgeDao.getBadges(playerDetails.getId()); + var enabledBadges = new ArrayList<>(badges); + badges.removeIf(badge -> !badge.isEquipped()); + badges.sort(Comparator.comparingInt(Badge::getSlotId)); + + tpl.set("hasBadge", enabledBadges.size() > 0); + + if (enabledBadges.size() > 0) { + tpl.set("badgeCode", enabledBadges.get(0).getBadgeCode()); + } + + tpl.set("hasFavouriteGroup", false); + + if (playerDetails.getFavouriteGroupId() > 0) { + Group group = GroupDao.getGroup(playerDetails.getFavouriteGroupId()); + + if (group != null) { + tpl.set("hasFavouriteGroup", true); + tpl.set("group", group); + } + } + } + } + + return tpl; + } + + public List getFirstBadges() { + return StringUtil.paginate(new BadgeManager(this.userId).getBadges(), 16, true).get(0); + } + + public Map> getBadgeList() { + return StringUtil.paginate(new BadgeManager(this.userId).getBadges(), 16); + } + + public List getOwnerRooms() { + var roomList = RoomDao.getRoomsByUserId(this.userId); + RoomManager.getInstance().sortRooms(roomList); + + return roomList; + } + + public List getFirstFriendsList() { + return FriendManagementDao.getFriends(this.userId, 1, FRIENDS_PAGING_AMOUNT); + } + + public int getFriendsPagesSearch(String search) { + int friends = FriendManagementDao.getFriendsCount(this.userId, search); + int pages = friends > 0 ? (int) Math.ceil((double)friends / (double)FRIENDS_PAGING_AMOUNT) : 0; + return pages == 0 ? 1 : pages; + } + + public int getFriendsPages() { + int friends = FriendManagementDao.getFriendsCount(this.userId); + int pages = friends > 0 ? (int) Math.ceil((double)friends / (double)FRIENDS_PAGING_AMOUNT) : 0; + return pages == 0 ? 1 : pages; + } + + public int getFriendsAmount() { + return MessengerDao.getFriendsCount(this.userId); + } + + public List getFriendsList(String query, int page) { + if (!query.isBlank()) { + return FriendManagementDao.getFriendsSearch(this.userId, query, page, FRIENDS_PAGING_AMOUNT); + } else { + return FriendManagementDao.getFriends(this.userId, page, FRIENDS_PAGING_AMOUNT); + } + } + + public String getGuestbookState() { + if (this.extraData.equalsIgnoreCase("public")) { + return "public"; + } + + if (this.extraData.equalsIgnoreCase("private")) { + return "private"; + } + + return "public"; + } + + public boolean isPostingAllowed(int userId) { + if (this.getGuestbookState().equalsIgnoreCase("public")) { + return true; + } + + if (this.getProduct().getType() == StickerType.GROUP_WIDGET) { + Group group = GroupDao.getGroup(this.groupId); + return group.isMember(userId); + } + + if (this.getProduct().getType() == StickerType.HOME_WIDGET) { + return userId == this.getUserId() || MessengerDao.friendExists(userId, this.getUserId()); + } + + return false; + } + + public List getGuestbookEntries() { + List entries = null; + + int id = 0; + + if (this.getProduct().getType() == StickerType.GROUP_WIDGET) { + entries = GuestbookDao.getEntriesByGroup(this.getGroupId()); + } else if (this.getProduct().getType() == StickerType.HOME_WIDGET) { + entries = GuestbookDao.getEntriesByHome(this.getUserId()); + } + + return entries; + } + + public boolean canDeleteEntries(int userId) { + boolean canDelete = false; + + if (this.getProduct().getType() == StickerType.GROUP_WIDGET) { + canDelete = (GroupDao.getGroupOwner(this.groupId) == userId); + } else if (this.getProduct().getType() == StickerType.HOME_WIDGET) { + canDelete = (userId == this.getUserId()); + } + + return canDelete; + } + + public List getSongs() { + List songList = null; + int userId = 0; + + if (this.getProduct().getType() == StickerType.GROUP_WIDGET) { + userId = GroupDao.getGroupOwner(this.groupId); + songList = SongMachineDao.getSongUserList(userId); + } else if (this.getProduct().getType() == StickerType.HOME_WIDGET) { + userId = this.getUserId(); + songList = SongMachineDao.getSongUserList(userId); + } + + for (Item item : ItemDao.getUserItemsByDefinition(userId, ItemManager.getInstance().getDefinitionBySprite("song_disk"))) { + int songId = JukeboxDao.getSongIdByItem(item.getDatabaseId()); + Song song = SongMachineDao.getSong(songId); + + if (song == null) { + continue; + } + + if (songList != null) { + if (songList.stream().noneMatch(s -> s.getId() == song.getId())) { + songList.add(song); + } + } + } + + return songList; + } + + public List getFirstMembersList() { + var members = GroupMemberDao.getMembers(this.groupId, false, "",1, FRIENDS_PAGING_AMOUNT); + members.add(new GroupMember(GroupDao.getGroupOwner(this.groupId), this.groupId, false, GroupMemberRank.OWNER.getRankId())); + return members.stream() + .sorted(Comparator.comparingLong((GroupMember gp) -> gp.getUser().getLastOnline()).reversed()) + .collect(Collectors.toList()); + } + + public List getMembersList(String query, int page) { + var members = GroupMemberDao.getMembers(this.groupId, false, query, page, FRIENDS_PAGING_AMOUNT); + return members.stream() + .sorted(Comparator.comparingLong((GroupMember gp) -> gp.getUser().getLastOnline()).reversed()) + .collect(Collectors.toList()); + } + + public int getMembersAmount() { + return GroupMemberDao.countMembers(this.groupId, false) + 1; + } + + public int getMembersPages() { + int members = GroupMemberDao.countMembers(this.groupId, false) + 1; + int pages = members > 0 ? (int) Math.ceil((double)members / (double)FRIENDS_PAGING_AMOUNT) : 0; + return pages == 0 ? 1 : pages; + } + + + public boolean hasSong() { + Song song = null; + + if (StringUtils.isNumeric(this.extraData)) { + int songId = Integer.parseInt(this.extraData); + song = SongMachineDao.getSong(songId); + } + + return song != null; + } + + + public Song getSong() { + Song song = null; + + if (StringUtils.isNumeric(this.extraData)) { + int songId = Integer.parseInt(this.extraData); + song = SongMachineDao.getSong(songId); + } + + return song; + } + + + public List getOwnerGroups() { + return GroupDao.getJoinedGroups(this.userId); + } + + public boolean hasRated(int userId) { + return RatingDao.hasRated(userId, this.userId); + } + + public int getAverageRating() { + return (int)(RatingDao.getAverageRating(this.userId)); + } + + public int getRatingPixels() { + double rating = getAverageRating(); + + if (rating <= 0) { + rating = 1; + } + + return (int) Math.round(rating * 150 / 5); + } + + public int getHighVoteCount() { + return RatingDao.getHighVoteCount(this.userId); + } + + public int getVoteCount() { + return RatingDao.getVoteCount(this.userId); + } + + public void save() { + WidgetDao.save(this); + } + + public StickerProduct getProduct() { + return StickerManager.getInstance().getStickerProduct(this.stickerId); + } + + public int getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public int getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public int getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + + public int getZ() { + return z; + } + + public void setZ(int z) { + this.z = z; + } + + public int getStickerId() { + return stickerId; + } + + public String getSkin() { + return StickerManager.getInstance().getSkin(this.skinId); + } + + public void setSkinId(int skinId) { + this.skinId = skinId; + } + + public int getGroupId() { + return groupId; + } + + public void setGroupId(int groupId) { + this.groupId = groupId; + } + + public int getSkinId() { + return skinId; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public String getText() { + return WordfilterManager.filterSentence(text); + } + + public String getFormattedText() { + return BBCode.format(HtmlUtil.escape(BBCode.normalise(WordfilterManager.filterSentence(this.text))), false); + } + + public void setText(String text) { + this.text = text; + } + + public boolean isPlaced() { + return isPlaced; + } + + public void setPlaced(boolean placed) { + isPlaced = placed; + } + + public String getExtraData() { + return extraData; + } + + public void setExtraData(String extraData) { + this.extraData = extraData; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingManager.java b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingManager.java new file mode 100644 index 0000000..03e7dbe --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingManager.java @@ -0,0 +1,65 @@ +package org.alexdev.http.game.housekeeping; + +import org.alexdev.havana.game.player.PlayerRank; +import org.alexdev.http.game.stickers.StickerManager; + +import java.util.HashMap; +import java.util.Map; + +public class HousekeepingManager { + private static HousekeepingManager instance; + private Map permissions; + + public HousekeepingManager() { + this.loadPermissions(); + } + + private void loadPermissions() { + this.permissions = new HashMap<>(); + this.permissions.put("root/login", PlayerRank.MODERATOR); + this.permissions.put("transaction/lookup", PlayerRank.MODERATOR); + this.permissions.put("marketplace/log_check", PlayerRank.MODERATOR); + this.permissions.put("marketplace/user_log", PlayerRank.MODERATOR); + this.permissions.put("bans", PlayerRank.MODERATOR); + this.permissions.put("user/search", PlayerRank.ADMINISTRATOR); + this.permissions.put("user/edit", PlayerRank.ADMINISTRATOR); + this.permissions.put("user/create", PlayerRank.ADMINISTRATOR); + this.permissions.put("articles/create", PlayerRank.MODERATOR); + this.permissions.put("articles/edit_any", PlayerRank.ADMINISTRATOR); + this.permissions.put("articles/edit_own", PlayerRank.MODERATOR); + this.permissions.put("articles/delete_any", PlayerRank.ADMINISTRATOR); + this.permissions.put("articles/delete_own", PlayerRank.MODERATOR); + this.permissions.put("room_ads", PlayerRank.ADMINISTRATOR); + this.permissions.put("room_badges", PlayerRank.COMMUNITY_MANAGER); + this.permissions.put("configuration", PlayerRank.ADMINISTRATOR); + this.permissions.put("infobus", PlayerRank.COMMUNITY_MANAGER); + this.permissions.put("infobus/delete_any", PlayerRank.ADMINISTRATOR); + this.permissions.put("infobus/delete_own", PlayerRank.COMMUNITY_MANAGER); + this.permissions.put("catalogue/edit_frontpage", PlayerRank.COMMUNITY_MANAGER); + this.permissions.put("user/imitate", PlayerRank.ADMINISTRATOR); + this.permissions.put("user/matches", PlayerRank.ADMINISTRATOR); + this.permissions.put("badges", PlayerRank.COMMUNITY_MANAGER); + } + + /** + * Get instance of {@link StickerManager} + * + * @return the manager instance + */ + public static HousekeepingManager getInstance() { + if (instance == null) { + instance = new HousekeepingManager(); + } + + return instance; + } + + public boolean hasPermission(PlayerRank rank, String permission) { + if (this.permissions.containsKey(permission)) { + var permissibleRank = this.permissions.get(permission); + return rank.getRankId() >= permissibleRank.getRankId(); + } + + return false; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingStats.java b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingStats.java new file mode 100644 index 0000000..09357e7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/HousekeepingStats.java @@ -0,0 +1,19 @@ +package org.alexdev.http.game.housekeeping; + +public class HousekeepingStats { + private final int userCount; + private final int inventoryItemsCount; + private final int roomItemCount; + private final int groupCount; + private final int petCount; + private final int photoCount; + + public HousekeepingStats(int userCount, int inventoryItemsCount, int roomItemCount, int groupCount, int petCount, int photoCount) { + this.userCount = userCount; + this.inventoryItemsCount = inventoryItemsCount; + this.roomItemCount = roomItemCount; + this.groupCount = groupCount; + this.petCount = petCount; + this.photoCount = photoCount; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/MarketplacePurchaseOccurance.java b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/MarketplacePurchaseOccurance.java new file mode 100644 index 0000000..a869b9f --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/housekeeping/MarketplacePurchaseOccurance.java @@ -0,0 +1,25 @@ +package org.alexdev.http.game.housekeeping; + +public class MarketplacePurchaseOccurance { + private final int userId; + private final String username; + private final int purchaseCount; + + public MarketplacePurchaseOccurance(int userId, String username, int purchaseCount) { + this.userId = userId; + this.username = username; + this.purchaseCount = purchaseCount; + } + + public int getUserId() { + return userId; + } + + public String getUsername() { + return username; + } + + public int getPurchaseCount() { + return purchaseCount; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/marketplace/MarketplaceOffer.java b/Havana-Web/src/main/java/org/alexdev/http/game/marketplace/MarketplaceOffer.java new file mode 100644 index 0000000..f5d5066 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/marketplace/MarketplaceOffer.java @@ -0,0 +1,105 @@ +package org.alexdev.http.game.marketplace; + +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.item.base.ItemDefinition; +import org.alexdev.havana.util.DateUtil; + +import java.text.NumberFormat; +import java.util.Locale; +import java.util.concurrent.TimeUnit; + +public class MarketplaceOffer { + private final long id; + private final int userId; + private final long itemId; + private final int definitionId; + private final int price; + private final int lowestPrice; + private final int rotation; + private final int state; + private final int colour; + private final long createdAt; + private final boolean isActive; + private final int itemsAlike; + + public MarketplaceOffer(long id, int userId, long itemId, int definitionId, int price, int lowestPrice, int rotation, int state, int colour, int itemsAlike, long createdAt, boolean isActive) { + this.id = id; + this.userId = userId; + this.itemId = itemId; + this.definitionId = definitionId; + this.price = price; + this.lowestPrice = lowestPrice; + this.rotation = rotation; + this.state = state; + this.colour = colour; + this.createdAt = createdAt; + this.isActive = isActive; + this.itemsAlike = itemsAlike; + } + + public String getTimeUntilExpiry() { + long timestamp = this.createdAt + TimeUnit.DAYS.toSeconds(7); + return DateUtil.getMarketplaceReadableSeconds(timestamp - DateUtil.getCurrentTimeSeconds()); + } + + public long getId() { + return id; + } + + public int getUserId() { + return userId; + } + + public ItemDefinition getDefinition() { + return ItemManager.getInstance().getDefinition(this.definitionId); + } + + public long getItemId() { + return itemId; + } + + public int getDefinitionId() { + return definitionId; + } + + public int getPrice() { + return price; + } + + public String getFormattedPrice() { + return NumberFormat.getInstance(Locale.US).format(price); + } + + public int getLowestPrice() { + return lowestPrice; + } + + public String getFormattedLowestPrice() { + return NumberFormat.getInstance(Locale.US).format(lowestPrice); + } + + + public int getRotation() { + return rotation; + } + + public int getState() { + return state; + } + + public int getColour() { + return colour; + } + + public long getCreatedAt() { + return createdAt; + } + + public boolean isActive() { + return isActive; + } + + public int getItemsAlike() { + return itemsAlike; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/minimail/MinimailMessage.java b/Havana-Web/src/main/java/org/alexdev/http/game/minimail/MinimailMessage.java new file mode 100644 index 0000000..18e337f --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/minimail/MinimailMessage.java @@ -0,0 +1,139 @@ +package org.alexdev.http.game.minimail; + +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.util.BBCode; +import org.alexdev.http.util.HtmlUtil; + +public class MinimailMessage { + private final int id; + private boolean isRead; + private int targetId; + private int toId; + private int senderId; + private String subject; + private String message; + private final long dateSent; + private int conversationId; + private boolean isTrash; + private PlayerDetails target; + private PlayerDetails author; + + public MinimailMessage(int id, int targetId, int toId, int senderId, boolean isRead, String subject, String message, long dateSent, int conversationId, boolean isTrash) { + this.id = id; + this.targetId = targetId; + this.toId = toId; + this.isRead = isRead; + this.senderId = senderId; + this.subject = subject; + this.message = message; + this.dateSent = dateSent; + this.conversationId = conversationId; + this.isTrash = isTrash; + } + + public int getId() { + return id; + } + + public int getTargetId() { + return targetId; + } + + public void setTargetId(int targetId) { + this.targetId = targetId; + } + + public int getToId() { + return toId; + } + + public void setToId(int toId) { + this.toId = toId; + } + + public boolean isRead() { + return isRead; + } + + public void setRead(boolean read) { + isRead = read; + } + + public void setMessage(String message) { + this.message = message; + } + + public int getSenderId() { + return senderId; + } + + public void setSenderId(int senderId) { + this.senderId = senderId; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getMessage() { + return WordfilterManager.filterSentence(message); + } + + public String getFormattedSubject() { + return BBCode.format(HtmlUtil.escape(this.subject), false); + } + + public String getFormattedMessage() { + return BBCode.format(HtmlUtil.escape(WordfilterManager.filterSentence(this.message)), false); + } + + public long getDateSent() { + return dateSent; + } + + public String getDate() { + return DateUtil.getFriendlyDate(this.dateSent); + } + + public String getIsoDate() { + return DateUtil.getDate(this.dateSent, "yyyy-MM-dd'T'HH:mm:ssZ"); + } + + public int getConversationId() { + return conversationId; + } + + public void setConversationId(int conversationId) { + this.conversationId = conversationId; + } + + public boolean isTrash() { + return isTrash; + } + + public void setTrash(boolean trash) { + isTrash = trash; + } + + public PlayerDetails getTarget() { + return target; + } + + public void setTarget(PlayerDetails target) { + this.target = target; + } + + public PlayerDetails getAuthor() { + return author; + } + + public void setAuthor(PlayerDetails author) { + this.author = author; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsArticle.java b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsArticle.java new file mode 100644 index 0000000..a4ee861 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsArticle.java @@ -0,0 +1,227 @@ +package org.alexdev.http.game.news; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.util.HousekeepingUtil; + +import java.util.ArrayList; +import java.util.List; + +public class NewsArticle { + private int id; + private String title; + private int authorId; + private String authorOverride; + private String shortstory; + private String fullstory; + private long timestamp; + private String topstory; + private String topstoryOverride; + private String articleImage; + private List categories; + private boolean isPublished; + private int views; + private boolean isFuturePublished; + + public NewsArticle(int id, String title, int authorId, String authorOverride, String shortstory, String fullStory, long date, String topstory, String topstoryOverride, String articleImage, String categories, boolean isPublished, int views, boolean isFuturePublished) { + this.id = id; + this.title = title; + this.authorId = authorId; + this.authorOverride = authorOverride; + this.shortstory = shortstory; + this.fullstory = fullStory; + this.timestamp = date; + this.articleImage = articleImage; + this.topstory = topstory; + this.topstoryOverride = topstoryOverride; + this.categories = parseCategories(categories); + this.isPublished = isPublished; + this.views = views; + this.isFuturePublished = isFuturePublished; + } + + private List parseCategories(String categories) { + var categoryList = new ArrayList(); + + if (categories != null && categories.length() > 0) { + for (String categoryData : categories.split(",")) { + var category = NewsManager.getInstance().getCategoryById(Integer.parseInt(categoryData)); + + if (category != null) { + categoryList.add(category); + } + } + } + + return categoryList; + } + + public boolean hasCategory(int id) { + return this.categories.stream().anyMatch(category -> category.getId() == id); + } + + public String getAuthor() { + if (this.authorOverride.length() > 0) + return this.authorOverride; + + return PlayerDao.getName(this.authorId); + } + + public int getAuthorId() { + return authorId; + } + + public String getUrl() { + if (this.id == 0) { + return "0-no-news"; + } + + String newTitle = this.title; + newTitle = newTitle.replace("!", ""); + newTitle = newTitle.replace("'", ""); + newTitle = newTitle.replace("@", ""); + newTitle = newTitle.replace("&", ""); + newTitle = newTitle.replace("*", ""); + newTitle = newTitle.replace("%", ""); + newTitle = newTitle.replace("[", ""); + newTitle = newTitle.replace("]", ""); + newTitle = newTitle.replace("#", ""); + newTitle = newTitle.replace("=", ""); + newTitle = newTitle.replace("\"", ""); + newTitle = newTitle.replace(":", ""); + newTitle = newTitle.replace(">", ""); + newTitle = newTitle.replace("<", ""); + newTitle = newTitle.replace(",", ""); + newTitle = newTitle.replace(".", ""); + newTitle = newTitle.replace("+", ""); + newTitle = newTitle.replace("-", ""); + newTitle = newTitle.replace("=", ""); + newTitle = newTitle.replace("_", ""); + newTitle = newTitle.replace("/", ""); + newTitle = newTitle.replace("?", ""); + newTitle = newTitle.replace("\\", ""); + newTitle = newTitle.replace(" ", "-"); + newTitle = newTitle.toLowerCase(); + + return this.id + "-" + newTitle; + } + + /** + * Get id of article + * @return the id + */ + public int getId() { + return id; + } + + /** + * Get title of news article + * @return the title + */ + public String getTitle() { + return title; + } + + /** + * Set title of news article + * + * @param title the new title + */ + public void setTitle(String title) { + this.title = title; + } + + public String getShortStory() { + return shortstory; + } + + public void setShortStory(String shortstory) { + this.shortstory = shortstory; + } + + public String getDate() { + return DateUtil.getDate(this.timestamp, "EEE dd MMM, yyyy").replace(".", ""); + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getLiveTopStory() { + if (this.topstoryOverride.length() > 0) { + return this.topstoryOverride; + } + + //{{ site.staticContentPath }}/c_images/Top_Story_Images/{{ article1.getTopStory() }} + + return GameConfiguration.getInstance().getString("static.content.path") + "/c_images/Top_Story_Images/" + topstory; + } + + public String getTopStory() { + return topstory; + } + + public void setTopStory(String topstory) { + this.topstory = topstory; + } + + public String getFullStory() { + return this.fullstory; + } + + public String getEscapedStory() { return new HousekeepingUtil().formatNewsStory(this.fullstory); + } + + public void setFullStory(String fullstory) { + this.fullstory = fullstory; + } + + public List getCategories() { + return categories; + } + + public String getArticleImage() { + return articleImage; + } + + public void setArticleImage(String articleImage) { + this.articleImage = articleImage; + } + + public boolean isPublished() { + return isPublished; + } + + public void setPublished(boolean published) { + isPublished = published; + } + + public boolean isFuturePublished() { + return isFuturePublished; + } + + public void setFuturePublished(boolean futurePublished) { + isFuturePublished = futurePublished; + } + + public String getAuthorOverride() { + return authorOverride; + } + + public void setAuthorOverride(String authorOverride) { + this.authorOverride = authorOverride; + } + + public String getTopstoryOverride() { + return topstoryOverride; + } + + public void setTopstoryOverride(String topstoryOverride) { + this.topstoryOverride = topstoryOverride; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsCategory.java b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsCategory.java new file mode 100644 index 0000000..38c2373 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsCategory.java @@ -0,0 +1,25 @@ +package org.alexdev.http.game.news; + +public class NewsCategory { + private int id; + private String label; + private String index; + + public NewsCategory(int id, String label, String index) { + this.id = id; + this.label = label; + this.index = index; + } + + public int getId() { + return id; + } + + public String getLabel() { + return label; + } + + public String getIndex() { + return index; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsDateKey.java b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsDateKey.java new file mode 100644 index 0000000..24340d7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsDateKey.java @@ -0,0 +1,9 @@ +package org.alexdev.http.game.news; + +public enum NewsDateKey { + YESTERDAY, + THIS_WEEK, + THIS_MONTH, + ALL, + TODAY, PAST_YEAR; +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsManager.java b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsManager.java new file mode 100644 index 0000000..b098f82 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsManager.java @@ -0,0 +1,57 @@ +package org.alexdev.http.game.news; + +import org.alexdev.http.dao.NewsDao; + +import java.util.*; + +public class NewsManager { + private Map newsCategoryMap; + private static NewsManager instance; + + public NewsManager() { + this.newsCategoryMap = NewsDao.getCategories(); + } + + /** + * Get category by ID. + * @param categoryId the category id. + * @return the category, if successful + */ + public NewsCategory getCategoryById(int categoryId) { + return this.newsCategoryMap.getOrDefault(categoryId, null); + } + + /** + * Get category by label. + * @param categoryLabel the category id. + * @return the category, if successful + */ + public NewsCategory getCategoryByLabel(String categoryLabel) { + return this.newsCategoryMap.values().stream().filter(article -> article.getIndex().equalsIgnoreCase(categoryLabel)).findFirst().orElse(null); + } + + /** + * Get categories + * + * @return the list of categories + */ + public List getCategories() { + List categories = new ArrayList<>(this.newsCategoryMap.values()); + categories.sort(Comparator.comparing(NewsCategory::getLabel)); + return categories; + } + + /** + * Get instance of {@link NewsManager} + * + * @return the manager instance + */ + public static NewsManager getInstance() { + if (instance == null) { + instance = new NewsManager(); + } + + return instance; + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsView.java b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsView.java new file mode 100644 index 0000000..ab4b0e5 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/news/NewsView.java @@ -0,0 +1,5 @@ +package org.alexdev.http.game.news; + +public enum NewsView { + MONTHS, ARCHIVE, DEFAULT +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerCategory.java b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerCategory.java new file mode 100644 index 0000000..703d4bb --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerCategory.java @@ -0,0 +1,34 @@ +package org.alexdev.http.game.stickers; + +public class StickerCategory { + public static final int BACKGROUND_CATEGORY_TYPE = 2; + public static final int STICKER_BACKGROUND_TYPE = 1; + + private final int id; + private final String name; + private final int minRank; + private final int categoryType; + + public StickerCategory(int id, String name, int minRank, int categoryType) { + this.id = id; + this.name = name; + this.minRank = minRank; + this.categoryType = categoryType; + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public int getMinRank() { + return minRank; + } + + public int getCategoryType() { + return categoryType; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerManager.java b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerManager.java new file mode 100644 index 0000000..73ab192 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerManager.java @@ -0,0 +1,203 @@ +package org.alexdev.http.game.stickers; + +import org.alexdev.http.dao.HomesDao; +import org.alexdev.http.dao.StoreDao; +import org.alexdev.http.dao.WidgetDao; +import org.alexdev.http.game.homes.Widget; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class StickerManager { + private static StickerManager instance; + private List catalogueList; + private List categoryList; + + public StickerManager() { + this.categoryList = StoreDao.getCategories(); + this.catalogueList = StoreDao.getCatalogue(); + } + + /** + * Create home handler. + * + * @param userId the user id to create the home for + */ + public void createHome(int userId) { + HomesDao.create(userId); + + /* + +
      +
      + + +
      +
      + + +
      + + + */ + + WidgetDao.purchaseWidget(userId, 455, 27, 129, 1, this.getStickerByData("profilewidget", StickerType.HOME_WIDGET).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 440, 321, 177, 1, this.getStickerByData("roomswidget", StickerType.HOME_WIDGET).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 383, 491, 179, 6, this.getStickerByData("highscoreswidget", StickerType.HOME_WIDGET).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 183, 371, 171, 1, this.getStickerByData("paper_clip_1", StickerType.STICKER).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 109, 19, 134, 1, this.getStickerByData("needle_3", StickerType.STICKER).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 281, 346, 150, 1, this.getStickerByData("sticker_spaceduck", StickerType.STICKER).getId(), "", 0, true); + WidgetDao.purchaseWidget(userId, 56, 229, 151, 2, this.getStickerByData("stickienote", StickerType.NOTE).getId(), "Welcome to a brand new Habbo Home page!\n" + + "This is the place where you can express yourself with a wild and unique variety of stickers, hoot yo\n" + + "trap off with colourful notes and showcase your Habbo rooms! To\n" + + "start editing just click the edit button.\n", 0, true); + + WidgetDao.purchaseWidget(userId, 110, 409, 170, 5, this.getStickerByData("stickienote", StickerType.NOTE).getId(), "Where are my friends?\n" + + "To add your buddy list to your page click edit and look in your widgets inventory. After placing it on the page you can move it all over the place and even change how it looks. Go on!", 0, true); + + WidgetDao.purchaseWidget(userId, 125, 38, 131, 4, this.getStickerByData("stickienote", StickerType.NOTE).getId(), "Remember!\n" + + "Posting personal information about yourself or your friends, including addresses, phone numbers or email, and getting round the filter will result in your note being deleted.\n" + + "Deleted notes will not be funded.\n", 0, true); + + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("guestbookwidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("badgeswidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("friendswidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("groupswidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("traxplayerwidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + WidgetDao.purchaseWidget(userId, 0, 0, 0, 1, this.getStickerByData("ratingwidget", StickerType.HOME_WIDGET).getId(), "", 0, false); + + } + + public List getDefaultWidgets(int userId) { + List widgets = new ArrayList<>(); + /* + +
      +
      + + +
      +
      + + +
      + + + */ + + //(int id, int userId, int x, int y, int z, int stickerId, int skinId, int groupId, String text, int amount, boolean isPlaced, String extraData) { + + widgets.add(new Widget(1, userId, 455, 27, 129, this.getStickerByData("profilewidget", StickerType.HOME_WIDGET).getId(), 1, 1, "", 1, true, "")); + widgets.add(new Widget(2, userId, 440, 321, 177, this.getStickerByData("roomswidget", StickerType.HOME_WIDGET).getId(), 6, 1, "", 1, true, "")); + widgets.add(new Widget(3, userId, 383, 491, 179, this.getStickerByData("highscoreswidget", StickerType.HOME_WIDGET).getId(), 1, 1, "", 1, true, "")); + widgets.add(new Widget(4, userId, 183, 371, 171, this.getStickerByData("paper_clip_1", StickerType.STICKER).getId(), 1, 1, "", 1, true, "")); + widgets.add(new Widget(5, userId, 109, 19, 134, this.getStickerByData("needle_3", StickerType.STICKER).getId(), 1, 1, "", 1, true, "")); + widgets.add(new Widget(6, userId, 281, 346, 150, this.getStickerByData("sticker_spaceduck", StickerType.STICKER).getId(), 2, 1, "", 1, true, "")); + + widgets.add(new Widget(7, userId, 56, 229, 151, this.getStickerByData("stickienote", StickerType.NOTE).getId(), 2, 1, "Welcome to a brand new Habbo Home page!\n" + + "This is the place where you can express yourself with a wild and unique variety of stickers, hoot yo\n" + + "trap off with colourful notes and showcase your Habbo rooms! To\n" + + "start editing just click the edit button.\n", 1, true, "")); + + widgets.add(new Widget(8, userId, 110, 409, 170, this.getStickerByData("stickienote", StickerType.NOTE).getId(), 5, 1, "To add your buddy list to your page click edit and look in your widgets inventory. After placing it on the page you can move it all over the place and even change how it looks. Go on!", + 1, true, "")); + + widgets.add(new Widget(9, userId, 125, 38, 131, this.getStickerByData("stickienote", StickerType.NOTE).getId(), 4, 1, "Remember!\n" + + "Posting personal information about yourself or your friends, including addresses, phone numbers or email, and getting round the filter will result in your note being deleted.\n" + + "Deleted notes will not be funded.\n", 1, true, "")); + + + return widgets; + } + + /** + * Get the sticker list. + * + * @return the sticker list + */ + public List getCatalogueList() { + return catalogueList; + } + + /** + * Get the category list by minimum rank. + * + * @param minRank the min rank to check + * @return the list of categories + */ + public List getCategories(int minRank) { + return categoryList.stream().filter(category -> minRank >= category.getMinRank()).collect(Collectors.toList()); + } + + /** + * Get the category by id + * + * @return the categrory + */ + public StickerCategory getCategory(int id) { + return categoryList.stream().filter(category -> category.getId() == id).findFirst().orElse(null); + } + + /** + * Get the sticker product by id. + * + * @param stickerId the sticker id + * @return the sticker + */ + public StickerProduct getStickerProduct(int stickerId) { + return catalogueList.stream().filter(product -> product.getId() == stickerId).findFirst().orElse(null); + } + + /** + * Get the skin by id. + * + * @param skinId the skin id + * @return the skin name + */ + public String getSkin(int skinId) { + switch (skinId) { + case 1: + return "defaultskin"; + case 2: + return "speechbubbleskin"; + case 3: + return "metalskin"; + case 4: + return "noteitskin"; + case 5: + return "notepadskin"; + case 6: + return "goldenskin"; + case 7: + return "hc_machineskin"; + case 8: + return "hc_pillowskin"; + } + + return "nakedskin"; + } + + /** + * Method to get sticker by data. + * + * @param data the data of the sticker + * @return the sticker + */ + public StickerProduct getStickerByData(String data, StickerType stickerType) { + return catalogueList.stream().filter(product -> product.getData().toLowerCase().equals(data.toLowerCase()) && product.getType() == stickerType).findFirst().orElse(null); + } + + /** + * Get instance of {@link StickerManager} + * + * @return the manager instance + */ + public static StickerManager getInstance() { + if (instance == null) { + instance = new StickerManager(); + } + + return instance; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerProduct.java b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerProduct.java new file mode 100644 index 0000000..3795e7b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerProduct.java @@ -0,0 +1,107 @@ +package org.alexdev.http.game.stickers; + +public class StickerProduct { + private final int id; + private final String name; + private final String description; + private final int minRank; + private final String data; + private final int price; + private final int amount; + private final int categoryId; + private final int widgetType; + private final int type; + + public StickerProduct(int id, String name, String description, int minRank, String data, int price, int amount, int categoryId, int widgetType, int type) { + this.id = id; + this.name = name; + this.description = description; + this.minRank = minRank; + this.data = data; + this.price = price; + this.amount = amount; + this.categoryId = categoryId; + this.type = type; + this.widgetType = widgetType; + } + + public String getCssClass() { + if (this.type == 1) { + return "s_" + this.data + "_pre"; + } + + if (this.type == 4) { + return "b_" + this.data + "_pre"; + } + + if (this.type == 3) { + return "commodity_" + this.data + "_pre"; + } + + if (this.type == StickerType.GROUP_WIDGET.getTypeId() || this.type == StickerType.HOME_WIDGET.getTypeId()) { + return "w_" + this.data + "_pre"; + } + + return null; + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public int getMinRank() { + return minRank; + } + + public String getData() { + return data; + } + + public int getPrice() { + return price; + } + + public int getAmount() { + return amount; + } + + public int getCategoryId() { + return categoryId; + } + + public StickerType getType() { + return StickerType.getByType(this.type); + } + + public boolean isProduct() { + if (this.widgetType == 0) { + return true; + } + + return false; + } + + public boolean isGroupWidget() { + if (this.widgetType == -1) { + return true; + } + + return false; + } + + public boolean isHomeWidget() { + if (this.widgetType == 1) { + return true; + } + + return false; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerType.java b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerType.java new file mode 100644 index 0000000..6c3cd12 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/game/stickers/StickerType.java @@ -0,0 +1,29 @@ +package org.alexdev.http.game.stickers; + +public enum StickerType { + STICKER(1), + BACKGROUND(4), + NOTE(3), + HOME_WIDGET(2), + GROUP_WIDGET(5); + + private final int typeId; + + StickerType(int typeId) { + this.typeId = typeId; + } + + public static StickerType getByType(int type) { + for (StickerType stickerType : values()) { + if (stickerType.getTypeId() == type) { + return stickerType; + } + } + + return null; + } + + public int getTypeId() { + return typeId; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/log/Log.java b/Havana-Web/src/main/java/org/alexdev/http/log/Log.java new file mode 100644 index 0000000..dd3e342 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/log/Log.java @@ -0,0 +1,10 @@ +package org.alexdev.http.log; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Log { + public static Logger getErrorLogger() { + return LoggerFactory.getLogger("ErrorLogger"); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/server/ServerResponses.java b/Havana-Web/src/main/java/org/alexdev/http/server/ServerResponses.java new file mode 100644 index 0000000..3fc7317 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/server/ServerResponses.java @@ -0,0 +1,61 @@ +package org.alexdev.http.server; + +import io.netty.handler.codec.http.FullHttpResponse; +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.exceptions.NoServerResponseException; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.response.WebResponses; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.http.log.Log; +import org.alexdev.http.template.TwigTemplate; + +import java.io.IOException; + +public class ServerResponses implements WebResponses { + @Override + public FullHttpResponse getErrorResponse(WebConnection client, Throwable throwable) { + if (throwable != null) { + if (throwable instanceof NoServerResponseException) { + Log.getErrorLogger().error("Server did not send response for: " + client.getRouteRequest()); + } + + Log.getErrorLogger().error("Error occurred: ", throwable); + } + + client.session().delete("page"); + + TwigTemplate tpl = (TwigTemplate) client.template("overrides/default"); + try { + return ResponseBuilder.create(tpl.renderHTML()); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + @Override + public FullHttpResponse getResponse(HttpResponseStatus status, WebConnection webConnection) { + webConnection.session().delete("page"); + + if (status == HttpResponseStatus.FORBIDDEN) { + return ResponseBuilder.create(HttpResponseStatus.FORBIDDEN, "\n" + "\n" + "\n" + "\n" + "\n" + "

      Forbidden

      \n" + "\n" + ""); + } + + if (status == HttpResponseStatus.NOT_FOUND) { + TwigTemplate twigTemplate = new TwigTemplate(webConnection); + twigTemplate.start("overrides/default"); + try { + return ResponseBuilder.create(HttpResponseStatus.NOT_FOUND, twigTemplate.renderHTML());//"\n" + "\n" + "\n" + "\n" + "\n" + "

      Not Found

      \n" + "\n" + ""); + } catch (IOException e) { + e.printStackTrace(); + } + } + + //if (status == HttpResponseStatus.BAD_REQUEST) { + return ResponseBuilder.create(HttpResponseStatus.BAD_REQUEST, "\n" + "\n" + "\n" + "\n" + "\n" + "

      Bad Request

      \n" + "\n" + ""); + //} + + //return null; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/server/Watchdog.java b/Havana-Web/src/main/java/org/alexdev/http/server/Watchdog.java new file mode 100644 index 0000000..af8c938 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/server/Watchdog.java @@ -0,0 +1,222 @@ +package org.alexdev.http.server; + +import org.alexdev.havana.dao.mysql.*; +import org.alexdev.havana.game.catalogue.CatalogueManager; +import org.alexdev.havana.game.events.Event; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.game.item.ItemManager; +import org.alexdev.havana.game.room.Room; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.alexdev.http.dao.*; +import org.alexdev.http.game.groups.DiscussionTopic; +import org.alexdev.http.game.news.NewsArticle; +import org.alexdev.http.game.news.NewsDateKey; +import org.alexdev.http.util.config.WebSettingsConfigWriter; +import org.apache.commons.lang3.tuple.Pair; + +import java.net.Socket; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +public class Watchdog implements Runnable { + public static List STAFF_PICK_GROUPS = new ArrayList<>(); + public static List RECOMMENDED_GROUPS = new ArrayList<>(); + public static List EVENTS = new ArrayList<>(); + public static List RECOMMENDED_ROOMS = new ArrayList<>(); + public static List HIDDEN_RECOMMENDED_ROOMS = new ArrayList<>(); + public static List RECENT_DISCUSSIONS = new ArrayList<>(); + public static List NEXT_RECENT_DISCUSSIONS = new ArrayList<>(); + public static List> TAG_CLOUD_10 = new ArrayList<>(); + public static List> TAG_CLOUD_20 = new ArrayList<>(); + public static List NEWS = new ArrayList<>(); + public static List NEWS_STAFF = new ArrayList<>(); + + public static int USERS_ONLNE; + public static boolean IS_SERVER_ONLINE; + public static int LAST_VISITS; + + private boolean canResetUsersFlag = true; + private boolean hasResetUsersFlag = false; + + private AtomicInteger counter; + + public Watchdog() { + this.counter = new AtomicInteger(0); + } + + @Override + public void run() { + if (this.counter.get() % TimeUnit.MINUTES.toSeconds(5) == 0) { + try { + NewsDao.publishFutureArticles(); + } catch (Exception ex) { + + } + } + + if (this.counter.get() % TimeUnit.HOURS.toSeconds(1) == 0) { + try { + if (GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + EmailDao.removeRecoveryCodeBatch(); + } + + batchClean(); + + } catch (Exception ex) { + + } + } + + if (this.counter.get() % 30 == 0) { + try { + + IS_SERVER_ONLINE = isServerOnline(ServerConfiguration.getString("rcon.ip"), ServerConfiguration.getInteger("rcon.port")); + USERS_ONLNE = Integer.parseInt(SettingsDao.getSetting("players.online")); + LAST_VISITS = SiteDao.getLastVisits(); + + // Checks to make sure the user count is set as 0 once while offline. + if (!IS_SERVER_ONLINE) { + USERS_ONLNE = 0; + + if (this.canResetUsersFlag) { + this.canResetUsersFlag = false; + this.hasResetUsersFlag = true; + } + } else { + this.canResetUsersFlag = true; + } + + if (this.hasResetUsersFlag) { + this.hasResetUsersFlag = false; + PlayerDao.resetOnline(); + } + + } catch (Exception ex) { + ex.printStackTrace(); + } + + try { + EVENTS = EventsDao.getEvents(); + } catch (Exception ex) { + + } + + try { + RECOMMENDED_GROUPS = RecommendedDao.getRecommendedGroups(false); + } catch (Exception ex) { + + } + + try { + STAFF_PICK_GROUPS = RecommendedDao.getRecommendedGroups(true); + } catch (Exception ex) { + + } + + try { + RECOMMENDED_ROOMS = RoomDao.getRecommendedRooms(5, 0); + } catch (Exception ex) { + + } + + try { + HIDDEN_RECOMMENDED_ROOMS = RoomDao.getRecommendedRooms(5, 5); + } catch (Exception ex) { + + } + + try { + RECENT_DISCUSSIONS = CommunityDao.getRecentDiscussions(10, 0); + } catch (Exception ex) { + + } + + try { + NEXT_RECENT_DISCUSSIONS = CommunityDao.getRecentDiscussions(10, 10); + } catch (Exception ex) { + + } + + try { + TAG_CLOUD_10 = TagDao.getPopularTags(10); + } catch (Exception ex) { + + } + + try { + TAG_CLOUD_20 = TagDao.getPopularTags(20); + } catch (Exception ex) { + + } + + try { + NEWS = NewsDao.getTop(NewsDateKey.ALL, 5, false, List.of(), 0); + } catch (Exception ex) { + ex.printStackTrace(); + } + + try { + NEWS_STAFF = NewsDao.getTop(NewsDateKey.ALL, 5, true, List.of(), 0); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + if (this.counter.get() % TimeUnit.HOURS.toSeconds(1) == 0) { + try { + ItemManager.reset(); + CatalogueManager.reset(); + } catch (Exception ex) { + + } + } + + // Reload config every 30 seconds + if (this.counter.get() % TimeUnit.SECONDS.toSeconds(30) == 0) { + GameConfiguration.getInstance(new WebSettingsConfigWriter()); + } + + this.resetCounter(); + } + + private void batchClean() { + if (GameConfiguration.getInstance().getInteger("delete.chatlogs.after.x.age") > 0) { + LogDao.deleteChatLogs(GameConfiguration.getInstance().getInteger("delete.chatlogs.after.x.age")); + } + + if (GameConfiguration.getInstance().getInteger("delete.iplogs.after.x.age") > 0) { + LogDao.deleteIpAddressLogs(GameConfiguration.getInstance().getInteger("delete.iplogs.after.x.age")); + } + + if (GameConfiguration.getInstance().getInteger("delete.tradelogs.after.x.age") > 0) { + LogDao.deleteTradeLogs(GameConfiguration.getInstance().getInteger("delete.tradelogs.after.x.age")); + } + } + + private void resetCounter() { + try { + this.counter.incrementAndGet(); + } catch (Exception ex) { + this.counter.set(0); + } + } + + public boolean isServerOnline(String host, int port) { + if (GameConfiguration.getInstance().getBoolean("hotel.check.online")) { + return this.isHostOnline(host, port); + } else { + return true; + } + } + + public boolean isHostOnline(String host, int port) { + try (Socket socket = new Socket(host, port)) { + return true; + } catch (Exception ex) { + return false; + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/template/PresentTest.java b/Havana-Web/src/main/java/org/alexdev/http/template/PresentTest.java new file mode 100644 index 0000000..a6947b7 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/template/PresentTest.java @@ -0,0 +1,30 @@ +package org.alexdev.http.template; + +import com.mitchellbosecke.pebble.error.PebbleException; +import com.mitchellbosecke.pebble.extension.AbstractExtension; +import com.mitchellbosecke.pebble.extension.Test; +import com.mitchellbosecke.pebble.template.EvaluationContext; +import com.mitchellbosecke.pebble.template.EvaluationContextImpl; +import com.mitchellbosecke.pebble.template.PebbleTemplate; + +import java.util.List; +import java.util.Map; + +public class PresentTest extends AbstractExtension implements Test { + + @Override + public boolean apply(Object input, Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) throws PebbleException { + if (!(input instanceof String)) throw new IllegalArgumentException("present test only accepts a string"); + return ((EvaluationContextImpl) context).getScopeChain().containsKey((String) input); + } + + @Override + public List getArgumentNames() { + return null; + } + + @Override + public Map getTests() { + return Map.of("present", this); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/template/TwigTemplate.java b/Havana-Web/src/main/java/org/alexdev/http/template/TwigTemplate.java new file mode 100644 index 0000000..22140f2 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/template/TwigTemplate.java @@ -0,0 +1,147 @@ +package org.alexdev.http.template; + +import com.mitchellbosecke.pebble.PebbleEngine; +import com.mitchellbosecke.pebble.template.PebbleTemplate; +import io.netty.handler.codec.http.HttpHeaderNames; +import org.alexdev.duckhttpd.response.ResponseBuilder; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.ServerConfiguration; +import org.alexdev.http.log.Log; +import org.alexdev.http.template.binders.AlertBinder; +import org.alexdev.http.template.binders.SessionBinder; +import org.alexdev.http.template.binders.SiteBinder; + +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; + +public class TwigTemplate extends Template { + private File file; + private String view; + + private PebbleEngine engine; + private PebbleTemplate compiledTemplate; + private HashMap context; + + public TwigTemplate(WebConnection session) { + super(session); + this.context = new HashMap<>(); + } + + @Override + public void start(String view) { + this.view = view; + + try { + File file = Paths.get(ServerConfiguration.getString("template.directory"), ServerConfiguration.getString("template.name"), view + ".tpl").toFile(); + + if (file.exists() && file.isFile()) { + this.file = file; + String prefix = Path.of(ServerConfiguration.getString("template.directory"), ServerConfiguration.getString("template.name")).toAbsolutePath().toString(); + + this.engine = new PebbleEngine.Builder() + .strictVariables(false) + .autoEscaping(false) + .extension(new PresentTest()) + .build(); + + this.engine.getLoader().setCharset(StringUtil.getCharset().toString()); + this.engine.getLoader().setPrefix(prefix); + + this.compiledTemplate = this.engine.getTemplate(view + ".tpl"); + } else { + throw new Exception("The template view " + view + " does not exist!\nThe path: " + file.getCanonicalPath()); + } + + if (this.webConnection != null) { + if (this.webConnection.session().getBoolean("authenticated") || + this.webConnection.session().getBoolean("authenticatedHousekeeping")) { + PlayerDetails playerDetails = PlayerDao.getDetails(this.webConnection.session().getInt("user.id")); + + if (playerDetails == null) { + this.webConnection.session().delete("authenticated"); + this.webConnection.redirect("/"); + return; + } + + this.set("playerDetails", PlayerDao.getDetails(this.webConnection.session().getInt("user.id"))); + } + } + + } catch (Exception ex) { + if (this.webConnection != null) { + Settings.getInstance().getDefaultResponses().getErrorResponse(this.webConnection, ex); + } else { + Log.getErrorLogger().error("Error: ", ex); + } + } + } + + @Override + public void set(String name, Object value) { + this.context.put(name, value); + } + + @Override + public Object get(String s) { + if (this.context.containsKey(s)) { + return this.context.get(s); + } + + return null; + } + + private void attachBinders() { + this.registerBinder(new SessionBinder()); + this.registerBinder(new SiteBinder()); + + if (this.webConnection != null) { + this.registerBinder(new AlertBinder( + this.webConnection.session().getString("alertMessage"), + this.webConnection.session().getString("alertColour")) + ); + } + } + + public String renderHTML() throws IOException { + this.attachBinders(); + + for (var key : context.keySet()) { + //System.out.println(key); + } + + Writer writer = new StringWriter(); + compiledTemplate.evaluate(writer, context); + String html = writer.toString(); + writer.close(); + + return html; + } + + @Override + public void render() { + try { + var html = this.renderHTML(); + var response = ResponseBuilder.create(html); + + for (var entry : this.webConnection.headers().entrySet()) { + response.headers().add(entry.getKey(), entry.getValue()); + } + + this.webConnection.send(response); + this.webConnection.headers().clear(); + } catch (Exception ex) { + Settings.getInstance().getDefaultResponses().getErrorResponse(this.webConnection, ex); + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/template/binders/AlertBinder.java b/Havana-Web/src/main/java/org/alexdev/http/template/binders/AlertBinder.java new file mode 100644 index 0000000..6b2c193 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/template/binders/AlertBinder.java @@ -0,0 +1,36 @@ +package org.alexdev.http.template.binders; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.template.TemplateBinder; + +public class AlertBinder implements TemplateBinder { + private boolean hasAlert; + private String message; + private String colour; + + public AlertBinder(String message, String colour) { + if (message != null) { + this.hasAlert = true; + this.message = message; + this.colour = colour; + } + } + + @Override + public void onRegister(Template template, WebConnection webConnection) { + template.set("alert", this); + } + + public boolean isHasAlert() { + return hasAlert; + } + + public String getMessage() { + return message; + } + + public String getColour() { + return colour; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/template/binders/SessionBinder.java b/Havana-Web/src/main/java/org/alexdev/http/template/binders/SessionBinder.java new file mode 100644 index 0000000..3bc78ae --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/template/binders/SessionBinder.java @@ -0,0 +1,31 @@ +package org.alexdev.http.template.binders; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.template.TemplateBinder; + +public class SessionBinder implements TemplateBinder { + private boolean loggedIn; + private String currentPage; + + @Override + public void onRegister(Template template, WebConnection webConnection) { + if (webConnection != null) { + this.currentPage = webConnection.session().getString("page"); + + if (webConnection.session().getBoolean("authenticated")) { + this.loggedIn = true; + } + } + + template.set("session", this); + } + + public boolean isLoggedIn() { + return loggedIn; + } + + public String getCurrentPage() { + return currentPage; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/template/binders/SiteBinder.java b/Havana-Web/src/main/java/org/alexdev/http/template/binders/SiteBinder.java new file mode 100644 index 0000000..e367363 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/template/binders/SiteBinder.java @@ -0,0 +1,215 @@ +package org.alexdev.http.template.binders; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.template.Template; +import org.alexdev.duckhttpd.template.TemplateBinder; +import org.alexdev.http.Routes; +import org.alexdev.http.server.Watchdog; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.util.Captcha; +import org.codehaus.plexus.util.StringUtils; + +import java.text.NumberFormat; +import java.util.Locale; + +public class SiteBinder implements TemplateBinder { + private String siteName; + private String sitePath; + + private String loaderGameIp; + private String loaderGamePort; + + private String loaderMusIp; + private String loaderMusPort; + + private String loaderDcr; + private String loaderVariables; + private String loaderTexts; + + private int usersOnline; + private boolean serverOnline; + private String formattedUsersOnline; + + private int visits; + private String housekeepingPath; + private String staticContentPath; + private String habboImagingPath; + + private String loaderFlashBase; + private String loaderFlashSwf; + private String loaderFlashTexts; + private String loaderFlashVariables; + + private String loaderFlashBetaBase; + private String loaderFlashBetaSwf; + private String loaderFlashBetaTexts; + private String loaderFlashBetaVariables; + + private String emailSiteName; + private String emailHotelName; + private String emailStaticPath; + private String furniImagerPath; + + private Captcha captcha; + + @Override + public void onRegister(Template template, WebConnection webConnection) { + this.captcha = new Captcha(); + + this.siteName = GameConfiguration.getInstance().getString("site.name"); + this.sitePath = GameConfiguration.getInstance().getString("site.path"); + this.staticContentPath = GameConfiguration.getInstance().getString("static.content.path"); + this.furniImagerPath = "https://classichabbo.com/imager/furni"; + + this.emailStaticPath = GameConfiguration.getInstance().getString("email.static.content.path"); + this.emailHotelName = StringUtils.capitalise(GameConfiguration.getInstance().getString("site.path").replace("https://", "").replace("http://", "").replace("/", "")); + + this.habboImagingPath = GameConfiguration.getInstance().getString("site.imaging.path");//"https://alex-dev.org"; + + this.loaderGameIp = GameConfiguration.getInstance().getString("loader.game.ip"); + this.loaderGamePort = GameConfiguration.getInstance().getString("loader.game.port"); + + this.loaderMusIp = GameConfiguration.getInstance().getString("loader.mus.ip"); + this.loaderMusPort = GameConfiguration.getInstance().getString("loader.mus.port"); + + this.loaderDcr = GameConfiguration.getInstance().getString("loader.dcr"); + this.loaderVariables = GameConfiguration.getInstance().getString("loader.external.variables"); + this.loaderTexts = GameConfiguration.getInstance().getString("loader.external.texts"); + + this.loaderFlashBase = GameConfiguration.getInstance().getString("loader.flash.base"); + this.loaderFlashSwf = GameConfiguration.getInstance().getString("loader.flash.swf"); + this.loaderFlashTexts = GameConfiguration.getInstance().getString("loader.flash.external.texts"); + this.loaderFlashVariables = GameConfiguration.getInstance().getString("loader.flash.external.variables"); + + this.loaderFlashBetaBase = GameConfiguration.getInstance().getString("loader.flash.beta.base"); + this.loaderFlashBetaSwf = GameConfiguration.getInstance().getString("loader.flash.beta.swf"); + this.loaderFlashBetaTexts = GameConfiguration.getInstance().getString("loader.flash.beta.external.texts"); + this.loaderFlashBetaVariables = GameConfiguration.getInstance().getString("loader.flash.beta.external.variables"); + + this.serverOnline = Watchdog.IS_SERVER_ONLINE; + this.usersOnline = Watchdog.USERS_ONLNE; + this.formattedUsersOnline = NumberFormat.getNumberInstance(Locale.US).format(this.usersOnline); + + this.visits = Watchdog.LAST_VISITS; + this.housekeepingPath = Routes.HOUSEKEEPING_PATH; + + template.set("site", this); + template.set("gameConfig", GameConfiguration.getInstance()); + } + + public String getSiteName() { + return siteName; + } + + public String getSitePath() { + return sitePath; + } + + public String getLoaderGameIp() { + return loaderGameIp; + } + + public String getLoaderGamePort() { + return loaderGamePort; + } + + public String getLoaderMusIp() { + return loaderMusIp; + } + + public String getLoaderMusPort() { + return loaderMusPort; + } + + public String getLoaderDcr() { + return loaderDcr; + } + + public String getLoaderVariables() { + return loaderVariables; + } + + public String getLoaderTexts() { + return loaderTexts; + } + + public int getUsersOnline() { + return usersOnline; + } + + public boolean isServerOnline() { + return serverOnline; + } + + public String getFormattedUsersOnline() { + return formattedUsersOnline; + } + + public int getVisits() { + return visits; + } + + public String getHousekeepingPath() { + return housekeepingPath; + } + + public String getStaticContentPath() { + return staticContentPath; + } + + public String getHabboImagingPath() { + return habboImagingPath; + } + + public String getLoaderFlashBase() { + return loaderFlashBase; + } + + public String getLoaderFlashSwf() { + return loaderFlashSwf; + } + + public String getLoaderFlashTexts() { + return loaderFlashTexts; + } + + public String getLoaderFlashVariables() { + return loaderFlashVariables; + } + + public String getLoaderFlashBetaBase() { + return loaderFlashBetaBase; + } + + public String getLoaderFlashBetaSwf() { + return loaderFlashBetaSwf; + } + + public String getLoaderFlashBetaTexts() { + return loaderFlashBetaTexts; + } + + public String getLoaderFlashBetaVariables() { + return loaderFlashBetaVariables; + } + + public String getEmailSiteName() { + return emailSiteName; + } + + public String getEmailHotelName() { + return emailHotelName; + } + + public String getEmailStaticPath() { + return emailStaticPath; + } + + public String getFurniImagerPath() { + return furniImagerPath; + } + + public Captcha getCaptcha() { + return captcha; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/BBCode.java b/Havana-Web/src/main/java/org/alexdev/http/util/BBCode.java new file mode 100644 index 0000000..ee0c4ae --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/BBCode.java @@ -0,0 +1,79 @@ +package org.alexdev.http.util; + +import org.alexdev.havana.util.config.GameConfiguration; + +public class BBCode { + public static String format(String message, boolean allowImages) { + message = parse(message, allowImages); + String siteContentPath = GameConfiguration.getInstance().getString("static.content.path"); + /*message = message.replace(":)", " Smiley "); + message = message.replace(";)", " Smiley "); + message = message.replace(":P", " Smiley "); + message = message.replace(";P", " Smiley "); + message = message.replace(":p", " Smiley "); + message = message.replace(";p", " Smiley "); + message = message.replace("(L)", " Smiley "); + message = message.replace("(l)", " Smiley "); + message = message.replace(":o", " Smiley "); + message = message.replace(":O", " Smiley ");*/ + return message; + } + + public static String normalise(String message) { + message = message.replaceAll("\r", "\n"); + message = message.replaceAll("\\[/quote]\n\n", "[/quote]"); + message = message.replaceAll("\\[/quote]\n", "[/quote]"); + /*message = message.replaceAll("\n\n", "\n"); + message = message.replaceAll("\n\n", "\n");*/ + message = message.replaceAll("\n", "[br]"); + return message; + } + + private static String parse(String message, boolean allowImages) { + String sitePath = GameConfiguration.getInstance().getString("site.path"); + + if (message.contains("javascript:") || + message.contains("document.write")) { + message = message.replace("javascript:", ""); + message = message.replace("document.write", ""); + } + + message = message.replaceAll("\\[b](.*?)\\[/b]", "$1"); + message = message.replaceAll("\\[i](.*?)\\[/i]", "$1"); + message = message.replaceAll("\\[u](.*?)\\[/u]", "$1"); + message = message.replaceAll("\\[s](.*?)\\[/s]", "$1"); + message = message.replaceAll("\\[strike](.*?)\\[/strike]", "$1"); + message = message.replaceAll("\\[link=(.*?)](.*?)\\[/link]", "$2"); + message = message.replaceAll("\\[url=(.*?)](.*?)\\[/url]", "$2"); + message = message.replaceAll("\\[color=(orange|red|yellow|green|cyan|blue|gray|black|white)](.*?)\\[/color]", "$2"); + message = message.replaceAll("\\[color=(#[0-9a-fA-F]{6})](.*?)\\[/color]", "$2"); + message = message.replaceAll("\\[size=small](.*?)\\[/size]", "$1"); + message = message.replaceAll("\\[size=large](.*?)\\[/size]", "$1"); + message = message.replaceAll("\\[code](.*?)\\[/code]", "
      $1
      "); + message = message.replaceAll("\\[habbo=(.*?)](.*?)\\[/habbo]", "$2"); + message = message.replaceAll("\\[room=(.*?)](.*?)\\[/room]", "$2"); + message = message.replaceAll("\\[group=(.*?)](.*?)\\[/group]", "$2"); + + for (int i = 0; i < 10; i++) { + message = message.replaceAll("\\[quote](.*?)\\[/quote]", "
      $1
      "); + } + + message = message.replaceAll("\\[br]", "
      "); + + if (allowImages) { + message = message.replaceAll("\\[img=(.*?)](.*?)\\[/img]", "\"$1\""); + message = message.replaceAll("\\[img](.*?)\\[/img]", ""); + + message = message.replaceAll("\\[img height='(.*?)' width='(.*?)'](.*?)\\[/img]", ""); + message = message.replaceAll("\\[img](.*?)\\[/img]", ""); + + message = message.replaceAll("\\[article_images](.*?)\\[/article_images]", "
      $1
      "); + message = message.replaceAll("\\[article_image](.*?)\\[/article_image]", ""); + message = message.replaceAll("\\[article_image x=(.*?) y=(.*?)](.*?)\\[/article_image]", ""); + message = message.replaceAll("\\[center](.*?)\\[/center]", "
      $1
      "); + message = message.replace("

      ", "
      "); + } + + return message; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/Captcha.java b/Havana-Web/src/main/java/org/alexdev/http/util/Captcha.java new file mode 100644 index 0000000..4965460 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/Captcha.java @@ -0,0 +1,200 @@ +/* +Copyright 2009-2016 Igor Polevoy + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package org.alexdev.http.util; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.apache.commons.codec.binary.Hex; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Locale; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; + +/** + * This is a simple captcha class, use it to generate a random string and then to create an image of it. + * + * @author Igor Polevoy + */ +public class Captcha { + private static boolean showGrid = false; + private static int width = 200; + private static int height = 50; + private static int gridSize = 11; + private static int fontSize = 45; + private static int rotationAmplitude = 15; + private static int scaleAmplitude = 15; + + public Captcha(){} + + public String createHash() { + MessageDigest messageDigest = null; + + try { + messageDigest = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException e) { + return null; + } + + String str = generateText(32); + + messageDigest.reset(); + messageDigest.update(str.getBytes(StandardCharsets.UTF_8)); + final byte[] resultByte = messageDigest.digest(); + final String result = new String(Hex.encodeHex(resultByte)); + return result; + } + + /** + * Generates a random alpha-numeric string of eight characters. + * + * @return random alpha-numeric string of eight characters. + */ + public static String generateText(int length) { + + char[] data = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', + 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', + 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', + 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', + '7', '8', '9'}; + + char[] index = new char[length - 1]; + + Random r = new Random(); + int i = 0; + + for (i = 0; i < (index.length); i++) { + int ran = r.nextInt(data.length); + index[i] = data[ran]; + } + return new String(index).toLowerCase(); + } + + /** + * Generates a PNG image of text 180 pixels wide, 40 pixels high with white background. + * + * @param text expects string size eight (8) characters. + * @return byte array that is a PNG image generated with text displayed. + */ + public static byte[] generateImage(String text) { + if (text == null || text.length() == 0) { + throw new IllegalArgumentException("No captcha text given"); + } + + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + Graphics2D g2d = image.createGraphics(); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g2d.setBackground(Color.WHITE); + g2d.setColor(Color.BLACK); + + clearCanvas(g2d); + + if (showGrid) { + drawGrid(g2d); + } + + for(int i = 0; i < 8; i++) { + int oldX = ThreadLocalRandom.current().nextInt(0, width); + int oldY = ThreadLocalRandom.current().nextInt(0, height); + + int newX = ThreadLocalRandom.current().nextInt(0, height); + int newY = ThreadLocalRandom.current().nextInt(0, height); + + g2d.drawLine(oldX, oldY, newX, newY); + } + + int xPos = 20; + + for (char ch : text.toCharArray()) { + int charMaxWidth = (width / text.length()) - ThreadLocalRandom.current().nextInt(0, 20); + drawCharacter(g2d, ch, xPos, charMaxWidth); + xPos += charMaxWidth; + } + + g2d.dispose(); + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + try { + ImageIO.write(image, "png", bout); + } catch (Exception e) { + throw new RuntimeException(e); + } + return bout.toByteArray(); + } + + private static void drawCharacter(Graphics2D g2d, char ch, int x, int boxWidth) { + Font normalFont = new Font("Arial", Font.PLAIN, fontSize); + Font boldFont = new Font("Arial", Font.BOLD, fontSize); + + double degree = (ThreadLocalRandom.current().nextDouble() * rotationAmplitude * 2) - rotationAmplitude; + double scale = 1 - (ThreadLocalRandom.current().nextDouble() * scaleAmplitude / 100); + + Graphics2D cg2d = (Graphics2D) g2d.create(); + + if (ThreadLocalRandom.current().nextBoolean()) { + cg2d.setFont(normalFont);//fontSize)); + } else { + cg2d.setFont(boldFont); + } + + cg2d.translate(x + (boxWidth / 2), height / 2); + cg2d.rotate(degree * Math.PI / 90); + cg2d.scale(scale, scale); + + FontMetrics fm = cg2d.getFontMetrics(); + int charWidth = fm.charWidth(ch); + int charHeight = fm.getAscent() + fm.getDescent(); + + cg2d.drawString(String.valueOf(ch), -(charWidth / 2), fm.getAscent() - (charHeight / 2)); + + cg2d.dispose(); + } + + /** + * Clears the canvas. + */ + private static void clearCanvas(Graphics2D g2d) { + g2d.clearRect(0, 0, width, height); + } + + /** + * Draws the background grid. + */ + private static void drawGrid(Graphics2D g2d) { + for (int y = 2; y < height; y += gridSize) { + g2d.drawLine(0, y, width - 1, y); + } + + for (int x = 2; x < width; x += gridSize) { + g2d.drawLine(x, 0, x, height -1); + } + } + + public static boolean matches(WebConnection webConnection, String captcha) { + String captchaGenerated = webConnection.session().getString("captcha-text"); + + if (captchaGenerated == null || captchaGenerated.isBlank()) + return false; + + return captchaGenerated.equals(captcha); + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/ConfigEntry.java b/Havana-Web/src/main/java/org/alexdev/http/util/ConfigEntry.java new file mode 100644 index 0000000..3b53e0a --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/ConfigEntry.java @@ -0,0 +1,27 @@ +package org.alexdev.http.util; + +public class ConfigEntry { + private String key; + private String value; + + public ConfigEntry(String key, String value) { + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/EmailUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/EmailUtil.java new file mode 100644 index 0000000..f0e8e67 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/EmailUtil.java @@ -0,0 +1,132 @@ +package org.alexdev.http.util; + +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.havana.util.config.GameConfiguration; +import org.alexdev.http.HavanaWeb; +import org.alexdev.http.dao.EmailDao; +import org.alexdev.http.template.TwigTemplate; +import org.apache.commons.validator.routines.EmailValidator; + +import javax.mail.*; +import javax.mail.internet.*; +import java.io.IOException; +import java.util.Properties; + +public class EmailUtil { + private static final long EMAIL_COOLDOWN = 2*60; + + public static boolean send(WebConnection webConnection, String targetEmail, String subject, String renderedHTML) { + if (!GameConfiguration.getInstance().getBoolean("email.smtp.enable")) { + return true; + } + + if (!EmailValidator.getInstance().isValid(targetEmail)) { + return false; + } + + if (webConnection.session().contains("lastEmailTime")) { + long lastEmailTime = Long.parseLong(webConnection.session().getString("lastEmailTime")) + EMAIL_COOLDOWN; + + if (lastEmailTime > DateUtil.getCurrentTimeSeconds()) { + webConnection.session().set("alertMessage", "Please wait a few minutes before sending an email again"); + webConnection.session().set("alertColour", "red"); + return false; + } + } + + webConnection.session().set("lastEmailTime", String.valueOf(DateUtil.getCurrentTimeSeconds())); + + HavanaWeb.getExecutor().execute(() -> { + try { + Properties prop = new Properties(); + prop.put("mail.smtp.auth", true); + prop.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); + prop.put("mail.smtp.socketFactory.fallback","false"); + prop.put("mail.smtp.socketFactory.port", "465"); + prop.put("mail.smtp.host", GameConfiguration.getInstance().getString("email.smtp.host")); + prop.put("mail.smtp.port", GameConfiguration.getInstance().getString("email.smtp.port")); + prop.put("mail.smtp.connectiontimeout", "5000"); + prop.put("mail.smtp.timeout", "5000"); + + Session session = Session.getInstance(prop, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + String username = GameConfiguration.getInstance().getString("email.smtp.login.username"); + String password = GameConfiguration.getInstance().getString("email.smtp.login.password"); + return new PasswordAuthentication(username, password); + } + }); + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(GameConfiguration.getInstance().getString("email.smtp.from.email"), GameConfiguration.getInstance().getString("email.smtp.from.name"))); + message.setRecipients( + Message.RecipientType.TO, InternetAddress.parse(targetEmail)); + message.setSubject(subject); + + MimeBodyPart mimeBodyPart = new MimeBodyPart(); + mimeBodyPart.setContent(renderedHTML, "text/html"); + + Multipart multipart = new MimeMultipart(); + multipart.addBodyPart(mimeBodyPart); + + message.setContent(multipart); + Transport.send(message); + } catch (Exception ex) { + ex.printStackTrace(); + } + }); + + return true; + } + + public static String renderRegistered(int playerId, String playerName, String playerEmail, String activationCode) { + var tpl = new TwigTemplate(null); + tpl.start("account/email/email_registered"); + tpl.set("playerId", playerId); + tpl.set("playerName", playerName); + tpl.set("playerEmail", playerEmail); + tpl.set("activationCode", activationCode); + try { + return tpl.renderHTML(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + public static String renderActivate(int playerId, String playerName, String playerEmail, String activationCode) { + var tpl = new TwigTemplate(null); + tpl.start("account/email/email_activate"); + tpl.set("playerId", playerId); + tpl.set("playerName", playerName); + tpl.set("playerEmail", playerEmail); + tpl.set("activationCode", activationCode); + try { + return tpl.renderHTML(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + public static String renderPasswordRecovery(int playerId, String playerName, String recoveryCode) { + var tpl = new TwigTemplate(null); + tpl.start("account/email/email_recovery"); + tpl.set("playerId", playerId); + tpl.set("playerName", playerName); + tpl.set("recoveryCode", recoveryCode); + try { + return tpl.renderHTML(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } + + public static boolean isAlreadyTradePass(int userId, String email) { + return EmailDao.hasUserTradePass(userId, email); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/GroupUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/GroupUtil.java new file mode 100644 index 0000000..9abe593 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/GroupUtil.java @@ -0,0 +1,46 @@ +package org.alexdev.http.util; + +import io.netty.handler.codec.http.HttpResponseStatus; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.duckhttpd.util.config.Settings; +import org.alexdev.havana.dao.mysql.GroupDao; +import org.alexdev.havana.game.groups.Group; +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; + +public class GroupUtil { + public static void refreshGroup(int groupId) { + RconUtil.sendCommand(RconHeader.REFRESH_GROUP, new HashMap<>() {{ + put("groupId", String.valueOf(groupId)); + }}); + } + + public static Group resolve(WebConnection webConnection) { + String match = webConnection.getMatches().get(0); + + String groupAlias = null; + Group group = null; + + if (StringUtils.isNumeric(match) && webConnection.getRouteRequest().endsWith("/id/discussions")) { + group = GroupDao.getGroup(Integer.parseInt(match)); + + if (group == null) { + webConnection.send(Settings.getInstance().getDefaultResponses().getResponse(HttpResponseStatus.NOT_FOUND, webConnection)); + return null; + } + + if (!group.getAlias().isBlank()) { + webConnection.redirect("/groups/" + group.getAlias() + "/discussions"); + return null; + } + + } else if (!webConnection.getRouteRequest().endsWith("/id/discussions")){ + groupAlias = match; + group = GroupDao.getGroupByAlias(groupAlias); + } + + return group; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/HomeUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/HomeUtil.java new file mode 100644 index 0000000..f1a32f9 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/HomeUtil.java @@ -0,0 +1,47 @@ +package org.alexdev.http.util; + +import java.util.concurrent.ThreadLocalRandom; + +public class HomeUtil { + public static String getRandomAd() { + String[] advertisements = new String[] { + "habbo_banner_1.gif", + "Habbohome_phold_160x600.gif", + "Habbohome_phold_160x600.gif", + "Habbohome_phold_160x600.gif", + "bb2_placeholder.gif", + "SciFi_spaceholder_160x600_001.gif", + "HC2_placeh_160x600.gif", + "battleball_reddevil_br.gif", + "HC_Promo_160x600_GIF01.gif" + + }; + + if (advertisements.length > 0) { + return advertisements[ThreadLocalRandom.current().nextInt(advertisements.length)]; + } + + return null; + } + + public static String getRandomValentinesImage() { + String[] advertisements = new String[] { + "valentines_1_chanaho.png", + "valentines_2_ultra.png", + "valentines_3_santi13.png", + "valentines_4_santi13.png", + "valentines_5_rasta.png" + + }; + + if (advertisements.length > 0) { + return advertisements[ThreadLocalRandom.current().nextInt(advertisements.length)]; + } + + return null; + } + + public static int getStickerLimit(boolean hasClubSubscription) { + return hasClubSubscription ? 350 : 200; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/HousekeepingUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/HousekeepingUtil.java new file mode 100644 index 0000000..9eea53d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/HousekeepingUtil.java @@ -0,0 +1,19 @@ +package org.alexdev.http.util; + +import org.alexdev.havana.dao.mysql.RoomDao; + +public class HousekeepingUtil { + public String getRoomName(int roomId) { + var room = RoomDao.getRoomById(roomId); + + if (room == null) { + return "ERROR"; + } + + return room.getData().getName(); + } + + public String formatNewsStory(String fullstory) { + return BBCode.format(HtmlUtil.escape(BBCode.normalise(fullstory)), true); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/HtmlUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/HtmlUtil.java new file mode 100644 index 0000000..a67acaa --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/HtmlUtil.java @@ -0,0 +1,110 @@ +package org.alexdev.http.util; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.io.IOUtils; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.*; +import java.net.URL; +import java.nio.charset.Charset; + +public class HtmlUtil { + /** + * Strip HTML tags. + * + * @param str the string to strip + * @return the new string + */ + public static String removeHtmlTags(String str) { + return str.replaceAll("\\<[^>]*>",""); + } + + /** + * Conver text to HTML. + * + * @param s the string to convert + * @return the converted text + */ + public static String escape(String s) { + StringBuilder builder = new StringBuilder(); + boolean previousWasASpace = false; + + for (char c : s.toCharArray()) { + if (c == ' ') { + if (previousWasASpace) { + builder.append(" "); + previousWasASpace = false; + continue; + } + previousWasASpace = true; + } else { + previousWasASpace = false; + } + + switch (c) { + case '<': + builder.append("<"); + break; + case '>': + builder.append(">"); + break; + case '&': + builder.append("&"); + break; + case '"': + builder.append("""); + break; + case '\n': + builder.append("
      "); + break; + // We need Tab support here, because we print StackTraces as HTML + case '\t': + builder.append("     "); + break; + default: + if (c < 128) { + builder.append(c); + } else { + builder.append("&#").append((int) c).append(";"); + } + } + } + return builder.toString(); + } + + public static String createFigureLink(String figure, String sex) { + return "https://cdn.classichabbo.com/habbo-imaging/avatarimage?figure=" + figure + "&size=s&direction=4&head_direction=4&crr=0&gesture=sml&frame=1"; + } + + public static String encodeToString(BufferedImage image, String type) { + String imageString = null; + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + + try { + ImageIO.write(image, type, bos); + byte[] imageBytes = bos.toByteArray(); + + imageString = new String(Base64.encodeBase64(imageBytes)); + + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + return imageString; + } + + public static String getResponse(String url) { + InputStream in = null; + String val = null; + + try { + in = new URL(url).openStream(); + val = IOUtils.toString( in, Charset.defaultCharset()); + } catch (Exception ignored) { + IOUtils.closeQuietly(in); + } + + return val; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/RconUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/RconUtil.java new file mode 100644 index 0000000..a1479b2 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/RconUtil.java @@ -0,0 +1,14 @@ +package org.alexdev.http.util; + +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.http.HavanaWeb; +import org.alexdev.http.util.rcon.RconTask; + +import java.util.Map; + +public class RconUtil { + public static void sendCommand(RconHeader header, Map parameters) { + RconTask rconTask = new RconTask(header, parameters); + HavanaWeb.getExecutor().execute(rconTask); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/RegisterUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/RegisterUtil.java new file mode 100644 index 0000000..6078fa5 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/RegisterUtil.java @@ -0,0 +1,54 @@ +package org.alexdev.http.util; + +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.wordfilter.WordfilterManager; +import org.alexdev.http.controllers.habblet.NameCheckController; +import org.apache.commons.validator.routines.EmailValidator; + +public class RegisterUtil { + public static boolean isValidName(String username) { + return getNameErrorCode(username) == 0; + } + + public static int getNameErrorCode(String username) { + if (!WordfilterManager.filterSentence(username).equals(username)) { + return 6; + } else if (!NameCheckController.hasAllowedCharacters(username.toLowerCase(), "1234567890qwertyuiopasdfghjklzxcvbnm-+=?!@:.,$")) { + return 5; + } else if (username.equalsIgnoreCase("admin") || + username.equalsIgnoreCase("mod") || + username.equalsIgnoreCase("staff") || + username.equalsIgnoreCase("moderator") || + username.equalsIgnoreCase("vip") || + username.toLowerCase().startsWith("admin-") || + username.toLowerCase().startsWith("admin=") || + username.toLowerCase().startsWith("mod-") || + username.toLowerCase().startsWith("mod=") || + username.toLowerCase().startsWith("bot-") || + username.toLowerCase().startsWith("bot=") || + username.toLowerCase().startsWith("vip=") || + username.toLowerCase().startsWith("vip-")) { + return 4; + } else if (username.length() > 24) { + return 3; + } else if (username.length() < 1) { + return 2; + } else if (PlayerDao.getId(username) > 0) { + return 1; + } + + return 0; + } + + public static boolean isValidEmail(String email) { + if (!EmailValidator.getInstance().isValid(email)) { + return false; + } + + if (PlayerDao.getByEmail(email) > 0) { + return false; + } + + return true; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/SessionUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/SessionUtil.java new file mode 100644 index 0000000..b29794a --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/SessionUtil.java @@ -0,0 +1,117 @@ +package org.alexdev.http.util; + +import com.goterl.lazysodium.interfaces.PwHash; +import org.alexdev.duckhttpd.server.connection.WebConnection; +import org.alexdev.havana.dao.mysql.PlayerDao; +import org.alexdev.havana.game.player.PlayerDetails; +import org.alexdev.havana.util.DateUtil; +import org.alexdev.http.dao.SessionDao; + +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +public class SessionUtil { + public static final String PLAYER = "player"; + public static final String USER_ID = "user.id"; + public static final String LOGGED_IN = "authenticated"; + public static final String LOGGED_IN_HOUSKEEPING = "authenticatedHousekeeping"; + public static final String MACHINE_ID = "SECURITY_KEY"; + + public static String REMEMEBER_TOKEN_NAME = "remember_token"; + public static int REMEMBER_TOKEN_AGE_SECONDS = (int) TimeUnit.DAYS.toSeconds(31); + public static int REAUTHENTICATE_TIME = (int) TimeUnit.MINUTES.toSeconds(30); + + public static boolean login(WebConnection webConnection, String username, String password, boolean deleteAuthVariables) { + PlayerDetails details = new PlayerDetails(); + boolean hasError; + + if (username.isBlank() || password.isBlank()) { + hasError = true; + } else { + hasError = !PlayerDao.login(details, username, password); + } + + if (hasError) { + webConnection.session().set("alertMessage", "Incorrect username or password\n"); + + // Delete user login session + if (deleteAuthVariables) { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + } + return false; + } else { + webConnection.session().set("authenticated", true); + webConnection.session().set("captcha.invalid", false); + webConnection.session().set("user.id", details.getId() + ""); + webConnection.session().set("clientAuthenticate", false); + webConnection.session().set("lastRequest", String.valueOf(DateUtil.getCurrentTimeSeconds() + SessionUtil.REAUTHENTICATE_TIME)); + + boolean rememberMe = webConnection.post().getString("_login_remember_me").equals("true"); + + if (rememberMe) { + String rememberMeToken = String.valueOf(UUID.randomUUID()); + webConnection.cookies().set(SessionUtil.REMEMEBER_TOKEN_NAME, rememberMeToken, DateUtil.getCurrentTimeSeconds() + SessionUtil.REMEMBER_TOKEN_AGE_SECONDS, TimeUnit.SECONDS); + SessionDao.setRememberToken(details.getId(), rememberMeToken); + } else { + webConnection.cookies().set(SessionUtil.REMEMEBER_TOKEN_NAME, "", 0, TimeUnit.SECONDS); // Clear cookie + } + + webConnection.cookies().set("vote_stamp", "", 0, TimeUnit.SECONDS); // Clear cookie + + var pair = details.isBanned(); + + if (pair != null) { + webConnection.redirect("/account/banned"); + } + + return true; + } + } + + public static void logout(WebConnection webConnection) { + // Delete cookies + if (webConnection.cookies().exists(SessionUtil.REMEMEBER_TOKEN_NAME)) { + webConnection.cookies().set(SessionUtil.REMEMEBER_TOKEN_NAME, "", 0, TimeUnit.SECONDS); + SessionDao.clearRememberToken(webConnection.session().getInt("user.id")); + } + + // Delete user login session + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.session().delete("minimailLabel"); + webConnection.session().delete("lastBrowsedPage"); + + } + + public static void checkCookie(WebConnection webConnection) { + if (!webConnection.cookies().exists(SessionUtil.REMEMEBER_TOKEN_NAME)) { + return; + } + + String token = webConnection.cookies().get(SessionUtil.REMEMEBER_TOKEN_NAME); + + if (token == null || token.isBlank()) { + return; + } + + int userId = SessionDao.getRememberToken(token); + + if (userId > 0) { + webConnection.session().set("authenticated", true); + webConnection.session().set("captcha.invalid", false); + webConnection.session().set("user.id", userId); + + if (webConnection.request().uri().equals("/home") || + webConnection.request().uri().equals("/index") || + webConnection.request().uri().equals("/")) { + webConnection.redirect("/me"); + } + } else { + webConnection.session().delete("user.id"); + webConnection.session().delete("authenticated"); + webConnection.cookies().set(SessionUtil.REMEMEBER_TOKEN_NAME, "", 0, TimeUnit.SECONDS); + } + } + +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/TagUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/TagUtil.java new file mode 100644 index 0000000..0f7b644 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/TagUtil.java @@ -0,0 +1,590 @@ +package org.alexdev.http.util; + +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; + +public class TagUtil { + public static String getRandomQuestion() { + var questions = getRandomQuestions(); + + String question = questions.get(ThreadLocalRandom.current().nextInt(0, questions.size())); + //question = question.toLowerCase(); + //question = question.substring(0, 1).toUpperCase() + question.substring(1); + + return question; + + } + public static List getRandomQuestions() { + var stringList = new String[] { + "Dog or Cat?", + "Netflix or YouTube?", + "Phone Call or Text?", + "Toast or Eggs?", + "Cardio or Weights?", + "Facebook or Twitter?", + "Ice Cream Cone or Snow Cone?", + "Mobile Games or Console Games?", + "Music or Podcasts?", + "iOS or Android?", + "Form or Function?", + "Pop or Indie?", + "Cake or Pie?", + "Swimming or Sunbathing?", + "High-tech or Low-tech?", + "Big Party or Small Gathering?", + "New Clothes or New Phone?", + "Rich Friend or Loyal Friend?", + "Football or Basketball?", + "Work Hard or Play Hard?", + "Nice Car or Nice Home Interior?", + "What’s worse: Laundry or Dishes?", + "Jogging or Hiking?", + "Bath or Shower?", + "Sneakers or Sandals?", + "Glasses or Contacts?", + "Hamburger or Taco?", + "Couch or Recliner?", + "Online Shopping or Shopping in a Store?", + "Receive: Email or Letter?", + "Passenger or Driver?", + "Tablet or Computer?", + "Intelligent or Funny?", + "Car or Truck?", + "Blue or Red?", + "Money or Free Time?", + "Amusement Park or Day at the Beach?", + "At a movie: Candy or Popcorn?", + "Pen or Pencil?", + "Toilet paper: Over or Under?", + "Cups in the cupboard: Right Side Up or Up Side Down?", + "Pancake or Waffle?", + "Coke or Pepsi?", + "Coffee Cup or Thermos?", + "Blinds or Curtain?", + "Train or Plane?", + "Phone or Phablet?", + "Iced Coffee or Hot Coffee?", + "Meat or Vegetables?", + "International Vacation or a New TV?", + "Save or Spend?", + "Honesty or Other’s Feelings?", + "Coffee or Tea?", + "TV or Book?", + "Movie at Home or Movie at the Theater?", + "Ocean or Mountains?", + "Horror Movie or Comedy Movie?", + "City or Countryside?", + "Winter or Summer?", + "Mac or PC?", + "Console Gaming or PC Gaming?", + "Soup or Sandwich?", + "Card Game or Board Game?", + "Classical Art or Modern Art?", + "Beer or Wine?", + "Dine In or Delivery?", + "Sweater or Hoodie?", + "Comic Book or Comic Strips?", + "Motorcycle or Bicycle?", + "Book or eBook?", + "Ninjas or Pirates?", + "TV Shows or Movies?", + "Fish or steak?", + "Eggs or oatmeal?", + "Coffee or tea?", + "Coke or Pepsi?", + "Beer or mixed drinks?", + "Juice or water?", + "White or wheat bread?", + "Cake or donuts?", + "Vanilla or chocolate?", + "Ice cream or sherbet?", + "Pork or chicken?", + "Bacon or sausage?", + "Scrambled eggs or over easy?", + "Over easy or poached eggs?", + "Cream and sugar or black coffee?", + "Well done or rare?", + "Corn or peas?", + "Salad or squash?", + "Green beans or broccoli?", + "Black beans or kidney beans?", + "Pinto or Lima beans?", + "Frozen veggies or canned?", + "Pancakes or waffles?", + "Pastries or confectionaries?", + "Burgers or seafood?", + "Food truck or diner?", + "Ginger ale or Sprite?", + "Orange soda or Grape?", + "Trail mix or candy bar?", + "Payday or 5th avenue?", + "Reese’s peanut butter cup or Hershey’s bar?", + "Almond Joy or Snickers?", + "Three Musketeers or Peppermint Patty?", + "O’Henry or Baby Ruth?", + "Apples or bananas?", + "Oranges or peaches?", + "Watermelon or plums?", + "Cantaloupe or grapefruit?", + "Cake or pie?", + "Pastries or cookies?", + "Hash browns or home fries?", + "Jello or pudding?", + "Cherry or raspberry?", + "Grape or orange?", + "Lime or blueberry?", + "Slim Jim or Jerky?", + "Cupcake or Dingdong?", + "Swiss cake or Hoho?", + "Gum or Lifesavers?", + "Tic-tac or Altoids?", + "Tootsie rolls or Skittles?", + "Licorice or fruit roll ups?", + "Popcorn or peanuts?", + "Hot pretzels or nachos?", + "Grilled or pan fried?", + "Deep fried or baked?", + "Apple or cherry pie?", + "Sugar or chocolate chip cookies?", + "Pumpkin or blueberry?", + "Pie or cobbler?", + "Breaded or plain?", + "Iced or hot coffee?", + "Hot or iced tea?", + "Sweetened tea or unsweetened?", + "Chinese or Italian?", + "Indian or Thai?", + "American or Mexican?", + "Sweet or sour?", + "Eat in or dine out?", + "Cook at home or take out?", + "Cheeseburger or calamari?", + "Hot dog or taco?", + "Stew or chili?", + "Sweet potato or French fries?", + "Baked potato or onion rings?", + "Ketchup or mustard?", + "Mayo or salad dressing?", + "Sandwich or soup?", + "Ribs or wings?", + "Family run or chain restaurant?", + "Cook out in backyard or catered?", + "Wine or beer?", + "Jack Daniels or Jim Beam?", + "Irish coffee or plain coffee?", + "Orange juice or grapefruit juice?", + "Re-fried beans or rice?", + "Tacos or chicken parmigiana?", + "Pizza or subs?", + "Peanuts or almonds?", + "Cashews or hazelnut?", + "Walnuts or sunflower seeds?", + "Garlic or onion?", + "Bagels or English muffins", + "Poppy seed or onion rolls?", + "Cinnamon or blueberry bagels?", + "Everything or sesame seed bagels?", + "Thousand Island or Ranch?", + "Catalina or vinaigrette?", + "Onion dip or bacon horseradish dip?", + "Cheese fries or chili fries?", + "French fries or onion rings?", + "Cheese and crackers or pretzels?", + "Chips with dip or vegetables and dip?", + "Fruit or vegetables?", + "Dinner rolls or croissant rolls?", + "Biscuits or bread?", + "Whole wheat or rye?", + "Whole grain or white?", + "Corn muffin or blueberry?", + "Pastrami or bologna?", + "Italian sub or ham and cheese?", + "Turkey and cheese or roast beef sub?", + "Sub roll or ciabatta roll?", + "Sour cream and onion chips or barbecue?", + "Cheddar and sour cream or salt and vinegar?", + "Corn chips or Doritos?", + "Action movies or dramas?", + "Comedy or thrillers?", + "Romantic or documentaries?", + "Reality or fiction?", + "Family or adult movies?", + "Netflix or Hulu?", + "Cable or satellite?", + "Watch live or recorded so you don’t have to watch commercials?", + "Television or book?", + "Detective novels or super heroes?", + "Romance novels or spy novels?", + "Horror stories or mysteries?", + "Rock or country?", + "Pop or reggae?", + "Choose classical or rap?", + "Smooth jazz or techno?", + "Standards or classic country like Johnny Cash?", + "Bound book or Ebook?", + "Newspaper or online news blog?", + "Play or musical?", + "Dancing or cooking classes?", + "Concert or play?", + "Massage or facial?", + "Bowling or theater?", + "Paint ball or arcade?", + "Crocheting or knitting?", + "Cards or board games?", + "Carnival or circus?", + "Roller coasters or ferris wheel?", + "Woodworking or leather working?", + "Darts or pool?", + "Gardening or walking?", + "Jeans and tee or a suit?", + "Dress or pants?", + "Formal or casual?", + "Sneakers or dress shoes?", + "Sandals or high heels?", + "Make up or none?", + "Black and white décor?", + "Elegant or casual interior?", + "Eclectic or organized interior?", + "Leather or fabric?", + "Sneakers or sandals?", + "Flip flops or water shoes?", + "Paintings or photos?", + "Black and white or color?", + "Drapes or blinds?", + "Plants or collectibles?", + "Chandelier or lamps?", + "Paper or paneling?", + "Paint or paper?", + "Rugs or hardwood floors?", + "Modern or rustic?", + "Retro or antique?", + "Ranch style or two-story home?", + "Farmhouse kitchen or galley style?", + "Car or truck?", + "European or lake front style home?", + "Riding mower or push?", + "Apartment or home?", + "Work boots or cowboy boots?", + "Country or city?", + "Rural or suburban?", + "Farm or just an acre or two?", + "Neutral colors or bold?", + "Stoneware or China?", + "Colonial or cottage style home?", + "Candles or wax melts?", + "Fireplace or furnace?", + "Wicker or wood?", + "Metal or wood?", + "Wood or gas for a cook stove?", + "Butcher block or granite counter-tops?", + "Stainless steel or Teflon cookware?", + "Skylights or mirrored wall?", + "Spiral or straight stairs?", + "Shag or tight pile?", + "Leather or fabric?", + "Wood or metal and glasses?", + "Hardwood chairs or padded?", + "Houseboat or yacht?", + "Landscaped yard or just lawn?", + "Game room or sewing room?", + "Farmhouse or shingle style home?", + "Stainless steel or porcelain sink?", + "Wood cabinets or metal in kitchen?", + "Log cabin or contemporary style home?", + "Sun porch or deck?", + "Manicure or make over?", + "Football or baseball?", + "Soccer or hockey?", + "Golf or basketball?", + "Racing or polo?", + "Soccer or football?", + "Field hockey or ice hockey?", + "Polo or horse racing?", + "Nascar or drag racing?", + "College or pro?", + "Touch or tackle football when you play?", + "Short stop or third base?", + "First base or outfielder?", + "Catcher or pitcher?", + "Winger or defenseman?", + "Goalie or defenseman?", + "Hunting or fishing?", + "Deer or bear?", + "Elk or moose?", + "Bass or tuna?", + "Ocean or lake?", + "Lake or river?", + "Skiing or surfing?", + "Xbox or PS?", + "Multiplayer or single player?", + "Sports or shooter?", + "Strategy or puzzle?", + "Pacman or Tetris?", + "Foosball or Ping-Pong?", + "Computer or game consoles?", + "Fantasy leagues or playing with your buds?", + "Live action role playing or online gaming?", + "Wrestling or mix martial arts?", + "Bowling or tennis?", + "Poker or chess?", + "Volley ball or skateboarding?", + "Cardio or weightlifting?", + "Go to gym or home exercise?", + "Boats or 4 wheelers?", + "Walking or jogging?", + "Weightlifting or pilates?", + "Off road or race track?", + "Skiing or snowboarding?", + "Sweating to the oldies or playing handball?", + "Working out three times a week or every day?", + "Eating whatever you want or eating healthy to stay in shape?", + "Workout alone or with a partner?", + "Swimming or reading?", + "Paintball or motocross?", + "BMX racing or hang-gliding?", + "Skateboarding or swimming?", + "Triathlon or marathon running?", + "Personal trainer or work out alone?", + "Nutritionist or make your own meal plan?", + "Skeet shoot or archery?", + "TRAVEL", + "Domestic or international?", + "Drive or fly?", + "Plane or boat?", + "Amusement park or historical sites?", + "Train or bus?", + "Hunting trip or ski resort?", + "Tropical or artic?", + "Hot tub or hot springs?", + "Spring or fall?", + "Winter or summer?", + "Auctions or closeout sales?", + "Performing arts or science?", + "Grand Canyon or Jelly Stone?", + "Marlin fishing or wild boar hunting?", + "Ghost tour or historical tour?", + "Art festival or music festival?", + "Renaissance fair or craft fair?", + "Flea market or mall?", + "Carnival or theme park?", + "Zoo or aquarium?", + "Thunderstorm or snow storm?", + "State parks or off the beaten path?", + "Interstates or back roads?", + "Truck or motorcycle?", + "Beach or mountain climbing?", + "Architectural sites or shopping?", + "Hiking or monster truck rally?", + "Spa or gym?", + "Nature or indoors?", + "Tent or RV?", + "Ghost hunting or artifact hunting", + "A cruise or romantic retreat package?", + "Ireland or Hong Kong?", + "Anthropology dig or safari?", + "Jamaica or Rio?", + "Africa or Asia?", + "Mexico or Monte Carlo?", + "New York City or Vegas?", + "LA or Atlanta?", + "Phoenix or St. Louis?", + "Portland or Seattle?", + "Boston or Miami?", + "Time share or motel?", + "Rental home or bed and breakfast?", + "Antiquing or Flea markets?", + "Museums or observatory?", + "Group travel or alone?", + "Fireman or policeman?", + "Doctor or nurse?", + "Military or civilian?", + "Boss or worker?", + "Lawyer or carpenter?", + "Plumber or stock market?", + "Taxi driver or bus driver?", + "Railroad engineer or mechanical Engineer?", + "Wood working or automotive mechanic?", + "Supervisor or hourly employee?", + "Self-employed or a company man?", + "Office work or outside work?", + "Work from home or commute to work?", + "Pilot or ship captain?", + "Electrician or engineer?", + "Author or editor?", + "A job you love or one that pays you more money?", + "Fisherman or lumberjack?", + "Farmer or factory worker?", + "Gas station attendant or sales clerk?", + "Government work or private sector?", + "Work on a team or to work alone?", + "Landscaper or welder?", + "Fashion designer or interior designer?", + "Meetings all day or producing goods?", + "Working with your hands or with a computer?", + "Working in a store with the public or working in research?", + "A long commute or a short commute to work?", + "Party planner or printer?", + "Anthropologist or astronomer?", + "Suit and tie or jeans?", + "Coveralls or scrubs?", + "Drug representative or researcher?", + "Cook or waitress?", + "Janitor or IT tech?", + "Banker or stock trader?", + "Insurance actuary or detective?", + "Street sweeper or sanitation supervisor?", + "Telemarketer or appointment setter?", + "Secretary or office manager?", + "Physical therapist or psychologist?", + "Rock star or race car driver?", + "Country singer or professional athlete?", + "Wrestler or football player?", + "Professional bowler or poker player?", + "Professional league coach or college coach?", + "Professional cheerleader or model?", + "Actor or model?", + "Actress or talk show host?", + "News anchor or meteorologist?", + "Construction worker or artist?", + "Newspaper editor or reporter?", + "Journalist or photographer?", + "Dentist or podiatrist?", + "Medical examiner or emergency doctor?", + "Teacher or administrator?", + "Auctioneer or sports caster?", + "Stock broker or day trader?", + "Author or advertising agent?", + "Truck mechanic or long haul driver?", + "Salesman or lawyer?", + "Artist or curator?", + "Shower or bath?", + "Dog or cat?", + "Tattoo or piercings?", + "Smoke or chew?", + "Sleep in PJs or nude?", + "Silk or flannel sheets?", + "Egyptian cotton or silk?", + "Regular bed or waterbed?", + "Savings or shopping?", + "Night owl or early riser?", + "A slacker or an overachiever?", + "3 meals a day or 5 small meals?", + "Silver or gold?", + "Pen or pencil?", + "Green or blue eyes?", + "Contacts or glasses?", + "Adventurous or cautious?", + "Call or text?", + "Email or snail mail?", + "Long or short hair?", + "Freckles or dimples?", + "Shy or outgoing?", + "Automated answering service or speak to a live person?", + "Frozen pizza or Dominoes?", + "Pizza hut or Little Caesars?", + "Sweater or hoodie?", + "When hanging toilet paper, over or under?", + "Blue or red?", + "Green or white?", + "Pants or shorts?", + "Brains or beauty?", + "Date someone older or younger than yourself?", + "Beads or pearls?", + "Mac or PC?", + "Take time to style your hair or wear a cap?", + "Dye your hair or have natural color?", + "Natural or breast implants?", + "Give roses or daisies?", + "Receive roses or daisies?", + "For a snack something salty or sweet?", + "Facebook or twitter?", + "Charmin or Angel Soft?", + "Scrubbing bubbles or Lysol?", + "Flower or vegetable garden?", + "High tech or low tech?", + "Security system or a dog?", + "A large crowd or a small party?", + "Telepathy or teleporting?", + "Hero or villain?", + "Dominate or subservient?", + "Money or fame?", + "Encounter ghost or demons?", + "Vampires or angels?", + "A witch or sorcerer?", + "Pirates or a motorcycle gang?", + "Quick temper or to have control?", + "Kisses or hugs?", + "Sugar or spice?", + "After shave or cologne?", + "Perfume or body spray?", + "Healthy or comfort food?", + "Necklace or Bracelet?", + "Cubed or crushed ice?", + "Swimming or sunbathing?", + "Sofa or recliner?", + "Candle light or lamp light?", + "Online or in store shopping?", + "Good Will or Macy’s?", + "Pudding or custard?", + "Google or Bing?", + "Roommate a neat freak or a messy person?", + "Movies at home or in theaters?", + "Your nails, long or short?", + "Home garden or go to farmers market?", + "Your day – crazy or sane?", + "Live in the past or present?", + "Paper or plastic bags?", + "Open spaces or small closed in areas?", + "For dinning, paper plates or china?", + "Watch sports or play?", + "Kids or pets?", + "Spend time in living room or bedroom?", + "Cremation or burial?", + "Life support to keep you alive for years or not?", + "A maid or a cook?", + "Live in a cold or hot area?", + "For home pets, hamster or rabbit?", + "Pet fish or a lizard?", + "Christmas or Halloween?", + "Thanksgiving or Easter?", + "Memorial Day or St. Patrick’s Day?", + "New Year’s or Valentines?", + "American made or imports?", + "Slippers or barefoot?", + "Public library or bookstore?", + "Dunkin Donuts or Tim Horton?", + "Starbucks or Dunkin Donuts?", + "Whole bean or ground?", + "Loose leaf or teabag?", + "Glazed donut or jelly?", + "Cinnamon bun or danish?", + "Pictionary or charades?", + "A rainy Sunday in bed or the mall?", + "Prepaid or contract cell plan?", + "College or trade school?", + "Public education or home school?", + "Straw hat or baseball cap?", + "Cowboy hat or knit cap?", + "Sunglasses or sun visor?", + "Elegant or casual dinner?", + "E-harmony or Match?", + "Plenty of Fish or Zoosk?", + "Many causal friends or just a few close friends?", + "Surprise party or theme party?", + "Costume party or pool party?", + "Luau or pig roast?", + "Cell phone or landline?", + "Home owner or renter?", + "Bubble bath or just a hot soak?", + "Eye sight or hearing?", + "Taste or smell?", + "Be creative or genius?", + "Lounge wear or jeans?", + "Swimming pool or lake?", + "Strategy games or Bingo?" + }; + + return Arrays.asList(stringList); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/XSSUtil.java b/Havana-Web/src/main/java/org/alexdev/http/util/XSSUtil.java new file mode 100644 index 0000000..1fdd87b --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/XSSUtil.java @@ -0,0 +1,60 @@ +package org.alexdev.http.util; + +import org.alexdev.duckhttpd.server.connection.WebConnection; + +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; + +public class XSSUtil { + public static final String XSSKey = "xssKey"; + public static final String XSSSeed = "xssSeed"; + public static final String XSSRequested = "xssRequested"; + + public static boolean verifyKey(WebConnection connection, String verifyRouteRequest) { + if (!connection.session().contains(XSSKey) || + !connection.session().contains(XSSSeed) || + !connection.session().contains(XSSRequested)) { + clear(connection); + return false; + } + + var expectedRouteRequest = connection.session().getString(XSSRequested); + + if (!verifyRouteRequest.equalsIgnoreCase(expectedRouteRequest)) { + clear(connection); + return false; + } + + var random = new Random(connection.session().getInt(XSSSeed)); + var key = random.nextInt(); + + if (key != connection.session().getInt(XSSKey)) { + clear(connection); + return false; + } + + clear(connection); + return true; + } + + public static void createKey(WebConnection connection, String expectedRouteRequest) { + clear(connection); + + var seed = ThreadLocalRandom.current().nextInt(); + var key = new Random(seed).nextInt(); + + connection.session().set(XSSKey, key); + connection.session().set(XSSSeed, seed); + connection.session().set(XSSRequested, expectedRouteRequest); + } + + public static void clear(WebConnection connection) { + if (connection.session().contains(XSSKey) || + connection.session().contains(XSSSeed) || + connection.session().contains(XSSRequested)) { + connection.session().delete(XSSSeed); + connection.session().delete(XSSKey); + connection.session().delete(XSSRequested); + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/config/WebLoggingConfiguration.java b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebLoggingConfiguration.java new file mode 100644 index 0000000..fb25227 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebLoggingConfiguration.java @@ -0,0 +1,64 @@ +package org.alexdev.http.util.config; + +import org.apache.log4j.PropertyConfigurator; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; + +public class WebLoggingConfiguration { + /** + * Create the configuration files for this application, with the default values. Will throw an + * exception if it could not create such files. + * + * @throws FileNotFoundException the exception if an error happens + */ + public static void checkLoggingConfig() throws FileNotFoundException { + String output = "log4j.rootLogger=INFO, stdout, SERVER_LOG\n" + + "log4j.appender.stdout.threshold=info\n" + + "log4j.appender.stdout=org.apache.log4j.ConsoleAppender\n" + + "log4j.appender.stdout.Target=System.out\n" + + "log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %-5p [%c] - %m%n\n" + + "\n" + + "# Create new logger information for error\n" + + "log4j.logger.ErrorLogger=ERROR, error, ERROR_FILE\n" + + "log4j.additivity.ErrorLogger=false\n" + + "\n" + + "# Set settings for the error logger\n" + + "log4j.appender.error=org.apache.log4j.ConsoleAppender\n" + + "log4j.appender.error.Target=System.err\n" + + "log4j.appender.error.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %-5p [%c] - %m%n\n" + + "\n" + + "# Define the file appender for errors\n" + + "log4j.appender.ERROR_FILE=org.apache.log4j.FileAppender\n" + + "log4j.appender.ERROR_FILE.File=error.web.log\n" + + "log4j.appender.ERROR_FILE.ImmediateFlush=true\n" + + "log4j.appender.ERROR_FILE.Threshold=debug\n" + + "log4j.appender.ERROR_FILE.Append=true\n" + + "log4j.appender.ERROR_FILE.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.ERROR_FILE.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - [%c] - %m%n\n" + + "\n" + + "# Define the file appender for server output\n" + + "log4j.appender.SERVER_LOG=org.apache.log4j.FileAppender\n" + + "log4j.appender.SERVER_LOG.File=server.web.log\n" + + "log4j.appender.SERVER_LOG.ImmediateFlush=true\n" + + "log4j.appender.SERVER_LOG.Threshold=debug\n" + + "log4j.appender.SERVER_LOG.Append=true\n" + + "log4j.appender.SERVER_LOG.layout=org.apache.log4j.PatternLayout\n" + + "log4j.appender.SERVER_LOG.layout.conversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - [%c] - %m%n\n"; + + File loggingConfig = new File("log4j.web.properties"); + + if (!loggingConfig.exists()) { + PrintWriter writer = new PrintWriter(loggingConfig.getAbsoluteFile()); + writer.write(output); + writer.flush(); + writer.close(); + } + + //Change the path where the logger property should be read from + PropertyConfigurator.configure(loggingConfig.getAbsolutePath()); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/config/WebServerConfigWriter.java b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebServerConfigWriter.java new file mode 100644 index 0000000..05ad127 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebServerConfigWriter.java @@ -0,0 +1,59 @@ +package org.alexdev.http.util.config; + +import org.alexdev.havana.util.config.writer.ConfigWriter; + +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +public class WebServerConfigWriter implements ConfigWriter { + @Override + public Map setConfigurationDefaults() { + Map config = new HashMap<>(); + // DEFAULT settings + config.put("site.directory", "tools/www"); + + config.put("bind.ip", "127.0.0.1"); + config.put("bind.port", "80"); + + config.put("rcon.ip", "127.0.0.1"); + config.put("rcon.port", "12309"); + + config.put("mysql.hostname", "127.0.0.1"); + config.put("mysql.port", "3306"); + config.put("mysql.username", "havana"); + config.put("mysql.password", "verysecret"); + config.put("mysql.database", "havana"); + + config.put("template.directory", "tools/www-tpl"); + config.put("template.name", "default"); + return config; + } + + @Override + public void setConfigurationData(Map config, PrintWriter writer) { + writer.println("[Site]"); + writer.println("site.directory=" + config.get("site.directory")); + writer.println(""); + writer.println("[Global]"); + writer.println("bind.ip=" + config.get("bind.ip")); + writer.println("bind.port=" + config.get("bind.port")); + writer.println(""); + writer.println("[Rcon]"); + writer.println("rcon.ip=" + config.get("rcon.ip")); + writer.println("rcon.port=" + config.get("rcon.port")); + writer.println(""); + writer.println("[Database]"); + writer.println("mysql.hostname=" + config.get("mysql.hostname")); + writer.println("mysql.port=" + config.get("mysql.port")); + writer.println("mysql.username=" + config.get("mysql.username")); + writer.println("mysql.password=" + config.get("mysql.password")); + writer.println("mysql.database=" + config.get("mysql.database")); + writer.println(""); + writer.println("[Template]"); + writer.println("template.directory=" + config.get("template.directory")); + writer.println("template.name=" + config.get("template.name")); + writer.flush(); + writer.close(); + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/config/WebSettingsConfigWriter.java b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebSettingsConfigWriter.java new file mode 100644 index 0000000..c638816 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/config/WebSettingsConfigWriter.java @@ -0,0 +1,94 @@ +package org.alexdev.http.util.config; + +import org.alexdev.havana.util.config.writer.ConfigWriter; +import org.alexdev.havana.util.config.writer.GameConfigWriter; + +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +public class WebSettingsConfigWriter implements ConfigWriter { + @Override + public Map setConfigurationDefaults() { + Map config = new HashMap<>(); + config.put("site.name", "Habbo"); + config.put("site.path", "http://localhost"); + config.put("static.content.path", "http://localhost"); + config.put("site.imaging.path", "http://localhost"); + + config.put("hotel.check.online", "true"); + + config.put("loader.game.ip", "127.0.0.1"); + config.put("loader.game.port", "12321"); + + config.put("loader.mus.ip", "127.0.0.1"); + config.put("loader.mus.port", "12322"); + + config.put("loader.dcr", "http://localhost/dcr/v31/habbo.dcr?"); + config.put("loader.external.variables", "http://localhost/dcr/v31/gamedata/external_variables.txt?"); + config.put("loader.external.texts", "http://localhost/dcr/v31/gamedata/external_texts.txt?"); + + config.put("registration.disabled", "false"); + config.put("collectables.page", "51"); + + config.put("group.purchase.cost", "20"); + config.put("group.default.badge", "b0503Xs09114s05013s05015"); + + config.put("hot.groups.community.limit", "8"); + config.put("hot.groups.limit", "10"); + + config.put("discussions.per.page", "10"); + config.put("discussions.replies.per.page", "10"); + + config.put("alerts.gift.message", "A new gift has arrived. This time you received a %item_name%."); + config.put("homepage.template.file", "index"); + + config.put("free.month.hc.registration", "true"); + + config.put("max.tags.users", "8"); + config.put("max.tags.groups", "20"); + + /* + + prop.put("mail.smtp.host", GameConfiguration.getInstance().getString("email.smtp.host")); + prop.put("mail.smtp.port", GameConfiguration.getInstance().getString("email.smtp.port")); + prop.put("mail.smtp.connectiontimeout", "5000"); + prop.put("mail.smtp.timeout", "5000"); + + Session session = Session.getInstance(prop, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + String username = GameConfiguration.getInstance().getString("email.smtp.login.username"); + String password = GameConfiguration.getInstance().getString("email.smtp.login.password"); + return new PasswordAuthentication(username, password); + } + }); + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(GameConfiguration.getInstance().getString("email.smtp.from.email"), GameConfiguration.getInstance().getString("email.smtp.from.name"))); + + */ + + config.put("trade.email.verification", "false"); + config.put("email.smtp.enable", "false"); + config.put("email.static.content.path", "http://localhost"); + + config.put("email.smtp.host", ""); + config.put("email.smtp.port", "465"); + + config.put("email.smtp.login.username", ""); + config.put("email.smtp.login.password", ""); + + config.put("email.smtp.from.email", ""); + config.put("email.smtp.from.name", ""); + + config.put("maintenance", "false"); + + config.putAll(new GameConfigWriter().setConfigurationDefaults()); + return config; + } + + @Override + public void setConfigurationData(Map config, PrintWriter writer) { + + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/piechart/PieChart.java b/Havana-Web/src/main/java/org/alexdev/http/util/piechart/PieChart.java new file mode 100644 index 0000000..8a71bdb --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/piechart/PieChart.java @@ -0,0 +1,76 @@ +package org.alexdev.http.util.piechart; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Comparator; +import java.util.List; + +public class PieChart { + + private BufferedImage image; + private Graphics2D g2d; + private List slices; + + public PieChart(BufferedImage image, List slices) { + this.image = image; + this.g2d = (Graphics2D)image.getGraphics(); + this.slices = slices; + + + this.slices.sort(Comparator.comparingDouble(Slice::getValue)); + + RenderingHints rh = new RenderingHints( + RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + g2d.setRenderingHints(rh); + + drawPie(this.g2d, new Rectangle(image.getWidth() / 2, image.getHeight())); + drawLegend(); + + this.g2d.dispose(); + } + + private void drawPie(Graphics2D g, Rectangle area) { + double total = 0.0D; + + for (Slice slice : this.slices) { + total += slice.getValue(); + } + + double curValue = 0; + int startAngle; + + for (Slice slice : this.slices) { + startAngle = (int) (curValue * 361 / total); + int arcAngle = (int) (slice.getValue() * 361 / total); + + g.setColor(slice.getColor()); + g.fillArc((int)area.getX(), (int)area.getY(), (int)area.getWidth(), (int)area.getHeight(), startAngle, arcAngle); + + curValue += slice.getValue(); + } + } + + private void drawLegend() { + int heightBetweenText = 20; + + for (Slice slice : slices) { + FontMetrics fm = g2d.getFontMetrics(); + + int x = (this.image.getWidth() / 2) + 10; + int y = fm.getHeight() + heightBetweenText; + + g2d.setPaint(Color.black); + g2d.setFont(new Font("Arial", Font.PLAIN, 15)); + g2d.drawString(slice.getLabel(), x + 10, y + 6); + + for (int sqX = x; sqX < x + 5; sqX++) { + for (int sqY = y; sqY < y + 5; sqY++) { + image.setRGB(sqX, sqY, slice.getColor().getRGB()); + } + } + + heightBetweenText += 20; + } + } +} \ No newline at end of file diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/piechart/Slice.java b/Havana-Web/src/main/java/org/alexdev/http/util/piechart/Slice.java new file mode 100644 index 0000000..ab19e8d --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/piechart/Slice.java @@ -0,0 +1,33 @@ +package org.alexdev.http.util.piechart; + +import java.awt.*; + +public class Slice { + + private String label; + private double value; + private Color color; + + public Slice(String label, double value, Color color) { + this.label = label; + this.value = value; + this.color = color; + } + + public String getLabel() { + return label; + } + + public double getValue() { + return value; + } + + public Color getColor() { + return color; + } +} + + + + + diff --git a/Havana-Web/src/main/java/org/alexdev/http/util/rcon/RconTask.java b/Havana-Web/src/main/java/org/alexdev/http/util/rcon/RconTask.java new file mode 100644 index 0000000..80f5116 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/http/util/rcon/RconTask.java @@ -0,0 +1,57 @@ +package org.alexdev.http.util.rcon; + +import org.alexdev.havana.server.rcon.messages.RconHeader; +import org.alexdev.havana.util.StringUtil; +import org.alexdev.havana.util.config.ServerConfiguration; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.util.Map; + +public class RconTask implements Runnable { + private final RconHeader header; + private final Map parameters; + + public RconTask(RconHeader header, Map parameters) { + this.header = header; + this.parameters = parameters; + } + + @Override + public void run() { + try (Socket socket = new Socket(ServerConfiguration.getString("rcon.ip"), ServerConfiguration.getInteger("rcon.port"))) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream daos = new DataOutputStream(baos); + + daos.writeInt(header.getRawHeader().length()); + daos.write(header.getRawHeader().getBytes(StringUtil.getCharset())); + daos.writeInt(parameters.size()); + + for (var entry : parameters.entrySet()) { + daos.writeInt(entry.getKey().length()); + daos.write(entry.getKey().getBytes(StringUtil.getCharset())); + + daos.writeInt(entry.getValue().toString().length()); + daos.write(entry.getValue().toString().getBytes(StringUtil.getCharset())); + } + + try (DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream())) { + byte[] message = baos.toByteArray(); + + dataOutputStream.writeInt(message.length); + dataOutputStream.write(message); + dataOutputStream.flush(); + + baos.close(); + daos.close(); + socket.close(); + } catch (IOException ignored) { + + } + } catch (IOException ignored) { + + } + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/PhotoRenderer.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/PhotoRenderer.java new file mode 100644 index 0000000..e16ebe1 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/PhotoRenderer.java @@ -0,0 +1,161 @@ +package org.alexdev.photorenderer; + +import org.alexdev.photorenderer.utils.BorderEffect; +import org.alexdev.photorenderer.utils.DataUtils; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.IndexColorModel; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collections; +import java.util.stream.Collectors; + +public class PhotoRenderer { + private Color[] paletteData; + private RenderOption option; + + public PhotoRenderer(Color[] paletteData, RenderOption option) { + this.paletteData = paletteData; + this.option = option; + } + + public BufferedImage createImage(byte[] photoData) throws Exception { + int CAST_PROPERTIES_OFFSET = 28; + + var bais = new ByteArrayInputStream(photoData); + var bigEndianStream = new DataInputStream(bais); + bigEndianStream.skip(CAST_PROPERTIES_OFFSET); + + int totalWidth = bigEndianStream.readShort() & 0x7FFF; + + int top = bigEndianStream.readShort(); + int left = bigEndianStream.readShort(); + int bottom = bigEndianStream.readShort(); + int right = bigEndianStream.readShort(); + + Rectangle rectangle = new Rectangle(left, top, right - left, bottom - top); + + bigEndianStream.read(); + bigEndianStream.skip(7); + bigEndianStream.readShort(); + bigEndianStream.readShort(); + bigEndianStream.read(); + + int bitDepth = DataUtils.readLittleEndianByte(bigEndianStream); + + if (bitDepth != 8) + throw new Exception("illegal"); + + int palette = bigEndianStream.readInt() - 1; //Make sure that this one equals -3 = Grayscale + + if (palette != -3) + throw new Exception("illegal"); + + bigEndianStream.readInt(); // No idea! Lmao + bigEndianStream.skip(4); // Reversed, should equal BITD + + int length = DataUtils.readLittleEndianInt(bigEndianStream); + int position = 0; + + /*var bytes = new byte[bais.available()]; + bais.read(bytes); + + Files.write(Path.of("habbo_photo.txt"), bytes);*/ + + var data = new int[totalWidth * rectangle.height]; + + while (bigEndianStream.available() > 0) { + int marker = bigEndianStream.read(); + + if (marker >= 128) { + int fill = bigEndianStream.read(); + + for (int i = 0; i < 257 - marker; i++) { + data[position] = fill; + position++; + } + + } else { + int[] buffer = new int[marker + 1]; + + for (int i = 0; i < buffer.length; i++) { + data[position] = bigEndianStream.read(); + position++; + } + } + } + + var image = new BufferedImage(rectangle.width, rectangle.height, BufferedImage.TYPE_INT_RGB); + + for (int y = 0; y < rectangle.height; y++) { + int[] row = Arrays.copyOfRange(data, y * totalWidth, (y * totalWidth) + totalWidth); + + if (row.length > 0) { + for (int x = 0; x < rectangle.width; x++) { + var rgb = this.paletteData[row[x]]; + + int r = rgb.getRed(); + int g = rgb.getGreen(); + int b = rgb.getBlue(); + + Color color = new Color(r, g, b); + image.setRGB(x, y, color.getRGB()); + } + } + } + + bigEndianStream.close(); + + if (option == RenderOption.SEPIA) { + int[] palettes = { + 0xffb85e2f, + 0xffc06533, + 0xfff08b46, + 0xff681f10, + 0xff88381c, + 0xffc86b36, + 0xffffd169, + 0xffe07e3f, + 0xffffb159, + 0xffffde6f, + 0xff702513, + 0xffffea75, + 0xffffd269 + }; + + IndexColorModel colorModel = new IndexColorModel(8, // bits per pixel + palettes.length, // size of color component array + palettes, // color map + 0, // offset in the map + false, // has alpha + 0, // the pixel value that should be transparent + DataBuffer.TYPE_BYTE); + + BufferedImage img = new BufferedImage( + image.getWidth(), image.getHeight(), // match source + BufferedImage.TYPE_BYTE_BINARY, // required to work + colorModel); // TYPE_BYTE_BINARY color model (i.e. palette) + + Graphics2D g2 = img.createGraphics(); + g2.drawImage(image, 0, 0, null); + g2.dispose(); + + // Sneaky stuff to re-add back black border, else just use "return img;" here + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ImageIO.write(img, "PNG", bos); + byte[] imageBytes = bos.toByteArray(); + + var borderEffect = new BorderEffect(1, Color.black); + return borderEffect.apply(ImageIO.read(new ByteArrayInputStream(imageBytes))); + } + + return image; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/RenderOption.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/RenderOption.java new file mode 100644 index 0000000..db34cba --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/RenderOption.java @@ -0,0 +1,6 @@ +package org.alexdev.photorenderer; + +public enum RenderOption { + GREYSCALE, + SEPIA +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/GreyscalePalette.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/GreyscalePalette.java new file mode 100644 index 0000000..8f06b67 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/GreyscalePalette.java @@ -0,0 +1,266 @@ +package org.alexdev.photorenderer.palettes; + +import java.awt.*; + +public class GreyscalePalette { + public static Color[] getPalette() { + return new Color[] { + new Color( 255, 255, 255), + new Color( 254, 254, 254), + new Color( 255, 255, 255), + new Color( 253, 253, 253), + new Color( 252, 252, 252), + new Color( 251, 251, 251), + new Color( 250, 250, 250), + new Color( 249, 249, 249), + new Color( 248, 248, 248), + new Color( 247, 247, 247), + new Color( 246, 246, 246), + new Color( 245, 245, 245), + new Color( 244, 244, 244), + new Color( 243, 243, 243), + new Color( 255, 255, 255), + new Color( 242, 242, 242), + new Color( 241, 241, 241), + new Color( 240, 240, 240), + new Color( 239, 239, 239), + new Color( 238, 238, 238), + new Color( 237, 237, 237), + new Color( 236, 236, 236), + new Color( 235, 235, 235), + new Color( 234, 234, 234), + new Color( 233, 233, 233), + new Color( 232, 232, 232), + new Color( 255, 255, 255), + new Color( 231, 231, 231), + new Color( 230, 230, 230), + new Color( 229, 229, 229), + new Color( 228, 228, 228), + new Color( 227, 227, 227), + new Color( 223, 223, 223), + new Color( 222, 222, 222), + new Color( 255, 255, 255), + new Color( 221, 221, 221), + new Color( 220, 220, 220), + new Color( 219, 219, 219), + new Color( 218, 218, 218), + new Color( 217, 217, 217), + new Color( 216, 216, 216), + new Color( 215, 215, 215), + new Color( 214, 214, 214), + new Color( 213, 213, 213), + new Color( 212, 212, 212), + new Color( 211, 211, 211), + new Color( 255, 255, 255), + new Color( 210, 210, 210), + new Color( 209, 209, 209), + new Color( 208, 208, 208), + new Color( 207, 207, 207), + new Color( 206, 206, 206), + new Color( 205, 205, 205), + new Color( 204, 204, 204), + new Color( 203, 203, 203), + new Color( 202, 202, 202), + new Color( 201, 201, 201), + new Color( 200, 200, 200), + new Color( 255, 255, 255), + new Color( 199, 199, 199), + new Color( 198, 198, 198), + new Color( 197, 197, 197), + new Color( 196, 196, 196), + new Color( 195, 195, 195), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 255, 255, 255), + new Color( 191, 191, 191), + new Color( 190, 190, 190), + new Color( 255, 255, 255), + new Color( 189, 189, 189), + new Color( 188, 188, 188), + new Color( 187, 187, 187), + new Color( 186, 186, 186), + new Color( 185, 185, 185), + new Color( 184, 184, 184), + new Color( 183, 183, 183), + new Color( 182, 182, 182), + new Color( 181, 181, 181), + new Color( 180, 180, 180), + new Color( 179, 179, 179), + new Color( 255, 255, 255), + new Color( 178, 178, 178), + new Color( 177, 177, 177), + new Color( 176, 176, 176), + new Color( 175, 175, 175), + new Color( 174, 174, 174), + new Color( 173, 173, 173), + new Color( 172, 172, 172), + new Color( 171, 171, 171), + new Color( 170, 170, 170), + new Color( 169, 169, 169), + new Color( 168, 168, 168), + new Color( 255, 255, 255), + new Color( 167, 167, 167), + new Color( 166, 166, 166), + new Color( 165, 165, 165), + new Color( 164, 164, 164), + new Color( 163, 163, 163), + new Color( 159, 159, 159), + new Color( 158, 158, 158), + new Color( 255, 255, 255), + new Color( 157, 157, 157), + new Color( 156, 156, 156), + new Color( 155, 155, 155), + new Color( 154, 154, 154), + new Color( 153, 153, 153), + new Color( 152, 152, 152), + new Color( 151, 151, 151), + new Color( 150, 150, 150), + new Color( 149, 149, 149), + new Color( 148, 148, 148), + new Color( 147, 147, 147), + new Color( 255, 255, 255), + new Color( 146, 146, 146), + new Color( 145, 145, 145), + new Color( 144, 144, 144), + new Color( 143, 143, 143), + new Color( 142, 142, 142), + new Color( 141, 141, 141), + new Color( 140, 140, 140), + new Color( 139, 139, 139), + new Color( 138, 138, 138), + new Color( 137, 137, 137), + new Color( 136, 136, 136), + new Color( 255, 255, 255), + new Color( 135, 135, 135), + new Color( 134, 134, 134), + new Color( 133, 133, 133), + new Color( 132, 132, 132), + new Color( 131, 131, 131), + new Color( 127, 127, 127), + new Color( 126, 126, 126), + new Color( 255, 255, 255), + new Color( 125, 125, 125), + new Color( 124, 124, 124), + new Color( 123, 123, 123), + new Color( 122, 122, 122), + new Color( 121, 121, 121), + new Color( 120, 120, 120), + new Color( 119, 119, 119), + new Color( 118, 118, 118), + new Color( 117, 117, 117), + new Color( 116, 116, 116), + new Color( 115, 115, 115), + new Color( 255, 255, 255), + new Color( 114, 114, 114), + new Color( 113, 113, 113), + new Color( 112, 112, 112), + new Color( 111, 111, 111), + new Color( 110, 110, 110), + new Color( 109, 109, 109), + new Color( 108, 108, 108), + new Color( 107, 107, 107), + new Color( 106, 106, 106), + new Color( 105, 105, 105), + new Color( 104, 104, 104), + new Color( 255, 255, 255), + new Color( 103, 103, 103), + new Color( 102, 102, 102), + new Color( 101, 101, 101), + new Color( 100, 100, 100), + new Color( 99, 99, 99), + new Color( 95, 95, 95), + new Color( 94, 94, 94), + new Color( 255, 255, 255), + new Color( 93, 93, 93), + new Color( 92, 92, 92), + new Color( 91, 91, 91), + new Color( 90, 90, 90), + new Color( 89, 89, 89), + new Color( 88, 88, 88), + new Color( 87, 87, 87), + new Color( 86, 86, 86), + new Color( 85, 85, 85), + new Color( 84, 84, 84), + new Color( 83, 83, 83), + new Color( 255, 255, 255), + new Color( 82, 82, 82), + new Color( 81, 81, 81), + new Color( 80, 80, 80), + new Color( 79, 79, 79), + new Color( 78, 78, 78), + new Color( 77, 77, 77), + new Color( 76, 76, 76), + new Color( 75, 75, 75), + new Color( 74, 74, 74), + new Color( 73, 73, 73), + new Color( 72, 72, 72), + new Color( 255, 255, 255), + new Color( 71, 71, 71), + new Color( 70, 70, 70), + new Color( 69, 69, 69), + new Color( 68, 68, 68), + new Color( 67, 67, 67), + new Color( 63, 63, 63), + new Color( 62, 62, 62), + new Color( 255, 255, 255), + new Color( 61, 61, 61), + new Color( 60, 60, 60), + new Color( 59, 59, 59), + new Color( 58, 58, 58), + new Color( 57, 57, 57), + new Color( 56, 56, 56), + new Color( 55, 55, 55), + new Color( 54, 54, 54), + new Color( 53, 53, 53), + new Color( 52, 52, 52), + new Color( 51, 51, 51), + new Color( 255, 255, 255), + new Color( 50, 50, 50), + new Color( 49, 49, 49), + new Color( 48, 48, 48), + new Color( 47, 47, 47), + new Color( 46, 46, 46), + new Color( 45, 45, 45), + new Color( 44, 44, 44), + new Color( 43, 43, 43), + new Color( 42, 42, 42), + new Color( 41, 41, 41), + new Color( 40, 40, 40), + new Color( 255, 255, 255), + new Color( 39, 39, 39), + new Color( 38, 38, 38), + new Color( 37, 37, 37), + new Color( 36, 36, 36), + new Color( 35, 35, 35) + }; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/PaletteUtils.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/PaletteUtils.java new file mode 100644 index 0000000..25a6194 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/palettes/PaletteUtils.java @@ -0,0 +1,33 @@ +package org.alexdev.photorenderer.palettes; + +import java.awt.*; +import java.io.DataInputStream; +import java.io.FileInputStream; + +public class PaletteUtils { + public Color[] readPalette(String paletteFileName) throws Exception { + var input = new DataInputStream(new FileInputStream(paletteFileName)); + new String(input.readNBytes(4)); + + input.readInt(); + + new String(input.readNBytes(4)); + new String(input.readNBytes(4)); + + input.readInt(); + input.readShort(); + + Color[] colors = new Color[input.readShort()]; + + for (int i = 0; i < colors.length; i++) { + int r = input.read(); + int g = input.read(); + int b = input.read(); + colors[i] = new Color(r, g, b); + input.readByte(); + //System.out.println("new Color( " + r + ", " + g + ", " + b + "),"); + } + + return colors; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/BorderEffect.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/BorderEffect.java new file mode 100644 index 0000000..dcdc814 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/BorderEffect.java @@ -0,0 +1,26 @@ +package org.alexdev.photorenderer.utils; + +import java.awt.*; +import java.awt.image.BufferedImage; + +public class BorderEffect { + private final int borderSize; + private final Color color; + + public BorderEffect(int borderSize, Color color) { + this.borderSize = borderSize; + this.color = color; + } + + public BufferedImage apply(BufferedImage bufferedImage) { + Graphics2D graphics2D = bufferedImage.createGraphics(); + graphics2D.setPaint(color); + //Horizontal + graphics2D.fillRect(0, 0, bufferedImage.getWidth(), borderSize); + graphics2D.fillRect(0, bufferedImage.getHeight() - borderSize, bufferedImage.getWidth(), borderSize); + //Vertical + graphics2D.fillRect(0, 0, borderSize, bufferedImage.getHeight()); + graphics2D.fillRect(bufferedImage.getWidth() - borderSize, 0, borderSize, bufferedImage.getHeight()); + return bufferedImage; + } +} diff --git a/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/DataUtils.java b/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/DataUtils.java new file mode 100644 index 0000000..62cfe47 --- /dev/null +++ b/Havana-Web/src/main/java/org/alexdev/photorenderer/utils/DataUtils.java @@ -0,0 +1,32 @@ +package org.alexdev.photorenderer.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +public class DataUtils { + public static short readLittleEndianShort(InputStream inputStream) throws IOException { + ByteBuffer bb = ByteBuffer.wrap(readBytes(inputStream, 2)); + bb.order(ByteOrder.LITTLE_ENDIAN); + return bb.getShort(); + } + + public static int readLittleEndianInt(InputStream inputStream) throws IOException { + ByteBuffer bb = ByteBuffer.wrap(readBytes(inputStream, 4)); + bb.order(ByteOrder.LITTLE_ENDIAN); + return bb.getInt(); + } + + public static int readLittleEndianByte(InputStream inputStream) throws IOException { + ByteBuffer bb = ByteBuffer.wrap(readBytes(inputStream, 1)); + bb.order(ByteOrder.LITTLE_ENDIAN); + return bb.get(); + } + + private static byte[] readBytes(InputStream inputStream, int length) throws IOException { + byte[] buffer = new byte[length]; + inputStream.read(buffer); + return buffer; + } +} diff --git a/README.md b/README.md index ff712ef..fcb6b5b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,205 @@ -# Havana - A server created in Java designed to revive Habbo Hotel v31 from the 2009 era. +![](https://i.imgur.com/alAG9uW.png) + +# Information + +Originally started as a fork from [Quackster/Kepler](Quackster/Kepler), this is a server created in Java designed to revive Habbo Hotel v31 from the 2009 era and its inception was in early 2018 as a side project. Havana is the most complete v31+ server to date, this was undertaken by various reverse engineering efforts of the Shockwave client throughout the years to achieve this. + +*Want to see this project live?* Visit [ClassicHabbo.com](https://classicHabbo.com/) where we have been running the hotel for 4+ years straight, reviving old memories and creating new ones. + +Sulake used the Adobe/Macromedia Shockwave as its multimedia platform for their game (Habbo Hotel) from 2001-2009. In the last year, Habbo made the move to the Adobe Flash client, and then in 2020 made the switch to the Unity engine, while still maintaining their flash client. + +Nowadays, the Shockwave client cannot be played in modern browsers as they have removed NPAPI support due to deprecation, end of life support and therefore has security concerns, and therefore must be played on forks of browsers that still have the NPAPI enabled. + +The reason why Shockwave emulators exist is for multiple reasons, the first is that Habbo uses a virtual currency called credits which is spent using real money and makes it a pay to win game, our own faithful recreation of Habbo can make credits free for everybody. The second is the fact that modern Habbo still lacks features that were once available to the users that played during the Shockwave-era - and is thus, to be intended to be used for **educational purposes only** as a preservation effort for an old game. + +# Features + +### Server + +- Handshake + - Login via SSO ticket + - Login via username/password +- Games + - Battleball + - Snowstorm + - Wobble Squabble + - Tic Tac Toe (available in Cunningfox Gamehall) + - Battle Ships (available in Cunningfox Gamehall) + - Chess (available in Cunningfox Gamehall) +- Catalogue + - Main/sub category page support + - Catalogue pages + - Catalogue items + - Purchasing from catalogues + - Effect previews + - Pixel rental previews + - Automatic rotation of collectibles + - Redemption of vouchers +- Effects + - Purchasing effects + - Effect expiry + - Configurable effect duration +- Navigator + - Recommended rooms + - List public rooms + - Room categories + - Favourite rooms + - Room search (including filtering with owner:) +- Rooms + - Create private rooms + - Edit private room settings + - Enter private rooms + - Private room doorbell + - Private room ratings (default expiry over 30 days) + - Enter public rooms + - Public room furniture + - Pool ladders (swimming) + - Pool diving deck (diving) + - Public room bots (your classics such as Piers the Habbo Kitchen chef!) + - All Infobus support + - Show tags on user +- Items + - Inventory + - Item purchasing + - Sit on chairs + - Lay on beds + - Trophies + - Coin redeeming + - Dice rolling + - Wheel of fortune + - Love randomizer + - Scoreboard + - Totem head/leg/planet interaction to gain special totem effects + - Vending machine interaction + - Teleporters + - American idol voting system + - Rollers + - Gates + - One-way gates + - Photos + - Song disks + - Presents + - Room dimmers +- Trax Machine + - Create music + - Save music + - Delete music + - Burn disk +- Jukebox + - Play disks + - Queue multiple disks +- Camera + - Take photos + - Load photos +- Messenger + - Status update + - Send friend request + - Accept friend request + - Send instant message + - Offline messaging + - Follow friend + - Invite friends +- Trading + - All safe trading features enabled +- Events + - Users can host events, is integrated into website +- Groups + - Display user favourited group when in-game +- Achievements + - American Idol voting + - Time online + - Change looks + - Game played (BattleBall and SnowStorm) + - Habbo Club membership + - Happy Hour + - Consecutive logins + - Friend referrals + - Motto + - Account age + - Respect earnt + - Respect given + - Room entries to private rooms that aren't yours + - Completing the tutorial + - Adding tags + - Trade pass + - Guides + Habbo Club + - Monthly gifts + - First gift club sofa + - Exclusive Habbo Club items + - Exclusive Habbo Club rooms + - Habbo club clothing options enabled +- Ecotron + - Recycle items + - Ecotron rewards visible in catalogue + - Ecotron rewards after recycling items +- Guides + - Complete tutorial + - After tutorial, search for guide + - Guide must be part of the guide group to join + - Guide badge progression + +### Website + +- Login +- Register +- Community +- Groups +- Group discussions +- User referrals +- Homes +- Home customisation +- Housekeeping + - News + - Users + - Room entry badges + - Infobus management + - Ban management + +(There's a good chance I missed a lot, the CMS itself is very complete) + +# Screenshots + +![image](https://user-images.githubusercontent.com/1328523/188254181-edc73039-bef7-4dc8-af0b-46541cec9b4c.png) + +![image](https://user-images.githubusercontent.com/1328523/188254211-c9f9bf21-4c60-444f-b3b6-a8713c72d9b0.png) + +![image](https://user-images.githubusercontent.com/1328523/188254197-30a5b3d3-7854-403c-a863-508c2300a086.png) + +# Installation + +Install MariaDB server, connect to the database server and import havana.sql (located in /tools/havana.sql). + +Download the latest development build on the [releases page](https://github.com/Quackster/Havana/releases) and rename the files to remove the short build hash version, for convenience. + +Install any JDK version that is equal or above >= 11 to run the jar files. + +Run both Havana-Server.jar and Havana-Web.jar at least once to generate the necessary configuration files, configure the MySQL attributes to connect to the MariaDB server. + +Download the [havana_www.zip](https://www.mediafire.com/file/x94neh4qbu3l2s2/havana_www.zip/file) file, and then extract it to /tools/www/ this directory is located where you ran Havana-Web.jar. + +*(This is the default directory for static content within the Havana-Web project, but the directory where it looks for static images can be configured in the Housekeeping settings).* + +Open Havana-Web.jar via + +``` +java -jar Havana-Web.jar +``` + +Open Havana-Server.jar via + +``` +java -jar Havana-Server.jar +``` + +Your server should be up and running and accessible via http://localhost/ + +I highly recommend [this browser](https://forum.ragezone.com/f353/portable-browser-with-flash-shockwave-1192727/) to be able to play Adobe Shockwave movies in the present day. + +### Important for Linux users + +Install the font manager, to enable the captcha to work on the website. + +``` +apt-get install font-manager +``` diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..98989ff --- /dev/null +++ b/settings.gradle @@ -0,0 +1,5 @@ +include 'Havana-Server' +project(":Havana-Server").projectDir = file("Havana-Server") + +include 'Havana-Web' +project(":Havana-Web").projectDir = file("Havana-Web") \ No newline at end of file diff --git a/tools/.gitignore b/tools/.gitignore new file mode 100644 index 0000000..d9cf7cd --- /dev/null +++ b/tools/.gitignore @@ -0,0 +1 @@ +www/ \ No newline at end of file diff --git a/tools/cleanup.sql b/tools/cleanup.sql new file mode 100644 index 0000000..d269673 --- /dev/null +++ b/tools/cleanup.sql @@ -0,0 +1,293 @@ +ALTER TABLE `achievements`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `achievements` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `catalogue_collectables`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `catalogue_collectables` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `catalogue_items`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `catalogue_items` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `catalogue_packages`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `catalogue_packages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `catalogue_pages`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `catalogue_pages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_alerts`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_alerts` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_forum_replies`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_forum_replies` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_forum_threads`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_forum_threads` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_guestbook_entries`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_guestbook_entries` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_minimail`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_minimail` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_recommended`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_recommended` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_stickers`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_stickers` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_stickers_catalogue`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_stickers_catalogue` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `cms_stickers_categories`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `cms_stickers_categories` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `external_texts`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `external_texts` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `games_maps`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `games_maps` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `games_player_spawns`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `games_player_spawns` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `games_ranks`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `games_ranks` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `groups_details`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `groups_details` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `groups_edit_sessions`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `groups_edit_sessions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `groups_memberships`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `groups_memberships` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `homes_details`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `homes_details` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `homes_edit_sessions`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `homes_edit_sessions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `homes_ratings`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `homes_ratings` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `housekeeping_audit_log`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `housekeeping_audit_log` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items_definitions`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items_definitions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items_moodlight_presets`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items_moodlight_presets` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items_pets`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items_pets` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items_photos`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items_photos` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `items_teleporter_links`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `items_teleporter_links` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `messenger_categories`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `messenger_categories` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `messenger_friends`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `messenger_friends` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `messenger_messages`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `messenger_messages` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `messenger_requests`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `messenger_requests` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `public_items`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `public_items` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rank_badges`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rank_badges` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rank_fuserights`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rank_fuserights` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `recycler_rewards`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `recycler_rewards` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_ads`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_ads` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_bans`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_bans` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_bots`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_bots` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_categories`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_categories` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_events`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_events` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_models`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_models` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `rooms_rights`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `rooms_rights` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `room_chatlogs`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `room_chatlogs` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `settings`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `settings` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `settings_effects`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `settings_effects` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `site_articles`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `site_articles` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `soundmachine_disks`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `soundmachine_disks` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `soundmachine_playlists`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `soundmachine_playlists` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `soundmachine_songs`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `soundmachine_songs` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `soundmachine_tracks`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `soundmachine_tracks` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_achievements`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_achievements` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_badges`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_badges` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_bans`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_bans` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_club_gifts`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_club_gifts` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_effects`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_effects` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_ip_logs`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_ip_logs` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_mutes`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_mutes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_referred`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_referred` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_room_favourites`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_room_favourites` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_room_votes`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_room_votes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_tags`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_tags` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `users_wardrobes`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `users_wardrobes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `vouchers`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `vouchers` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `vouchers_history`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `vouchers_history` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `vouchers_items`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `vouchers_items` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; +ALTER TABLE `wordfilter`DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; + +ALTER TABLE `wordfilter` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +SET FOREIGN_KEY_CHECKS = 0; +TRUNCATE `games_played_history`; +TRUNCATE `groups_details`; +TRUNCATE `groups_memberships`; +TRUNCATE `groups_edit_sessions`; +TRUNCATE `homes_details`; +TRUNCATE `homes_edit_sessions`; +TRUNCATE `homes_ratings`; +TRUNCATE `cms_guestbook_entries`; +TRUNCATE `cms_stickers`; +TRUNCATE `items`; +TRUNCATE `items_pets`; +TRUNCATE `items_photos`; +TRUNCATE `items_teleporter_links`; +TRUNCATE `items_moodlight_presets`; +TRUNCATE `messenger_categories`; +TRUNCATE `messenger_friends`; +TRUNCATE `messenger_messages`; +TRUNCATE `messenger_requests`; +TRUNCATE `rooms_bans`; +TRUNCATE `rooms_rights`; +TRUNCATE `room_chatlogs`; +TRUNCATE `soundmachine_disks`; +TRUNCATE `soundmachine_playlists`; +TRUNCATE `soundmachine_songs`; +TRUNCATE `soundmachine_tracks`; +TRUNCATE `users_club_gifts`; +TRUNCATE `users_tags`; +TRUNCATE `users_bans`; +TRUNCATE `users_mutes`; +TRUNCATE `users_achievements`; +TRUNCATE `users_effects`; +TRUNCATE `users_referred`; +TRUNCATE `users_wardrobes`; +TRUNCATE `users_ip_logs`; +TRUNCATE `users_tutorial_progress`; +TRUNCATE `users_statistics`; +TRUNCATE `users_room_votes`; +DELETE FROM `users_badges`; +DELETE FROM `users`; +TRUNCATE `settings`; +TRUNCATE `site_articles`; +TRUNCATE `vouchers`; +TRUNCATE `vouchers_history`; +TRUNCATE `vouchers_items`; +TRUNCATE `cms_minimail`; +TRUNCATE `cms_recommended`; +TRUNCATE `cms_forum_threads`; +TRUNCATE `users_transactions`; +TRUNCATE `rooms_events`; +TRUNCATE `room_visits`; +TRUNCATE `users_room_favourites`; +TRUNCATE `infobus_polls_answers`; +TRUNCATE `infobus_polls`; +ALTER TABLE `cms_forum_threads` AUTO_INCREMENT=1; +TRUNCATE `cms_forum_replies`; +TRUNCATE `cms_forums_read_replies`; +ALTER TABLE `cms_forum_replies` AUTO_INCREMENT=1; +ALTER TABLE `cms_minimail` AUTO_INCREMENT=1; +TRUNCATE `cms_alerts`; +ALTER TABLE `cms_alerts` AUTO_INCREMENT=1; +UPDATE `catalogue_collectables` SET `expiry` = '-1' WHERE `catalogue_collectables`.`store_page` = 51; +UPDATE `catalogue_collectables` SET `expiry` = '-1' WHERE `catalogue_collectables`.`store_page` = 93; +UPDATE `catalogue_collectables` SET `current_position` = '0' WHERE `catalogue_collectables`.`store_page` = 51; +UPDATE `catalogue_collectables` SET `current_position` = '0' WHERE `catalogue_collectables`.`store_page` = 93; +DELETE FROM rooms WHERE id >= 1000; +ALTER TABLE `rooms` AUTO_INCREMENT=1000; +ALTER TABLE `users` AUTO_INCREMENT=1; +ALTER TABLE `groups_details` AUTO_INCREMENT=1; +ALTER TABLE `cms_stickers` AUTO_INCREMENT=1; +ALTER TABLE `users_effects` AUTO_INCREMENT=1; +ALTER TABLE `items` AUTO_INCREMENT=1; +ALTER TABLE `users` AUTO_INCREMENT=1; +ALTER TABLE `site_articles` AUTO_INCREMENT=1; +TRUNCATE `site_articles_categories`; +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/tools/gamedata/flash/Habbo.swf b/tools/gamedata/flash/Habbo.swf new file mode 100644 index 0000000000000000000000000000000000000000..2bd4cb1146d702994c1a5fed6f21beb8a952a5bd GIT binary patch literal 1755957 zcmV(%K;pkcS5pbxKt}+0oaDR*SQA^&FuZ3|HVM6V3>~SV7m?ltLRCb81PCOwAOr+! zXo`r6iVBK|T|w-U_KO3;%_1^FO^nITHf1W@0&g`6-b7tqvoHKKF zmwSZ>8jT?f*^<8P;c3X1Q)~$g{>GG0b())0&*Q7;$K&Q@hyEwx6=IC z2?>0}jmm}{079xl?2-H{PnUYk)bf!%e)HM>%Zsj`FcYoSv z?m}>J|AEQuFmiCL(c7m@qrULd(u`^>?p>&F>~=_5>+Je<`Gl8uo_~7%@%7Ee&vOnc zU!1?h=whC`?JM%Ap&64#_T0)o@_a?6om1U|r#+9JU4PzS#GKMFd-k*QF1KH|&RSv@ z!J73-ke|`?>D_Bx|8>u_|+0Zo6z9R_*-25^S67K?#=G$GpMV4KJ}b^QOV;e z6Anp+9Dh1zlK!JnC!fy=v>dhm)!J8g58SEh(^>!4{X^gBKEfB#viQBd9@=A7*bVoS zr<}ieSV8*5y$_zlluj#L*}Bo?wkwm3Wh$JlA~R>lpRJmvec~ve#-CVrb4PC2nk=E| zaT)0k_ixb-ejNR3Rn)nut`;k=p4+(dVkg04Sqm`h|9lLtf`jJYop#zOnUYxsG#%V`}MaLXTS8G9R1WeFYkDYMXdR2x}Z7u2;mJcT$To5C3pMU%G%j(d( zJQo+cW67y6TJ9RmTKmjpIdj~&vy0D-Nl18<-IDU@PS&io<62c-?6x^$9TtBkU!A|7 z_I7^GvE6FSz6U4Yns!DXs{UxSJkEudPBgJ3FcW9I-|?YnQL$0m`&(D^t>(ARf2nA_Ozq09yq z-94HASc7SicP?LD^m?J@-r73LO&RLUn*1WmrH!*cPMUUKT~?r_+ww-8S&)Ax&GG)j zskRprbKaNDyt&VDOyk#2kCpBYjrbBV`>piH2_xTV8GNamH}sxQuk!Ovwp*&^t*w50 zGposJ@26IU`&l18WyH7?j=o~SZc;d}H!0~#Nbb|mlg1sp_&&vSbn0Dd#qRO8qh@Tn zzFvVur~UpCzo?*;}H<3_E;r*o>iR>ozLa?eBfENqva@g5sUW8t+{^ zXK|rt!NWTl6W3XMdS)W<+|@Ete#Vy4g;Snx-I(u|za>*9o`192dW~mEQ~c)bJFBhi z(%00_d_VC@P{*eiPhWC^q!tamx!Zl)hV$c1%6WGeA8I}SqS|xx2kkM7IX(ps9oMtn zOcDcc-?)%WyBnP9c3!LdU1tJ~bGNsQ^yFB6`Ou1?9cy+{cP09(yB?J3D9uR_gh^k& z783aKj7{K1%gE3vu8TY$@2r!!Gx7E9Da_IKjNX?^ifXLqKHuekl^T3ld)|hnFRT~j zTb`Wpg0V*Teev*@L(kWEe$81J^ImzR@t7xbbI(0qK9hf~HsKKW@YfqRoLk~LXq=VD zMe18lOgW@@)*CM~2$G!5&fr)fvWNvj1&Bx_!W2({O>Nbn>F8Es*MeRWLY#Btt?}47 zoo>6eOMAn1-*;PFga7up9VTEl77Y9!lDK#goGgA0CyB_;74Q)WPo5xy zo#l~}!x7MY(>eM5ZM6U|em2L8pP9@{i4d>_xj8|+904bjlPwY8EmpuzNaxT3@Dbv% z@?sJfrLzl|38|b!0WCm$+h8^?Qzjsslf_{RIN4t5JWi&79K=sa;bc=n;N+qNymWH^ z2vWQ`!!rWMBQkNE!^d&HC&X4x3~0Z1CPV=fAPS6tC_ELSkxmdz$RV-Qv$$+pg4ld- zwt%gWD87{iFOw&*fOF+q@YB?O<|T?}XOYflCvlRL21~Lz7RhX0`aiiirTPzUc5Y@S zFEd5`X91U;nUuq2r}b-6{k@2vrty10j)0vl7_5&k;H2mAIOBh#@4M(%ecuIQeS@Z- z&P&Kc5lpduGTW5kHZg&YQp%@c5Yna^;`p*?fM61#EG$ReomY@DtNG z{j}0=`1~}vL0sI{L27fxClB0hklH+cI=qwEA8Nnh_m5EhjU<~R$S#l>5QuLFqlXRb z49d41LgsRKDO>?ftS37lGnp@)!C~j*W^45TjRt`NRYGG+3=oN7AHFqUWw3O0x7tCJQ4-D?DPoU1P%$BlfuFBcsV?{!${+C z%^)8XD4Nj4+ldah4lk1)A>d>=(}4xBLY-Pe`Osc)V}8 zN3ajc2VZ+6pFHRa88ODkumy=+PPUv+K8#c*J3RnjP08#;j-D^P6Zao%80HkQPjHv0 z^!w(_No$3FG zB%PN-&*Tf}>^!ImuP1+<{=xkIYI=2`Y%Xag;{c&WjBn4)1}%%X(A{p;ls#bG6hoKLMpaNKHMjmITCJq-*9Gd|F$Q?z5y{l)Np7QJ2M5Qj|eV1i$jipfe^q3 zo>^#O?2*n($&?h6VKDK)Bq1$sM8NdU3FarkF@kL9cS7E!WAytDY<%g#ZYjJxoSU0P>+gq`4=@JAqOoH@Jbt2JFvQpn z$2M#n+vefeo`+*6G3}LuW1n0c`v>7TI3LGM8!;C52@}(7Z!u25aZ)&rQ^UkK9mjls z9FG(CA1^-DOmM`{Gvd2j+1ujSVLXl<{lz#$j1$CX9wv@G#T+kR9Q*fUu{6*}jK!mZ z@EKW!;QFn?L*aqQii?w(p*YUPr)4!E8DeWIPccps<22aO+8QUVZ6Rr61(97gj_@Ov zV=_b@0*JiEL*$E}y#h1vV;2Xa2nUEF?IB|GAW9hx5jO@$xe#S~;s_tXkAf%*SDGCF zQ9h0)j3dV<^3(a*SbTqpCC7{FoC^E*WsAa2O7i0J(vxH%Azu97PNVSD2N$v&``5BY zVGpcL>i1+qP2j);r@~fd628hM5()&I9Pu7aqKWB9zJQ%BmB@zK!y~6ZyAa`? zNT(%o*>F=QaXbX1L|7QJN#Y5pz(s43lbeno*}k0w1-uN-h=1Wb|LeKh@?RzV|9f5k z*CU(<4kVWFEb{N8f1La+f1;WHlm7pMKF$L*IP!m4pSY&0{WO4!r+kZVrN!@GCC=j7 zAg)`H11!9LS^l0amx!l)xHP|Kd@PZliWFDUDaukyBQP66B!83R4=8ZOaKicj;zWatDc zTu+`bv`IM%kn-jvi%$;xOwR&5xJr;GuBpj9PLlX=jB_!_#bbwGBjG}oN=fG@u+t;q zI)dqil9J8N;_?!6q_{k|4srzju96&RiL1X3S0Ko8wzOm?@e}YxpJC|{VPk2{VAxwG zF@v3xM$X{p=5V6>FQXL(9+RAZdi^luH$2OqXv5#h2S1SEJKf;Fx``ju@LsCF z?FAp;bbcoo^n@n=t;dhoC0hSvS^gk3ej^nOZ0heLf4oYu{6VS@k`CI9=Kn6T{3k2y zKYIVW$oXIDG48 z>zMbSsrc~{?l1P)pwi^}XFBj=hMVv=!(lZ1|8V#}>fIl1^M6#tKU`n^W&LjzjK&o> z|EYpJ&L0K?e_LF`SW;)mHf>H8&L3<7L5K|3r7D{ zG_v{W>3Avrt7v>z^5@lX(38L)o=U`Dc>bb_3BJ8!{a?}X=O?^@Z&ZJA!uzJ-&rf*c zzm>1Q8V~P3?9ayMqqlm- zuV23{zY)6s6#e>o)aajGe)~dHA|pTk+Y2pfCjRym|6nSSnVTX0SOAYPvcH~-Xz+9c z```vkW%2Sk=@FUitSqQYJ}aA#znMtqr&w?@#ormRas6M$B(gd95mT&Fp`RY~4MOIZ zC{Vxqg!1hmLi=$Npyqu4#MWP!`!AzuKgtvS2La-{1>i5~h&lLYjGPR3s^a347FUn{ z<3CMI_y6%hj)0#<&dE*45o8nbx0aM|Z!=kp1}h8_vNk)Blei;!lbJaNisLpE`w$-OBjaZdv>s@hjGWMCOyu!S`Lx zfawDtpgr06*VS*N>OW)y-vhM%O&~t%Y5qg{)29*Le+mZ-9B?Q*+u;AyMeK8(LA@g2 z4&Y>34r*!quE&6(^#73c{{_SEI{Y*bUk!Ji?Z}H#x{PHIq+P@pnA1M6m%5SINFa8l=tKW3`{w40W+_3)|@gFkhfBlmb zx8ID4=MH?Q;)}mRSpJugn8)WO*(sALhfxwrA}G&7NovZ&l~qadl(i`3BdT15QksGC zN1$AdDlb7*hEui!N(-P=qLhUwWgV)#7*(!Cm5T|gs478KOF(8K# z&p>JwijhWR;4vh70Y*LuuihBp2Ed4GAX!PkNac{-12DoC*mlB*m*FK012PyWgt|R3 z<%O_s2V`ntzySl>Aaf1@GdK%Jv_c?aL?Q;JL+%C${+MJOhEXs~8Y6VWaVsEff^Y=h z;}F2~ieR5842;KsJqG+RiULMC3NXq!fRVy6$vjM^3}CYJ0S14BwNQH#giZ*T07g~E zh`XVx0}xI@fX(Yr>ploqAv}Qa5L!7Mf;&dh#MERlO(I6v3`g&Wa2~=fsO3KFcLMeq zg@G{`kix(^*jNu?1BAU0PC~c>;ROV33^-!I0|UMoMF}ItU@|38O&f%E2r3v=5hHGc zwy0p_)dWnU5zY?&yBv2rgw+rlAZ&!N6~Yb(yCCd=a2UdA2p1q+gm4?e9SC|E$92@I2@QVAGU8Kd5W=0K~I zF>)iE>2ZMR?*y2F28KQY7^;P#FX814gqbLYI%4Q{cyYtfasr0VhfoD!A%sN`sv)d^ z;De#Q80v?i{+PsEILmp^rVtE7W1tusx)Q=G2(KZ$hfoX+p9WzDgfiH(4#G+Zs|c7O z6O$|jm{B|?Qw1>N1prfBhGMGqD3wN_N&u=P(7-Tx4@}A)lXAdl?*K+yfnv1v5H><}Qb@62fW-Yalpb=vH`f#?WCHx&u->A-G_uJBE5o25I#UCfn!SXnLtCJ|)0D>0=YT#utgjxtoAuNaBgOMg$n}EQ9Z0g#IGjjZ(e|(Y;WJ?tyayD7wG@vhU})ANp}8fb0Wn za1$EDvtBF4>j&meTqh>J_a)G#K{){{#mATY&fG6BisY{lfj&H*2XM^?@s6JWKJCvq zQvi9n@Y;-a`Xu$`)MiBxTMaf-g ze^|+pWF&eLpvb5b03gx9uss@7Lo$Y64yfwrQ2;BtydM4^ z%gG>!9ij*jSbYG3g#v`4i?g*+gvtd7Ed?MF!vP}c3J@t%1c`>4kQo382Z*#gKxAwH zBFh7aoEt#obug+qqJ)&fyMv=(3^)!5$XGjhss_wZ>PqvWdJTPCbs9i4&GF?diy#gN z1wm#3qzX#45(tR4GJ@D6-Uu=hF~j?MB1kX-Z!%;H>_FE<5J$upAUe=GT`zoB`v62Q z4j}sJ05QOAiv^2d$2e7tYKoX5_VQFscykLGCe%fv1t5qakq`(mi2(0q83i?VlQaEWTCTHUwjz{Le3pxj_L|OLhptIR4 zAWFCZ4M?nqRML9r08Tfgl9xb~vJxV0J>>CLL6o{0qO^;UmtF%=#v0hntc4W611iX> zgVeYske7WGQaR@!Pp}+Pxho+r?>cObUks`I8i)$kL&1bD$eUOTo0C?-=H%57O<4oc z)JqTv!DWaGK^>GAfn^XEgLXKe1T2R9Qm__srol436Fqtez&C4w<1AX5o+Fpf+kn1L~5 z62Te>$Yg>p7)>S+Y(NZ|NU#M$K$aw!g0W;!T|<_;i72#rMK0X!WL0YU)5L;w^3p9oN8 zphE-%RZt3u2+qMgB#7EcIfRK$-Zovf5x49sQ`k{6<8BXEI&n6GLU&{5AE0$2w@ za<5pgyflKqmKm#q`2?V{7;LGUWx*~`HAa9_*Mq7}#i|vQkRSJ!Ls_QGMF44M+Q8L- zP;e`JVOLeWtJx9&HHbYh26})+>L0HS$CHxPSWd~-tWcbVYrz@#Y~5fZb~tl5u8j%{ zo&*VM(}Nk1hO4%1XT*-ghr}KRX5)Mh1K>MSY`<{ig${X`EaOZ&STde~YYLre%A!q& zeuau8Py$WD94b=B`$DH|1>ebSU?nSJMQ%4shOU55Tc(o;f998ak_YSIUi`0t|3L>5dyJLm<*5X2Kk;RQzIA4Gfua-&d;wOes|RZz+X^F<8b77LCCw z6FZl|;xJh93|2Y70p~=cTKzvRAC6XpM||P}7>u}Bv84=dY}{BgEAH61(PlQ>(Qz?m zw%nMwF=p1>F>wMjU9KQ5&rFY-7dO>RhdVW{z>Ll>DL73F@igtY7LchOK9 z8T$Q+%4>NC%WFk_F5c*7DR;6HSh92l_?X3##aa5Gb2(e9Lm!A;l*UZMRSdx^pbwm> zzSu>MaC-WNTzz~XWQgsj!#UAGoGcyAkItfq6F6*B=v)eHE8|;KxxX6F@pwo=Wy*M` z4t4_M!25sY$G^c z7j7~dUK8|TP0+)w^&70L-%^&WKEk#Yy8)-58vR_TR#V>z=dq1qeVM+{k@}+{Q`ukv z5bM@QiBwwnAa$|B0*4{OVHdw$yZUGH5_Fjp*iS*1K9$`EZSP_~@Ao;Slf4U%Bqg~7 zz?h0}12r4qD+sTPTH-k(itte)R&HR84Wt!Mx&prbJek$-2|}yCrzK%I7n1sjBoxKL zD_09@GlYAKVg>isd~{H%5jV=fK&lb94sI@5&j!3A)fwFXzOr%^v}k-5{VQl zWVCm5b_Eb1!wugJaM~=EJoG(_m7M6Wk3Y$~|H^0g^F2^Pe_>4Q;3megJGpGA#1m&q z;9A+X?VaKzjYe%kzEs^7|?@ZV_3{y@3F{@y=!r4JtX?>pIdAo8(QzsVx~ zid^~|F40m0kxzo-{GgYxeue%76r-4b-{x_V{X07HTVb9nu1 z;S!Z!B+#6Jfx&pR4F)az@4=o4aEO)`&)ETX4#7`nGT*`-$ABdTpFfjGCJ-0H!cc)p9ZyNwP7rXRD z3KHH4JsMoc*%gpAa)-5qh`oxaYLXi0>I?ZznCJwWt6CaXZP5-Xn(?x z<(l9}O9i-(5&VDOVIlsXdO%VC|5M8yIYc<6fj`_^3WM;s!=g`>h^!1`ILmrTW!xg# zEa&NNV1U`Ic+)*k5pYKGfrHy-lrDMcMMsrXnB&=!3N6hW4@2%hdC=V^SN8TJb7bw6 z0M8O%E;s4$2^~iJc}pY?sbHLlQPEYM7Sw#=m4ULT=f+JD{=@FJAkQO~xHGvP9vb?B z<-2FTkwu@lZ)nZY{R$ z<&osQ3zEY;q?4@ulEb-VUU?4LeP;EzJjYhgWR$f^rq$@EE!#x$zS$99)(xtVzDt@2 z>yRoyjCD>(Rk_rk-nraU1+04Re4yuQbl&J|X}xdH-n=R$=QHB`zNum}FSs|ej1?(W z?49^6$u1qU@9!%(c%N2HxKFMhYDhz@4N1GHtwzGqX#`enGLlbACX~^9QGb*x!PxI< z#u#&CbOh3jR2fR!i(ZdLV>?pg)aS0~j+hX0UG!l}ljhd5FHi3~I`2!v#p}xt7-4Hn zS??S0_Z4#KL?j_d`o7Tf7VB(fa)F^^a&3<2(>$aqOR}u!q2bBr`Sp~M$1XcOt3b*= zEVtXJ$lDS(V`c2KDi-~gD}nH+P}a9Pnh;RrsH>`07@8%;7`q{G{rc&kLfdM?8mrnP zy4SX=WS&|$YUiR@*%Mo9dpxW2cT2AQT1ov-`C5~X=(k=$)Ly7A-E>YJ_%5DwO>57} zCEky!>kU*x3{(>&$jD~rpu=W88+KgGiy;!*+9utlX*PUWB{kwmqod6#**-yCdh4Tr zGGTzgqDk<}&B7mLm$ zlyA1aQ@m31%?M$bwCa$mzWo*EN&@1_rN^Xnf+`n8s&IOidoIv$N0Qg6lkZ+woKQR6 zFwA?y#Mx!Mhh`kv#b&5VpyI5?sE^O)K4*SfFntMVtD7xVJuRk1S4I=aSlB8^`W{{D zb8Xkur=Lupj1gSikp-12x(lPmwCR{@tJ>V zC_U`%9`lKqvgF*Qis!QGPfnH8J@d7U-iXK)o_1Yd)F^XaVaM$UkzGx$kzWGl7-u=! zq!NV46(m-)l_43AR&+F_Ny?Qb9c3Wyxz?1jGZUC2%v+v|R-U~#%NG>4RNiwrFe>L= zEidtS;H=r&8n#<$9uL~h7AX*C4oh3HvuXWh<*OpmC$C8edGa)u@plzcEK9X#xu>_d ztiHk8GC}ZZ>bM}+1&Qy zW3D@R`{XX4X?lR$GHR=hX~(LBk=uLI8+sa^BtnoaL$~?)uZ$?7&6h(I zET%JVt)HxaWp|cto}1_syW3pDldw*hs-E>igBcRHM#;vYe9v<)!m28h@>S-_Z+2&Q znk>KXTNNu29xLa5OKyDmvAVSig_*{k`Yj1QumJAvL_tt^ORYio*y07l(eOC0h^?w`1Q6Ly1IClq~R)Mjb?*sb$V+2v?f8Sb7lKBYdk_V zk^0o4+w|6mtFrE~US-?z3DFXQqsq^b)Wh>^6KbB8>9AT#Evy2mhI6CLi7ixmK)U1fth!2pbXd#tQMnOyTKUAWVW`s`1xqE>;b|tNo&j=Q(}G%76lSy}1WNdh z4qU^oL=xOh^vR8V>)c-k2EASOrc%>5d~}Sar68{I;hUOV(b8oN<4@+ceU9>V=>Fhq zDt!SRxx=F7&bsyH(X-djPYY1cO_`J0;&exUrm{9eHCbYvbpq*YtvJQBsxdQ&T%^bWKHttZ4;9oZg}!0>fyp2m(Av1 zs4E?IVClhz@(s_HE*=)1czW;E9OtcVoAlzmOe3q7`-TLU?Lbg>G=9fiBR!~B ze(UsG^BoiSUHs~ET$IcyS~4Ly)qDH8dz@T=fBW5=ZxyV!#$Vm~e(GnV_P{B_u8VBOuB~fcmNIpM*1KoNH!YId zP0^mDex>Si=GWeL=SHe;h}TCzdtkvVz5MnyTh1SmUbXhzGSMc{+naALt*Po#3dy~q zD^m5M=-GU|xZBOZ^7YEApZUv{?0P-q%fcN><6JHtdS&6#sIqaC#^*S{3C~W}Y8;wx1jl_YFk?mw{1D!GDodL!R{5mIHFzcew&8- z{=-D9O-Z=FSyRjDKG(~@!8R!TrpR(^IKy^q*()Lc?YkknuYJCDbH~ZEQ{KLFoBAer zyk!Znzxm?0@)pjnwdzYvo|5W=@d)`yI|+&AntrVl-H~Zt>pq?fMI?~bu6pgz@m`>TCnTuL) z%Udje?XA9*l6CC5W772S`??aUmsjmtmGS&a>7@q}3ponzBYVh>Z}rd6R-F8D^pI$s zEfPMi#hqYQGapP-TB3Y%W`)!gLO61-HIR|m(>gNL#kM}kplt6B&PEUGs#Q6PP4Wb_ z3(q!eqtdnH9*5MUi7~00LvZ^=RWBPV)R(rIr3F%t*8? z;y7>q{M|R|)XCa&qm+D0JyPyICrr2i9TuXb=Z&N^Z(e;VwUQMtSKsODfi4kfK6NzC zwLEpyw>I_Rl9I3jlRGmnSHF7uappoiLaMLT%8DwCgVSoPT*8wIhEFs$rg_iR30arn z;k`(I{ge8LO`^3Q-^E#K?Tq_;Abs&jC$G0x7QUQ1`IeL2=7ib~7J?8g4#fz`S{@G* zs=l-uCpab)x!=cDTuYcOffSy-b1X=jtY#^>qjtw473o>)*PTj!JVSGNrOxHEF6@q; zrtRJ`Bi=mb&xm^29MXy%|F)WS?CcQbc`A)G}h4u7}x^Dv3Ss;||3x>bE;06XrR{*i1-Ug3DVp;d`8O6tx0 zn+^&*ftBxt_T?A9w4X>@ui>8>v;SG>^N*Q_pETev(*ts6$tEc(-XGPTEqJre$~GyR zIk5SkLa2*_k?RdSLhWicB}F{CfA2M8_i+97S`&>F zDQ^~;h7?M6xX#vF|D-lLTII^L4?9k~iF&=Oum<7y#GE-!8WtOysuzAdKT_Y_m1p7gpc)-S;?o=>uLL7SZ+4?lkaB?4B@kaW_I^oQyMn?rCV+4r)x35dEn8r&=7j z2c_$Ea$SQJWVyBaAaB!ZpJMLIn=+o=%)Kl;|UY5UOOFe5{b!Kfer?Qr{PFs~|J^s~@h2dlFr-?p> z*+{Ur*r>hfJQZu@KX;~#ocTcKB_N#aXN8Ib#<^XVi@TN zP5;1$8q!GKp-WYby;nP*Zpyj7uMbhm+foS%v1HxSB`-|8@d)j%A4x1K&<;qeSFaE8 zUiUhmkc_3r8-yTfI;vGkcFj`JnN=3{ z6Q(F1+(o(GdZ2KT03`+Ou3xi{zy;50{z3Q-oGCs`aC&~zpD#DqMa8q#daj)~1%|(Nh00@fKxt2#`vB*re!6SvecPP(L*`jP=?5oWfawp2vH4>6~&H1kQ3?c61Gac`*idZn>DMBeil6$67~U{o4sb(@S#&&je5(LP2rdCYIwG3S+yvB z^}0pR3It=;m4>W5bb8Ii;!V$-pM97%)9{AVYPEv7dUd*TnF)(DC?C2<xYJR1Tm#yUPW>+(Mt`LY;Qqaf@2o1x}7z( zZCy>)ElEa@@8J!tNoHq~j{2V;s}-UaZr0MgK++%Mw#d>dOnhpaqvhI^JwmHh+Ehci zp--cO610SySKQn((vX|rTdf{rxUk30^xcMJ7fdFLle2A#<(3kdf#C^A- zrc?=n9NxdA?Ly%GYXM8!rblWX<&uM1uF+e^N(5#4ZMZrsD9ElPACHjMu?&Qispofp zA`97ns=D`FBtl!YZ1{mKLZ_hl>)vl?kz3>F!Scmb7a||Eaoz8ochZ-13JN+>0ZNc0 zvJS1d@W?KLH;Obb7ap!BDiYo6KM|&Tq}^gyQWny@$4Qu#&$YglTiVK;pJ*MlAt(6D znTDXZ%=q}=M{Nrq$J8BIAJx|zzG!Mn_o1lB3r_<^L@m9LdLg)Owdqx#VTQZLekMpx z_n+@)HqJBgboLTaZ;B}N1%fE3$D9x%JaGBwG&`$V3OTxV54^6Mm`C4oMr z{P|l^`m)H8D#K?_^N~#-7jciHpb~KVnTJn}XRK%=f=C=0mR=@Hp2gT$_;9{UsdckW zlFQl56{AB_6D6pHf^r&V!gN5G%IIG&XK0hYswr~Rm&7@x*n^s z5J9LuvoD=QByXc+(jtSh(T9kv_Ih_-lbQKzmg^2aQMRb|3*8=GLcdc41A~&D-qFinc!{ zNyfBB-H)1;v2d#Bs}4CdeDu!C!iJdc5)=Qo$W0)oP1!Z zTTA1(acsT10*7e_4y4g3u^n5HiLWyEv>N8ujJ;kYd3DGFHK)rLBcMowu(dt z??j}LJQv{+dNSNmh{oxh=&HA|j_je*1pa~4q{%}Q zf}EjJ(ebsbUz?9FsV3g+JJkI_Z>i?OWS0lS9w)xcUfVv}Jaq17^%pGe@p-zTwRDp} zrS9u*ufCsXCh8kDe>(z@VY%Jj9!p0|6VxuY4Pm*12{$jDF__dW`gA0QogeJDIWS`W ziBntXrSv@>_r~aE7H)k?sI-ufEsfE4^>$BcxEN#HYjf$!b34aF%+HHD5n?m?^uU%% z)@|yXV!u#>V)tP4cQsA%yY|(dy*JWEExdhKheElo+JSP8_7~CTt}|^Gz?kO<&dO2|WxvTGQ)`%RQC!A^IA&J67WxtxmNJ+7} zl9%ZDh?13s)*d|-7E;yPc!b96izXJaEd22&R_}z5TIr~BK(vhJ(}&GKTUL*^S@NNQ z3hBH8B7N4(_xLPT*PRC?_uu|3vwD*{yW@l&p?v8(lbg%qc4nINJ#RlI3?HG6D5}d( zt9@w0o@~-95b1s1wMTy3$Z{zcpKi|^a~#EH__3W%XK-1FpX_XB&F_e zo_x5m(3URQG57g|hifJ|X1v=pX2u@ThZCz)7jNvnds--qU>2W8mKl1CWV_ZZy%Fy= zVs2hR*VNn74@x(LPB4sH938SoPK8~fIr+)a-R%@c(vwMv>Cz6HuGtDzGM_(Bc{@3E z0}_A?O`m7&-U*KTRVk(hTdv(TeJZuj;B>7_%!11G3nRRpg17E^@7WVf<7tn*<#_A1 zADiI!*=sa=K zIajN@mVImKO48hoB=@=#2G@&256cHBu~sBhB%ERuht1 z=vS$4C!Cev;xk=MwXno9p#`~fcU}=UEcRMc@bM<8tos`cdD{^UQD0-km?#<|FP!)M zz!v(}3S)}RTbU6}dF=SgXH=8nuA4W8mPkqEt!+$@9Oh{A^sxMD-Pg;kwJ#Iz-y~j{ zGE_Qzo*Z-i`WtMaqQS*&;%ou^J#iRV{#{EL>a>^RS? z(n&g$B+-lMixk~-CY9(=VoE8Vj61TmCT!}u{hkV6Ov`klKGo}`Qq|PdhJ2RwKXKyp zldY%KI18Pb_@Sp~VRZLs&fJ*OS_TV8Cv81FQ~{5W%8Ujf8gJ&G2Gni^m*)4e^jxSE z0*zk60){(vi1ay5qeYifM50%sSEt>2YD~?xo>F9lx*x_U+Fil=sSOQ{YZm7%5K54| zy>xDGK`LZRw^xn!D^lIOOG!~#Sy`S|=HtztBdSnN9~&99?9NT3Sa$`ZZ1d*Lm6!aZ zqoX6?FEqNJh*~C63i1f{v9WM+X!!rY@Bag~;1TK>-#O=1a!kFDu7w78C;|gRB7%Tb z_~#}Bu@xc+@&82w|9}5GL>T9S|AoGVaLvH?yk^00c+MZ_XQ!?705d?$zcrPlQDqq` zh!kqaN+F+zvHJ26ubV8&dWJU53VdrBzjo1sfP{B;ja{R@Ox-iJZ`S+a zZ0}DUu2-h65s5yFL>ug;O@98RAvrH1`9gEb!)41`s-;TZExyJ-3`^iPsKYe(&Wcg1 zd{pVBww06m(INB5HbyOa_q!9Vl!;z6mVg0wRI|@S>EcDf`*gK>gc7DZ^h*2G3QkEL zRpI1X&xt7341LHrL_CVTATSU_mVxYO-H(m%_ngQ5v}OH8l~bwf?k24iXzMImsJhU~ zM``8(iCittg{ybc1nY+%9Fkj`qpLgzrb^oe~)7KmLuh3bXr&4 zbD$qNSh@8?{b92H-0nE~gV%ezx_wfX-oE~En%)aJcaD;9W6atE8}?qlWMb}YQ+gnm z9i<`iQF0wof3lMFx|mX0?Rvp{f?SQUO>))y{5sze3!aGhdv`bPalEqY%_CQ<{2-gJ z(RY*>CPH_Hg3yWK>Mlnk5ZP;%#$^P|+|Sl5q_HA}0#>gOkI?Xias*YorJ6Fg&XnKV zv5MNK#-7BIuAnDultfukz?)?PJY7J-2dfWmURNA9zw^zK^rtl5UTV%${JfeF8s?jR zW6#jDOJ3|~czwZO-+?>>wZ_zIBR%u0&lYWd5{c?~eEBf!3JIGZ`l@yI=-{&ZD~+_s z0h&eB(Mmd669W&7xg6VW^1kQbx$9QE+PVAp)TFQLei5<1^(m9P^WlchJD1mNTCr3~ z@$B2Mn!IdxVF)rk;Y3A)sxqQH8z3yDLS2?KTEQ}|k7J)IZ)T|$O<`#l5?RT@TGpNt zcaB4GCu_B^V&Zh+d{9wbXva+$k{ss!Azj)szCI zujunNp#_(7rfzdyw5VoJ_UGNnQ5pNZUEf_?arMlIa|=aNuU?(e`hNO;6V^+HJu;c0 z-Mp8fiOghp9!Y0BTDZmj_O!2zvcepOC(^>0Bs{=S^qXj{d)$^`-Tamzk4K2|QH^kw zdO%fXa~Jw)*UG{^wS1(~4B2UhRG%QOz8AHkS*a2+j7u4Mex$+u*E2`laxq08jHsNs zB5Zh1Z(s=HOv|Y-m$e#o=8=K3*QCu_q?;j-mX$tPHD-?w!C>g(wqR>{)$5Lny?R4W zk9Q&#PL~e3)Mi(@0SPIzt%&;&K&lQZboSme%%^(khOQgzn2Gv5J!s^@uOqBw-;K?9 z=FIMSXZ+^Gs>|#R=H{zN zNd;qw`w#{bS-{9GHn1^A+ZbG-$MD_KMOoo?TT3!Wb3DA2f_noTox*I_Ws@e~UauT+ zt*-o9om#hEPMX>rQpFoZUAo)-e8tca=0u14O+z>_ zhgJ;Z3@N!+K6~sLBZbIkH(uzdO`IJ#_FB5#`rh7f?e}YayRJCa-FW+DO8GMN9d$QX zd9T{CXlZE282hVlx9!j5jYO9ex+4q~bQ`f=m2sTBP4)OgH+zd5`CHA52ZRV}dpKjH zU2y;&q4nDp2+B&q`pl%$BU~KxJYbev@scr?>{T1y&_<<~`51%EawNU9w##=ne!Z}8 zRPpN0^v@LsPtLe}b<6f)R>qS16FO{U8AIqr?S2BDla)gwQt7|rW}?Fgul-I-?N?<@ zi#Tw*YIlyB-j(yA3jkdhUan8cYBQdgs6~vrxR?9sW!ABI=Zz1M>J$pGlUw4Zy>)P? z+Z6jcZB^!jhQq>6bcQe=*&>uCbO^hpW)ynwcv)3%f3olebzI?W616Cs(owwFaPDG5 z-IK-IXko*Z+z_Om^8c`NUr|kbU*PD|fCK`B&;kSqfrO5s3Wyk52oRLs1P#3_ND)vp zgbty%(0d0d0#ej3UAieH7`L6kp#DD@#hS^I_6{IBya#T4y& zspe?DD>*%-oi@EDvt4o$se~+yzN0rE9o4Jw09W+swGc_k=;T@5bNO@^763442s#R+ zPJmDo6*ALWAOC2S@P(noNX&gzCdH#z-xhW26tkZ%1|rD^i5=4C|0ne5J}Ooa=BROY zbC#Yh?4A5fD0r@SXanG)bMs7?=0nPlQ3GXTHFhAXTVWFAu8{xVUZ?DZ=j2hh?@!W3 zKK+bbT6(&w;#(G};`_$u&;A4g^RKW700eqWK7VKEvVY72nXEgzzdxV!HwFd4cWfN##wyS8@u;Dp0iHW{{m7rYn2qN}j{o_mj~BFou)9MCgJT`2(FN2< zu*_5!Vee(b#1+EOJYsM?6slAdaaQOVwU`tD-QjH4YW#azP^q{xCycb|L78pZxhXrE zIXc*y4meJ8I!_f|Rjrr(bF*^y%9(FX-c3!KSy;m)I*lkr{(JGZsrC5BO|9}@dyj0b z|K2g=yZD8VPew-W;<|-}{V|BHr{_kGXJKK1{MmWA0F{yA`x`PJ{@i@cCkqgGme<{C zA|@ePg6>6)+JB4~N*wZbDatqRY+vW1t#}h@E2Uzx!aCN{k(5#emCz1zwFp|zPb73hFD)rx#MZ%p6u>4$Obywp+!8{g0l@+1NRfCrdRyI&_aa~v7 zQb;%WX|RJ99U%cuA9}WNt=~R0SyuY&unAK4*GWUAzSy=}Yk|Ius`2n%kW5!-?BT}m znXOsR+mYGGBqng6vL{auc zH#^$V%h$sy1-01nCEsuUK_J|h*Qwd6+xC;cFRwjnOHo|$X{tKvD97$r#BE_GTmCze z0W}>TeS|on@wwmGnS7^DoeMVtNoA&X+-Qg@0udF4H03EjvuJa5?f{5E5?;!P_AMAS2Xz{u8E0%LRa30fcRPs%wF!Wd~B$+$F1$$SGqyvranHmVzp|_Y9nXo8|zeycssN>mL|%a z!uM~A{k~TIGx+z-Gl5(L2_P=y3jDOd625jtTg}NJ5qLql7`g-^dJ!gMMm*eZs&$_; z0L}}WS^+q1Bmiu51A(pUBk%F}4PCY%fF6yHXp-D16*G}3wRz4kJA%{0$<(no%bkU& z;(pe#7j9wMZe~fynl3UWExggHcT&h2z)1yUFMG0YcN!N=$v6!B>V|S$u_V-0=HJcv z`JJ|J!+*8Fc2$(^`pHLpdoGd*enrGW3t>pR3?h^xboii~Q|6S~M5Zf6lBhYXzztWJ zNSe=$oq3+7;{Y%KIQPhsni_1%S|#S3=bl*}-XteLfC(^}*Dk!hFRmsSn7Nm}#jOO_ z@UHHeF58xJtt8xeKseDHS-a#_duuW^xGqYjOYH~efkefS>b}J0V;>f&O{#}V1L?$M z@9~G@JI8M>e)~IPzJIM%fb$cj28pb25k1IgFLdUgkU3vXEML;D6zAc{lqISb)`p6l zdpiGsCu+8SRAHK;veNW3$RmM;u@-Bg{FLTczU+64v zD4?aegZzysTb?e6x!4V^pJ@@-)?H06O1YEXKY#{bjacz9ER!B+-hOfQF!hgO_>VXf zbw*tq zf=_9$%YJFNeV?hAB*cZwsXWw{gh|JCS1KzB5K%M55S+(W_U=YQS-2$b{zH`u7wRPk zxcirzu*NV!*yLE9p`|8yNr2Dak~h_ITrB>d5HE2ymN(54f5Mdmq$TZ@yqD%L0+Tei zdXjq}oOa0)*-z@3c4F7;r6ea$;r!B1s4Xpp+pmVQ1!5K4w3995lxpXmgmuwIdYupbjDF9(~jd8+ooua~NGXPzTrt}a&mQ*n4#d6?vZ{z1-Yta>{Cbh7P*x$=gKr|$Hu z7Sxrc34Rrc4GDPn{ASh9?EroN$U2D0b3zlsK_IZG;)tgoiEHxlap72iywK#^mlEC2 znAW=cBe%n!tYVjL3Xe>%4))TxpmqN{4=FbNrt{6(Q)b&2u3zfgn%wK?4R&Z*t*DfM zw>v5pGSP}>&Rhup%)&SoSbabR@}1B2$(!W~dw%wyYnPdXlOKx>`2r+m({+Aud2LD+Z&K;IQAL{$*hmQ&L=t>jVJ@hq^UPn0Fs z%y)LEr&!`;hcSyAIatIr#Bj_APfoVsS1UsC@LJ)flqp|rKYKO{m#k_j!O5MP!IDE( z3Ibg0i<*WEL*=X|?FbYDiVKC;B zxw9$eONAjk2IVAx>dz6~NGPd#DaGzCyUY7_sYLrKR^@m92k_y~!K{<-*Fg}f!yrNo z1YUO-L}|lXSV|!5bPr;T#lPCDK{fvkFj8kp`%-%_hnvc_$!4)56rV(hQ<}FNPSF2= z(UDh^(IrNtZNhnS3ZyXv=TfZE3_ehbqq@o{6Mwdo)pAm-Vd|*vob-qKU-z&7XE9*h zoqP{3ujH%!v~D-mm_oX$Z7q^rO0vAixJ1U&3&g~zsMJ3D{u7dAegZR%f(hrsaMN1yHOX%Ze-Ogdy=VLDXwHvj79YKnySb7o z5h56J+M~Jf`^8q-XD*bnyKWX7cFuFf7pNyT##xL9L2M&bqz~R1%wi9eJ5HAgt<>B;^XSBDe&bKZvtqf!XH&>kmlTr0 zX?plYoRr}MrT9FJ3tk`qip+-RizE1Hrj9qqRcw?PvY>+e&`hsli?Z0bE>^7|zL94u zU%fFgBNMTeVVAVFWbEm{OS-@9 zD)Rj{qoQ2Gx1Q#5{S&Gm{s6}OxQ98>{%q)Nombj^MZ^8=KAC%VdY__ZRhqo?N3|*N zG{tCMu|VECLyxmEuiLWkOB%Cqa47V7K~@ZjRiGwyU{!-~UD;(7|9h93e6m}z_#{lA zGssPMNmzxn1SD6SF~`f3mD9AC((@HTET$NI@H(?UcIsox!#9zyt_JO)jl>dw?+NJdQ=6ZTXbUH#BxmZ@lFhw&$W5UFc5WFe zjGk!ZZebM&=l1OU+oDSXNt^L2q+$j6j`RGCpFZfQw;XMz1y<*3Yl2&(T@D(F!!zIC2>z+6J#FZ79~kLNasH!OK(xdqz3*e|{o zpjwc>t3glOKm3d=I+Mk5M!xLWI&Me^Fr*43lEJZ{E@%!k zLR?Y+ef+uiy0$w^1`q=70!y-@VIfeWqk#>=={B?%mNOkGFriNHtaGh~(y17C{XrgD z?Bm?_S|ZOpfB$492MgO>?tuQa&%O`W4^Yb`>w}R(8Hp@e{XCn0QwDoO#wV3`w+t7u zUd2#yrztCDje%mzzs|A5@p`;d>U_Pp&8vGa(Z!s@M1cDPzm-l%@TWI{4&Lb}x;Vu8 zUbZDWM&~KYICra`^UG(G{26YldRL3iUr?;y`t8K&?(wI2T9>cw|7q5F5t*F+z3u(; z+s}QRFZ(P;JT?#S%krPj^MJDkp(ucl5C)_|at8P@l_ByKGYbnkN#PHQp}>OF;o|L* zaN(>pIAbAZhBxz{5XE5&%%5y7b?$I%y6a?B^6w5G>x?nPU9gO;2#3?CwZ)yc!WBud zjJa0))Uu<$Y;>eqeElsw*+#LHDbJMc3`Ue14wa?4Nl3S!(zP%r^U}uGZ>o z?yB86+yCHA7nMx!i}8)g@(oY0{b-#L`gZ6a-S^_;gXl30wwJnLmQO{fgV!Mx;Ghhg z9nV`a<9>a_doxAK&4)dXnBuy_Q716&=MzCCAqW5Fy=){90F+^3HTNo&!m5gtuGa0- zx_OICy(tqY5b#gPyWn}O;QLbH6Fbu>gY}!752Yged>7s0VU7eR>wwI>eb>txUIX^C zMJ6U9xvBnXBGHMD`_1Ed=|B?z-Zfn_zBg8q5}W<&ml-%WWKz|{sK|zga!+Q-WX!XP z?_1dtnq2o>kzXmx1ApbkXTdCqAW*98jHERmjMijb+TuX2$0R^j*y>nTSlsp4Q3}+T z%*AnUG5L`Xh1`R8QBDiqDE@E`pb%wVE*iAR@CmvXNTnW-Rb@oKQz$Z&}} zhD8rI73kvtM?NpNBW?U=Grv}oK&+9%02beKCxL1dy2wd}C(?2uF<0e?B$AsPGAU*B zlK{j&mQ&oJVxy7K!xLY`f2u})G?#Rh1%{ZXUH_r5J8pc7b;+k+v~O`xna=C#g;Zeg zkrF^;mFQ|d*JH#8H)0IPg_x{RRm-i^DjgGsN_9<`pSi={dy7SUq2x?lvw(7@r8V3p zxzcCbkY_Ywr%tnp3+~)q`4^)8%6paUNTHg%j-_nN)i6nqz>Y^3>m%OhEUd~4+rBi$@7fFd=@)!a&zD9_ z)Y&~E=Qe5oiGDm#9!yB)Xt}7IWzlE)A?rx01u-&x8wl9gbj-0z?vU$hrhX zb5sLqV!SMQ#s<=A+Bwisz7g;t_%qOgwVGv5R#l5neuVY9@B!7t6c8>0XmkNSC0mnwv#en!CQRKvCpkp1rv?p@$rK zuI$Q@<$-X1M>J1iq1VT5Ylh6_bIk|gvR(5e4-SRJ4pT*4Q5$2OqKm z!9lUl-Hb0vrQ`E4i>H&1_%!OAFRGy%GuGn1RJaian*mTb+eePS%NSyY%>v8dq#00D zRLPvp7Q74PE<3ZV$CE6*T-IWrext}=Kla9l^P2{ps%U{O+?G`qt?Y@dJnuXECi zj)H~%gjiob2l1KriJg!NPF3ltcKnhd+a$*q#YS{8qB>wb_M+f~El1&4>ffyF##&-R z9NmyFX4S2I|0+VG>Uq-U(4_t&D|Pj(&C{>FoP!=r+$?gS-&!+H{p4&Zy?swMA)}-3 z4WsNmB5?0af(n=Hz@A5lJmQMMJLB}4T2X%|#dks%2QQewA_iQpzHz~OomT3)P-AI-rzrGCGG1K&48joy zjW4hHXp%#I?1>Xpl5w%|#0iO-IgorqEF6W|Dg#9VszODg_cvEoC(|w_&XTON+2h1M z@P5atvk#10n9E4yrjX#uLfCU1wgr7Rf=yp(Hg;sRZQs{iV@bJp_1Sgi#Q6PM3po}S zzzKUY2pR&!Xb{ZVmY}bsRAl#gkFR`EZsyH_SvV`VvbrO}0@Pqu)|@=~1YOq525u+- zjRct0o!0oQ*&0?#{sFL>pZ5F|W64nrexQ(qw1oA9#+~(fhrMkX*KNtJzuO*VYCe(Y znWgkkh%fN(9O}C#d}5aa)Yep!)+Xhn+-!Y{6bD6MJ>p8d^sBJ=xgvs5&Ww;RZ>}R# zT44u&JLUC+WqG-lueBnzl5)IO{gGZM9fcJzalH}2$ysQN9kZ6~W0_*1=K z*1O8OOPz(3ktv_CN?u47gD;JsxH4E|2pJm{!3-utHV5rM4uc#3+E5Hjz>GD^#L#I7 zC4w7B<(j1N$pB!_sp}M7vE?Mvga_{t1zVG9BZcSe3;KeQeb;{@%&1=VTwmDh#Upk5 zQ`PqqNqK`+sa3hy>L#p{b8@{+qqe>LYsP4^aC7zJQmv>Z2)o2M>MPu^b6%Cp2#SdVTN$?&?`Iu=I4!X;(h_{)Z2DqW6B47QYtd_CT)L8hGEu zJ=D?$060JVfm0~sWX3Cn%{};asg~an&*A5RHA54eaI=_a!zOGq*%^a_p{xwx5M~eq znT~61NdYF5IX6tCi4&7b-RQODr@7C$$*?1la{7s-a)ogUH(GBoN;W3Nqp=QlT_@M@ z|AaE{|D-!C44@xMg^kE`yiR`D?mMrX`i^}TNu>x*OFX;u@%J!KU6D0^pr`PoR*uzD z32I*Aca=hU8N0jmh-FLlgw2{-|DU<`Pwn85OE5{>r6QKDCD0AiG_kDIch-jT-~0~G zS0a+YfG>dgb@gGOC&7hyP1!0As;v#NCF}$45~zbYgcAT4LM<>w{RHqcVTkrx=aD-Z zjMWwpHPdKE=T63E=4ZjXjQFwzG%`_Iu6K{h<@;5<>v-g(q8}CK*3p* z!|%29QxEusqwJhV%AH^RvK_B#6$(?TdR$=c3mLhQ^ey;x54!DS#0R5GR?olGp70xw zMo!;r>FU&E>Zkw5cy@4|C-SxJUom5J8i1z6PD`d`3ZZcEj>$_qq89wC*|C)cuXgh# zU6Zt2%MWFfwlW9Vfk5QfJUs$9jc8NcqJP~_0XM5Ro4lo>Y}sXjWb|A58dwlNR3rcO zOb!lo9?}Il?Ijd{NTw#8#1{VUFfj{NM!Lz|QG59}$L_OgsxVOVOF@sIKU=7@R!p2m z@@F-DfzK^IQ@w2EzpNn?__Dj8dezrGU_(Ii`}VJihyaz&WBR8aV*Ypi@s*;Y1z*Z( z#9d1Sfj}e?*l5=XY(ruM7Wzwq)XQ+f1UZDDp*Kw60b~$RLj*z_5vBfQaDtGb$D^Zf zoyf-($)$_svs2%HUN|!zxNSn_Lq2?1fZF{K`!UCUm@~njYcE2hsy3xS@)V`_W37#? z4qoVZ)*QL&_B-jT*>n4;gjDMFE}D^@a|ihzGPYY`ZB9b}+I95{Bl88Xx@!7wCU3n6 z5q^?|Hz7Z%DySOg6qpVF4Cb+uwjV&BsFd}-_3qH~Q`zLl-|iOb2SQSgu-Dq}%xvc0 zhn+5#)iHWh)!Ypdz3tQS==b?s4sS2QS=%|_pbE|z77H;r$DrAaoN98KWiXt=Kd%ZG zB!Xv9MCloJV2mDU2S7~J-Q)B4yAL{yY8 ze?so#AL;y#*0^(FIB@EnDx=>W4*yAXgzUUIBi~n(#4|+^=+%{5X0@8jf%^&>jc`*0 zuoFJ9ylGsHqud^s{JYnD4y)yHlWv}>Ri;64*(+z`B#u5WHwuhInT7(kAIGx7ig38FB87r;i48U(;$^P?9b#ElTP>%+}J z)ZivSZ4e8N8%9H%7s^27VJfKQ&D7vxWr`jc2Y44u)9#SIrG+nv#MwN-9jx*mT)C&i zA^j{wcIwI2cezh)Dg0?O{sJC!^zvF&2CIFL#4B5Ylja;OQkyX*6EV`-R#sOURp0`0 zGfo6DBmG14jTvCK2&pJ>af^FXmZF*Q1{KkjYuC5YS5y(piavNvup@Re!*RG;Ga+f z>H}DCwNLoO=Jd4s$*Qs6g%Mo@`EmUk(u*Zq9%#c-uDO_uGlec7W^?w_bo#r+$ybN> z6%;MaZT~)KVN!lo%StA;OOD@$eJ&|Tt#wE!w#@%k+Dd(cjU1RaNZcz794gZBNO?d#^Qqm`a@P;eiO`!dV7&kWfe^JC?s1bX=ek z?PLHrP$aNIV_^i6ax715Z_t9WJJWzv5@KW7Abj^&FGl4txbIt>uc*7^D4t!sL`-4R3y3<0)T5&&ny8V5JEZ z3OXtWhf;ZxXVj_;GY_v~n&v==k{5Oto7IdGB{FlvC^c{J(wZZ1z4~ zh~*ASDO%EWwnwsXGd)<@GvC(lQ(ynYZ=PE0g-^ zDFrL%VXn*QS+!iM!HvW$T|~2*_}%V3a`lbn)3OSG&2&kBnRh7Hp`7#Ze&g)7irW`v zBgGnnKYIi`s&gejDZeIYwWuDN2JL&i9r)itLIQzg4=WIG`f0reJW` zY7+&(15z+3)(Qv;yw1<$0H~vcD@vFbNkhU%!x-jiS`tcq-JB^;^+N#+@TmL|Rwf6H zDtZIO5^>i&Ok&+fN%bNwtFF!8t(V^X3mL$=`F!303&;25}J=nkAPTgtjQ^avQY`CQkF0&BMp>p35mRLAb{7)9^3 zN!}R}dV2qOAXM$^?h8!>0V8E$xhp?VB;~R7ls+ysg<@A03!lz@Jg!_Pm2HYkQ@Q`{ zsd%gj+UkWTyH=xI==$tKYGL3a81=Xq}z^Ypq)o#6nzl0h;Sjvx9s zIC_qg#r<%jRyjQq2QNWWP~aIo<+<(*hNGzd;E*o^41~};pCfOC9xVzry8W9%i5p+& zB948i53f?qD0iw^e&c+SBBeo=+alO%bBEfZ+){i)(Y?95nrmk0jwf2?Jz-1ygy6;P zQj5KwHz5lte(~QM?XRk&Myb1hzgG6f*CcPk8&Sh-F@uH9HyP?>7Mwu= zR_DKSB^dMAUw-dx{-nD##odMD=y6)`Js%yu`5StAXRIf4IQkH9nT1%Q2r8_oqi;b3 zWueAQ;t_H_!&Fx-YydDfMZmG^>$c)KC)+boCBCxRXoO54y8yeMb^H8ffZ=5sKKomPih+kA>U3ezm%Y@(|7D>f2=XANby)G?3pum5`hcAf%Cxb*HjEtCAq5O?~BSJgRSxQh{6vf8%Cm_Yb|LgpT%%nfGDk>txXEJ z1mzGvER{HJLB%TH^ix99^Z%oh@2< zS-DLrSgMU&h>EaC&)~{Ot8$nhskit(DtN!7E^05KAR78Lr+^`D=ahW4gR|_*iy~g* zSAo0_8qWuYPx%V}*N7q7i8G8v>I&qh<0eb4@tQ5=UZRGS&f~u}PaW1RM%XidtdHvR z&Nf_0eosO}qR3T^QyL8HkSze%+_uR^k0i3v&<;Fs3F61)PzYc)Xv9sIDJm9eTNyLb za)m8djrh3EH(9SvGK6wD$%M=TQnyP68<}*_@6I{Ytg-lob7kP|xA8$G;XHa3P4agLqq{o}d!2sE*lv3TocUTFJ-?xzbFJErBj${7B%NC90f1W zIW~Ri(keo?IW4~WCMAC>ZoMnDDUI_@rHOESN~Z9c)A41zg{h2(^U0}sR}M2APHUe| zqkEc7JR<6e|4JN<-x@13_Zf|dMFhKbbW9x+8ZC+%-e=Eh3yaT~axLF7a3H!apRCfX zF>V{JTX27GvDcfKuvx;CS7;;O7V`9GF^Tvgxrvj9b(hEiwpoZRuB;Q=lp46(#3h9j zFoAKNn#3#WuMM!g7UU<-6VKY5eadM;k4p-KH8k=qi)q));510F!@$sgLg|`&bV22A zp%cMU(-9{tv-aC76jLzSMw8|&VeDF?h5GfAQ%HZA5szI_`X1D)?~aRfegyK^RlPcMdw7rx?dWAo(Tc8Tn16JP8nl_PVnj!yPj zqjVRqYkm(UTK%6|K@}>mT&-m(>soQK^O%|?93-BVsT85-@15m)d%JA;#=EL(mZ<@| z&6tgYSF-XuIq#FDH`N}adh~fNdA-)3Gb0D8>8*G9K1?iivwkAU7upGd8x(C?cxg1$ zBg@xxF|bs=gcuYJe0D~PZjVf652EVaHMY>}?{W>VK~k-fV+c`|fdZ zhv7gicdBBRi!^04D8Um4IntByD?WMN!q+L)Br)SA&Q;m`gFD|4x=2rDQ#1nv-&OZmx+{+;HWG&^!Hf{CQ2Wz@X zcH&pFM02=KRwb0^Cf)X!$*i`2K|-46Ys*DVjEV4i zn-(}&eICENF_}zzgn`6OzyYj)bwjEqh!x=j@LiOtJIRJBL3vstY`@%il$RDY>`>iXI}|X4JZ-C+Z~c$OfH%!6T|#87I{rmqpqZGvO*X%*xG75~Q<= zRI(~9@$yURR~PUMxzTwrN}b_pddd2Zzg)@F{Xs0iOR@8!9!-Qt`qeB`uqBz08mBpvsTcHowaEFm1|>g{2r~JH1*e z?xpbc6}jlS3geER#Gz-lwQFaJ^t2%6P+yV~I*el>uP_p$O&77_RfXOU;+R{2LZC@# z7fQvOSa)f{dn&gMz*dI=B%mO8h>SFwWP&KD(WdeIIvuE~0oL#pZb0(AX2#S&#u6sQ zbSu^y*rinx;oTtnorN&+xdeVQdyL_2MoJ7X0Pw$3pF-6=kkjdVTz^-&;ahjA@|Fu5 z>~e^WuBLz~dTz?NqO=-mUfAaGEqQ&TMl7YGHu%+JXptaeL-V8$5_81Y zDNlSuF_na;`ytF#LoDX0IY|Ich$~HjYMNSS;HtyQmDRuwW%?k{Q1@h5%;2?1K?OYt zIn`N#yAq;u%mtvzW^EJWsiK^$?Rl*8zEtZtIDsQ{CJT`{lXV587ON8v1G?*(+H{>4 zcJZ=#WYV}bBRI<05P2=xatEYYqr(fyD#uyz*qD>fB&$~|_{M~?R26Hk@xn`l8A zSlDc4699l+hke_Uj){Z2+0Su`g9eicI))NVVGChXD<%>kJErC#Yz*em?89PiHG-_H zcdD?`q~zpw{ZASCaX%&Vx9lZO)Wn!*{1ZB%`-$#kdylL2t0WkEvT|s@hUt(ZW0;iB z&zr>FQZYa5!9kx0n&RV7BrRWTT#%XGc$Oi)hjM~UY?PtR1*!w-8J=`~_wkyT-HTFk z3&xbzA~o4!rx)2n2Ev9})`!K@gCoLztUg!L>t#Ih!({I*WPhYbjL27{XJQ?B3l{~R z^EtiBm28^wxK(SC-z6Xngd1=$mS^W=bQnpZJh6~iR%P+BXa-2N7JkM^vasvO6#GTP zv%3t!%|~gd&|enB2Y&JRrmYAV4Wdot(T$bFI5JW!i91%(6H3F?>xhpIrC3R*eX;ix z?2DlqBeOj~L*GGPM(ve)ij@MFiXAsqP246+;zDkq3bN)ommnX@GN}=#5qOO0@?j>K zrU=~cS=)krA;Q_M3O&e^{kY6cbed;+(#O0Z4_rpwZ)z6gyiEJgXEGjvYTT092c)iC zbwir+ox9f?)d57HS+!gMIjhRY!!qeAK)~I?Spe{W_?eZ}S{~%KqbNNkp155tP$l5@ zN#={&3YXqGLaNBe6vU19!P-*af&K{%x4#8BnB3#x43h-w-KmUuA=MtcnaonbBZ~?a zu~d;+c%4t4pUy+5oqbfI-*Q-$TXUA&;hVX`8ro%JT3C2C*)&!jg+cC0qm#?l3(;zf zUE|`(;bEmcepnAZf6-AwU>x{js47F(inHDAy=Q*H;w?oE#|@P@_S}`{-&$RmS)-tf zFq%S4KHVsDV_&D9v1AonCnxkc!4oRtCkTs zD=eZMFq(y0D7;-DK+eO^)IqHmJLs_39B*RAi#M%s95tNEejKkSm|5ufb})HUzjjOs z8zo>H!=n<=B8RUT!;@o8vh#6dn@>pFB00GLet{+OkU+JiUyv=GM$O5RJac#JrnTyu z1x4*LuO5eFbbX0;J+^|1-1b4qN|!xSRWLKhj*@32{^R5K0DyCRRy|dI&{v6q@K#kL z)Y5<&oS_e9*MS1=`yh!|kXBkMmXA*ImYVT5n%Tf2I_lJB)%hz9Ddr{zgbE-cl;7-%G1 z3R*p5ZX#@XRU}Vg@8!4raPKryn&y(}X_hMTQi{Upau#o@LiN0pRGLiH%xRX{Q)7*i zXB8%VlVls}JRjiS{@-pU{eO%98(ql%go=X?z-x+Sb>>oQ6aRmo@&DK2Kd`3sUlD*3 zAmIOLJ0@HMfNWwuei{-|AAU7hKB}s+15l{|{E$A)b^Xt|o0`GlZir1NLV`Q6^x-+j z{g0o*BTq;F_sj6c=-->gT>4PNLkObl`1{poKXq8kqxa2EQmPQ8&$}*+c#S)*@0JM? zW1uJ^;9Q@7^)e*s%?C0I{2FPE%+H@Q_q63BaiSF>3t~0$N#;qJe8Gp5ZVyDYXuLS* zs@tzF#PN5CC5TNj8*+sY>0R=KNR+YR<-AKHyrh4?YMy`^3~LUIVi!J^Z@pIxevx~_ z?Q>9n>#zW0)J!_+X#7IiIhnGtYJqe`iOc<2bt#rs5@7Hu(lE-Vrez7DiNh21xnC~_ zfB#+N_`*vt^@CD|+{oo>ZJkp+c;^mbQx}-JOFYPf54x4?aBq^?(jDSqu2IVYpgk$VjfD55!o6RAUvXc{n@{DEuUu8n^LjHqO_5T! zIe$Lau5pP!NlxX3D*bKH=B}nXW4@?Z@=ihc)0*+ml;uwCcO##rC0L(_5Z@bB*K{S< zhsL4*%_y5n0s507_CLVFJOj8MRiG>r=oXPMe1 za$I6p>RuR?(3=z zER>r6Fw2E7+^l>#&al0t#S+91<&U~Q`Z3?I@M71|tv&XIiBB5y`bluPw8)u1H3Ltb zwoo2dtQ$6!OHHo|d-M641bn-@bmq33!)Bqew4G+Djck4Dc{6Nwt7Pn=ezUh#972ea z6-S^;QKUKSP%RekI=)9(L~))(G<_yDTZ9JpW_I4@#Qfm+ebpML-BK|Q1+^KND68O# zqhgZG(K%8?Ny{?1MdR6dRC+tJwt_m48!?(4o&59Vu2>JR*{WNj!2%6)J%rUOHa9X9ky!Ulxzl=LZTiGqE=fyr0S8f*BEDvzbAIu{Bdl> zBc*y}E4LN5G}VS2Xw9^Ck5zW4O`T)E+P0$6qGr)mtH#FsA}>jX1IvUS+il)k{i~2Q zy2kOZjYTVYy@$)U?T&w~Du?7P=D6`PR&!c204y{NfQAAB+z>F3K7ghMBN@XEsi82E zkq?H-x}Ik#7K{_33xGBO#R~&(%FfsAlm|XI zm*U-a^7#1px9#_kiy_9BkB{Gd*r@f^ZUO_yC?G=&bbX}##>_J=h2u{`3{iu@krpT% zM_2eKgzn=8Kj|pNh`ynLVYjPe-b)=0cERFkoCtl8p1SY`jtAVVt~9)}<{|LJB+pX! zR8@JSnmh6a34gc!aRzm=uk02+krjT1<>}3tbALWPs_VamEBj?GY^V7>f1%Pu<8oc} z_n$$@jcwP~&fL`uSde~jL=8%d8m#Yfes}2)F805q{<%NR_}!=Y8t%G=u;%=M*~e05 z{=baB|H(aeh$UZCzOAqj;$&QHSNY)hr@^t=pW8r!3V|OO0?4!=a3Xo((uM@xoh1;D zGeMQL<8PkHXhfXM4nD9O-OH&7<9n3XyCkF|-+1I7WaCHLQ%2qOGYdbfA!DNuCvTmS zIGgKygd6k9(+(Qu{bWcY@0-_EUH_rhZPR5q+Mx>K^Iovr@W5%2c5Zv>mJJJ-N&XJj z6AmiVO88-vLwTSb)78}xnrCqLn^N-qej`iXkPcFY^w}qc$+CryEh>7xP{dF8@fg2v zis$*TE}|W7<$25Q*W>ynRJHf%h-G#YJiwCNp~XUR5Z9Sh zU|!w-KDa&t@Wl%97h=!(N^@N7lGJ;Ti#W1GF6X)FrDw`W@WgCeBu?`@m016B06jp$ zzgE!D;jpH!xNg!xtyI)l&$<==>gxjryNQsFXZ+F|Mu*RKXgn^Jx&B+_aE#z7^_k0y zlIZhIMc&}o*|E*KCKo{;|KY&>eni3Ke@ zULkmI=IVCqX@b$=rWd@`Ai@#gOqj$(V)bjSn;bPG&^XGMDqXYIIqVhBnw9I9kojr$ z0YW!2c+lXP%u|ivziWq|cD{Q0y+rSur>kR}+n0`ccV#9;0G`;W7 zJ{Z$GqK>*G{1e*xz!QsNsTDinDG$b|z8-szBd`rJ-1=FiDp3L1T>elvwRbjpNx!EJ zda{Crz_`;l z>yEx_8rs{=U;nKxx$}8hI;M?v?G$cud&C=R8u&_y1B?++VB43a?eH_DlU-@;Dkuuq zWThBiX)pI`!T}a>U3r#s(jdTRm_yybf*F%?!MO{dM3V6tBNXUGD2@N89Qiu`Ue>CV zl$r&X!~waHn&x({in12#lt7T?l301f5)eV=mTO zY=#hzZxY8@B`mstEKmD2ZJqmUx#a!O`7Gi5(1El@L>^4xp;Z8)$LzSC{Ij^QFVFBH z)+q5V^`gCHBY$LBUtCJA^XK9xN{w7{0GX8{U#kbsiGi?f;kX0=&TY+4b>1uzV5kii z3UjKuHe=dZ|4&G%2uVlgWoYg*Kfea3)|xDr9n|HSlN;^Q-X{oSe-PR`8BXSES5jm| zoE;#1pE=xMCDzDorX_&RDpcni;EnVA;-dDOHdhIaiqA_HE4XsJS$&3XKgCdTyi&bX zm6(OQyRmW@iMx@JO3`}Ks9>a^p&3r96^Uhz z)K16VQFTsI9Su{(G{dM){)6B`N0nh$g{8ZESxWO zzmDA^s(dTgA;^(U5By&pqq;v1h9;u46Chcq4-$UNzEpgbu+VlhZ(mY+=VXA@4=dKh zK<&@wm+gi08sBVq&+^@lhBn}Ukdnr$3g``+ipF%3E3cR%$=b0Q%U-2(-GM!ZOCdOc zi}}h+I=hm^GJV`+=6LrOIE#UGO$8LDRahnw8>pI`ED$O?hw9_A$0jmf7obX)loQ?Z zckjSSp8tfReksPHL@Sj7!%oCCds2tp;@{jH)RPdvotDu zj(_OTga(5EP#Z#@G3Q2?Ox(p$6zPM5*AZ~U(0m*xjdq>FhN(coLHwPJ%aoCdM$hcT zZ#T;HPBr))yE|N1O%czRhFZ@rl^O{=k=m< zwlE-Dio>XBuuY+s&l*+>OHSz87Yll+Gb-~qbO}A23z^{ts12hLGfNlLMwo&lARh?t zIOiZM0SKUi30wdoRe&i%bD+w^0ZIUG@8o<~Gr4EweXv(v-g*jiPiy8NZ}!jUM-26= zzBlUo+15X$YHH|y%HDC=-M*CD+Vec)2 z@`#>)&v|fncXxLU?*8Bq+zD<0g1fuBI|=RtclVG$a1R6z{%rEQd*AHV-nv!$uidS! z+pnkk^vq{Y_jk_p%#mW2$>zP+su_ntMoEeY&qEvkb-1nUQe{f$#Z^V>AzNMcZXY2D zDJsKP>{|08rslz8Kc?UEx1w{U*iF+(vJQ%ZHOyIn1c{04(B78Uz)1CbJO_ygu zT5R@Dcd^`L;ps?i=Gk99B4tjgGKNb#X4WB4$#CuTrPcUXP zDSO@(b`|fYCNhea4397xd-yftv3087di(8YP~tKuoc2UQD}-A|$Rf?IZJNPBDQZz; z%fyw_2}`^lCa_~2K+mUjgq%n(Wcm{%r?~yWV7?HV=lL|0P1nhz#7u^)?31ExT9w<0 z*tz2)r6rc2+kcI1YoX+cq2|R*tzVY>j}V!(Q>d0v+Y4oO)?j`+c^EhC_7AFW{+WC; zCz4v@!%9@Ff*#3LIdGxQ4AJgxDiX>ZejR&Y9XKM>8V-URyHtu`j%^2>prC9;s}h|> zUd!W{bxPSWok-l^84Any=-CKyK^6JrIBe>ebb35J=+U84J0*i411#S0Y;6R6uA>?X zay`97-V9?Eloq*W`zWsu5^!>z9V3$pNkrmqcpA3aVyW^t_BM!!sk{uz1>r1L(Ehn4 z<&)lRBT!Jx>vTC?S104 z+>kVySmS+QU{6bqmDM7^qP1>EdAfDGP~qL;mu)ZIP$S45+*Dm>Q@ZY`T+|djj2knZ zpqfefeb)~GF-cZMZ=1{9Qia<{U7Rh160R{$R}>GxYh1f|oknAF+TVUABvWTC|uz9>(` z(PFgrzpq21Wv9sN_Wq(k3unoo1fxMAJtbN!zzLQX6y4cL{+!h-6bo|EkWB!jYw8** z!eyR1yN0Zy;9%W*#ooPhxeHnNffKvwU#6rN_4rlHu(EYGd3SA^$S~~m+u<08+(El) zXT;=)9GR8l_=gmNa`xeL;wdcL)p$qFp1QB=j!WQt z#YZV6zQ(sk>7b|LIN@dG@+keH&Ze$x`8`OECKVa`pvpA$E-9N#V~fv7X|Oj$lBt;V z2EH*%!yMwDexBV(Q!%YoWmy@(&icL{r6sG*$czhG#=df3)2>*@^4AHX+We-4LoS(& z3@@idwRD|FCO%Iz$71}!SnP-#1`)lw8a2L|p0`l|H=m*6sh5><(=axYahgMj(4;_I zvR1-3H%F_wpt3kl2He|b>$(=HuTjemqyzmFxu}}$pE~KAsILbdX=It^EGwe-| z)fedTc%k6tiAOGne~@SFrR>`xgN_%#XB<>!gz8sU%;q6UQn|gWd zmb7sb%tepg;HORwj@fNd!e-%K8a(yC~^2 z8NU^@?JjEix}PBA;#RRzQ7LRUrtkZkZ_)JtX5i);QQr76BjPGl?g(*;iHy<1S|fqp zOV}SPWq_8uQht{$!$_TrWPwkMCf$I|2(+eI2WPXd*?%nrTeM82!V*n|NfQ(R^Pa%m z38|as1xl~Qw)mimb)^*!Nn}^m2)<4FLlTp0+2@9hby9PEt}zo8tF_+~kz7>2>U z9T8VS>S%K!kK${acqL{`Y<#VR1$jSp`s_Re+2j=IKO@ZA_=r-s3Sn;s0a8rqY6{Rz zT#Aht4ygIiLnlUd6<9f7CvyTDs_1>`U$v(r3oo{f`>!&E6(JbL>&V%wDe5JY%^rOW zPBr>X9Yvz?yo-+;+tIm>&Z>il-W;T(C*C&n z;%u(PiUs1Sg>&y4q3l5B(jKKG*RmF(#caXEMCwdq5kw?rIHRa$*ToLIu%|2|o)uIj zE0K}Ptnc@s4EBEsdMU}UX(~!5qqZ&#{v(9EaSKh*+4E!}nh~nUUodPf#^CX2nlf;* z6MK-N;fN}t^tnOJ-yo!9#6ogcqv%CXT3wA)O~I7}P4WObDotAy?l-ek`1Kbog&s=} zYu)C^QodNU?3{sYN`XWthFZ*RBW<5p6R`*0 zmA*sYINmUswr*LchZjX3tLQ%3$?rI`uUl6CLSqgay~o%xV8L#Llx!r>Kt*8}O4*Vh zVi7c{A&~N0qSK(m$x~~uq|4P z*T15NbCoO378XQWQRYk6agf9xGf^dfMnw;?yo$0|R)8tuDbgcXPvk#^9UPoIg7Ka0 zv}PHtuOXe(<={X53SZ5u8E;)6ju3T7!w{osfy5w!m2ZHUJn}7htdOOhXcVCgo>eB& zGWFV*u;x13=ahv6<_IG#ii2b*1_d7XcOJrj)VA1Js9t){12yNf6as%COomuhq}7ct z7FK+S740Y~7jyq7PvmLD2u1~7w5V^wb>Si)%eFYubs-uNZvslQm?cXYGPgqY)5j>@dQ_Cy{-| z>V<`#)`%&2g&pfS?Gd6SI6*rtBg%D6B4r9WDNsC2u_^J>-!64#PxR@O8TEvG5Nd63 zsBoA{DdkNY`meNS;3fc!Cupk_+^Uu~RaKXF>u4>?ycpPIH3aFQ84CTIjw%K6I?9w- z#?+vB2N(1vdDGjdENON;=m9sk#=%gSARZTN#Bgyksw%$#Obn!$`JTR-Iv%_%;^r+T#sWZCNYsB?N zO7LkdJ4)~)T`8Bg;9q9AN+W|%7#WL_<~myc2$2V!hw3f#+(UD|LW9~1VZxd&Q!|P? z52-MJd>1AtjFgp?Lsz@-`SqMm^nLkjLcsM)y&YISf~Sr%N2yH9ns!F3P6cV-r{9xi zx!&?bC_m^?x=vo56ap7fESh#$?c<3o z5@sA5JLC$2uX%0#jj)n}BQFrFOOvl3-FfkkqK6 zY13c<+R-RL%IICn7OSvBx4&I9g6qD1#Fw11NrPnBq$wEuI<;i#Drtv3t7AILl*MeAwB?gb?P8D|QWV1GiBM0bfma`C(!ny8MUF9)uBQ%l@En#F z5BkoZXhsxDlr0=KzM(ApHK{CQ(onMB`&SCDg4Q~AaKCkgvAJC3a;RIegLl|)AUA%O zJTrsmUQ^Lal&`06)P%H*?K}voEBu}vTB_)gAS`VLFtDwNyX+(@*D|b(WF<#hMqYS1f3x^P^Kg+{9n`JSD{3C?L{|kyByyt08G($?Ky&xz7BqAqu5vRe!Tf?FWd`wwuWq`hW3!AP> zXvI3EFx)siUGZLO(2}a3@gYoEl_U)IP6jJwyFXeJ$L8>e_S(LsSOR4vLak6xRf!}S zMFE|0#1=|Eh)Z;u4we=xagicLeuwir7L!`Jk}j2~s7k~~<4*DE&(&rj789MGD2 z4P{|LTn;O`t&MYy2nDO8`jVwyfOovlEi)qT7^|HV*KIDGDu^NO@pJcD`qW0vgW3Pi-+GCQ@ z@YkrGuSgTWd|#v5e1ajFa?DkX0?uokYt3lX7z4LDS|!2ecPNS- z3NiZRTiUn7z>1Mzp0CR9z`A4^rBqCuKh)ImrIcXlWd@|FGmmTHddvJEi2rSDJ9*oS^jFvrZ*r9WHTkS24l^hUlTdM)52~V zBj_OP;6Wa^7(=zwcOnUGhj}SJG|A7^9k$JGx|=6?8?5QE!Dvq1?;-k5JssPN+_C&l5~`R;a>%v>XR# z_9Pu$iT{#qFjNEzSGSpmhSE5>>oUx!B-57zn%JZQ+U)*oE=Dr!B4p!4GU+tVw1g^J zmD1`6E>x1m*r+i*2PiUH%QiJm)1(e5DFM4OS$fu#U0hr|5;LRlDWzS-FrJBt3p(k} zDk5SwW}JBzcQ>-}oP%FkG0GXzVG4+5Ucvo-gBD6WArxVgd(tZYd5wNzBF6725)dUD zoAhwop7{mhnSU3Y_=)=14a(uQG!&>YvV(0vx12^qY0VbUM;QyBsuEREu)5ruN)2Qj z^3a*aLJE2Gsi4gt#udq9tKcRR(IOg0C^$Leu9bEM1qjh4B#P}Q*qN~r201RPJkk1n zs;UCfkz&Wp{mjG7tahBe3wYK^W~^}}q!MNCGw^nMcxS+{R&p@B@ zvnYKDB^(s)SSCDm(>3PqUCatIT9EtBj{L2lAi1P^Sek<%q9tchM3$V#*X{58xJ`;A zlZUXOO_&~a2Dq_f2SP;OEORGyPgc0del4r6m(^6F(KIp9DEeb5wM`UZWWxfbGfVQN zf`;eLf-rJ=C~@7_Q*pUbX}(!ctB-|3@0!%@sS27b2x)Th@(TK|%@;gmG-)+x{(Leu zx&blT#fFu5^()eQqQ zN0`$&r$QpRO^7qCsiG}CHz6AmhrvLCaX`CGAsbGN0VSy;N;||uFb=~L0eRX<%*-IehM4%P=UebkB){w)_XE8kH(LJ}9>OI$vjjx3rVA+HFI|YWa#=H_v z1&iD{k;}uI%J#w?H8tmQ5CR1P9C8R6{LsO`WS3ZmVFaCT=|apF*%{}}k)_>**>GU_RhKpdK@e;eVrf9u0{Xi(jO zWAN|d7B~oH2XU4ponipIn1eW>6g=uSMLL8c|*wpego=M)4C|P-#`X) zbJGHoX>llO1Fj%zIPpce+oC-XFysUNR-r^P#S)@<8Pc+H@1AUC9QU^crLQ;#7!ER9<#0rnPAAhfwuXSK*SRPr`G=;Tj8d0>m*n3Bm@< zq2W=cWqG(J^p@mPYj;pA%Z1_#8gk=EP3fnRlh9CLwn0)s^tb?uEI>6_hZFLOT?)PQ zqnrFfbaZ6epsqH(Gp|pCeP%D@X;eca$xN<9)7vV&F~*jqaTqmdF>SZIZHAvNd#3AR z&M3e7-NsHCJ)_k6*Q_DD{0@p4GHMp*ZvIxZMn%R?-1BGOd@0AgC}P=)<%|P6BT7c! zmDL*)owX!~lbuxwo!3aE)QD9KnwFc-F!zdYqnoJ>hi63sI!Hhs27sssV>*u-2P#6E zMyAM*W3haRtH5{{_m7YhHclwPW+R>2iR0iMC(T5mC?N;~W0rRtz{U_19~jjN~d}w<TBDSjVdnBrbis^YDo5EInaQrRh){6 zEmVq#VZb3w0d4wh%J+k(l!$|Y0|^>LflUDg+9q&cuW8Gwy4Rj;n#(IOi!oeSwz+UA z5{^bZOS4$#@KFp(KNj!>G}o>CGWe>CVR;sB7jI&)`C5PT%KIn& zOs|dq)85PDpM(6U#G&Rx#)ldTfVr;*aST7IALF`0v&9JxR!CWuh-;8#{(8X=!Z&KCWN~GfGU6|R?coecR#=wTC%`4P46%y*gVCML z6YP~xB2*nOkVb@KTEr$_jgW51rz{>NS3-+wfTx(5nqR}#NQ=Anez7&aMRABOJIAsU zhZTMtPkA9qx`uAO)OMW?TDh)~%u{`QSWo7|Xi{CwqQ0IFnJV(MWvWJU} zMo|OK?5Vf%kDK@8VykA1)n^2eL1a}m_aT%|X?(_3H88MnVFXzE*<^YBK^87o>Rk-m z4Pb=jVukVYP1>LAA1dQqP zsr=Q_;deP1#c~p(XG1UJ9zj;-BJ2r??>zUX#xUKu)8QEPWEE7y^bg<-+yZQB)UXOD z5)R?Urkq6DdL}&H*R{G`RxgGBs^k(cPHUPa)JQ%6qV~&Zv6r&Q@iQKWPBXM}&m8y8 zsOx|1-O;NTq(sv>@U$B;mzqOEA0RMh6c!b)U_;bozrIK{eWU!gUjyT`9hX=>S9E}} zt1C!?mZ9E+x=XtwaxDIzbyVe4>`=mmUM$p|V9Bfg($SWF5K3}FJTZ%iYPQD0WA%i; zk~O@H^%i*DrA#}@L(xhuRl{yWX|)JR4HbDlP5O+DTT5TqPT^?&&vL=3#szG+RdgnU zD7Orz_K?7s1lBBC&3dSzh;O7dE>j}RV!Bp?3D;)=j=GZsefnLE$j2Qo23-b2PaLTf z|4f?qn%*y;jkv+K@oSX9!TW7zatdQ5&l6_VT6e87n_?k!y2Tvj7vV1FdyOh?W%Kya zhKD;FW^H6=J&O4szJExd%|zYG0yvyO6pfhc*(uHUb%RjPemv&ndX0jUSh!uWT+J6= zB<||%f4auluG@daz_zTM%vz`U)_qt$+FYKKKL4Ost7Fskw8%MsQ2+7ydq_ifUy!ZiL-MaugHneIIV6s(z)rD-iHcx~ znA+eF=3ZXm(njI}Eof5{{v!l9V+RrD(@O|$0#IFL2U5M_phRp6@let*scA4pr%nLX z1{}9qUJ~}r2Zp5@JFW@JVkQfjoa<>H5{o-;G+88Ip2WpAd=~~TQ|$E)MlYeX&wuyh zw^%PDeVcm!NLEN;hU;M5YEYrxZ08f?Vc2{`%zM}+QZf2%Z$DH1R-Dh@=z6*ZV6X~R_=0>1s)hYHZ&&Bc)!7)*_k0f(q$amVd*f`aUH zeKW&T{f}LX9@_eumVD#(Y#wwe=w}&Ho!ElH-u0{d(o>o6dcwEOLi3^V zmq=jUjy4wib;hnB9Pwy^Pl+L#1g0DmB>lrE>dKR`D!lR+qRRUpd!9|LlqDpB22A0_ z`{Q^(v6P1IE2W#&iT)A#(@zYI-B?bi@`w~;+eV96SWFmsk(G>;Y{?0@O?>t2L8$_L z+m|u6uJh(KXZ*bQCkMOa#|lrw6A7cMVY*jYIVWk{uF z8j6D`4wgc7ny4jR+0!&a86JZ&4rGcdUW7m`jIUjf#6+D9hbuiku;$`l^^WX2Ev;(W zwvp&l54}3-XQr{|USUF~Osf(#9ig&}uasn2awHr1seB9g+VD8k)Lg`9%a7QKBwyU=+aa`W4CEPtl~`x`KAh`%&aBL!gF}-# zkg%p${grDyaZKtC$l7U=r48)qVS^apI39wABsH09P+13f-0K$lsfmK6qpO@SU7XQ8 z8*3~VPR}&E<`@-d+O(CAv~HrR_81*bSZidc`Mo6M8SOoV?zQck6u8cOb(#-V%eXzT z!8~cTf50c5(XxGumd;j7@|&{^yB};M5`np}Q2SIDyoIduBjXPXj!5=-&CnmmFh1h& z0cd|88ixEku^BHgW2ln!(BXn5w7$Y}Qk2RxqsU2VAC)2vyH}t$;|1*zNdWzauIu*f zh^O1ya)lgHMv7Oc^M?c5Aj(O_opZj^r zxt(=l*BCjY_R|bbbB3Q2g|baIQ#&XMgRx4>)oa0~qxt4Tz03(Ga($5hE8As@IslfT zlg*6jl`QsgN*t_I%XzdJiXwp)XvzneV8Q*=YSf{Y9Q%(8q^0G1Egt!yi+qtO`wEq2 ztMpdYu`JHR4M_R&Xk^B&dV<0Op8PR|fDjwQVNA${n zUp>(NAK3rQG5^)}kC4H=^8ay#;s41H{+Im^tqe zhYftrx1&EtC6rp9A<=MTmANtuu?>;`6I&E$((}g1*&B-T1HbL=zej#N;#d4 znXT3Cl9kJ4hO-+}VY-ZcD3ksRQ;wSzSlON>m

      ;9^8g~*+hiCZs4TW$hF><3umqY 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

      $wOKy{1W&c+fG4m51L|4u!sZ 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
      Of6(P;S@1yJB7X7~ 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

      C!uhg=J59gfw%Yy_jP|dzRKqj$$t8iPqbWJ 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 z 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%0DxNP>2GPDJ@=~+4_t6(!m(koSn=o|m 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 z⪚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

      ei#24YIZr7Ph0qMHpKJ&za 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�F(?Q^~etjH{%Rrh1_7o~M)%>`;S6n5A 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

      WQbrf-+aV)s)*6aqPiEG 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

      tR-@3WR7H1g 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ℜ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%0AeMFN5>AozIrh>tM>}$NpvXCYW;g z@#!*}38wfDy;QF^U`*zMsS~W$x`uXyP$r*3u#yr&s0Fr7_X^q>LX{8{gIg&jgsF&o z?7U5UQ1`W|W-HqrXIpc^*PfJ`^h(*SS_5}*HILJ#mCOqo35FA@^dyh#>{v10#kon}s}pbbtI~8eFCzcgS^wX(6+`Mk?gZKPhN`$Q3YN zM#w8(92IhVy^;=u)UQ-fR>);99w6I$3d#;S^J{Qh$P`5G!H^s1(cF+r$a5&)D1VH>+Jq)jVFf{(x`3VHPp3OW)p^he;UkgnBWsE|2SSsL=> zPr*5%QK9gdG{fDLyyGOtz|Am51hct4@Ga(Kp(B_cW z7~``cw}ZeZA?4`G){wUVc`hUtZ9E_HSZdKJq_l;+MtC8_2>}uNCCUA$7egL#bSb0& z3|_pR+C%6nnEpI8Q3%;#6rb2iH$$id#F?;$?u1Z1(nhz^-4L3E#WT5_dO|1`WID5) z9)?gI?6WQy*&&pQrz~IU521T}hzETB5Sj;J$NAE52=xQrU1*{Z8i4>x+Db1%=pfG) zt)y2WbQie9ZlI|UIu6KZSI~3_mBE47w~^kV1O(8TbriduoNzP_ZKC+?bPit|H&W7e z%7qi~W;G>mCl_x$+(3J_Qy#?KxwVwKou+uz_&RcIr&(ybGcd!pQwp4b7x4MF(=y2ZJk@`)^=*gllvp; zL_1(Nj6>#br}9N!s-%w~YVL2RedwdE)$|A$@?6d)>f27uNGn=HPf-R>jx{s{IB3)J z^)#}bDuLGxUmDv^uXuiJ9lhL6Pmr&34ZYq@UBG5?1-;o$?=Y^3YiVXXWuo`TH_+U6 zDn=b`n`lQU&GH=KW=aU9M)b!+U)mW;%@~`RwUiP{bNG5^Gwltf-MnIcHQ7R`2z^ww zf}Ek$#q+5jQCcXCp|<@iDI=8E?y@NCv zLO*{MCDr0fR@$L`Eb?+gdD7xgs9aVYIt68sA3BE5heIbkw!enA3BM! zA@nuE#!#L?I2oFc;%~lBZ-Miv&~bcd3Vr*Tl!ULNq9)T#>rCU#Zp_ITs3fI!pP&xv_ z+X12trBR@Jd^L@PQVLk;&ITF_rGwC(SGUs3Po$- zV3%XdX)csTPAiiog2v( zMp^ipw1u2_LLC^^v@jZgbyd8XGQwyawOw0BSttR>A`rSYT%xvuA0=4p4!9%P{ymZ;#{2Q3;VDZMEWFbJW~2sg?u7X zSOHsfVVAbaWAAvXWFYLAg6QQ++RJ1*7{+J64250xte`%^M<0dd^OxbUBD{=*^|6=u zJnV*tCtfkRjfS~bFzp?KL^-vBUWCytbVtJ)dKE^!+~CbL6-KYnG5ITL8pFifyjRdW zbS1tX-Au7+%0q)2d?{W{jp*_+=pZ$nRGe0-eks0AR)1V1uUI*|Tu_So=L*`bzU(=6 zH}(H0Xpg#sk5<~NKC+ZE@glf=>Q^vZQq`BgMLJLUzktN zajG33N}skCy>R?XD*R_bE_J&HdOpv|y47v4#?sUU_>!(Z4_N!v?-s%8QlG^@WU7l$ z>p#$ypLrGm{3Sdc^u*hIx@O8!I=!vN&MX~^b5o3ME)XviiW{|*CX z69X9i=PQIOUK~>^&hglktL5P{73!NGK+r&msug_Hd9^xwHPKo+upE~6FdWZjrk@d; zIK%OCo460~qp)p3a$~Sp-$S->WXt0HO}a#SJcJa4eja&0C`pYR)Sxpplj-@fPP)w#S=DfY~quhXz*K`m`8t3+r$;LV8$jc zqBCY~;>cDdy|anezf;hhO-v%oyiLTRK&)LPA=+UV=^rR4&MxBd7H=1o@Ujx@;xdXS z+C?%Flk6f9P2Xu3?Et+Cky$~>cJT(lQn+Qlvu zIDq<4QI=iIAu-!7W_Wu$@Wi)+c2UI?l4}==6MVSWA-gz$^gO%BSm3L=yoNf}UU%g& z=f6=MUeY4X>ddwRe}i%z!#Q(WJ~&54yjvo|4aeGtUEc5{R4f?Ls)9 zh!5MvJtePIvx}95AhSZdC}T1!vWo^b9_->7dal?mu7M&;?BX0+S&DDyh%&o4kGG?C zaVQYZhh1ESM^|naMbMoUXfrB4ZWo6Ew9+mbQJ~5$3h=GkE`|ZK1~B;qF1u(0lsdaO z0rEUy7j2lu=d9W4pF_l|hkvA`0rjbW zRM4P$XpxeJ)I&i3nR@qcAWPN9{~avsXq`juD-LF=+Ku`{c8oi zQ1c;(FA*wfLe0xkUa4C)$uq-Wcq!?%dOv*jNj3X|Q|g0qsjK=KpVgoqTf+8{kI!2) zVp^RWq@)>j^{8F)k@l-;U6$@nz=x} zDeIY%JvtvBUf-Xf$?=?Hm<%Y1nk-KlKH?@x^Az^iPR(v`*e=bJ{}*(vDTU3KqN#(A zx?8gc1@>s}FPF#Qs``xk0DzPK0d9Rz$zME z1mx7b1!KB2iLl<>no7V)(>#*vJD*~p($RJ$?bjr{r=$$DLrIyM{-4P6dQ;#$9$C(3 zuEU}9@tK3$dqC3%>=$_{`_=s8%Eu?;Q=Xyn@flR}G9REMmp)%W|7U4#!PL#xpigr& zw--xm4Fhse!>dhmHGFRIArwMCjYVba4+ zS=uaAFH}^bS;&`rmTIy=BxRcWo(uB|$nU)Z2=FH}-3(v?)Fxz4B1Aq5Pesh6h`79ppK{;!v+VKtr9 zD9%TGd)>$>P2M7)HMfq=XcW73GMQI_Hfs)X`t&kt)x3B96K?!06!kfc6OBKwDf@$h z+BEZ_^1MZPc?nyOeDJ!wd+OHvkoTG*UVVE}(*u9}lBOHFByTyjYp87r1kKHLbX~Lf zj=b=(D~gw|=R*{CXlhX8hK8^Hy{Wk^zjj7_ds)ye&0YDtAH8>5)434%HLa&E&7uy^ zn!p<#^hZ(nt|l9L;-02xje@#0m*oW*S$OWzq{wBVS>C>?Yb)uY#-{}>d89eYmmQ3LrVYl}0rR2VeF_eDUy@rpd=kH7QS=)X+cj@sEvm;r$Z2;iO%pf!Z|?+TQLr+&`VSBl|JSw+Xf>EM@Ms$L&D9=@V>5r5&MVZyT^ z;i|%~f}yL!SqasI&wCCwYyXJ^b;T1^ZSu^$^BVJT3}Ib(m2@dn7bxjOc!B5k^{bw| z-K(S$nDboJS+7)5eR%F#IYE5QlVjN1OZ9v$oeZaAz^-8>oerlAQ1X#=bT*t$F7Z<3 zZlrVJl<;-j=L8hS^J4g}E%F8UUkXq5JfGncU&2d0cNI4OjYPJDujkpM zWE8K24|`Tp#6khJhwq1Qz8cP$T?-%aOkEdq=2glXsP3cd=telXmiwv-SJLfpy65Gk z%3e-g;dJ-MQ0yD1JDh61@2g5)PY=Sq_Ol?MI&k*G@C=>2pAgdEQTQY9Xz51k3#XgN z+q9UThRd742g0w*>k_ZYdlBEU7cm%~i=j!~K*Qnd>i>p^hEW>{?_r$3@bQWBwDGW~ zb(x;CLmv8lqZsv)Aa;22w5LF1KM!yDtxUY{2SYu4kkiJ((Ou)=4d|yAJb*954|obb z;|roD!b?`j8vzQq4wW*GqmO0Ry$V0{1MWH>pDa&-2cDrQ_FPwx{{z`??J6(TurE!8 zQyRu`cq2`R(=&J#1#soU=@dqE%m)%AHo|AONwpHq$q)>Y1k7I}UzyzB*Z5q9N8m_nEAVks@)Ltro4#oxetyaGFq z|BbZ6c;xshEInxAYp{G_X%5WMF76<@0rBH4=q3zI&U(u({y%6AyZE7!?$|{( zz<1h3Gk@xW)rkUk?V=hchD`e*S8cmJ46HeyT&1oAWJQ}52B*ZA&T*K!Xe7H!XZO(cn%E?aSWZ==nzf3Wym2Oz>GMB zR>?D+9pW%boOX!V1$@VIMj6{PZ{Lp$1D#g5-qhZyEFd>vvC(RGIy;{AdS zQNtf^I7BtaHyz>`?-)dD;VRt*d2s3-G!Xt>r$h9AA7Xxq=>IY|V%d)OdG+0WD6N-Y zP!q`bP{e&$$axX-O1>%8q$WpV8L7tF8vp%9l-p)JZL$sV&t~N-K+8FT=4a?+)HAO7rEnBA} z+CSvxb)tDAp5~pA4QrN-JS&^m5|Il$TV?akMa(Uc%{%m8%{wof*A|hq?c3&EU|cRn zByI!BvSF7a?m-6*FQ=;!bRRg>Z>5e1)eIcI8xcqOxQmFR{G0t)_wj!6DMYV9&U zTQ(x@b6KJN4;Y$=M)qC1BJ3=yyBtF4gnNG1Ar7&9d=HWUlFfV;QHo|h-ayYIC}E?o>fst1kDwB$!3!&CB7$Ci0JM7?VnO@w6?ESr zoPi2@;1E~9D-R*K*v5VYDZ%k$hj@%uWbt6ViCA_|wxS2E81=N`t!%}#Y{iUh#cV_! zhUuMb#au*|hYAb-YnbL`D`K^^-%;TXEm{$$twFJP?EznS?OJX{qV}Z{2G|nXrF}mR z&P%d3@qKyxG~`5zcJ4nEv|F1Da@wQq0t$PzUqOs&Yf&&&TfJFYvWI+SbdlW^n>Im~ zeu`S`T%kkT$Lscb9YRs@J9Id>4$%{bnBd;&cZfxA(K}BeDPc>`r=sTwUfxstN9R0fl+X$c+Fu6gjU-Xy$~ z_dGX+%xz=$={~0|Q6|EI`Gg9fEOWJ~Ff0#g(^Y)JETmtawg$Q&U;9v=I|3X1u(pTS zlW1byJdktc&P@K&X>X=nKOMs1u0!b6+k58>dt0+khN-?;uUHkZ-Andh8c)q5sV<^|Pg?Q=EcB*v?t&;xO^&q|?auA-xkYvec+Fd*^J**w#Gv>6(=&0vfX8lpE z4Sv{|_StqX)#df{QcEeI_j~K;wU&)sX~B*T!uMSqvhn`jX^N8VM&?!Z{Q<`W>7+hLaz8 zO~N_05pWJMoI($rqR2^aqH|sn#1RHsEa8+$IHi%j-@z$kI7cJXs)n*#Nvj;@+M<&E3%yXx7Qo}+ZpM@{o56J(Odqq26FK%>|K4Yi z4}}VNT2hN8tdqG=yzS+$L)V25$u=vJe80KB5z4R zjO-vo9*T5+DBHtVHbl1Z8qL=ZvG4$t-=sriBbsuEd|1(MU_B#x>kwJ|d&wa(5zWAO z=if{43iuz?JJ`D}@c$f?9_W1DAQ^fi}wL8TO+>ZpOsD@LT z=oIm=SCX9KFbw^jPH~NYpX_pq_j6Dr*(r{omK3Kr$Y&@!#VhtN_BcfX%ItND34Yz@ z6s>%UvQrd7z}pbpja;yHS%2q^t6ILs-|qQi=vqKW4bQ{zR6Q+N%7HcFkM zmlrsr3)sduiq@hJjyXjV_fR>YCVUP3>lBsH0mq#p4s}*K#SY+Ag-*p=wNrF^A#aUS zC|>Ys%1*Htol%Eov%Px4DHa|=?s})V@-=L7r^ti#+UOKRXzxjM0^Uw>qLP}Nq8$KF zJH<|v6bbR-3}8MrE2-Hjp2FBUiy`L2MJ~pP7N=0XMm4P%7PRb~Q%vIRyi?SmkJ_AK zKLA)jr@u7l1*dqy#{)V=Igr1EK|;>U=n*7daf*tM*@bcn(TkE-og$wP7mSS;*PLQe zGKyb!iVhfK9ULj?1_lF6eG_lM^lJ1}e?!8U`T?8W>j2I_&Mr|quUmp*p zQnvDUMdfUjOU?J;B{`~_(^8`N&XnCzu&?$+fkF00B|%DeZlojf=97c60NLbdHQk4E0(mkp` z&Z@uoI9PRN3muN)g=la{&|NK`E9owJ5CeSADQZ_Mshi)F)WdHOG8kaIJ>Uou#wl80 z$Ubt4tc3vZ7^IlM)_<>4%)`6wbBg2W_a`7PPVEQLGJQRDiuXD=VZbT+@qG|9foRAn zu5;=$Fg3@+PBFa#=CM;;<=5vJ*n@G>Mosfdrjt?g^3U4gWpcyV zTaeJHsFVMO(R(v3#4tcNMe)DW(@|r9a3<;$e}eDt`bXHYQH}gIg^Uy2#IsD9Em2Ql zkhMmo!7bI&2mqXmN`wa6u}U=C#f2!JCqGiq#i%DgQqrZU^Pcm|T0GJ9WlFjnbXkB1&|LqX3rV631Z0?Q{t@274F3DJj_{>Oq$&E>VY^yIsPyUP*gg;sVV7 zz5E6bjteL$)g?B`Ii&HQ*<8ZZ{d*>rMW~W z$SB<W~&c8PmPD{+ZCh)O|K z$X|x01ws*{pS%=wjImHsxl0^TDX79Fo-*j;F7c4#N|&hMU;QpI!k3)6!~mz(aMNKc zag!BP$Bk3a2}Vvy_1qjtbH*RioDo;hNyZe?oNI=MR89aUS&}PaE2%qzmXMiF44p@1TOJMzN&t2dK%?Zw$$?{ z5L#>?>NZ$qFsd7-*i!0|A$+`{s5`uDi&iP=S=6enG#pjFU<-{zv90+$stHw>Ui;9C{VuT&efrcTLXH;8Y%2EV9$Yo2X6uQQ506=p0PMw^7sbXfYeC zmFcMY|Adtn^#H18HY)jlLSRPmPq?|LT-I3gQ3s$JV|D2Wcj!`iDQBFnd6AT9)4zg| zr|bR$Y&>1x=5L(eL|q#HoS{qd8uEvu5<-|&*!up-9C;E z>WcVNt}cb&4(Te`EXdQ<|JYYGvw{kAitBKB3w2#;wjwV6*h`fQhfMdu>;EgLMCbTh z*%6)IayRLI$o^8@8xw3sUH<|(6!{q3Y-kvs%hgTtx!JnsTR=9t5xMiUbA{(PAVC$n z^Z?c$qe!n>Oy?KM?QYp{yeF1WmCiRA+M!x^hkvZmKP#w4*ACrLt4oL6tJB^0hV;>$ z|04y}>r#HmSq8yg4Z7PhJD@k}CYVpC8d*;2T2}CLJCwsI-D3l1$zBYhr0X@vy7T`# z3{73KT(5B$&u4Ub2%B{i@ZS!6OgT%vRB0bktB%rnj$x|+!?)=c56CN>bn&0FhJF<- zw`4e($}Z}7P0A%*!Dr$Jb-q-LQ0SVzyg1TX)12aN{- zI0sV1$9V`#l!$eUohZMuo=tR%i~O487MD2Q=@#`E zm!idVPv^x861#PcKO_2*iXho~bPe*kO;ImY?aS$*j;47UbC+8znB+BkZcz)fKE*B4 z{vDdvEnXvWk6Y9saj#q4THvMHwL!GUi6^?H47*d01OB2^A&%qj-*R}lw zL!;+|D0k@h@ibSQzSA>>vtKRw<%mK_@p^dK33`@ndag4`fBQ!eY5Ix}xn{;_mwxIW zAlLMJ;MdVUw^-7Ku1?j!H{u_ zBX~=9i=$9P``x01S3Qkj>w&LQ2>3dX)WoUWJsQ-z~rHHGjJb zDN~7^=PB6{LPq5j8w zRZEecFE=@&Z`j7G92~#mg%Qo0A;t80crMes5FXVZMtDr$g7k7d&#`5N`uIHdTph!b zOJ4#VdR%`1xhnM;2&?pI2&?t`5!UFl5Z3B55!UGo5T4MVKyCH<5~!O7{SG*6jrzS% zcqjFC-aDbM!`CK#A)Zg`t3h68^fo*<>+6wzR?ipqwCIbF(yA|A3ByRAjpy_Fe1vWK zM?AB8L7$G7i+aB1fB5c>^L9JcYzf}pkray#~>-rpo9r{An zr8o3Wyxi2^{=iF>w1)2J*Y*S{s8c@~3=>G7qLpO0mlvUK;I$@q^*upKx~Jdi`H<|1 z4*Ut6J^isihg8tNu`21ley@Nv1RzR!sNdzulnyQb2$^6A>GxH>U68W!E{7OBH-t0yqItu3J>`9(cDnhPOPosN@T&+#-u-9n#{(VaUcd za7BSzoabAq+~OSHO63-IHUf{hMTHMCHpYo!w@@@gsFt|JSxDMaw`g7il=g0XjZ@Y#D73e>z$spU2ad*{!b7O`g@Q<^LiI2g^35q7He=AWnZKj zzirSC!|}yls`?d_U|6~n{!^mCsg@Ga4ULmzaDV%vq@4zrnwP32;=?Y(R}jjEL?ove z(s`{CIXpSj)Zea2-fh^4oO=wvfrvJYvx+Eli$x`W58i+nf#5#o7W=`YolZzRt>)8^hcX1%|Oo=;IVfN zWq7h=8b-7-%K>PInw4TaPUILqI|B=2C7oL;H@v2AP|`s|o9E^6a{hAd*YKVU@BR_a zlYs?ho}uj@l$39H{S%pquOT+nGp!dG(&0rG8tyNUl}x}^DKgyT(@PCZUB!lc&Q)SK zzf`jPO+J>e)G!WRP-bY`#8qAJ)Z56y;eBF>e$+6yN~U!#<_!B-U>!5qvxUp3U=@tWZ@!s~`1{ySwji{~4L;|OmWsuA8YoJV-uknk0J zFT*qB=`@rhrOR*(;a$T`^tkwi@*H078LAL=8`==|7#b1YHzcCi1H&25^6C;KJv6i; zd}L@w_}Fj)VXuLgko6gg@%+Tlp%K(?80NL-hLcDcFqA{tcP{YpX~El|p&sFo;V8mq zhEu!--Ozw=#Bf6+WmO$so*SAFjv6Wvju|c>95<9Ad|_z*)Uyz+7H=;N*$dJ2sUOj6 zgBR1oq#;KtuxvSX1~!~Bq(Eh=o-L`O@_`e zkGBR9VHjX4NdAa+7!`v7Y=NEr2bgrmiA4h+s1Es3qET@Z5_8B`?NcvBO#!5BLd6*$buJF7M z!`^1Z0Nag6p~)P^t4!!lW17ixLEYXzhgD&Oz2Y{;uV(XP5LKlaZ$tE_8?Sr7J^?@N zHzu*goMCkR1&j-0ER+5LVnjQ1H|%-)eJP>So1><{%gSb#t{@PF!lkDLgQJ6S!BHCLF9%fs)TwxV!R7r z#m1M&Tw+WB>PH|LGd!IV{~t;!HL{gfW~}|8&lr!PqFbQ&UZ|O7W39({ZvHhGo(HwX*!oiiwHl8im)qON=P4BWIb)5-+%B^y z>AbP-8xx#YDH+Qw3c6sdMrF4@@bUQ*FV*BSx@@F!$cwQxbk*qH|4W%0psyL9$nD{I z!1uawH~OT*m@7@^hVOf+`q$DeqpDjjrmciIa@$zuD@D;YIZIFj=jo0ylik)%V;5e! zj8({W*LVbdaL@P*?cTeR?i-iqLZUw~&avEnXx#T3X+|!DOfWt`p~uE*P-n04275_; z+};jTn&PNFg8F;3>fz?y$l-rJh>)8#Y4tk&r1=1dS)D!w~OCb zc&P^0&~qa-qBSX7Y24`3`8_CpV>=&QPLJ6=d1*wXqzU88AIi3M!q0hS{4+Qg#)R#F zZaf2JFlEf;X1+1nwsOHU;P|)3`wP8P*^6n`_<8d-*`a(p+&iN~#U})mq9^8zy`p%tiVr|ETw zl6INyFJ)+U>Hf3=PO_<-J1xc3Ae-B=P3|nd%8N(Gy~W$`wG+mFBz2T6RUE&jqO__Y?yW0f!IL*}g z9y1GH9hYv(=e6c0Cvx_zA-+d0!!-8=sAoM`YT5DMLR^??5$2el>!ip&%2yDY%K4;W zQx(EPrdV%Twi+*arUr!hrel2Jps5UDfvEyvq3O`yKuDPC@O;EniLlso0%3`%o^KX3 z)$q-NrVfbJ!o^f>`nbn)Y|twOciAJ5uyU^uvvRpc=f8sWP1n&S$4#SXY^4dEUuCLC zSZ%t)`>sv7vf0gG$6C{I^iZAYEqd+!P0E*^1BFg60+*Za@>Xoq3`ViRbPx4aLUC}m zh01O@#m{q$jiw1E$&;q0MfkEp*~dPHY2q`vxZ^asy~))3E6)4^WPIB6@Iz3SX%--x zO)d!fv!?r=6Ggf=OO4uvDqBo%;4HS9uC9jrVS2-7N7cB6_c@q%wQg|$_Fx@+MwSI9 z+#(aN^={G1|My@<^Zz}VhhU7%_r=$jOq&PfUW0M)|7Ft~2$n0R%K@D727;;G)UzJ+ zWI6%I_L}M454rOmz$3bD8eF8H4pZ!UX|6)h-Y_+SC2pFg7E9+B{B+Coa|PWtT?&AV zFm(XaPSeko)MerYI(JQte6%2-E2!JVcT@G4pq%cToEso0OtU{^1ZL#?560x7DHFLL znf&0Pm>iP-{1nt{N(E2fSwj7$Wixz)zv(=n4VW@m60TR?@RiXtFIzEnLXHfXN`9oI zXQm$1Hf-wlg9%~E{Q=SO?etQ5>|K1)`52Kuajk?7(BwlcfYGk?S7CU(tfm>WRE9f$uXSDJPvY@VZx2QputMHN-_BELQ zyaK^3cA-RvTU@~SPHt4x!@8I>eX`FR0?c%Dfs)>s-pX~Djl7(JZwADG7Qm8uYkDoy zF=W#`Ofx3*@GP^%J5vtC)*KJdys6*=CB;UM!MxrP&Epss-LX(f@zFEyD=8rwfm}oep_LTfv5psbP4cDCUL^mL1cl17QI5_|bF9#qM zv@d#E!Wjn!snIj?`JIH%NAcUDrzFgJ1Bd0IUaG$JBFoDe&8KWEpc`%>3O)x-qQkd) zsj60r^mws9T9E>?u|_G^qh&EuHM?d2q!*`$o@IuD4}N8dzxL-Yt_ zO=EN|T5~e`1`DKUX2PcE3CN?<(aeQsq7Oin+LusE^x{WfafQd>!_;l3ViawSeg~%L3QX0~e#`y}VQ<>*z`}6)o~o&1|JR(R4=XrAl8- zccW>W!X2nZD=>9=j*eZJ+Xqipjj?Ai9=kD55VQW%Bzpp^!7>x7g8$zR3xRP^g;POkrQ3%!YcCcIQ9 zHquP=@=VWcxPfsgWHOtL22Z||Y%&*JkN%#I=HD*na)^x`=0foC%onr=8Y<45AtyD? zK~BY+FRhc#%YP^+!MtClACMu_QldFavJCTalKC}8Abt%co4xNqvZt8SKoq;pw=uqZ z%zf;4?=`3JpBHmEhBMWi2Fdbtz4+Q;UOFl_6us0juILn}`B5OO1amdq9=Exd4}3C@ z$^A#{Yo(iCaCU{VU3MblvER(C$}o@XJTr<)$~5yI6LXzhx&Z!7`yF(JTbuxcG_4Ui z@gmo(III1RDGr&ZVP?GAK!?rVBQOpM%-rLJ=8P?Jq2?<+c+b4UU*_-gWi*d74^DzRNLlfS2kBdzJ2mEO>?YNk6WIPY&+;KH=EvZYdUMYI2D6zvKn#uM629rtyqC|OJ7vBR3T`uJ zakmUoO^`Q(=Do-?WX^zz`pmrJ zr%=r163#SYe#lPnbMsZkeAFDriDTwlUf?=257`UzEZY6joXTA^Vg45uH>dddm3b%U zeQiF6aMFAQN^;7a4&2|EdD-7v^JBR(#5{>`#{598bv^}DX3bY1`resy7|5Kt1TCL8 z*TH#>jd=*;VMom0an8#C7Z+25HpR!({T2T+b_=g0=;H@&aTi?u&@H+UJ#vdg{%7nK zBOiOIu5T9IF0m_S@jFmr0N*c*uolj3a?DAtEhT1%qunw5b9GNlsfoYO$-GD9bD0b; zKpf}7WJ`_tAdY36EvAd_P>Q)1Ann{vUg{Pz0eSC?Nre&i6J|+QOyYVuw^X>AU6Qs1 z%meS+kN#?-DrpHFj#=6cDNqnI z3XxJ6bM`B+R?Hm4=aHD&UwCeo{JHcOPW%Ffc}xWlLP<~+B%vBKWXP2;zcQmHs`(E!&vjVS(Av>xsSR}6gb5)Eg=byo7F~dsPjvL-GN|RG^ zF((#E*A>)Q8&ioA&ct*> zmmFA5<@@ldIp)F!c&lruHAWfF{t?~ePCgfN@R#y0yN{PDb|qbip$49P?RAR<7k&@= zc8iO@SJD$$e0-RVTeQo=Y~11rhJU~<@*ynuZW1GLqCMt)$g-<3tc$M2#G%)($6SQO z>xfANJtTcX7kRsP3?DCbGbZVWJX%>`#al7Ee)x@Zcsu6SI(dA89X8aRn4LeAXFAm` z$ycc0dEJfq{>w1#joH5jx1xeA)Q!rvQcuh~q}-3W39ITsO!H4bq%m`UjS-u9D?}_* z=A)RbMO)}`%m-VjH)b3#=6=iv;n3}m=`~9B#Y`c55;KFaKjtl$oI=S-ygrS&xeCpU zDS_sk|1mv)^)?uD8d9_KW4ZxvJoXFP|Cb6HiaGY7Bmfk77Q?4H4984_$qld53~n0W zcKjRH2f zpI*hh|MYLc`7ygcCwlo~;x3q!T`(2Xj}LERCjJ`?-IzNNRnsx0(3mqZJJk=l+Rd0`z*^6JU`n@e+flunOex5k|*y-Wso+@QQnVYxdsQ& zVY&LDv~zaD4|Fmdmt_wg-Lk?oO9^tOTZ$3xw;V&5Vab(^7_%1D0FdFK<_i zilsT0O=IBQgO>CE0_)W>6CttSIuBV6e8%L>n@TK2K?=&ZWP7&fT!j)pY;o`=GE3HH zl3CmMepyTBQi+%yUy3aI5FW9(5f)o+t!1U_RAF%;>9~a#j9ccwr8*yAcPi68vh9+H^N2Bm3QDBv|485wSjJ!`sXZpD0|*A z`;|OMBR^P4Z5B6=_wJ2!$@1a5-$G?r(*2>9CDpWBS{6!+aT>-GluZ&~tqUp2WFpvIK7)M@$SgOT5j zZI|UOntIp59B|LF3#fNn;$f-wSa$vtuC`?sUmsXp|0)aYz=wyj;g7i9$Cd(LsU(uv z1nsrtM#`}{W7v|pQb{A0d89nIlt9!ct)e-+j9R7;j#&;cHscn@Kfx2X zocv7IcpC=OOG_M(n6S(s*DFiIX5M4?4$rSGhoJc5czo*D)3jwt zlV{ug8+IdRBS&pFh=Vj-_TG2T>tn<*LlZz-FU*oJ3aJS;E z$vDH1hveoG@ZuVP?L7W*}MW*#JL;Rick>`Ri#{YnIKQd)mW521S z1evp~qdvS$=nyyc<`T-aE|-$TT8-Ywv%cVoHX4;1!YYxHZ@q@59JUU6#Kv*9(yh1r zAW5uTLlIYf#9D>qV(WEzQ*;HMORNd7-Ak>vrB8K4`Z70BsLXl>V{z1)C1w6bs<5h1 z{^W*r3S0d8T4`^<8jj3 zjK@>fd6+d#6546&xwR7ShDF?i{hR5$b@|K1 zvJdSQzRhK(`GD;GL(N$@|GM1|vFcIJrR54H0x>2#BlzcZ9s#xPk z&)k$RJor~7swJ(!=`q!H>Dm*0=_w_&l&OGt;f~pM*>5R%GW7Vo_P!Z3nE)$MxR4*Y9o>P?>=%5BVe_r*R*v|!3 zDhZ7jRdgMzR+S@N$EuYJTUk``lIj99$vPF;XslOV5W>Qq|B$l=)pKZ%msRcCgbMQt ztv0IC(1Rw`kyZ3xlkNWv2!e{tShlEkLmO{ZU8SblROP}ZOCh#eyJ`U2u0s`t>?^7+ z!sb;~Ee3W?MK`>zt70grQ}q;m?^50TRI$Ro4Vb&BV#hvJC?~eE9u@2QbgOdILzWc5 zzq+T|8b!>!R}}+N)u+n-XMxOYn&W=eUZf4EVi69i$WZQ(iu9`cswixciT`9%!dH)K zAMzils)@a;(*Gi7BdUq@La)MPj3NbmT{XOdOg3U-##Iki2&WL$L2@>s3KQzR>Yn(f z8x25{ssjk8R4tM#;Qe@cta|mX_?$y0ou8=AfD&b{V69{%SI;h!0pNk1Pm{PTkB;po z@mxB#o5U9}$ei{3X#}5Dy;lG#J*Ub;IIn8`6}8nO!V;uBR}~_Bp(;kWpqlysdtJ3i z3-gs2?V>6l8DXByqQX%;hkLe(=OR2ucrHjcB_E?+r02OG2=ia`wb_H;h~RrXWe~NZ zJ)hH0x){&%$e7;1_It84JY}rory}@4Pq#+G;~~#V+D37nP7+q*J@_G4?S3tr^g#0cm^3CV?JkKO?n1akZ<$F2-G4E@v$Ws}E4Oi@W=8xdso=3hE%x)Cw zSc&HqLE>Mn5ZxR{(lO65gr%OR|43eg!$AP&x3Nmk)sve~q4@b3E63_CPpj@N|OvU-o=~lt#~%Z;F%B z^LT0UoDoGEh|@NEMt(z~ELzRlJeSpxqMIq_^+ut!?|+{Z{Jj6dhV~@?$Q_;#-$^Jd z{)NCe{mb!m0fh}~*>z73a(LY7`4Wii@+3#h-JWf9D#tU4PUUze(y1KJLUA|wl=zcH zj-PLP4y+cKy$gcTvCF$n)C&ld(z9$HIg3ZYX0@p2viHh2_i1 z|JGwq@*Vudlg<)8^_((duX|nv7C-BW0e4~SAFd}!jul=i@f9n*?>V^j5N2&JL?lJ5ineT^UPK z?<0n3SNDqBgK89(GpG6l(Gr)sn-Y`NGZdw$!>MGdI+2KNnmUc5bagZ3WdN3(WvaXW z0ef4G{gbUG;{iEpV$es_EmSdAeSHB_j+LT^RtlN1%JuenQi z%l=Kqj;c@oQtYK(xfpiIW*I9{cYPme*O&5M>ccVhDKba7lVu5yJ?dOaEK}3Ol&c>K z-#qGk%Bob43$Hxt0^yZMO^3&-&}SJtsa_Bt{M36SBxTd&o>q@|h<*%GtuyKeM9r(! zF;WrwD}Gj8C3P+fL#k0X&}_V1!!D?0QP>L?)w>bas+%Y|eLbsJyDiYBSI;86tbUHL zQ9Vy5?$j^n#GQJMPTHx*-a+xiE#!OhI+TKh2Js=E+gQ{N&rUVRf`r@9ki zm-;fbabg|2speN{8>^cs;oLfQN6oL%aXNJiB`m(r`qZ*Q(BXb{5yAoWMM^GN$L_1; zS5R(P-9bOJ)a~>`OMQVd?`~sbYWWa2!nk?>;e>h+;Uje&WzKG3kJY>$YwwA=mJ%MU zXV26;1_?9jR!WF|pUtcJVKnw!-AD-)o7qb>pCxkeN?lJW3+q|9MiGlT5t{u7BQ*yQ zMrrmT+^s2Crcjo9uo#V^?H?iPYUu0oKF#?b(*Aalw;#>?hYDrVMs`rM>Je%j(o}*{ z#c7TS!@A@hIbJh`^aM?|aHBJU=fj#yON4HFOMJPRL{g$=5aLL!f@Pp~l4kD@u_;7b z4$Uj1I5oW>IH@aHie^g-xJ#<04m2W76RyD~&|IcfmZ3TJ4`6VbEOB;h2+vuX4(L?b zn#j$>46oohNAo}!3U7eac0|*Tlw3{s@3GG{i90C01w=ewbJI=qBw{lGDur%Spc(m{ z`03RR5?83%y^P8}1f+Tob{rydk>>CYY#a@Fi#e)kpaW|fk~)rQ8pNK^ya0-Bc(4l1 z_H^R#m6{@P#o;Pg!EsF!me2`J9l|P21HzMeqUO3d0rmvXwVGn7MdV)6OoRK^X}Y9gwjilq z(~ht~Gl-1KntGCHH62K4(u|>Uvu05#c7HFOF40^=Myuw$hq#}%2sP#98aWHI^Pw*x zRoVIVWuUWmo)7gTlHTMj%FbV|k+I!&o(ljBwt(gWzxR3e7-1TT?Fa>us zjmWsGX+wBV^ITX5>7f5xnt8zs8?k8mH1iO3`!!8ifm2^+EhsvmX(i^Vc`EGLB!7m* zy5G)uIn;myc7FWp5CS}SS|op{`Ip032P2wk`sAfKB7TdU+(tjDpCDySbB{LHxMl`O zD_X&-uy~6-JGRn<=JdCyPV`F3Ncu-%d*>f1W#oN&jw44!nmYt*Qgam3 zFr|46@Q*bQmtnhW$V$yq%`^H`rpd)_{2z7z6`pD05zc6w0#KFcRQ?YM+=*{d`0#y7 zIfeAUumqHx)$B(&r+EZ8^O^*2kO|FQ@f}Um=S~&+X}vCJ#zeh5(avcBbwYf-og~9h znrdl?V|aO`85O-hBgS?cxLeemlCl>7DNK9hhm?^cAY~(*e}^3wot;7LaBU2*G4v68 z;RR}>?WD#dwd2T%(zbFj%{l9-a2LeQJs-1^5@d%!-V}=M)^@KD-{aR~ooQn+wrK4^ zgfZHu$la@bLMv^bmi|2K*B(N~0c{whyEqSaNV_HaTjFR|KUP7UwiUxj1#1Friq{?# z-#d4UFAIanPS8ee6Q59sm}!TQlBm6pFiBe~eI76SH6~em#Z7d%lH4U}W4M_c(o?kqNJ-O10(h#N4dW$U+lMei8?g3BY+ZIR|87cZx^ne>TXn}e`g zn}_hMHW6Ws_6IU{P8*NM^I9ju3tAV#i`o)|wc2cim$VrO>$DE?a-=Ol*q}`y|3=zl z>1YA6>Y~)!JD;HV2jtZ$5)D;#Sllh zu8k0XgvhgMr#2j{s7rhG)Ah=iTi8u4D~GIhZ!I~l(|&YXx)gt#KB;MsWB(T`*gZPC zqNN{w_p~lL|E_HY2Kuy3!pVb^PQhz$l65!jN$HS$3$h2b<eDA80GTNjH@5YC#;dRn!;q9?u#+W`a^^!+t=8!Vxxp%xs1T%@AKOCcXGDhs~v3}@S^j>v0n3F zQ3sJOV~4zA-Jo!LrGlKtd$qhz1U`AWoF#bOGgB)iqOBolB8SnIoF#gdl7!*)N-bk{ zue(HH99~C7p?aZp#kxTP_v%LHTwb-mm$788e35%k9EO^MHa5PN)heN@c!gtAreb6= zmgd!oWpP=_n#Gwjuj!?X<>=YW1{urnYWs1$M_<~#p8W{BpWrrm zJp}h3`hc~1QPCy5+auP_-Hws)f6&egtPnTtJO}8FgD?S<#@qSCm(aHC{46=7u=6k2 z5;>Wic(OIo&Noi|88dI^2e9PqD2X=*y{+3e@eI9?0g(J%(U}IP#3cx!qC50J6~7>qHO1>bSVlwgZh8pcHaFJX4KAa(A6+I{|knF=?|k3kfu(cOfAY(p%F4~dJ^C%K4s_C^wq8I z52qn--IAI*gU7R5#bY&Eb&#@u7O17T#?D=b~DA04k&g1ZQ(auZo zR%_?+&~PtNo{ZH|qKws35jktH^R5qt(0Ccm)X0Re*NE;lVFsG)JPoL5w(};;PK%va zeEePIiTBxkFFAcM9QGo^2@kwRmk9H4dQrF4&K2R1B-`vf3{ktChhz91^d@6h?0ky9 zo&BqJ{$4VruAf&Wot*002?$pq*ck#O5Jj zH;GL2*?9)m!!TB(8(Sjl_Lws~K-P6Ej)!*MiD(3COD5`!+WC?*C_IJ^DU!1Z zJCDTLdt~PcG)t3qerh?2KiD}1B-cyR`WTNL8wHRjczhzkdurz^o?@j zGj@Jr1Gs>l_n`GT^cZNHxAQqV67w7}ioU=sVU!D4%w&JZ&S#PM%FbigVGJ#Qc(Qd7 zt(42Zt8}epue_F>qwnd9UUa=G%)4o=jD>sOU&q+A8>^w52yeQI73od$9OX^(yxSW> z-4faK#%_-=2PeiO86OUJ@a2_gD#F3Tu<0Wm{M4Ty8ant%M7tfl7+u}t;L+68Xa}zV z^^I}xDl$Lj;Cm=_pMxKLPsa8;xN{YGGWx>-2j}&)xnfapi9p;zG}$H>kB9Ks^QpjA z911o9QaqYbh^d<1n1JkO%djU7JGlF}FiYm(S?FMrgI~m+vpe{xFy`#whspbmgJ&Ys z<=}~Q=i9-v@s{G?O-sQ>9DIz5raAZo#pw=y1jHc2!LLbkn2EOPq{l2gcIid0vhg_X zCU!%PgD-1b2_E9$Le6pkbuJXf63ckmG;*E)DQyS8-WfaH#xY2(E8NS?BKGjKgn4O3j9gNS{*!Au27o!SC!tssdX0; zemODZ<+XO1>P4{h2d7qHc9eny0cG~;A_>SdWN1p_$y}N%3 z((1hz+@r?(6G+P570U?3H4ugK-Uu#u=dPo=lN*UImy1j?hv>as#%jIe$!8ebM@A97 zQ5AS9?d?<57tt@knNRD*Z;Y8kui{X}Hvts*eT#ciM4NO}AYJ1Puqcwb$Dk$btw9WyBXtX_a278+Tq>2lR$kF#MOI>Dqr<}Bzl*!QO2%$k8P#j z>TOi_x_6oQf#rP&5>A)*yfA|8ok&?Xy!#abR~re|BLZ{Nn=a7a^0qIPvD@AyRI|tX zgy?D~sKp&`HC5>UJ>+q3y1{hMyOYZFdiMjn*)oRK`@FH&`@J8CGppXS)ZU=?5%FO; zS6K1Jf}Il9^&R{%k>U<480@br4*ttnx$-~3ChmXM6VJ!IV|n=Zu&2Do35OHj)vG~U zy`O+)OnSewolSXXd?2QO@joGLWBTOmiTD0@#n=8vsPNSL6FHmqz5+t}%-c!7{bsyL zSeo_jg5);mO=`CHb~$_Qy-y}*FT5+gWNg8EaG9LF^d^_&ue@ie-9_)SfE=ca*$7=h zmkD`1LN`uhi`3Ea*C^eo&p_~W>*Q>YZUH@s)}5i;7#&Icdvy~S!9LwtHz>Kf(NHM4 zx@5w0tS$l)%t2iNB$q?F0!oV0RijkAE@dMmW?iM1oE_F>07jxN28d45($g zbm(59A*Zeu<8bNr(8=OtUFR+kFkKP^>Qo&WGfvZyZz0_X%4g_`AVX#9ay=j)>7uB6 z*}BfPa+afO!J;^#JG=tIk**EACQsLl(dO$GATAZ?Qp6`|9XeE`gAP!vBSS(*bt&jc ziLRS6kLey!RI0lUT$Jf9{vDW&&P8ah&@}=^rLN7LR!sEI$b0Y*hI2x9b1inJ&Ln3i zb-Vu^GOX@03ZB-{Y4tO@D}Yd~I}Mzk)t#jssk;hZbWV5czpxo~`)ILU&^^+Dyyyym z!CKv6O1h*=Uq=UYuYncT=`wx}@}lblHXDFDIlHVAltou0XY8aq3ttTxN9RPN&ALfU zPm8W^t8flOJ55)Q4z%f-zXu^kS3!m(bPs6lT+!VV+f3IaOiAb(eNp}$H;T_#8%;8;K5!ClzvPx>= zo~|90dv(>+LZ7ZzCujY-2ha-#boQlkHmIA#1P$rVuBMh-u-}?w%t2-E>s|oXFls=r z)ippvd#DpPFm&f>az>FPV`I8XG(N6t@u0C@q~1>G0AYzd^$;J}`PEeifB&qo9OmFR zLFBJHcs0FtI(QnHesu8j!gQE}cR?7r;ovtQL*I1p3}oKI8@Y#d@Kn6@IQVV6-2v~w z+g++4XZIZZ&`;#7*TGK{m_7%up}3#m$k>2`-$Io^2R}!tLsVGC?t^sz!mxvP1HuC^ z0J0KJZ;-_t{EV;?j#m=I9K6Is@VjvbS6l(3n1EbC1s;LlfWu9KJ<{uxgAdS+g~wpg z2Oyh1aqw^=QBT1gDSz6*_meS12alxW83&J`coqzj;yDZ$`)c07dxZS_hvyEy^cGco zfl*VufDTdo(!o2(6e0#luZuu~u!ZR4Hz^Kx@){Bro*5#XT$w^*Po$G4QyWoEo=We# zo&1m$y10`cL=^4h_c87mCwGcZv`+34AJCk<0R7$Xc01(cinEZ}N3T*Srxmj2hK2+lrC)hjI#EJqp?B-) z@9-Wy{T+_hlL6@%edP-24+I#@UOoNI(>H!5ekR?768(L5cktT%ddD9?JoUFgwPN)R zQg*_p(W{hG9y~6R$LaY+I&>bd&t9QWw(VevdX`ApnalXzNXQaPizwTv?+TVP7eaJX zpKp`16ofLCs;`zno{^#lcMlt`}dE zu^j!4V31KggpFK1ZPh&eL*ZiT5?xi(SEI24eK=hkV6%8G)W7-;v1j@tSfqEL`C@(R zj|o`V-xH$^7a<0HR8MTUgivx!-zHs37#6o^>(O4RJ`eP~On;tCzN9$$l0tD%$jQ^m zq^^@^kV#!9FQTQC;pD}_J+qVdf2>eeFXxL9{Dj^evsI-J7sgK=5GzjV@BXuJK_J4~ zH5As-xgPzK_2L3HQJd5H$nQ`_&5vFmb~vLy^N~WCyPAJ>PQNObzF42vCra*qx+E*< zhrbW1ttXL5-z;75I%@>&)^{SiW-F_~%O(A3h(&E1**PN(F!8@g#HJ5n_4y zY*otpjGf!cNM`8JkN!f8@&&O8eFZq`RhqJE`paaoTK^cM>!iVV>4~X#>u-t!Ox3{2 z4gD3t9nXHB&a8D|wcON`40uaF0%_y6{vKfU=%eUAiauMWP>yo>y$JqQ*{WXsha{r( z>2DhtyZte{BmFdYfid^%_irGUvKQ;61OQQB_+!>V7nKI|ckuQzb_?Oa$Bg&6(=;R74Q5u;Xu@<1OS!Npfr>gq!p*@(UpGuitw z3;Qc5vL4tP(;vrv9oI(^QYZA`{xm=baid52YaRl@nHb`vesDWzvOa;f*JJ%YVej_@ zy*$z1{7f7I>0Coq?}Ot%)yM5rD4kzpGkRq;=-90OF$o%T`tHAgBJ1nX_H%vwJK{LV zc?be8^tX_-pig+`_4;|Kj|YGp53HatgNO5npu&cGU%WYP5Mj9U1^rAUH zHWwJe#F3V}e*qCPl&w}MuWn^W4Q?qAJ4y_sq8u|6V^{ZWB%|@AhC*?_@hDOb?qpYp z%oJne^^oj-)XDq)C}$;3ew#%2V@}?S*HSPydM%?|87rq$D4y78RHxF(Z&2=WCx1?M zksiFyjvHj-!Y|hV9SJ#Mc)nJlEZfE_BKRr8$_a7wz(6$jjA86QAQu`)Qa@|x+Rj)% znMD~AXLj$nK}6avu7-QGrWy^mfRiS}1Nz}%$iy;gG4#_955q9RHp5e-v>Vc>Xon#U zn#2{uATq8R`Vd|-j3B&jNTBRa!w_D&4CQ3l!_WrCo4J(c>4stS|IqGi!a}}f7^R}O z4M`OB81`Ul?-(8;|E^&G;XT8BguRA(y0dR65{HQm2k|msxPfjC8Xl1(@zn|NfEf_B zDkq;ubkfPo!2(V>`7GW}JNX=$jI%*q#;4_TQp3D1`Ri%$vieZvj|j{fs{Ql zJoybR;1?iNPYny3AzK-+&7RRtnlaq|H*8=-0lGhDh@=tC8>WeMJU4V9=Y`=W-5@kf zTd->lPs#3wp`J=D8k}e?%y?nFK;!|bJGX({aAUh1OnZlHdTWm|%J{R44We_k65C9I zV!GRS@yFDmOaC8)Dr4EtAb=RVe202uzl-Q|jg{aIctVfjBdUcl&I7+(payYribL=pxfwP4&&rCu6u3garz-31O0E*IRI zoC3Wv4r4YJjs1{X8@96u(|cW;5P;iMMG|`;8Oc9vIWD_lt6w^4SrSBsav0iK? z@;j7jqNS8(s=!R8o2n%zFCBPlbj5rn`rgPjufu>esahE-|Gmbyw~I4;I;!u0ZU>S>f&Y{0f} zidJdCSDCVY@P-hW2EQj~r%Xg9PUBg|&X~q9oNDUKS<#sq)5vPknFt6v!#mK83#N_s z-O>TrgTTy1fy`P{pTr`F=w3426D)%IQD?FfAuthdXfPFQc*`3un|gmN`a}b0G!6V% z^s{>98`j=r3WJ!~Y$E2+La1vswTokF)T=hrMc}60)GyIc!bFFu14&m*hu0~TaogAp z6C3-wLOH8sw@vFJFi}0G3gN%|Fdd07CDB<3Q})kg?4HSi=U$VYt{j_kzKh*#$^@hV z({AVigC??PF=T4MAnuzgv3Q0}7eG~xe#)MM?L07zh^yY^n8$}EtUfkkszv2dQ!N<+ zXEUTYjhXtft;bFK!C4nKuu0RhMIpZ)(977ADO?;Y?86d&YnO=P?4h3O724t3bkTa~%Lh>}0dP5arF8l3j}lcL97JRin)_$cZuA$((?h8ro;Rw22OB zJxA_-GjX~D<|#0m`E~rOL*}*l!uVjGxWQ0Gi9gu21 zPUqq-0=sq4<7=J#5)gUG$uA(PbMjh5^-g|~ezG|EG042L>tqR$ye5KYnb#JQVwP>r z{FPYyjbw4h47z{BOsAD|&F!@9%{^ogn2nJ>mT!K7G6iN*8Vk+)=xlV6c~VLFwEbxq zN6iQ5({c&rLM1R~{7SliDGY>~&jDhYxqzB2H+Nwyzh!rzAk8UwY9v2yUR}Rja2oXC zggG5svC5n#2-XYCz)ADf&%pQ1WSH=@nLMMPF(3LnIjc6;qle36ZnWvmH!w>l!2^{d z=_cOx$l2ghtT^*g>d`sWfh=G)$k_$6LB=kc8*nJCv(n8i8!w&aiY1Lo<*b6;Ft1#c96z^vfIgVJ z|5@B&1LRwx7q`uq=u1|QdCFbbtfQAZ=IfGo<|*<~xYgY~>NT0Wg4XVuCq>D^Z)|7x z%+K`|OO%ZpSif0D&<3c7gXR)Sb*yE>W_IRN;3U_BjhI(o^>HJhkHoH?kj&NYCSQs& zIn^CCA6O$EcvX} z?(S1kYWjLwPy^!rode`BZyBF7Oqy4wd4b@V_oBJMjVuOH;!c(cE%vc_0^t+$J~HFD z6S^$K39(A1&26BN&&l;!S#je#62=Ih z3+4`rUYh3x<_0#>GEuNFpN%feRk%+MG`e9l1>-|v%5-$Q*)3L<_)DwZpK%jjD>uu)mJoE`E}cI|vK7jZtPR)8S+WCibF z2|myLpqThje-eGpNZ*d;k(313JDAJ~NPIOMMC<0+sosfghIpl%iIJPnHC|5lNLk$3fVS`*fnh37@d7`R>Z}W$cuX z;vO{K(>^yqrOx;i(y*$13Me}3lT6q+vX!0pkpYnxd~OIEX-5eqCzi8IK8o|wHQTdP zyw0bZqI#bcq4ShcsqrPO(Pzc6ZQ=~O2+Ks6A)huF@zqUBI?#N1-s|tJ}U5^EIun=CYuF5j^B_a<~zb3X%#iw=W~*x zexC;95BQv-mqDLKvQpr4nqKbvVCfF~loHg0g|Wjw(Bb872&Pj6=dn+oL>F^bNz^tT`A>YhkpI-D4%B#BEZk?bk!F0d zAlyxC07B+{mJvdp3xvE72wCu%px+$=Ew6l9-u)X|76~n3mM(Dduyrib!ot4pSf?ym z#`aj267XnCBXv2((gwU#eaH^Hrl&8#&i7hQDYvtI7BWR*ISRI#y^K2}_(99Ens;A+ z5kF)(1fe?4@_@KqyyZL=dV*y_hdpO`xSHh4KAoH;T22ur&Ui3~<=rE{AsUKBpuyBBmnH2ri5V7@HupDzW|E}=OQ%F*hb5{rDICkX$sdV$iM$KB^K0GR zPYCk5D0b@;tfalmS(?SIN*vTIfM8MK&giaey5)tq%4E3=u`1It2DD~bUMjXKE0(h( zmK{|{&9yuSn)56LP`L6fBbcejAG6GVVr=L`R*3B|^)X8ZA1>X(N;iq?U!O2G@F6S4 z4lJNglBgXNIy)M&W?4QcQlwr3+m3rmK?GLJ|Oggd?=-VS~r@`h!I0Jc~%&{V7Cy!dpN zA%0+pb=Gcaqn0`>u^*67Gv`M2o9TP%RZFCp{$Zu~5Di$@ELViH(MhUt-7-vqf2XAi z!|Jl+NG%_wzI9tNNw2802sS%$s!0nmJ_IY$8vNjeRd{) zAa^bIv8e7@Xx;Q$+R&Gm5ObhX9N5BhBl&=3#So;)K@0tZundt4JPV}2VaotUmB1M! zwFj0eFpq~8+TbIWDY9*5asHDy=>cJG%yM3FL$18Kjy(nOtK%hJfc z;aYj4^j77zolRMKg^By;;<7!F980(CJe05HY}(@f>H{HgQNd>x+IKUSeUjw`$FD_> zU5XaJ`9?6CMVGd-IZN0!DMJDP8wvb??+ig} z*}x9@DyXG6UxFF$OXEoJo%{iakMAQYvUer3`*JGc@ExIqgs-t=sRt>(1$y9N;XRh_ zyA)l_@C70>eS18FTLvnTCE#WI7GREZd}E}~Y4Zf7YBS4|pyc}&5|o3RS&^?BpcE67 zqrM3%-$E%7P>%WLNgt5Mss70iSh-Zc!gpZ{<}-IWJK_7zG*PrhE}x-zHPOT>-&yII zV4U=&ft>Pv{4F72-I4^Yi|&$K6)8!@&!qBmKNOi6Yb0TcnmX-^{+;pd2P>=g-Tn22 zEy`Cr*g4;&d$Cl{3(yyQQ+Eg;L;j+#)aXSTP_4l4CEusi`TR|+LF)Wv-ziFHcW2GM zOXJAbH5G34y(aw$r6O%&^zFX!$nBsGT=5;FI)_)Y>k^Po-;`BI7}&~gNC`K6r}ZhT zluwncN1D1jzWI9KD0wUE^%a7Ap8(qL`-~tpZ(>7I#rwXqRPo|Q_R!bu0$B&521k7x zz7VHC=#G@{d4%Jl`h;%@RI)2u*_1DvBtYjku%{BBY2Q52;94loqQN;)W8Qa;;Fs)R z3%*Ml{lRSs{wv=mJTCeU2t&wJF3j&S!5dx6BK-usD8C6>Bvor!w4WGJj9&df|Gcnw|VUq82BANZw7Id{TJEbMgmxZFlm8 zk5IM4$z?@&zvAS@h^{($Ii!UPYuI7GWpnSzSfXE=*;$N+*v6&`u{mK*wX8{2-!kCqIPfhLacW0FiX^{d79U$>R{+ zcJgq(UKzcbrTVdg)#A)(kCU?$1^v9agJHHnRln=xZGV!pdrsa?9`l^MnLOq>c?Y6? zCr=cPL!G>pT;@6X?r(sKuH<)>Ieu$y$r!s0;b1o>7hkU+&gc3yNV5IoO``vxs(F41 zkf)(=<$^Hh`+;y2_(63q^ebKhHtd&*)M7t}0wmur=EvZ?e)~2Ef0GVv{)_rbJnkOX*gFN-pJ1Tv7=}$%mc%&^;>}wm;BmR zNDTs3ooKIK45&fCz3g}XS8v*G6u_E951Ofo7QYMta}cn00j$H%vF$CeD+1V60qmLp zcHM90*KdGz3SeCVST_N?;a37+v6}$wwgA@S*T3p5usZ_SUB86iNamnW>z*IL^a}8O z0$9HQHbB4z{n7!fhkyzDDR#Pmq?l@`yOXl35dNl92k z1o1gF^g=YWKn=eXExhs@Ap+o+wnKb%&!XS%%UOi~s;0j}Ird+K1{>v1f7Jbl|0-vD z{M#Yr%5N`nK0y+z{3@RI1a9I9l7Bha`F}D{vI-klh+^`cJe9Vl$TyH2iTFzWo*RBuPu|YQ70e$vy6>7 z`C}?GjyM3b;N+D%WbBcXKM}VAoIDGNuUQAgr~1<(N%OCM_w6D{_b2RU_!Dk3{RypE z{-dA2ndfYO!fuW~&BGBwV6J~2fMw9~E%1LgkxOvu$$X#yRODYvW&{1NeenjwQU6P1 zFVMdM;V}WI)IT4JW|==)FBdIVh}J6!{&CUZ3I95juJT7`Px=?5!MqR9;2F{TYX6bH zZN9Uj(Hc?zoPc%SfBK)_G<`t;yC@p1CFqy@Pc2a>6Tm$ESrNbv?Eu&&0k+wHY|UG+ zEdp$-0NW*-qYS^UH)!GKcw>`g+HWoHvUkE{mGTl z4gX@vpx&5T#%}s&qU|YnLA`qXSH5uj8}+&)TE6Rl=i2K_ z;4SqUpl%EjzJ^5S?)x7>6G>Y!yoX|VBmVW9-VSe6G%_ZJH!grp_#b|YwMPQNq-b`E z;6C=>E&E?(*Jd{DzpVGSZ&vj)|9iiEyQ*jW@Ba49s-E?~^V_$pdd@!|9cd?`^1^=& zIlr-X~c>y#}`2h=mTipesexayeBp?2Eq*9W}SQ=-sb2{&gLQ7An`fGCSiewGO=Ks zyiA;Lg#`AW{N_ZS-5OEud4J`?`zV_JHdUJ30ccA-ochNQ`DVi`pzU)*?`S|3en`CH}>d6m<74~6ToDTvn(|4GJTTs#7AdtLlA7WqCG zzxSa+nfw9UV_o_Teg7UiBn||n#{Zcbti_nJY31yJ=S_7msY-BN;#Rfl#jKgAJiPj16(Y0*nR%O0|Ijoy6ea4y7T8q$StrQ1+tkY0L zQ>^4iI@P*c{Chng3_@m&`ZZ_i*2hZ;Rfqlna%L?6*Q(sf4hDg&S>uqDWo@M|2-(&; zNEf9FR_I1IB+|YCDrY^2{3F&*H3SH2mG zN9fa1v2}`~qt>V5H=lJxPG&h=+--i1j2&?CGRQ}z7f+(8 zi+AxnIY`+KR$*O7-rg#$-Wt z^gF@A8>Og0iq1!i1fQU$uyc*>fA@U)ej2U@e~e_*wBf}*olx(!)l&0hgsYBRfF zRVGXPlDzX?w0Kl;h%!SYk(9{PG`VEZ4;+e=K8pR7B45UHm2B6rc}Z zVusNNs$b;d&yiZ};!R{x&c#d6g%TIPwnd?wSMtnA-fG=O$4A?&`>~JOt+XUMtX;s) z6>I1BB@@%Y;8p7c&C4|_IpVrbYroSv`7`K8*2bTM99yF!kbA>Qmzi!_BmXL6x2%=F zluj2(9)L@JDPTo{8Uh^&gzMW@x<%DvrCU6AtizD8?^>gfU%8Pz^bo&Oq^iVM?^(-# zDOl-M5QJW9g=CM4ZY=d#=_*pcwH93-uwLDAZHsbpJ-ct+6u)9S8@66CgV8EwwI7f*RJX>TZ)Z=f?`&t&Ryvvc%nEGI0Gr#{EE0CGIjbWC6xG^^ zs?V)YmJ%K5hJ4(%mc6vHOIsDnC+;jPP;vizG8P`V@O|Msk1Rv5Sx>N?z?83(0b3Ve zHbRT1)WsiCT;}5Of8wm%#p4iFfGGvYS*44ofnFX55&crmPPq6Sws4h;A91H62H4UM zu|Q6__ya_zUEF2GrlAPD5{2k2{aF{!r7y)bNXEvQQS!%zy@4yTRzb)MqzT_2*e$GM zlmdTKTiDEhfv^VN|9^588%RD%4h9mVI~4d(NmQCFtytx@0D3GLcXJEoE8FK~pY>>0$z+3cvob}Mr$iQ^SR;hup z2H~lFa!ZAW^71A=^jSur?B?d}EHe;5vjWkrCG4Dw%ckl2s*4wj>#G>h*HM0Ay=>^S zp`CewZbQ&G^QlHbAXP35Y!*Ct|58xKz;LXK;=l^J=iQ^c=;AASugWAlFnbeuXBl)x~3110PlE zWvLNppe*pc0nB*nQkF&srpp6w{#3>)1THEA4{gDW1`df8asQi=YnrdI6M-!%%x&OH z;O=DL;5T1?@;()Ko~Zcgz+M~XHZYz34O9m{B^8DZLDV>>VAFK=kGVdb+@hTS0LVKh zA@4k);zFSFQ-!i{86S(_mjc(9(Ppg+EZ)x8$XeF6la3A&fv68G0HcDtE&YA+-#LuCY|G>ZlBWS=afur9RE*a{UytcvH8b}W1+X9KIvhcMN+9`}4=i4>Pp(W_&pHF$&H+DNfoTZ41DpN=`V-jrD>|!i zS%eKD9C16%m5z1ncA)I~=db!b1CYMe>|UUI$1kWDIn?b9#Omq`EZ!_*{edOl z7az2bNzqX$+6WR8*e)tu5n)@fj12}h1VP*jEOEaqQ)YgRJqVO#2^$}D5a?mx0b-$u&;&te61fI7R$*%hz=L|0w>91^clo}68G@kDUXP8W{>MeK6%{pe3OxC1(O z!^IQ8=WZfzshr&cCqd$E7vH-~&Uy%@jNKuaprkHd1DN*+n4I;xcr`%x5llJjr|K99 z)kF6w5B;Zxd6N2ql<8>KgBv@V{p8Y3>-!6pI~U6{Z} zfy2T}z=C-jXfwD{VpPo^{r-7|XB&Tdpo1#K z^GO2JxPzqy$(pe%(u1CefkjYXiq^2KAX$WPVSO2W$qq`Tz9g+>xk0jdk^Df|l?>Xu z8mjO*Rv5Ij@_q4nHjM6<76n~^1Y8_+l|;*|kjPpabV>NHO4M+6DF`&6 zF6b6Xp7lWqP$U|H4u1^@2x@}R-57M{6LHOHFi6gtf*un`Y7VLuYh)1pXbGwl&vfUo zH7LbRp{&`#I)XgL1Xg3#f@B0`BfJ_kA*QQEi%k|ZE}o}em%)AuI!t)&40SpqG<ZVCDc_G3`=8iAo!q$~u*f7Y~Bd0{;&EC$gDny_FhA0E8_Gc8U$1@`Dvu(R6_TUMRAQg0CT^I5?JSCoV^!W5G*e#gQK> zR2uvU!eN;xS{^)!=ZfG%RJ3L*ik^@fsuI~JgX5^7LV|H7cqs-^9UO)3pB1gu1m{4d zJ|{|^4~|6oh2Y%?F9x@KU7>Wm&+39%A=Iu5%h~1NpWcGvdwL0L1^aCbZr(1Ps`wXL z@8kfrDR}x{X#KU)kC=bsWo{&#b^b3lRdDflL{hh#u*h}^8>J<<8U&ycd~X=>5V?G7Fk1~t3T&l|x3~c5oa(^#qga*E_*Q-w_?$zgxP(*tnf)UPsNlXbaph_=y-t|0Xfo_U)YY z2A6|d^aYbui{K_C3R^`z}kYZ5V05zt^g5kfY1~CcRg!F zn{#N3F5F>zjRr3O&{*&>JdX#LBAf_*j+95iaU=yz2EU+dk-@1R*ona0pt2p59yphpTe zCr&pOqs+_TD5N=gAdtqK-=SNZ8Wd(wiBTG3AQm|PNWIS+F={bPNL2JxmY`iqPfGL zi}muv3(VKnid|^8<%^q-_l1o)8(kxG+U`SiciAe}V(;6WpOeVy5C=k>{~%{6wmjjP z#0eIkiYDYN&DIPQrP~Swpjp!NA47F`4$A%n3OS;uh$wm5#g|l&4FM?Vh-M%!A)1BO zjc5)M8KQX?-~E|Fxo^2_+E5(9b8R1{{z}--Opzix=s}*%i7?-mgs{Li`rlC5Z6rb$ z*-nrXIGdeJ+}d1Hg>ht;*jy-j%;rE?YD*yUVw(f6EVoS}x574tu+laRtR1(F;Q53t z5oM}ulXUglmMj69LdGfEBZQ}IofvD+MmB+$Gq%Iz)Wzn)+@7^P0E`-2G&*q3_G%rN zxQ!08U$8wUW6!o$qR6$jW7vY1Y$Gz^^Ko$dEewRP!**^x z$ct?NMX%Z-kaA6Q^t$aSSsAm{Ah*lbkKAtC9y+je!$yv1Z`yj1bW7mkwrxNzIvp-G zku5&*E&dQx#5PZTU&O@6W5&ahd66*Ykj$ge-8=5+Zes-Rv%OEmQCNmU zwn?bL_iZtF9=7cv$LnH7AKIpoJ|ZS-)HaM=KW5vF+;P$K3ENZTKC(SSIBAYU^4@mlPi3dD<3@%Fk@G-w@LmCk>|bT^hw+`ms&j-txGWbQ=n{$%b#bRd~$ zkvJ2Z%!`qEFqvo5>!DowTP0Ec@Cx8 zlX*VHj%0p>VrMeXrP!6s3#kvu=)=sPq2wp?yO6a~lleWe37E`#5v3>d)St*$Mlw&P z|2xS%1yNQqzk|H&WIpquLRkdaBjla^plcB!4-^75X&{P`A@LwyQ6cGg-W`&Oa8F1o z!sw6|5}sp1vhlJvx{0)Wj$ad5&3vr{e<)Unbs9h-_9S?Dd9ue#lAqPKJ zC||g($(ln}^sjlX)VG9CpISru$iz;^>ZiK{Ps;+EecSG0>NN8Z!eIf6B0_h^81_IMS$Zkn#GC_q2iTSP2 zy-bibLJpE+sE`HluHg{+ar7XBl&ps#pMVI4?0Nn3_qX(EDoUzF3d(2*={{p2HCw{D za&bF*6yjF%yEjfnCPU8tP6%p1#Z*W;w1>wb)neeUurd-n*mTJ1-P=G)LdY6nNFVT1 z<-xA3AVNa@mMyLfszy>zj^7hf?QaLTT80Lnr=~208w( z;<^biIIx2q2;FiUdR%PiZRl$UL)XdKq0mcMl5wHCzkI8`#)o1NB!s2|%ZEcRyaUP; z8ug_>+g_>A-oFv zNH0g1fHsBFWTl2CE(0KhAWWf=Z_0u^0j`{7hAsljr5~`I(09&2emfGHt|W9laTjPN z1m}jHMn+yJ(4QZgyHa5J7{uR#&`OA`g`v^QU*oqZlyF)cdK}3|LmLFc0!~W^r^iB% zc>t&TRP3qv}Fi zUw`dKg?gIzhR`e0hyPsQ_j2g$cV(WW`A6Fn7cnx*Iy} zEob*a+a(}f5?UfO(DFlRLG^`3LI>#&ZIGbT>KO=alL}vY{dZ&)bPwQM&W6Ogx(|@h zHbOfjSdpvb>_O=6RhX&M>)2@M)?SJ9k~@;IP@)&(p;1~nn+PR*JPI9_tZie)CPNSF zApM2*eg1ZO9@F$Z360(&V^2f-rF77#>CgwCi{aguDj(L#*t1Y_9x@|_KN~tAl^v9# zDCmlFp%10cO*Dz~00|lq3c~dwlxW^U=+NhHDb`D|lwXC`Y*Z*mAY1MFPCul|h+Pp& zXi*Ps<2*GsEt{A#qwX2!L(3o8fbdht{_(t&U zT{#e(_wQ<p%%vOI<<_zUib`*d)EbbFz#Kn4&!!}f|bSZqIH(A3!CWht^xES zaaWl_Y|aYtcV-B!CG8qQhJDxB?|~!l%0mOrT|k>_S2Q}2ybF6XW!Dush{3KS$V=PR zhtlc02>ThkXtpwU?V+EwyXw%*>|MDile23OWsdABUn&L`L-zgtf1=(yFskdyAHR2I zC?h1mrWvpS;lz&P%_hciob1LacAVXKcfY&et+A7AHoyICwx~?eNHfy(N>QUo0%ib# zK%xpss3Fv7>H-M~1QIF;L=#OC2mzveKj%E~{`2m8_uX>tz2}~C%Q?AGt`DjgYWGYR zd!jVE4UuAR)Q=*?zNlKdrm{b(hJpi8tL9+b-OEHl)a#d7jm5YYMwMc+7DZhqh3imM zH9m@?^6@N*>i>e*&oN}BQA1x4U1*^#*r-9ydzDuOuJHQ+KQHm~5fxM()yE(AW`aIM zl}s^f8{QC=QJT)rUTuw5MRk1k_10*0)H%@Ut~bTes5xtu-BV%{#{dYZL=?b0!C;lw&~s8n9$FGadW{8WpkC<3xMYW=sB{XO0gXn9>NTB3;Nwnn9KO!~K9fp;ou z3}p6txM+`>aS+n)nW!BQsyhgII-?FC;%wCI2)-YD2f?XtihRVKiy~|DT~Psy#QCTU z%;WA)#9?CPzZ0bqW^MW#q9;nTm3QQcqF;>K!q&ns*;Jx8YI``wp?HoMh?=^`_%+qP z6t&y<^$D%Ps6)zSk~o#P95q4b)rRJZt5L6&gXmm~s`weZ2dz|Q^%3;M^{6aRh#OH= zKjQ^(^u*1mBg*f?3TYTXCk!JMW_r{B`sjAlNu;`ir%K$7s#f+|F*5g}%7N7*QJq?i zwsDcP-jAA72Ce!*)F`Bz(mA3=xii_U_@Ax9{P2DysPOTq*3Y>@g7INg%jdiTgU+0Y zs{V5zMidHv9QBz>JmDH98H%S-o#gG2=Fsz~hW8kVYBEnBRWt>Su89<$=;_Zv)VX}6(UU;a%MoIC^tY}7H}^yjC4j|8_p{}-%Xr@x-SuzK z`=i&f#fvK{D)=hm4@6%h7p~F0R2VIv9E^VW8V}(yOoEvWV4%E4d=Z*&LG%`A!G+N` zk)tU3BIh_m*QKJzUxTC{y%{4@5`7~`?l_*M%Tv*==?wN2@{JQs z#$YR=`;>*hBa1n>jz34Dd&yOF^lDl$h<1ZYpZ%s-4{@eC8a-1JUAdSoAoTquFP)9k z%1mu^)k3rO;sS9zS`>o(ubwaJqNlg~{OhxG_0i2g|N87)Lv)k!(fadOXXhHDfr3rZ zo9An^`4OTu`pql|+^3=gzlUfLef&LI<2lOir_ZBRzRi9$pde9k+jAQREa5WsR)h)j~}qX(f?uY4CJs6|)w>K{W=h_2}16TNW;QK~R85oWxTFh^7m5Qk0wvu z5AYkjKKkH~p$0e+&(MAZEStH{(xU z4gJa(4E?H@!Z0)_f1XH=nZAlw^T;AtO3Z2!MZ`*e2KadvtRXd~#iwEr9RfYiiWyKybpeUd$#cc#7|ksvH=Xz!jJd6t|D!`%p_okS z(58iATa4=bFK7jktdnKOZ2BIeJKq#JG2}3Nir5>J>dZvU>7aC@J^O?5#NS{h2jyw# zhC|`9?A_flvyMQ#*b`HNiMcoCGNyaR6j6bweKD9n`(sK7!w$scfLrCqbcVg!U_TgB zOg{=@ykK30F&;dNVs2{bpqQIh0b_v5#WC%ure+?hDT|plJfDkhK|$p)Cuh7W=x|Im z6;wgB9id#6G5+~va6BldJ@}zY91O}ai%Jv(Wf~bA56W}|ML{`^e}{r{Exw9_vixr# zX$0kkX=d&IMdE0T8l@eJ`5$oom|Auf)JA4M<^YnqnCYh#NP2$*{XOP%_}6C!V)hdx zjRZ+k%tfOV%>++N%tq?foo|ZMF)FfN*A`RC`-c0LXtafkP-I8Uyh9%mFQ8I7V^ZG2 zERNaj#Pp4M#D`OoG26RhDyD%T#Lz%ph*^V}ZYsSerkED|Vs3;nOuIqfPJSSY5Z4=1 z$c3&((!Q8deg|azF~=~$2V(XtVBg0j9N#w&5N=y8F2|_aFu$(EoM(mm6dHYrM)_Jy z*o|pi!69nm^_X?PrT-mY59f`TBKmPNW-a-qp&qyuv!0d)3C24y0nDA-OT|b`#8DR4 zRx8jplb6?+V_!@a>cZ7h{;L#YF`XY{8pqt5!9pd_H0Lu{}y;{(oT-$KJrq z^2XLoMFB?^i9oF8G-$!f*kk{Vxf)x?D=78+JgULuTOg8S#r^M@wP%-#v{=<47BRQc zNtg84N>WgZ-V*C$Rmo72HpCVv0^nW@cJq96WmfF$UZwSEUxGi!qKTVggXG*P_8B@X z7&{I*Bos^DS!2tmzv|zuu?^I}+hTh$IkID)BIWkjbT*F`dyQ{!_ARBfXTi2}V*Mmw zUtJ(_V>KSO;pk=wuopBvFO~%9-LU~mlDAy!i=9q%Y=3Mo9Yqww&`uA;_W$)ux0v~{ z7y0!lsOrJkK7M~N&#b++KorHQyu6rIjjlQrTc<^NByuKHRitBYOD?`!zE@_$9M`q<>JMYD$3ETVt|i$!y+X6zrJ ztH<8_C9kT06Sl_Qpo;}!c%DW(7%tjk=Nw``KU>i2?XkntSPI`nGJ5Rh-%cg^PA;4} zVng&1F?H9^UJ5v!u|1#^TfQl1gY0Zr^r z(ZcTwvEB1oIe-K>u|QmmRjvK(RhRU}uA~k){iYa*)tqHIQid_V6npM3X#6P2U~DQf zdY6l#SXJv^zsh(ucHIY<&0xi`+B>u?e=~Ng1#>mFkd2;|{(n;3irq?flwy61cC?ds zC${LXUv75YjrCE*J#)lpthfZ8TE9>{h@DDBkH?;2ApknU!`OCyZR00t5EHQ}WF~5v zv_6Sl^59RvZeySQL5ioblXyOhz5gE&xMS%CM{MASUo$9|?wDfdB>Ov1t#vDZ2+dm8 z1d8a@?ScsJ(;ZcQA5-pI9Gc0rjBaY_it(PzKBxmaG7`U1H?Fu}cmiQ*m2Lo%-D=%^ z%)psyb?YA?lk1w%+^%V20+Q10sp2?!j?$6SfD|1$kx$h<1)yoVThr0{!ntCdZay_@ zy^hwLHt76(pv9+XIBRGQa98>io(k-D4E8Sx2IMP}hvH4(U8ZYqscIYK^vIsmRv-=na+FuIu|FsDW-9 z8*T1*TP<>QG@Ezo8t2jgSAk~k($z*%xsT~Knz%cI_sA>pBUhKB=Iu@@d( zck8m1ejdOC-lL0DiM=`!`uFLw=scnB4YfF+qXUxpx}q-#PYS-^#*uKZJMab1yvjfD z4Sv8@pc{nPUa0GM8w^-CfPOxtE10V6Nb}zO_$>Z7^)UxW(Cx*#Z-FoCPB7HH0IO7Y z1mKqGDv`TfSAqA#x~922;;X`_^D6;qg{~Suj_9rseXP_SkEDL@g2Y&*JH{oQo_`_wVf{ftkaDs;{NGb6m@qR_w_xBo2_PBZMwEu082o$zuZChX_ZQxCl|9ibX=ou zg8WJAdX{pln!d%S^&wX_>$)LTwde?sTXhdO*Rd&d@?nhMNBP-iGc;-7DyMZl zvxlZ?S4T+e8J%W!r0CE!(iy}~0{*P-+7cl)YsjJc6j2Ic?{X4)Hz+S5C=bd(1c!sN z3t~Wim>l%TZe7@Rs8&6?{ZPHsFH)sUW#1dRoW&%$ohQ1|tJ_CEpX28+9dzo`(RN0^ zE*lvKbf@{M#(9)DxJZtAC8JQjF-Ruu&al9n&R)q2AXG(~+$Q z)WhStEy#TLExFAjAL*tJ1Fpxqn|MCa-J<&;x*K>t)m+ z`K#q-kN)Q8uQnyT`pIu-w6_+^U0xZ`&+nz_xl(_d=)@{L*yw8gGgjeW{PN`%&l){h zkx$mU_}JH3I*^{ChhmVb&nDbR(@${v$IOyyC@Nk5kfR>)^NI3=?6Ow>oC|%*F|=~J zPCv;p&%T_dZCxxf^db!e*tb}2^~jC-=_#*Z*rZSU1S?Wdn@|Qz`*VL&GfNDUrj-dew2oOr~WB@?b6egPkkeyMxK6{4^4Gb z_wUx{&^>LjW;Q+PhV~x)&NtXmtmj=|U`0?)J(dJHJ}8ePs0_+#1XV#tzIJUcx1l*_0(Un{)k>ZsBirdeU+EAw4a{ z73*oGu0)^AY0_S%REtuSpcZBNlwT=}b`W0lv<`S!PYZPw`p0h_liJJkM3r7ssVoT7 zLCS^u%tiF698hK}_IImajgLHgBe;ia1 zqqG;uH2Q|Ps26u29$i}|`t{-&Ihn8?4N6TD)Wc&z*@)nHP#*esP|2X|nF=}?l>L~z z?Q>Pu`%A9q!^w(@K8GySOc(7e`JDNXkA^C1oI&V7SM^}x*Ysp9>$<*dDZ3tak(+Bh zc>uhrCsSC%`g>C~+6^9-@{WBrA>bZ(*XpE2$98Iay4_3PNt ztv(Hzp6S=)`COmHx2@9g{z5+*$-6h1_;48rR<~gX$uWiu#CQ!G@bnp|ael)%sAn~# zi8mPHU9_ohAPI4$VIxwlGGyVo+R&l+SR7N@#a^`yRbd)!D1us_YFJzjp{r+_Xjd!> z=d$%BN|t6w0lQ8&Q0vzkTr;_?>&e=PI0T(*oq;ZZ84mwKiVcPmL}VDy_)Nn^cFTL; zBt@2?7||OIJsdMe{%8$DVGPZ#_lTYs;rC|4PPWChjtgE34K!$Y#QP7__z*XBi@^(- zWfx=?!`!2g-nSb@c#hrsHAsnpym99kk^$vT!>AJfD@N3ZkOFrZhz#Z$>exmpCPALz z&aW7o?{d=K{{($8Wd4~Hdkp($LsBu2SM7a<%|PD$hAK!;2MpK1C-Mz-5gKjlLQ!Z~ zJ029)8GciH5kq)m~#z(8yO3l48wF<(y$6h)?&DU_f~^@Hc!Sr2*{@h0ZtQI zv>A$KLg_JFQzl4%B&WHB3}+12$$hTj4xXI`59&F~SbomXL`(5%LF3(Jn3%26Rxc$4 zy=a(Q#78E3FbchfERrmR=XF950;$gs_yS^r;lV7fsSL#q82n!l!U2v;hK=mUq!3LW zBxRA4HQGn7OY1Gef&e?r2r$Xn{Trw| zh8ze{#}|rJXkK>=X>^9kkW6Qo3~T5NlOYAqQA0YOV}@2T1Z|*0G!G2^4?!%bj~*H- z=QAkJe!{wdMv4hT?G$bXAbn)m_8JI?VKqv4VtBETTC@_9+@xUyq_iwTJU2}D(#2$h zAF7SZ*#8mDD6*{OHa7j9zo^b#%yN!EZqgy z=U(I956OLaA9C$8UZ1A8j>X4*BMs&O;~)~{8?V0$#l^UvlinapNMZ*nD=^D#2hl7Vi+&uz1VmK&k`fuJuEdIn*m|kcoi|_#$71rurUYE3ggiC zz_KDlmGSMg1(@dyc@4Ls)_8_V>@XzvqsF!Pd(3$JGt6@1`UULZJDrL8(a)&zYI2Be zOnr~u$9{*2Z>*$qMaHA#7Tb91`{ecfKH?jU>rham@$@1t;tv04S3XAZzsZ=cW{-TEVs_zgw{a74 z^%!&Ue$jXzvU#tuh}F1)NJ_H}fBTF%_}g#v(&6L*<4MekOU6+)gIU6fw&3@mvFumW zf~|PJY%JvXgOLnZ$;a&Wo`07DL9ZBhg7gM|B1$9q7L)@0Mxrss&3IllzIct11Vvpl zW+3Lev6y@Wh!A3K7>hwlZyFDCsfUy*f=D!MT#x51W44BSeH+r=W;DEG%*2no#xm4> z&$tuuBgPxN&|Us9!9T$(& z;N2b9_V=JbaVsHqubU~Y{nVJ^^be%+kMYw*Hdo`Ge#`(IroEhkxXF(> zaVk2gFzymcDT)h5U@FHo@X}ZMJWS;{x|vcEcNaZX8g~S2q%5xKZ!wkQ9OmdI->>f*w0fWz0vO}@sn?->|C zLtHj_z>a&0_olcPiq(Q6kbj!vD$vH3xTmji^IgR0<6b0SBFEL>$LYA8D7Gsc#h!`N z-UOxUh`WLT=;Xg=;|jpz&c#tdU2*%ABB;FcaeI}z36KkMyHLiqNR)9gPWu2g^m6XL zxGZvW%((~R)&UtV#kIfxbs2+k8(;srjLUJkD5Ia?xEdGs7!X{GqxkD_slUZcifaV5 z^{)_VWdEHD9Of!+#T`^gc{*)1a8vKZjcYX8$BV>B-0agViJszT>qjry(P-SwAFISz z9Pz&UardFapHhq6BwId+8^ad{BkfOBVm$7_=Untn`t>lb{P#3cH-D@a6LG{aAH`LX zJEyqabiXtLa6gUHo>Mwy2Sndz4CV8G0If3xrf|iV5w+fQ0nZJleiHUgeRyV?hyZ1o0)GSx zH(f-`CQ~;F^`<9KDh3vcA$$Z)Par#lOapk|V){fawwgXsiEXAXd}o`Amyswpi1+QL zCcu1{VBTq3ge1F6%>XLbH1Hl9`}jR3feG^%?LLbj2$7N7|PY0zchwMBB!uh`s(+eHI@rrl<6g zA=Py9yVZ0S$xfLbzl<9LEuSSi5qH`&sbo5XOl_vz>8qr+S1o%y@~r7?_N98x)S`G$ zyhn>YU8bG$sn53>Krl=Nv_5pf)JzFP4@RlmM7x)!PD*;wMBZe3O<*B?rirO&l&Rvs zK{ZTI*vF`;=_jBUrb+s^Y$ETYS4`wvb;v|+gs+;4=*Kk^SzowrdPa@CVR|~9y|=Z} zdelwRp)>@;Ch`}4%jBK~VqrSM-g-?}Au`=H)qmq{anIBks}du4UoJ*XMNlWlOym#t zzG?T8?`Y2~6Aw+|)9+}Tmx#wE6_xbFM4rbdO-IT8<3LbOb=g$nQc$`foD2q~7s2JA zEdKx1;tB;SF%*;@L|zTb5scXJFxg;m#cRoVusfcduzKRjA*(l@-0=G1$qTJNo_xCo z;>kPk%6M`YyefXbnv|&W@R8Zt_6RxtRdW0^^4^;gPrhwaHf@a%a0fev*jeJdqhMTGc<(-XSmGq4?J_zpEBo;=9OXOMI1jx!4x}qezh*pYmO3 z=y#O|1U_=(Gm#@Nz7{!l>><0m1i9*(Cal#2K#a~LPdh{lol z9gy%Vl;lMG)7MqvWW1N+>f(0*73gIvUy{WJJ*eEXMW;o7VPs#Zf+L|43|TF%F} zX;H{fq^vje#M4#Pi`*x@@qM4PX|+2R$~9g&5HCw;o&Qq&r4JC9Jr^}zQED9G8n04~ z*SN;(T;mO{@n-x9s`0=g`P?IK$CDlQJMkB%{Y<-kf$WMHiC68>M2b;v?O6O3@|$uk zC}qA?C9VhMMfB^?R8@vYp7F?u_=sEw)Zh4Ahgv+2&v=cO!_GvI`bQJzN&M*RYB9-} z^)&tv8+XQNK0~xhJdbaOfb@c~(Us6nJN5~!U!v6wZ^;85=}X|A@F#S=b8(usBtoo8 z&>W@SUY!7d*CgbCjU^}CSxB_2<;$OGJKm6wzDi3_(`-*qpeC$MATqEnq47%;uztDR z=#d!-bE&$_goi{=vJ%eBQ;CfUrSfgDDd8wYnav5is7Hed)Y+kgj+v2SOTxtaB$+?N zbMq{A4ZAg=O}T!3mPqingq;>J$Akw+P_;x*Tem0dSh!s5NC3CVNf>9lPxt;iQtV7< z`Vs?mZn50tm3axG_Z{@@4e*prpd2@Y@+i7^I4ILFZOc^Z6NaZAS>=(Z5~4dv2tS=r z3#q0pp#_AxJptW#CgIUcU{OLph;?Ve5j@W(JVng8guJ)FZW6L7*ZG8QkgN*{d2g#k zcf#HXmFP*R(x}D7gb|EEZ-O81eJDsR`V;QaC2tg`7MBusqKH8hsuq_~DCk=PHEby1 zIGy}TxHA21aShdg8Yhe*<_2m}i<_uLErt`4satL(+y;%fosdIN+)0=KV0Tf!THNDa zA4#aEQ(g%vz?`v!y?RJ$fJiMKBy2*>;|WKAt`7kPgt3HPq2{R} zm`Cxx(!7iBR+%6ES}j(aC(z~xf^rf~WZaedL(4$lI^^Idqm?<}PHHi_~-$I0*Dn=Lb960|@np)ehmM0CR=68sZl$nE+r`%lk zjYx6We2NZ)SD1;d95L^PG*f9l&E71`#CxjEG*fHL#As^G{R*QQ_=-y=esk13^7`B2 zm>KAP+`I?5PjDxnG!yHoGxsS>hnQQvnV4IH8Q9QhE&&f{GWU`1I}FF$qQ%@rFtwVA zdz~_$r;pR-ktJMD*0klK&3p{dwwsBsoiXo4MIGjQZ$yet^S-c1an?-8f6knT_%3rU z2*r7GH#ws|Zn#AvA;h}dL779ozJsz8#Aw%aS?H0y<_}Mk(9~z9dC|{fHeh~1zBA2d zNP;lajJ|A6drc*-m@{cx)O-VM?W(!|*R+&Nv*kMD-wksG6?D^_ibTVVjJFsKZ&T0Q zVI;h3zK*>2%&UMvBj#+(pHcIvMI^&^LfIKJ)2zR5COYuIJn}m!#?953Q4h`M$$_nz zD8nQ3WCV-YH%ad?6GeGq&H!7UM4>A2)J(+UnfV0%J~vka-Cm#wOf}2(=^)+~A{HJ? z=bx&D*RmRtzRxoF9mqEpBI5ze4sz7A($c}x%u@d^AmkLM5^F5izR!FkgMKAj4zr6( zODS>DJdNDtk?EE;U=)>%>wDzV`dH9on=I6Yn=Pe;2tf;tZpcCyu*E`Mxz*CRh^$ z36szgFkuc_a^~~#0m8u@mOkPYIhH38keDnD=+a#l>f~I@S>iY&^W`Ov++z{#3xB5F zB7rOWEuZY-^)DXG1D3W3-ufUU$hXiiA7ro!2*N^3%@mq)G{{8^)FCds*g|!eSZHuc zEi_PN78=uX3k}O*3youig}UGf4@f09u8KRnnunssa?rqyVBD-#`uix4+c66v>TwGp z>IqA|(wzlL>L&}NIB6l|t+NpF)>}@{o_2$U@V3!%at=XD7~5nypjenEByP44lC@as z_%~s1tA!BslqH37pSEm+MB8Q|9BjArXgS}`seHVJu;Gk_aJR$KKoq0Xf`LD4A(T7E zsMTd5v^;O=SfLoipTWV{LdGV-&kKy1-4@2I9!uW`?F+TnRPvEW_F0x+n+YYvvLEO@ zU`eK%Etf3oNxm3FAHFRvTLwv*yJGQzhzwamcwR--V0)I1D9BTmb|@@2EX{ug&TYv@ zA;akI<>HoQf+UOE=*Z>bj^z~lnYNTrQTHswu0|}w(2Pbc)s$?^Qb&aPzU2{pJ+SNp z*&4TaDbqs>@z@DVJtcT#*@qe)TMpp)#Bz;Fo3u2Og!PYEDDyoslqj0<5tu9YdgQi5ah~MV zqYGuLVMihf!8wV(QGl{)c6 zVjHzG;|+P-BkL1I?*{;7`&)8@S2iVTsJ+dJgg7mUBzm?cw$oP1sl+p1o_|NX`7OD} zBij?j=4l%3-6`_^SDlITCJ8UjCa$CbKbN=`^Q$ZI)<1$}CEliCy^xqci}soxQ?l;F zqi9G^VjufUN$iYZkMi`(40_F9BJL$> zE`0mzgd?1AG%@Q}LX1L=r$hr&(Z&afVQawY#uKyI)-a`g$Z01Mj}s$!lsGn@O92^u zoR~~D3=_9=(gQS^CKI!$sFcOxd7`AuFA{sc)M&>dgf~gtgVvrNCe|j2{!i9O?P!F^ zND`Tpe*0XpF-h$BGF+RwNCcC_cDz--CAKDsnk5?TP=vH@Pny;M!nq^qFdKx~#ybk= zmz<>aq*Et-rV_i7R--?2lP0EXwB9+=x+iIFDzTuwN#wzPUs4sotX(43EEOnKtmb`8 zKlSteqr!K#u@gugVESDke8gEI@Yb&JK(B=zl&q&SvTj=6q3 z2}5!s>Bc7-?Yadr1bk1Lx$AdAEEX9lq)sO#Q_z@{O+iyq?(YclqhQ51J`mNksQLjF z-kekgfnj{Qs6o`w2cinW(Iui5!SDxS1LbW=T2Dc1QqMa8W5-Osuqzm&RMSoJyCtdGo8XuwcbkNb*rT7pRAJF)^OE9kF?%Pn&na~Z8w9C zj3nh@*hZ6%@R;TiW{lCO-lsu&kkpJ~$CF;HAYAW>;IqansCWI4V;&~WSBZ(F`D*bf z$p`${JxvVJg$K1f?U7HDW@W$2R6+59>-$$Jo+UlP)OnsX7z;s<%6C~&liPZI2_-zX zg3f4+0RWG6J%l~4^~4Gul;d3cHZHB|Pr-An)nOWKX@o4CwbHt@lFYDMtMFWHtsyh) z*0Tz4I1eOAwjM!LiWLki)tWVz)@VD_q~D+AmHh$ML8_4?&06t$sy-Fvr(69_5DaVj zOg`a7U9!&FLf&`8{&*?YThGx=Kk;x8#cYSXu)%tXU0S0>8PuXo>jeMX{ZG);tX-(8 zaE`bDa5h>mhqHuU>9??6PL_YlstW15)K$xAA)! zG|fC~|94bkHwpuTv~K12Tl4UE9F&^CkJRD`phZh2DNu{2K^ef;v!L{-HQJI$RmM75 zXUMlMChNNgtw5pzt4CP_nI!SC&`PULMOOD;vkkm*FyKR0y4O@}O`irfYTZTj#2TU# zHP*Arf#YPbvvRAKPp_v>Q;EaYT|XpJMhjIH$P5YAnhYVn(pnBqUS)l#n1KsTM;}>t z{*bbD&*h^DyU_PF)LFIG2fSZ=W2#15E77;dtxK!FVv}O%#1qyUZubf9r=mZH6vO>d zXKm&f>ehPeNq(nMXs|YLdUS51wVtDQ0e_mT$B2?NTiem2E!NuruGLBdbIMxB=>f=T zYZIqG&d*~E0u4Z$wU(1Ka{PA42kq9Q{7wUQ#!5rgVXfkrwNj(4k@BMUob}I>e+w>d zt@{vM-1^8kRmcc+)lc}!3UPER`H%0m9^ktO`- zK5lKJF&nT}|AhTTlbza2*4^Z_*}DEK8iGMmjKx|8weBCl*{#L@q83-I>liTdO+RE! z=SH2PWkxGmy}d>QaNW8apxm&gDDL7W2-J_&$J8|6$P@idMu%a>mRr_Q@WR_x_y3jR zj`cXv>$|82bIbai;2W{-nFm^D-N2Rlz#qq~r(TB+Ypo%*@qv|)X55-H>lM;Gw5I%a zs+hTCYBlKtqTPn+W}Sp)@yL4cKOjC^{|EZ4l{$LTx`tA!)GZE((AFB>vEUp3)?+}O zP^56#!ZQG=+g6Ra>#;px`ybU>sJ1pBzt2Xu=KZz_jz+r!Ho9`N()N(;fn)%%RkrcJ zq7KR?Q^?PQQs!AfMuV~s40rb;ndX(LHqAq#R%x~xK5={!bgG}-cBk8}>1n&k6_WBU zTXhOa_X>^n#9Olb-3;5jmVX1)vXSM)EZZ&&#zxyNwrYDR0phf+`rC9!?Y`pBEEAl1 zv+WT1j$9~;l;FW@bPR26q!dBhnyH`|Hu6hhL&aNd7eGt5*>25ZPzF$5wrv*yx!snI z^gC=t^pRt0fyi?}qbh&*qBhsIV$2Mru%#<^J8u4!6uWIN$i1S?JDWf`hicb?)B_p! z+L}m?*k`*Q$*6Y&iTB$c%y@YLGA2W>5Yy};HDJ*&{>2dgZy-6e1BwqZ86 zvWA;n0S-`XEBa?CN^Grs+$@bP=BEI4N^Ln>J~CDc*3i6!T_lv*#=!Z@Z7nR$*l2~Q z!WKZ`M{I?_luBDO{iw2yqDj@Z4j^caZ9P!B*47Uh?x-!}ZA@od548BxYH{PcnBle# z-YKxv0NRtb9za`XqpKzLwsas@gY8-*-!!<5LKS?!SphYDSqTyrZ*38F{S#0&}FTe%JI&77ZFFUT&R`7vF`#6F} zq|3JOFdeqBQIB7+k>81K+e*Itac2f)Zc)k$ki#tDf1U48`4#`1?2N*8=uJ=s+sfB@ zj2b67UfU`^@0`*m9^p&BtsKo7uw|p4&#D9=(B^L7Z5!fwmtg?mAGXaqgA8ZHX=WFY(!@6 z+BSe{-m~?5_KF^l*wSWz1=}Y6L?y;-rJ%C+ZRhwhT(?pKk(>v%i=1H{3j;)c#%9CocM%c6Yx|e&o5F-%G@H^FhNSU0+ zF^XySBC-l*?|z@g^$_0I+A*N(>~uufUX1Szb`LUT*dGI1^1_8rDTu}|(_V=GS#}?= zt$jY~-)s->j{_mG_u(0`*T2HxEq21-t@Z~HRM*cETNJVKIoQ}Xd+7TF9u=2u?_c^7 zgSXo~pm0Yc#7_I{RX@PU+G!U)*S?y2Dg`ll_BD9!wokmr7i_Lz9`CVVfrz))eh)I? zKKorf_uG?^=z#qb&=Gs;4=C^CG)%wpaw1Rbcf9|c(*QHg8l zh${OHJge<_rm`b`*ku)XfHs_ar+}SBa=N#qs;&r@W?v*2X4sS_4Y2* zy$Xy85`4)|ME?~2y0i*2p}~G1SsU%-ezeIx{(a`MS`^5Ko5#tQ0i0$@F6nw@W36aD; z^cnBqx=F$Bw2uIYv-WSP#5wzA_M|+BXUq4*IRG94=cVjj_H|GT&fBk$kJ5itUsZxJ zih-bGw1I72)kC|ADgv@`@p3YE?;%~401%T|ccg*0%w_z^y+n*z9z@CCc`76T1 z)0UAU_W+46*>BI*%otxNcX;I$`=1W~S|x_;E@eB{rvzTQWZIyX!@pLGtM)NW)oXUY zVnU?$8)|W#kpG6giEI|wX~}5VPRmEPsPVTE4eDbr<@!9I^P1S02BgUT0@C9>`*X!Z z`ejVd5ql;e9kthf1GLD#4&wiP`?Fv0`e`OnA$#gv9)UC^pyjG@J1ti|q~4rBfuKD0 z7mAtd%ODJo?QT>!eU3VV>=fDQ9`B@m<>%}^lq?ZEMI~zS%$@;4_}qRSL;9cL;dCeR zh5aU)>T(b(ayxFKOFWK%(iaDyd6Y*8zeBSMj40qB|5y%kUcSl^;+2cFD##iOMY3c5 zVYDN~aZ0gTz8;cbs-um}nmKacR*7`S^W|!>)^QjexXwX+y57<9zo2hGQm9yt(@O5# zx78vOIaDIc(X2!@A>&3zqtZW3sA`jg`gOCTmHy9BHz}^-sAGeU6B>bo4P7W2m- z66HFE6(?hm4D%efl|mlA$H5~A;aP8py$QeBb=q8gHZ63l!dS&C18NWPe@ z(dKJp%X)dxG4B+JWPzgt&qBuzaOxsQDwyIShwo3=H((on6gy}RmpEwJmO4%&rp(cf zXSt&vBE(@w@@$^H7@G=5A7YL;N)4bgjx$J8<=77{Q0>^Nc)Z*|n;SKbjUdwjb$Iw; zEy#@{bH$6<+Rb6&xMRwT2u`*G6a9pPY%`y9kl*k+$LvT^@5rEp8^c7CV`}Q3MT%xe zD$=z$o++6qc`GMBMafS)u7H0RhKVzdu)T9RMfSJ3P2UHVaFjzZ?R1>~!An5!b=J`V z96QI2?Q#%k=Lz2~I7YvRYE#3+MMv1l-*H#(_+zB#bsSedPSEUk)MIk@I|!@+2KuwWG)MqlcHEt!(T=??t~$b2PsOZuJYUG(4^~gbtadA9cf08z8(+hY zNhO9P{#yjjZHEtRyE;PLb9`}S7UwUbHOvvmVYZUpGlSy>z+grl`=>Gpm#47hvC0Ln zuEUNwPW~O{yQ3Gf$^%Cq(vCaGnWdxFL54?u043B>fz;363J*W|cWUw2aS3UjIF2mf z!rh8z)UE%l7L$%A(>Tth1cOsJcrlfOi^%oVL6qW|qve;JX;Mp2UQnPMg&h0baqlA` zt}F}>CyMdH(XX7$82gB6ZIhC#T?vRnxSX8|+TZ;M+J>`wI?o3>li_g=DIMa0g5z~w z#4PnWuV}dKJ%GgTY*UKqP=cXwcF0)+wJG2n;oCx|l-W6oqE|XEETgEAj~Jf&AMrR4 zAzS72C>@Zc<+6KeiO31Au*T_96#qN4LgdUuXQnutmCDX2L8}t}GG|rVIL=8_k?CwAop@XtZF`yPPw6K-_YjStP9HIZx8Hh)z(v_nE|;f!My= zSx1r6)E#t?`CDo))T}+u+CM;eaqdNn_EFvYo!!8~v@mhdx!@$^>H=qf7~iYJEGTsD zhb&R#octE|Wj*pAa(41MRvWooahBtEiSsG_u9xbJ&t73=sdE+Z>pptfLwkkJOejp{ z&WCf9IHLN8o#mu%S2)k2h$GIe(A+AW1xQxqY{YxDvz_iwJ11v%tF;wj;+S*F`8OfH zIO+1u38#zlo^+1RQpgp^igPnm=%xtK=$yR^YIl?K@DJE&$ztB6fvDpAtxB{w%Q?1K zaj!7*mDJ)SKTW5cC48c~k!FUt{a+AJoMoK+5L-Z?({63fvUf1?wW7nhxQbxtbat_k zjO#z8OubO-&N{0Vs8-Xq#X0BU4~0lUqsv}~Op~0$P)^P}C&4T)I7i-P?gc=)oq6nl z=I(DGqd4` zb9O;{9$73;ZIG9ovxqehIwx5#dCE_cUoJbhk^)bM%C8V^3^_?Ex$4aR0j1c&Pd9fG z$tl;I#Q(25*P@UAQ*7g$rC}QFxd<`roK7{|a#E?cotc06veY}yjjUy4@UxcSzU$25 zzXfk;v@Ky`)Hx>`45mdbnlavE&cK^O1l8i=4{2rh$^Vh!zH@+XRyqsOgX7LMe<#I5 zXC~dtm~fs(jz`YjZ&1=+WEh?fu1^&4y);x?Fhz$NL#=t`G7 z$|=YclS}4f)^{!w$u2qN8u?Cf$*T9cH7`EqfXG#-d2jg$|H>vH#E?I_ADsjnH(%(y6@&Zl! zGMCJS>;)2clREUUOYTPhR=DI@=InV~|89O}py(qm*}@+AFoyU9Whu5n)WR^3XA74c zq}|tAm&{fs4?%GhKi|>Jn1~Q{phGt?4eDL;_>v{s?aRsdn5Le+eD**mzx9cz`yp9= z+eMy8UGf&4t=tfjs;5>UR7h4)7iEUzJ!scWVXBF*Zf3|fmz)Z8Yj??$K)y3BIRcv6 z0hC`(c)5n3CoqvZU9u5Kem7infeW3cHL3G1xs%Pl-on(sfS!D3i8gDAxCoeHL6Tf@ z+sDi$o+p4Px#U*m>m>PX%?ingtR$7#7?Ndlgnd&;Zp7#2knH?-U~x$9ha4XY$qjEp z)ep&hd~Jm&Oi8ze0Ka#H2n1`0GuDfbfZ~x)g=$Jg`jGFl5Bs?CF}mkE{4YF^M*?vQ8b%;zC~H``O7Vl zn=V<&nR5Od8XXXe&n3F#{{I9ibjeaBQxzvEepv!dsXHhTy?oat^A-??y+s&)4-^IX zHR6)xoS{t79#@e}=#pgrV$3Bg_}4)OW6gYxHZx3&gXUcL5#&H7023~`_K$42^fIqC zt>?SdkG}_+pcRv#c-Q9>wjBGdq`O|({{-6Tl6#U&^=6t_J8rR?vPvV z`+`*N-5it0PiVCWN&aPh;?Cv*pA|=NuFeL?>pSG@pC5aBoF4esqc5X znR4%P%c_rvWakn=$aTxDAcJ{s*`Q!RlM=Ww2Onw0UbocrV!-yf<$ef5`_bTUQ6Cdc zIpCI+XiD!QQQ(#{&+*Vd0Rk7g<&!_EM3Gz8f5hE=66E%fTb}$e(9A7QfRUF_pcbX* zBEId}%y!(L{1Is7mKW?QQSO#!xxh4{dxza}1n}$#lM`Q60wT1c$}NvWc&kQ1nEf?w z+0B@A8`_XBLL76;`82%8-Lm%kY{rd8^em6=J^**ZEzjWtlYI*Wu9I$g9+7n@g@|80 zhMTd0l!pfV!-s2%Xy@FO=&eS#%)=CIa?3W3JHx48fPZ1ip8k}N9dv#Aiqo{X%P-*H zB1$+(`6FNfx~3mUR$mbC$}GSKb7;w`M|#z_?$lc|K}FE)1^ln&&mc&;5rB#?CXS#%&>e0@i2H8&x)-2502IhNHcxoi_yNH( z?v@w7&3j0I=pm*$)P)K32<>PAhtcZCZs|qj6CgWVS9*r||4bwD_<)#O_I#VYHm5DuAr1rtL`PBYG&<>CEsMNyek!6uk@I10=E=|Lg z#7+YqS;=4ffiEjPav#n6RUUZ`BJHl3vcxNsJ#uNnp+ZI^sk=K4mMV*6cvd$wnDponq(O%(t zkKFV(yrqfW+2Fyf0j=@KtDL?ZP0mDRd+J;49mj{Bymu7AAT(R3DHG9~S7wtmq z@yOk58jLmr_M*{K&Dw!w;($j^FZe5loqW9IqsjBYCeVFQI|?X(Y~zuIf5oPji~dTy zw2xfmk+-Kq7ML$eJaX!zpTDGxr5-XfQ|6J6nfOoq{MC+iIl5?$S^H?YIO372EVczq zz5**fa(tdyyJeZEK|HP0)q3Q!FL)%fXPC7|7K`I($9`oEU?u3!3A7!-Nsm0BMAoa! z+QV;(2IOy7%qo%%oJI@+D%?L;K%P^P75G+<^eX1hO3^`;3q>0WKK6@O9n|iTM}P6E zgU)#5D4N&(mN<(JZTqHKyY&rm9^ukS#Ea4$q2@D>F@G;x0t)3(9 zpv+RfA*AXS_A|YbT$pEhqinzXe(k)(D@r#$+L0i4D0L{+Ti0xka-Bns%w>r9%gMs;c z$mFtOM!c9L@*Q5;{S9=QSFYC5ZS7LU>hwl(G47RxzvYx0zs1?RzX7GmD+d*Oew&z` zlkv-3uiVWCfqZlrI1d0o!rJYXM^$8^>FGz0(yfPouJKrlWDXtXmMzGP&IZE@;f`eX3zR(N2GV5E6 z+2^U=La#hNi^1(DtC8XAVUXz}uUtiDbiLAp8j8Krg#ZNj6UY@_7D&tR0ixiQR}^qB zELotvG*27>uC@Fpdt#?6CzTKoUt6FZ0>Q=)imCO=d+aKv>JyE&e4aQCBs{rf^9*f% zr0Sw}^s73gBiG0EUP)Wb4PNZM1ZdX2@uzBmCl92jz z2on$`U-e4AQu5Pq{&$Kj-gxC^CFL_E^2rPio^m0FUxF6|^w%+)IkJ~womA2VW|I!u zqeLks6r-*ifSa27Jc65g%PU{+`dEtF7$>t7cf7Iz(!gD>JWr-8yz-&4_(&EkXj~%2 zs8_a<#R{*yA5QcBI3$z%=>JIZK*5u7uRMXchhEu2CVnwj>FB|?@B) z@ycfe%9FXWSNjwcXaFGlq?+2<>5;2_a!xPFOly2{9DUUAJwB|G?34EaQ;JVE68lf} zag}L4xtjLReR36To%`e#A_D7tauX$5?~@+--r$oD=sUwF(}CrgD2i_!G6WlaaxFT1 zlTWTe5u1H73$jkoCw;S__4wpnf^I_?z~APR5i3DAvwgCHuAlhi5d=HXXaqSvIYd4> z6tH&ri;7?*@ehT zbSZoPBrvLca)1q`^r3`mpUi)s_w3t%SKv&YUlC{r-zSFBj;LCnyu_)=PqXWt%NYJT6mkVq<3nzU7o#|&WV`B<8^7WfG?KGG zpIi^Fa~=53ojvg(4f?)C?B2efEO`L+kl?1$s$rjOK;$i-T=~rf+VOefE~=iOst0HQ zMuFgCKVVY~RMmZS)-0~7a4wPa=6{1`rt%7 zFYA@9y{n2Wkp@`2eg@O$muX1i_sbNr%;hHlR{G^y#I5qnTVYJneJ`EMVE(Q4%aLWg z1`DlcjbElGu-n&EWKQwRJG`8-4soe|c^Apk{PGDwSM?U4TL*qcb*}fzUL@Jzmy`5w z4gJgVOJXA%6{t4(<#D9g?3YiOj8lp&e)+olSJZp!c^<6er;B5b^U0dgf1{W&fU?yu zJ&LuxaTK%7FQ1bb883XCdIRUAdb0h}%TW_Zw%sp}Ev8ft@v*}%cg$o&7@Vik2B9bU z<&-@t@LO~(t-a;><=)SEseX?V_ihii0vqTGva{A7 zff)lP2c#(U`yv|tov-ncE}j>g!6EYf@?@+^9Q4Z&z6$)Z;Ws33*YmTE?QIV&)M&RY z6NmhAY7ZSxMu|*)Ua*u>2r;n4FI{}VaNpa|wES`_VDm2!hy8Ne$xmNyVO97g?F=5l zc+KIxMcO~8^ve^R;11t)^Sq|ff@#Zd`eqK>u5bCp0vU`zZ{~Y%6@s~Tb#R{0#QUumkml6 zGy)AF{xtdJ2CjRrQqBJF^U5V9Z1&515QElv;*?)5$z?^7c7jg>CN#XwFIUp(WV8ul z9E2w7nhw9*`E%+mvg_4}gzP^zl}w%ZWeyjy?`^1dez_kI?Ntlv;x4}=17PQ=2(`FC zL;nU}7 z%bB7#@kcQP+gm_nh)=iuvX&eo16UsUU1l9Q;17;N6Bx=Wkf;xNA#zX^f{ zpuxc&`DK6_RkvJB0s{+B=Tr0~?U`ZtQRj2N%v%1caWBv*ZxE3~t6c%vr$>d+FFQ6y!r8Nsck6h+<^Ei^@tu@*aZHki3nc zEF?z|l!xRU1cyVi;!BOTEnGFZR@QpR=1q7H$v$fWEUzaA@Hwk5H1FX!f3&>~R(`b9bMMgkIY+J<6&+h*Q zvQYI(A)w*6+fse-I&?3|j+o(NV}6+X6E6eJ1QF%JqfAk^HqEgOnYRyAf;;$Z|R) z9gxS7AqUm5M0HRxE?NXpW@kViA{*@iIT}v)TJ|DWZb15{vA3(wKp+D$4{^H#G9SU7 zfZRhz1OhS_!9Ip^e?Zov^aBBT3_*TC9#D*;oxs<@fZT_K1xOF@$L0h4LjkFsh~VN6 zC}%KHOEG#ZoPi?cvIHfP)6n*5^2vN|(^c}w%(ayTWDbhjw?I?`nJ-)^?rR&rY0Z@k*OBFFozGVf&?55 z$WS<>vw*zESq~w>@qpZk%D2xEbpbi+*nEmVOb%I4_k6B<`)d@p4suUJK&}INH3F~R zCEny`8;ge(VPd@zq%a@@izsykN@&JNA!rH6BM4f#siy++BnU&sLeY+<-UjtJgTeS$ zDLOC;2s#7u0t(o-gxh#FAkQi-_ROVHcPwLmwu&z*1s5<=K%wU_6v*2J)SCOMspplZ zUI2P?*4;?Zji%1gXpg@sdIR$H;}ApoP&t0@T_Uc}V%l>Qk^RUs?Ulcffq-oI4hUgD zZUXln49IPZ38%98S&P({xm{P#C46dP`(onYo3%pt=Zjyq;ooAz=D;Bx5F?6$ih_WWB#3zR8g5U|z1{bA-|p!*q34YWIETZ$F!Rmyym^Y@ zWEHcbf|zqw#DEHl0mXy~b559Z;;mKZ-s%49`-h^=u3EKfWmAS;!{Z=tZ0Y@gz@yn9U%rbb{T+fth?H zybD}5^4*}WP~E6jFgAEeIA8Ke8_nfLb?PeTX*TNG%E5oBjXuaJH5*l`T^nDxGQ&oT zGsF*k7c9=@n%Xz=j(?kHqh0=L$oE{EZ=(Y& zi|hO0E!WCybce&s1vU|jg*JMW$Y#w(Y!J$A^o5bB;0B@MKF0GPi)~b@243s6Uo*TH zSl{ldQkz-^yRIKTG1y8Q$yT5xHj*X#r8b%;a-?Rt!bWY5irK*t6?u$fty<}AzRE@u zxwhIy57mnzncf;39b~;6CPF z5*t`KciQMVgRb_1-lfLg&7_hKD(o#IS~8N2Ss6{{A z08f{FP_2#XGDQvD+<0YIZhVLv+tnK?hw}Z>xZd0Nu#N7isC$w$j=?b-`Olc7V)CsV z0W~n0GS#i1%h(Gax6zGX5>D9Yz4rpfdi5dcdNyeXBj``3c;0JRgiqV3Sq0VgYROiP zj@W25KRBxh+hn6F^1{tVv()ydsp=Yx!)+DBayfp+MBotG6M{=N(x*z?(9A+9SJv6+ zruPQW)%k3`7#;S7S8eoEZh5wmljkrY3O8*OKGXYUz7ozDZrNzR-126l@m#xOQ_<92 z8_A8L_gE-w2{QJk8HG*4cucJ zE#soaM)nkEO2G22cxI!}$xQCsVK~DM^SO;C{gt}r?=;t5*yxljU2(xPcx9ss^?|N) z{M&0AHOUH=jn2xuI2Ig^W#8GTwH@cvEWE6FE4<;`2OC}FiGO4s%Zuqib9oEu)9> z^cX+g!%!N^sD_KM#3U}Y z(>wL896OzpkLB3unQ9`3Ywh$z{eO;a>nwiG&1c)`srs#nf16{ceX_U2PO>9po?Y~6 zzQEB?W~aGqS{B&J9U^M@%GWobssmL{pmIBzmdQKu3cI`nTWnX`y(;ar+xuZcc^k0A zPV&i)rFMDOy39`1>JdXT;G7(ow3bMXieS`6tLbvhf1i5*(b1es+m+P3hlDf#gw0* z?6#9^{M*ALr^wE~3n>C}b?4UPfX2?)$G~26XJGGr>0}Aj+9~qByzIAAv%1fY31gJO z8PFj+_2T5wPIA=!u$``}qn|s~?G&rPxFrg?2MhBcLADvqKc(#l}3L$$Ia>^B)7ZmF9+67 z{;LwV^>Kp0x;T>0&bVVaXtL95uQ<1r#&Y$*MY|X-PB>or$xm`+L9-h4GLNQir>tjP zy}}qousvc-bE|>^Hg}`i61u@ziaWL&ZrbUZ{Q5YUK9|rPCi<#CP8;p&;XRg8SxdXm zvh#m6Jh0P=PJ-1oHo*_=v{r3a`z&Jj$WC_!%q5N9me3PB85@F?VY=N#h;yrpbQ8!= zy^x>TY0^Kl^|90a0p0MzPV?eq2Ai4cD>=zkm5JQoB~w}8PKu!U6X?xPNWZnygWP9f z0T+U4e+hlCQ@|uPS0A~p_vGh9u6<%;MI=A75C^Iw|GU_;e^C@`wbLOu)aH6Bjt-Kuhf^FhpFvG^&>=Rh(;QUB zwNeLt-~eN~gDwf1XEUEui)~HZ(ntG=y?{(KZ=;+^i4`He`uu}C3_Ia?xCp%0kw~+&w z8yxhYtvZ3pf&4~?db_*HL2~$VvxDUHCAm2yc58E7KhhOEO z-KPIKaN?jHoQ#}kkKGQ^%L6&1bI?v7O}UU1N&u1Ygr4T!}>hq7EOr>$&uItK+U`g>8gQtyc)v2ko8=Wu#;*+H^j z;);W&{dBY`o6U$k({N3x&UFXvlgq9hv~|3^@N-n$rXBzRA`{jG+V4qE$5_2y8}f90T+zx=P$Zm%8cfYuuat@@=pTqaKO zt%Kw~&Uaq)-?PAkY4X;4-7nQ)GdUXf(Lw9IP-IG<9MnO>Xa4JhFU&OWx2iXIi{-ym zDX<*fY8Ajf80Vx5@-e#@OmLDP(`}-YCihVou9kZ~o%F%mRqh6z>?Fq@d;=UDia1#f zjJ^SO4q~S|y*t9EIcYp=%1!^Eprdi>)%oN+rT;eX_iydqmm_kh)k$)|YPyrQ8q`p- z;c$ji*f!Hi3mKmYA(-Q&fGI4SYYggQow@2U2NIvv^3BO^3Rn%#f4-AkfeOqQ^=K-4 zq%tSn^!E)oAB06bt%v`O!({K66;3MQAbzov*8F@Xv(ia>1APN*!C2-b(_T(>mOH67 zjV*+ec5-c{lkN^y6WJ{<>YP-~#cC(*;$n@H_WYePg|+H(V08tMlj=IE!#RT8dM8zA zVzA!(u}R=ZX$sVx!Ah(oUvg3&8&q|YGo3*}as+dSlQ{L40r&aKNPn2E6MCSqhY44l*5C zSIz|Cu#s&PPaQy6?lfK9)Rxe90IO(bPVvBJj)N;?4;i_2b zrHLFHandt|%))p@_3=94l9N_5sAeaXD)xLHu0BlJ>Mfk|r5q=%kr0I;#GsT1FjFj+TU3ikFq!iuohLK`6yk%~%n(pm_4^A??V;%nJq($E-E6~VB>=R3;w^r^gPRfV3o%BHN zZDkPNA8+vVW=3PYi*x}|;-Y)r2lv1E`3&C#7v23cgo!SC$y$6g7&aG0%vGBmIr22cMJxEnsa#_kOmmT(fGTy79D$nd zA~|<8!$mV$if6iLD~AcQTr`n8%yyBSkDB8mIUqIHrK|@3#?F0yAQrgDzam{})n)G~ zBsp%h&_!~1Y7x&%F4T9arH~5Mb+L;o+3Q{i!crG$FWE_Qn)5VHUj0bs;-dLH&Z z%k$jIh^}){5t~LAoswIc8Q(e<)VkIg&zX2*F}cCvWZD;uCH;? zb|%+87ww9cjRvcJ%Sy~dPyOj&$^jQ$N)_H5<4K$f!a)~>r1{7hkMV3n>s|DgrTDOm zrWUeZyJ$8^+m-UI8fE~Sg<~!{D2O*OObG^$Go6K@CtOq}^+p$MQRxOxWejV!iw?-o zr(Lu<*Eir+Fq)XAcmAjrD%Ib+e^k4YdiVxB48jHOy7O<fsW&+vDZ$QAv9)yQoz3)kV+MyW7{2k6v|AmA8GRw7KS@8r5&7_s5;;$kx8$YHxHU zJF)97+N~PwQh#@No4pWFH<+5kmHpVGp3RjXZ@Ng1KHYNBDxT8XKyuHdyDT}6)T+o! zX>yNe&oxgM+*2PNvB{?C`%D@^=z&Xe$cHZ4CWL(CBDcDzl0{nGlJBDXYAt1!da?dc z0iEqV7Nh>k*iV>?OrYr@c+SIpP^(trP#Ni!jMJ+ip#+^(lsw02!^A+EHG$r-GRqe2 z_X>dzE;^*P+|A;|^&=y!Hm}M##80dn-05Qg-7TS37X`McZJMm|vucN%ZvWNK z2OZqhAW6K-P1D=@1~dm_ikmdqmp;`^Pcqa?PbD(doUtBhgXwNE%wYpF!%d6W&CPVv zCpHPQ+_YRF@m}6HxoK;(h{s7e6XsU0nA|jtq1!`H=H`5@y?|{JIbPtVDpuBoZffqP zHtMiZUgV}X91oYf)z0k-x2!&}nNWaO#2)qY4Y(1BWp0iQQhWm%f~l^QR=O$Tv0TfC zx9XhjMRftRo8AjiR=a71y8D>{tEbIUTkEECY8itEkotNCt&WjARDWlwB@H#`MmN1y z{Wb`+O>VlcTD(%fJy8G4w(iYt+RwOM3Pu&Mg%q zl)cYQO@8eHCdHzbe_zCLWu2QA{I%LeP{kcw-B8aDZnB#=?4~8zN`F&8l|&|M;NMO&3+=Z0B|XOK+mf!7jRK9mi~!+;mmf(Cj7=zsqjg(b0P! zT3faZZt`%;t4zvdP7~ZTg=^PYM%t=mj%j(rO)r^9Dea<%_05>~ z9o0LFI(a9@fBr`NYd4j$Z?bj5 zJC@sN-t*j_vVHKL=akK0+|Dh-9tAA ztKjUqw~)AShKH{AQV=9Rndwnc;w%r{82s~h$!B}$6Z7bHJIrISSs*3h2r_ z^!d;57I+~n^r#iQMIL(1&>wJ!^Ti9W)!UTemV0Oc2i1>*P|0wwd0(49QqlXPR29rV z@NVy|7I|6Xp&GU%OFb&kSmvRF(HuQ^RG_iKLl3<@80<<9yX3(~szcG!)q&4bD(_Qx)qB)QzQZ0mr`*GKjtGu; zNLvYoYscs$0e!yi!)zUd;rIsM;#c?^{2l%Y`LN<&FoArUa=4j~w%|A1%ulnC?602A zGS9AyeG*F;yB9Y799j}~5o$Sd<0+DU>bJVCJq@K#S-PM0ER;?r>7=!U((@?YM|%`X zD+lPB_9T?bb97(raVVW3G;u=2xejMCY_A9}*_$$J*wy-Ao{xNfeYp=-v-Gh{u=`*Z zu?Juy&QtTj6%L+!5IF*c;t&`zCJUvdD7d7KIibHA7|1>U$pwd?gx(_X82)_9~Stb z!VgRRu*MG?{jkjsJN>Z74|RSx;)m0IIOm7Uez@s}yMB1&ho^pc>4$fIX!XNH9n*Bo z;ha;)VjauXj*~4qs#s8U9MEw{#|a(RbllK!myL#w=Q`f%Xw@;nA9jCC^T#ZIEcEA0 z5o`Ui%^y4cQR9z;{y653lm0m8FCQJgx-1mI=>?g!vW0A2;)J?GK^7$1m9fj-S+l^C!0 zim@vY(*iMvv#>x^24YztRtI8ZAUG-B7l`ISTo1(EKs*e@^FX`_#HT>mjhJr4Y$M8z zSZ2g(BQ_aPWkih;wMNt%(O|?WBhDFd#fY0m+%@8{5$sf68}Y%2RwGJ+U<-mf2&F-o zAB2h^*+;u72?L@d@ z#P(#}SI5~M(2w!`3iVg`p-4^oBTyBA-4WOqfkP2E5rOj&xDtUo5qK66bbqWKKq1&}IMD{@+u(8=+-ZX+ZSbNE z-n7A|HYkaNEfVfXOpnBzNNxKM3iEZ@YF4LzuclfSiONW7lwBz8xlE)vHg zaVZj<2HlCo!$>@f#D_?iJSRYKLp>aH}2ewZq$X_|y(1?J>PQX17Oqdn{>>Rqe5*J$AN7O?w<_ zkE89;*dDjq<3W2oZI3tY@v%L|b-=_9nA!oeI$&N0EbD+Z9k8(jwst^u2h?;xZ3mk1 zE0b2&p}qr-cfhF*xYR*?y0HW9cfhj_c+~;#JD`=}bcDSlN;_h9M>z<%tRq%+^gTOP z5tW^M{MmVSE|=`#Nm!;=qTS0Zt93j9dV;0?sh~=M?CK+_h^6Y zh>4xx?u4>VvfFG~C#>m&jh(Q)6RJC5Zzt4s!r@Lh(FvzJ;e01t>x5gKl$zh}bgvUy zI^ks}yzPXKozU6|6QVFB3NxZGHwp`*up|m=qp&Fo+oMn&g}qUzi^Ab3oQOhG6fQ>L zS`=kLn4%Ui&e+@;J3FJMGY)mewa&QP z8IL;Sd1t)tj1QeLp$i;cWVxiY3+8mef-YFn1)I8HM;G~!*WoT`?1D30(A)(#yWnmY zJnVueUGTCC-gUwFXxO6RiAHHO)wE|(pXNg|qeCVaBhZLzBN1%G)MEG=VJn8w2uCpt zMtF+hZ-lEDenvQp5y0MKBtqDqSfLql*$N*c+{Mt@1rf*ydohBHm=mqNA1MuPjg$u7 zNAsh79~DUTnR;|#q>SZ#v@kmTv>93O{KkB=XUA?vf)VpZ3F9iFwZ{sv-G4#wCDB+G zZK#W39N zr)|;N%{~Hl#;8Aot&0A)n+5ol5!Vawtr1rX@Jk~OM+#x*7ofip3krm23kzg|iwXqE z1B!iT3owEMkV5=}5jP6(9V1_W3?n8LiaZp6_73})3U!oRR;7l<0}`dQki|An;gjc$M0ELhz&3(i-S5x6)~r0b?x z8ecQZ>>d2%V->8fn}q_`lsUR#7CKxsizMGK6lwGh=dy|< z-!=i2AIsD6?!8P%ACcakWJ{uCWN(Yb}Dz zI*R~lwuoS_vIvq}EyCza77=*w(AO-Ys@Ij+oVSP~U$uw|U$%%M+#D&SJ7EztYAiy8 zD;81n!xjPO+kEaYvp2zgIhgmk+sLdM+|A;KPu5NfYQh`G%o0({OQ>^@=r#;*F-$EK^fD-W^q4nlzKld z!hbS`#X{D-X5sO3WuTuZ6Sm(hJf2%5ruJ>VsQuF-jAKM6Do--ANH{RFSSWX*SZwel zWw#y_2)!>AixS+hiiJL3jDI)ci?U=>m0udC?4rF;Xnd?#Y|<6Qw!!P3+2cTnnk}B6p6+?&lh7} zTP#d}V--zl%@;FRqD=h(vqbM8G0iFxz22>2ry8?p z#D{!wD>mhtn~TL7JkA&AIKEhPzqCMv>UF-D{}MxTy=exd`yO!}$lv(Z|; z(whfLa=jXJK3aRKs^|YAe!CRy_eK49rBKAtRwTkY|1W&gm1slrNSVUDks^`T`}{c$ zztKk;KUVSfCyM}ip#tXX(b{YU;niP^ek(d^hhm>YJ-S;Y;g+HIo*w2;wR$Sv^i&f;K+$!2qS*+CS zjTwieff-XICN2_OZx^DGD{GXgo>C~2IHiKJEy@(Eu!>Uew~E>xF$*F`tYU+XsjzOE zRV>k5tLVy$B9X5aGo~}RatjU%+pM_A#d@olzc&TA!Ih_GY?lXb zbhQviBtf!@GR(1H16LkcahZ#07Odi;)r=Z0=2*q7zcgbuSDLN3#Kk-d_HnVNSTtsx zRdmjwoYhekh%K;S7e6kuiuvDIj7eN6v0xDwJFTKL6D?TGm1S1(35zV)$(2<_V%SS9 zSk0B=R_49+$zF#uG}faNiIrNW;Nb|a<0sdw8qVq~0oC zuEK)N53G!Q!nB1dg(TE1C7_nJaaY}2fVxSJGz~+?&=eX(hLNsu( z!zy0sq7@fJgq6*&vx;{(RSXCHtb3=6;pAeH1(jSpG-E0kD~d$HTox?l%7!8_X0=vv z;Z0UClh+DylplBsMcMaQ#q!@R#3}yii5W9Q3N1Lm#l1qD76GL|>rCvpE@06L?rF`2xE1LPS z!-9h%^eRT!ZWXus!i-r$!XmLj?n1Fv>x;xcKeFN~KR9a@hr2|@hP$m28O*g{qv%1A z%4@9RwiXvln6Sz!ZtH^zIyPA)KxkDS{fik3xWo8DF-(iB;#0R-#dj{YO2l%r5XbrP zYYWbEao8%}ZCQ~Rt4a&Dkc#JI!J<&C*gZ3Lh_qU;M#bAS>ti!Y`KMi0@z$G) zF_|lF3$u{Nv0xJyyNe{^m}W1pK*B|>SHfZ1%%b;2;KIMV}G zmC0JLL_9W5sV?}H|Diqsk7S&j879rfE^3M$_zF)2K zz$q#mnPe7uT4EN1I8B9pTU6$`Lgl41%wl!BixY6Fm8fNA@t2imWolI7S*{}S`DW3w z2ZiDc)~Y1saiQ>XbF7%I31(5U?Pk%d60-=-T(h{)l`8FhI8sDqt4dL4nZ=Pkjt;z` z(ub=f1=LNIF#Z%~s5s<{iXXmsY)~JRSdILg^1ggtX)tkbCr^vYQ_KEg~Cq; z#Y0r7w3qdmWnpij@L^w}aPL5&$Yx!k@a>*5F^3fX?4VedkE_IUkIL*0sf_HfT1aeA zS;0}YB=|_B!%tKMb!nua{ZOUk6Vzm%sf4Zcb!_H{b&){+^be-AE+dEw_52vsPfJF zLeat&#k(VFVe^;@eeWxObVo&HcU9W{Iy!8dN;5ef4ps>%cX_G8vnh%T6)Mb|qJo)& zMKbh);y){BnOa7kseI)^g#ag{JcUIHu`445v3JqhXT|h6e-Z9}jMiqU>ZiYmUB5)9 zofs)}m^w-*Hf@y9sy<(4eOyuINWRe1+xYlM;rQ8+!p;4PlBY%rtxk^=E;p#vZ_g-^ zmMNn|TIMTTUZ%WF<4BQ{g(@gpq{51FwP0JJ7HJn33gs&cMK%_wfO3giusu3bByCxt z@OQad=UGuGG+bFI^jxJf^wnzJV2zTW`)X?QlsjHpDBNGGxU){l)q2IF4NAH;Djsc8 z(zRJ}>Ttfu+sTn4w`WEQ_m7PfIk~Mo-5urQ?yB{-dush{d{<29ib-9ynTo0(|AMOa zu5fmRyQ|z1u%xTuMU=^RY1hL)nDk{`@Bi8qxV-C?5R+j=*DpRMZDrTFV@(08x}Nqi z`K|8iNHY1a>AI_{cGOQNT1eWuKbm}ZcRiJ1()M(H+|@9}U%j1c^wa$*P}@67_oMdO z;z(}WSsUl8`%-}RN!|`>+WGdnfugiInyyp0_OvTrbj9ngc-IvlyW&e%jPHht-Tv!E zhOL{Nn0I%R+myCL}u)iDXx}m-sj&?&sH^a3bbRTVZ3N<9@2CX%nX8%st zv|TB5@wd9Kb~1}r{z})iC#m!#Tld%IWYEIzbw6!x3SG+Kq^^>*x83le8$NeKYd3n7 z4$`v883RuYro~`J3}(k*UJMq*pgabZF<2IZl`&WogY_}k6oaiX*b#&380?9`z8KWT z;7|;X#GoMtjWIYKgQgfR9ZF#lBe7#^O*cj>MuN7LBnu9gC(|T!_V`SUicv^H{u!#g|x2 z=#I(VVebxCca(M4K7OS#)`ngxe=Sc_x$TPXSlvCaDH{H|yp{Kh$8FAK`T4>z;o6$+ zH9s)<4~J68_e{qlp|sx4>G9g`yJMNm^`Ug@2PW&GP_m_&{ML0p*&S!P<6L)K=#ER> z{kA4C*EMZlHgnxiyDqPENqa0?2Yj@LeONGb?OAuc?2b3x@xD7gbw_J=l=Q%)9jyP1uVNV?P#i2G1hvIM~ z4h?Z=jKk?TG{xaU9Gc^BH4Zo8a61n7;_xsIEpd1jhnI196NmS4a)oMZ97=j&QZLwh z!PN^>dZDxzX7<9IUYOqt3wxoW7nbzG@?Kcg3u}8}LoaOVg)P0XtrvFm!p>d+_3_Ny zf2YjbGP&~7IX%_A7qz7o8{`4+`74#pp_Zh5FbNkcN5v)0Th+d3f&8Z>U(@AOb zmfqOj8#{YrcW>16#(~~A*c*p?<5+K;=#5joake+k^~THIc+(s2d&_r4T6?1;9+To_ zAG<3aQ{qt?FI&6k#AANE99OA`$C7yY9>S`4tc}Npcx;Zxws=&f%u! zkE8K89*>jpI1`U^@wga|%kj7tkDKwh6Oa4xcodH(@pvAOSMhioj}P(q9FK7cn2>33!=+Hwk#3fKLf%O+ZN>OzH!BAGrEpN*|Q= z!OT9G(+BhWU_l?cEidLaYILa&uJn-wpId!!w+|ll!Q(!7+6OQC;B_Co>w}Md@TCvN zCt_kEY>99t!jp(;i9Th2Z}Kfood5SGZF=I)MC?vPO(G5?;$R{UC*oKlP9)+~BF-k_ zd?GF-;z}Z}C*oEj?k3_vA|5B=X(C=E;&me4CE{Zuz9eFN5+)|WmIP-KJV}_Agc(Vg zorHNwSdfJBBvdA0SrS$zVNDX&Ct*_(wkBam5~`E1CkgwKP@9B9NjQ>(h9op5;dBz3 zl5imj%}KbLgd0h?orHTyc$kEiBs@#P%Ot!>!n-82CZQx5lagUihASCUl2MwBnaP-w zjQPn}n2d^KEJ?=lWUNZY+GK1<#^z*fOGZ^Pb|qtPGWI8_P*HJ7rXnSrY{ck#lgO~)HisqN%u48 znqx34kd3JNM^>DF&^~>ye4}eHYa9RS9IP9qoHAGsmeM_#9oDNXDwo|ei%47YD^}9^ zq4$UuaG@Vs`r&CmTAr$0-N%0T(huWPFfj$T6gX4hNx`%fOi#hg6s$J+R? z!NwG9Nx}9M>`cM#6!}Q_ffO7}!Qm7fOTmd0oJzsj6r4}Nr4(FA!Sxi}O2OR}JV?Rg z6g*AAixj+0!MhZENWtt>%uB_BRFtQpG8M~Gu`(5FQn5Z2n^Lhg6+2Q3Eus7wLGNj(6$!n2s;$ z7@vWO8L(x*nE_7*re$D824-hqUWRTz}xu|G!e{AcIs{Yv3 zU#@=I-ye1T<=ewY`{Q_joa~P?{c)~8F7$^p6P`>=%fyUK%+AETOf1Mmc_u0|u`ClS zGqENU>oc(_6I(N}BNNq`*prEUnW)Xgp-ddfL_;PTGjTc-O_{imDIb-(nu!~kxSff6 znRu9qmP|a$#LG;)$;A6ie9A;?CdOyMmIY@PJXx5Qg&A3xorQT>SdfMCEL3J;Sr%4i zVNDj+XJJzowq{{R7OJzbCky+sP@9EASvZoVzZ@+weB)TPhTliR_0OXuTe;Ck!u9%5 z>J4KS8nbXZ3r$(LkcH+fT+PCbEZok*y(~P;LQ58&W#MHO-elo@7CvR6H47!#snbVG z>aj!ZB$+i%c#PUVGfGmMXQL$vdX+E9NZn{j zTPns%!u4XTBqpuuMfn7kQq346$;jGKlE^snB~AN0T9T>CQIeD`8YOAV9rYr^l`rYc zjC@JB9;syc<7i3oUW}5YX_A`knX!^~y&ofq*q%|6_*_v5;EvIf+T0x@iQCZv7qa+cVtVlX;lq6icMyXd1V};Z!)h?YkVl~)VQA&h3Bb#L5+&7 zn@7vIk46d3bFwi%8w;|rC>s^ozNfo#P_Ang!$5zB@?jj4`)GH^nzY5))!EpSjeXgu z&Bmc@9LYvQHX5^WIvY*dxR8zJY+TL8jcnY`#=UGj%tlK#o@L`@Hr{08eKtO2qcs~P zIhd3KTMisK{J=#4C63kSAVh(WADIIG2lyxwxE*Yq_|Yi#xfvpDSO- zdXkIhxp5C;e1 z$Urm5hgo@;n}@PIEXu>;JS@$_iae~&!@4|d%)^#EY|q2aJnYUxO&$*9;b0yP z=iyi$PUPWK9?s_Bd>$_4;YuE^=iz1^p5@_X9^T~PeI7pLp*0UBgD`0j?1S_Ne_)~X z(;okUGesY5&p⪙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

      P1t63tgrNc($}CQ+O^iDX2+k2@#Xm^aYC- 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

      N9N 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 L0KoqN#U=J5YdMby literal 0 HcmV?d00001 diff --git a/tools/gamedata/flash/external_flash_texts.txt b/tools/gamedata/flash/external_flash_texts.txt new file mode 100644 index 0000000..4549565 --- /dev/null +++ b/tools/gamedata/flash/external_flash_texts.txt @@ -0,0 +1,2706 @@ +nav_venue_bb_lobby_beginner_3/0_desc= +nav_venue_sw_lobby_beginner_0_name=Snow Rookies Lobby +nav_venue_$unit.name$/0_desc=Roam more of the hotel's corridors +nav_venue_sun_terrace/0_name=Sun Terrace +nav_venue_the_chromide_club/0_desc=Ghetto Fabulous +nav_venue_bb_lobby_beginner_9_name=Beginners Battle Ball 10 +nav_venue_bb_lobby_beginner_10_name=Beginners Battle Ball 11 +nav_venue_sw_lobby_expert_2_name=Snow Marksmen Lobby +nav_venue_bb_lobby_expert_4/0_desc= +nav_venue_sw_lobby_beginner_6_name=Snow Rookies Lobby +nav_venue_ballroom/0_desc=Forget Beijing, check out Habbo's very own Olympic Stadium! +nav_venue_tv_studio/0_desc=Will you reach the final of the biggest brains in Habbo competition? +nav_venue_basement_lobby_name=Basement Lobby +nav_venue_bb_lobby_beginner_8/0_desc= +nav_venue_bb_lobby_free_1/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_bb_lobby_amateur_1_name=Gevorderden Battle Ball 2 +nav_venue_median_lobby/0_desc=A Mean place to hang +nav_venue_sw_lobby_amateur_2/0_desc= +nav_venue_space_cafe_name=Ten Forward +nav_venue_star_lounge/0_desc=Celebrities favourite hang out +nav_venue_bb_lobby_intermediate_0/0_desc= +nav_venue_club_massiva/2_name=Dancefloor +nav_venue_bb_lobby_amateur_desc=Amateur battle ball! +nav_venue_bb_lobby_tournament_0_name=Tournament +nav_venue_sw_lobby_beginner_1_name=Snow Rookies Lobby +nav_venue_bb_lobby_expert_4_name=Experts Battle Ball 5 +nav_venue_bb_lobby_beginner_2_name=Beginners Battle Ball 3 +nav_venue_cafe_gold/0_desc=Receive and discuss the latest safety tips and tricks. +nav_venue_bb_lobby_intermediate_2_name=Semi-profs Battle Ball 3 +nav_venue_theatredrome_deli/0_desc=Join in all the fun of the fair! +nav_venue_bb_lobby_beginner_6/0_desc= +nav_venue_rooftop_rumble_name=Rooftop Rumble +nav_venue_sw_lobby_amateur_7_name=Snow Slingers Lobby +nav_venue_picnic/0_desc=Enjoy the great outdoors, celebrate mother nature and party! +nav_venue_the_chromide_club_name=The Chromide Club +nav_venue_emperors/0_desc=Debate and engage another Bionicle Glatorian into battle before stepping into the Arena +nav_venue_sw_lobby_amateur_0_name=Snow Slingers Lobby +nav_venue_bb_lobby_beginner_10/0_desc= +nav_venue_theatredrome_xmas/0_desc= +nav_venue_sw_lobby_tournament_3_name=Tournament Lobby +nav_venue_habbo_lido_ii_name=Habbo Lido II +nav_venue_sw_lobby_expert_1/0_desc= +nav_venue_hallway_ii_name=Hallway II +nav_venue_theatredrome_habbowood/0_desc=Home to the Habbowood Gala and HAFTA Awards! +nav_venue_sw_lobby_amateur_2_name=Snow Slingers Lobby +nav_venue_sw_lobby_beginner_6/0_desc= +nav_venue_chill/0_name=Zen Garden +nav_venue_gate_park_name=Imperial Park +nav_venue_bb_lobby_intermediate_0_name=Intermediate +nav_venue_sw_arena_expert_name=Playing expert game +nav_venue_old_skool/0_desc=A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo +nav_venue_sunset_cafe/0_desc=Home to the Otter Island residents. +nav_venue_sw_lobby_beginner_7_name=Snow Rookies Lobby +nav_venue_bb_lobby_beginner_2/0_desc= +nav_venue_orient/0_name=Club Golden Dragon +nav_venue_sw_lobby_beginner_4_name=Snow Rookies Lobby +nav_venue_star_lounge_desc=Is there a VIP visitor in the hotel? +nav_venue_bb_lobby_tournament_2/0_desc= +nav_venue_bb_lobby_intermediate_3/0_desc= +nav_venue_bb_lobby_expert_0/0_desc= +nav_venue_club_mammoth_name=Club Mammoth +nav_venue_sw_lobby_amateur_6_name=Snow Slingers Lobby +nav_venue_hotel_kitchen_name=Hotel Kitchen +nav_venue_bb_lobby_amateur_3/0_desc= +nav_venue_beauty_salon_loreal/0_desc=No Pixel Surgery. +nav_venue_sw_arena_beginner_name(0)=SnowStorm Aloittelijat +nav_venue_club_mammoth/0_name=Club Mammoth +nav_venue_library/0_name=Habbo Library +nav_venue_gate_park/0_desc=Follow the path... +nav_venue_sunset_cafe_name=Sunset Cafe +nav_venue_pizza/0_desc=Pizza Palace +nav_venue_sw_arena_intermediate_name(0)=SnowStorm Keskitaso +nav_venue_sw_lobby_free_3_name=Free Game Lobby +nav_venue_sw_lobby_expert_2/0_desc=Todellisille lumisotureille. +nav_venue_sw_lobby_free_2/0_desc= +nav_venue_bb_lobby_beginner_4_name=Beginners Battle Ball 5 +nav_venue_sw_lobby_intermediate_5/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_bb_lobby_tournament_7/0_desc= +nav_venue_sw_arena_intermediate_name=Playing intermediate game +nav_venue_theatredrome_easter_name=Theatredrome Easter +nav_venue_bb_lobby_tournament_3/0_desc= +nav_venue_median_lobby_name=Median Lobby +nav_venue_bb_lobby_amateur_0/0_desc= +nav_venue_pizzeria_name=Slice of Life +nav_venue_sw_lobby_amateur_4/0_desc=Astetta rankempaa lumisotaa. +nav_venue_sw_lobby_intermediate_5_name=Snow Bombardiers Lobby +nav_venue_club_massiva/1_desc=Strut your funky stuff +nav_venue_theatredrome_halloween_name=Theatredrome Habboween +nav_venue_sport/0_name=The Power Gym +nav_venue_sw_lobby_amateur_1_name=Snow Slingers Lobby +nav_venue_bb_lobby_tournament_16/0_desc= +nav_venue_orient/0_desc=Tres chic with an Eastern twist. For Habbo Club members only. +nav_venue_club_massiva_name=Club Massiva +nav_venue_bb_lobby_beginner_0_name=Beginner +nav_venue_bb_lobby_amateur_13/0_desc= +nav_venue_the_dirty_duck_pub/0_desc=Grab a stool and hear Dave and Sadie talk about the good old days... +nav_venue_sw_lobby_tournament_8/0_desc= +nav_venue_park/0_desc=Visit the park and the infamous Infobus +nav_venue_cafe_gold/0_name=Kultakahvila +nav_venue_theatredrome/0_desc=Perform your latest master piece, or simply catch the latest gossip. +nav_venue_sw_lobby_beginner_0/0_desc= +nav_venue_sw_lobby_intermediate_2_name=Snow Bombardiers Lobby +nav_venue_sw_lobby_beginner_3_name=Snow Rookies Lobby +nav_venue_bb_lobby_amateur_6_name=Gevorderden Battle Ball 7 +nav_venue_bb_lobby_intermediate_2/0_desc= +nav_venue_bb_lobby_beginner_0/0_desc= +nav_venue_sw_lobby_free_4_name=Free Game Lobby +nav_venue_sw_lobby_beginner_5/0_desc= +nav_venue_bb_lobby_tournament_9/0_desc= +nav_venue_bb_lobby_intermediate_3_name=Semi-profs Battle Ball 4 +nav_venue_hallway_ii/0_desc=Taking you to the far reaches of Habbo Hotel +nav_venue_bb_lobby_intermediate_9/0_desc= +nav_venue_habburger's_name=Habburgers +nav_venue_sw_lobby_tournament_2_name=Tournament Lobby +nav_venue_bb_lobby_tournament_13_name=Competitie Battle Ball 14 +nav_venue_tearoom/0_desc=Try the tea in this Mongol cafe - it is to die for darlings! +nav_venue_bb_lobby_amateur_3_name=Gevorderden Battle Ball 4 +nav_venue_sw_lobby_intermediate_1/0_desc= +nav_venue_sw_lobby_free_desc=Come and play. It's free! +nav_venue_basement_lobby/0_desc=For low level hanging +nav_venue_bb_lobby_amateur_4_name=Gevorderden Battle Ball 5 +nav_venue_sw_lobby_tournament_1_name=Tournament Lobby +nav_venue_bb_lobby_tournament_4/0_desc= +nav_venue_ice_cafe_name=Ice Cafe +nav_venue_sw_lobby_free_8_name=Free Game Lobby +nav_venue_bb_lobby_amateur_5/0_desc= +nav_venue_sw_lobby_free_9/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_bb_lobby_tournament_8_name=Competitie Battle Ball 9 +nav_venue_bb_lobby_tournament_1_name=Competitie Battle Ball 2 +nav_venue_sw_lobby_free_5_name=Free Game Lobby +nav_venue_bb_lobby_tournament_3_name=Competitie Battle Ball 4 +nav_venue_bb_lobby_free_0/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_sw_lobby_tournament_9/0_desc= +nav_venue_sw_lobby_amateur_3_name=Snow Slingers Lobby +nav_venue_bb_lobby_amateur_10/0_desc= +nav_venue_bb_lobby_intermediate_4_name=Semi-profs Battle Ball 5 +nav_venue_sw_lobby_tournament_6/0_desc= +nav_venue_bb_lobby_5_name=Battle Ball Kaikille +nav_venue_snowwar_lobby/0_desc=Snow Storm LobbyCome and be a Snow Stormer! +nav_venue_bb_lobby_amateur_9_name=Gevorderden Battle Ball 10 +nav_venue_rooftop_rumble_ii_name=Rooftop Rumble II +nav_venue_club_massiva_desc=Strut your funky stuff! +nav_venue_branded/0_desc=Something funny's going on, do you know what? +nav_venue_bb_lobby_expert_1_name=Experts Battle Ball 2 +nav_venue_sw_lobby_tournament_4/0_desc= +nav_venue_skylight_lobby_name=Skylight Lobby +nav_venue_ballroom_name=Ballroom +nav_venue_sw_lobby_free_4/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_bb_lobby_beginner_9/0_desc= +nav_venue_bb_lobby_beginner_desc=Beginner battle ball +nav_venue_bb_arena_1_name=Battle Ball Aloittelijat +nav_venue_snowwar_lobby_name=Snow Storm Lobby +nav_venue_sw_lobby_beginner_9_name=Snow Rookies Lobby +nav_venue_bb_lobby_amateur_2/0_desc= +nav_venue_netcafe/0_desc=Learn a foreign language and win Habbo Credits in our quests! +nav_venue_theatredrome_halloween/0_desc=Habboween 2008 starts right here, right now! Ready? +nav_venue_bb_lobby_amateur_0_name=Amateur +nav_venue_bb_lobby_beginner_17/0_desc= +nav_venue_welcome_lounge_name=Welcome Lounge +nav_venue_sw_lobby_amateur_5_name=Snow Slingers Lobby +nav_venue_sw_lobby_expert_1_name=Snow Marksmen Lobby +nav_venue_bb_lobby_beginner_1_name=Beginners Battle Ball 2 +nav_venue_club_massiva/0_desc=Rest your dancing feet! +nav_venue_sw_arena_amateur_name(0)=SnowStorm Amatöörit +nav_venue_bb_lobby_beginner_13_name=Beginners Battle Ball 14 +nav_venue_chill_name=Zen Garden +nav_venue_sw_lobby_intermediate_4_name=Snow Bombardiers Lobby +nav_venue_tearoom/0_name=Chinese Tea Room +nav_venue_sun_terrace/0_desc=Grab a sunbed and top up that tan! +nav_venue_bb_lobby_expert_7/0_desc= +nav_venue_bb_lobby_amateur_7/0_desc= +nav_venue_bb_lobby_expert_3/0_desc= +nav_venue_bb_lobby_tournament_14/0_desc= +nav_venue_bb_lobby_free_3/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_sw_lobby_intermediate_3_name=Snow Bombardiers Lobby +nav_venue_bb_lobby_intermediate_1/0_desc= +nav_venue_bb_lobby_tournament_17/0_desc= +nav_venue_the_den/0_desc=Popular? Win a cool band and party at your school. You soon will be! +nav_venue_bb_lobby_beginner_15/0_desc= +nav_venue_habbo_cinema_name=Habbo Cinema +nav_venue_bb_lobby_amateur_2_name=Gevorderden Battle Ball 3 +nav_venue_bb_lobby_expert_6/0_desc= +nav_venue_rooftop/0_desc=One of the highest points in Habbo Hotel! +nav_venue_bouncer_room_4_name=Experts Battle Ball Arena +nav_venue_bb_arena_2_name=Battle Ball Amatöörit +nav_venue_bb_lobby_beginner_5_name=Beginners Battle Ball 6 +nav_venue_sw_lobby_beginner_2_name=Snow Rookies Lobby +nav_venue_bb_lobby_tournament_desc=Play battle ball tournament! +nav_venue_sw_lobby_expert_0/0_desc= +nav_venue_sw_lobby_beginner_9/0_desc= +nav_venue_pizza_name=Slice of Life +nav_venue_picnic/0_name=Picnic Garden +nav_venue_bb_lobby_expert_2_name=Experts Battle Ball 3 +nav_venue_sw_lobby_beginner_8_name=Snow Rookies Lobby +nav_venue_bb_lobby_beginner_14_name=Beginners Battle Ball 15 +nav_venue_kattoterassi/0_desc=When push comes to shove... +nav_venue_bb_lobby_tournament_0/0_desc= +nav_venue_the_den_name=The Den +nav_venue_bb_lobby_free_2/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_tv_studio_general/0_desc=Suosikki rules! Musaa, leffoja ja staroja! +nav_venue_bb_lobby_expert_1/0_desc= +nav_venue_bb_lobby_expert_9/0_desc= +nav_venue_bouncer_room_0_name=Battle Ball Competitie Arena +nav_venue_sw_lobby_tournament_desc=For stand-alone Tournaments. +nav_venue_bb_lobby_beginner_19/0_desc= +nav_venue_eric's_eaterie/0_desc=Join Billy for a bite to eat and some office gossip in the HABprentice +nav_venue_habbo_cinema/0_desc=Now Showing: The Making of Habbo Big Brother +nav_venue_bb_lobby_beginner_8_name=Beginners Battle Ball 9 +nav_venue_sw_lobby_free_7_name=Free Game Lobby +nav_venue_bb_lobby_intermediate_1_name=Semi-profs Battle Ball 2 +nav_venue_sw_lobby_amateur_3/0_desc=Astetta rankempaa lumisotaa. +nav_venue_bb_lobby_beginner_18/0_desc= +nav_venue_sw_lobby_tournament_0/0_desc= +nav_venue_sw_lobby_amateur_7/0_desc=Astetta rankempaa lumisotaa. +nav_venue_sw_lobby_free_1_name=Free Game Lobby +nav_venue_sw_lobby_amateur_1/0_desc= +nav_venue_sw_lobby_free_1/0_desc= +nav_venue_bb_lobby_tournament_14_name=Competitie Battle Ball 15 +nav_venue_bb_lobby_expert_8/0_desc= +nav_venue_bb_lobby_amateur_11/0_desc= +nav_venue_welcome_lounge/0_desc=New? Lost? Get a warm welcome here! +nav_venue_sport_name=Power Gym +nav_venue_bb_lobby_amateur_1/0_desc= +nav_venue_bb_lobby_beginner_11_name=Beginners Battle Ball 12 +nav_venue_emperors_name=Emperor's hall +nav_venue_hotel_kitchen/0_desc=Beware the flying knives! +nav_venue_bb_lobby_beginner_4/0_desc= +nav_venue_sw_lobby_free_5/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_sw_lobby_beginner_1/0_desc= +nav_venue_sunset_cafe_ii/0_desc=Home to the Duck Island residents. +nav_venue_sw_lobby_beginner_7/0_desc= +nav_venue_sw_lobby_amateur_desc=Practice improves a Snow Stormer's aim... Ops, missed! +nav_venue_bb_lobby_amateur_8/0_desc= +nav_venue_sw_lobby_tournament_7_name=Tournament Lobby +nav_venue_club_mammoth/0_desc=Monumental and magnificent. For Habbo Club members only. +nav_venue_bb_game/0_name=Battle Ball Arena +nav_venue_pizzeria/0_desc=Pizza; food of the hungry! +nav_venue_pizza_desc=Tunnelmallinen pizzapaikka kiireettömään nautiskeluun. +nav_venue_bb_lobby_amateur_12/0_desc= +nav_venue_sw_lobby_free_6_name=Free Game Lobby +nav_venue_sw_lobby_free_8/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_theatredrome_xmas_name=Theatredrome Xmas +nav_venue_sw_lobby_free_0_name=Free Game Lobby +nav_venue_tv_studio_name=MuchMusic HQ +nav_venue_sw_arena_amateur_name=Playing amateur game +nav_venue_sw_lobby_intermediate_desc=For the accomplished Snow Stormers. +nav_venue_hallway_name=Hallway +nav_venue_bb_lobby_beginner_3_name=Beginners Battle Ball 4 +nav_venue_theatredrome_name=Theatredrome +nav_venue_bb_lobby_tournament_19/0_desc= +nav_venue_bb_lobby_amateur_9/0_desc= +nav_venue_bb_lobby_beginner_5/0_desc= +nav_venue_bb_lobby_tournament_11_name=Competitie Battle Ball 12 +nav_venue_sw_arena_free_name(0)=SnowStorm - kaikki kaikkia vastaan +nav_venue_rooftop_name=Rooftop Cafe +nav_venue_eric's_eaterie_name=Eric's Eaterie +nav_venue_sw_lobby_expert_desc=For the William Tells and Robin Hoods of Snow Storming. +nav_venue_sw_lobby_intermediate_1_name=Snow Bombardiers Lobby +nav_venue_rooftop_rumble_ii/0_desc=Duel on the floats or chill by the waterfall. +nav_venue_bb_lobby_beginner_12/0_desc= +nav_venue_bb_lobby_amateur_5_name=Gevorderden Battle Ball 6 +nav_venue_bb_lobby_tournament_4_name=Competitie Battle Ball 5 +nav_venue_sw_lobby_beginner_desc=Yes, take a load of snowballs and hit the enemy Teams. Easy, isn't it? +nav_venue_sw_lobby_amateur_6/0_desc=Astetta rankempaa lumisotaa. +nav_venue_bb_lobby_tournament_6_name=Competitie Battle Ball 7 +nav_venue_sw_lobby_beginner_8/0_desc= +nav_venue_bb_lobby_tournament_6/0_desc= +nav_venue_sw_lobby_tournament_5_name=Tournament Lobby +nav_venue_habbo_lido_ii/0_desc=Pool is open for swimming and diving! +nav_venue_skylight_lobby/0_desc=This was the Habbo Big Brother Lounge during series 1 (2008) +nav_venue_sw_lobby_tournament_2/0_desc= +nav_venue_sw_lobby_tournament_6_name=Tournament Lobby +nav_venue_space_cafe/0_desc=Star Wars The Clone Wars on Blu-Ray and DVD from December 8 +nav_venue_bouncer_room_3_name=Semi-profs Battle Ball Arena +nav_venue_bb_lobby_amateur_14/0_desc= +nav_venue_bb_lobby_tournament_12_name=Competitie Battle Ball 13 +nav_venue_ice_cafe/0_desc=The dawn of the dinosaurs has begun +nav_venue_sw_lobby_beginner_5_name=Snow Rookies Lobby +nav_venue_sw_lobby_amateur_5/0_desc=Astetta rankempaa lumisotaa. +nav_venue_netcafe_name=My Habbo Home Netcafe +nav_venue_club_massiva/2_desc=Make all the right moves +nav_venue_park_name=Habbo Gardens +nav_venue_bb_lobby_expert_desc=Expert battle ball! +nav_venue_bb_lobby_beginner_1/0_desc= +nav_venue_sw_lobby_tournament_4_name=Tournament Lobby +nav_venue_sw_lobby_tournament_8_name=Tournament Lobby +nav_venue_sw_lobby_tournament_7/0_desc= +nav_venue_bb_arena_4_name=Battle Ball Expertit +nav_venue_bouncer_room_1_name=Beginners Battle Ball Arena +nav_venue_sport/0_desc=Zac Efron owns in the 17 Again basketball court � what would you do with your second shot? +nav_venue_bb_lobby_intermediate_5/0_desc= +nav_venue_bb_lobby_beginner_13/0_desc= +nav_venue_sw_lobby_free_7/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_sun_terrace_name=Sun Terrace +nav_venue_bb_lobby_intermediate_6/0_desc= +nav_venue_bb_lobby_expert_0_name=Expert +nav_venue_welcome_lounge_iii/0_desc=New? Lost? Get a warm welcome here from Habbo eXperts. +nav_venue_bb_lobby_tournament_15/0_desc= +nav_venue_sw_lobby_free_6/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_sw_lobby_intermediate_0_name=Snow Bombardiers Lobby +nav_venue_sw_lobby_free_3/0_desc= +nav_venue_bb_lobby_intermediate_8/0_desc= +nav_venue_sw_lobby_tournament_3/0_desc= +nav_venue_bb_lobby_tournament_13/0_desc= +nav_venue_bb_arena_0_name=Battle Ball kaikille +nav_venue_the_dirty_duck_pub_name=The Dirty Duck Pub +nav_venue_sw_lobby_amateur_4_name=Snow Slingers Lobby +nav_venue_orient_name=Club Orient +nav_venue_bb_lobby_tournament_11/0_desc= +nav_venue_welcome_lounge_ii/0_desc=New? Lost? Get a warm welcome here! +nav_venue_old_skool_name=Old Skool Habbo +nav_venue_bb_lobby_expert_2/0_desc= +nav_venue_theatredrome_valentine_name=Theatredrome Valentine +nav_venue_sw_lobby_intermediate_4/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_sw_arena_expert_name(0)=SnowStorm Expertit +nav_venue_sw_lobby_tournament_1/0_desc= +nav_venue_bb_lobby_intermediate_desc=Intermediate battle ball! +nav_venue_beauty_salon_general/0_desc=Come for treatments on behalf of Chic by Charlie Girl +nav_venue_picnic_dudesons/0_desc=Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com +nav_venue_hallway/0_desc=Connecting you to the heart of Habbo Hotel +nav_venue_dusty_lounge/0_desc=Old, cool, Dusty and the perfect room for the biggest brains in Habbo +nav_venue_bb_lobby_tournament_1/0_desc= +nav_venue_bb_arena_3_name=Battle Ball Keskitaso +nav_venue_sw_lobby_beginner_4/0_desc= +nav_venue_rooftop_rumble/0_desc=Wabble Squabble your bum off in our cool rooftop hang out +nav_venue_library/0_desc=Books! Glorius books! Fill yourself with information and lose yourself in wonderful literary worlds. +nav_venue_bb_lobby_tournament_8/0_desc= +nav_venue_bb_lobby_tournament_18/0_desc= +nav_venue_bb_lobby_amateur_4/0_desc= +nav_venue_bb_lobby_beginner_16/0_desc= +nav_venue_sw_lobby_free_2_name=Free Game Lobby +nav_venue_bb_lobby_intermediate_7/0_desc= +nav_venue_beauty_salon_loreal_name=Beauty salon +nav_venue_habburger's/0_desc=Get food here! +nav_venue_dusty_lounge_name=Dusty Lounge +nav_venue_cafe_gold_name=The Oasis +nav_venue_tv_studio_nike/0_desc= +nav_venue_theatredrome_valentine/0_desc=Home of Ralph (wannabe panda in training) +nav_venue_beauty_salon_general_name=Beauty salon +nav_venue_sw_lobby_free_9_name=Free Game Lobby +nav_venue_floatinggarden_name=Floating Garden +nav_venue_bb_lobby_intermediate_5_name=Semi-profs Battle Ball 6 +nav_venue_star_lounge_name=Star Lounge +nav_venue_bb_lobby_beginner_7/0_desc= +nav_venue_sw_lobby_intermediate_0/0_desc= +nav_venue_bb_lobby_amateur_7_name=Gevorderden Battle Ball 8 +nav_venue_bb_lobby_tournament_12/0_desc= +nav_venue_sw_arena_tournament_name=Playing a tournament game! +nav_venue_sw_lobby_tournament_9_name=Tournament Lobby +nav_venue_club_massiva/1_name=Chill-out Room +nav_venue_sw_lobby_tournament_5/0_desc= +nav_venue_sw_lobby_free_0/0_desc=Meet friends and play SnowStorm! +nav_venue_bb_lobby_beginner_12_name=Beginners Battle Ball 13 +nav_venue_floatinggarden/0_desc=Climb the rocks, chill in the shade and watch for pirate ships! +nav_venue_sw_lobby_amateur_0/0_desc= +nav_venue_bb_lobby_beginner_11/0_desc= +nav_venue_bb_lobby_beginner_6_name=Beginners Battle Ball 7 +nav_venue_sw_lobby_beginner_2/0_desc= +nav_venue_bb_lobby_tournament_5_name=Competitie Battle Ball 6 +nav_venue_bb_lobby_beginner_7_name=Beginners Battle Ball 8 +nav_venue_tearoom_name=Chinese Tea Room +nav_venue_bb_lobby_beginner_14/0_desc= +nav_venue_sw_lobby_beginner_3/0_desc= +nav_venue_bb_lobby_expert_3_name=Experts Battle Ball 4 +nav_venue_sw_lobby_intermediate_2/0_desc= +nav_venue_cafe_ole_name=Cafe ole +nav_venue_sw_lobby_intermediate_3/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_theatredrome_easter/0_desc=Easter is Eco! Now sing the environmentally friendly song. +nav_venue_habbo_lido_name=Habbo Lido +nav_venue_habbo_lido/0_desc=Splish, splash and have a bash in the Habbo pool! +nav_venue_bb_lobby_tournament_5/0_desc= +nav_venue_bb_lobby_tournament_7_name=Competitie Battle Ball 8 +nav_venue_sw_arena_free_name=Playing free for all game +nav_venue_bb_lobby_tournament_9_name=Competitie Battle Ball 10 +nav_venue_sw_lobby_expert_0_name=Snow Marksmen Lobby +nav_venue_bouncer_room_2_name=Gevorderden Battle Ball Arena +nav_venue_chill/0_desc=Where Ideas can flow freely +nav_venue_bb_lobby_tournament_2_name=Competitie Battle Ball 3 +nav_venue_sw_lobby_tournament_0_name=Tournament Lobby +nav_venue_main_lobby/0_desc=The heart of Habbo Hotel +nav_venue_bb_lobby_tournament_10_name=Competitie Battle Ball 11 +nav_venue_cafe_ole/0_desc=Relax with friends over one of Marias specialty coffees +nav_venue_bb_lobby_intermediate_4/0_desc= +nav_venue_sw_arena_beginner_name=Playing beginner game +nav_venue_bb_lobby_amateur_8_name=Gevorderden Battle Ball 9 +nav_venue_main_lobby_name=Main Lobby +nav_venue_bb_lobby_expert_5/0_desc= +nav_venue_bb_lobby_amateur_6/0_desc= +nav_venue_bb_lobby_tournament_10/0_desc= +notifications.text.clubdays.long=You have %days% days and %months% months of Habbo Club remaining. +notifications.text.buyfurni=%furni_name% bought and delivered to your inventory! +notifications.text.friend.online=%user_name% came online. +notifications.text.clubdays=You have %days% days of Habbo Club remaining. +notifications.text.respect.2=You now have %count% respect points. +notifications.text.recycle.ok=Recycling complete! You received a package with mystery content... +notifications.text.achievement=You reached level %level% on %badge%. Click here to see your new badge. +notifications.text.friend.offline=%user_name% went offline. +notifications.text.respect.1=Respect! You were respected. +notifications.text.pixels=%change% pixels received, you now have %count%. +notifications.text.receivedcredits=You received %count% credits. +notifications.text.purchase.ok=You successfully purchased a %productName%! +notifications.text.hcdays=You now have %count% days of Habbo Club left. +notifications.broadcast.title=Message from the Hotel Manager +messenger.info=Choose a friend from your online friend list and send an instant message or an invite. +messenger.error.offline=Your friend is not online. +messenger.error.sendermuted=Your message was not sent because you are muted. +messenger.notification.offline=Your friend went offline. +messenger.notification.online=Your friend came online. +messenger.title=Chat +messenger.moderationinfo=Sharing your password or personal details online is dangerous. The moderators might monitor these conversations for your safety. +messenger.invitation=Your friend sent you an invitation: +messenger.error.receivermuted=Your friend is muted and cannot reply. +messenger.error.busy=Your friend is busy. +messenger.followfriend.tooltip=Go to room your friend is currently in +messenger.error.notfriend=Receiver is not your friend anymore. +messenger.minimail.tooltip=Send minimail to your friend +toolbar.icon.tooltip.help=Help +toolbar.icon.tooltip.roominfo=Information of the room you are currently in +toolbar.icon.tooltip.catalogue=Catalogue for shopping with your Credits and Pixels. +toolbar.icon.tooltip.friendlist=View and follow your friends +toolbar.icon.tooltip.memenu=Dance, wave, use effects, show badges, change clothes and check your rooms +toolbar.icon.tooltip.settings=Settings +toolbar.icon.tooltip.inventory=Your Furniture, Effects, Badges and Achievements +toolbar.icon.tooltip.zoom=Zoom the room view in and out +toolbar.icon.tooltip.navigator=Rooms and events +toolbar.icon.tooltip.messenger=Send messages to your friends +roomevent_type_2=Trading Events +roomevent_default_name=Event name.. +roomevent_not_available=Sorry, no events available +roomevent_type_0=Hottest Events +roomevent_type_6=Grand Opening Events +roomevent_default_description=Come and check out my event! +roomevent_type_5=Debates & Discussion Events +roomevent_default_desc=Event description.. +roomevent_quit=End event +roomevent_type_1=Party & Music Events +roomevent_browser_title=Events +roomevent_create=Create +roomevent_create_name=Type the name of your event +roomevent_type_9=Group Events +roomevent_type_8=Job seeking Events +roomevent_host=Host: +roomevent_type_11=Helpdesk Events +roomevent_type_7=Dating Events +roomevent_type_10=Play and Production Events +roomevent_type_3=Game Events +roomevent_browser_create=Host an event +roomevent_starttime=Started at: +interface_icon_events=Open the room event browser +roomevent_invalid_input=You must give your event a name and a description. +roomevent_create_description=Describe your event +roomevent_edit=Edit +roomevent_type_4=Habbo Guides' Events +help.button.faq=Browse all FAQ topics >> +help.button.faq.topiclist=Go back to list of topics +help.faq.title.urgent=Current issues +help.button.faq.categorylist=Go back to list of categories +help.faq.search.default=Type in keywords to search +help.mainpage.topics.title=Known issues, read these first: +help.cfh.reply.title=Your call has been responded to as follows: +help.cfh.sent.title=Thanks for your call. +help.faq.browse.topics=Click a topic to view questions: +help.cfh.topic.2=Someone is sharing phone numbers or home address +help.button.cfh=Help +help.cfh.pick.topic=Choose a topic for your call that best matches your problem: +help.cfh.error.pending=Your previous call for help has not been answered yet. To make a new one you must delete the old message. +help.cfh.topic.1=Someone is bullying or being abusive +help.cfh.input.text=Please give us more details about what has happened. +help.button.faq.next.entry=View the next issue: +help.button.habboway=Read the community guidelines >> +help.cfh.topic.5=Someone is trying to scam passwords +help.faq.title.searchresults=Search results +help.call.for.guide.bot=A guide bot can be called to help answer any questions you may have. +help.cfh.button.send=Make a help request +help.button.call.guide.bot=Call guide bot +help.cfh.topic.4=Someone is blocking or being disruptive +help.cfh.topic.6=Other problem +help.faq.categories.text=Browse FAQs by category: +help.window.title=Help +help.cfh.error.title=Your call for help was not sent! +help.cfh.topic.3=Someone is asking for webcam contact or photos +help.info.cfh=Click here if you want to make a help request +help.button.habboway.url=http://%predefined%/groups/HabboWay +help.cfh.button.delete=Delete your pending calls for help. +help.faq.title.normal=FAQ Topics +link.help.habboway=http://%predefined%/groups/HabboWay +help.cfh.sent.text=A moderator will investigate the situation and take appropriate action. Please check Service Updates on the FAQs for known technical problems. +item_ad_url_ads_mall_winmus=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +item_ad_url_ads_mall_winice=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +item_ad_url_ads_mall_winchi=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8274__zoneid=2607__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/theideaagency +item_ad_url_ads_clwall2=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7377__zoneid=2208__cb=a7f8c3d445__maxdest=http://www.idea.me.uk +item_ad_url_ads_clwall1=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7376__zoneid=2207__cb=a7f8c3d445__maxdest=http://www.childline.org.uk +item_ad_url_ads_clwall3=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7378__zoneid=2209__cb=a7f8c3d445__maxdest=http://www.childline.org.uk +item_ad_url_ads_mall_winspo=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +item_ad_url_ads_mall_wincin=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +item_ad_url_ads_mall_winbea=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +item_ad_url_ads_mall_winclo=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +infostand.button.rotate=Rotate +infostand.button.report=Report +widgets.memenu.effects.activate=Activate +infostand.button.friend=Ask to be a friend +widgets.memenu.effects.active.timeleft=%time_left% +infostand.button.removerights=Remove rights +infostand.text.handitem=Carrying: %item% +infostand.button.move=Move +infostand.button.pickup=Pick up +infostand.button.ignore=Shut up +infostand.button.trade=Trade +infostand.button.giverights=Give rights +infostand.button.respect=Give respect (%count%) +infostand.button.ban=Ban +infostand.button.kick=Kick +infostand.text.xp=Monthly XP: %xp% +infostand.button.unignore=Listen +badge_desc_XMA=Penguin Competition winner 2008! +badge_name_HX7=Habbo eXpert +badge_name_AC2=Bensalem Tribe Member +badge_desc_ACH_EmailVerification1=For activating your email address and for making it easier to return your password. Worth 200 pixels. +badge_desc_MMC= +badge_name_ACH_Login1=Traveler +badge_desc_WH6=Awarded to competition winners during Habboween 2008. +badge_name_XM1=Rasta Santa +badge_desc_HF1=I was a member of the Habbo Dream Team 2006! +badge_name_ACH_GamePlayed10=Battle Royal X +badge_name_Z04=Environmentalism +badge_desc_BOT=I'm an automated worker at Habbo Hotel. +badge_name_HX5=Habbo eXpert +badge_desc_ACH_AllTimeHotelPresence9=Level 9 - spending total of 1152 hours in hotel. Worth 20 pixels. +badge_name_DK6=Camp Rock Guitar Green +badge_name_FRE=Prehistoric World +badge_desc_Z51=Winner of a 17 Again competition +badge_desc_WH4=Habboween competition /event winner. +badge_name_U02=Idea Agency competition winner! +badge_name_HX3=Habbo eXpert +badge_desc_ACH_GamePlayed5=Level 5 - For playing and winning Snow Storm or for the game of Battle Ball 100 times. Worth 100 pixels. +badge_desc_Z65=Charlie Girl Chic Sleepover competition winner +badge_desc_CY3=Awarded to owners of trials that MeiLing failed. CNY 2009 +badge_desc_Z58=Official Habbo Museum security guard +badge_name_ACH_AllTimeHotelPresence9=Online time IX-Tornado +badge_name_KO1=Koala Face +badge_desc_UKH=Dark is Rising sign of stone. 2007. +badge_name_ACH_AIPerformanceVote10=Notorious X +badge_name_ACH_AIPerformanceVote1=Unknown Star I +badge_name_ACH_AIPerformanceVote2=Hidden Talent II +badge_name_ACH_AIPerformanceVote3=Unique III +badge_name_ACH_AIPerformanceVote4=Noteworthy IV +badge_name_ACH_AIPerformanceVote5=Influental V +badge_name_ACH_AIPerformanceVote6=Famous VI +badge_name_ACH_AIPerformanceVote7=Grand VII +badge_name_ACH_AIPerformanceVote8=Well-known VIII +badge_name_ACH_AIPerformanceVote9=Glorious IX +badge_desc_ACH_AIPerformanceVote1=Level 1 - For gathering a vote on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote2=Level 2 - For gathering 20 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote3=Level 3 - For gathering 50 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote4=Level 4 - For gathering 100 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote5=Level 5 - For gathering 180 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote6=Level 6 - For gathering 200 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote7=Level 7 - For gathering 200 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote8=Level 8 - For gathering 300 votes on stage. Worth 60 pixels. +badge_desc_ACH_AIPerformanceVote9=Level 9 - For gathering 300 votes on stage. Worth 100 pixels. +badge_desc_ACH_AIPerformanceVote10=Level 10 - For gathering 300 votes on stage. Worth 200 pixels. +badge_desc_Z32=I took a stand against knife crime +badge_desc_UK2=The sole champion of the Always Salon in 2006. +badge_desc_PIR=Arrr! Pirate competition winner May 2006. +badge_name_ACH_Student1=Habbo Student +badge_name_Z29=Blue Insider +badge_desc_ACH_Login8=Level 8 - For logging in 80 days in a row. Sensational. Worth 200 pixels. +badge_desc_NEI=HMF:Neon Epic Party Winner +badge_desc_HM1=Built a room for the Habbo Mall 2009 +badge_desc_UKF=Dark is Rising sign of iron. 2007. +badge_name_Z20=Mall Detective (2/2) +badge_name_VA7=Small Shalimar +badge_desc_Z30=Awarded to all winners and runners up of the pumpkin design competition. October 2008. +badge_desc_ACH_GamePlayed1=Level 1 - For playing and winning Snow Storm or for the game of Battle Ball. Worth 10 pixels. +badge_name_OL2=Habbolympic Silver +badge_desc_Z18=Against cervical cancer campaign supporter. +badge_name_WTM=Safe Surfer +badge_desc_UK4=Habbo Council member. The Habbo Council postponed all future meetings from June 2006. +badge_name_ACH_Motto1=Master of Words +badge_name_DU1=Gold Habbowealth +badge_name_UKA=Summer Resort +badge_name_ST3=Energy Analyst +badge_name_CL1=Idea Agency competition runner-up! +badge_desc_UKD=Adventure Story competition winner 2007. +badge_name_Z71=Orc of the Dark Lord +badge_desc_Z35=Friday's Official Friend +badge_desc_HJ5=Winner of the Harajuku Lovers quest +badge_desc_ACH_RespectGiven1=For giving respect 100 times. Worth 20 pixels. +badge_name_UKC=Habbo Journalist +badge_desc_AR2=Alhambra Prize Winner 2008 +badge_name_HX9=Habbo eXpert +badge_name_UKQ=St Trinian's Head Boy +badge_desc_ST2=You need Science and Maths skills for this job! +badge_desc_ACH_MGM9=Level 9 - For creating your own fellowship - party of 16. For inviting two more real life friends to Habbo. Worth 180 pixels. +badge_desc_VIP=Celebrity guests and special visitors. +badge_name_Z58=Museum Security +badge_desc_ACH_GamePlayed7=Level 7 - For playing and winning Snow Storm or game of Battle Ball 200 times. Worth 150 pixels. +badge_desc_HX9=X Leader +badge_desc_DN2=Roadtrip USA 5 Points 2008. +badge_name_EC4=HabboSphere Contributor +badge_desc_FRE=Winner in the Frederic Santini Comp - Prehistoric. Sep 09. +badge_desc_UKQ=Winner of St Trinians Head Boy competition. +badge_name_UK6=Billboard Designer +badge_name_ACH_MGM7=Housewarming +badge_desc_HX7=Gold Tech eXpert +badge_name_XM3=Xmas Reindeer +badge_desc_DN4=Roadtrip USA 5 Points 2008. +badge_desc_Z02=Celebrating Earth Week 2020 with Habbo! +badge_desc_ACH_RegistrationDuration10=Level 10 - For true Habbos who have been members of the community for 5 years. Worth 200 pixels. +badge_name_FRG=Ultimate Bobba Champ +badge_desc_ACH_AllTimeHotelPresence7=Level 7 - spending total of 288 hours in hotel. Worth 20 pixels. +badge_name_ACH_Login7=Space dust on your shoes +badge_name_EC2=Melting Ice Caps Survivor +badge_desc_SB7=Winner of a Habbo Hood gang competition. September 2008 +badge_name_UKO=Habbo Seeker +badge_name_HX1=Habbo eXpert +badge_desc_Z16=My Spy Family quest 3 winner. +badge_name_UK8=NSPCC +badge_name_Z18=HPV +badge_name_ST5=Sports Technologist +badge_name_ACH_MGM9=Fiesta +badge_name_RLX01=Relax Comp Winner +badge_name_ACH_Login3=Frequent Resident +badge_desc_ACH_RoomEntry7=Level 7 - For hanging out in 120 Guest Rooms that you do not own .Gold digger. 20 pixels. +badge_name_UK015=Official Fame Talent +badge_desc_ACH_AllTimeHotelPresence5=Level 5 - spending total of 48 hours in hotel. Worth 20 pixels. +badge_name_NEI=HMF: Neon Club Winner +badge_name_ACH_RespectEarned2=Been respected 6 times. +badge_name_ACH_AllTimeHotelPresence3=Online time III-Dust Devil +badge_desc_ACH_AllTimeHotelPresence3=Level 3 - spending total of 8 hours in hotel. Worth 20 pixels. +badge_name_HJ4=Harajuku Lovers Love +badge_desc_ACH_GamePlayed9=Level 9 - For playing and winning Snow Storm or the game of Battle Ball 360 times. Worth 280 pixels. +badge_desc_ACH_GamePlayed3=Level 3 - For playing and winning Snow Storm or for the game of Battle Ball 20 times. Worth 50 pixels. +badge_desc_SB3=Shabbolins gang member on the Streets Of Bobba September 2006. +badge_desc_Z28=Awarded to The Insiders poll and quest winners. October 2008. +badge_name_HBA=Gold Hobba +badge_name_NI5=Mythology World +badge_name_UKK=Fantastic4 Bronze +badge_desc_UKZ=Awarded to fashion designers during Fashion Week 2008. +badge_name_ACH_TraderPass1=Trader's Pass +badge_desc_ACH_Graduate1=For completing your confusing Habbo newbie experience. Worth 20 pixels. +badge_name_ACH_RespectEarned4=Been respected 66 times. +badge_name_ACH_RoomEntry5=Vacationer +badge_name_CO5=Gardener +badge_name_VA2=Valentine Heart +badge_desc_YAK=Awarded for competitions during Japanese Sushi campaign. +badge_desc_ACH_MGM8=Level 8 - For creating your own fellowship - party of 14. For For inviting two more real life friends to Habbo. Worth 170 pixels. +badge_desc_UK007=Official Wizard Detective +badge_name_Z36=Hotel For Dogs 1* Resort Owner +badge_desc_UKB=Murder mystery play writing competition winner 2007. +badge_desc_ACH_RegistrationDuration8=Level 8 - For true Habbos who have been members of the community for 3 years. Worth 200 pixels. +badge_desc_ACH_Login4=Level 4 - For logging in 28 days in a row. Scary. Worth 150 pixels. +badge_name_UKS=Perfect Prefect +badge_name_Z31=HMF: Neon Artist +badge_desc_VA3=Awarded to competition winners during Valentine's 2008. +badge_name_ACH_RoomEntry3=Ultimate Room Raider +badge_desc_TC1=BattleBall Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_ACH_MGM6=Level 6 - For creating your own fellowship - party of 10. For inviting two more real life friends to Habbo. Worth 150 pixels. +badge_name_FAN=Official Fansite Staff +badge_desc_Z69=Friend of the Realm's natural wonders +badge_desc_Z14=My Spy Family quest 2 winner. +badge_desc_U06=Winning a Habbo Raceway Grand Prix. +badge_desc_ACH_RegistrationDuration6=Level 6 - For true Habbos who have been members of the community for a year. Worth 200 pixels. +badge_name_50S=MUZU VJ +badge_name_ACH_RegistrationDuration4=40 % True Habbo +badge_name_Z38=Hotel For Dogs 3* Resort Owner +badge_name_UKU=Theme Park Clown +badge_name_BOT=Habbo Bot +badge_name_GLF=Lynx +badge_name_ACH_AllTimeHotelPresence5=Online time V- Haze +badge_desc_RLX01=Awarded to all winners of Habbo Relax Competitions September 2009. +badge_name_ACH_HappyHour1=Happy Hour +badge_name_UK008=Flint's Meatballs +badge_name_SB2=Bobbaschi +badge_name_Z32=It Doesn't Have To Happen +badge_desc_SU2=Lvl2 Tiki Competition winner. Middle award. Summer 2008. +badge_name_UKM=Fantastic4 Gold +badge_name_SU2=Medium Tiki Mana +badge_name_ACH_GamePlayed4=Battle Royal IV +badge_desc_ACH_RegistrationDuration2=Level 2 - For true Habbos who have been members of the community for 3 weeks. Worth 60 pixels. +badge_name_Z69=Realm Elf +badge_desc_FRG=Ultimate Bobba Wrestling Champion 2008. Kick Wars competition. +badge_name_ACH_RegistrationDuration10=100% True Habbo +badge_name_U06=Habbo Raceway GP +badge_desc_ACH_RoomEntry9=Level 9 - For hanging out in 160 Guest Rooms that you do not own. Spaceman. Worth 30 pixels. +badge_desc_ACH_RespectEarned6=Level 6 - For earning respect a further 200 times. Worth 200 pixels. +badge_name_ACH_AllTimeHotelPresence1=Online time I-Thunderstorm +badge_name_HQ001=Kitchen Survivor +badge_name_WH6=Virus Ooze +badge_desc_DU1=Habbowealth Games 2005. +badge_desc_DSX=Roadtrip USA Room Winner 2008. +badge_desc_ACH_AllTimeHotelPresence1=Level 1 - spending total of 1 hour in hotel. Worth 30 pixels. +badge_desc_WTM=Way too much information! +badge_desc_WH2=Habboween competition /event winner. +badge_desc_ACH_RespectEarned8=Level 8 - For earning respect a further 200 times. Worth 200 pixels. +badge_desc_Z63=Helped shape the new Habbo June 2009 +badge_name_Z60=The Golden Tablet +badge_desc_ST5=You need Science and Maths skills for this job! +badge_name_ACH_RegistrationDuration6=60 % True Habbo +badge_name_AF1=April Fools Day 2009 +badge_desc_AC4=Used the inner Spirit Eagle to find the Lost Tribe of Bensalem +badge_name_SNW=SnowStorm HOF +badge_name_UKX=St Trinian's Quiz +badge_desc_ACH_RespectEarned4=Level 4 - For earning respect a further 50 times. Worth 50 pixels. +badge_name_UKI=Water Sign +badge_name_NWB=Silver Hobba +badge_name_UKE=Tournament King +badge_name_MD1=Meet Dave Quiz +badge_name_Z17=Hairspray Talent +badge_name_HJ2=Harajuku Lovers G +badge_desc_UKS=Winner of the St Trinians perfect prefect competition. +badge_desc_Z24=Official evil scientist! Maximum level. October 2008. +badge_name_ACH_GamePlayed6=Battle Royal VI +badge_desc_AC2=Initiated through the Totem bases of fire GREEN +badge_name_ACH_Login5=A Piece Of The Furniture +badge_name_UKG=Fire Sign +badge_remove=Clear +badge_desc_Z45=HAFTAS Winner 2007 +badge_desc_ACH_RegistrationDuration4=Level 4 - For true Habbos who have been members of the community for 16 weeks. Worth 120 pixels. +badge_desc_FAN=Official Fansite representative. Check out the Official fansite rooms on the upper floors of the Habbo Mall. +badge_name_Z15=Evil Bot Affair +badge_desc_GRR=The Gorillaz visited Habbo in 2005! +badge_desc_MD2=Awarded to winners of the Meet Dave body building competition. 2008. +badge_name_HJ6=Harajuku Lovers Lil' Angel +badge_desc_Z01=Habbo Fashion Week 2008 competition winner. +badge_name_ACH_AllTimeHotelPresence7=Online time VII- Cyclone +badge_name_XXX=Habbo eXpert +badge_name_DN3=Green Fuel Flag +badge_desc_HJ3=Harajuku Lovers Baby +badge_desc_UKW=Theme Park team competition winner. 2008 +badge_desc_ACH_HappyHour1=For spending a Happy moment in Habbo! Log in on Happy Hour to receive this achievement. Worth 100 pixels. +badge_name_HC2=HC Club membership II +badge_name_DS7=Green Tea Elemental +badge_desc_CO4=On the spot prize from the Mayor of Yukka Tree Hill. +badge_name_HC5=HC Club membership V +badge_name_Z12=HBB Champion +badge_name_Z49=Bionicle Quiz Winner +badge_name_UKZ=Fashion Designer +badge_desc_Z49=I showed the intelligence of a Bionicle glatorian! +badge_desc_ACH_RespectEarned3=Level 3 - For earning respect a further 10 times. Worth 20 pixels. +badge_name_DN5=Red Fuel Flag +badge_name_ACH_AvatarLooks1=Looks that Kill +badge_name_Z78=Ice Age Quest Winner +badge_desc_AF1=You got pranked on April Fools Day 2009 +badge_name_GLI=Eagle +badge_name_BE2=Valued BETA tester +badge_desc_NEB=HMF:Neon Fan Club Winner +badge_desc_Z41=HABWrecked Ducks Fan 2009 +badge_desc_EC4=Trying to make Habbo a greener place +badge_name_Z47=Bionicle Quest Winner +badge_desc_AP1=The HABprentice Boardroom Table Member +badge_desc_KO1=For creating the perfect Koala habitat. November 2008. +badge_desc_SB1=Bouncing Queens gang member on the Streets Of Bobba September 2006. +badge_name_DSX=Tourist Expert +badge_desc_ACH_RespectEarned10=Level 10 - For earning respect a further 200 times. Worth 400 pixels. +badge_desc_USP=I successfully found a staff. Nothing stops me anymore! April 2020. +badge_desc_UKK=Fantastic Four Bronze Medallion. 2007. +badge_desc_Z76=The One Ring to rule all other Realm builders +badge_name_OL3=Habbolympic Bronze +badge_name_Z45=HAFTAS Winner 2007 +badge_desc_VA5=Awarded to paired Habbos during Valentine's each year. +badge_name_YAK=Black Dragon +badge_name_AC3=Bensalem Tribe Member +badge_desc_VA8=For making a winning Bollywood Movie. 2009. +badge_desc_UKU=Theme Park entertainment winner. 2008 +badge_name_ACH_GamePlayed2=Battle Royal II +badge_desc_EXH=Hobba volunteer mod until 2006. +badge_desc_RU3=SafeSid Competition Winner +badge_name_ACH_RespectEarned8=Been respected 766 times. +badge_name_ACH_RegistrationDuration1=10 % True Habbo +badge_desc_DU2=Habbowealth Games 2005. +badge_name_Z10=Underage Festival +badge_name_CAG=Atlantis World +badge_name_ACH_MGM2=Luau +badge_desc_Z26=Road Trip USA King badge winner. Awarded to anyone who exchanged 25 Fuel Points. 2008 +badge_desc_XXX=Habbo eXperts are experienced Habbos who answer your questions on Habbo. +badge_name_SHA= +badge_desc_GLE=Level 5 - The clever one - is swift of thought and foot. Sorry. This Achievement is not available at the moment. +badge_name_EXH=Hobba Medal +badge_name_SB7=Habbo Hood Big Flame +badge_name_ACH_RoomEntry8=Sightseer +badge_name_TC1=BattleBall Champ +badge_name_CL3=Idea Agency competition winner! +badge_desc_HC5=Level 5 - For 48 months of Habbo Club membership. Worth 500 pixels. +badge_desc_TC3=SnowStorm Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_SU3=Lvl3 Tiki Competition winner. Highest award. Summer 2008. +badge_desc_ACH_TraderPass1=Level 1 - Achieved by verifying your email, owning Habbo account for at least 3 days and being online at least 1 h. +badge_desc_ACH_Login5=Level 5 - For logging in 35 days in a row. Amazing. Worth 200 pixels. +badge_name_Z26=Road Trip King +badge_name_SB5=Habbo Hood Small Flame +badge_name_DU3=Bronze Habbowealth +badge_desc_SB5=Selected member of a Habbo Hood Group. September 2008 +badge_name_AC5=The Spirit Squid +badge_name_MTV01=MTV EMA 2009 +badge_desc_Z47=I showed the guile of a Bionicle glatorian! +badge_desc_UK013=Finalist of Habbo Big Brother 2009. +selected_badges=Currently wearing: +badge_desc_U05=Having a Course featured in a Habbo Raceway Grand Prix. +badge_desc_OL2=Awarded to members of the 2nd Habbolympic team 2008. +badge_desc_HX5=Gold Host eXpert +badge_name_SU3=High Tiki Mana +badge_desc_DS7=Elementals Vs Warriors 2007. +badge_name_DN2=Blue Fuel Flag +badge_desc_Z11=Contestant of Habbo Big Brother series1 in July 2008. +badge_desc_DS1=I built the best oldschool room. April 2020. +badge_desc_GLK=Level X - The eXperienced one with the knowledge to show the way. +badge_name_ACH_Login9=Habbo Stayer +badge_name_AP1=The HABprentice Finalist +badge_name_Z24=IGOR EVIL SCIENTIST'S COAT +badge_name_ACH_RegistrationDuration8=80 % True Habbo +badge_name_UK001=Habbo Big Brother Press +badge_desc_ACH_MGM2=Level 2 - For creating your own fellowship - party of 3. For inviting one real life friend to Habbo. Worth 55 pixels. +badge_name_GLK=Head Guide (Wolf) +badge_name_UK014=HBB 09 Contestant +badge_name_Z57=CH Rare Museum +badge_desc_ACH_RoomEntry2=Level 2 - For hanging out in 15 guest rooms that you do not own. Worth 10 pixels. +badge_desc_UK7=Awarded to experts at creating their own quests. +badge_name_XM2=Xmas Elf +badge_name_DS1=OLDSCHOOL +badge_desc_GLI=Level 9 - The sharp eyed one - flying to your aid from afar. Sorry. This Achievement is not available at the moment. +badge_name_Z41=Team Ducks Supporter +badge_name_TC3=SnowStorm Champ +badge_name_ACH_MGM5=Slumber Party +badge_name_CY3=High Yin Yang +badge_desc_ACH_RespectEarned1=Level 1 - For earning respect your first time. Worth 20 pixels. +badge_desc_ACH_Student1=For being guided by a Habbo Guide and to be confused no more. Worth 20 pixels. +badge_name_WH2=Evil Smile +badge_desc_DK5=Camp Rock Winner 2008 +badge_name_Z28=Silver Insider +badge_name_UK006=ChildLine Champion +badge_desc_GLA=Level 1 - The speedy one - Sorry. This Achievement is not available at the moment. +badge_desc_AP2=The HABprentice: Design Edition Boardroom Table Member +badge_desc_CL1=Idea Agency brief runner-up! +badge_name_WH4=Smelly Brain +badge_name_ACH_Graduate1=The Graduate +badge_name_ACH_AllTimeHotelPresence10=Online time X - F5 Tornado +badge_desc_HX2=Safety eXpert +badge_desc_Z39=Tracked the scent and made it to the Hotel +badge_name_Z01=Habbo Model +badge_desc_NWB=Hobbas were volunteer moderators. +badge_name_XM4=Xmas Tree +badge_name_Z07=Gold Graffiti +badge_desc_AC6=Used the inner Angry Spirit Ape to find the Lost Tribe of Bensalem +badge_desc_BE2=Helped shape the new Habbo June 2009 +badge_desc_Z37=Hotel For Dogs 2* Resort Owner +badge_desc_ACH_MGM4=Level 4 - For creating your own fellowship - party of 6. For inviting two more real life friends to Habbo. Worth 130 pixels. +badge_desc_UK001=Member of the Official Habbo Big Brother Press team 2009. +badge_desc_LC3=Completed the quest of Lemuria 02/09 +badge_name_MB2=Madball Yellow Card +badge_desc_CL3=Idea Agency Golden brief winner! +badge_desc_Z72=The Rohirrim, horse lord fighter +badge_desc_XM4=Awarded to everyone who visited Habbo during December 2006. Happy Christmas! +badge_desc_UKO=Awarded to anyone who successfully collected all Dark Is Rising Badges. 2007 +badge_desc_Z07=1st place in the Step Up 2 The Streets dance competition. +badge_name_GLC=Otter +badge_desc_Z20=You found the murderer! +badge_name_ACH_MGM3=Block party +badge_name_AR2=Alhambra Sword +badge_name_ACH_GamePlayed7=Battle Royal VII +badge_desc_U01=Idea Agency brief runner-up! +badge_desc_Z43=HABWrecked Contestant 2009 +badge_desc_MB2=Competition winners during Habbo Madball 2008. +badge_name_UK3=Frank Bus +badge_name_ACH_AvatarTags1=5 words of wisdom +badge_name_Z70=Realm Dwarf +badge_desc_HC3=Level 3 - For 24 months of Habbo Club membership. Worth 300 pixels. +badge_desc_U03=Idea Agency Golden brief winner! +badge_desc_HX3=Tech eXpert +badge_name_HWB=Evil Smile +badge_desc_ACH_RoomEntry4=Level 4 - For hanging out in 50 Guest Rooms that you do not own. Backpacker. Worth 15 pixels. +badge_name_Z72=Realm Horse Lord +badge_desc_HC1=Level 1 - For joining the Habbo Club. Worth 100 pixels. +badge_name_VA5=Wedding Ring +badge_name_Z09=Underage Festival +badge_name_ACH_RespectEarned6=Been respected 366 times. +badge_name_Z22=IGOR HELMET +badge_desc_ACH_Login1=Level 1 - For logging in 5 days in a row. Try it if you dare. Worth 50 pixels. +badge_desc_GLC=Level 3 - The one who will not let you sink under pressure. Sorry. This Achievement is not available at the moment. +badge_name_GLE=Fox +badge_name_Z74=Realm Wizard +badge_desc_UKM=Fantastic Four Gold Medallion. 2007. +badge_desc_Z74=Magical fighter of the Realm +badge_desc_Z22=You have reached LEVEL6. October 2008. +badge_name_Z43=HABWrecked Contestant 2009 +badge_name_Z65=Charlie's Best Friend +badge_name_ACH_GamePlayed9=Battle Royal IX +badge_name_ACH_AllTimeHotelPresence8=Online time VIII- Meso Cyclone +badge_desc_Z57=I visited the Rare Museum +badge_desc_WH5=Musically gifted Habbo! +badge_name_ACH_Login4=High Roller +badge_name_HC3=HC Club membership III +badge_name_VA4=Habborella Crew +badge_desc_ACH_MGM10=Level 10 - For creating your own fellowship - party of 18. For inviting two more real life friends to Habbo. Worth 200 pixels. +badge_desc_CY2=Awarded to owners of trials that MeiLing defeated. CNY 2009 +badge_name_HX8=Habbo eXpert +badge_name_Z05=Habbo X Medal +badge_name_WAR=Peace Protest 2008 +badge_desc_Z05=Habbo eXperts were volunteer helpers between 2006 and 2008. +badge_name_UKF=Iron Sign +badge_desc_WH7=Awarded to competition winners during Habboween 2008. +badge_desc_UKG=Dark is Rising sign of fire. 2007. +badge_name_UKP=Perfect Prefect +badge_name_Z63=Valued BETA tester +badge_name_ST6=Climate Scientist +badge_name_AR1=Alhambra Genie +badge_desc_Z78=Found Scrat's nut - it was big! +badge_desc_UKA=Battle of the Resorts Summer 2007 +badge_name_Z03=Stop Pollution +badge_name_Z51=Zac Efron Fan +badge_name_UKH=Stone Sign +badge_name_UKD=Adventure Story +badge_desc_Z09=Competition winner at the Habbo Underage Festival 2008. +badge_desc_ACH_RegistrationDuration1=Level 1 - For true Habbos who have been members of the community for 3 days. Worth 30 pixels. +badge_desc_Z70=Mines in the Realm for riches +badge_desc_UK3=Frank Bus moderator. +badge_desc_Z17=Hairspray The Musical talent show competition winner! 2008 +badge_name_HX4=Habbo eXpert +badge_desc_WH3=Habboween competition /event winner. +badge_desc_ACH_GamePlayed4=Level 4 - For playing and winning Snow Storm or for the game of Battle Ball 50 times. Worth 80 pixels. +badge_desc_ACH_Login7=Level 7 - For logging in 70 days in a row. Awesome. Worth 200 pixels. +badge_desc_UKY=Awarded to Quest Guild members. You must submit a Quest to enter the guild. +badge_name_ACH_Login2=Preferred Guest +badge_name_ADM=Habbo Staff +badge_name_Z76=My Precious +badge_name_ACH_Login10=Phoenix +badge_desc_ACH_Login9=Level 9 - For logging in 90 days in a row. Extraordinary. Worth 200 pixels. +badge_desc_DN1=Diner Room Winner 2008. +badge_name_OL1=Habbolympic Gold +badge_desc_HJ6=Attended the Harajuku Lovers Hub launch party! +badge_name_WBL=Wobble Squabble HOF +badge_name_HM1=Mall Builder +badge_desc_HWB=Habboween competition badge. +badge_name_UK5=Comic Creator +badge_desc_WBL=Hall of Fame member. Awarded to the top 25 Wobble Squabble players. +badge_desc_HW1=Winning Director of a Habbowood movie. Habbowood ran in both 2006 and 2007. +badge_name_CO6=YTH Champion Villager +badge_name_ST4=Cosmetics Specialist +badge_desc_CL2=Idea Agency Silver brief winner! +badge_name_NEB=Official EPIC Party Host +badge_name_UKR=St Trinian's Head Girl +badge_desc_ACH_AllTimeHotelPresence6=Level 6 - spending total of 144 hours in hotel. Worth 20 pixels. +badge_name_ACH_MGM10=Prom +badge_name_HX2=Habbo eXpert +badge_name_ACH_RoomEntry6=House Guest +badge_name_WH1=Evil Eye +badge_desc_UK5=Habbo comic creator. Comics were displayed on the homepage for 2 weeks during 2007. +badge_desc_GLG=Level 7 - The strong one - the one you can depend on. Sorry. This Achievement is not available at the moment. +badge_name_GLA=Bunny +badge_name_LC3=Lemuria Adventurer +badge_desc_UK9=Japanese quest winner 2007. +badge_desc_Z03=Earth week competition winner. +badge_desc_DN3=Roadtrip USA 15 Points 2008. +badge_desc_ACH_AllTimeHotelPresence8=Level 8 - spending total of 576 hours in hotel. Worth 20 pixels. +badge_desc_Z31=Official Habbo Music Festival Artist +badge_name_UK7=Quest Builder +badge_name_ACH_MGM8=Ball +badge_name_VA3=Habborella Cruise +badge_desc_HX8=Gold Game eXpert +badges_tab_title=My badges +badge_name_AC1=Bensalem Tribe Member +badge_name_EC5=Earth Week Riddle +badge_desc_ST3=You need Science and Maths skills for this job! +badge_desc_ACH_AvatarLooks1=For finally putting some fresh clothes on. Worth 50 pixels. +badge_name_SB1=Bouncing Queens +badge_name_ST2=Digital Designer +badge_name_Z59=History Buff +badge_desc_Z66=Entered an ultimate sleepover room to Charlie +badge_name_UKB=Play Writer +badge_name_Z42=Team Otters Supporter +badge_name_HW1=Habbowood Director +badge_name_Z35=Hotel For Dogs Quest Winner +badge_desc_AC1=Initiated through the Totem bases of fire PINK +badge_name_UK007=Skulduggery Pleasant's Asst. +badge_desc_ACH_RoomEntry10=Level 10 - For hanging out in 200 Guest Rooms that you do not own. Time traveler. Worth 40 pixels. +badge_desc_ACH_RegistrationDuration7=Level 7 - For true Habbos who have been members of the community for 2 years. Worth 200 pixels. +badge_name_UKT=Candy Floss +badge_name_CO4=YTH Prize Winner +badge_name_UKL=Fantastic4 Silver +badge_name_ACH_RoomEntry4=Day tripper +badge_desc_ACH_AllTimeHotelPresence4=Level 4 - spending total of 16 hours in hotel. Worth 20 pixels. +badge_name_ACH_GamePlayed5=Battle Royal V +badge_name_ACH_TraderPass2=Trader's Pass +badge_name_RU3=SafeSid Competition Winner +badge_desc_Z13=Runner Up of Habbo Big Brother series1 in July 2008. +badge_desc_SHA= +badge_desc_ACH_GamePlayed8=Level 8 - For playing and winning Snow Storm or the game of Battle Ball 280 times. Worth 220 pixels. +badge_desc_ACH_RegistrationDuration5=Level 5 - For true Habbos who have been members of the community for 24 weeks. Worth 160 pixels. +badge_desc_ACH_MGM7=Level 7 - For creating your own fellowship - party of 12. For inviting two more real life friends to Habbo. Worth 160 pixels. +badge_name_ACH_RespectEarned1=Been respected once. +badge_name_Z33=It Doesn't Have To Happen +badge_desc_ACH_RoomEntry8=Level 8 - For hanging out in 140 Guest Rooms that you do not own. Orion. Worth 30 pixels. +badge_desc_XM2=Elf Vs Reindeer Christmas 2005 +badge_desc_SU1=Lvl1 Tiki Competition winner. Lowest award. Summer 2008. +badge_desc_SB2=Bobbaschi gang member on the Streets Of Bobba September 2006. +badge_name_ACH_Login8=Rotten tomato +badge_desc_BTB=Hall of Fame member. Awarded to the top 25 BattleBall players. +badge_desc_UK015=Dream it. Earn it. Live it on Habbo +badge_desc_ACH_GamePlayed2=Level 2 - For playing and winning Snow Storm or for the game of Battle Ball 5 times. Worth 30 pixels +badge_desc_ACH_RespectEarned9=Level 9 - For earning respect a further 200 times. Worth 200 pixels. +badge_desc_ACH_Login3=Level 3 - For logging in 15 days in a row. Strange. Worth 120 pixels. +badges_window_title=Badges +badge_name_UK9=Japanese Statue +badge_name_JF2=Japanese Sushi +badge_desc_ACH_RoomEntry6=Level 6 - For hanging out in 80 Guest Rooms that you do not own. Out of towner. Worth 20 pixels. +badge_desc_CO6=Villager at the largest village in Yukka Tree Hill. +badge_name_USP=TRAP! +badge_name_Z39=Hotel For Dogs Maze Winner +badge_desc_ACH_AllTimeHotelPresence10=Level 10 - spending total of 2304 hours in hotel. Worth 20 pixels. +badge_name_Z40=Habbo UK is 8! +badge_name_ACH_AllTimeHotelPresence2=Online time II - Drizzle +badge_name_SB3=Shabbolins +badge_name_ACH_RespectGiven1=Nice as pie! +badge_name_UK012=HBB 09 Winner +badge_name_GLG=Buffalo +badge_name_HJ3=Designed Gwen Stefani an outfit with Harajuku Lovers +badge_desc_ACH_RespectEarned7=Level 7 - For earning respect a further 200 times. Worth 200 pixels. +badge_desc_UKC=Habbo submitted news stories. +badge_name_UKV=Gold Rollercoaster +badge_desc_VA7=For making a really good Bollywood Movie. 2009. +badge_name_BTB=BattleBall HOF +badge_name_ACH_AllTimeHotelPresence6=Online time VI- Jet Stream +badge_desc_UK008=Saved Habbo from a freak weather machine +badge_name_UKJ=Wood Sign +badge_desc_Z33=Play Director and Reviewer extraordinaire +badge_desc_ACH_GamePlayed6=Level 6 - For playing and winning Snow Storm or the game of Battle Ball 160 times. Worth 120 pixels. +badge_name_ACH_RespectEarned3=Been respected 16 times. +badge_desc_ACH_AllTimeHotelPresence2=Level 2 - spending total of 3 hours in hotel. Worth 20 pixels. +badge_name_VA1=Superlove Heart +badge_desc_CAC=Landscape Room Winner 2008. +badge_name_ACH_RoomEntry2=Running Room Raider +badge_name_PIR=Pirate Necklace +badge_name_ACH_RegistrationDuration3=30 % True Habbo +badge_desc_ST4=You need Science and Maths skills for this job! +badge_desc_MD1=Awarded to winners of the Meet Dave quiz competition. 2008. +badge_name_UKW=Silver Rollercoaster +badge_name_SU1=Low Tiki Mana +badge_desc_Z29=Awarded to The Insiders prank competition winners. October 2008. +badge_desc_UKE=I left everything behind and was able to win. April 2020. +badge_desc_ADM=Habbo Employees including London office staff. If their Habbo name has MOD in it, then they are Moderators. +badge_name_U01=Idea Agency competition runner-up! +badge_name_ACH_EmailVerification1=True You +badge_desc_EC2=Won a Love The Earth event +badge_name_CL2=Idea Agency competition winner! +badge_desc_AC3=Initiated through the Totem bases of fire BLUE +badge_name_ACH_Login6=Covered with moss +badge_name_WH7=Virus Blood +badge_desc_Z27=Road Trip USA Queen badge winner. Awarded to anyone who exchanged 25 Fuel Points. 2008 +badge_desc_HJ2=I'm an official Harajuku Lovers girl +badge_name_Z14=Briefcase Affair +badge_name_ACH_GamePlayed3=Battle Royal III +badge_desc_CAG=Winner in the Frederic Santini Comp - Atlantis. Sep 09. +badge_desc_Z19=You have reached LEVEL4. October 2008. +badge_desc_UK006=A true ChildLine ambassador +badge_name_DK5=Camp Rock Guitar Blue +badge_desc_ACH_RespectEarned5=Level 5 - For earning respect a further 100 times. Worth 100 pixels. +badge_desc_HJ4=Member of the Cool Japan Quiz winning team +badge_desc_Z60=Built a Museum room to house a replica tablet +badge_name_ACH_AllTimeHotelPresence4=Online time IV - Blizzard +badge_name_Z16=Newspaper Affair +badge_desc_ACH_Motto1=For editing your motto & letting us know how you're feeling. Worth 10 pixels. +badge_name_Z66=Charlie Girl Chic Competitor +badge_name_U03=Idea Agency competition winner! +badge_desc_Z59=Master of the history quest +badge_name_Z37=Hotel For Dogs 2* Resort Owner +badge_name_HX6=Habbo eXpert +badge_desc_ACH_RegistrationDuration3=Level 3 - For true Habbos who have been members of the community for 8 weeks. Worth 90 pixels. +badge_name_MD2=Meet Dave Body +badge_desc_WH1=Habboween competition /event winner. +badge_desc_UKR=Winner of St Trinians Head Girl competition. +badge_name_Z68=The Dark Lord's Wraiths +badge_desc_Z15=My Spy Family quest 1 winner. +badge_name_HJ5=Harajuku Lovers Music +badge_desc_Z68=He sees all, and I search for him +badge_name_U05=Habbo Raceway Course +badge_name_ACH_MGM1=Baby Shower +badge_name_GLH=Bear +badge_name_Z46=HAFTAS Winner 2009 +bage_name_XMA=Christmas 2008 comp winner +badge_name_HF1=Golden Football Boot +badge_name_Z13=HBB Runner Up +badge_name_ACH_RoomEntry10=Pilgrim +badge_desc_UKJ=Dark is Rising sign of wood. 2007. +achievements_desc=Achievements are tasks that you can do in Habbo Hotel. For each Achievement you receive a badge and some pixels +badge_desc_Z42=HABWrecked Otters Fan 2009 +badge_name_UKY=Quest Guild +badge_name_ACH_RegistrationDuration5=50 % True Habbo +badge_desc_VA1=Awarded to the two superlove champions Valentine's 2006. +badge_desc_UKX=Winner at the St Trinian's Quiz competiton 2008. +badge_name_Z48=Bionicle Kick Wars Winner +badge_desc_UKV=Theme Park team competition champion. 2008 +badge_name_DN4=Pink Fuel Flag +badge_desc_SNW=Hall of Fame member. Awarded to the top 25 SnowStorm players. +badge_desc_HC4=Level 4 - For 36 months of Habbo Club membership. Worth 400 pixels. +badge_desc_Z25=You have reached LEVEL1. October 2008. +badge_desc_ATW=Globetrekker competition winner. Country room is in our Globetrekker Tour Guide 2008. +badge_name_ACH_GamePlayed1=Battle Royal I +badge_name_Z77=HARD2BEAT Glowstick +badge_desc_UKT=Theme Park creative competition winner. 2008 +badge_desc_UKN=Awarded to winners of the 2007 HAFTAs where rooms were built based on films. +badge_desc_ST6=You need Science and Maths skills for this job! +badge_desc_ACH_Login10=Level 10 - For logging in 100 days in a row. Breathtaking. Worth 200 pixels. +badge_desc_CO5=I submitted my room to the Flower Power Room Competition! June 2020. +badge_desc_EC5=Found the Tree within. +badge_name_ACH_RoomEntry1=Room Raider +badge_name_AC4=The Spirit Eagle +badge_desc_HUB=For entering our Infobus Session in April 2020. +badge_desc_Z44=HABWrecked Overall Winner 2009 +badge_name_ACH_RegistrationDuration2=20 % True Habbo +badge_name_HC1=HC Club membership I +badge_desc_DU3=Habbowealth Games 2005. +badge_desc_HQ001=Kitchen Survivor Competition winner. September 2009. +badge_name_CY2=Low Yin Yang +badge_name_XM9=Arctic Snowballers! +badge_desc_SB4=Furnihilists gang member on the Streets Of Bobba September 2006. +badge_desc_ACH_Login6=Level 6 - For logging in 60 days in a row. Phenomenal. Worth 200 pixels. +badge_desc_XM3=Reindeer Vs Elf Christmas 2005 +badge_desc_HX4=Game eXpert +badge_name_SB4=Furnihilists +badge_name_DN1=Diner Expert +badge_name_ACH_RoomEntry9=Habitué +badge_name_Z11=HBB Contestant +badge_name_Z30=Pumpkin Design +badge_desc_VA4=Habborella cruise ship staff Valentine's 2008. +badge_name_UKN=HAFTAs Award +badge_desc_UK8=NSPCC campaign badge. Stop Bullying. Full stop. +badge_desc_UKP=Winner of the St Trinians perfect prefect competition. +badge_name_ACH_RoomEntry7=Traveler +badge_name_KIR=Keep It Real +badge_desc_Z40=I celebrated Habbo UK's 8th birthday, 17/1/2009 +badge_name_Z25=IGOR GOGGLES +badge_desc_UK012=Winner of Habbo Big Brother 2009 +badge_name_ACH_RegistrationDuration7=70 % True Habbo +badge_name_UK013=HBB 09 Runner Up +badge_desc_UK014=Contestant of Habbo Big Brother 2009. +badge_desc_TC2=Wobble Squabble Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_HBA=Hobbas were volunteer moderators. +badge_desc_VA2=Awarded to competition winners during Valentine's week each year. +badge_desc_ACH_RoomEntry5=Level 5 - For hanging out in 60 Guest Rooms that you do not own. Globetrotter.Worth 15 pixels. +badge_desc_OL3=Awarded to members of the 3rd Habbolympic team 2008. +badge_desc_Z10=Competition winner at the Habbo Underage Festival 2008. +badge_name_ACH_RespectEarned10=Been respected 1166 times. +badge_desc_Z46=HAFTAS Winner 2009 +badge_desc_Z23=You have reached LEVEL2. October 2008. +badge_desc_ACH_RegistrationDuration9=Level 9 - For true Habbos who have been members of the community for 4 years. Worth 200 pixels. +badge_name_ACH_RegistrationDuration9=90 % True Habbo +badge_desc_ACH_TraderPass2=Level 2 - Achieved if you have been busy trading your stuff. Keep it up! +badge_desc_Z48=I showed the strength of a Bionicle glatorian! +badge_desc_XM1=Rasta Santa was awarded during Christmas 2005. He visited the hotel December 2006. +badge_desc_Z04=Earth Week 2020 +badge_desc_MTV01=Member of the MTV EMA 2009 Group. +badge_name_ACH_MGM6=Reunion +badge_name_WH3=Vampire Fangs +badge_name_Z02=Earth Week 2020 +badge_name_Z56=The Buzz Brain of Habbo +badge_name_Z27=Road Trip Queen +slots_full=5 badges worn! +badge_desc_Z71=Henchman of the Dark Lord +badge_name_HUB=Infobus Session April +badge_desc_KIR=Keep It Real competition winner. Don't forget to keep it 100% Habbo! +badge_desc_U02=Idea Agency Silver brief winner! +badge_desc_AP3=A winner or runner-up in the HABprentice: Designer Edition tasks +badge_desc_ACH_GamePlayed10=Level 10 - For playing and winning Snow Storm or the game of Battle Ball 440 times. Worth 340 pixels. +badge_wear=Wear +badge_name_TC2=Wobble Squabble Champ +badge_save=Save +badge_desc_WAR=Awarded for attending the Peace Protest in 2008 or responding correctly to the Peace Poll. +badge_desc_ACH_RespectEarned2=Level 2 - For earning respect a further 5 times. Worth 20 pixels. +badge_desc_DK6=Camp Rock Winner 2008 +badge_desc_ACH_RoomEntry3=Level 3 - For hanging out in 30 guest rooms that you do not own. Worth 15 pixels. +badge_desc_UK6=Billboard design winner. Billboards were displayed in the Gallery Cafe for 2 weeks during 2007! +badge_name_GLJ=Owl +badge_desc_Z08=2nd place in the Step Up 2 The Streets dance competition. +badge_desc_OL1=Awarded to members of the 1st Habbolympic team 2008. +badge_desc_Z73=Fights for the Dark Lord of the Realm +badge_desc_GLH=Level 8 - The friendly one - kind and always there. Sorry. This Achievement is not available at the moment. +badge_desc_HX6=Gold Safety eXpert +badge_name_AP2=Official HABprentice Designer 2009 +badge_desc_BE1=Helped shape the new Habbo June 2009 +badge_desc_DN5=Roadtrip USA 10 Points 2008. +badge_name_Z19=IGOR BUBBLING BEAKER +badge_name_ST1=Sound Engineer +badge_name_CAC=Landscape Expert +badge_name_UK002=Habbo Mall Cop +badge_desc_ACH_MGM1=Level 1 - For creating your own fellowship - party of 2. For inviting one real life friend to Habbo. Worth 50 pixels. +badge_name_AC6=The Angry Spirit Ape +badge_name_ACH_GamePlayed8=Battle Royal VIII +badge_desc_ACH_RoomEntry1=Level 1 - For hanging out in 5 guest rooms that you do not own. Worth 5 pixels. +badge_desc_GLJ=Level 10 - The old and wise one - loyal, with a heart of gold. Sorry. This Achievement is not available at the moment. +badge_name_Z75=Realm Protectors +badge_desc_ACH_AvatarTags1=For tagging yourself with 5 tags. Use your words wisely. Describe yourself for a wicked match! Worth 50 pixels. +badge_desc_ACH_MGM3=Level 3 - For creating your own fellowship - party of 4. For inviting one real life friend to Habbo. Worth 60 pixels. +badge_name_WH5=Purple Guitar +badge_desc_AR1=Alhambra Prize Winner 2008 +badge_name_GRR=Gorillaz Celeb Visit +badge_desc_GLD=Level 4 - The digger one - has information you cannot find. Sorry. This Achievement is not available at the moment. +badge_desc_Z77=Winner of a Celebrity Visit competition from HARD2BEAT Records. +badge_name_ACH_RespectEarned9=Been respected 966 times. +badge_name_Z08=Silver Graffiti +badge_desc_XM9=For Arctic Maze survivors! +badge_desc_AC5=Used the inner Spirit Squid to find the Lost Tribe of Bensalem +badge_name_Z73=Warrior of the Dark Lord +badge_name_DU2=Silver Habbowealth +badge_name_GLB=Bambi +badge_name_UK2=Always Salon Champ +badge_desc_ACH_MGM5=Level 5 - For creating your own fellowship - party of 8. For inviting two more real life friends to Habbo. Worth 140 pixels. +badge_name_VIP=VIP Pass +badge_desc_UK002=Paul Blart: Mall Cop quiz winner +badge_desc_Z06=3rd place in the Step Up 2 The Streets dance competition. +badge_desc_GLB=Level 2 - The loving one - Sorry. This Achievement is not available at the moment. +badge_name_UK4=Habbo Council +badge_desc_HX1=Host eXpert +badge_name_ACH_MGM4=Dance Party +badge_desc_Z21=You have reached LEVEL3. October 2008. +badge_name_MB1=Madball Red Card +achievements_tab_title=Achievements +badge_name_ACH_RespectEarned7=Been respected 566 times. +badge_name_ATW=Globetrekker +badge_desc_HC2=Level 2 - For 12 months of Habbo Club membership. Worth 200 pixels. +badge_desc_Z36=Hotel For Dogs 1* Resort Owner +badge_name_VA8=Large Shalimar +badge_desc_JF2=Awarded to everyone who opened a Sushi Parlour that was visited and endorsed by Kitsune. 2008 +badge_name_ACH_RespectEarned5=Been respected 166 times. +badge_name_BE1=Official BETA tester +badge_name_Z06=Bronze Graffiti +badge_desc_UKI=Dark is Rising sign of water. 2007. +badge_desc_Z75=A protector of the Realm +badge_name_Z23=IGOR BUNSEN BURNER +badge_desc_Z12=Winner of Habbo Big Brother series1 in July 2008. +badge_desc_ACH_Login2=Level 2 - For logging in 8 days in a row. Weird. Worth 80 pixels. +badge_name_GLD=Badger +badge_desc_Z56=I've got the biggest brain in all of Habbo! +badge_desc_NI5=Winner in the Frederic Santini Comp - Mythology. Sep 09. +badge_name_MMC= +badge_desc_GLF=Level 6 - The hunter - stalks down the answers. Sorry. This Achievement is not available at the moment. +badge_desc_50S=Winner of the MUZU VJ Playlist competition. Enter now at /groups/MUZU +badge_name_Z44=HABWrecked Winner 2009 +badge_name_HC4=HC Club membership IV +badge_desc_Z38=Hotel For Dogs 3* Resort Owner +badge_desc_UKL=Fantastic Four Silver Medallion. 2007. +badge_desc_MB1=Overall champions of Habbo Madball 2008. +badge_desc_ST1=You need Science and Maths skills for this job! +badge_name_Z21=IGOR PINCERS +fx_12_desc=Ice cold! +fx_18=UFO in yellow +fx_4_desc=Twinkle like the star you are. +object_displayer_fx=%fx (%t) +fx_19=BluesMobile +fx_5=Torch +fx_bubbles=Forever blowing bubbles! +fx_26=totem_mix_name +fx_18_desc=Unidentified yellow flying object. +fx_17_desc=Fly away with this UFO of love. +fx_20_desc=How can I help? +fx_16=Microphone +fx_25=totem_eagle_name +fx_22_desc=This is black sunshine! +fx_11_desc=X-Rayed +fx_explosion=Explosions +fx15=Hover board +fx_flare=Flares! +fx_4=Twinkle +fx_20=HelpMobile +fx_12=Frozen +fx_1_desc=Shine the light on me! +fx_9=Love +fx_9_desc=Love is in the air. +fx_11=X-Ray +fx_7=Butterfly effect +fx_8=Fireflies +fx_8_desc=Light my fire +fx_6=HRJP-3000 +fx_24_desc=totem_merdragon_desc +fx_17=UFO in pink +fx_24=totem_merdragon_name +fx_21=RebelMobile +fx_3_desc=Help, I'm being abducted. +fx_19_desc=We're on a mission from god. +fx_16_desc=Habbo Dragonfly microphone +fx_26_desc=totem_mix_desc +fx15_desc=The future of transportation in yellow. +fx_6_desc=Habbo Rocket Jet Pack. +fx_15=Yellow hover board +fx_10_desc=Get a shower! +fx_2=Hover board +fx_21_desc=Drive like lightning, crash like thunder! +fx_23_desc=totem_man_desc +fx_13_desc=Spooky +fx14_desc=The future of transportation in pink. +fx_3=UFO +fx_10=Flies +fx_13=Ghost +fx_25_desc=totem_eagle_desc +fx_14_desc=See the world on pink hover board. +fx14=Hover board +fx_1=Spotlight +fx_23=totem_man_name +fx_5_desc=Light the dark corners of your existence. +fx_7_desc=Let the butterflies flap their wings. +fx_22=BadMobile +fx_14=Pink hover board +fx_2_desc=The future of transportation. +fx_15_desc=As yellow as a submarine. +navigator.frontpage.staticsearch.1=Popular Rooms +navigator.embed.info=The HTML code in below field allows you to embed this room to a web page. Copy the code to your clipboard to apply it to a web page. +navigator.password.button.try=Try password +navigator.roominfo.removefromfavourites=Remove from favorites +navigator.roominfo.addtofavourites=Add to favorites +navigator.roomownercaption=Owner: +navigator.tab.3=Friends +navigator.cannotcreateevent.error.5=Room already has an event. +navigator.createevent=Create event +navigator.roomsettings.deleteroom.confirm.message=Are you sure you want to delete %room_name%? YOU WILL PERMANENTLY LOSE ALL FURNITURE IN THIS ROOM. They will be gone forever. +navigator.loading=Loading... +navigator.tab.4=Search +navigator.createroom.hcpromo.text=You get more room options if you join the Habbo Club, the Club of most active Habbos +navigator.roomrating=Rating: +navigator.password.retryinfo=Wrong password. Please retry, or cancel entering the room. +navigator.navibutton.11=Public Rooms +navigator.thumbeditor.selectpos=Define place: +navigator.navisel.highestscore=Rooms with highest scores +navigator.eventstartedat=Started at: +navigator.removefavourite=Remove Favourite +navigator.thumbeditor.nextobj=Next +navigator.roomsettings.doormode.password=Require a password to enter room +navigator.navisel.visitedrooms=Room I've recently visited +navigator.eventsettings.nameerr=You must choose a name for you event +room.queue.spectator.position.hc=Your position in the HC spectator queue: %position% +navigator.navibutton.10=Front Page +navigator.roomsettings.save=Save settings +navigator.usercounttooltip.friends=Amount of friends are in this room +navigator.moreroomscaption=Want more rooms? +navigator.rateroom=Rate this room +navigator.favouritesfull.body=Your favourite list is full. You must remove some favourite rooms before adding more. +navigator.navisel.mainattractions=Main attractions +navigator.roomsettings.doormode.open=Open, anyone can enter +navigator.search.info=Type your search words here... +navigator.navibutton.1=Popular Rooms +room.queue.error.c=This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club. Check your Catalogue for details. +navigator.navisel.alllatestevents=Latest Events +navigator.roominfo.makehome=Make home room +navigator.password.enter=Enter password +navigator.eventsettings.edit=Edit +navigator.roomsettings.flatctrls.limitinfo=Showing first %cnt% users, most recently added users first. +navigator.navisel.myfavourites=My favourite rooms +navigator.roomsettings.unacceptablewords=Unacceptable words! +navigator.roomsettings.passwordismandatory=You must enter a valid password +navigator.remove=Remove +navigator.embed.caption=Embed this room +navigator.roominfo.sethomeroom=Home +navigator.doorbell.title=Doorbell +navigator.roomsettings.basiccaption=Basic room settings +navigator.navisel.myrooms=Rooms owned by me +room.queue.error.title=Cannot enter room! +room.queue.position.hc=Your position in the HC queue: %position% +navigator.thumbeditor.bgtab=Background image +navigator.cannotcreateevent.error.2=Only room owner can create events. +room.queue.button.exit=Exit queue +navigator.frontpage.staticsearch.9=Tag Search +navigator.thumbeditor.save=Save +navigator.roomsettings.flatctrls.info=Choose users from the list above and then click "remove" to take away their rights to this room. Click on Remove All to remove rights from all users. +room.queue.spectatormode=Change to spectator view +navigator.doorbell.info=This room is locked. You need to ring the doorbell to enter. If you ring the doorbell, you will have to exit this room. +navigator.roomsettings.delete=Delete this room +navigator.thumbeditor.caption.bg=Select background image +navigator.create=Create +navigator.roominfo.clearhome=Remove home +navigator.createroom.hcpromo.link=Click here to read more >> +navigator.roominfo.clearhome.tooltip=This room is your Home Room. Click here to remove your Home Room setting. +navigator.roomsettings.doormode.doorbell=Visitors have to ring the doorbell +navigator.roomctg=Category: +room.queue.spectator.info=In spectator mode you can spectate the room. +navigator.thumbeditor.objtab=Icons +navigator.thumbeditor.prevobj=Prev +navigator.usercounttooltip.staticsearch=Amount of users in rooms that match this search +navigator.tab.2=Me +navigator.frontpage.staticsearch.5=My Rooms +navigator.roomsettings.advancedcaption=Advanced room settings +room.queue.link=Habbo Club members bypass the queue! Read more >> +navigator.embed.copytoclipboard=Copy to clipboard +navigator.makefavourite.tooltip=Click here to add this room to your favourites list. +navigator.guestroomfull.text=Sorry, the room you tried to enter is full. +navigator.frontpage.staticsearch.6=Favourite Rooms +navigator.navibutton.12=Events +navigator.title=Navigator +navigator.cannotcreateevent.error.1=You must be in a room to start an event. +navigator.navisel.wherearemyfriends=Rooms where my friends are +navigator.cannotcreateevent.title=Cannot Create event. +navigator.roomsettings.tobasicsettings=Basic settings +navigator.createroom=Create room +navigator.tab.special=Public +navigator.thumbeditor.caption.obj=Select image for the top +navigator.doorbell.no.answer=No answer. +navigator.eventsettings.descerr=Event description is mandatory +room.queue.position=Your position in the queue: %position% +navigator.frontpage.staticsearch.4=Where are my friends? +navigator.tab.1=Everyone +navigator.navibutton.9=By Category +navigator.favouritedeleted=Favourite %room_name% deleted! +navigator.frontpage.officialrooms=Official Habbo Rooms +navigator.roomsettings.removeallflatctrls=Remove all +navigator.editroom=Edit Room +navigator.error.nosuchflat.title=Could not delete room +navigator.tohotelview.tooltip=Exit current room. +navigator.roomsettings.invalidconfirm=The passwords don't match +navigator.roomsettings.nonuserchoosabletag=Reserved for staff use +navigator.thumbeditor.caption=Edit Navigator room icon +navigator.navibutton.3=My Friends' Rooms +navigator.createroom.tilesize=tiles +navigator.usercounttooltip.users=Amount users currently in this room +navigator.noroomsfound=No rooms found +navigator.createroom.title=Room creation +navigator.embed.src= +navigator.eventsettings.name=Event name +navigator.favouritesfull.title=Cannot add favorite +navigator.eventsettings.editcaption=Edit event +navigator.ratingcaption=Rating: +navigator.password.info=This room is locked with a password. If you want to try to insert a password, you will be moved from this room. +navigator.roomsettings.desc=Add a description +navigator.searchusers=Search users +navigator.tab.rooms=Rooms +room.queue.title=Room queue +navigator.roomsettings.roominfo=Room info +navigator.info.doorbell=Room door is locked. Owner may open the door from inside. +navigator.doorbell.waiting=The doorbell is ringing, waiting for someone to open the door... +navigator.cannotcreateevent.error.4=Room event feature is currently disabled. +navigator.roomsettings.roomnameismandatory=You must enter a name for your room +navigator.roomsettings=Room settings +navigator.navibutton.2=Highest Score +navigator.createroom.error=Cannot create room +navigator.cannotcreateevent.error.3=The door of the room must be open to create an event. You can change the door mode in room settings. +navigator.thumbeditor.caption.top=Select image for the top +navigator.roomsettings.editthumbnail=Edit navigator icon +navigator.guestroomfull.title=Cannot enter room! +navigator.thumbeditor.toptab=Top layer +navigator.tab.events=Events +navigator.frontpage=Front page +navigator.textsearchresults=Found %room_count% rooms +navigator.createroom.limitreached=You are not allowed to own more than %limit% rooms. +navigator.eventsettings.desc=Event description +navigator.search.tags=...or select tag below +navigator.notagsfound=No popular tags found +navigator.tab.search=Search +navigator.banned.text=Sorry, but the owner of this room has banned you. Therefore you cannot enter this room. Please try another room. +navigator.cannonaddfavourite.exists=This room is already in your favourites. +navigator.password.title=Password +navigator.createroom.nameerr=Room name is mandatory! +navigator.doorbell.button.ring=Ring doorbell +navigator.roomsettings.toadvancedsettings=Advanced settings +navigator.usercounttooltip.populartag=Amount of users in rooms that have this tag +navigator.tagsearchresults=Found %room_count% rooms matching %tag_name% +navigator.roomsettings.doormode=Access to this room: +navigator.navibutton.4=Where Are They? +navigator.roomname=Room name +navigator.roominfo.editevent=Edit event +navigator.navibutton.5=My Rooms +navigator.category=Category +navigator.error.nosuchflat.message=Could not delete the room, since it doesn't exist or you are not the owner. +navigator.undofavouritedeletion=Undo +navigator.createroom.chooselayoutcaption=Choose room layout +room.queue.back=Back to visitor queue +navigator.info.password=Password in required when entering this room. +room.queue.spectator.position=Your position in the spectator queue: %position% +navigator.back=Back +navigator.frontpage.staticsearch.8=Text Search +navigator.roominfo.makehome.tooltip=Set this room as your Home Room. You automatically enter your Home Room when you enter Habbo. +navigator.roomsettings.password=Password for the room: +navigator.cannotcreateevent.error.6=You already have an ongoing event in some other room. +navigator.roomsettings.flatctrls.caption=%cnt% users have rights to this room +navigator.navibutton.7=Visited rooms +navigator.createroom.create=Create room +navigator.navisel.popularrooms=Rooms with most visitors +navigator.tags=Tags +navigator.banned.title=You are banned from this room. +navigator.roomsettings.deleteroom.confirm.title=Confirm room deletion +navigator.roomsettings.passwordconfirm=Re-type password: +navigator.tab.me=Me +navigator.info.tradingallowed=Trading is allowed in this room. +navigator.cannonaddfavourite.full=Your favourite list is full. +navigator.clearsearchresults=Clear results +navigator.createroom.chooselayout=Choose +navigator.doorbell.button.cancel.entering=Cancel entering the room +navigator.eventsettings.end=End +navigator.navibutton.6=My Favourites +room.queue.error.e1=This room is currently available only to Habbos participating to the event. +navigator.navisel.myfriendsrooms=Rooms owned by my friends +navigator.createroom.roomnameinfo=Room name +poll_offer_later=Later +poll_question_number=Question %number%/%count% +poll_offer_title=Poll +poll_cancel_confirm_long=Are you sure you want to stop answering the poll? You can't continue later. +poll_cancel_confirm_short=Stop answering? +poll_offer_window=Poll +poll_thanks_title=Thanks! +poll_question_title=Question +poll_alert_answer_missing=Please give an answer +poll_cancel_confirm_title=Cancel poll +inventory.furni.item.song_disk_author="%name%" by %author% +inventory.trading.info.already_open=You are already trading with someone and you cannot start a new trade. +inventory.furni=Furniture +inventory.badges.wearbadge=Wear badge +inventory.trading.accept=Accept trade +inventory.trading.minimized.continue_trade=Continue +inventory.trading.modify=Modify trade +inventory.furni.tab.wall=Wall +inventory.furni.placetoroom=Place to room +inventory.trading.areoffering=are offering +inventory.trading.offer=Offer +inventory.purse.creditbalance=Credits: %balance% +inventory.effects.active=This effect is activated. Time left %timeleft%/%duration%. You have %itemcount% pieces of these. +inventory.furni.item.floor.desc=Set this to the current room +inventory.purse.pixelbalance=Pixels: %balance% +inventory.trading.confirm=Confirm +inventory.purse.clubdays=Habbo Club: %months%m %days%d +inventory.badges.clearbadge=Clear badge +inventory.trading.warning.other_not_offering=The other Habbo has not put anything into trade. This might be a scamming attempt! +inventory.trading.warning.own_account_disabled=This account does not have trading in use. You can receive items from other users but cannot give them anything. Check your trading settings and make sure your email-address is activated. +inventory.trading.countdown=Please wait... %counter% +inventory.badges.defaultdescription=Here are your badges. Select the ones that you want to wear and then save the selection. +inventory.furni.preview.tradeable_amount=You have this many items that can be traded +inventory.furni.item.landscape.name=Landscape +inventory.trading.minimized.trade_in_progress=Trade in progress +inventory.trading.notification.title=Trading Notification +inventory.trading.info.waiting=Waiting for other user to confirm the trade. +inventory.effects.inactive=This effect is not yet activated. One item last for %duration%, once activated. You have %itemcount% pieces of these. +inventory.furni.preview.recyclable_amount=You have this many items that can be recycled +inventory.furni.item.wallpaper.name=Wallpaper +inventory.effects.defaultdescription=No effect is selected. Buy effects from the catalogue and activate them here. Then you can select which one to use from the Me Menu. +inventory.furni.item.wallpaper.desc=Set this to the current room +inventory.title=Inventory +inventory.achievements=Achievements +inventory.badges.savebadges=Save settings +inventory.trading.isoffering=is offering +inventory.trading.info.confirm=These are the final offers. Please confirm the trade. +inventory.trading.other=Other +inventory.trading.info.add=Add items to box. +inventory.trading.warning.both_accounts_disabled=Trading is not in use for either of you, check your trading settings. +inventory.badges.inactivebadges=My badges +inventory.furni.item.landscape.desc=Set this to the current room +inventory.furni.preview.not_tradeable=None of these items are tradeable +inventory.furni.preview.not_recyclable=None of these items are recyclable +inventory.trading.warning.others_account_disabled=This user does not have trading in use. You can give him/her items but he can't give you anything in return. +inventory.effects=Effects +inventory.trading.you=You +inventory.badges=Badges +inventory.furni.tab.floor=Floor +inventory.badges.activebadges=Wearing +inventory.furni.item.floor.name=Floor +inventory.trading.info.closed=Other user cancelled the trade. +poster_1000_desc=The Noble and Silver Show +poster_1000_name=Comedy Poster +poster_1001_desc=even walls have ears +poster_1001_name=Prince Charles Poster +poster_1002_desc=For our UK Habbos. +poster_1002_name=Queen Mum Poster +poster_1003_desc=The lovely Isles for your wall. +poster_1003_name=UK Map +poster_1004_desc=Celebrate with us +poster_1004_name=Eid Mubarak Poster +poster_1005_desc=The muscly movie hero. +poster_1005_name=Johnny Squabble +poster_1006_desc=The eyes follow you... +poster_1006_name=Jack-o-Lantern +poster_10_desc=A beautiful sunset. +poster_10_name=Lapland Poster +poster_11_desc=For the accomplished Habbo. +poster_11_name=Certificate +poster_12_desc=Skyscrapers at night. +poster_12_name=Skyline Poster +poster_13_desc=Skyscrapers in black and white. +poster_13_name=BW Skyline Poster +poster_14_desc=A truly cunning design. +poster_14_name=Fox Poster +poster_15_desc=Marvellous mountains. +poster_15_name=Himalaya Poster +poster_16_desc=High security for your room. +poster_16_name=Bars +poster_17_desc=Flutter by. +poster_17_name=Butterfly Cabinet 1 +poster_18_desc=Flutter by. +poster_18_name=Butterfly Cabinet 2 +poster_19_desc=Trying to get in or out? +poster_19_name=Hole In The Wall +poster_1_desc=Behold the root of thine genealogy! +poster_1_name=Ancestress +poster_2000_desc=You know where to put it. +poster_2000_name=Map of Finland +poster_2001_desc=Not to be worn. +poster_2001_name=Rug on the Wall +poster_2002_desc=Whoever he is he looks important. +poster_2002_name=Guy With Glasses +poster_2003_desc=Carlos, diskotappaja +poster_2003_name=Carlos +poster_2004_desc=Every little thing is gonna be alright +poster_2004_name=Rastaman Poster +poster_2005_desc=Infobus +poster_2005_name=Infobus +poster_2006_desc=The legendary DJ himself! +poster_2006_name=DJ Throne +poster_2007_desc=The FATHER of Habbo Hotel! +poster_2007_name=The Father of Habbo +poster_2008_desc=Got Frog? +poster_2008_name=Habbo Cola Poster +poster_20_desc=A new use for carrots! +poster_20_name=Snowman Poster +poster_21_desc=See that halo gleam! +poster_21_name=Angel Poster +poster_22_desc=A chilly snowy scene +poster_22_name=Winter Wonderland +poster_23_desc=Ho Ho Ho! +poster_23_name=Santa Poster +poster_24_desc=Following the star! +poster_24_name=Three Wise Men Poster +poster_25_desc=Doing a hard night's work +poster_25_name=Reindeer Poster +poster_26_desc=Hung yours up yet? +poster_26_name=Stocking +poster_27_desc=Deck the halls! +poster_27_name=Holly Garland +poster_28_desc=A touch of festive sparkle +poster_28_name=Tinsel (silver) +poster_29_desc=A touch of festive sparkle +poster_29_name=Tinsel (gold) +poster_2_desc=Take pride in your veg! +poster_2_name=Carrot Plaque +poster_30_desc=Pucker up +poster_30_name=Mistletoe +poster_31_desc=Pure and unbridled nu-metal. +poster_31_name=System of a Ban +poster_32_desc=Om Shanti - peace to all. +poster_32_name=Shiva Poster +poster_33_desc=We can't bear to lose them. +poster_33_name=Save the Panda +poster_34_desc=Habbo-punk for the never-agreeing. +poster_34_name=Scamme´d +poster_35_desc=The hotel's girlband. Dream on! +poster_35_name=The Habbo Babes 1 +poster_36_desc=The hotel's girlband. Dream on! +poster_36_name=The Habbo Babes 2 +poster_37_desc=The hotel's girlband. Dream on! +poster_37_name=The Habbo Babes 3 +poster_38_desc=Power and fury for reeeally tough Habbos! +poster_38_name=Smiling Headbangers +poster_39_desc=The rock masters of virtual music. +poster_39_name=The Screaming Furnies +poster_3_desc=Smells fishy looks cool. +poster_3_name=Fish Plaque +poster_40_desc=The one and only. Adore her! +poster_40_name=Bonnie Blonde +poster_41_desc=For the best music-makers +poster_41_name=Habbo Golden Record +poster_42_desc=Not something you want to run into +poster_42_name=Spiderweb +poster_43_desc=Shake, rattle and roll +poster_43_name=Chains +poster_44_desc=Beware the curse... +poster_44_name=Mummy +poster_45_desc=Needs a few more Habburgers +poster_45_name=Skeleton +poster_46_desc=Twinkle, twinkle +poster_46_name=Small gold star +poster_47_desc=Twinkle, twinkle +poster_47_name=Small silver star +poster_48_desc=All that glitters... +poster_48_name=Large gold star +poster_49_desc=All that glitters... +poster_49_name=Large silver star +poster_4_desc=Fake of course! +poster_4_name=Bear Plaque +poster_500_desc=Hang it proudly! +poster_500_name=The UK Flag +poster_501_desc=For pirates everywhere +poster_501_name=Jolly Roger +poster_502_desc=Hang it proudly! +poster_502_name=The USA Flag +poster_503_desc=Hang it proudly! +poster_503_name=The Swiss Flag +poster_504_desc=Hang it proudly! +poster_504_name=The German Flag +poster_505_desc=Hang it proudly! +poster_505_name=The Canadian Flag +poster_506_desc=Hang it proudly! +poster_506_name=The Finnish Flag +poster_507_desc=Hang it proudly! +poster_507_name=The French Flag +poster_508_desc=Hang it proudly! +poster_508_name=The Spanish Flag +poster_509_desc=Hang it proudly! +poster_509_name=The Jamaican Flag +poster_50_desc=flap, flap, screech, screech... +poster_50_name=Bat Poster +poster_510_desc=Hang it proudly! +poster_510_name=The Italian Flag +poster_511_desc=Hang it proudly! +poster_511_name=The Dutch Flag +poster_512_desc=Hang it proudly! +poster_512_name=The Irish Flag +poster_513_desc=Hang it proudly! +poster_513_name=The Australian Flag +poster_514_desc=Hang it proudly! +poster_514_name=The EU Flag +poster_515_desc=Hang it proudly! +poster_515_name=The Swedish Flag +poster_516_desc=Hang it proudly! +poster_516_name=The English Flag +poster_517_desc=Hang it proudly! +poster_517_name=The Scottish Flag +poster_518_desc=Hang it proudly! +poster_518_name=The Welsh Flag +poster_51_desc=2 points for every basket +poster_51_name=Basketball Hoop +poster_520_desc=Every color for everyone +poster_520_name=The Rainbow Flag +poster_521_desc=Hang it proudly! +poster_521_name=The Brazilian Flag +poster_522_desc=Hang it proudly! +poster_522_name=The Japanese Flag +poster_523_desc=Hang it proudly! +poster_523_name=The Indian Flag +poster_52_desc=Get sporty! +poster_52_name=Hockey Stick +poster_53_desc=Get sporty! +poster_53_name=Hockey Stick +poster_54_desc=Get sporty! +poster_54_name=Hockey Stick +poster_55_desc=For the Habbo Tree-huggers. +poster_55_name=Tree Poster +poster_56_desc=Do the hustle! +poster_56_name=Disco Sign +poster_57_desc=With a steady hand and a focused mind. +poster_57_name=Chinese Calligraphy +poster_58_desc=Choose your blessing! +poster_58_name=Chinese Red Knots +poster_59_desc=Torch - it gives you some light +poster_59_name=Torch +poster_5_desc=Quacking good design! +poster_5_name=Duck Poster +poster_6_desc=But is it the right way up? +poster_6_name=Abstract Poster +poster_7_desc=for emergencies only +poster_7_name=Hammer Cabinet +poster_83_desc=Pöllö huhuilee, huhuu! +poster_83_name=Pöllö huhuilee +poster_8_desc=Habbos come in all colors +poster_8_name=Habbo Colors Poster +poster_9_desc=do your bit for the environment +poster_9_name=Rainforest Poster +hubu.info=Welcome to the Infobus! The next Infobus event is on 5th July 2020 @ 7PM BST - this session is all about Internet Safety! Check back regularly for the latest Infobus sessions on a range of topics including online safety, scams and using Habbo. In the meantime, you can access our FAQs on the link below: +hubu.info.link2=Habbo FAQs +hubu.info.url2=http://www.habbo.co.uk/help +hubu.info.url1=http://www.habbo.co.uk/help +hubu.info.link1=Infobus Information +hubu.info.title=Infobus +hubu.dialog.title=Infobus - Next Event +connection.error.id.desc=Something went wrong when talking with the game server. Received error: %id% +connection.login.name=Name +connection.login.password=Password +connection.login.title=Sign in +connection.login.login=Sign in +connection.login.error.-400.desc=Connecting to the server failed +connection.login.useTicket=Use SSO Ticket +connection.error.id.title=Error +connection.login.error.-3.desc=Authentication failed +generic.ok=Ok +generic.close=Close +generic.cancel=Cancel +generic.back=Back +generic.search=Search +catalog.purchase.confirmation.dialog.remaining=You will have %remaining% in your Purse after purchasing this. +catalog.purchase.confirmation.dialog.costs=%offer_name% costs %price%. +ctlg_spaces_wall=Wall +purse_coins=Credits +catalog.alert.published.title=Refresh your catalogue and open it again. +recycler.prizes.category.3=Arcane +catalog.purchase.confirmation.dialog.amount=You have %amount%. +catalog.page.club=Buy Habbo Club +catalog.chooseproduct=Choose Product +catalog.purse.creditbalance=Credits: %balance% >> +catalog.voucher.empty.title=Voucher code missing +catalog_selectproduct=Select an item +recycler.alert.trading=Recycling cannot begin while you are trading. Please close the safe trading box before recycling. +recycler.prizes.odds.3=%odds% chances to get one of these. +catalog.purchase.confirmation.dialog.title=Order Info +purse.redeem.code.failed_technical=The code you entered is not valid. Please remember that codes are always written in lower case and never include letters i, l, o, w. +catalog.alert.notenough.title=Not enough credits +cancel=Cancel +catalog.title=Catalog +shopping_asagift=Gift this to another user +recycler.prizes.category.4=Phenomenal +catalog.purchase.price.pixels=%pixels% pixels +catalog.alert.voucherredeem.ok.title=Voucher processed +catalog.alert.petname.empty=Please enter a name for your pet! +recycler.prizes.category.1=Common +purse_buy_coins=Buy Credits +ctlg_spaces_colour=Colour +catalog.purchase.confirmation.dialog.buyasgift.greetings.info=Type your greetings here (don't forget to put your name!): +recycler.alert.non.recyclable=This furniture is not recyclable. +catalog.alert.voucherredeem.error.description.3=This voucher must be redeemed in Habbo Web. +catalog.purchase.price.credits+pixels=%credits% credit(s) + %pixels% pixels +catalog_giftfor=Gift recipient +ctlg_spaces_floor=Floor +catalog.alert.petname.length=Pet name is too long. +catalog.redeem.dialog.button.exchange=Exchange +catalog.alert.purchaseerror.title=There was an error with your purchase. Try again. +catalog.choosecolour=Choose Colour +ctlg_spaces_preview=Preview +catalog.alert.notenough.pixels.description=You don't have enough pixels. +catalog.alert.voucherredeem.error.description=We could not process your voucher code. Please retry and check the spelling extra carefully. +catalog.purchase.confirmation.dialog.price.none=Nothing +catalog.alert.published.description=Something new has been added to the catalogue. +catalog.alert.voucherredeem.error.description.0=The code you entered is not valid, please check it and try again. +catalog.purchase.price.none=Free! +purse_voucherbutton=Redeem Credits +catalog.alert.notenough.credits.description=You don't have enough Credits to purchase this item! Click OK button below to see different ways of getting Credits. +catalog.alert.voucherredeem.error.description.1=Technical error! Irredeemable voucher code or the code has already been used. Please note that codes are always written in lower case and never include letters i, l, o, w. +ctlg_spaces_landscape=Landscape +recycler.prizes.odds.5=Dream on... you have only %odds% chance to get this. +catalog.alert.voucherredeem.ok.description=Voucher process succeeded! Credit balance updated. +catalog.voucher.empty.desc=You didn't seem to enter a voucher code +recycler.info.closed=Recycler is closed at the moment. Please check back later to recycle your Furniture. +buy=Buy +catalog.alert.external.link.title=Link to the website +catalog_typeurname=Please type your name +catalog.alert.purchasenotallowed.hc.description=You have to be in the Habbo Club to be able to buy this. +recycler.prizes.category.2=Uncommon +catalog.purchase.price.credits=%credits% credit(s) +catalog.page.specialeffects=Special Effects +credits=Credits +catalog.purchase.confirmation.dialog.price.pixels=%pixels% pixels +catalog.alert.notenough.creditsandpixels.description=You don't have enough credits and pixels to purchase this product. Click 'ok' to see different ways of getting credits. +catalog.purse.pixelbalance=Pixels: %balance% >> +redeem=Redeem +catalog.recycler.button.recycle=Recycle +buy_andwear=Buy and wear +recycler.alert.privateroom=You need to go to a private room to use the recycler. +catalog.alert.external.link.desc=Link opens to a webpage +recycler.info.finished=Recycling is complete. You have made a great environmentally friendly decision. All the Recycled items you received have been made from old items which helps to save natural resources and reduce pollution. +recycler.prizes.odds.1=You can always get one of these if all else fails. +catalog.comingsoon=(Coming soon) +catalog.purse.clubdays=HC: %months%m %days%d >> +catalog.alert.voucherredeem.error.title=Error processing voucher +catalog.alert.petname.chars=Name contained forbidden characters, try again. +catalog.purchase.confirmation.dialog.price.credits+pixels=%credits% credit(s) + %pixels% pixels +catalog.redeem.dialog.title=Credit Exchange +recycler.prizes.odds.2=You have %odds% chance to get one of these. +catalog.purse.club.join=Join HC >> +catalog.purchase.confirmation.dialog.price.credits=%credits% credit(s) +catalog.alert.voucherredeem.ok.description.furni=Voucher process succeeded! You got the following furniture: %productName%, %productDescription% +recycler.alert.timeout=You have to wait %minutes% minutes and %seconds% seconds before you can recycle again. +catalog.alert.purchasenotallowed.title=Sorry, this item cannot be bought. +catelog.redeem.dialog.readmore.description=Read more about coin sets >> +purse_youhave=You have +recycler.info.ready=Drag 5 items to the boxes below and click recycle. Recyclable items display a recyclable tag in your inventory. Check out the prizes and the instructions for recycling before you recycle. +recycler.prizes.category.5=Urban Legend +catalog.alert.purchasenotallowed.unknown.description=Sorry, but you are doing something illegal. +recycler.prizes.odds.4=%odds% chances to get this one. Good luck! +catalog.purchase.confirmation.dialog.buyasgift.checkbox=This is a gift for: +catalog.alert.purchaseerror.description=There was a problem processing your purchase. Please retry. +catalog.alert.petname.bobba=Name contained forbidden words, try again. +catalog.alert.recycler.inventory=You have to pick up the furniture from the room to your inventory before you can put it in the recycler! +ctlg_spaces_pattern=Pattern +pet.mood.5=Joyful +pet.enrg.9=Tireless +pet.enrg.5=Rabid +pet.race.0.020=Patchy Pup +pet.enrg.6=Active +pet.age=Age: +pet.race.1.024=Cat Burglar +pet.race.0.016=Murmurin' Minimastiff +pet.race.0.009=Hound of Hull +pet.race.0.018=Bushy Woofer +pet.mood.2=Blue +pet.race.2.007=Pretty Pui Pui +pet.race.0.005=Paws Forethought +pet.enrg.0=Tired +pet.hunger=Hunger: +pet.thirst.3=Not thirsty +pet.frnd.5=Friendly +pet.race.0.014=Whiffy Woofy +pet.race.2.009=Swampy Siamese +pet.race.2.011=Petty Petsuchos +pet.race.1.019=Bobcat Wailer +pet.frnd.8=Loving +pet.race.1.003=Hidden Clause +pet.race.0.013=Mangy Mutt +pet.thirst.1=Parched +pet.race.1.010=Wannabe Wildcat +pet.race.1.002=Lesser Spotted Longhair +pet.frnd.9=Loyal +pet.frnd.3=Cool +pet.mood.3=Contented +pet.race.0.001=Habbo Husky +pet.frnd.2=Suspicious +pet.mood.0=Miserable +pet.mood=Happiness: +pet.enrg.11=Nutcase +pet.race.0.022=Schnitzel Snatcher +pet.race.1.007=Burmese Buddy +pet.frnd.7=Affectionate +pet.race.1.008=Mad Mouser +pet.race.0.021=Loyal Labrador +pet.frnd.4=Calm +pet.race.0.002=Joe Cocker Spaniel +pet.race.1.009=Scaredy Kat +pet.thirst.2=Thirsty +pet.race.0.012=Tawny Bleugh +pet.race.1.006=Titchy Tiger +pet.race.0.015=Pixie Poodle +pet.hunger.1=Hungry +pet.frnd.6=Warm +pet.race.0.004=Droopy of Pawford +pet.hunger.0=Empty +pet.race.2.001=Krazy Krokodilos +pet.race.0.003=Rescue Bernard +pet.frnd.10=Adoring +pet.race.0.011=Lappy Lassie +pet.race.2.000=Endangered Albino +pet.race.1.011=Egyptian Angora +pet.race.1.004=Soft-Toed Sneaker +pet.race.2.006=Confused Croc +pet.enrg.1=Slow +pet.hunger.2=Rumbling +pet.race.1.005=Cat Astroflea +pet.race.0.008=Springy Spaniel +pet.thirst=Thirst: +pet.race.1.018=Trusting Tabby +pet.race.1.012=Freckled Feral +pet.hunger.4=Satisfied +pet.race.2.005=Galled Gator +pet.race.2.004=Dirty Dundee +pet.race.1.015=Haughty House Pet +pet.race.0.007=Slobber Don +pet.hunger.3=Peckish +pet.race.1.016=Curiosity - The Return! +pet.race.2.010=Giggly Go-go +pet.race.0.024=Black-eyed Boxer +pet.enrg.2=Sluggish +pet.thirst.0=Gasping +pet.race.2.002=Nile Dile +pet.frnd.11=Devoted +pet.race.1.017=Furry Friend +pet.race.2.008=Indifferent +pet.mood.4=Happy +pet.race.0.006=Stripy Setter +pet.race.1.022=Matted Moggy +pet.enrg.4=Relaxed +pet.race.1.014=Bushy Bobtail +pet.mood.6=Ecstatic +pet.race.0.019=Tiny Terrier +pet.race.1.013=Felis Catus Allergicus +pet.hunger.5=Full +pet.race.0.000=Yappy Yorkie +pet.race.2.003=Silly Sobek +pet.race.0.023=Dotty Dalmatian +pet.race.0.017=Speckled Sheepdog +pet.enrg.8=Lively +pet.enrg.3=Lazy +pet.race.1.001=Purr-Sian +pet.nature=Nature: +pet.race.1.023=Indoor Alley Cat +pet.race.1.000=Sleepy Siamese +pet.frnd.1=Angry +pet.race.0.010=Furry McScottie +pet.frnd.0=Hostile +pet.enrg.10=Mad +pet.race.1.021=Fabulous Feline +pet.enrg.7=Energetic +pet.mood.1=Depressed +pet.race.1.020=Caterwaul Kitty +pet.hunger.6=Stuffed +avatareditor.habboclub.info=Habbo Club is required in order to be able to use the wardrobe. +avatareditor.generic.boy=Boy +avatareditor.promo.supportedphones.title=Supported phones +avatareditor.promo.supportedphones=Habbo Club purchasing works on Virgin, Tesco Network, Vodafone UK, O2, T-Mobile, 3 and Orange phones +avatareditor.hotlooks.title=Hot Looks from the Hotel +avatareditor.hotlooks.choose=Click to choose +avatar.editor.character.update.url=http://%predefined%/profile/characterupdate +avatareditor.wardrobe.title=My Wardrobe +avatareditor.wardrobe.choose=Click to choose a look +avatareditor.habboclub.link=Get Habbo Club Membership +avatareditor.promo.moreinfo=More info +avatareditor.promo.instructions=1. Text "HABBO" to 78881.\n\n2. Enter the special code to the form below and press redeem. +avatareditor.hotlooks.more=More Looks +avatareditor.habboclub.title=Habbo Club Required +avatareditor.title=Change Your Looks +avatareditor.promo.title=Want more clothes? Get Habbo Club for 31 days & 15 credits for �3 +avatareditor.promo.redeem=Redeem my club +avatareditor.cancel=Cancel +avatareditor.promo.showphones=Show supported phones +avatareditor.save=Save changes +avatareditor.generic.girl=Girl +avatareditor.wardrobe.store=Click to store your outfit +friendlist.search.friendscaption=Friends (%cnt%) : +friendlist.tip.remove=Remove friend +friendlist.requests.acceptall=Accept all +friendlist.error.friend_requests_disabled=Cannot send friend request, user is not accepting new friends. +friendlist.tip.mail=Send minimail +friendlist.friends.offlinecaption=Offline Friends +friendlist.tip.home=Home page +friendlist.invite.summary=Inviting %count% people to this room. +friendlist.weblinkinfo=Link opened to web page +friendlist.request.accepted=Accepted +friendlist.alert.title=Notice! +friendlist.followerror.notfriend=The user you tried to follow is not on your friends list anymore, so you cannot follow him/her. +friendlist.tip.follow=Follow +friendlist.friendrequestsent.title=Notice! +friendlist.tip.preferences=Edit categories +friendlist.tip.compose=Send minimail +friendlist.followerror.hotelview=Your friend is currently not in any room, so you cannot follow him/her. +friendlist.removefriendconfirm.title=Confirm remove +friendlist.settings=Settings +friendlist.followerror.offline=Your friend is offline. +friendlist.tip.invite=Invite friends +friendlist.error.friendlistlimitofrequester=Cannot send friend request as their friend list is full. +friendlist.tip.addfriend=Send friend request +friendlist.error.requestnotfound=Cannot send friend request, friend request was not found! +friendlist.tip.decline=Decline +friendlist.friendrequestsent.text=%user_name% has been sent your Friend Request. (S)he will be added into your Friends List if (s)he accepts it. +friendlist.tip.declineall=Decline all +friendlist.invite.send=Send +friendlist.tip.im=Send a message +friendlist.requests.dismissall=Decline all +friendlist.invite.emptyalert.text=Invite friends to this room: +friendlist.request.declined=Declined +friendlist.tip.tab.2=Friend requests +friendlist.tip.searchstr=Enter search +friendlist.tab.friendrequests=Friend Requests +friendlist.avatarpopup.lastaccess=Last visit: %last_access% +friendlist.tip.inbox=Minimail inbox +friendlist.friends=Friends +friendlist.tip.search=Search users +friendlist.search.noothersfound=No users found +friendlist.requests.norequests=No friend requests +friendlist.invite.note=Make sure you can be followed. +friendlist.followerror.prevented=Your friend has prevented others from following him/her. +friendlist.listfull.title=Notice! +friendlist.tip.accept=Accept +friendlist.error.friendlistownlimit=Cannot send friend request, your friend list is full. +friendlist.search.nofriendsfound=No friends found +friendlist.avatarpopup.online=Online +friendlist.listfull.text=Your friend list contains the maximum of %mylimit% Habbos, so you cannot add any more friends to the list. Members of Habbo Club can have up to %clublimit% friends in their list. +friendlist.tip.tab.1=Your friends +friendlist.search.otherscaption=Other Habbos (%cnt%) : +friendlist.removefriendconfirm.userlist=Remove friends: %user_names%? +friendlist.invite.title=Invitation +friendlist.tip.acceptall=Accept all +friendlist.invite.emptyalert.title=Notice! +friendlist.request.failed=Failed +friendlist.tip.tab.3=Search for Habbos +widget.furni.ecotronbox.open=Open Box +widget.dimmer.type.checkbox=Background only +widget.furni.present.hc=You got a subscription to Habbo Club! +widget.memenu.activeeffects=Activate and use effects +widget.dimmer.button.off=Turn off +widget.memenu.dance4=The Rollie +widget.memenu.back=Back +widget.dimmer.button.apply=Apply to room +widgets.chatinput.mode.whisper=:tell +widget.memenu.myrooms=My Rooms +infostand.button.whisper=Whisper +widgets.doorbell.title=Doorbell +widget.memenu.clothes.add=Save outfits in the clothes editor and they'll appear here +widget.memenu.hc.long=HC %days%d %months%m +group.privileges=Privileges: %privileges% +widget.memenu.editavatar=Change Looks +group.homepage=Group homepage >> +widget.memenu.dance3=Duck Funk +group.window.title=Habbo Groups +room.loading=Please wait while loading the room. +widget.dimmer.button.on=Turn on +widget.memenu.effects=My Effects +widget.memenu.dance.stop=Stop Dancing +widget.memenu.dance1=Dance +widget.memenu.dance2=Pogo Mogo +widget.memenu.clothes.info=Join Habbo Club to quickly choose outfits in this menu. +group.owner=Owner +group.member=Member +widgets.chatinput.default=Click here to chat... +widgets.doorbell.info=Following users are ringing the doorbell: +widget.memenu.hc=HC %days%d +widgets.memenu.effects.active.timeleft=%time_left% +group.homepage.url=http://%predefined%/groups/%groupid%/id +widget.dimmer.tab.2=Preset 2 +widget.memenu.moreeffects=Buy more +widget.furni.ecotronbox.title=Ecotron box +widget.memenu.hc.join=Join HC! +widget.dimmer.info.off=Room dimmer is currently turned off. Turn it on to adjust the lighting of your room. +widget.furni.info.url=http://%predefined%//help/6 +widgets.chatinput.mode.speak=:speak +widgets.furniture.credit.redeem.value=This bag or bar contains %value% credits, you can redeem it now. +widget.dimmer.info=Room dimmer effect is previewed in your room. Apply the effect to the room to make other users see it too. +widget.memenu.dance=Dance +widget.dimmer.tab.3=Preset 3 +widget.furni.present.open=Open the present +ads.interstitial.tooltip=This is an advertisement. Clicking it will open another web page. +group.admin=Administrator +widget.furni.trophy.title=Trophy +widget.memenu.myclothes=Change Looks +widget.memenu.wave=Wave +widget.dimmer.tab.1=Preset 1 +widget.memenu.effects.info=You don't have any active effects. +Activate some or get more. +widgets.chatinput.mode.shout=:shout +widget.memenu.dance.clubinfo=Join Habbo Club to get more dance moves. +widget.memenu.badges=My badges +widget.dimmer.title=Room dimmer Controller +widget.furni.present.title=Present +group.room.link=Group's room: %room_name% >>> +chat.history.drag.tooltip=Drag this to display chat history +chat.input.alert.flood=You're typing too fast, don't flood the room! - %time% seconds remaining +info.comingsoon.text=Coming Soon! +info.comingsoon.caption=The feature is not yet available! +info.client.version=Version: %version% +mod.alert.link=More information >> +mod.alert.title=Message from Habbo Staff +mod.ban.title=You are banned! +room.error.cant_trade_stuff=You cannot place this in someone else's room! +room.error.guide.not.available=All guide bots are in use at this time. Please try again later! +room.error.cant_set_not_owner=You don't have rights to put furniture in here! +room.error.max_stickies=Only 50 stickies per room are allowed! +room.error.cant_set_item=You cannot place this item here. +room.error.guide.already.exists=A guide bot already exists in your room! +error.title=Error! +room.error.max_furniture=This room has the maximum amount of Furni. +room.error.max_pets=Too many pets in the room! +room.error.max_queuetiles=You can't fit more Habbo Rollers in this room! +room.error.max_soundfurni=You can only place one sound playing Furni per room. +handitem1=Tea +handitem28=sake +handitem44=Test Tube +handitem4=Ice-cream +handitem23=Beetroot Habbo Soda +handitem29=Tomato juice +handitem34=Kipperific! Yum Yum. +handitem15=Iced +handitem35=pink champagne! +handitem26=Calippo +handitem14=Filter +handitem100=Water +handitem13=Espresso +handitem101=Water +handitem9=Decaff +handitem30=Radioactive liquid +handitem19=Habbo Cola +handitem16=Cappuccino +handitem11=Mocha +handitem25=Love potion +handitem2=Juice +handitem8=Regular +handitem3=Carrot +handitem10=Latte +handitem24=Bubble juice from 1999 +handitem21=Hamburger +handitem7=Water +handitem20=Camera +handitem31=Pink Champagne +handitem27=Tea +handitem22=Lime Habbo Soda +handitem18=Tap +handitem5=Milk +handitem17=Java +handitem6=Blackcurrant +handitem41=Sumppi-kuppi +handitem12=Macchiato +handitem36=Pear +handitem37=Yummy peach +handitem38=Orange +handitem39=Pineapple +handitem45=Excited Moodi +handitem46=Happy Moodi +handitem47=Angry Moodi +handitem50=Bubble Juice Bottle +play_preview=Play preview +badge_desc_UK070=For winning an officially hosted game! +badge_name_UK070=Golden Duck +badge_name_DEV=Codebreaker +badge_desc_DEV= For guessing the room password +badge_name_DEX=Codebreaker Pro +badge_desc_DEX=For guessing the room password 2x +badge_name_DEW=Codebreaker Champion +badge_desc_DEW=For guessing the room password 3x +badge_name_HO1=Room of the Week +badge_desc_HO1=Winner of the Room of the Week competition +badge_name_DET=Room of the Week +badge_desc_DET=2nd place of the Room of the Week competition +badge_name_DEU=Room of the Week +badge_desc_DEU=3nd place of the Room of the Week competition +badge_name_FR019=Pro Gamer +badge_desc_FR019=I won an officially hosted game! +badge_name_DE039=Home Of The Week +badge_desc_DE039=I know how to design an amazing Habbo Home! +badge_name_PX01=StrayPixels Honorable Mention +badge_desc_PX01=I won honorable mention and all I got was this... badge. +badge_name_PX02=StrayPixels Gold +badge_desc_PX02=I won, I actually won ...once +badge_name_PX03=StrayPixels Jade +badge_desc_PX03=Three wins! I own your pixel soul. +badge_name_PX04=StrayPixels Diamond +badge_desc_PX04=brought to you by the number 5. Which is also how many wins I have. +badge_name_PX05=StrayPixels Circuit +badge_desc_PX05=On my seventh win the heavens opened up and this magical badge floated down. +badge_name_PX06=StrayPixels Full Pixel +badge_desc_PX06=I am the most epic winner of all time. ALL TIME! +badge_name_PX07=StrayPixels Hair Cube +badge_desc_PX07=I submitted a hair design for a StrayPixels theme! +badge_name_PX00=StrayPixels Theme +badge_desc_PX00=I sent in a theme for StrayPixels and they actually used it. Suckers. +badge_name_MRG00=Opening Day +badge_desc_MRG00=I joined this hotel on opening day. +badge_name_XM19=Xmas Tree +badge_desc_XM19=Awarded to everyone who visited Habbo during December 2019. Happy Christmas! +badge_name_Z64=Back So Soon +badge_desc_Z64=I survived the Great Wipe of 2019 +badge_name_GA1=Golden Gamer +badge_desc_GA1=You're looking at a hardcore gamer, baby! +badge_name_XM3=Rasta Santa +badge_desc_XM3=Rasta Santa was awarded during Christmas 2005. He visited the hotel again in December 2006. +badge_name_XMB=Mr. Frosty +badge_desc_XMB=Christmas 2019 Penguin Games. +badge_name_MRG01=Habbo Canada +badge_desc_MRG01=Remembering my Habbo roots! +badge_name_MRG02=Habbo USA +badge_desc_MRG02=Remembering my Habbo roots! +badge_name_MRG03=Habbo UK +badge_desc_MRG03=Remembering my Habbo roots! +badge_name_MRG04=Habbo Australia +badge_desc_MRG04=Remembering my Habbo roots! +badge_name_MRG05=Habbo SG +badge_desc_MRG05=Remembering my Habbo roots! +badge_name_BR5=Habbo Portugal +badge_desc_BR5=Remembering my Habbo roots! +badge_name_NL035=Habbo NL +badge_desc_NL035=Remembering my Habbo roots! +badge_name_ES005=Argentina +badge_desc_ES005=Remembering my Habbo roots! +badge_name_ES006=Bolivia +badge_desc_ES006=Remembering my Habbo roots! +badge_name_ES007=Chile +badge_desc_ES007=Remembering my Habbo roots! +badge_name_ES008=Colombia +badge_desc_ES008=Remembering my Habbo roots! +badge_name_ES009=Costa Rica +badge_desc_ES009=Remembering my Habbo roots! +badge_name_ES010=Equador +badge_desc_ES010=Remembering my Habbo roots! +badge_name_ES011=El Salvador +badge_desc_ES011=Remembering my Habbo roots! +badge_name_ES012=España +badge_desc_ES012=Remembering my Habbo roots! +badge_name_ES013=Honduras +badge_desc_ES013=Remembering my Habbo roots! +badge_name_ES014=México +badge_desc_ES014=Remembering my Habbo roots! +badge_name_ES015=Nicaragua +badge_desc_ES015=Remembering my Habbo roots! +badge_name_ES016=Panama +badge_desc_ES016=Remembering my Habbo roots! +badge_name_ES017=Paraguay +badge_desc_ES017=Remembering my Habbo roots! +badge_name_ES018=Peru +badge_desc_ES018=Remembering my Habbo roots! +badge_name_ES019=Uruguay +badge_desc_ES019=Remembering my Habbo roots! +badge_name_ES020=Venezuela +badge_desc_ES020=Remembering my Habbo roots! +badge_name_DE4=Österreich +badge_desc_DE4=Remembering my Habbo roots! +badge_name_DE5=Deutschland +badge_desc_DE5=Remembering my Habbo roots! +badge_name_BR003=Brazil +badge_desc_BR003=Remembering my Habbo roots! +badge_name_CH010=Help Desk +badge_desc_CH010=I'm helping at the official Help Desk! +badge_name_STOUT=Stout +badge_desc_STOUT=omg hou op x +badge_name_BE=Belgium +badge_desc_BE=Remembering my Habbo roots! +badge_name_DK=Denmark +badge_desc_DK=Remembering my Habbo roots! +badge_name_FI=Finland +badge_desc_FI=Remembering my Habbo roots! +badge_name_NO=Norway +badge_desc_NO=Remembering my Habbo roots! +badge_name_RU=Russia +badge_desc_RU=Remembering my Habbo roots! +badge_name_SE=Sweden +badge_desc_SE=Remembering my Habbo roots! +badge_name_WAA00=Waasa Fan! +badge_desc_WAA00=For celebrating the release of Waasa +badge_name_COC02=Coco Coordinator +badge_desc_COC02=Thanks for sending us your resort activity! +badge_name_COC04=Coco-Maniac +badge_desc_COC04=Having a hoot at the Coco Resort! +badge_name_COC03=Coco-Nut Inspector +badge_desc_COC03=For celebrating the release of Coco +badge_name_FRH=Habbo Fashion Week +badge_desc_FRH=For being a part of the Habbo Fashion Week. February 2020. +badge_name_UK071=Habbo Raceway +badge_desc_UK071=Dino Cup Winner. February 2020. +badge_name_Z01=Habbo Model +badge_desc_Z01=Habbo Fashion Week 2020 competition winner. +badge_name_VA014=Blingtastic! +badge_desc_VA014=For celebrating the release of Bling +badge_name_VA014=Blingtastic! +badge_desc_VA014=For celebrating the release of Bling +badge_name_VA012=Bling Master +badge_desc_VA012=Habbo Bling 2020 room competition winner. +badge_name_VA013=Bling Week +badge_desc_VA013=For being a part of the Habbo Bling week. February/March 2020. +badge_name_UK176=ChildLine Group +badge_desc_UK176=I am a member of the ChildLine group +badge_name_UK111=ChildLine Anti-Bullying Badge +badge_desc_UK111=Take action together against bullying! +badge_name_UK175=ChildLine Self-harm Awarness +badge_desc_UK175=I correctly answered the ChildLine Self-harm Awareness Quiz! +badge_name_NEC=Trax Master +badge_desc_NEC=For winning the Trax DJ Party Competition +badge_name_NEJ=Good Party Host +badge_desc_NEJ=For participating in the Trax DJ Party Competition +badge_name_LC7=Little Crab +badge_desc_LC7=For participating in the Aquarium Room Competition +badge_name_LC8=Golden Crab +badge_desc_LC8=For winning the Aquarium Room Competition +badge_name_DS6=Galaxy Maze +badge_desc_DS6=I completed the Habbo Galaxies Maze! +badge_name_ES68H=#StayInHabbo +badge_desc_ES68H=We're all in this together, and we, as a community, stand together. +badge_name_WH8=HABBOTICS Pharm. +badge_desc_WH8=You received the cure to the virus 2020 +badge_name_UK1=Infobus Session April +badge_desc_UK1=For entering our Infobus Session in April 2020. +badge_name_S10=Golden Medal +badge_desc_S10=Given to Habbos who won one of the events or tournaments during #StayInHabbo 2020. +badge_name_UST=Oldschool Amateur +badge_desc_UST=For participating in the oldschool room competition. April 2020. +badge_name_MAL03=Habbo Mall (3/3) +badge_desc_MAL03=Secret Mall Achievement +badge_name_MAL02=Habbo Mall (2/3) +badge_desc_MAL02=I found the Malls Hidden Room +badge_name_MAL01=Habbo Mall (1/3) +badge_desc_MAL01=I discovered the Habbo Mall +badge_name_HM1=Mall Builder +badge_desc_HM1=Built a room for the Habbo Mall +badge_name_UK824=HONK! +badge_desc_UK824=I won the Duck in Deal or No Deal! +badge_name_HBX1=Habbox.CO Re-Launch +badge_desc_HBX1=I joined Habbox for their Re-Launch! +badge_name_HBX2=Takeshi's Castle +badge_desc_HBX2=I won a round of Takeshi's Castle! +badge_name_PT737=Infobus Session April +badge_desc_PT737=For entering our Infobus Session in April 2020. +badge_name_FAN2=Fansite Values Staff +badge_desc_FAN2=I contribute to the Rare Values on a Habbo Fansite! +badge_name_FAN3=Fansite Event Staff +badge_desc_FAN3=I plan and host events for a Habbo Fansite! +badge_name_FAN4=Ex-Fansite Staff +badge_desc_FAN4=I was a Staff Member at a Habbo Fansite! +badge_name_SIM1=Yellow Team Winner +badge_desc_SIM1=I won an Official Sims Game! +badge_name_SIM2=Red Team Winner +badge_desc_SIM2=I won an Official Sims Game! +badge_name_SIM3=Green Team Winner +badge_desc_SIM3=I won an Official Sims Game! +badge_name_SIM4=Blue Team Winner +badge_desc_SIM4=I won an Official Sims Game! +badge_name_IT482=Bingo! (1/4) +badge_desc_IT482=I've won 1 game of Bingo! +badge_name_IT483=Bingo! (2/4) +badge_desc_IT483=I've won 2 games of Bingo! +badge_name_IT484=Bingo! (3/4) +badge_desc_IT484=I've won 3 games of Bingo! +badge_name_IT485=Bingo! (4/4) +badge_desc_IT485=I've won 4 games of Bingo! +badge_name_RE2=Reach Out! Winner +badge_desc_RE2=Reach Out! Competition Winners +badge_name_EGG20=Easter Egg Hunt 2020 +badge_desc_EGG20=Completed the Easter Egg Hunt! +badge_name_EGG22=Easter 2020 +badge_desc_EGG22=Happy Easter! +badge_name_EAB=Easter Bunny +badge_desc_EAB=I found the Bunny! +badge_name_EGG25=You!, Easter Eggs! +badge_desc_EGG25=I found the Bunny's Easter Eggs in a Users Room! +badge_name_EGG26=Farewell, Mr. Bunny +badge_desc_EGG26=I said goodbye to the Easter Bunny, April 2020. +badge_name_EST04=Easter Codebreaker +badge_desc_EST04=I guessed the Secret Easter Codeword! +badge_name_DE511=LGBT+ Pride +badge_desc_DE511=Celebrating equality, love, understanding and tolerance in the LGBT+ Lounge. +badge_name_TAKE1=Takeshi's Castle (1/3) +badge_desc_TAKE1=I won a round of Takeshi's Castle. +badge_name_TAKE5=Takeshi's Castle (2/3) +badge_desc_TAKE5=I won 5 games of Takeshi's Castle. +badge_name_TAKE10=Takeshi's Castle (3/3) +badge_desc_TAKE10=I won 10 games of Takeshi's Castle. +badge_name_SGD=Mall Detective (1/2) +badge_desc_SGD=I'm hunting the clues... +badge_name_CH3=Habbo Switzerland +badge_desc_CH3=Remembering my Habbo roots! +badge_name_SWISS=Switzerland +badge_desc_SWISS=Remembering my Habbo roots! +badge_name_NL249=Penguin Rescue +badge_desc_NL249=I joined Habbo during Earth Day 2020 +badge_name_DOND1=Deal or No Deal! +badge_desc_DOND1=I won the Grand Prize in Deal or No Deal! +badge_name_MAYY4=4/5 +badge_desc_MAYY4=May the Fourth be with You! +badge_name_BR075=Q&A #1 +badge_desc_BR075=Attended a Staff Q&A Session +badge_name_ES467=Earth Week Infobus +badge_desc_ES467=Joined Habbo Staff for Special Infobus session +badge_name_ES819=Earth Week Quiz +badge_desc_ES819=Completed the Earth Week Quiz! +badge_name_FFBAN=Falling Furni Winner +badge_desc_FFBAN=I won a game of Falling Furni! +badge_name_DRA6=Don't Roll a 6 +badge_desc_DRA6=I won a game of Don't Roll a 6! +badge_name_NT081=BB #EventsWeek +badge_desc_NT081=I won a Game of Battle Ball during #EventsWeek +badge_name_IT480=Bank Game +badge_desc_IT480=I won an Official Bank Game! +badge_name_ITC54=LGBT+ Infobus +badge_desc_ITC54=I attended the LGBT+ Infobus session! +badge_name_US081=Babybus +badge_desc_US081=Contributed to an Infobus debating session! +badge_name_100O=100 Peak +badge_desc_100O=I helped get 100 Users Online! +badge_name_ESO=Chica Tampax +badge_desc_ESO=Visted the Tampax Event 2020! +badge_name_CLUBS=Oops! +badge_desc_CLUBS=In memory of the Habbo Club Massacre. May 2020. +badge_name_ALP23=Lockdown 2020 +badge_desc_ALP23=What a bummer... +badge_name_CLUBG=Big Oops! +badge_desc_CLUBG=In memory of the Habbo Club Massacre. May 2020. +badge_name_UK037=Britney Spears +badge_desc_UK037=Joined Britney Spears for her Hotel Debut! +badge_name_DE35A=Ban Hammer +badge_desc_DE35A=Moderation makes the world go round... +badge_name_RBH=Real Bingo Hours +badge_desc_RBH=??? +badge_name_BRIT1=She visited! +badge_desc_BRIT1=Britney Spears visited my room. +badge_name_DE182=She answered! +badge_desc_DE182=Britney Spears answered my question. +badge_name_FRIDG=Elegant Carrot +badge_desc_FRIDG=I played and won at the Zana Kick memorial game. +badge_name_GAMB=Gambler +badge_desc_GAMB=Jack of all trades, master of none. +badge_name_RARE1=Gold Rare Hoarder! +badge_desc_RARE1=Still not enough rares! +badge_name_RARE2=Silver Rare Hoarder! +badge_desc_RARE2=Still not enough rares! +badge_name_RARE3=Bronze Rare Hoarder! +badge_desc_RARE3=Still not enough rares! +badge_name_TACO=Tacos Tuesday +badge_desc_TACO=We can't get enough of them! +badge_name_WRITE=King Of Writing +badge_desc_WRITE=You are an authentic writer! +badge_name_ROTW1=ROTW 1st Place +badge_desc_ROTW1=You're a winner baby! +badge_name_ROTW2=ROTW 2nd Place +badge_desc_ROTW2=So close... +badge_name_ROTW3=ROTW 3rd Place +badge_desc_ROTW3=Nearly there... +badge_name_IT021=#IDAHOBIT +badge_desc_IT021=International Day Against Homophobia, Biphobia and Transphobia +badge_name_TC054=Eid Mubarak 2020 +badge_desc_TC054=Celebrating Eid with ClassicHabbo! +badge_name_ES9=Calippo Summer +badge_desc_ES9=Joined ClassicHabbo for a Calippo Summer +badge_name_ES8=Calippo King +badge_desc_ES8=Won the Calippo Summer Giveaway +badge_name_RTS01=The BHF's +badge_desc_RTS01=Best Habbo's Forever. We're popular and we Rule the School! +badge_name_RTS02=The GN0RKS +badge_desc_RTS02=Gamers, Skaters, Geeks, Nerds and Dorks. Unite to Rule the School! +badge_name_RTS03=The Habcats +badge_desc_RTS03=Jocks, football players and cheerleaders - together we Rule the School! +badge_name_RTS04=The Punks +badge_desc_RTS04=Emos, goths, punks and wannabe poets. Anarchy Rules the School! +badge_name_RTS05=Golden Graduation Badge +badge_desc_RTS05=RTS 2020 Winning Group - %PLACEHOLDER%! +badge_name_RTS06=Pop Quiz Badge #1 +badge_desc_RTS06=Aced a Rule The School Pop Quiz about Maths! +badge_name_RTS07=Pop Quiz Badge #2 +badge_desc_RTS07=Aced a Rule The School Pop Quiz about Science! +badge_name_RTS08=Pop Quiz Badge #3 +badge_desc_RTS08=Aced a Rule The School Pop Quiz about History! +badge_name_RTS09=Basketball Champ +badge_desc_RTS09=On the Winning Team! +badge_name_RTS10=Sports Stud +badge_desc_RTS10=Root for your team! +badge_name_RTS16=Red Scholar Badge +badge_desc_RTS16=Straight A's for this Habbo Student +badge_name_RTS18=Glee Club Member +badge_desc_RTS18=I'm a Gleek, hear me sing! +badge_name_RTS19=Green Scholar Badge +badge_desc_RTS19=Straight A's for this Habbo Student +badge_name_RTS22=RTS Hideout Winner +badge_desc_RTS22=Created a perfect Hideout for their school group! +badge_name_RTS25=Not In Use +badge_desc_RTS25=Not In Use +badge_name_RTS26=Blue Scholar Badge +badge_desc_RTS26=Straight A's for this Habbo Student +badge_name_YOUN=YouNow +badge_desc_YOUN=I came from YouNow +badge_name_MLENG=Diversity & Equality! +badge_desc_MLENG=Badges are now multilingual - thanks for joining us on this journey. +badge_name_MLPT=Diversidade & Igualdade! +badge_desc_MLPT=Emblemas agora s�o multil�ngues - Obrigado por se juntar a n�s nesta jornada. +badge_name_MLES=Diversidad & Igualdad! +badge_desc_MLES=Las insignias ahora son multiling�es- Gracias por acompa�arnos en este viaje. +badge_name_MLIT=Awaiting Translation +badge_desc_MLIT=Awaiting Italian Translation +badge_name_BLM=#BlackLivesMatter +badge_desc_BLM=Always, and forever. Take a stand! +badge_name_EAS01=FP Maze (1/3) +badge_desc_EAS01=1 Down, 2 to go! +badge_name_EAS02=FP Maze (2/3) +badge_desc_EAS02=Almost there... +badge_name_EAS03=FP Maze (3/3) +badge_desc_EAS03=I did it! I completed all 3 Flower Power Mazes! +badge_name_EAS04=Flower Power! +badge_desc_EAS04=Discovered a whole new world of Flowers! +badge_name_EAS05=Professional Gardener +badge_desc_EAS05=A Pro Gardner? Probably... +badge_name_ES11A=Wired Tester +badge_desc_ES11A=I am a BETA Tester for Wired! Coming soon... +badge_name_PT107=Pride Month 2020 +badge_desc_PT107=Standing side by side with my brothers and sisters, during Pride Month 2020. +badge_name_UK479=Picnic Fields +badge_desc_UK479=Enjoy the great outdoors, celebrate mother nature and party! +badge_name_THE01=Theatredome +badge_desc_THE01=Perform your latest master piece, or simply catch the latest gossip. +badge_name_ITB61=Habbo Lido +badge_desc_ITB61=Splish, splash and have a bash in the Habbo pool! +badge_name_MLNL=Diversiteit & gelijkheid +badge_desc_MLNL=Badges zijn nu meertalig - bedankt om ons te volgen op deze tocht. +badge_name_NT258=Welcome to ClassicHabbo +badge_desc_NT258=What a great place to start! +badge_name_AST09=Habburgers +badge_desc_AST09=Get food here! +badge_name_SMC04=Library +badge_desc_SMC04=Books! Glorious books! Fill yourself with information and lose yourself in wonderful literary worlds. +badge_name_HLY03=Power Gym +badge_desc_HLY03=Fancy a workout? +badge_name_NL563=Mickey Duck +badge_desc_NL563=flash sino 2 is pretty neat, right? +badge_name_UK982=Juicy +badge_desc_UK982=This is eggciting! +badge_name_UK983=Peachy +badge_desc_UK983=I appeachiate you! +badge_name_MITY=Times are changing! +badge_desc_MITY=You don't have to deal with this all alone! +badge_name_500G=Five Hundred +badge_desc_500G=I counted to 500 on Discord! +badge_name_500S=Five Hundred +badge_desc_500S=Wow! Discord #counting reached 500! +badge_name_BOD1=Body Part (Common) +badge_desc_BOD1=1/3 +badge_name_BOD2=Body Part (Rare) +badge_desc_BOD2=2/3 +badge_name_BOD3=Body Part (Epic) +badge_desc_BOD3=3/3 +badge_name_BUST=BUSTED! +badge_desc_BUST=I got caught Credit Farming...but I've changed my ways! +badge_name_FAG=Smoking Hot +badge_desc_FAG=Fancy a cig buddy? +badge_name_KIDDO=Kiddo +badge_desc_KIDDO=For joining the Cult of Kiddo! +badge_name_POOH=Winnie-the-Pooh +badge_desc_POOH=At your service! +badge_name_ITB25=ITGTTS +badge_desc_ITB25=I'm too GAY to think STRAIGHT! +badge_name_ITB26=ITGTTS +badge_desc_ITB26=I'm too GAY to think STRAIGHT! +badge_name_PT960=Chromatica +badge_desc_PT960=Battle for your life! Babylon! +badge_name_TEST21=Testing Testing +badge_desc_TEST21=1 2 3 4 +badge_name_ITA06=Magnifying Glass +badge_desc_ITA06=For solving GingerBrad mystery. +badge_name_ITA53=Expert Detective +badge_desc_ITA53=I was one of the first 10 Habbo's to Solve GingerBrad's mystery! +badge_name_MDI=Cup of Coffee +badge_desc_MDI=For those Late Night Habbo's +badge_name_IT2=Battle Ball Gold +badge_desc_IT2=Congratulations Chromatica Team! (Leone, esdras90, Lucas-4 and xJoonq) +badge_name_IT3=Battle Ball Silver +badge_desc_IT3=Congratulations AbstractisMyAss! (Abstractis, crxstxnxx, Frvncisco and Punked20) +badge_name_IT4=Battle Ball Bronze +badge_desc_IT4=Congratulations Snek Klan! (devrik, Joorren, boo and EatAss) +badge_name_DEB=Botanist +badge_desc_DEB=I won the Flower Power Room Competition. June 2020. +badge_name_ES26I=L +badge_desc_ES26I=. +badge_name_ES27I=G +badge_desc_ES27I=. +badge_name_ES29I=B +badge_desc_ES29I=. +badge_name_ES28I=T +badge_desc_ES28I=. +badge_name_ES30I=+ +badge_desc_ES30I=. +badge_name_ES32H=Avo Love +badge_desc_ES32H=You're everything I Avo wanted! +badge_name_DE26C=Gamer Gold +badge_desc_DE26C=Winner winner chicken dinner! +badge_name_DE27C=Gamer Silver +badge_desc_DE27C=Winner winner chicken dinner! +badge_name_DE28C=Gamer Bronze +badge_desc_DE28C=Winner winner chicken dinner! +badge_name_BSH11=Bet on it... +badge_desc_BSH11=I'm a Dice PRO! +badge_name_US019=Canada Day 2020 +badge_desc_US019=Celebrating all things Canadian with Habbo! +badge_name_UK827=Eh?! +badge_desc_UK827=It's a Canadian thing... +badge_name_CAK=Maple Leaf +badge_desc_CAK=A national symbol... +badge_name_IT472=Looking Forward... +badge_desc_IT472=July 2020 Infobus Session on the Future of Classic Habbo! +badge_name_DE258=I voted in 2020 Habbo Elections +badge_desc_DE258=I hope my president wins! #notmypresident +badge_name_DE640=Presidential Nominee July 2020 +badge_desc_DE640=For the tears, the glory and the bobba. +badge_name_US106=Presidential Medal of Recognition +badge_desc_US106=Awarded by President %username% +badge_name_ES35B=Habbo President +badge_desc_ES35B=President of Classic Habbo - 2020! +badge_name_HOT2=Hot +badge_desc_HOT2=One Hot Habbo - Hot/Cool 2020 +badge_name_COL2=Cool +badge_desc_COL2=One Cool Habbo - Hot/Cool 2020 +badge_name_HOT=Hot Badge +badge_desc_HOT=Hot or Cool Campaign +badge_name_COL=Cool Badge +badge_desc_COL=Hot or Cool Campaign +badge_name_ES498=Bacon Medal +badge_desc_ES498=I might not have won but I was there! +badge_name_NL712=Flower Detective +badge_desc_NL712=I solved the mystery! July 2020 +badge_name_REPF1=SAW! Player +badge_desc_REPF1=I entered the Flower Power Castle (Rep Event) +badge_name_REPF2=SAW! Winner +badge_desc_REPF2=I conquered the Flower Power Castle (Rep Event) +badge_name_SSCB=Snow Storm Bronze +badge_desc_SSCB=Congratulations to Joorren and devrik +badge_name_SSCG=Snow Storm Gold +badge_desc_SSCG=Congratulations to Big.ViuS and Kaah +badge_name_SSCS=Snow Storm Silver +badge_desc_SSCS=Congratulations to Why and $$ +badge_name_UK694=USA Independence Day +badge_desc_UK694=Happy 4th of July! +badge_name_DEA=Flower Investigator +badge_desc_DEA=I was one of the 15 best detectives! July 2020 +badge_name_DISC2=One Thousand +badge_desc_DISC2=Wow! Discord #counting reached 1000! +badge_name_VRFD=Verified +badge_desc_VRFD=My account is verified on the official CH discord! +badge_name_POKHR=Pro Gambler +badge_desc_POKHR=A gambler at Heart +badge_name_POKSP=Pro Gambler +badge_desc_POKSP=A gambler by Trade +badge_name_ALEX=Alex +badge_desc_ALEX=I love Alex +badge_name_WING2LGBT+ Punk +badge_desc_WING2=I am LGBT and PUNK! +badge_name_WING1=LGBT+ Punk +badge_desc_WING1=I am LGBT and PUNK! +badge_name_FRECK=Freck +badge_desc_FRECK=Hobo life-style +badge_name_DEVRI=Devrik +badge_desc_DEVRI=Fan of the design +badge_name_CHRIS=Chrisol +badge_desc_CHRIS=Do I look like a baby to you? :/ +badge_name_IT221=Good vs Evil +badge_desc_IT221=Only one team will win! Who will it be? July 2020. +badge_name_FRI02=Lucifer +badge_desc_FRI02=I found Luci, the cat! What a wicked boy. +badge_name_MS3=Malign +badge_desc_MS3=Do not mess with me! Devil's Maze Top 10 +badge_name_MS1=Bad +badge_desc_MS1=You are bad, but not that bad! Devil's Maze Top 30 +badge_name_MS2=Evil +badge_desc_MS2=You are more evil than most Habbos! Devil's Maze Top 20 +badge_name_DE9=Flower Power Designer +badge_desc_DE9=For drawing one of the best Flower Power images! July 2020. +badge_name_DE8=Flower Power Pixel Artist +badge_desc_DE8=For creating the best Flower Power flyers. July 2020. +badge_name_KCK01=Kick Wars +badge_desc_KCK01=I trialed Kick Wars with Habbo Staff! +badge_name_BR026=Rock 'N' Roll +badge_desc_BR026=Celebrated International Day of Rock 'N' Roll with Habbo Hotel, 2020. +badge_name_DE08C=Good Angel +badge_desc_DE08C=Winner of Good vs Evil - I defeated the Evil forces. +badge_name_ES12D=Evil Angel +badge_desc_ES12D=Lost the battle between Good vs Evil. +badge_name_ES814=Mean Girls 2020 +badge_desc_ES814=On Wednesdays, we wear pink! +badge_name_US114=Mean Girls 2020 +badge_desc_US114=You can't sit with us! +badge_name_IT492=Artist +badge_desc_IT492=Official Habbo Hotel Pixel Artist +badge_name_PX4=Behind The Pixels +badge_desc_PX4=Joined Staff for the Launch of BTP, 2020. diff --git a/tools/gamedata/flash/external_variables.txt b/tools/gamedata/flash/external_variables.txt new file mode 100644 index 0000000..f0241bc --- /dev/null +++ b/tools/gamedata/flash/external_variables.txt @@ -0,0 +1,249 @@ +char.conversion.mac=[128:219,130:226,131:196,132:227,133:201,134:160,135:224,136:246,137:228,139:220,140:206,145:212,146:213,147:210,148:211,149:165,150:208,151:209,152:247,153:170,155:221,156:207,159:217,161:193,165:180,167:164,168:172,170:187,171:199,172:194,173:208,174:168,176:161,180:171,182:166,183:225,184:252,186:188,187:200,191:192,192:203,193:231,194:229,195:204,196:128,197:129,198:174,199:130,200:233,201:131,202:230,203:232,204:237,205:234,206:235,207:236,209:132,210:241,211:238,212:239,213:205,214:133,216:175,217:244,218:242,219:243,220:134,223:167,224:136,225:135,226:137,227:139,228:138,229:140,230:190,231:141,232:143,233:142,234:144,235:145,236:147,237:146,238:148,239:149,241:150,242:152,243:151,244:153,246:154,247:214,248:191,249:157,250:156,251:158,252:159,255:216] +stats.tracking.javascript=google +productdata.load.url=https://cdn.classichabbo.com/r38/gamedata/productdata.txt +image.library.questing.url=https://cdn.classichabbo.com/c_images/Quests/ +purse.widget.enabled=1 +avatar.widget.enabled=1 +figure.partsets.xml=https://cdn.classichabbo.com/r38/r63/figurepartconfig/partsets.xml +struct.font.grey=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#666666"),#ilk:#struct,#fontStyle:[#italic]] +viral.furni.post_type=appRequest +billboard.adwarning.left.url=AdWarningsUK/ad_warning_L.png +security.cast.load.url=https://cdn.classichabbo.com/r38/gordon/RELEASE38-22219-22056-200910151012_31a79855239b3813da4dbae573bd0f54/sec.cct?t=%token% +navigator.default.view=public +latencytest.interval=20000 +external.figurepartlist.txt=https://cdn.classichabbo.com/r38/gamedata/figuredata.xml +image.library.url=https://cdn.classichabbo.com/c_images/ +navigator.visible.public.root=3 +permitted.name.chars=1234567890qwertyuiopasdfghjklzxcvbnm-=?!@:., +external.texts.txt=https://cdn.classichabbo.com/r38/gamedata/external_flash_texts.txt +latencytest.report.delta=100 +struct.font.bold=[#font:"vb",#fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +figure.draworder.xml=https://cdn.classichabbo.com/r38/gamedata/figurepartconfig/draworder.xml +client.hotel_view.image=hotel_view_images_hq/hotelview_default.png +billboard.adwarning.right.url=AdWarningsUK/ad_warning_R.png +image.library.catalogue.url=https://cdn.classichabbo.com/c_images/catalogue/ +flash.dynamic.download.url=https://cdn.classichabbo.com/r38/dcr/hof_furni/ +room.default.wall=201 +new.chat.bubbles.enabled=1 +navigator.always_open_after_login=0 +menu.avatar.enabled=true +infostand.use.button.enabled=1 +purse.widget.currency.shells.enabled=0 +feed.badge_decorations.decoration_id=001 +purse.transactions.active=1 +new.chat.widget.enabled=1 +client.use.invites=1 +struct.font.plain=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +hotelview.banner.url=https://cdn.classichabbo.com/r38/gamedata/banner.png +client.textdata.utf8=1 +logout.concurrent.url=https://cdn.classichabbo.com/r38/index.php +figure.animation.xml=https://cdn.classichabbo.com/r38/gamedata/figurepartconfig/animation.xml +dynamic.download.url=https://cdn.classichabbo.com/r38/furniture/ +language=en +struct.font.italic=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#italic]] +feed.badge_decorations.album=Feed_Badges +external.figurepartlist.txt.secure=https://cdn.classichabbo.com/r38/gamedata/figuredata.xml +logout.url=https://cdn.classichabbo.com/r38/index.php +room.default.floor=111 +navigator.public.default=3 +tutorial.name.new_user_flow=NUF_mini +furnidata.load.url=https://cdn.classichabbo.com/r38/gamedata/furnidata.txt +flash.dynamic.download.name.template=%typeid%.swf +struct.font.tooltip=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +struct.font.link=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#underline]] +figure.draworder.xml.secure=https://cdn.classichabbo.com/r38/gamedata/figurepartconfig/draworder.xml +fuse.project.id=habbo_de +flash.dynamic.download.samples.template=mp3/sound_machine_sample_%typeid%.mp3 +navigator.private.default=4 +client.window.title=Habbo Hotel +dynamic.download.name.template=hh_furni_xx_%typeid%.cct +avatareditor.allowclubtryout=1 +private.image.library.url=https://cdn.classichabbo.com/c_images/ +logout.disconnect.url=https://cdn.classichabbo.com/r38/index.php +latencytest.report.index=3 +dynamic.download.samples.template=%typeid%.cct +navigator.visible.private.root=4 +stats.tracking.javascript.template=\TCODE +link.format.friendlist.pref=https://cdn.classichabbo.com/r38/profile/friendsmanagement?tab=6 +cast.entry.10=hh_human_hats +cast.entry.11=hh_human_hair +cast.entry.12=hh_human_shirt +interface.cmds.user.friend=["friend","trade","ignore","unignore","userpage"] +cast.entry.13=hh_human_leg +cast.entry.14=hh_human_shoe +cast.entry.15=hh_kiosk_room +cast.entry.17=hh_room_utils +cast.entry.16=hh_pets_common +cast.entry.19=hh_furni_classes +cast.entry.18=hh_room_ui +cfh.usercategories.withnoharasser=101,102,103,104,105,106 +room.cast.12=hh_human_50_fx +interface.cmds.active.ctrl=["move","rotate"] +room.cast.11=hh_human_fx +room.cast.10=hh_roomdimmer +client.minimail.embed.enabled=true +room.cast.1=hh_soundmachine +room.cast.2=hh_human_acc_chest +room.cast.3=hh_human_acc_waist +club.subscription.disabled=1 +cfh.usercategories.withharasser=101,102,103,104,105,106 +room.cast.8=hh_human_50_acc_chest +room.cast.9=hh_human_50_acc_waist +moderatoractionlog.url=http://theallseeingeye.sulake.com/ase/habbo/de/housekeeping/extra/hobba/moderator_activity.action?searchCriteria.habboName= +room.cast.4=hh_human_50_shirt +interstitial.interval=120000 +room.cast.5=hh_human_50_leg +room.cast.6=hh_human_50_shoe +room.cast.7=hh_human_50_item +navigator.tagcolorlimit.yellow=500 +interstitial.show.time=5000 +avatar.editor.club.promo.image=https://cdn.classichabbo.com/c_images/catalogue/club_promo_uk.gif +room.rating.enable=1 +interface.cmds.user.personal=["badge","dance","wave","hcdance","userpage"] +paalu.key.list=[#bal1:"Q", #bal2:"E", #push1:"A", #push2:"D", #move1:"N", #move2:"M", #stabilise:"SPACE"] +navigator.cache.duration=30 +navigator.colorlimit.orange=80 +room.cast.private=["hh_room_private", "hh_room_landscapes"] +displayer.tag.expiration.time=600000 +navigator.default_tab=official +navigator.tagcolorlimit.orange=1000 +client.full.refresh.period=5000 +interface.cmds.user.owner=["take_rights","give_rights","kick","friend","trade","ignore","unignore","userpage"] +text.crap.fixing=1 +castload.retry.delay=20000 +roomenterad.habblet.enabled=true +navigator.always_open_after_login=0 +interstitial.enabled=true +pixels.enabled=true +friendbar.enabled=true +interface.cmds.item.owner=["pick"] +cast.entry.42=hh_friend_list +interface.cmds.photo.owner=["pick","delete"] +cast.entry.41=hh_human_50_body +room.cast.small.1=hh_pets_50 +cast.entry.44=hh_pets +interface.cmds.active.owner=["move","rotate","pick"] +cast.entry.43=hh_instant_messenger +cast.entry.45=hh_guide +embed.showInRoomInfo=true +client.fatal.error.url=https://cdn.classichabbo.com/r38/index.php? +cast.entry.40=hh_human_50_acc_head +swimjump.key.list=[#run1:"A", #run2:"D", #dive1:"W", #dive2:"E", #dive3:"A", #dive4:"S", #dive5:"D", #dive6:"Y", #dive7:"X", #jump:"SPACE"] +cast.entry.9=hh_human_item +cast.entry.8=hh_human_face +cast.entry.7=hh_human_body +cast.entry.6=hh_human +cast.entry.5=hh_patch_de +cast.entry.4=hh_interface +cast.entry.3=hh_shared +cast.entry.2=hh_entry_base +cast.entry.1=hh_entry_de +client.credits.embed.enabled=true +avatar.editor.trial.promo=1 +text.render.compatibility.mode=2 +moderator.cmds=[":alert x",":ban x",":kick x",":superban x",":shutup x",":unmute x",":transfer x",":softkick x"] +cast.entry.38=hh_human_50_acc_eye +cast.entry.39=hh_human_50_acc_face +cast.entry.37=hh_human_50_hair +cast.entry.36=hh_human_50_hats +cast.entry.35=hh_human_50_face +avatar.editor.club.promo=0 +cast.entry.34=hh_human_acc_head +cast.entry.33=hh_human_acc_face +cast.entry.32=hh_human_acc_eye +cast.entry.31=hh_entry_init +cast.entry.30=hh_badges +navigator.colorlimit.yellow=50 +interstitial.max.displays=5 +client.flood.timeout=30000 +client.version.id=401 +navigator.tagcolorlimit.red=2000 +cast.entry.27=hh_dynamic_downloader +cast.entry.28=hh_recycler +cast.entry.29=hh_poll +cast.entry.24=hh_cat_new +cast.entry.23=hh_navigator +cast.entry.26=hh_buffer +cast.entry.25=hh_cat_gfx_all +cast.entry.20=hh_room +cast.entry.22=hh_photo +infostand.report.show=1 +cast.entry.21=hh_club +subscription.reminder.when.days.left=5 +navigator.colorlimit.red=92 +interface.cmds.user.ctrl=["kick","friend","trade","ignore","unignore","userpage"] +interface.cmds.photo.ctrl=[] +interface.cmds.item.ctrl=[] +lagWarningLog.enabled=1 +client.toolbar.static.enabled=true +questing.startQuestDelayInSeconds=10 +client.hotel_view.show_on_startup=1 +cfh.usercategories.withnoharasser=101,102,103,104,105,106 +roominfo.widget.enabled=1 +navigator.always_open_after_login=0 +client.minimail.embed.enabled=true +friend_bar.helper.friend_finding.enabled=true +interstitial.enabled=true +pixels.enabled=true +questing.enabled=true +welcome.screen.enabled=0 +link.format.club=http://%predefined%/credits/habboclub +club.subscription.disabled=1 +cfh.usercategories.withharasser=101,102,103,104,105,106 +client.fatal.error.url=http://%predefined%/client_error +embed.showInRoomInfo=true +friendbar.enabled=true +interstitial.interval=120000 +interstitial.show.time=5000 +client.allow.external.links=1 +client.credits.embed.enabled=true +room.rating.enable=1 +navigator.colorlimit.yellow=50 +new.chat.widget.enabled=1 +interstitial.max.displays=8 +questing.defaultCampaign=room_builder +navigator.colorlimit.orange=80 +link.format.collectibles=http://%predefined%/credits/collectibles +link.format.userpage=http://%predefined%//rd/%ID% +avatar.widget.enabled=1 +navigator.default_tab=official +client.logout.enabled=true +subscription.reminder.when.days.left=5 +infostand.report.show=1 +navigator.colorlimit.red=92 +client.news.embed.enabled=true +purse.widget.enabled=1 +questing.showDetailsForNextQuest=true +room.dragging.always_center=0 +client.allow.facebook.like=1 +catalog.drag_and_drop=true +hover.name.enabled=true +trax.player.sample.memory.purge.enabled=1 +standaloneAchievementList.enabled=true +menu.own_avatar.enabled=1 +menu.avatar.enabled=true +questing.useWing=true +catalog.furniture.animation=true +friendbar.notifications.enabled=true +userdefinedroomevents.enabled=true +room.recommendations=1 +avatar.editor.trial.promo=1 +userdefinedroomevents.enabled=true +text.crap.fixing=1 +welcome.screen.enabled=1 +menu.avatar.enabled=true +hover.name.enabled=true +new.chat.bubbles.enabled=1 +infostand.use.button.enabled=1 +inventory.furni.tab.new=new +questing.enabled=true +standaloneAchievementList.enabled=true +menu.own_avatar.enabled=1 +toolbar.new_additions.notification.enabled=true +simple.memenu.enabled=1 +friendbar.requests.enabled=true +friendbar.notifications.enabled=true +friendbar.stream.enabled=true +supersaverads.video.promo.enabled=true +group.badge.url=https://cdn.classichabbo.com/habbo-imaging/badge/%imagerdata%.gif +group.homepage.url=https://classichabbo.com/groups/%groupid%/id \ No newline at end of file diff --git a/tools/gamedata/flash/figuredata.txt b/tools/gamedata/flash/figuredata.txt new file mode 100644 index 0000000..6d23a40 --- /dev/null +++ b/tools/gamedata/flash/figuredata.txt @@ -0,0 +1,2 @@ + +FFCB98E3AE7DC99263AE7748945C2F6E482CFFC680F4AC54DC9B4CFFDBC1FFB696FF987FF0DCA3F5DA88DFC375EFD17DC89F56A89473B875609C543F6E392CEAEFD0E2E4B0D5D08CC4A7B3C2C4A7C5C0C2F1E5DAB3BDC34C311E644628926338A97C44B3957FBD9562C2A896CA9072CBBC90D1A78CD1BCADD7BCA9D7CBA3D8A595D8B07EE0BD91E0D0C5E2DBB9E3D38DE7C9A3EDD7BBEEE7E0EFC3B6F1D6B4F8E5DAFDDACFFFCC99FFD6A9DFA66FD1803AFFEEB9F6D059F2B11D9A5D2EAC5300783400D8D3D9918D984A4656F291599E3D3B5C4332FF8746FC610CDE3900D2FF00FFFFFFE5FF09A3FF8F3399663A7B93FFBDBCDE34A49F5699D5F9FB6699CCE71B0A95FFFA2D2D2D00FA000A0A0A1052621062621E321420B4A4234CAF248954282828292929298BB42DA5E9319CF631F6DE322F3E323235325B6A3296FA333333394194463C144A6A184B5A5A4D32234F87C0579E1F5A480A5A837B624A41625A20626262646D6C662608666666674E3B6A3910736346781414784215786D5A7B18947D5B1780557C8331418A49248B18208C694B8C967E904839926338946220947BAC948B6A94BD2994DFFF94FFD5976D3E9CF0689E3F0BA08C64A4A4A4A4DEFFA55A18A7272CA97C44B29B86B2A590B3957FB429CDB4EE29B58B5CB9A16EBD9562BD9CFFBDBD9DC21A86C29C57C2A896C2E3E8C376C4C4FFFFC54A29C59462C8D2E6C96B2FCA5A1ECA5A33CA9072CBBC90CD99C7CF6254D1A78CD1BCADD2C8CCD45B0AD4FE80D54173D5FF9CD7BCA9D7CBA3D8A595D8B07EDA945EDB7C62DCDCC8DDA934DE73DEDEDEDEDFDAB4DFDABEE0BA78E0BD91E0D0C5E1CC78E2DBB9E63139E6A4F6E7C9A3E7E92DEA5959ECFFEDEDD7BBEEE7E0EEEEEEEFC3B6F1D6B4F6AC31F73B32F8E5DAFDA61EFDDACFFE6D6DFE834DFF0000FF006AFF4814FF4C2FFF5F9BFF7329FF7383FF7BDEFF9C62FFA772FFADAEFFBC42FFBDBDFFBE73FFC53AFFCD94FFCD9BFFDC7AFFE639FFE673FFEAACFFEAADFFEEC5FFFFFFEEEEEEA4A4A4595959F6E179E7B027A86B19F8C790EB7E43C74400FFBFC2ED5C509F2B31E7D1EEAC94B37E5B90ACC9E66D80BB544A81C5EDE675B7C74F7AA2BBF3BD6BAE61456F40D2FF00EDFF9ABABB3D7A7D22F3E1AF96743D6B573BFFFFFFFFF41DFF9211FF27A6FF1300FF6D8FE993FFC600AD9B001D76FF2D1CDC00AFF20300B9A894FFEC1BD2FF1F55FF0219A53A53411E1E1E003F1D096E16105262106262121D6D1F1F1F20B4A420B9132828C8292929298BB42F2D26319CF631F6DE333333336633365E8A378BE837E8C53941943B7AC03D3D3D406A6543001A4562834A6A184C882B5A837B5CC4455F5F5F624A41625A20626262656A406666666874506A39106A405C6A4A40779FBB795E537B18947B58187C8F7D7D00047D003483314187D7CD88E0DE8B1820946220947BAC948B6A94BD2994FFD595784E983E4F98863E9FD787A4A4A4A4DEFFA88139ADD0FFAFDCDFB3FCFFB429CDB4EE29B6396DB79BFFB8E737BA9D73BAAD68BAC7FFBB2430BD9CFFBDFFC8C0B4C7C1C1C1C1D2DBC54A29C59462C6B3D6C745D9CA2221CDCDFFCDFFB3D1DFAFD1FFD4D54173D5FF9CD68C8CD7C187D9457ED97145DE73DEDEDEDEDFAFD1DFCBAFE63139E6A4F6E8B137E8FFFFEEEEEEF64C3EF6AC31F9A0A0FF006AFF1092FF45D6FF7329FF7383FF7BDEFF8516FF9C62FFB3D7FFB6DEFFBDBDFFC800FFC92BFFCD94FFCE64FFD2B3FFE639FFE673FFEDB3FFEE6DFFEEC5FFFF00FFFF66FFFFFAFFFFFF \ No newline at end of file diff --git a/tools/gamedata/flash/figuremap.xml b/tools/gamedata/flash/figuremap.xml new file mode 100644 index 0000000..7d07459 --- /dev/null +++ b/tools/gamedata/flash/figuremap.xml @@ -0,0 +1,1562 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/gamedata/flash/partsets.txt b/tools/gamedata/flash/partsets.txt new file mode 100644 index 0000000..0d1c15c --- /dev/null +++ b/tools/gamedata/flash/partsets.txt @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/flash/partsets.xml b/tools/gamedata/flash/partsets.xml new file mode 100644 index 0000000..ade7b82 --- /dev/null +++ b/tools/gamedata/flash/partsets.xml @@ -0,0 +1,117 @@ + +- + + + + + + + + + + + + + + + + + + + + + + + +- + + + + + + + + + + + + + + + + + + + + + +- + + + + + + + + + + + +- + + + + + + + + +- + + + + +- + + + +- + + + + + +- + + + + + +- + + + + + + + + + +- + + + + + +- + + + +- + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/.htaccess b/tools/gamedata/shockwave/.htaccess new file mode 100644 index 0000000..bfe7ff4 --- /dev/null +++ b/tools/gamedata/shockwave/.htaccess @@ -0,0 +1,2 @@ +RewriteEngine On +RewriteRule ^external_variables.txt external_variables.php \ No newline at end of file diff --git a/tools/gamedata/shockwave/animation.txt b/tools/gamedata/shockwave/animation.txt new file mode 100644 index 0000000..e88e48a --- /dev/null +++ b/tools/gamedata/shockwave/animation.txt @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/animation.xml b/tools/gamedata/shockwave/animation.xml new file mode 100644 index 0000000..e88e48a --- /dev/null +++ b/tools/gamedata/shockwave/animation.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/draworder.txt b/tools/gamedata/shockwave/draworder.txt new file mode 100644 index 0000000..0659812 --- /dev/null +++ b/tools/gamedata/shockwave/draworder.txt @@ -0,0 +1,874 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/draworder.xml b/tools/gamedata/shockwave/draworder.xml new file mode 100644 index 0000000..0659812 --- /dev/null +++ b/tools/gamedata/shockwave/draworder.xml @@ -0,0 +1,874 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/external_texts.txt b/tools/gamedata/shockwave/external_texts.txt new file mode 100644 index 0000000..aaee5e7 --- /dev/null +++ b/tools/gamedata/shockwave/external_texts.txt @@ -0,0 +1,4314 @@ +hubu_t2_1= +hubu_h3=Huumetietobussi +hubu_info_link1=Infobus Information +hubu_info_url_2=http://www.habbo.co.uk/help +hubu_close=Sulje kioski +hubu_t3_1= +hubu_h4=Anna palautetta +hubu_odotetaan=Waiting for replies from others... +hubu_answ_count=Replies +hubu_info_link2=Habbo FAQs +hubu_info=Welcome to the Infobus! The next Infobus event is on 5th July 2020 @ 7PM BST - this session is all about Looking Forward! Check back regularly for the latest Infobus sessions on a range of topics including online safety, scams and using Habbo. In the meantime, you can access our FAQs on the link below: +bus.full_msg=The Infobus is either full or closed at the moment, please come back later or visit our FAQs below for more information. +hubu_win=Bus - Info +hubu_t3_2=Hubun kiertuekalenteri 2002 +hubu_h5=Huumetietoa +hubu_t1_1=Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta +hubu_h1=Puhelintuki +hubu_t4_2=Tsekkaa heebelin jorinat +hubu_info_t=The Infobus +hubu_t2_2= +hubu_t5_3=Yleistietoa EOPH ry:st-------------- +hubu_t2_3=Vapaa-ajan linkkejä +hubu_t4_1=Anna palautetta Hubusta +hubu_vastaa=Answer the question +hubu_t1_3= +hubu_t5_2=Huumeista-esite +hubu_h2=Harrastamaan! +hubu_t5_1=Lisetoa huumeista +hubu_info_url_1=http://www.habbohotel.co.uk/habbo/en/help/12 +hubu_t1_2= +nav_search_hd=Search rooms by Habbo name or room name. +nav_venue_cunning_fox_gamehall/0_desc=Pit your wits on the battlefield, the board or the baize - choose what to play here +nav_venue_bb_lobby_beginner_3/0_desc= +nav_public_helptext_hd=Public Spaces +nav_venue_sw_lobby_beginner_0_name=Snow Rookies Lobby +nav_venue_$unit.name$/0_desc=Roam more of the hotel's corridors +nav_venue_sun_terrace/0_name=Sun Terrace +nav_venue_bb_lobby_beginner_9_name=Beginners Battle Ball 10 +nav_venue_the_chromide_club/0_desc=Ghetto Fabulous +nav_venue_bb_lobby_beginner_10_name=Beginners Battle Ball 11 +nav_venue_sw_lobby_expert_2_name=Snow Marksmen Lobby +nav_venue_bb_lobby_expert_4/0_desc= +nav_venue_sw_lobby_beginner_6_name=Snow Rookies Lobby +nav_venue_ballroom/0_desc=Forget Beijing, check out Habbo's very own Olympic Stadium! +nav_venue_tv_studio/0_desc=Will you reach the final of the biggest brains in Habbo competition? +nav_venue_basement_lobby_name=Basement Lobby +nav_venue_bb_lobby_beginner_8/0_desc= +nav_venue_bb_lobby_free_1/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_bb_lobby_amateur_1_name=Gevorderden Battle Ball 2 +nav_venue_median_lobby/0_desc=A Mean place to hang +nav_venue_sw_lobby_amateur_2/0_desc= +nav_venue_space_cafe_name=Ten Forward +nav_venue_star_lounge/0_desc=Celebrities favourite hang out +nav_venue_club_massiva/2_name=Dancefloor +nav_venue_bb_lobby_intermediate_0/0_desc= +nav_venue_bb_lobby_amateur_desc=Amateur battle ball! +nav_venue_bb_lobby_tournament_0_name=Tournament +nav_venue_sw_lobby_beginner_1_name=Snow Rookies Lobby +nav_venue_cafe_gold/0_desc=Receive and discuss the latest safety tips and tricks. +nav_favourites_helptext=These are your favourite rooms. Nice selection you have here... +nav_modify_doorstatus_passwordprotected=Let other people move and leave furniture in the room. +nav_venue_bb_lobby_beginner_2_name=Beginners Battle Ball 3 +nav_venue_bb_lobby_expert_4_name=Experts Battle Ball 5 +nav_popup_header=Recommended rooms +nav_venue_bb_lobby_intermediate_2_name=Semi-profs Battle Ball 3 +nav_venue_theatredrome_deli/0_desc=Join in all the fun of the fair! +nav_venue_bb_lobby_beginner_6/0_desc= +nav_venue_rooftop_rumble_name=Rooftop Rumble +nav_venue_sw_lobby_amateur_7_name=Snow Slingers Lobby +nav_venue_picnic/0_desc=Enjoy the great outdoors, celebrate mother nature and party! +nav_venue_the_chromide_club_name=The Chromide Club +nav_private_norooms=You dont have any rooms - create one? +nav_venue_emperors/0_desc=Even the smallest of light... shines in the darkness +nav_venue_sw_lobby_amateur_0_name=Snow Slingers Lobby +nav_venue_bb_lobby_beginner_10/0_desc= +nav_venue_theatredrome_xmas/0_desc= +nav_venue_habbo_lido_ii_name=Habbo Lido II +nav_venue_sw_lobby_tournament_3_name=Tournament Lobby +nav_venue_sw_lobby_expert_1/0_desc= +nav_popup_nav_link=Open the Navigator +nav_venue_hallway_ii_name=Hallway II +nav_private_helptext_hd=Rooms +nav_venue_theatredrome_habbowood/0_desc=Home to the Habbowood Gala and HAFTA Awards! +nav_venue_sw_lobby_amateur_2_name=Snow Slingers Lobby +nav_venue_sw_lobby_beginner_6/0_desc= +alert_no_category=Your room has no category. Select one from the list. +nav_venue_chill/0_name=Zen Garden +nav_venue_gate_park_name=Imperial Park +nav_own_hd=Your Rooms. +nav_venue_bb_lobby_intermediate_0_name=Intermediate +nav_addtofavourites=Add to favourites +nav_venue_sw_arena_expert_name=Playing expert game +nav_venue_old_skool/0_desc=A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo +nav_venue_sunset_cafe/0_desc=Come and chat about Official Fansites and meet their staff! +nav_help_text=Click the Public Spaces tab on the top left of this navigator to find gaming rooms! +nav_venue_sw_lobby_beginner_7_name=Snow Rookies Lobby +nav_venue_bb_lobby_beginner_2/0_desc= +nav_venue_orient/0_name=Club Golden Dragon +nav_venue_sw_lobby_beginner_4_name=Snow Rookies Lobby +nav_venue_star_lounge_desc=Is there a VIP visitor in the hotel? +nav_modify_choosecategory=Choose a category for your room +nav_venue_bb_lobby_tournament_2/0_desc= +nav_venue_bb_lobby_intermediate_3/0_desc= +nav_venue_bb_lobby_expert_0/0_desc= +nav_venue_club_mammoth_name=Club Mammoth +nav_roomInfo=Room info +nav_venue_sw_lobby_amateur_6_name=Snow Slingers Lobby +nav_venue_hotel_kitchen_name=Hotel Kitchen +nav_venue_beauty_salon_loreal/0_desc=No Pixel Surgery, only natural make-ups! +nav_venue_bb_lobby_amateur_3/0_desc= +nav_venue_sw_arena_beginner_name(0)=SnowStorm Aloittelijat +nav_venue_club_mammoth/0_name=Club Mammoth +nav_venue_library/0_name=Habbo Library +nav_venue_gate_park/0_desc=Follow the path... +nav_venue_sunset_cafe_name=Sunset Cafe +nav_venue_pizza/0_desc=Pizza Palace +nav_venue_sw_arena_intermediate_name(0)=SnowStorm Keskitaso +nav_venue_sw_lobby_free_3_name=Free Game Lobby +nav_venue_sw_lobby_expert_2/0_desc=Todellisille lumisotureille. +nav_venue_sw_lobby_free_2/0_desc= +nav_venue_bb_lobby_beginner_4_name=Beginners Battle Ball 5 +nav_venue_sw_lobby_intermediate_5/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_bb_lobby_tournament_7/0_desc= +nav_error_passwordtooshort=The password is too short. +nav_venue_sw_arena_intermediate_name=Playing intermediate game +nav_incorrectflatpw=Incorrect, try again. +nav_venue_theatredrome_easter_name=Theatredrome Easter +nav_dooropens=Door opens! Go on in... +nav_venue_bb_lobby_tournament_3/0_desc= +nav_modify_doorstatus_open=Open +nav_venue_median_lobby_name=Median Lobby +nav_venue_bb_lobby_amateur_0/0_desc= +nav_venue_pizzeria_name=Slice of Life +nav_venue_sw_lobby_amateur_4/0_desc=Astetta rankempaa lumisotaa. +nav_modify=Modify +nav_modify_doorstatus=Door status +nav_venue_club_massiva/1_desc=Strut your funky stuff +nav_venue_sw_lobby_intermediate_5_name=Snow Bombardiers Lobby +nav_venue_sport/0_name=The Power Gym +nav_venue_theatredrome_halloween_name=Theatredrome Habboween +nav_venue_sw_lobby_amateur_1_name=Snow Slingers Lobby +nav_venue_bb_lobby_tournament_16/0_desc= +nav_venue_orient/0_desc=Tres chic with an Eastern twist. For Habbo Club members only. +nav_venue_club_massiva_name=Club Massiva +nav_venue_bb_lobby_beginner_0_name=Beginner +nav_ownrooms_helptext=If you didn't know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it. +nav_roomnfo_hd_src=Search Rooms +nav_search_helptext=Looking for something? Here you can search other Habbo's rooms. Type the room name or the name of the Habbo to search for a room. +nav_venue_bb_lobby_amateur_13/0_desc= +nav_venue_the_dirty_duck_pub/0_desc=Grab a stool and hear Dave and Sadie talk about the good old days... +nav_rooms_own=Own Room(s) +nav_venue_park/0_desc=Visit the park and the infamous Infobus +nav_venue_sw_lobby_tournament_8/0_desc= +nav_venue_cafe_gold/0_name=Kultakahvila +nav_venue_theatredrome/0_desc=Perform your latest master piece, or simply catch the latest gossip. +nav_venue_sw_lobby_beginner_0/0_desc= +nav_venue_sw_lobby_intermediate_2_name=Snow Bombardiers Lobby +nav_venue_sw_lobby_beginner_3_name=Snow Rookies Lobby +nav_venue_bb_lobby_amateur_6_name=Gevorderden Battle Ball 7 +nav_venue_bb_lobby_intermediate_2/0_desc= +nav_venue_bb_lobby_beginner_0/0_desc= +nav_loading=Loading... +nav_modify_nameoftheroom=Name Of The Room +nav_venue_sw_lobby_free_4_name=Free Game Lobby +nav_venue_sw_lobby_beginner_5/0_desc= +nav_venue_bb_lobby_tournament_9/0_desc= +nav_venue_bb_lobby_intermediate_3_name=Semi-profs Battle Ball 4 +nav_venue_hallway_ii/0_desc=Taking you to the far reaches of Habbo Hotel +nav_venue_habburger's_name=Habburgers +nav_venue_bb_lobby_intermediate_9/0_desc= +nav_owner=Owner +nav_venue_sw_lobby_tournament_2_name=Tournament Lobby +nav_venue_bb_lobby_tournament_13_name=Competitie Battle Ball 14 +nav_removerights=Reset +nav_venue_tearoom/0_desc=Try the tea in this Mongol cafe - it is to die for darlings! +nav_venue_bb_lobby_amateur_3_name=Gevorderden Battle Ball 4 +nav_venue_sw_lobby_intermediate_1/0_desc= +nav_privateRooms=Rooms +nav_venue_basement_lobby/0_desc=For low level hanging +nav_venue_bb_lobby_amateur_4_name=Gevorderden Battle Ball 5 +nav_venue_sw_lobby_free_desc=Come and play. It's free! +nav_venue_sw_lobby_tournament_1_name=Tournament Lobby +nav_venue_bb_lobby_tournament_4/0_desc= +nav_venue_ice_cafe_name=Ice Cafe +nav_venue_sw_lobby_free_8_name=Free Game Lobby +nav_venue_bb_lobby_amateur_5/0_desc= +nav_venue_sw_lobby_free_9/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_bb_lobby_tournament_8_name=Competitie Battle Ball 9 +nav_venue_bb_lobby_tournament_1_name=Competitie Battle Ball 2 +nav_venue_sw_lobby_free_5_name=Free Game Lobby +nav_venue_bb_lobby_tournament_3_name=Competitie Battle Ball 4 +nav_venue_bb_lobby_free_0/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_sw_lobby_tournament_9/0_desc= +nav_venue_sw_lobby_amateur_3_name=Snow Slingers Lobby +nav_venue_bb_lobby_amateur_10/0_desc= +nav_venue_bb_lobby_intermediate_4_name=Semi-profs Battle Ball 5 +nav_venue_bb_lobby_5_name=Battle Ball Kaikille +nav_venue_sw_lobby_tournament_6/0_desc= +nav_venue_snowwar_lobby/0_desc=Snow Storm LobbyCome and be a Snow Stormer! +nav_noanswer=No answer +nav_venue_bb_lobby_amateur_9_name=Gevorderden Battle Ball 10 +nav_venue_rooftop_rumble_ii_name=Rooftop Rumble II +nav_rooms_popular=Popular rooms +nav_venue_club_massiva_desc=Strut your funky stuff! +nav_venue_branded/0_desc=Something funny's going on, do you know what? +nav_delroom1=If you want to save the furniture in this room, move it to the giant hand before you continue. +nav_venue_bb_lobby_expert_1_name=Experts Battle Ball 2 +nav_venue_sw_lobby_tournament_4/0_desc= +nav_venue_skylight_lobby_name=Skylight Lobby +nav_venue_ballroom_name=Ballroom +nav_venue_bb_lobby_beginner_9/0_desc= +nav_venue_sw_lobby_free_4/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_bb_lobby_beginner_desc=Beginner battle ball +nav_venue_bb_arena_1_name=Battle Ball Aloittelijat +nav_venue_snowwar_lobby_name=Snow Storm Lobby +nav_venue_sw_lobby_beginner_9_name=Snow Rookies Lobby +nav_venue_bb_lobby_amateur_2/0_desc= +nav_venue_netcafe/0_desc=Learn a foreign language and win Habbo Credits in our quests! +nav_venue_bb_lobby_amateur_0_name=Amateur +nav_venue_theatredrome_halloween/0_desc=Habboween 2008 starts right here, right now! Ready? +nav_goingprivate=Going to Guest room +nav_modify_name=Name of the room +nav_venue_bb_lobby_beginner_17/0_desc= +nav_venue_welcome_lounge_name=Welcome Lounge +nav_venue_sw_lobby_amateur_5_name=Snow Slingers Lobby +nav_venue_bb_lobby_beginner_1_name=Beginners Battle Ball 2 +nav_venue_sw_lobby_expert_1_name=Snow Marksmen Lobby +nav_venue_club_massiva/0_desc=Rest your dancing feet! +nav_venue_sw_arena_amateur_name(0)=SnowStorm Amatöörit +nav_venue_chill_name=Zen Garden +nav_venue_bb_lobby_beginner_13_name=Beginners Battle Ball 14 +nav_venue_sw_lobby_intermediate_4_name=Snow Bombardiers Lobby +nav_venue_tearoom/0_name=Chinese Tea Room +nav_venue_sun_terrace/0_desc=Grab a sunbed and top up that tan! +nav_venue_bb_lobby_expert_7/0_desc= +nav_venue_bb_lobby_amateur_7/0_desc= +nav_venue_bb_lobby_expert_3/0_desc= +nav_modify_roomdescription=Room Description +nav_prvrooms_notfound=Your search did not match any rooms +nav_venue_bb_lobby_tournament_14/0_desc= +nav_venue_bb_lobby_free_3/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_sw_lobby_intermediate_3_name=Snow Bombardiers Lobby +nav_venue_bb_lobby_tournament_17/0_desc= +nav_venue_bb_lobby_intermediate_1/0_desc= +nav_venue_habbo_cinema_name=Habbo Cinema +nav_venue_bb_lobby_beginner_15/0_desc= +nav_venue_the_den/0_desc=Popular? Win a cool band and party at your school. You soon will be! +nav_venue_bb_lobby_amateur_2_name=Gevorderden Battle Ball 3 +nav_hotelview=Hotel view +nav_venue_bb_lobby_expert_6/0_desc= +nav_venue_rooftop/0_desc=One of the highest points in Habbo Hotel! +nav_delroom3=Room deleted! +nav_modify_nameshow=Show your name in the room info +nav_venue_bouncer_room_4_name=Experts Battle Ball Arena +nav_venue_bb_arena_2_name=Battle Ball Amatöörit +nav_venue_bb_lobby_beginner_5_name=Beginners Battle Ball 6 +nav_modify_doorstatus_locked=Locked (visitors have to ring the bell) +nav_modify_doorstatus_pwagain=pw again: +nav_venue_sw_lobby_beginner_2_name=Snow Rookies Lobby +nav_venue_bb_lobby_tournament_desc=Play battle ball tournament! +Alert_YourPasswordIstooShort=Room password is too short. It must be at least 6 characters long +nav_venue_sw_lobby_expert_0/0_desc= +nav_venue_sw_lobby_beginner_9/0_desc= +nav_venue_pizza_name=Slice of Life +nav_venue_picnic/0_name=Picnic Garden +nav_venue_bb_lobby_expert_2_name=Experts Battle Ball 3 +nav_venue_sw_lobby_beginner_8_name=Snow Rookies Lobby +nav_venue_bb_lobby_beginner_14_name=Beginners Battle Ball 15 +nav_venue_kattoterassi/0_desc=When push comes to shove... +nav_venue_bb_lobby_tournament_0/0_desc= +nav_venue_the_den_name=The Den +nav_venue_bb_lobby_free_2/0_desc=Meet friends and play BattleBall: Rebound! +nav_venue_tv_studio_general/0_desc=Suosikki rules! Musaa, leffoja ja staroja! +nav_venue_bb_lobby_expert_1/0_desc= +nav_venue_bb_lobby_expert_9/0_desc= +nav_deleteroom=Delete +nav_venue_bouncer_room_0_name=Battle Ball Competitie Arena +nav_venue_sw_lobby_tournament_desc=For stand-alone Tournaments. +nav_venue_bb_lobby_beginner_19/0_desc= +nav_venue_eric's_eaterie/0_desc=Join Eric for a bite to eat +nav_venue_habbo_cinema/0_desc=Now Showing: The Making of Habbo Big Brother +nav_people=Who's in here? +nav_recommended_rooms=Recommended Rooms +nav_venue_bb_lobby_beginner_8_name=Beginners Battle Ball 9 +nav_venue_sw_lobby_free_7_name=Free Game Lobby +nav_venue_bb_lobby_intermediate_1_name=Semi-profs Battle Ball 2 +nav_venue_sw_lobby_amateur_3/0_desc=Astetta rankempaa lumisotaa. +nav_venue_bb_lobby_beginner_18/0_desc= +nav_venue_sw_lobby_amateur_7/0_desc=Astetta rankempaa lumisotaa. +nav_venue_sw_lobby_tournament_0/0_desc= +nav_venue_sw_lobby_amateur_1/0_desc= +nav_venue_sw_lobby_free_1_name=Free Game Lobby +nav_venue_sw_lobby_free_1/0_desc= +nav_venue_bb_lobby_tournament_14_name=Competitie Battle Ball 15 +nav_refresh_recoms=Refresh recommendations +nav_venue_bb_lobby_expert_8/0_desc= +nav_venue_bb_lobby_amateur_11/0_desc= +nav_venue_welcome_lounge/0_desc=New? Lost? Get a warm welcome here! +nav_venue_sport_name=Power Gym +nav_venue_bb_lobby_amateur_1/0_desc= +nav_venue_bb_lobby_beginner_11_name=Beginners Battle Ball 12 +nav_venue_emperors_name=Emperor's hall +nav_venue_hotel_kitchen/0_desc=Beware the flying knives! +nav_venue_bb_lobby_beginner_4/0_desc= +nav_venue_sw_lobby_free_5/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_help_title=Want a room of your own? +nav_venue_sw_lobby_beginner_1/0_desc= +nav_venue_sunset_cafe_ii/0_desc=Home to the Duck Island residents. +nav_venue_sw_lobby_beginner_7/0_desc= +nav_venue_sw_lobby_amateur_desc=Practice improves a Snow Stormer's aim... Ops, missed! +nav_venue_bb_lobby_amateur_8/0_desc= +nav_venue_sw_lobby_tournament_7_name=Tournament Lobby +nav_searchbutton=Search +nav_venue_club_mammoth/0_desc=Monumental and magnificent. For Habbo Club members only. +nav_venue_bb_game/0_name=Battle Ball Arena +nav_venue_pizzeria/0_desc=Pizza; food of the hungry! +nav_venue_pizza_desc=Tunnelmallinen pizzapaikka kiireettömään nautiskeluun. +nav_venue_bb_lobby_amateur_12/0_desc= +nav_venue_sw_lobby_free_6_name=Free Game Lobby +nav_venue_sw_lobby_free_8/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_theatredrome_xmas_name=Theatredrome Xmas +nav_venue_sw_lobby_free_0_name=Free Game Lobby +nav_venue_tv_studio_name=MuchMusic HQ +nav_venue_sw_arena_amateur_name=Playing amateur game +nav_venue_hallway_name=Hallway +nav_venue_sw_lobby_intermediate_desc=For the accomplished Snow Stormers. +nav_venue_bb_lobby_beginner_3_name=Beginners Battle Ball 4 +nav_venue_theatredrome_name=Theatredrome +nav_venue_bb_lobby_tournament_19/0_desc= +nav_venue_bb_lobby_amateur_9/0_desc= +nav_ringbell=The door is locked. Ringing the bell, and waiting... +nav_venue_bb_lobby_tournament_11_name=Competitie Battle Ball 12 +nav_venue_bb_lobby_beginner_5/0_desc= +nav_venue_sw_arena_free_name(0)=SnowStorm - kaikki kaikkia vastaan +nav_venue_rooftop_name=Rooftop Cafe +nav_venue_eric's_eaterie_name=Eric's Eaterie +nav_venue_sw_lobby_expert_desc=For the William Tells and Robin Hoods of Snow Storming. +navigator.no_category=No Category +nav_venue_sw_lobby_intermediate_1_name=Snow Bombardiers Lobby +nav_publicRooms=Public Spaces +nav_venue_rooftop_rumble_ii/0_desc=Duel on the floats or chill by the waterfall. +nav_venue_bb_lobby_beginner_12/0_desc= +nav_updatenote_header=Note! +nav_room_banned=You are banned from this room. +nav_venue_bb_lobby_amateur_5_name=Gevorderden Battle Ball 6 +nav_venue_bb_lobby_tournament_4_name=Competitie Battle Ball 5 +nav_cancel=Cancel +nav_tryingpw=Trying the password... +nav_venue_sw_lobby_beginner_desc=Yes, take a load of snowballs and hit the enemy Teams. Easy, isn't it? +nav_venue_sw_lobby_amateur_6/0_desc=Astetta rankempaa lumisotaa. +nav_venue_bb_lobby_tournament_6_name=Competitie Battle Ball 7 +nav_venue_sw_lobby_beginner_8/0_desc= +nav_venue_bb_lobby_tournament_6/0_desc= +nav_venue_sw_lobby_tournament_5_name=Tournament Lobby +nav_venue_habbo_lido_ii/0_desc=Pool is open for swimming and diving! +nav_venue_skylight_lobby/0_desc=This was the Habbo Big Brother Lounge during series 1 (2008) +nav_venue_sw_lobby_tournament_2/0_desc= +nav_showfull=Show Full Rooms +nav_venue_sw_lobby_tournament_6_name=Tournament Lobby +nav_venue_space_cafe/0_desc=Star Wars The Clone Wars on Blu-Ray and DVD from December 8 +nav_venue_bouncer_room_3_name=Semi-profs Battle Ball Arena +nav_venue_bb_lobby_tournament_12_name=Competitie Battle Ball 13 +nav_venue_bb_lobby_amateur_14/0_desc= +nav_venue_ice_cafe/0_desc=Grab some brain juice! +nav_removerights_desc=Remove all rights to this room from other users. +nav_modify_doorstatus_pwprotected=Password protected: +nav_modify_maxvisitors=Choose maximum number of visitors +nav_venue_sw_lobby_beginner_5_name=Snow Rookies Lobby +nav_venue_sw_lobby_amateur_5/0_desc=Astetta rankempaa lumisotaa. +nav_venue_netcafe_name=My Habbo Home Netcafe +nav_venue_club_massiva/2_desc=Make all the right moves +nav_venue_park_name=Habbo Gardens +nav_remrightsconf=You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room. +nav_venue_bb_lobby_beginner_1/0_desc= +nav_venue_bb_lobby_expert_desc=Expert battle ball! +nav_venue_sw_lobby_tournament_4_name=Tournament Lobby +nav_venue_sw_lobby_tournament_8_name=Tournament Lobby +roomatic_choosecategory=Choose a category for your room. +nav_venue_sw_lobby_tournament_7/0_desc= +nav_venue_bb_arena_4_name=Battle Ball Expertit +nav_venue_bouncer_room_1_name=Beginners Battle Ball Arena +nav_venue_sport/0_desc=Get a solid work out! +nav_venue_bb_lobby_intermediate_5/0_desc= +nav_venue_bb_lobby_beginner_13/0_desc= +nav_venue_sw_lobby_free_7/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_sun_terrace_name=Sun Terrace +nav_venue_bb_lobby_intermediate_6/0_desc= +nav_venue_bb_lobby_expert_0_name=Expert +nav_venue_welcome_lounge_iii/0_desc=New? Lost? Get a warm welcome here from Habbo eXperts. +nav_venue_bb_lobby_tournament_15/0_desc= +nav_venue_sw_lobby_free_6/0_desc=Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan. +nav_venue_sw_lobby_intermediate_0_name=Snow Bombardiers Lobby +nav_error_room_closed=The room is closed. +nav_venue_sw_lobby_free_3/0_desc= +nav_venue_bb_lobby_intermediate_8/0_desc= +nav_venue_sw_lobby_tournament_3/0_desc= +nav_gobutton=Go +nav_venue_bb_lobby_tournament_13/0_desc= +nav_private_helptext_hd_main=Habbo Guest Rooms +nav_venue_bb_arena_0_name=Battle Ball kaikille +nav_updatenote=Updating your room properties may take a while. The changes have been made, but it'll take a few minutes until all Habbos can see them. +nav_venue_sw_lobby_amateur_4_name=Snow Slingers Lobby +nav_venue_the_dirty_duck_pub_name=The Dirty Duck Pub +nav_venue_orient_name=Club Orient +nav_venue_bb_lobby_tournament_11/0_desc= +nav_venue_welcome_lounge_ii/0_desc=New? Lost? Get a warm welcome here! +nav_rooms_search=Search +nav_venue_old_skool_name=Old Skool Habbo +nav_venue_bb_lobby_expert_2/0_desc= +nav_venue_sw_lobby_intermediate_4/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_theatredrome_valentine_name=Theatredrome Valentine +nav_venue_sw_arena_expert_name(0)=SnowStorm Expertit +nav_public_helptext=These are hotel's public rooms. What are you waiting for? Go and meet other Habbos! +nav_venue_sw_lobby_tournament_1/0_desc= +nav_venue_bb_lobby_intermediate_desc=Intermediate battle ball! +nav_venue_beauty_salon_general/0_desc=Angus, Thongs and Perfect Snogging in cinemas July 25th +nav_venue_picnic_dudesons/0_desc=Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com +nav_venue_hallway/0_desc=Connecting you to the heart of Habbo Hotel +nav_venue_dusty_lounge/0_desc=Old, cool, Dusty and the perfect room for the biggest brains in Habbo +nav_rooms_favourite=Favourites +nav_venue_bb_lobby_tournament_1/0_desc= +nav_venue_bb_arena_3_name=Battle Ball Keskitaso +nav_openbutton=Open +nav_venue_sw_lobby_beginner_4/0_desc= +nav_venue_rooftop_rumble/0_desc=Wabble Squabble your bum off in our cool rooftop hang out +nav_venue_library/0_desc=Books! Glorius books! Fill yourself with information and lose yourself in wonderful literary worlds. +nav_venue_bb_lobby_tournament_8/0_desc= +nav_venue_bb_lobby_tournament_18/0_desc= +nav_venue_bb_lobby_amateur_4/0_desc= +nav_venue_bb_lobby_beginner_16/0_desc= +nav_venue_bb_lobby_intermediate_7/0_desc= +nav_venue_sw_lobby_free_2_name=Free Game Lobby +nav_venue_beauty_salon_loreal_name=Beauty salon +nav_venue_habburger's/0_desc=Get food here! +nav_venue_dusty_lounge_name=Dusty Lounge +nav_roomispwprotected=The room is password protected. +nav_venue_cafe_gold_name=The Oasis +nav_venue_tv_studio_nike/0_desc= +nav_venue_beauty_salon_general_name=Beauty salon +nav_venue_theatredrome_valentine/0_desc=Home of Ralph (wannabe panda in training) +nav_delroom2=Are you sure you want to delete this room? All the furniture left in it will also be deleted. +nav_venue_sw_lobby_free_9_name=Free Game Lobby +nav_venue_floatinggarden_name=Floating Garden +nav_venue_bb_lobby_intermediate_5_name=Semi-profs Battle Ball 6 +nav_venue_star_lounge_name=Star Lounge +nav_venue_bb_lobby_beginner_7/0_desc= +nav_venue_sw_lobby_intermediate_0/0_desc= +nav_venue_bb_lobby_amateur_7_name=Gevorderden Battle Ball 8 +nav_private_helptext=These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people! +nav_roomnfo_hd_own=Own Rooms +nav_venue_bb_lobby_tournament_12/0_desc= +nav_error_room_full=The room is full. +nav_venue_sw_arena_tournament_name=Playing a tournament game! +nav_venue_sw_lobby_tournament_9_name=Tournament Lobby +nav_venue_club_massiva/1_name=Chill-out Room +nav_modify_doorstatus_givepw=Password for the room +nav_fullbutton=Full +nav_venue_sw_lobby_tournament_5/0_desc= +navigator=Hotel Navigator +nav_venue_floatinggarden/0_desc=Climb the rocks, chill in the shade and watch for pirate ships! +nav_venue_bb_lobby_beginner_12_name=Beginners Battle Ball 13 +nav_venue_sw_lobby_free_0/0_desc=Meet friends and play SnowStorm! +nav_venue_sw_lobby_amateur_0/0_desc= +nav_venue_bb_lobby_beginner_11/0_desc= +nav_venue_bb_lobby_beginner_6_name=Beginners Battle Ball 7 +nav_hidefull=Hide Full Rooms +nav_venue_sw_lobby_beginner_2/0_desc= +nav_createroom=Create Own Room +nav_venue_bb_lobby_tournament_5_name=Competitie Battle Ball 6 +nav_venue_bb_lobby_beginner_7_name=Beginners Battle Ball 8 +nav_venue_tearoom_name=Chinese Tea Room +nav_popup_go=>> +nav_venue_bb_lobby_beginner_14/0_desc= +nav_venue_sw_lobby_beginner_3/0_desc= +nav_venue_bb_lobby_expert_3_name=Experts Battle Ball 4 +nav_venue_sw_lobby_intermediate_2/0_desc= +nav_src_hd=Search Results. +nav_venue_cafe_ole_name=Cafe ole +nav_venue_sw_lobby_intermediate_3/0_desc=Lumisota sen kuin vain kovenee. +nav_venue_theatredrome_easter/0_desc=Easter is Eco! Now sing the environmentally friendly song. +nav_venue_habbo_lido_name=Habbo Lido +nav_venue_habbo_lido/0_desc=Splish, splash and have a bash in the Habbo pool! +nav_venue_bb_lobby_tournament_5/0_desc= +nav_venue_bb_lobby_tournament_7_name=Competitie Battle Ball 8 +nav_removefavourites=Remove from favourites +nav_venue_sw_arena_free_name=Playing free for all game +nav_venue_bb_lobby_tournament_9_name=Competitie Battle Ball 10 +nav_venue_sw_lobby_expert_0_name=Snow Marksmen Lobby +nav_venue_bouncer_room_2_name=Gevorderden Battle Ball Arena +nav_venue_chill/0_desc=Where Ideas can flow freely +nav_modify_letothersmove=Let other people move and leave furniture in the room. +nav_venue_bb_lobby_tournament_2_name=Competitie Battle Ball 3 +nav_venue_sw_lobby_tournament_0_name=Tournament Lobby +nav_venue_main_lobby/0_desc=The heart of Habbo Hotel +nav_ok=OK +nav_venue_bb_lobby_tournament_10_name=Competitie Battle Ball 11 +nav_roomnfo_hd_fav=Favourite Rooms +nav_venue_cafe_ole/0_desc=Relax with friends over one of Marias specialty coffees +nav_venue_bb_lobby_intermediate_4/0_desc= +nav_venue_sw_arena_beginner_name=Playing beginner game +nav_venue_bb_lobby_amateur_8_name=Gevorderden Battle Ball 9 +nav_venue_main_lobby_name=Main Lobby +nav_venue_bb_lobby_amateur_6/0_desc= +nav_venue_bb_lobby_expert_5/0_desc= +nav_createroom_hd=Here you can create your own room! +nav_venue_bb_lobby_tournament_10/0_desc= +nav_fav_hd=Your Favourite Rooms. +roomevent_type_2=Trading +roomevent_default_name=Event name.. +roomevent_not_available=Sorry, no events available +roomevent_type_0=Hottest Events +roomevent_type_6=Grand Openings +roomevent_default_description=Come and check out my event! +roomevent_type_5=Debates & Discussion +roomevent_default_desc=Event description.. +roomevent_quit=End event +roomevent_type_1=Parties & Music +roomevent_browser_title=Events +roomevent_create=Create +roomevent_create_name=Type the name of your event +roomevent_type_9=Group Events +roomevent_type_8=Jobs +roomevent_host=Host: +roomevent_type_11=Helpdesk +roomevent_type_7=Dating +roomevent_type_10=Performance +roomevent_type_3=Games +roomevent_browser_create=Host an event +roomevent_starttime=Started at: +interface_icon_events=Open the room event browser +roomevent_invalid_input=You must give your event a name and a description. +roomevent_create_description=Describe your event +roomevent_edit=Edit +roomevent_type_4=Habbo Guides' Events +credit_trade_value=Includes credit furnis worth %value% credits. +purse_value=VALUE +purse_coins=Habbo Credits +purse_vouchers_exitbutton=Cancel +purse_vouchers_error1=Invalid voucher code. +purse_vouchers_checking=Checking code, please wait... +credit_redeem_text=You are going to change Furni to %value% credits. +transaction_system_refunds=Refund +purse_head=HABBO ACCOUNT ACTIVITY +purse_link=Click here to see how to get Credits. +purse_vouchers_sendbutton=Get Credits! +purse_vouchers_helpbutton=More about vouchers >> +purse_transaction=View Transactions +# purse_ad_url=http://www.sulake.com/images/habbo.gif +purse_vouchers_error0=Technical error! Cannot redeem voucher. +transaction_system_bank_op=Osuuspankki +credit_redeem_info=More info about credit furni >> +transaction_system_sms_dna=DNA +purse_header=Habbo Purse +purse_credits=You have \x1 Habbo Credit(s) in your purse. +purse_event=ACTIVITY +credit_redeem_url=http://%predefined%//help/19 +purse_info=DESCRIPTION +purse_info_tickets=Gaming Tickets +win_voucher=Habbo Credit Code +purse_buy_coins=Buy Credits +transaction_system_sms_win_tmobile=T-Mobile SMS +transaction_system_bank_luottokunta=Luottokortti +win_purse=Habbo Purse +# purse_Click_url=http://www.sulake.com +purse_vouchers_error3=This voucher must be redeemed on the Habbo website +credit_redeem_button=Redeem +transaction_system_bank_digiraha=Digiraha +transaction_system_bank_sampo=Sampo +purse_vouchers_success=Voucher was successfully redeemed. You have the Credits. +transaction_system_sms_slahti=Saunalahti +transaction_system_stuff_store=Catalogue purchase +purse_vouchers_error2=Product delivery failed, please contact Customer Service +purse_info_film=Films For Camera +purse_note=NOTE : The transactions are updated at 6 am every day. +transaction_system_bibit=Credit card +purse_noevents=You haven't made any transactions yet. Click the button below to find out how to get Habbo Credits.\rRemember: you must ask your parents permission before you buy Habbo Credits. +transaction_system_club_habbo=Habbo Club payment +purse_voucherbutton=Vouchers +transaction_system_bank_nordea=Nordea +transaction_system_sms_sonera=Sonera +transaction_system_sms_win_orange=Orange SMS +transaction_system_splashplastic=SplashPlastic +purse_vouchers_entercode=Enter code here: +more_info_link=More Information +purse_vouchers_furni_success=Voucher was successfully redeemed. You have been given the following furniture: +transaction_system_sms_win_vodafone=Vodafone SMS +transaction_system_messenger=Console SMS +purse_time=TIME +transaction_system_tsms_win_tmobile=T-Mobile SMS +transaction_system_sms_rl=Elisa +purse_date=DATE +purse_vouchers_error3_url=http://%predefined%//credits +transaction_system_sms_radiolinja=Elisa +credit_redeem_window=Redeem credit furni +purse_vouchers_info=When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click 'Get Credits!' and they'll be added to your purse. +transaction_system_sms_win_kpn=KPN SMS +purse_back_to_credits=Back To Purse +transaction_system_creditcards_is=Creditcard +transaction_system_htk_singledrop=Landline +purse_head2=ACCOUNT TRANSACTIONS +tx_history.description.bank_wallie=Wallie-card +transaction_system_sms_win_btcellnet=O2 SMS +purse_youhave=You Have +purse_vouchers_helpurl=http://%predefined%//credits/? +transaction_system_sms_sra=Sonera +transaction_system_sms_telia=Telia +transaction_system_web_internal=Housekeeping purchase +camera_dialog_open=Shoot +camera_open_dialog_text=Would you like to take some photos\ror put your camera in your room? +camera_open_dialog_heading=Camera +cam_txtscreen.help=Caption +cam_save_nofilm=You have run out of film.\rGet a roll (5 photos) from\rthe Catalogue for 6 Credits. +camera_dialog_place=Move +photo_legend=Caption +cam_release.help=Cancel Photo +cam_film.help=Number Of Photos Left +cam_zoom_in.help=Zoom In +cam_zoom_out.help=Zoom Out +cam_shoot.help=Shutter Release +cam_savetxt=Saving Photo... +cam_save.help=Save & Print Photo +badge_desc_XMA=Penguin Competition winner 2008! +badge_name_HX7=Habbo eXpert +badge_name_AC2=Bensalem Tribe Member +badge_desc_ACH_EmailVerification1=For activating your email address and for making it easier to return your password. Worth 200 pixels. +badge_desc_MMC= +badge_name_ACH_Login1=Traveler +badge_desc_WH6=Awarded to competition winners during Habboween 2008. +badge_name_XM1=Rasta Santa +badge_desc_HF1=I was a member of the Habbo Dream Team 2006! +badge_name_ACH_GamePlayed10=Battle Royal X +badge_name_Z04=Environmentalism +badge_name_HX5=Habbo eXpert +badge_desc_ACH_AllTimeHotelPresence9=Level 9 - spending total of 1152 hours in hotel. Worth 20 pixels. +badge_name_DK6=Camp Rock Guitar Green +badge_desc_Z51=Winner of a 17 Again competition +badge_desc_WH4=Habboween competition /event winner. +badge_name_U02=Idea Agency competition winner! +badge_name_HX3=Habbo eXpert +badge_desc_ACH_GamePlayed5=Level 5 - For playing and winning Snow Storm or for the game of Battle Ball 100 times. Worth 100 pixels. +badge_desc_CY3=Awarded to owners of trials that MeiLing failed. CNY 2009 +badge_desc_Z58=Official Habbo Museum security guard +badge_name_NEC=HMF Golden Glitterball +badge_name_ACH_AllTimeHotelPresence9=Online time IX-Tornado +badge_name_KO1=Koala Face +badge_desc_UKH=Dark is Rising sign of stone. 2007. +badge_name_ACH_AIPerformanceVote10=Notorious X +badge_name_ACH_AIPerformanceVote1=Unknown Star I +badge_name_ACH_AIPerformanceVote2=Hidden Talent II +badge_name_ACH_AIPerformanceVote3=Unique III +badge_name_ACH_AIPerformanceVote4=Noteworthy IV +badge_name_ACH_AIPerformanceVote5=Influental V +badge_name_ACH_AIPerformanceVote6=Famous VI +badge_name_ACH_AIPerformanceVote7=Grand VII +badge_name_ACH_AIPerformanceVote8=Well-known VIII +badge_name_ACH_AIPerformanceVote9=Glorious IX +badge_desc_ACH_AIPerformanceVote1=Level 1 - For gathering a vote on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote2=Level 2 - For gathering 20 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote3=Level 3 - For gathering 50 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote4=Level 4 - For gathering 100 votes on stage. Worth 20 pixels. +badge_desc_ACH_AIPerformanceVote5=Level 5 - For gathering 180 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote6=Level 6 - For gathering 200 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote7=Level 7 - For gathering 200 votes on stage. Worth 40 pixels. +badge_desc_ACH_AIPerformanceVote8=Level 8 - For gathering 300 votes on stage. Worth 60 pixels. +badge_desc_ACH_AIPerformanceVote9=Level 9 - For gathering 300 votes on stage. Worth 100 pixels. +badge_desc_ACH_AIPerformanceVote10=Level 10 - For gathering 300 votes on stage. Worth 200 pixels. +badge_desc_Z32=I took a stand against knife crime +badge_desc_UK2=The sole champion of the Always Salon in 2006. +badge_desc_PIR=Arrr! Pirate competition winner May 2006. +badge_name_ACH_Student1=Habbo Student +badge_name_Z29=Blue Insider +badge_desc_ACH_Login8=Level 8 - For logging in 80 days in a row. Sensational. Worth 200 pixels. +badge_desc_NEI=HMF:Neon Epic Party Winner +badge_desc_HM1=Built a room for the Habbo Mall 2009 +badge_desc_UKF=Dark is Rising sign of iron. 2007. +badge_name_Z20=Mall Detective (2/2) +badge_name_VA7=Small Shalimar +badge_desc_Z30=Awarded to all winners and runners up of the pumpkin design competition. October 2008. +badge_desc_ACH_GamePlayed1=Level 1 - For playing and winning Snow Storm or for the game of Battle Ball. Worth 10 pixels. +badge_name_OL2=Habbolympic Silver +badge_desc_Z18=Against cervical cancer campaign supporter. +badge_name_WTM=Safe Surfer +badge_name_ACH_Motto1=Master of Words +badge_desc_UK4=Habbo Council member. The Habbo Council postponed all future meetings from June 2006. +badge_name_DU1=Gold Habbowealth +badge_name_UKA=Summer Resort +badge_name_ST3=Energy Analyst +badge_name_CL1=Idea Agency competition runner-up! +badge_desc_UKD=Adventure Story competition winner 2007. +badge_desc_Z35=Friday's Official Friend +badge_desc_HJ5=Winner of the Harajuku Lovers quest +badge_desc_ACH_RespectGiven1=For giving respect 100 times. Worth 20 pixels. +badge_name_UKC=Habbo Journalist +badge_desc_AR2=Alhambra Prize Winner 2008 +badge_name_HX9=Habbo eXpert +badge_name_UKQ=St Trinian's Head Boy +badge_desc_ACH_MGM9=Level 9 - For creating your own fellowship - party of 16. For inviting two more real life friends to Habbo. Worth 180 pixels. +badge_desc_ST2=You need Science and Maths skills for this job! +badge_desc_VIP=Celebrity guests and special visitors. +badge_name_Z58=Museum Security +badge_desc_ACH_GamePlayed7=Level 7 - For playing and winning Snow Storm or game of Battle Ball 200 times. Worth 150 pixels. +badge_desc_HX9=X Leader +badge_desc_DN2=Roadtrip USA 5 Points 2008. +badge_name_EC4=HabboSphere Contributor +badge_desc_UKQ=Winner of St Trinians Head Boy competition. +badge_name_UK6=Billboard Designer +badge_name_ACH_MGM7=Housewarming +badge_desc_HX7=Gold Tech eXpert +badge_name_XM3=Xmas Reindeer +badge_desc_DN4=Roadtrip USA 5 Points 2008. +badge_desc_Z02=Celebrating Earth Week 2020 with Habbo! +badge_desc_ACH_RegistrationDuration10=Level 10 - For true Habbos who have been members of the community for 5 years. Worth 200 pixels. +badge_name_FRG=Ultimate Bobba Champ +badge_name_ACH_Login7=Space dust on your shoes +badge_desc_ACH_AllTimeHotelPresence7=Level 7 - spending total of 288 hours in hotel. Worth 20 pixels. +badge_name_EC2=Melting Ice Caps Survivor +badge_desc_SB7=Winner of a Habbo Hood gang competition. September 2008 +badge_name_UKO=Habbo Seeker +badge_name_HX1=Habbo eXpert +badge_desc_Z16=My Spy Family quest 3 winner. +badge_name_UK8=NSPCC +badge_name_Z18=HPV +badge_name_ST5=Sports Technologist +badge_name_ACH_MGM9=Fiesta +badge_name_ACH_Login3=Frequent Resident +badge_desc_ACH_RoomEntry7=Level 7 - For hanging out in 120 Guest Rooms that you do not own .Gold digger. 20 pixels. +badge_desc_ACH_AllTimeHotelPresence5=Level 5 - spending total of 48 hours in hotel. Worth 20 pixels. +badge_name_NEI=HMF: Neon Club Winner +badge_name_ACH_RespectEarned2=Been respected 6 times. +badge_name_ACH_AllTimeHotelPresence3=Online time III-Dust Devil +badge_desc_ACH_AllTimeHotelPresence3=Level 3 - spending total of 8 hours in hotel. Worth 20 pixels. +badge_name_HJ4=Harajuku Lovers Love +badge_desc_ACH_GamePlayed9=Level 9 - For playing and winning Snow Storm or the game of Battle Ball 360 times. Worth 280 pixels. +badge_desc_ACH_GamePlayed3=Level 3 - For playing and winning Snow Storm or for the game of Battle Ball 20 times. Worth 50 pixels. +badge_desc_SB3=Shabbolins gang member on the Streets Of Bobba September 2006. +badge_desc_Z28=Awarded to The Insiders poll and quest winners. October 2008. +badge_name_HBA=Gold Hobba +badge_name_UKK=Fantastic4 Bronze +badge_desc_UKZ=Awarded to fashion designers during Fashion Week 2008. +badge_name_ACH_TraderPass1=Trader's Pass +badge_name_ACH_RespectEarned4=Been respected 66 times. +badge_desc_ACH_Graduate1=For completing your confusing Habbo newbie experience. Worth 20 pixels. +badge_name_ACH_RoomEntry5=Vacationer +badge_name_VA2=Valentine Heart +badge_desc_YAK=Awarded for competitions during Japanese Sushi campaign. +badge_desc_ACH_MGM8=Level 8 - For creating your own fellowship - party of 14. For For inviting two more real life friends to Habbo. Worth 170 pixels. +badge_name_Z36=Hotel For Dogs 1* Resort Owner +badge_desc_UKB=Murder mystery play writing competition winner 2007. +badge_desc_ACH_RegistrationDuration8=Level 8 - For true Habbos who have been members of the community for 3 years. Worth 200 pixels. +badge_desc_ACH_Login4=Level 4 - For logging in 28 days in a row. Scary. Worth 150 pixels. +badge_name_UKS=Perfect Prefect +badge_name_Z31=HC-ARTIST +badge_desc_VA3=Awarded to competition winners during Valentine's 2008. +badge_name_ACH_RoomEntry3=Ultimate Room Raider +badge_desc_TC1=BattleBall Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_ACH_MGM6=Level 6 - For creating your own fellowship - party of 10. For inviting two more real life friends to Habbo. Worth 150 pixels. +badge_name_FAN=Official Fansite Staff +badge_desc_Z14=My Spy Family quest 2 winner. +badge_desc_U06=Winning a Habbo Raceway Grand Prix. +badge_desc_ACH_RegistrationDuration6=Level 6 - For true Habbos who have been members of the community for a year. Worth 200 pixels. +badge_name_ACH_RegistrationDuration4=40 % True Habbo +badge_name_Z38=Hotel For Dogs 3* Resort Owner +badge_name_UKU=Theme Park Clown +badge_name_GLF=Lynx +badge_name_ACH_AllTimeHotelPresence5=Online time V- Haze +badge_name_ACH_HappyHour1=Happy Hour +badge_name_SB2=Bobbaschi +badge_name_Z32=It Doesn't Have To Happen +badge_desc_SU2=Lvl2 Tiki Competition winner. Middle award. Summer 2008. +badge_name_UKM=Fantastic4 Gold +badge_name_SU2=Medium Tiki Mana +badge_name_ACH_GamePlayed4=Battle Royal IV +badge_desc_ACH_RegistrationDuration2=Level 2 - For true Habbos who have been members of the community for 3 weeks. Worth 60 pixels. +badge_name_ACH_RegistrationDuration10=100% True Habbo +badge_desc_FRG=Ultimate Bobba Wrestling Champion 2008. Kick Wars competition. +badge_name_U06=Habbo Raceway GP +badge_desc_ACH_RoomEntry9=Level 9 - For hanging out in 160 Guest Rooms that you do not own. Spaceman. Worth 30 pixels. +badge_desc_ACH_RespectEarned6=Level 6 - For earning respect a further 200 times. Worth 200 pixels. +badge_name_ACH_AllTimeHotelPresence1=Online time I-Thunderstorm +badge_name_WH6=Virus Ooze +badge_desc_DU1=Habbowealth Games 2005. +badge_desc_DSX=Roadtrip USA Room Winner 2008. +badge_desc_ACH_AllTimeHotelPresence1=Level 1 - spending total of 1 hour in hotel. Worth 30 pixels. +badge_desc_WTM=Way too much information! +badge_desc_WH2=Habboween competition /event winner. +badge_desc_ACH_RespectEarned8=Level 8 - For earning respect a further 200 times. Worth 200 pixels. +badge_name_Z60=The Golden Tablet +badge_desc_ST5=You need Science and Maths skills for this job! +badge_name_ACH_RegistrationDuration6=60 % True Habbo +badge_name_AF1=April Fools Day 2009 +badge_desc_AC4=Used the inner Spirit Eagle to find the Lost Tribe of Bensalem +badge_name_SNW=SnowStorm HOF +badge_name_UKX=St Trinian's Quiz +badge_desc_ACH_RespectEarned4=Level 4 - For earning respect a further 50 times. Worth 50 pixels. +badge_name_UKI=Water Sign +badge_name_NWB=Silver Hobba +badge_name_UKE=Tournament King +badge_name_MD1=Meet Dave Quiz +badge_name_Z17=Hairspray Talent +badge_name_HJ2=Harajuku Lovers G +badge_desc_UKS=Winner of the St Trinians perfect prefect competition. +badge_desc_Z24=Official evil scientist! Maximum level. October 2008. +badge_name_ACH_GamePlayed6=Battle Royal VI +badge_desc_AC2=Initiated through the Totem bases of fire GREEN +badge_name_ACH_Login5=A Piece Of The Furniture +badge_name_UKG=Fire Sign +badge_remove=Clear +badge_desc_ACH_RegistrationDuration4=Level 4 - For true Habbos who have been members of the community for 16 weeks. Worth 120 pixels. +badge_desc_FAN=Official Fansite representative. Check out the Official fansite rooms on the upper floors of the Habbo Mall. +badge_name_Z15=Evil Bot Affair +badge_desc_GRR=The Gorillaz visited Habbo in 2005! +badge_desc_MD2=Awarded to winners of the Meet Dave body building competition. 2008. +badge_name_HJ6=Harajuku Lovers Lil' Angel +badge_desc_Z01=Habbo Fashion Week 2008 competition winner. +badge_name_ACH_AllTimeHotelPresence7=Online time VII- Cyclone +badge_name_XXX=Habbo eXpert +badge_name_DN3=Green Fuel Flag +badge_desc_HJ3=Harajuku Lovers Baby +badge_desc_UKW=Theme Park team competition winner. 2008 +badge_desc_ACH_HappyHour1=For spending a Happy moment in Habbo! Log in on Happy Hour to receive this achievement. Worth 100 pixels. +badge_name_HC2=HC Club membership II +badge_name_DS7=Green Tea Elemental +badge_name_HC5=HC Club membership V +badge_name_Z12=HBB Champion +badge_name_Z49=Bionicle Quiz Winner +badge_name_UKZ=Fashion Designer +badge_desc_Z49=I showed the intelligence of a Bionicle glatorian! +badge_desc_ACH_RespectEarned3=Level 3 - For earning respect a further 10 times. Worth 20 pixels. +badge_name_DN5=Red Fuel Flag +badge_name_ACH_AvatarLooks1=Looks that Kill +badge_desc_AF1=You got pranked on April Fools Day 2009 +badge_name_GLI=Eagle +badge_desc_NEB=HMF:Neon Fan Club Winner +badge_desc_EC4=Trying to make Habbo a greener place +badge_name_Z47=Bionicle Quest Winner +badge_desc_AP1=The HABprentice Boardroom Table Member +badge_desc_KO1=For creating the perfect Koala habitat. November 2008. +badge_desc_SB1=Bouncing Queens gang member on the Streets Of Bobba September 2006. +badge_name_DSX=Tourist Expert +badge_desc_ACH_RespectEarned10=Level 10 - For earning respect a further 200 times. Worth 400 pixels. +badge_desc_UKK=Fantastic Four Bronze Medallion. 2007. +badge_name_OL3=Habbolympic Bronze +badge_desc_VA5=Awarded to paired Habbos during Valentine's each year. +badge_name_YAK=Black Dragon +badge_name_AC3=Bensalem Tribe Member +badge_desc_VA8=For making a winning Bollywood Movie. 2009. +badge_desc_UKU=Theme Park entertainment winner. 2008 +badge_name_ACH_RespectEarned8=Been respected 766 times. +badge_name_ACH_GamePlayed2=Battle Royal II +badge_desc_EXH=Hobba volunteer mod until 2006. +badge_desc_RU3=SafeSid Competition Winner +badge_name_ACH_RegistrationDuration1=10 % True Habbo +badge_desc_DU2=Habbowealth Games 2005. +badge_name_Z10=Underage Festival +badge_name_ACH_MGM2=Luau +badge_desc_Z26=Road Trip USA King badge winner. Awarded to anyone who exchanged 25 Fuel Points. 2008 +badge_desc_XXX=Habbo eXperts are experienced Habbos who answer your questions on Habbo. +badge_name_SHA=Shabboline +badge_desc_GLE=Level 5 - The clever one - is swift of thought and foot. For being a Habbo guide - Here to help. Worth 285 pixels. +badge_name_EXH=Hobba Medal +badge_name_SB7=Habbo Hood Big Flame +badge_name_ACH_RoomEntry8=Sightseer +badge_name_TC1=BattleBall Champ +badge_name_CL3=Idea Agency competition winner! +badge_desc_HC5=Level 5 - For 48 months of Habbo Club membership. Worth 500 pixels. +badge_desc_TC3=SnowStorm Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_SU3=Lvl3 Tiki Competition winner. Highest award. Summer 2008. +badge_desc_ACH_TraderPass1=Level 1 - Achieved by verifying your email, owning Habbo account for at least 3 days and being online at least 1 h. +badge_desc_ACH_Login5=Level 5 - For logging in 35 days in a row. Amazing. Worth 200 pixels. +badge_name_Z26=Road Trip King +badge_name_SB5=Habbo Hood Small Flame +badge_name_DU3=Bronze Habbowealth +badge_desc_SB5=Selected member of a Habbo Hood Group. September 2008 +badge_name_AC5=The Spirit Squid +badge_desc_Z47=I showed the guile of a Bionicle glatorian! +selected_badges=Currently wearing: +badge_desc_U05=Having a Course featured in a Habbo Raceway Grand Prix. +badge_desc_OL2=Awarded to members of the 2nd Habbolympic team 2008. +badge_desc_HX5=Gold Host eXpert +badge_name_SU3=High Tiki Mana +badge_desc_DS7=Elementals Vs Warriors 2007. +badge_name_DN2=Blue Fuel Flag +badge_desc_Z11=Contestant of Habbo Big Brother series1 in July 2008. +badge_desc_DS1=I built the best oldschool room. April 2020. +badge_desc_GLK=Level X - The eXperienced one with the knowledge to show the way. +badge_name_ACH_Login9=Habbo Stayer +badge_name_AP1=The HABprentice Finalist +badge_name_Z24=IGOR EVIL SCIENTIST'S COAT +badge_name_ACH_RegistrationDuration8=80 % True Habbo +badge_name_NEJ=Flynn500 Winner +badge_desc_ACH_MGM2=Level 2 - For creating your own fellowship - party of 3. For inviting one real life friend to Habbo. Worth 55 pixels. +badge_name_GLK=Head Guide (Wolf) +badge_name_Z57=CH Rare Museum +badge_desc_ACH_RoomEntry2=Level 2 - For hanging out in 15 guest rooms that you do not own. Worth 10 pixels. +badge_desc_UK7=Awarded to experts at creating their own quests. +badge_name_XM2=Xmas Elf +badge_name_DS1=OLDSCHOOL +badge_desc_GLI=Level 9 - The sharp eyed one - flying to your aid from afar. For being a Habbo guide - Here to help. Worth 920 pixels. +badge_name_TC3=SnowStorm Champ +badge_name_ACH_MGM5=Slumber Party +badge_name_CY3=High Yin Yang +badge_desc_ACH_RespectEarned1=Level 1 - For earning respect your first time. Worth 20 pixels. +badge_desc_ACH_Student1=For being guided by a Habbo Guide and to be confused no more. Worth 20 pixels. +badge_name_WH2=Evil Smile +badge_desc_DK5=Camp Rock Winner 2008 +badge_name_Z28=Silver Insider +badge_desc_GLA=Level 1 - The speedy one - simple facts and information. For being a Habbo guide - Here to help. Worth 15 pixels. +badge_desc_AP2=The HABprentice: Design Edition Boardroom Table Member +badge_desc_CL1=Idea Agency brief runner-up! +badge_name_WH4=Smelly Brain +badge_name_ACH_Graduate1=The Graduate +badge_name_ACH_AllTimeHotelPresence10=Online time X - F5 Tornado +badge_desc_HX2=Safety eXpert +badge_name_Z01=Habbo Model +badge_desc_NWB=Hobbas were volunteer moderators. +badge_name_XM4=Xmas Tree +badge_name_Z07=Gold Graffiti +badge_desc_AC6=Used the inner Angry Spirit Ape to find the Lost Tribe of Bensalem +badge_desc_Z37=Hotel For Dogs 2* Resort Owner +badge_desc_ACH_MGM4=Level 4 - For creating your own fellowship - party of 6. For inviting two more real life friends to Habbo. Worth 130 pixels. +badge_desc_LC3=Completed the quest of Lemuria 02/09 +badge_name_MB2=Madball Yellow Card +badge_desc_CL3=Idea Agency Golden brief winner! +badge_desc_XM4=Awarded to everyone who visited Habbo during December 2006. Happy Christmas! +badge_desc_UKO=Awarded to anyone who successfully collected all Dark Is Rising Badges. 2007 +badge_desc_Z07=1st place in the Step Up 2 The Streets dance competition. +badge_name_GLC=Otter +badge_name_ACH_MGM3=Block party +badge_desc_Z20=You found the murderer! +badge_name_AR2=Alhambra Sword +badge_name_ACH_GamePlayed7=Battle Royal VII +badge_desc_U01=Idea Agency brief runner-up! +badge_desc_MB2=Competition winners during Habbo Madball 2008. +badge_name_UK3=Frank Bus +badge_name_ACH_AvatarTags1=5 words of wisdom +badge_desc_HC3=Level 3 - For 24 months of Habbo Club membership. Worth 300 pixels. +badge_desc_U03=Idea Agency Golden brief winner! +badge_desc_HX3=Tech eXpert +badge_name_HWB=Evil Smile +badge_desc_ACH_RoomEntry4=Level 4 - For hanging out in 50 Guest Rooms that you do not own. Backpacker. Worth 15 pixels. +badge_desc_HC1=Level 1 - For joining the Habbo Club. Worth 100 pixels. +badge_name_VA5=Wedding Ring +badge_name_Z09=Underage Festival +badge_name_ACH_RespectEarned6=Been respected 366 times. +badge_name_Z22=IGOR HELMET +badge_desc_ACH_Login1=Level 1 - For logging in 5 days in a row. Try it if you dare. Worth 50 pixels. +badge_desc_GLC=Level 3 - The one who will not let you sink under pressure. For being a Habbo guide - Here to help. Worth 34 pixels. +badge_name_GLE=Fox +badge_desc_UKM=Fantastic Four Gold Medallion. 2007. +badge_desc_Z22=You have reached LEVEL6. October 2008. +badge_name_ACH_GamePlayed9=Battle Royal IX +badge_name_ACH_AllTimeHotelPresence8=Online time VIII- Meso Cyclone +badge_desc_Z57=I visited the Rare Museum +badge_desc_WH5=Musically gifted Habbo! +badge_name_ACH_Login4=High Roller +badge_name_HC3=HC Club membership III +badge_name_VA4=Habborella Crew +badge_desc_ACH_MGM10=Level 10 - For creating your own fellowship - party of 18. For inviting two more real life friends to Habbo. Worth 200 pixels. +badge_desc_CY2=Awarded to owners of trials that MeiLing defeated. CNY 2009 +badge_name_HX8=Habbo eXpert +badge_name_Z05=Habbo X Medal +badge_name_WAR=Peace Protest 2008 +badge_desc_Z05=Habbo eXperts were volunteer helpers between 2006 and 2008. +badge_name_UKF=Iron Sign +badge_desc_WH7=Awarded to competition winners during Habboween 2008. +badge_desc_UKG=Dark is Rising sign of fire. 2007. +badge_name_UKP=Perfect Prefect +badge_name_ST6=Climate Scientist +badge_name_AR1=Alhambra Genie +badge_desc_UKA=Battle of the Resorts Summer 2007 +badge_name_Z03=Stop Pollution +badge_name_Z51=Zac Efron Fan +badge_name_UKH=Stone Sign +badge_name_UKD=Adventure Story +badge_name_AM1=Jigoku Shoujo Butterfly +badge_name_AM2=Jigoku Shoujo Straw Doll +badge_name_AU1=Rock on! +badge_desc_AM1=Awarded to winners of Animax Girl from Hell competitions. +badge_desc_AM2=Awarded to winners of the Tooomb of Dooom room design competition. +badge_name_AM3=Jigoku Shoujo Kikuri +badge_name_AM4=Jigoku Shoujo Death Mark +badge_name_AM5=Jigoku Shoujo Enma Ai Eye +badge_desc_AM5=Awarded to Habbos who attended the Horror Anime Masquerade and chose Enma Ai as their messenger. +badge_name_AM6=Jigoku Shoujo Kikuri Flower +badge_desc_AM3=Awarded to winners of the Girl from Hell pop quizzes. +badge_desc_AM4=Awarded to winners of the Horror Anime Set Design competition. +badge_desc_AM6=Awarded to Habbos who attended the Horror Anime Masquerade and chose Kikuri as their messenger. +badge_desc_AU1=Monsters of Habbo fest 07 +badge_name_AU2=Blue Bohos +badge_desc_AU2=Streets of Bobba Campaign 07 +badge_name_AU3=Pixelmason's Union +badge_desc_AU3=Streets of Bobba Campaign 07 +badge_name_AU4=Afro Quacks +badge_desc_AU4=Streets of Bobba Campaign 07 +badge_name_AU5=Birthday Badge +badge_desc_AU5=Habbo AU's 4th Birthday +badge_name_AUW=DOH's +badge_desc_AUW=Winter Meltdown Campaign 08 +badge_name_BOT=BOT +badge_desc_BOT=I am an automated (ro)bot. Try talking to me! +badge_name_BBBH1=Old Habbo Memorial Badge +badge_desc_BBBH1=I saw the end of Old Habbo! +badge_name_CAA=InfoBus Personnel +badge_desc_CAA=Ontario Provincial Police, InfoBus +badge_name_CAD=Sasquatch Catcher +badge_desc_CAD=I helped capture the Sasquatch in the hunt of 08! +badge_name_CAE=Lest We Forget +badge_desc_CAE=Never forget! Remembrance Day. +badge_name_CHF=Chef Boyardee +badge_desc_CHF=Culinary Expert! +badge_name_CN2=Chinese New Year +badge_desc_CN2=Given to winners of Chinese New Year events and competitions during CNY 2007. +badge_name_CY1=Tao Level 1 +badge_desc_CY1=Chinese New Year 2009 +badge_name_DJ1=DJ XXXtreme - Grin +badge_desc_DJ1=Given to Habbos who answered 6-10 questions correctly in the Nokia DJ-XXXtreme Challenge. +badge_name_DE2=DJ XXXtreme - MP3 Player +badge_desc_DE2=Given to Habbos who answered 11-15 questions correctly in the Nokia DJ-XXXtreme Challenge. +badge_name_DJ3=DJ XXXtreme - XXX Bling +badge_desc_DJ3=Given to Habbos who answered 16-20 questions correctly in the Nokia DJ-XXXtreme Challenge. +badge_name_DK1=Pac-Attack: Expert Player +badge_desc_DK1=For getting 15000 points in Pac-Attack +badge_name_DK2=Pub(lic) Crawl Cider +badge_desc_DK2=St Patrick's Day 2011! +badge_name_DS0=Academy +badge_desc_DS0=Astronaut of the Habbo Space Explore 06 +badge_name_DS6=Space Shuttle +badge_desc_DS6=Astronaut of the Habbo Space Explore 06 +badge_name_DE9=Flower Power Designer +badge_desc_DE9=For drawing one of the best Flower Power images! July 2020. +badge_name_DS2=Megamecha +badge_desc_DS2=Astronaut of the Habbo Space Explore 06 +badge_name_DS3=Clones +badge_desc_DS3=Astronaut of the Habbo Space Explore 06 +badge_name_DS4=Hyperspace +badge_desc_DS4=Santini Battle Trail Hypersphere 2006 +badge_name_DS5=Bobbarians +badge_desc_DS5=Santini Bobba Trial Bobbarians 2006 +badge_name_DT1=The Gallery +badge_desc_DT1=Bill's board Gallery (Replacement) +badge_name_Z62=Doowap +badge_desc_Z62=¡La Placa más sabrosa de todo Habbo! +badge_name_AI3=Habbo American Idol Top 12 +badge_desc_AI3=For making the Top 12 in the Habbo American Idol competition. (May 2009) +badge_name_AC4=Eagle Animal Spirit +badge_desc_AC4=You are now a member of The Avian Tribe! +badge_name_AC5=Squid Animal Spirit +badge_desc_AC5=You are now a member of The Mariners Tribe!! +badge_name_AC6=Angry Ape Animal Spirit +badge_desc_AC6=You are now a member of The Sapiens Tribe!! +badge_name_E12=Touch of Pink +badge_desc_E12=Lacoste +badge_name_E11=El País +badge_desc_E11=Diario 'El País' +badge_name_ES001=Pasar Inadvertido +badge_desc_ES001=Calippo Cola +badge_name_ES1=Bus Unicef +badge_desc_ES1=Placa Unicef +badge_name_E14=Tener el control +badge_desc_E14=Calippo Lima +badge_name_AXE=AXE Mitarbeiter +badge_desc_AXE=Teilnahme an der AXE Pressekonferenz +badge_name_BR2=Emblema Giraffas +badge_desc_BR2=Hum... Deu fome? Passa no Giraffas. +badge_name_BR3=Emblema Kellogs +badge_desc_BR3=Desperte o tigre em você! +badge_name_EAB=Easter Bunny +badge_desc_EAB=I found the Bunny! +badge_name_EAR=Easter Beat +badge_desc_EAR=Awarded to winners of Easter (Island) Espionage competitions (bear supporters). +badge_name_EC1=Eco Warrior +badge_desc_EC1=The Green Scene Campaign +badge_name_CH3=Habbo Switzerland +badge_desc_CH3=Remembering my Habbo roots! +badge_name_DK4=Guitarra Dourada +badge_desc_DK4=Em comemoração ao Dia do Rock 2009 - 13 de Julho +badge_name_CH2=Experte +badge_desc_CH2= +badge_name_CH1=Habbo Sicurezza +badge_desc_CH1=La sicurezza è importante! +badge_name_CAF=Miss/Mister Romanticismo +badge_desc_CAF=Los + Románticos +badge_name_CH4=7 Jahre Habbo.ch +badge_desc_CH4=Teilnahme an der Geburtstagsfeier "7 Jahre Habbo.ch" +badge_name_DE1=Infobus +badge_desc_DE1=Infobus / PowerChild Moderatoren tragen dieses Badge +badge_name_BKE=BKE +badge_desc_BKE=BKE Moderatoren tragen dieses Badge +badge_name_DE5=Meisterschaft +badge_desc_DE5=Teilnahme an der Habbo Meisterschaft +badge_name_DE6=Habbo France 4 ans +badge_desc_DE6=Habbo France 4 ans +badge_name_DE7=Sommer 2008 +badge_desc_DE7=Für alle Fans des Sommers +badge_name_DE8=Flower Power Pixel Artist +badge_desc_DE8=For creating the best Flower Power flyers. July 2020. +badge_name_ES003=mtvmusica.es +badge_desc_ES003=Vídeos musicales y mucho más +badge_name_ES3=Entenversteck #6 +badge_desc_ES3=Die Archäologen Rätseln heute noch über diesen Fund. Könnte es ein Ducket sein? +badge_name_ES004=Latin American Idol +badge_desc_ES004=¡Viva la música! +badge_name_ES4=Habbo Habztechi +badge_desc_ES4=ShamHab - 2006 +badge_name_ES005=Placa Argentina +badge_desc_ES005=Visitando la Pampa +badge_name_ES000=Volar +badge_desc_ES000=Calippo Fresa +badge_name_ES002=Moverse Libremente +badge_desc_ES002=Calippo +badge_name_ES5=Habbo Habztechi +badge_desc_ES5=ShamHab - 2006 +badge_name_Z63=Habbo Beta Lab Rat Color +badge_desc_Z63=Given to those in the Beta group that have contributed to the testing. +badge_name_Z41=Duck Lover +badge_desc_Z41=As he/she nobody loves the ducks +badge_name_ES006=Placa Bolivia +badge_desc_ES006=Por fin he encontrado La Paz +badge_name_DK049=Umfragenbadge +badge_desc_DK049=Danke für's Mitmachen! +badge_name_ES6=Chaval +badge_desc_ES6=Experto del Bus +badge_name_ES7=Ghostly badge +badge_desc_ES7=Lucky Escape +badge_name_ES007=Placa Chile +badge_desc_ES007=Larga y estrecha +badge_name_ES008=Placa Colombia +badge_desc_ES008= +badge_name_ES8=Calippo Fresa +badge_desc_ES8=¡Lo más fresco de Habbo! +badge_name_ES009=Costa Rica +badge_desc_ES009=Lo más vistoso de Centroamérica +badge_name_ES9=Calippo Verde +badge_desc_ES9=¡Lo más fresco de Habbo! +badge_name_ES010=Placa Ecuador +badge_desc_ES010= +badge_name_ES011=Placa El Salvador +badge_desc_ES011=Nos vemos en San Salvador +badge_name_ES012=Placa España +badge_desc_ES012= +badge_name_ES013=Placa Honduras +badge_desc_ES013=No te pierdas en la selva +badge_name_ES014=México +badge_desc_ES014=Orale Compadre +badge_name_ES015=Placa Nicaragua +badge_desc_ES015=Nadando en el Lago Nicaragua +badge_name_ES016=Placa Panamá +badge_desc_ES016=¡Surcando el Canal! +badge_name_ES017=Placa Paraguay +badge_desc_ES017=Desde el corazón de América +badge_name_ES018=Placa Perú +badge_desc_ES018=Ascendiendo a Los Andes +badge_name_ES019=Placa Uruguay +badge_desc_ES019=Desde Montevideo con amor +badge_name_ES020=Placa Venezuela +badge_desc_ES020=Yo me quedo en Maracaibo +badge_name_ES029=MTV-Embarazada a los 16 +badge_desc_ES029=No te pierdas la nueva serie de MTV +badge_name_ES030=Music Aula +badge_desc_ES030=El Festival Pop-Rock del Estudiante +badge_name_ES031=Chupa Chups +badge_desc_ES031=Endulza tu Habbo Vida +badge_name_ES032=Placa U18 +badge_desc_ES032=La mejor música, a tu alcance +badge_name_ES065=Xpresa-t! +badge_desc_ES065=¡Zlango es tu nuevo idioma! +badge_name_ES075=Placa Chester +badge_desc_ES075=Cheetos Mola +badge_name_ES076=Placa Cheetos +badge_desc_ES076=Para miembros de Cheetolog +badge_name_ES078=La Niñera Mágica y el Big Bang +badge_desc_ES078=Un mundo de fantasía ante tus ojos +badge_name_ES088=Cheetos-Eclipse +badge_desc_ES088=Disfruta con Cheetos de la tercera 'peli' de la Saga Crepúsculo +badge_name_ES089=Chocapic +badge_desc_ES089=¡Celebra el cumple de tu vida! +badge_name_ES092=Grefusa-Surfmanía +badge_desc_ES092=Una Placa Tattoo +badge_name_ES099=Surfmanía +badge_desc_ES099=Grefusa apuesta por el surf +badge_name_ES100=MusicAula II +badge_desc_ES100=¡Apoyando al festival pop-rock para estudiantes! +badge_name_ES106=Placa Cheetos 1 +badge_desc_ES106=Lúcela por todo el Hotel gracias a Cheetos +badge_name_ES107=Placa Cheetos 2 +badge_desc_ES107=Lúcela por todo el Hotel gracias a Cheetos +badge_name_ES108=Placa Cheetos 3 +badge_desc_ES108=Lúcela por todo el Hotel gracias a Cheetos +badge_name_ES109=Placa Cheetos 4 +badge_desc_ES109=Lúcela por todo el Hotel gracias a Cheetos +badge_name_ES116=Universo Salmah +badge_desc_ES116=Un mundo fantástico en el que caben la diversión y el compromiso +badge_name_ES122=Placa MTV Verde +badge_desc_ES122=¡Qué bueno que MTV se emita ahora en abierto! +badge_name_ES123=MySpace +badge_desc_ES123=Para auténticos fans de la música +badge_name_ES133=El Barco +badge_desc_ES133=Enrólate en la serie de Antena3 +badge_name_ESA=Calippo Naranja-Piña +badge_desc_ESA=¡Lo más fresco de Habbo! +badge_name_ESB=Tampax Gold +badge_desc_ESB=Comodidad exclusiva +badge_name_ESC=Copa América +badge_desc_ESC=Ganadores Copa América +badge_name_ESD=Happy 4th Birthday! +badge_desc_ESD=I celebrated Habbo Canada's 4th birthday in May of 2008! +badge_name_ESE=Calippo Cola +badge_desc_ESE=¡Lo más fresco de Habbo! +badge_name_ESF=Pringles +badge_desc_ESF=¡Sabrosas y crujientes! +badge_name_ESI=Rata +badge_desc_ESI=Año Nuevo Chino 2008 +badge_name_ESJ=Caballo +badge_desc_ESJ=Año Nuevo Chino 2008 +badge_name_ESK=Cibervoluntarios +badge_desc_ESK=Placa del Bus +badge_name_ESL=Planta carnívora +badge_desc_ESL=La Habbotienda de los horrores +badge_name_ESM=Star2 +badge_desc_ESM=Placa de la revista Star2 +badge_name_ESO=Chica Tampax +badge_desc_ESO=Visted the Tampax Event 2020! +badge_name_ESP=Sunny Fresa +badge_desc_ESP=¡Bien refrescante! +badge_name_ESQ=Sunny Granizado +badge_desc_ESQ=¡Bien refrescante! +badge_name_ESR=Sunny Naranja +badge_desc_ESR=¡Bien refrescante! +badge_name_ESS=Chicas de Cuidado +badge_desc_ESS=¡Con todo el cuidado! +badge_name_EST=Indios +badge_desc_EST=Lejano Habbo Oeste +badge_name_ESU=Vaqueros +badge_desc_ESU=Lejano Habbo Oeste +badge_name_ESW=Cine +badge_desc_ESW=Maravillosos Años 70 +badge_name_ESX=Series TV +badge_desc_ESX=Maravillosos Años 70 +badge_name_ESY=Habbo TV +badge_desc_ESY=Central Musical +badge_name_ESZ=Buzz TV +badge_desc_ESZ=Buzz TV +badge_name_EXE=Executive Badge +badge_desc_EXE=You truly are Executive material! +badge_name_EXH=For loyal service on Habbo.ca! +badge_desc_EXH=For loyal service on Habbo.ca! +badge_name_EXI=Veet +badge_desc_EXI=¡La depilación más suave, a tu alcance! +badge_name_EXL=Veet for Men +badge_desc_EXL=¡La depilación más suave, a tu alcance! +badge_name_F1A=Muerte en Habbo +badge_desc_F1A=Su muerte fue la más original +badge_name_FF2=Fashion Friendly Fighters +badge_desc_FF2=Given to those who supported Luna in The Streets of Bobba. +badge_name_FI2=Du bist nicht alleine +badge_desc_FI2=Du bist nicht alleine, Aktion 2005 +badge_name_FI3=Netari +badge_desc_FI3=Netari-ohjaajan merkki +badge_name_FI4=Naturaleza Dominante +badge_desc_FI4=La naturaleza le abraza +badge_name_FID=Mainosmerkki BonBon +badge_desc_FID=BonBon-mainosryhmän jäsen +badge_name_FI6=Apuohjaaja +badge_desc_FI6=Netarin apuohjaajan merkki +badge_name_FI7=MLL-päivystäjä +badge_desc_FI7=Mannerheimin Lastensuojeluliiton päivystäjä +badge_name_FI8=Rexona Girl +badge_desc_FI8=¡Que buen olor! +badge_name_FIA=Errate das Furni 10 +badge_desc_FIA=Ich habe das Möbelstück "Verdorbene Katze" beim HabboAura Wettbewerb "Errate das Furni" richtig erraten +badge_name_FIE=Mainosmerkki Linnanmäki +badge_desc_FIE=Linnanmäki-mainosryhmän jäsen +badge_name_FIF=Mainosmerkki Kungfu Panda +badge_desc_FIF=Kungfu Panda -mainosryhmän jäsen +badge_name_FIH=Mainosmerkki Dove +badge_desc_FIH=Dove Aito Kauneus -mainosryhmän jäsen +badge_name_FII=Mainosmerkki Madagascar 2 +badge_desc_FII=Madagascar 2 -mainosryhmän jäsen +badge_name_FIJ=Mainosmerkki Spyro the Dragon +badge_desc_FIJ=Spyro the Dragon -mainosryhmän jäsen +badge_name_FR4=Badge HabboRédac' +badge_desc_FR4=Pour les écrivains en herbe! +badge_name_FR5=Badge Johno's Fan Club +badge_desc_FR5=Pour Creme ;) +badge_name_FR6=Badge Habbo Revenant +badge_desc_FR6=Pour les Habbos débannis +badge_name_FR7=Badge Habbo ORO +badge_desc_FR7=Evénement Habbo ORO +badge_name_FR8=Badge H.A.B.B.O. Enterprise +badge_desc_FR8=Evénement Mission : L.A.P.I.N. +badge_name_FR9=Badge King Rabbit +badge_desc_FR9=Evénement Mission : L.A.P.I.N. +badge_name_FRA=Crikey +badge_desc_FRA=Watch out for those teeth! +badge_name_FRB=Badge Diamant +badge_desc_FRB=Pour les Habbos qui ont du goût ;) +badge_name_FRD=Badge Recyclo +badge_desc_FRD=Pour ceux qui pensent à la planète +badge_name_FRE=Badge Tiki +badge_desc_FRE=Pour les sacrifiés au grand Tiki Crok +badge_name_FRF=Badge Fil Santé jeunes +badge_desc_FRF=Pour les animateurs du Bus Fil Santé Jeunes +badge_name_FRG=Badge Ultimate Bobba +badge_desc_FRG=Pour les combattants d' Ultimate Bobba +badge_name_FRH=Badge Ze Noob Show +badge_desc_FRH=Pour les candidats du Noob Show +badge_name_FRI=Graffeur +badge_desc_FRI=King du Graff +badge_name_FRL=Badge Pixel Hotel +badge_desc_FRL=Concours de pixel art +badge_name_FRM=Badge Soleil levant +badge_desc_FRM=Concours de pixel art +badge_name_FRN=Badge Eco +badge_desc_FRN=Concours de pixel art +badge_name_FRQ=Badge Miss Habbo +badge_desc_FRQ=Evénement Miss Habbo 2008 +badge_name_FRR=Badge 732 +badge_desc_FRR=Evénement Appart 732 +badge_name_FRS=Badge Habbo Music Festival +badge_desc_FRS=Evénement Habbo Music Festival +badge_name_FRT=Badge Nuit des Jeux +badge_desc_FRT=Pour les gagnants de la Nuit des Jeux +badge_name_FRV=Badge 100% Sécu +badge_desc_FRV=Evènement Sécu +badge_name_FV1=Badge Concours Virus 2008 n°1 +badge_desc_FV1=Créé par -Cudvi- +badge_name_FV2=Créé par Ji-Yuu +badge_desc_FV2=Badge Concours Virus 2008 n°2 +badge_name_FV3=Créé par Kartan +badge_desc_FV3=Badge Concours Virus 2008 n°3 +badge_name_FW1=Yuppie +badge_desc_FW1=Furni Wars yuppies who championed the Pura cause! +badge_name_FW2=Tattoo +badge_desc_FW2=Marks a member of the Furni Wars Indie tribe +badge_name_GA1=Golden Gamer +badge_desc_GA1=You're looking at a hardcore gamer, baby! +badge_name_GF1=Hot or Not +badge_desc_GF1=Hot or Not Competition Winner +badge_name_GM1=Diamond Jewel +badge_desc_GM1=This Diamond means you verified your email way back in the day! +badge_name_GM2=Emerald Jewel +badge_desc_GM2=This Emerald means you verified your email way back in the day! +badge_name_GM3=Sapphire +badge_desc_GM3=This Sapphire means you verified your email way back in the day! +badge_name_GM4=Ruby Jewel +badge_desc_GM4=This Ruby means you verified your email way back in the day! +badge_name_GNO=Gargen Gnome +badge_desc_GNO=You never know where you might find one of these cute Garden Gnomes! +badge_name_GWA=Global Warming Awareness +badge_desc_GWA=You were a part of the Global Warming Awareness party. +badge_name_HF2=Habbo World Cup +badge_desc_HF2=Habbo World Cup +badge_name_HF7=HabboFest 07 +badge_desc_HF7=HabboFest 07 Winner +badge_name_HF8=HabboFest 08 +badge_desc_HF8=HabboFest 08 Winner +badge_name_HG1=X Games +badge_desc_HG1=X Games +badge_name_HH1=Suosituin sivu +badge_desc_HH1=Viime viikon suosituimman Oman sivun omistaja +badge_name_HHL=Habbo Hockey League +badge_desc_HHL=I play in the Habbo Hockey League! +badge_name_HJ1=Hungry Jack's Badge +badge_desc_HJ1=The burgers are better +badge_name_IT1=Quiz Unicef HIV +badge_desc_IT1=Febbraio 2007 +badge_name_IT2=Trofeo D'oro +badge_name_IT5=Miglior Festa +badge_desc_IT5=Il Mago di Hai - 2006 +badge_name_IT6=Miglior Scambio +badge_desc_IT6=Il Mago di Hai - 2006 +badge_name_IT7=Scaltro Giocatore +badge_desc_IT7=Il Mago di Hai - 2006 +badge_name_IT8=Pop Band +badge_desc_IT8=Habbofest 08 +badge_name_IT9=Sonora +badge_desc_IT9=Visita VIP dei Sonora +badge_name_ITF=Illusionista +badge_desc_ITF=Abracadabra! +badge_name_ITG=Domatore +badge_desc_ITG=a.k.a. L'Habbo che sussurra ai cuccioli +badge_name_ITH=Giocoliere +badge_desc_ITH=Faccio volare ogni sorta di Furni +badge_name_ITI=Clown +badge_desc_ITI=*spruzza acqua* +badge_name_ITJ=Mangiafuoco +badge_desc_ITJ=Ho un carattere focoso +badge_name_ITK=Trapezista +badge_desc_ITK=Habbo Volante! +badge_name_ITL=Habbo Circus +badge_desc_ITL=Per aver organizzato uno splendido spettacolo +badge_name_ITN=Quinto Anniversario +badge_desc_ITN=Buon Compleanno Habbo.it +badge_name_ITO=Groupie +badge_desc_ITO=Capace di tutto +badge_name_ITQ=Street team +badge_desc_ITQ=*Sparge la voce* +badge_name_ITR=Hip-Hop! +badge_desc_ITR=Bir Yaşam Tarzı.. +badge_name_ITS=Hip Hop +badge_desc_ITS=Neon 2008 +badge_name_ITT=Fan +badge_desc_ITT=Non mi sfugge un singolo! +badge_name_ITU=Periodista Oro +badge_desc_ITU=Magia en las ondas +badge_name_JF1=Katana +badge_desc_JF1=Katana badge +badge_name_JF3=Ninja +badge_desc_JF3=Habbo Ninja 08 +badge_name_JF4=Ninja +badge_desc_JF4=Habbo Ninja 08 +badge_name_JF5=Ninja +badge_desc_JF5=Habbo Ninja 08 +badge_name_JFF=Jeffoo's Foo Fighters +badge_desc_JFF=Given to those who supported Jeffoo in The Streets of Bobba. +badge_name_JKR=The Dark Knight - Joker +badge_desc_JKR="wanna see a magic trick?" +badge_name_JPB=Smile +badge_desc_JPB=La sonrisa más sincera +badge_name_JPC=Gorro de moda +badge_desc_JPC=Es un gran modist@ en gorros +badge_name_JPD=Así nos cuentas tu historia +badge_desc_JPD=¡Vivan los Habbo Descargables! +badge_name_KH2=Kappa Habbo Gamma +badge_desc_KH2=The real Habbo fraternity. +badge_name_KIN=My castle, my rules! +badge_desc_KIN=For making it to the castle safe and sound! +badge_name_KO2=Eucalyptus Leaf +badge_desc_KO2=*nom nom nom +badge_name_KR1=100% Habbo +badge_desc_KR1=Keep It Real Campaign 08 +badge_name_LBB=Queen of Habboween +badge_desc_LBB=Habboween, October 07 +badge_name_LC1=Leviathan Badge +badge_desc_LC1=Reward for completing the Bensalem Quest! +badge_name_LLL=Habbo L +badge_desc_LLL=Habbo L +badge_name_MH1=Guitar +badge_desc_MH1=Monsters of Habbo Fest 07 +badge_name_MH2=Producer 666 +badge_desc_MH2=Monsters of Habbo Fest 07 +badge_name_MRG02=Habbo USA +badge_desc_MRG02=Remembering my Habbo roots! +badge_name_NEA=Bronze Disco Ball +badge_desc_NEA=Habbofest '09 Runner Up +badge_name_NED=Neon Bronce Microphone +badge_desc_NED=For participating in the Neon Party Competition - November 2008 +badge_name_NEE=Neon Silver Microphone +badge_desc_NEE=For participating in the Neon Party Competition - November 2008 +badge_name_NEF=Golden Microphone +badge_desc_NEF=Golden Microphone +badge_name_NEG=Party Machine +badge_desc_NEG=I am a Spring Break party machine! March 2010 +badge_name_NEH=Neon Nightclub Loudspeaker +badge_desc_NEH=Nightclub Advertising art competition winner! +badge_name_NL1=Stichting Tegen Zinloos Geweld +badge_desc_NL1=Stichting Tegen Zinloos Geweld +badge_name_NL2=ChildRight +badge_desc_NL2=ChildRight +badge_name_NL3=Pestweb +badge_desc_NL3=Pestweb +badge_name_NL4=Artsen zonder Grenzen +badge_desc_NL4=Artsen zonder Grenzen +badge_name_NL5=Zweistein Battle Ball Champion Badge +badge_desc_NL5=Zweistein Battle Ball Champion Badge +badge_name_NL6=Nintendo Batlle Ball +badge_desc_NL6=Nintendo Batlle Ball +badge_name_NL038=Flirting Diploma 2010 +badge_desc_NL038=Geslaagd! +badge_name_NL8=Fortis ASR +badge_desc_NL8=Fortis ASR +badge_name_NL9=Habbo Music Awards Badge +badge_desc_NL9=Habbo Music Awards Badge +badge_name_NLA=Warchild +badge_desc_NLA=Warchild +badge_name_NLB=ex-Habbo Radio DJ +badge_desc_NLB=Voor oud-dj's van Habbo Radio +badge_name_NLC=Bronze Trax +badge_desc_NLC=Trax Competition Winner +badge_name_NLD=Silver Trax +badge_desc_NLD=Trax Competition Winner +badge_name_NLE=Gold Trax +badge_desc_NLE=Trax Competition Winner +badge_name_NLH=ING badge +badge_desc_NLH=ING badge +badge_name_NLI=Infobus Expert +badge_desc_NLI=Infobus Expert +badge_name_PB1=Black Team Supporter +badge_desc_PB1=Pink vs Black Campaign 07 +badge_name_NO2=Aslan's Army Finalist +badge_desc_NO2=Prince Caspian Competition 08 +badge_name_NO3=TESTMAYO12bis +badge_desc_NO3=TESTMAYO12bis +badge_name_PB2=Pink Team Supporter +badge_desc_PB2=Pink vs Black Campaign 07 +badge_name_PN1=Pixel Ninja +badge_desc_PN1=Design comp winners +badge_name_POP=Safety Survey Badge +badge_desc_POP=Received for filling out a Safety survey! +badge_name_PP1=Maior Amigo de Todos +badge_desc_PP1=Emblema único para um Habbo único. +badge_name_PR1=Green Pirate +badge_desc_PR1=Pirates Campaign 08 +badge_name_PR2=Blue Pirate +badge_desc_PR2=Pirates Campaign 08 +badge_name_PR3=Treasure Chest +badge_desc_PR3=Pirates 08 Campaign Winner +badge_name_PRE=Press +badge_desc_PRE=Habbo Press Members +badge_name_PT1=Poptarts Chocolate/Vanilla +badge_desc_PT1=You are a fan of the Chocolate/Vanilla Poptarts flavor. +badge_name_PT2=Poptarts StrawBlueberry +badge_desc_PT2=You are a fan of the StrawBlueberry Poptarts flavor. +badge_name_PX0=Golden Pixel +badge_desc_PX0=Is it cheese!? *bites. Ow. x1 StrayPixels Winner +badge_name_PX1=Diamond Pixel +badge_desc_PX1=Sparkly Diamond Pixel. A Habbos best friend. x3 StrayPixels Winner +badge_name_PX2=Holy Carp! +badge_desc_PX2=Smells fishy... x5 StrayPixels Winner +badge_name_PX3=Onyx Pixel +badge_desc_PX3=It's like the Gold one.. but better. x7 StrayPixels Winner +badge_name_RE1=Reach Out! Staff +badge_desc_RE1=Official Reach Out! Staff +badge_name_RE2=Reach Out! Winner +badge_desc_RE2=Reach Out! Competition Winners +badge_name_REX=Rexona Girl 2 +badge_desc_REX=¡La mejor de las fragancias! +badge_name_RR9=WWE Badge +badge_desc_RR9=Royal Rumble 09 +badge_name_RTS=Rock The Schools +badge_desc_RTS=Rock The Schools Comp 08 +badge_name_RU1=Patriot Star +badge_desc_RU1=Star Badge +badge_name_RUG=Habbo Rugby +badge_desc_RUG=Sono un campione! +badge_name_SB6=Ultimate Streets of Bobba Elite +badge_desc_SB6=You proved you were Elite in the Ultimate Streets of Bobba games. +badge_name_SFK=Special Forces Kedo +badge_desc_SFK=Given to those who supported Kedo in The Streets of Bobba. +badge_name_SG1=test for Elkah +badge_desc_SG1=test for Elkah +badge_name_SG2=Silver Habbo of the Month +badge_desc_SG2=Given to the Habbo in second place on the Habbo Points Chart. Assigned at the end of each month. +badge_name_SG3=Gold Habbo of the Month +badge_desc_SG3=Given to the Habbo in first place as Habbo of the Month. Assigned at the end of each month. +badge_name_SG4=test for Elkah +badge_desc_SG4=test for Elkah +badge_name_SG5=Hip Hop Band +badge_desc_SG5=Habbofest 08 +badge_name_SG6=WobbSquab - Gold +badge_desc_SG6=Wobble Squabble Champion Badge +badge_name_SG7=WobbSquab - Silver +badge_desc_SG7=Wobble Squabble Champion Badge +badge_name_SG8=WobbSquab - Bronze +badge_desc_SG8=Wobble Squabble Champion Badge +badge_name_SG9=Habbo Awards Badge +badge_desc_SG9=Given to winners of the Habbo Awards held in January '07 and '08. +badge_name_SGA=Slam Dunk Basketball +badge_desc_SGA=Awarded to weekly winners of the Animax Slam Dunk BattleBall: Rebound! Challenge. Only 30 of these exist! +badge_name_SGB=Shohoku Jersey Badge +badge_desc_SGB=Awarded to weekly winners of Animax Slam Dunk Trivia Challenge. There are a total of 100 of these in Habbo! +badge_name_SGC=SG Camera +badge_desc_SGC=Habbo photographers and artists capture a slice of pixel life. Those whose work is published are awarded this! +badge_name_SGD=Mall Detective (1/2) +badge_desc_SGD=I'm hunting the clues... +badge_name_SGN=PP Commemorative Badge +badge_desc_SGN=Pixel Press Group Member +badge_name_SGQ=SG Quill +badge_desc_SGQ=This very rare badge is worn by the elite of published Habbo journalists and writers. +badge_name_SGR=I <3 Mom! +badge_desc_SGR=Happy Mother's Day! +badge_name_SHK=Shrek Badge +badge_desc_SHK=Teilnahme am Shrek Wettbewerb +badge_name_SMC=Top Chef +badge_desc_SMC=Winner of the Master Chef competition in 2007. +badge_name_SOS=SOSO Badge +badge_desc_SOS=Interstitial Design Finalists +badge_name_STA=Sound The Alarm +badge_desc_STA=Sound The Alarm Campaign 08 +badge_name_SU4=Avustava toimittaja +badge_desc_SU4=Testaa itsesi -testin ideoija +badge_name_SW1=Spiderwick +badge_desc_SW1=You helped to protect the book and keep it safe. +badge_name_TAM=Tampax +badge_desc_TAM=Comodidad total +badge_name_TEO=The Emo Oranges +badge_desc_TEO=Given to those who supported iomegadrive in The Streets of Bobba. +badge_name_TUU=Tuu +badge_desc_TUU=Tuun oma merkki +badge_name_UD1=Dag or Not +badge_desc_UD1=Dag or Not Campaign 07 +badge_name_US4=Habbon kesäkoulu - viikko 6 +badge_desc_US4=Urheilu +badge_name_US6=vNBC Olympics Badge +badge_desc_US6=NBC Olympics Badge +badge_name_US7=Seventeen Fashion +badge_desc_US7=Seventeen Fashion +badge_name_US8=Toilet Marathon +badge_desc_US8=Toilet Marathon +badge_name_US9=Cara maligna +badge_desc_US9=Ha retratado la cara más maligna del Hotel +badge_name_USA=Adidas Blue +badge_desc_USA=You sure like those Blue Adidas sneakers! +badge_name_USB=Adidas Red +badge_desc_USB=You sure like those Red Adidas sneakers! +badge_name_USC=Jets (J) +badge_desc_USC=I dressed in blue in the Bring It On: In It to Win It campaign. it on +badge_name_USD=Sharks (S) +badge_desc_USD=I dressed in red in the Bring It On: In It to Win It campaign. +badge_name_USE=Xmas Smilla Badge +badge_desc_USE=You show support to Smilla. +badge_name_USF=Xmas Larry Badge +badge_desc_USF=You show support to Larry. +badge_name_USG=Xmas Mr.Sinister Badge +badge_desc_USG=You show support to Mr. Sinister. +badge_name_USH=Xmas Santa.3000 Badge +badge_desc_USH=You show support to Santa.3000. +badge_name_USI=Royal Rumble '08 +badge_desc_USI=You took part in the Habbo Royal Rumble in 2008. +badge_name_USJ=WWE Badge +badge_desc_USJ=WWE Rocks! +badge_name_USK=Around the World +badge_desc_USK=I went around the World with Puffin and Teetoo, 08! +badge_name_USL=Chinese New Year +badge_desc_USL=The year of the Rat! +badge_name_USM=No Way Out +badge_desc_USM=There truly is No Way Out! +badge_name_USN=Big Dogs +badge_desc_USN=You love Big Dogs. +badge_name_USO=Little Dogs +badge_desc_USO=You love Little Dogs. +badge_name_USP=TRAP! +badge_desc_USP=I successfully found a staff. Nothing stops me anymore! April 2020. +badge_name_USQ=Prom of the Dead Zombies +badge_desc_USQ=You were infected at the Prom of the Dead. +badge_name_USR=Prom of the Dead Cured +badge_desc_USR=You have been cured and are no longer a Prom of the Dead Zombie. +badge_name_USS=Prom of the Dead Brains +badge_desc_USS=Brains?!? +badge_name_UST=Oldschool Amateur +badge_desc_UST=For participating in the oldschool room competition. April 2020. +badge_name_USU=Thanksgiving '08 +badge_desc_USU=Just like Mom used to make. Mmm, tastes like burning. +badge_name_VIK02=Steelscar Badge +badge_desc_VIK02=This is my Viking Clan! +badge_name_XM5=Smilla Winner +badge_desc_XM5=Christmas Campaign 07 +badge_name_XM6=Santa3.000 Winner +badge_desc_XM6=Christmas Campaign 07 +badge_name_XM7=Mr Sinister Winner +badge_desc_XM7=Christmas Campaign 07 +badge_name_XM8=Bob Winner +badge_desc_XM8=Christmas Campaign 07 +badge_name_XMA=Happy Snowball +badge_desc_XMA=Two eyes made out of coal... pixel coal +badge_name_XMB=Mr. Frosty +badge_desc_XMB=xmas08 penguin games +badge_name_XMC=Quest Tree of 2008 +badge_desc_XMC=It's like the one from 2006... just... colder. +badge_name_Z27=Prom Queen 09 +badge_desc_Z27=Prom Queen 09 +badge_name_Z34=Badge PPC 3 +badge_desc_Z34=Evènement Palace pour chiens +badge_name_EXA=Caneta Vermelha +badge_desc_EXA=Pode assinar aqui, aqui, aqui e acolá, por favor? Ah, e nessa linha também. +badge_name_EXB=Executive Pen +badge_desc_EXB=Bamaloo's Office Comp '09 +badge_desc_Z09=Competition winner at the Habbo Underage Festival 2008. +badge_desc_ACH_RegistrationDuration1=Level 1 - For true Habbos who have been members of the community for 3 days. Worth 30 pixels. +badge_desc_UK3=Frank Bus moderator. +badge_desc_Z17=Hairspray The Musical talent show competition winner! 2008 +badge_name_HX4=Habbo eXpert +badge_desc_WH3=Habboween competition /event winner. +badge_desc_ACH_GamePlayed4=Level 4 - For playing and winning Snow Storm or for the game of Battle Ball 50 times. Worth 80 pixels. +badge_desc_ACH_Login7=Level 7 - For logging in 70 days in a row. Awesome. Worth 200 pixels. +badge_desc_UKY=Awarded to Quest Guild members. You must submit a Quest to enter the guild. +badge_name_ACH_Login2=Preferred Guest +badge_name_ADM=Habbo Staff +badge_name_ACH_Login10=Phoenix +badge_desc_ACH_Login9=Level 9 - For logging in 90 days in a row. Extraordinary. Worth 200 pixels. +badge_desc_DN1=Diner Room Winner 2008. +badge_name_OL1=Habbolympic Gold +badge_desc_HJ6=Attended the Harajuku Lovers Hub launch party! +badge_name_WBL=Wobble Squabble HOF +badge_name_HM1=Mall Builder +badge_desc_HWB=Habboween competition badge. +badge_name_UK5=Comic Creator +badge_desc_WBL=Hall of Fame member. Awarded to the top 25 Wobble Squabble players. +badge_desc_HW1=Winning Director of a Habbowood movie. Habbowood ran in both 2006 and 2007. +badge_name_ST4=Cosmetics Specialist +badge_desc_CL2=Idea Agency Silver brief winner! +badge_name_NEB=Official EPIC Party Host +badge_name_UKR=St Trinian's Head Girl +badge_desc_ACH_AllTimeHotelPresence6=Level 6 - spending total of 144 hours in hotel. Worth 20 pixels. +badge_name_ACH_MGM10=Prom +badge_name_HX2=Habbo eXpert +badge_name_ACH_RoomEntry6=House Guest +badge_name_WH1=Evil Eye +badge_desc_UK5=Habbo comic creator. Comics were displayed on the homepage for 2 weeks during 2007. +badge_desc_GLG=Level 7 - The strong one - the one you can depend on. For being a Habbo guide - Here to help. Worth 660 pixels. +badge_name_GLA=Bunny +badge_name_LC3=Lemuria Adventurer +badge_desc_UK9=Japanese quest winner 2007. +badge_desc_Z03=Earth week competition winner. +badge_desc_DN3=Roadtrip USA 15 Points 2008. +badge_desc_ACH_AllTimeHotelPresence8=Level 8 - spending total of 576 hours in hotel. Worth 20 pixels. +badge_desc_Z31=Official Habbo Music Festival Artist +badge_name_UK7=Quest Builder +badge_name_ACH_MGM8=Ball +badge_name_VA3=Habborella Cruise +badge_desc_HX8=Gold Game eXpert +badges_tab_title=My badges +badge_name_AC1=Bensalem Tribe Member +badge_name_EC5=Earth Week Riddle +badge_desc_ACH_AvatarLooks1=For finally putting some fresh clothes on. Worth 50 pixels. +badge_desc_ST3=You need Science and Maths skills for this job! +badge_name_SB1=Bouncing Queens +badge_name_ST2=Digital Designer +badge_name_Z59=History Buff +badge_name_UKB=Play Writer +badge_name_HW1=Habbowood Director +badge_name_Z35=Hotel For Dogs Quest Winner +badge_desc_AC1=Initiated through the Totem bases of fire PINK +badge_desc_ACH_RoomEntry10=Level 10 - For hanging out in 200 Guest Rooms that you do not own. Time traveler. Worth 40 pixels. +badge_desc_ACH_RegistrationDuration7=Level 7 - For true Habbos who have been members of the community for 2 years. Worth 200 pixels. +badge_name_UKT=Candy Floss +badge_name_UKL=Fantastic4 Silver +badge_name_ACH_RoomEntry4=Day tripper +badge_desc_ACH_AllTimeHotelPresence4=Level 4 - spending total of 16 hours in hotel. Worth 20 pixels. +badge_name_ACH_GamePlayed5=Battle Royal V +badge_name_ACH_TraderPass2=Trader's Pass +badge_name_RU3=SafeSid Competition Winner +badge_desc_Z13=Runner Up of Habbo Big Brother series1 in July 2008. +badge_desc_ACH_GamePlayed8=Level 8 - For playing and winning Snow Storm or the game of Battle Ball 280 times. Worth 220 pixels. +badge_desc_SHA=Chinese New Year 2009 +badge_desc_ACH_RegistrationDuration5=Level 5 - For true Habbos who have been members of the community for 24 weeks. Worth 160 pixels. +badge_name_ACH_RespectEarned1=10% Respected Habbo I +badge_desc_ACH_MGM7=Level 7 - For creating your own fellowship - party of 12. For inviting two more real life friends to Habbo. Worth 160 pixels. +badge_name_Z33=It Doesn't Have To Happen +badge_desc_ACH_RoomEntry8=Level 8 - For hanging out in 140 Guest Rooms that you do not own. Orion. Worth 30 pixels. +badge_desc_XM2=Elf Vs Reindeer Christmas 2005 +badge_name_ACH_Login8=Rotten tomato +badge_desc_SB2=Bobbaschi gang member on the Streets Of Bobba September 2006. +badge_desc_SU1=Lvl1 Tiki Competition winner. Lowest award. Summer 2008. +badge_desc_BTB=Hall of Fame member. Awarded to the top 25 BattleBall players. +badge_desc_ACH_GamePlayed2=Level 2 - For playing and winning Snow Storm or for the game of Battle Ball 5 times. Worth 30 pixels +badge_desc_ACH_RespectEarned9=Level 9 - For earning respect a further 200 times. Worth 200 pixels. +badge_desc_ACH_Login3=Level 3 - For logging in 15 days in a row. Strange. Worth 120 pixels. +badges_window_title=Badges +badge_name_UK9=Japanese Statue +badge_name_JF2=Japanese Sushi +badge_desc_ACH_RoomEntry6=Level 6 - For hanging out in 80 Guest Rooms that you do not own. Out of towner. Worth 20 pixels. +badge_name_Z39=Hotel For Dogs Maze Winner +badge_desc_ACH_AllTimeHotelPresence10=Level 10 - spending total of 2304 hours in hotel. Worth 20 pixels. +badge_name_Z40=Habbo UK is 8! +badge_name_ACH_AllTimeHotelPresence2=Online time II - Drizzle +badge_name_SB3=Shabbolins +badge_name_ACH_RespectGiven1=Nice as pie! +badge_name_GLG=Buffalo +badge_name_HJ3=Designed Gwen Stefani an outfit with Harajuku Lovers +badge_desc_ACH_RespectEarned7=Level 7 - For earning respect a further 200 times. Worth 200 pixels. +badge_desc_UKC=Habbo submitted news stories. +badge_name_UKV=Gold Rollercoaster +badge_desc_VA7=For making a really good Bollywood Movie. 2009. +badge_name_BTB=BattleBall HOF +badge_name_ACH_AllTimeHotelPresence6=Online time VI- Jet Stream +badge_name_UKJ=Wood Sign +badge_desc_Z33=Play Director and Reviewer extraordinaire +badge_desc_ACH_GamePlayed6=Level 6 - For playing and winning Snow Storm or the game of Battle Ball 160 times. Worth 120 pixels. +badge_name_ACH_RespectEarned3=Been respected 16 times. +badge_desc_ACH_AllTimeHotelPresence2=Level 2 - spending total of 3 hours in hotel. Worth 20 pixels. +badge_name_VA1=Superlove Heart +badge_desc_CAC=Landscape Room Winner 2008. +badge_name_ACH_RoomEntry2=Running Room Raider +badge_name_PIR=Pirate Necklace +badge_name_ACH_RegistrationDuration3=30 % True Habbo +badge_desc_ST4=You need Science and Maths skills for this job! +badge_desc_MD1=Awarded to winners of the Meet Dave quiz competition. 2008. +badge_name_UKW=Silver Rollercoaster +badge_name_SU1=Low Tiki Mana +badge_desc_Z29=Awarded to The Insiders prank competition winners. October 2008. +badge_desc_UKE=I left everything behind and was able to win. April 2020. +badge_desc_ADM=Habbo.com Staff member +badge_name_U01=Idea Agency competition runner-up! +badge_name_ACH_EmailVerification1=True You +badge_desc_EC2=Won a Love The Earth event +badge_name_CL2=Idea Agency competition winner! +badge_name_ACH_Login6=Covered with moss +badge_desc_AC3=Initiated through the Totem bases of fire BLUE +badge_name_WH7=Virus Blood +badge_desc_Z27=Road Trip USA Queen badge winner. Awarded to anyone who exchanged 25 Fuel Points. 2008 +badge_desc_HJ2=I'm an official Harajuku Lovers girl +badge_name_Z14=Briefcase Affair +badge_name_ACH_GamePlayed3=Battle Royal III +badge_desc_Z19=You have reached LEVEL4. October 2008. +badge_name_DK5=Camp Rock Guitar Blue +badge_desc_ACH_RespectEarned5=Level 5 - For earning respect a further 100 times. Worth 100 pixels. +badge_desc_HJ4=Member of the Cool Japan Quiz winning team +badge_desc_Z60=Built a Museum room to house a replica tablet +badge_name_ACH_AllTimeHotelPresence4=Online time IV - Blizzard +badge_name_Z16=Newspaper Affair +badge_desc_ACH_Motto1=For editing your motto & letting us know how you're feeling. Worth 10 pixels. +badge_name_U03=Idea Agency competition winner! +badge_desc_Z59=Master of the history quest +badge_name_Z37=Hotel For Dogs 2* Resort Owner +badge_name_HX6=Habbo eXpert +badge_desc_ACH_RegistrationDuration3=Level 3 - For true Habbos who have been members of the community for 8 weeks. Worth 90 pixels. +badge_name_MD2=Meet Dave Body +badge_desc_WH1=Habboween competition /event winner. +badge_desc_UKR=Winner of St Trinians Head Girl competition. +badge_desc_Z15=My Spy Family quest 1 winner. +badge_name_HJ5=Harajuku Lovers Music +badge_name_U05=Habbo Raceway Course +badge_name_ACH_MGM1=Baby Shower +badge_name_GLH=Bear +bage_name_XMA=Christmas 2008 comp winner +badge_name_HF1=Golden Football Boot +badge_name_Z13=HBB Runner Up +badge_name_ACH_RoomEntry10=Pilgrim +badge_desc_UKJ=Dark is Rising sign of wood. 2007. +achievements_desc=Achievements are tasks that you can do in Habbo Hotel. For each Achievement you receive a badge and some pixels +badge_name_UKY=Quest Guild +badge_name_ACH_RegistrationDuration5=50 % True Habbo +badge_desc_VA1=Awarded to the two superlove champions Valentine's 2006. +badge_desc_UKX=Winner at the St Trinian's Quiz competiton 2008. +badge_name_Z48=Bionicle Kick Wars Winner +badge_desc_UKV=Theme Park team competition champion. 2008 +badge_name_DN4=Pink Fuel Flag +badge_desc_SNW=Hall of Fame member. Awarded to the top 25 SnowStorm players. +badge_desc_HC4=Level 4 - For 36 months of Habbo Club membership. Worth 400 pixels. +badge_desc_Z25=You have reached LEVEL1. October 2008. +badge_desc_ATW=Globetrekker competition winner. Country room is in our Globetrekker Tour Guide 2008. +badge_desc_NEC=Official HMF:Neon Best New Artist Supporter +badge_name_ACH_GamePlayed1=Battle Royal I +badge_desc_UKT=Theme Park creative competition winner. 2008 +badge_desc_UKN=Awarded to winners of the 2007 HAFTAs where rooms were built based on films. +badge_desc_ACH_Login10=Level 10 - For logging in 100 days in a row. Breathtaking. Worth 200 pixels. +badge_desc_ST6=You need Science and Maths skills for this job! +badge_desc_EC5=Found the Tree within. +badge_name_ACH_RoomEntry1=Room Raider +badge_name_AC4=The Spirit Eagle +badge_desc_HUB=For entering our Infobus Session in April 2020. +badge_name_ACH_RegistrationDuration2=20 % True Habbo +badge_name_HC1=HC Club membership I +badge_desc_DU3=Habbowealth Games 2005. +badge_name_CY2=Low Yin Yang +badge_name_XM9=Arctic Snowballers! +badge_desc_SB4=Furnihilists gang member on the Streets Of Bobba September 2006. +badge_desc_ACH_Login6=Level 6 - For logging in 60 days in a row. Phenomenal. Worth 200 pixels. +badge_desc_XM3=Reindeer Vs Elf Christmas 2005 +badge_desc_HX4=Game eXpert +badge_name_SB4=Furnihilists +badge_name_DN1=Diner Expert +badge_name_ACH_RoomEntry9=Habitué +badge_name_Z11=HBB Contestant +badge_name_Z30=Pumpkin Design +badge_desc_VA4=Habborella cruise ship staff Valentine's 2008. +badge_name_UKN=HAFTAs Award +badge_desc_UK8=NSPCC campaign badge. Stop Bullying. Full stop. +badge_desc_UKP=Winner of the St Trinians perfect prefect competition. +badge_name_ACH_RoomEntry7=Traveler +badge_name_KIR=Keep It Real +badge_desc_Z40=I celebrated Habbo UK's 8th birthday, 17/1/2009 +badge_name_Z25=IGOR GOGGLES +badge_name_ACH_RegistrationDuration7=70 % True Habbo +badge_desc_TC2=Wobble Squabble Challenge involved being in the top 20 highscores for 15 weeks in a row! +badge_desc_HBA=Hobbas were volunteer moderators. +badge_desc_VA2=Awarded to competition winners during Valentine's week each year. +badge_desc_ACH_RoomEntry5=Level 5 - For hanging out in 60 Guest Rooms that you do not own. Globetrotter. Worth 15 pixels. +badge_desc_OL3=Awarded to members of the 3rd Habbolympic team 2008. +badge_desc_Z10=Competition winner at the Habbo Underage Festival 2008. +badge_name_ACH_RespectEarned10=Been respected 1166 times. +badge_desc_Z46=HAFTAS Winner 2009 +badge_desc_Z23=You have reached LEVEL2. October 2008. +badge_desc_ACH_RegistrationDuration9=Level 9 - For true Habbos who have been members of the community for 4 years. Worth 200 pixels. +badge_name_ACH_RegistrationDuration9=90 % True Habbo +badge_desc_ACH_TraderPass2=Level 2 - Achieved if you have been busy trading your stuff. Keep it up! +badge_desc_Z48=I showed the strength of a Bionicle glatorian! +badge_desc_XM1=Rasta Santa was awarded during Christmas 2005. He visited the hotel December 2006. +badge_desc_Z04=Earth Week 2020 +badge_name_ACH_MGM6=Reunion +badge_name_WH3=Vampire Fangs +badge_name_Z02=Earth Week 2020 +badge_name_Z56=The Buzz Brain of Habbo +badge_name_Z27=Road Trip Queen +slots_full=5 badges worn! +badge_name_HUB=Infobus Session April +badge_desc_KIR=Keep It Real competition winner. Don't forget to keep it 100% Habbo! +badge_desc_U02=Idea Agency Silver brief winner! +badge_desc_AP3=A winner or runner-up in the HABprentice: Designer Edition tasks +badge_desc_ACH_GamePlayed10=Level 10 - For playing and winning Snow Storm or the game of Battle Ball 440 times. Worth 340 pixels. +badge_wear=Wear +badge_name_TC2=Wobble Squabble Champ +badge_save=Save +badge_desc_WAR=Awarded for attending the Peace Protest in 2008 or responding correctly to the Peace Poll. +badge_desc_ACH_RespectEarned2=Level 2 - For earning respect a further 5 times. Worth 20 pixels. +badge_desc_DK6=Camp Rock Winner 2008 +badge_desc_ACH_RoomEntry3=Level 3 - For hanging out in 30 guest rooms that you do not own. Worth 15 pixels. +badge_desc_UK6=Billboard design winner. Billboards were displayed in the Gallery Cafe for 2 weeks during 2007! +badge_name_GLJ=Owl +badge_desc_Z08=2nd place in the Step Up 2 The Streets dance competition. +badge_desc_OL1=Awarded to members of the 1st Habbolympic team 2008. +badge_desc_GLH=Level 8 - The friendly one - kind and always there. For being a Habbo guide - Here to help. Worth 735 pixels. +badge_desc_HX6=Gold Safety eXpert +badge_name_AP2=Official HABprentice Designer 2009 +badge_desc_DN5=Roadtrip USA 10 Points 2008. +badge_name_Z19=IGOR BUBBLING BEAKER +badge_name_ST1=Sound Engineer +badge_name_CAC=Landscape Expert +badge_desc_ACH_MGM1=Level 1 - For creating your own fellowship - party of 2. For inviting one real life friend to Habbo. Worth 50 pixels. +badge_name_AC6=The Angry Spirit Ape +badge_name_ACH_GamePlayed8=Battle Royal VIII +badge_desc_ACH_RoomEntry1=Level 1 - For hanging out in 5 guest rooms that you do not own. Worth 5 pixels. +badge_desc_GLJ=Level 10 - The old and wise one - loyal, with a heart of gold. For being a Habbo guide - Here to help. Worth 1000 pixels. +badge_desc_ACH_AvatarTags1=For tagging yourself with 5 tags. Use your words wisely. Describe yourself for a wicked match! Worth 50 pixels. +badge_desc_ACH_MGM3=Level 3 - For creating your own fellowship - party of 4. For inviting one real life friend to Habbo. Worth 60 pixels. +badge_name_WH5=Purple Guitar +badge_desc_AR1=Alhambra Prize Winner 2008 +badge_name_GRR=Gorillaz Celeb Visit +badge_desc_GLD=Level 4 - The digger one - has information you cannot find. For being a Habbo guide - Here to help. Worth 90 pixels. +badge_name_ACH_RespectEarned9=Been respected 966 times. +badge_name_Z08=Silver Graffiti +badge_desc_XM9=For Arctic Maze survivors! +badge_desc_AC5=Used the inner Spirit Squid to find the Lost Tribe of Bensalem +badge_name_DU2=Silver Habbowealth +badge_name_GLB=Bambi +badge_name_UK2=Always Salon Champ +badge_desc_ACH_MGM5=Level 5 - For creating your own fellowship - party of 8. For inviting two more real life friends to Habbo. Worth 140 pixels. +badge_name_VIP=VIP Pass +badge_desc_Z06=3rd place in the Step Up 2 The Streets dance competition. +badge_desc_GLB=Level 2 - The loving one - makes you wanna help others. For being a Habbo guide - Here to help. Worth 32 pixels. +badge_name_UK4=Habbo Council +badge_name_ACH_MGM4=Dance Party +badge_desc_HX1=Host eXpert +badge_desc_Z21=You have reached LEVEL3. October 2008. +badge_name_MB1=Madball Red Card +badge_name_ACH_RespectEarned7=Been respected 566 times. +achievements_tab_title=Achievements +badge_name_ATW=Globetrekker +badge_desc_HC2=Level 2 - For 12 months of Habbo Club membership. Worth 200 pixels. +badge_desc_Z36=Hotel For Dogs 1* Resort Owner +badge_name_VA8=Large Shalimar +badge_desc_JF2=Awarded to everyone who opened a Sushi Parlour that was visited and endorsed by Kitsune. 2008 +badge_name_ACH_RespectEarned5=Been respected 166 times. +badge_name_Z06=Bronze Graffiti +badge_desc_UKI=Dark is Rising sign of water. 2007. +badge_name_Z23=IGOR BUNSEN BURNER +badge_desc_Z12=Winner of Habbo Big Brother series1 in July 2008. +badge_desc_ACH_Login2=Level 2 - For logging in 8 days in a row. Weird. Worth 80 pixels. +badge_name_GLD=Badger +badge_desc_Z56=I've got the biggest brain in all of Habbo! +badge_name_MMC= +badge_desc_GLF=Level 6 - The hunter - stalks down the answers. For being a Habbo guide - Here to help. Worth 600 pixels. +badge_name_HC4=HC Club membership IV +badge_name_CH002=Schreibwerkstatt Badge +badge_desc_CH002=Gute Geschichte! +badge_name_CH003=Gewinner eines Habbo Ocean Events +badge_desc_CH003=Habbo Ocean Events +badge_name_DEH=Pixelolymp +badge_desc_DEH=Bezwinger einer Pixelolymp Herausforderung +badge_name_HQ005=Crime Scene Level 2 +badge_desc_HQ005=Provided Detailed Eyewitness Account 2009 +badge_name_MS3=Malign +badge_desc_MS3=Do not mess with me! Devil's Maze Top 10 +badge_name_NO007=Joulukuusi +badge_desc_NO007=Veikannut oikein joulukoristeiden määrän +badge_name_U04=Habbo 500 Race Winner +badge_desc_U04=All winners from a Habbo 500 daily event earned this badge. +badge_desc_UKL=Fantastic Four Silver Medallion. 2007. +badge_desc_MB1=Overall champions of Habbo Madball 2008. +badge_desc_ST1=You need Science and Maths skills for this job! +badge_name_Z21=IGOR PINCERS +ctlg_spaces_wall=Wall +catalog_give_trophymsg=You haven't engraved the trophy. Type \ryour inscription in the grey box. +catalog_get_credits_link=Get Credits >> +ctlg_plasto_preview=Preview +pixels=Pixels +catalog_pet_name_length=Oops, pet's name is too long (max 15 characters) +catalog_buyingSuccesfull=Buying Successful! +Alert_no_credits=You don't have enough Credits. +catalog_costs=\x1 costs \x2 Credits +ctlg_spaces_landscape=Landscape +link.format.collectibles=http://%predefined%/credits/collectibles +catalog_pixels=You have \x Pixels. +catalog_length_trophymsg=Oops, your inscription is too long, so it won't fit on the trophy. \rPlease type something shorter. +catalog_selectproduct=Select product: +catalog_typeurname=Type your greetings here\r(don't forget to put your name!): +ctlg_plasto_select=Select the colour: +catalog_credits=You have \x Credits in your purse. +shopping_costs=XX costs XX Credit(s).\rJust click 'buy' once, it'll appear shortly. +credits=Credits +catalog_give_petname=Type your pet's name in the grey box. +redeem=Redeem +buy_andwear=Buy & Wear +shopping_asagift=Buy As A Gift +catalog_costs_pixelsandcredits=\x1 costs \x3 Pixels and \x2 Credits +shopping_got=You have xx in your Purse. +catalog_get_pixels_link=How to get >> +catalog_costs_pixels=\x1 costs \x3 Pixels +catalog_creditsandpixels=You have \x Credits in your purse and \y Pixels. +shopping_nocash=You don't have enough Credits in your Purse.\r Click 'OK' to see the different ways of\rgetting Habbo Credits. +catalog_coins_amount=You have %amount% Credits +catalog_itsurs=Yay! It's being delivered now. +expiring_item_postfix=Lasts %x% hours %y% minutes. +catalog_published=The catalogue has been updated. Please reload the catalogue. +catalog_pet_unacceptable=Sorry, that name is unacceptable to Hotel Management +catalog_page=page +ctlg_plasto_choose=Choose a product: +ctlg_spaces_colour=Colour +Alert_no_credits_and_pixels=You don't have enough Credits and Pixels. +catalog_purchase_not_allowed_hc=In order to buy this item you must be a Habbo Club member! +catalog_giftfor=This is a gift for: +ctlg_spaces_floor=Floor +Alert_no_pixels=You don't have enough Pixels. +catalog_info_window=Catalog info dialog +catalog_costs_credits=\x1 costs \x2 Credits +ctlg_spaces_pattern=Pattern +ctlg_spaces_preview=Preview +fx_12_desc=Ice cold! +fx_desc_duration=%rYou have %c of these, duration %hh %mmin +fx_18=UFO in yellow +fx_4_desc=Twinkle like the star you are. +fx_btn_stop=Stop effect +object_displayer_fx=%fx (%t) +fx_19=BluesMobile +fx_5=Torch +fx_bubbles=Forever blowing bubbles! +fx_inv_window_title=My effects +fx_18_desc=Unidentified yellow flying object. +fx_17_desc=Fly away with this UFO of love. +fx_20_desc=How can I help? +fx_inv_active_title=Effects activated: +fx_16=Microphone +fx_22_desc=This is black sunshine! +fx_23_desc=You can even fly! +fx_24_desc=What a shower! +fx_25_desc=What a heat it gives off! +fx_26_desc=Do not even think of a case! +fx_11_desc=X-Rayed +fx_explosion=Explosions +fx_btn_inventory=Effects Inventory +fx15=Hover board +fx_flare=Flares! +fx_4=Twinkle +fx_20=HelpMobile +fx_12=Frozen +fx_catalog_link_text=You can get cool effects from the catalogue, go get yours! +fx_1_desc=Shine the light on me! +fx_9=Love +fx_9_desc=Love is in the air. +fx_7=Butterfly effect +fx_11=X-Ray +fx_8=Fireflies +fx_8_desc=Light my fire +fx_6=HRJP-3000 +fx_17=UFO in pink +fx_21=RebelMobile +fx.catalog.link.nodename=Special Effects +fx_3_desc=Help, I'm being abducted. +fx_btn_choose=Wear effect +fx_19_desc=We're on a mission from god. +fx_16_desc=Habbo Dragonfly microphone +fx_tab_title=My effects +fx15_desc=The future of transportation in yellow. +fx_6_desc=Habbo Rocket Jet Pack. +fx_15=Yellow hover board +fx_10_desc=Get a shower! +fx_2=Hover board +fx_21_desc=Drive like lightning, crash like thunder! +fx_13_desc=Spooky +fx14_desc=The future of transportation in pink. +fx_3=UFO +fx_10=Flies +fx_13=Ghost +fx_notinuse=Not in use +fx_14_desc=See the world on pink hover board. +fx14=Hover board +fx_btn_activate=Activate +fx_1=Spotlight +fx_inv_worn_title=Currently active effects: +fx_7_desc=Let the butterflies flap their wings. +fx_5_desc=Light the dark corners of your existence. +fx_22=BadMobile +fx_23=Radioactive +fx_24=Under rain +fx_25=Flares +fx_26=Stick of command +fx_14=Pink hover board +fx_2_desc=The future of transportation. +fx_15_desc=As yellow as a submarine. +help_choise_header=What do you need help with? +pending_cfh_title=Your old message +hobba_pickup_go=Pick Up & Go! +help_pointer_2=http://www.habbohotel.co.uk/iot/go?lang=en&country=uk +win_help=Habbo Help +chatlog.url=https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId= +help_txt_4=The Habbo Way +callhelp_example=Example: How do I move my Furni? +help=Habbo Help +modtool_roomalert=Room Alert +help_emergency_explanation=If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible. +hobba_reply_cfh=Reply to: +help_txt_2=Password Reset +hobba_alert=Moderator Alert +modtool_message=Message: +modtool_header=The Tool +hobba_pickandreply=Pick & Reply +help_trouble=In Trouble? +hobba_pickblock=Block +help_option_2=My Habbo account. +help_txt_5=Safety Tips +modtool_extrainfo=Extra Info: +modtool_alertuser=Alert User +modtool_kickuser=Kick User +hobba_chatlog=See Chat Log >> +help_pointer_4=http://www.habbo.co.uk/help/86 +hobba_blockedby=Blocked by: +help_txt_1=How do I get Credits? +help_option_4=Current System Status +help_pointer_1=http://www.habbo.co.uk/help/ +help_emergency_writeyour=Give details of your emergency here: +help_txt_3=Help with Habbo Hotel +callhelp_sent=If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible. +callhelp_writeyour=Write your question about Habbo Hotel here: +hobba_cryforhelp=Automatic call for help +hobba_sent_to_helpers=Call re-assigned as emergency and sent to moderators +help_option_3=A serious issue (harassment, sexual behaviour) +modtool_banreason=Ban Reason: +modtool_banlength=Ban Length: +help_tour=Guided Tour +modtool_ban_ip=Ban IP Also +help_emergency_whathappens=A member of community staff will investigate the situation and take appropriate action. Please check Service Updates on the FAQs for known technical problems. +help_callforhelp=Get Live Help +help_topics=Help Topics: +help_pointer_3=emergency_help +help_option_1=Playing Habbo +modtool_days=Days +hobba_pickedby=Picked Up By: +hobba_mark_normal=Send To Helpers +hobba_mark_emergency=Emergency Help +hobba_sent_to_moderators=Call re-assigned non-emergency, still visible to moderators +modtool_ban_computer=Ban Computer Also +help_emergency_example=Example: A Habbo wants to see me on webcam. +modtool_roomkick=Room Kick +modtool_aa_checkbox_text=Audio alert +modtool_banuser=Ban User +modtool_hours=Hours +callhelp_allwillreceive=A member of community staff will investigate the situation and take appropriate action. Please check Service Updates on the FAQs for known technical problems. +hobba_pickup=Pick Up +hobba_im_cryforhelp=Automatic IM call for help +hobba_send_reply=Send Alert +callhelp_explanation=Thanks for reporting the problem +hobba_emergency_help=Call for emergency help +you_have_pending_cfh=Your previous call for help has not been answered yet. To make a new one you must delete the old message. +hobba_message_from=Your call has been responded to as follows: +help_emergency_sent=Thanks for your call! +help_txt_6=Contact Us +modtool_choose_length=Choose Length: +Alert_NoNameSet=Check your Habbo name. +Alert_YouAreBanned_T=A Moderator kicked you out of the room. +Alert_YouAreBanned=You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form): +automute.warning.message=The language you are using is not suitable for Habbo Hotel. If you continue a Moderator will take action. +Alert_no_credits=You don´t have enough Credits for this. +ig_error_join_failed_4=The team you tried to join is full already. +win_callforhelp=Alert a Moderator +ig_error_join_failed_1=You have been kicked out of this game. You can not join the same game again. +win_error=Notice! +Alert_ChooseWhoToSentMessage=Please choose who to\rsend your message to +alert_donate_topic=SCAM ALERT! +alert_InvalidUserName=Don't use this character: \x ! +Alert_unacceptableName=Sorry, that name is unacceptable to the Hotel Management +alert_reg_t=Please check these details: +Alert_RememberSetYourPassword=Please check your password +Alert_InviteFriend=Invite your friends +ig_error_join_failed_6=The game you started is not over yet. Wait for a while and try again. +alert_reg_age=You are under 11 years old. Children under 11 can't enter Habbo Hotel. +error_ok=OK-> +landscape_no_windows=To see the Landscape add windows to the room. +Alert_ModeratorWarning=Message from a Moderator- +floodblocking=You are typing too fast - don't flood the room. +alert_donate_ok=Give away my furni +room_alert_furni_limit=This room has the maximum amount of Furni. +ig_error_join_failed_2=Only one player can play on the same computer. +alert_reg_birthday=Birthday +alert_tooLongPW=Your password is too long +alert_donate_content=The other Habbo has not put anything into the trade. Are you sure you want to give away your furni? +Alert_moderator_warning= +alert_shortenPW=Your password cannot be longer than 9 characters +Alert_ConnectionNotReady=Could not connect to the server +alert_warning=Moderator says: +ig_error_game_deleted=You barely missed it. This game has just been canceled. +error_title=Oops, error! +alert_reg_blocked=A person under 11 years of age has tried to register from this machine recently.\rRegistration is not possible for a while. +alert_needpermission=You need your parent or guardian's permission to spend time in Habbo Hotel. +Alert_NameAlreadyUse=That name is already being used +epsnotify_1001=The hotel is full at the moment. Please try again in a few minutes. +ig_error_game_cancelled=Your game has timed out and is now being canceled. +nav_error_toomanyfavrooms=You can't have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one. +Alert_NameTooLong=Sorry, that username is too long! +Alert_NoNameSetForLogo=Please give a name to your logo +Alert_YouMustAgree=You must accept the Terms and Conditions before proceeding. +Alert_YourPasswordIsTooShort=Passwords must be at least 6 characters long. +queue_tile_limit=You can't fit more Habbo Rollers in this room! +Alert_purchasingerror=Buying unsuccessful +alert_reg_email=Email +ig_error_join_failed_7=You can not create a new game yet. You have to leave your current game first. +Alert_CheckBirthday=Please check your birthday +Alert_MessageFromAdmin=Message from Hotel Management- +error_room_full=Huone on täynnä. +Alert_YourNameIstooShort=Habbo names must be at least 3 characters long. +ig_error_start_failed_1=Game could not be started. There were not enough players left. +alert_too_much_furnitures=Furni limit for room is exceeded. Not all furnitures are shown. Please remove some. +alert_duplicatesession=You are already logged in on another hotel! Log out before trying again. +Alert_ConnectionDisconnected=Please reload Habbo Hotel!\r\rIf this happens again, please wait a moment before reloading. +alert_old_client=You have an old version cached. Please empty your browser cache and login again. +alert_cross_domain_download=Cross domain content download prevented +Alert_ConnectionFailure=Disconnected +Alert_WrongNameOrPassword=Wrong name or password - please try again! +Alert_BuyingOK=Buying Successful! +error_report=Error Report +Alert_ForgotSetPassword=Please check your password +error_text=Error occured, press 'OK' to restart program.\r\rPlease report bugs to:\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \rSorry for the inconvenience. +automute.muted.message=Due to continuing the unsuitable language, you are muted for the next 10 minutes. +Alert_YourPasswordIstooShort=Passwords must be at least 6 characters long. +error_room_closed=Huone on suljettu. +alert_win_coppa=You are blocked +Alert_WrongPassword=Check password! +error_report_explain=An error has occurred, please see the error code above. +alert_no_category=Your room has no category. Please choose one from the drop down list. +Alert_LogoNameAlreadyUse=That name is already being used +ig_error_enter_arena_1=This game has already started. +error_report_trigger_message=Last message ID +trading_already_open=You are trading with someone and you cannot start a new trade. +trading_accept=Accept trade +trading_wait=Please wait... +trading_cancel=Cancel Trading +start=Start +trading_disabled_my=This account does not have trading in use. You can receive items from other users but cannot give them anything. Check your trading settings and make sure your email-address is activated. +trading_youoffer=You offer: +trading_confirm_info=These are the final offers. Please confirm the trade. +trading_confirm=Confirm +trading_disabled_her=This user does not have trading in use. You can give him/her items but he can't give you anything in return. +trading_disabled_both=Trading is not in use for either of you, check your trading settings. +trading=Trading +trade=Trade +human_trading=Trading +trading_title=Safe Trading +trading_offers=offers: +trading_agrees=agrees +trading_modify=Modify trade +trading_waiting_info=Waiting for other user to confirm the trade. +trading_youagree=You agree +trading_closed=Other user cancelled the trade. +trading_additems=Put items in boxes +next_onearrowed=Next > +ok=OK +win_partner_registration=Partner registration +partner_registration_title=Hey, I forgot to mention one thing.. +poll_alert_answer_missing=Please give an answer +ad_note=Clicking this advertisement will open a new window +open=Open +gen_youhave=You Have +poll_offer_title=Poll +poll_offer_window=Welcome to our poll +preview_downloading=Preview downloading... +previous=Previous +security=Security +accept=Accept +move=Move +cancel=Cancel +poll_confirm_window=Leave our poll +search=Search +send=Send +decision_cancel=Cancel +no=No +win_delete_item=Remove Item +previous_onearrowed=< Previous +poll_alert_invalid_selection=Please select fewer alternatives +partner_registration_text=Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel. +modify=Modify +reject=Reject +poll_question_number=Question %number%/%count% +loading=Loading... +pick_furniture=Put Furni In Hand +move_furniture=Move Furni +closed=Closed +poll_alert_server_error=The poll isn't available anymore. Polls are only available at a certain public space for a certain duration. +loading_project=Loading Habbo Hotel... +chat.curse_word=Bobba +LoadingRoom=Loading room... +x=X +next_arrows=Next >> +close=Close +poll_thanks_window=Thanks! +done=Done +next=Next +pickup=Pick up +click=OK to continue to the hotel. +rotate=Rotate +buy=Buy +decision_ok=OK +poll_confirm_cancel=Stop answering? +partner_registration_link=Finish registration +credits=Credits +yes=Yes +GoAway=Leave The Room +no_user_for_gift=No user named %user% found. Gift not purchased. +normal_roomlayouts=<< Back to normal room layouts +back=Back +delete=Delete +remove=Remove +rotate_furniture=Rotate Furni +go=Go >> +poll_confirm_cancel_long=Are you sure you want to stop answering the poll? You can't continue later. +credit=Credit +char_welcome=Welcome! +poll_window=Question +people=People +NUH_invitation_search=Waiting for guides to arrive... +NUH_invitation_failure=Sorry, available Habbo guides were not found. +NUH_hand_topic=Where to keep my stuff? +NUH_guide_info_autoselected=This is a Guide (experienced player) who responded to your invitation. See more information about the Guide on the right. +NUH_events_topic=Looking for a place to go? +nuh_shopping=You can earn pixels if you complete achievements. You can shop with your pixels in the catalogue. +NUH_friends=Check out your friend list to see friends and friend requests. +NUH_invitation_status_header=Habbo Guidance +NUH_chat=Click here and type to chat to other Habbos. +NUH_invitation_success=Inviting completed successfully! +guide_tool_friendlist_full=You cannot start picking up invitations. Your friend list is full. +guide_tool_start_picking=Start picking up invitations from the new users? +NUH_achievements_topic=Things to do here? +guide_tool_alert_sound=Use alert sound +guide_tool_service_disabled=Habbo Guides is currently disabled. +NUH_invitation_option_1=Check out the events >> +NUH_shopping_topic=Pixels and Shopping +guide_tool_waiting=Searching for invitations... +NUH_friends_topic=Friends? +guide_tool_header=Habbo Guide Tool +NUH_achievements=If you click your character, and click "badges" you can see a list of achievements you can do from the achievements window. +NUH_invitation_guides_found=Guides found: +NUH_hand=Click the hand icon to open your inventory, You have received a gift! +NUH_events=Event board is full of parties organized by other players, jump in. +NUH_finish=Meet other players in events, rooms and lounges or play a game. +NUH_room_left_back=Go back to Your room. +NUH_ig=Join and start free multiplayer games. Throw snowballs in SnowStorm or color tiles in Battle Ball. +NUH_asktoshowhelp_decision_cancel=No, skip +NUH_asktoshowhelp_decision_ok=Yes +NUH_room_left_close=Cancel invites +NUH_navigator=Use the Navigator to move around. There are literally thousands of rooms to explore! +NUH_asktoshowhelp_text=Want us to show you some tips on how to do things here in Habbo? +NUH_own_user=This is your character. Click on floor to move around. + +Click on your character to select it and show the info stand. +NUH_games=Wanna play? Join for a game with other Habbos. +NUH_finish_topic=Have fun exploring! +NUH_messenger=Open your Console here - you might have messages or friend requests waiting. +NUH_shopping=You can earn pixels when you play Habbo and if you complete achievements. Spend your pixels in catalogue. +NUH_asktoshowhelp_title=Tutorial +NUH_invitation_option_2=Play games >> +NUH_guide_info=This is a Guide that responded to your invitation. +NUH_room_left=You have left your room. +guide_tool_max_newbies=You are currently helping 10 new users. You cannot help anymore until you have finished with your current ones. +club_thanks_title=Congratulations! You are now a member of Habbo Club. +club_isp_change=Change your subscription +club_timefull=Sorry, you can only buy up to three months of Habbo Club subscription in advance. +club_txt_changesubscr=Change subscription +club_general_infolink=More Info About Habbo Club >> +club_button_1_period=Buy 1 >>> +club_desc_2_period=3 Months (93 days) = 60 Credits +club_confirm_text2=Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\r\r After buying the membership, you will immediately be part of the Habbo VIP Community. +club_txt_renew2=You are Habbo Club member. If you want to change your subscription or leave the club, use the link below. +club_change_url=http://%predefined%/credits/club +club_intro_link=Learn more about Habbo Club! +club_button_2_period=Buy 3 >>> +habboclub_confirm_header=Subscription costs %price% credits +club_habbo.bottombar.link.notmember=Join! +club_end_title=Your Habbo Club membership has now expired. +club_txt_expired=Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you'll be able to get your hands on as a Habbo Club member, take a look in the Catalogue. +club_price=One month costs 25 Habbo Credits. +club_general_elapsed=Elapsed Months +club_confirm_text1=1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\r\r After buying the membership, you will immediately be part of the Habbo VIP Community. +club_confirm_title=You are about to subscribe to Habbo Club. Wise choice! +club_buy_url=http://%predefined%/credits/club +habboclub_confirm_body=You have %credits% credits +club_paycoins=Buy subscription +club_paybycash_url=(leave this empty if you don't want to have this link displayed) +club_expired_link=Click here to join Habbo Club +club_button_close=Close Window +habboclub_txt3=Yes, I'm over 14 years of age\rOR\rI'm under 14 years of age and I have a permission from my parent/guardian to join Habbo Club. +club_general_prepaid=Prepaid Months +club_txt_renew1=Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits. +club_status_text=Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month. +club_extend_text=If you're subscribing again to Habbo Club, you won't lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\rRemember: one club month lasts 31 days. +habboclub_price1=30 +club_info_url=http://%predefined%//credits/habboclub +club_thanks_text=Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month. +club_confirm_gift_text=A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel. +club_intro_text=Members of Habbo Club get LOTS of cool stuff!\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list! +club_button_extend=Extend Membership +club_habbo.bottombar.text.notmember=Habbo Club +habboclub_txt1=You can buy Habbo Club one month at a time using Habbo Credits. +club_desc_1_period=1 Month (31 days) = 25 Credits +club_txt_intro=Welcome to Habbo Club - the members only club that all the best Habbos belong to!\r\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you'll be able to get your hands on as a Habbo Club member, take a look in the Catalogue. +club_gift.message=Happy Habbo Club! Love Callie :) +club_habbo.bottombar.link.member=%days% days +club_extend_failed=Sorry, we were unable to process the purchase. No Credits were charged! +habboclub_price1.days=30 +habboclub_thanks=Yippee! You are now a member of Habbo Club! Your current email address is %email%. \r\rIf that's not the one you are using, please go to 'Update my Habbo ID' and change it now. \rThen we can contact you about your membership if need be. +habboclub_continue_button=Buy one month +club_txt_whatis=What is Habbo Club? +club_intro_header=Welcome to Habbo Club, the members-only club that all VIP Habbos belong to! +club_habbo.window.title=Habbo Club +club_general_daysleft=Number of HC days left +club_bottombar_text1=Loading +club_status_title=You are currently a member of Habbo Club. +club_confirm_gift_title=You have received a Habbo club gift! +club_confirm_text3=Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\r\r After buying the membership, you will immediately be part of the Habbo VIP Community. +club_member=Member +club_extend_title=Habbo Club membership can be extended VERY easily. +club_end_text=BUT, don't worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge! +club_desc_3_period=6 Months (186 days) = 105 Credits +club_bottombar_text2=(....) +club_txt_paycash=Pay by Cash +club_habbo.bottombar.text.member=Habbo Club +club_button_3_period=Buy 6 >>> +habboclub_require_parent_permission=You need to tick the box to say that you are over 14 years or age, \ror under 14 and have your parent/guardian's permission to join Habbo Club. \rPlease go back and tick the box. +month12=December +reg_check_confirm=Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button. +reg_parentemail_moreinfo=More information: +reg_welcome3=Now the fun begins! All you need to do is register and you're ready to start. It won't take long!\rYou can change everything except your name and date of birth later. Come on! +reg_note_title=Warning! +login_welcome=Welcome +login_firstTimeHere=First time here? +reg_update_text=Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni! +reg_verification_newPasswordAgain=Retype new password: +update_email_suggest=Habbo Hotel security supervisor requests you to update your email +reg_passwordContainsNoNumber=Password must contain at least one number +reg_verification_incorrectPassword=Your password was incorrect +reg_habboname_note=Now it's time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name. +reg_parentemail_title2=Email address of parent/guardian: +reg_day=Day +reg_check_info=CHECK YOUR INFO +emailpw=Send +reg_use_allowed_chars=Use only these characters: +month01=January +alert_reg_parent_email=The email address you provided is unacceptable. +reg_readterms_alert=You have to read the Terms and Conditions\r(scroll to the bottom of the text). +messenger.email.footer= +help_txt_5=Contact Us +registration_disabled_text=You can't create new Habbos at the moment. Please try again [some date].. +month03=March +reg_legal_header1=Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents. +month04=April +reg_pledgelink=Hotel rules +month08=August +login_name=Name of your Habbo +reg_age_check_note=Enter your birthday. You will need your birthday information when changing your password or email. +login_whatsHabboCalled=What's your Habbo called? +login_connecting=Connecting... +reg_termslink=Terms and Conditions +month02=February +month05=May +reg_pwd_note=Choose a password that's hard to guess! So, don't use ANYONES name, or your favorite colour! +reg_doneheader=Congratulations!\rYou're a Habbo! +reg_welcome=Welcome To Habbo Hotel! +reg_terms=Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don't understand.\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent's permission to do so. +win_figurecreator=Habbo Details +reg_note_text=Never change your password or email\rif someone else asks you to - they will\rsteal your furni and Credits! +forgottenpw_whatyou=What's your Habbo called? +reg_email_note=Please enter your e-mail address, this is important! You'll only get customer support and special offers via email, if you enter a valid email address and verify it. +reg_birthdayformat=Birthday*: [dd][mm][yyyy] +forgottenpw_email=Your email address +forgottenpw=Forgotten your password? +reg_parentemail_title=Informing your parents +retype_password=Retype Password: +log_problem_link=Read FAQ's +reg_welcome2=Create Your Own Habbo +password.email.subject=Forgotten password +reg_check_age=Age +password.email.prefix=Your password is: +month06=June +login_forgottenPassword_url=https://www.habbo.co.uk/account/password/forgot +reg_birthdayformat_update=Birthday (dd.mm.yyyy) +reg_forcedupdate=Please update your Habbo details! +help_txt_6= +login_password=Password +update_password_suggest=Habbo Hotel security supervisor requests you to update your password +reg_verification_newPassword=New password: +reg_month=Month +reg_year=Year +reg_olderage=I am 11 or older +month11=November +reg_parentemail_info=Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians. +month10=October +url_help_3= +reg_tutorial_txt= +url_help_2= +reg_underage=I am under 11 years old +reg_verification_updateOK=Update successful +reg_girl=Girl +reg_verification_checking=Checking... +reg_verification_info=You must know the correct birthday and password before you're allowed to make these changes. +reg_retypepass=Retype Password: +reg_check_name=Name +month09=September +reg_check_mail=Email +forgottenpw_done=If the email you gave during registration was correct, your password will be sent to you now. +reg_verification_newEmail=Your new email address: +url_help_4=http://%predefined%//help/22 +reg_legal_header2=Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel. +reg_habboname=Habbo name: +login_haventGotHabbo=Haven't got a Habbo yet? +reg_forcedupdate2=Update your Habbo info +reg_agree1=Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel. +reg_update_text2=Only change them when you want to make sure that nobody can know or guess your password. +reg_agree2=Yes, I have read the Habbo Hotel Terms of Service and I accept them +url_help_6= +reg_promise=*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties. +log_problem_title=Problems Connecting +month07=July +log_problem_url=http://%predefined%//help/faqs?faq_1_categoryId=14 +url_help_5= +log_problem_text=Oops.. Cannot connect to Habbo Hotel +reg_spam=Yes, I want to get the occasional email from the Hotel Manager. +login_ok=OK +reg_agree_alert=You have to agree to the terms of service\r(tick the box). +reg_boy=Boy +reg_mission=Your Mission: +messenger.email.header= +login_forgottenPassword=Forgotten your password? +reg_bday_note=Please enter your correct date of birth, this is important! You'll need this information later on, if you want to change your password or e-mail. +url_help_1=http://%predefined%//help/4 +reg_parentemail_link_text2=Privacy Pledge +reg_back=Back +reg_verification_invalidEmail=Check email address +reg_changeEmail=Change your email +password=Password: +reg_tutorial_url= +reg_parentemail_link_url1=http://%predefined%//help/parents_guide.html +reg_linkstitle=Full version of the documents: +reg_forcedupdate3=The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won't take long.\rJust go through the registration, check your info and agree to the new terms. Thank you! +login_create1here=You can create one here. +messenger.email.subject= +reg_verification_incorrectBirthday=Your birthday was incorrect +reg_verification_currentPassword=Current password: +reg_donetext=Soon you'll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, cafés, swimming pools and more! +reg_nameAndPassTooSimilar=Your name and password are too similar +reg_privacypledge=Privacy Pledge +email= +reg_changePassword=Change your password +forgottenpw_explanation=If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you. +reg_parentemail_link_url2=http://%predefined%//footer_pages/privacy_policy.html +reg_email=Email: +reg_parentemail_link_text1=See the letter +badges=Badges +object_displayer_show_actions=Show actions +say=Say +object_displayer_hide_actions=Hide actions +outlook=Change Clothes +object_displayer_link_badge=Edit Badge +shout=Shout +object_displayer_link_home=User's home page +room_give_respect=Give respect (%count%) +habbo_hand_prev=<<< +human_carrying=Carrying: +object_displayer_furni_expires_long=Rented item expires in %hours% hours %minutes% minutes +whisper=Whisper +dance_choose=Choose Dance +habbo_hand_next=>>> +object_displayer_hide_tags=Hide tags +object_displayer_link_looks=Change avatar looks +dance=Dance +wave=Wave +dance1=Hab-Hop +dance2=Pogo Mogo +object_displayer_furni_expires=Rented item expires in %minutes% minutes +room_ban=Kick & ban +dance_stop=Stop Dancing +dance3=Duck Funk +object_displayer_show_tags=Show tags +dance4=The Rollie +poster_47_desc=Twinkle, twinkle +poster_3_name=Fish Plaque +poster_43_name=Chains +poster_2001_name=Magic Carpet +poster_510_name=The Italian flag +poster_1006_name=Hoot Poster +poster_24_name=Three Wise Men Poster +poster_58_desc=Wishing you luck +poster_53_desc=whack that ball! +poster_1002_name=Queen Mum Poster +poster_1_desc=Is she smiling? +poster_30_name=Mistletoe +poster_2008_name=Habbo Leap Day Poster +poster_1004_desc=Celebrate with us +poster_506_name=The flag of Finland +poster_518_desc=A fiery dragon for your wall +poster_38_name=Smiling Headbangerz +poster_38_desc=For really TOUGH Habbos! +poster_25_name=Reindeer Poster +poster_511_desc=The flag of The Netherlands +poster_510_desc=The flag of Italy +poster_1000_name=Comedy Poster +poster_24_desc=Following the star +poster_32_name=Shiva Poster +poster_2002_desc=Presidentin muotokuva +poster_1004_name=Eid Mubarak Poster +poster_20_desc=A new use for carrots! +poster_42_name=Spiderweb +poster_35_desc=The Hotel's girlband. Dream on! +poster_55_name=Tree of Time +poster_2003_name=Dodgy Geezer +poster_31_desc=Pure and unbridled nu-metal +poster_58_name=Red Knots +poster_17_desc=Beautiful reproduction butterfly +poster_16_name=Bars +poster_508_desc=The flag of Spain +poster_500_desc=The UK flag +poster_10_desc=Beautiful sunset +poster_6_desc=But is it the right way up? +poster_504_desc=The German flag +poster_1003_desc=get the lovely isles on your walls +poster_23_desc=The jolly fat man himself +poster_509_name=The Jamaican flag +poster_56_desc=Serious partying going on! +poster_1001_name=Prince Charles Poster +poster_29_name=Gold Tinsel Bundle +poster_2_name=Carrot Plaque +poster_49_desc=All that glitters... +poster_21_name=Angel Poster +poster_8_desc=Habbos come in all colours +poster_1003_name=UK Map +poster_57_name=Calligraphy poster +poster_503_name=The Swiss flag +poster_2006_desc=He is the magic Habbo +poster_2007_name=The Father Of Habbo +poster_33_desc=We can't bear to lose them +poster_6_name=Abstract Poster +poster_29_desc=10 x Gold Tinsel +poster_28_name=Silver Tinsel Bundle +poster_2004_name=Rasta Poster +poster_509_desc=The flag of Jamaica +poster_2005_desc=The Special Infobus Poster +poster_32_desc=The Auspicious One +poster_54_name=Hockey Stick +poster_508_name=The Spanish flag +poster_15_name=Himalayas Poster +poster_22_name=Winter Wonderland +poster_26_desc=See that halo gleam! +poster_39_desc=The rock masters of virtual music +poster_505_name=The Maple Leaf +poster_520_name=The Rainbow Flag +poster_4_name=Bear Plaque +poster_19_desc=Trying to get in or out? +poster_523_name=India Flag +poster_501_desc=For pirates everywhere +poster_506_desc=To 'Finnish' your decor... +poster_2008_desc=Once every four Habbo years! +poster_521_desc=Ordem e progresso +poster_517_desc=Where's your kilt? +poster_41_desc=For the best music-makers +poster_5_name=Duck Poster +poster_37_desc=The Hotels girlband. Dream on! +poster_42_desc=Not something you want to run into +poster_45_desc=Needs a few more Habburgers +poster_9_desc=Do your bit for the environment +poster_55_desc=Save our trees! +poster_47_name=Small silver star +poster_48_name=Large gold star +poster_33_name=Save the Panda +poster_517_name=The Scottish flag +poster_507_desc=The French flag +poster_500_name=Union Jack +poster_7_name=Hammer Cabinet +poster_2002_name=Urho Kaleva Kekkonen +poster_4_desc=Fake of course! +poster_16_desc=Added security +poster_14_desc=A cunning painting +poster_27_desc=Deck the halls! +poster_1_name=Lady Lisa +poster_516_desc=Eng-er-land +poster_18_name=Butterfly Cabinet 2 +poster_18_desc=Beautiful reproduction butterfly +poster_2_desc=Take pride in your veg! +poster_3_desc=Smells fishy, looks cool +poster_513_name=The Australian flag +poster_514_name=The EU flag +poster_504_name=The Bundesflagge +poster_34_name=Scamme'd +poster_522_desc=Land of the rising sun +poster_502_name=The Stars and Stripes +poster_27_name=Holly Bundle 3 +poster_40_desc=The one and only. Adore her! +poster_515_desc=Waved by Swedes everywhere +poster_53_name=Hockey Stick +poster_36_desc=The Hotels girlband. Dream on! +poster_56_name=Disco Sign +poster_48_desc=All that glitters... +poster_59_desc=The eyes follow you... +poster_44_name=Mummy +poster_1006_desc=The eyes follow you... +poster_37_name=The Habbo Babes 3 +poster_83_name=Pöllö huhuilee +poster_36_name=The Habbo Babes 2 +poster_513_desc=Aussies rule! +poster_503_desc=There's no holes in this... +poster_512_desc=The flag of Ireland +poster_8_name=Habbo Colours +poster_12_name=Lapland Poster +poster_34_desc=Habbo-punk for the never-agreeing +poster_59_name=Hoot Poster +poster_19_name=Hole In The Wall +poster_1000_desc=The Noble and Silver Show +poster_54_desc=whack that ball! +poster_30_desc=Pucker up +poster_9_name=Rainforest Poster +poster_13_desc=Arty black and white +poster_522_name=Japan Flag +poster_25_desc=Doing a hard night's work +poster_11_name=Certificate +poster_20_name=Snowman Poster +poster_516_name=The English flag +poster_14_name=Fox Poster +poster_52_desc=whack that ball! +poster_2000_name=Suomen kartta +poster_518_name=The Welsh flag +poster_44_desc=Beware the curse... +poster_5_desc=Quacking good design! +poster_2000_desc=Suomen kartta +poster_1001_desc=even walls have ears +poster_10_name=Lapland Poster +poster_21_desc=See that halo gleam +poster_31_name=System of a Ban +poster_52_name=Hockey Stick +poster_2003_desc=Would you trust this man? +poster_7_desc=For emergencies only +poster_1002_desc=aw, bless... +poster_28_desc=10 x Silver Tinsel +poster_502_desc=The US flag +poster_50_desc=flap, flap, screech, screech... +poster_515_name=The Swedish flag +poster_26_name=Angel Poster +poster_50_name=Bat Poster +poster_521_name=Flag of Brazil +poster_511_name=The Dutch flag +poster_501_name=Jolly Roger +poster_83_desc=Pöllö huhuilee, huhuu! +poster_2004_desc=irie! +poster_49_name=Large silver star +poster_520_desc=Every colour for everyone +poster_41_name=Habbo Golden Record +poster_45_name=Skeleton +poster_507_name=The French Tricolore +poster_35_name=The Habbo Babes 1 +poster_51_desc=2 points for every basket +poster_2005_name=Infobus +poster_1005_desc=The muscly movie hero +poster_46_name=Small gold star +poster_43_desc=Shake, rattle and roll +poster_23_name=Santa Poster +poster_2007_desc=The legendary founder of the Hotel +poster_505_desc=The Canadian flag +poster_13_name=BW Skyline Poster +poster_57_desc=chinese calligraphy +poster_2006_name=DJ Throne +poster_523_desc=The flag of India +poster_15_desc=Marvellous mountains +poster_39_name=Screaming Furnies +poster_12_desc=a beautiful sunset +poster_40_name=Bonnie Blonde +poster_2001_desc=Former servant of a great wizard! +poster_51_name=Basketball Hoop +poster_514_desc=Be proud to be in the Union! +poster_11_desc=I obey the Habbo way! +poster_1005_name=Johnny Squabble +poster_22_desc=A chilly snowy scene +poster_512_name=The Irish flag +poster_17_name=Butterfly Cabinet 1 +poster_46_desc=Twinkle, twinkle +eco_box_card=Recycled item +recycler_furni_not_recyclable=This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand. +recycler_prize_odds_2=You have %odds% chance to get one of these. +recycler_info_link=More information about Furni Recycler +recycler_info_open=Drag 5 items to the boxes below and click recycle. Recyclable items display recyclable tag in your inventory. Check out the prizes and the instructions for recycling before you recycle. +recycler_prize_category_1=Common +recycler_prize_odds_3=%odds% chances to get one of these. +recycler_prize_category_4=Phenomenal +recycler_info_link_url=http://%predefined%/help/36 +recycler_prize_odds_4=%odds% chances to get this one. Good luck! +recycler_ready_info=Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand. +recycler_prize_odds_1=You can always get one of these if all else fails. +recycler_prize_category_2=Uncommon +recycler_prize_category_3=Arcane +recycler_recycle=Recycle +recycler_info_closed=Recycler is closed at the moment. Please check back later to recycle your Furniture. +recycler_ready_outcome=Recycling reward: %outcome% +recycler_trader_open_alert=Recycling cannot begin while you are trading. Please close the safe trading box before recycling. +eco_box_open=Open +recycler_info_ready=Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution. +recycler_status_window_title=Recycling Status +recycler_prize_category_5=Urban Legend +recycler_info_progress=Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background. +recycler_progress_timeleft=Time left: %hours% h and %minutes% min +recycler_status_info=You have Furniture in recycling. The icon will blink when recycling is complete. +recycler_info_timeout=You have to wait %minutes% minutes and %seconds% seconds before you can recycle again. +recycler_prize_odds_5=Dream on... you have only %odds% chance to get this. +if_topic_help=Help +if_message_number=Message %m% of %n% +if_btn_prev=Previous +if_topic_respect=Respect received! +catalog_info_window=Catalog Info Dialog +if_topic_newbadge=You have got a new badge! +if_title=Habbo Infofeed +if_content_pixels=You have got some Pixels!\rYour total is now: %value% Next set coming up in 15 minutes. +if_content_respect=Somebody must really respect you! %value% respect points received. +if_btn_next=Next +if_topic_pixels=Pixels received! +restart_tutorial=Restart tutorial +url_helpparents=https://classichabbo.com/help/73 +url_privacypledge=https://classichabbo.com/help/69 +url_logout_concurrent=https://classichabbo.com/account/disconnected?reason=concurrentlogin&origin=popup +url_purse_link=https://classichabbo.com/credits? +url_help_4=https://classichabbo.com/help/22 +url_nobalance=https://classichabbo.com/credits? +url_collectables_link=http://classichabbo.comcredits/collectibles +group_logo_url_template=http://www.habbohotel.co.uk/habbo-imaging/badge/%imagerdata%.gif +url_peeloscore=https://classichabbo.com//groups/56555/id +url_help_3=https://classichabbo.com/help/ +url_purse_subscribe=https://classichabbo.com/credits? +url_help_2=https://classichabbo.com/profile?tab=4 +url_helpterms=https://classichabbo.com/help/68 +url_help_6=http://www.habbohotel.co.uk/iot/go?lang=en&country=uk +url_figure_editor=https://classichabbo.com/profile/profile.action +url_logout_timeout=https://classichabbo.com/account/disconnected?reason=logout +url_logged_out=https://classichabbo.com/account/disconnected?reason=logout&origin=popup +url_help_1=https://classichabbo.com/credits +url_purselink=https://classichabbo.com/credits? +url_help_5=https://classichabbo.com/help/75 +url_helppledge=https://classichabbo.com/help/22 +queue_set.e2.info=There are %e2% Habbos in front of you in the queue. +queue_set.e1.alert=This room is currently available only to Habbos participating to the event. +dimmer_use_bg_only=Background only +room_owner=Owner: +Room=Room: +room_ignore=Shutup +item_ad_url_ads_mall_winpet=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +queue_set.na.alert=This Room is for Staff only. +queue_line=You are queuing right now... +dimmer_preset_1=Preset 1 +room_badge_choose=Modify Badge: +room_confirmDelete=Confirm +ig_arena_queue_text=There are \x games in queue before your game. +item_ad_url_ads_mall_winmus=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +room_badge_window_title=Badge +room_give_rights=Give rights +doorbell_rings=Rings the doorbell - Open the door? +room_open_package=Open The Present +room_ask_friend=Ask to be a Friend +room_info_rated=Room rating: +room_badge_hidden=Hidden +queue_set.c.alert=This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club. +item_ad_url_ads_mall_winchi=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8274__zoneid=2607__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/theideaagency +item_ad_url_ads_mall_winspo=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +room_areYouSurePlace=Warning! If you put something down in this room you will not be able to pick it up again. +item_ad_url_ads_mall_winbea=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +room_preparing=...Preparing room +room_name=Room: +furni_active_placeholder_name=This furniture is downloading... +room_areYouSure=Are you sure you want to delete this item forever? +room_take_rights=Remove Rights +dimmer_title=Mood Light +dimmer_apply=Apply +queue_current_1=You are in the Habbo Live queue... +dimmer_preset_2=Preset 2 +room_waiting=Waiting to go in... +queue_set.s.info=There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast! +room_cant_set_item=You cannot place this in someone else's room! +queue_change=Change queue +room_banner_text= +item_ad_url_ads_mall_winice=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +room_cant_trade=You cannot trade this! +queue_set.queue_reset.alert=The queue for this room has been reset, please try again. +queue_set.dc.info=Number of Habbos in default queue is %d% and in Habbo Club queue %c% +item_ad_url_ads_clwall2=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7377__zoneid=2208__cb=a7f8c3d445__maxdest=http://www.idea.me.uk +queue_set.c.info=There are %c% Habbo Club member(s) in front of you. Be patient :) +wallitem_post.it.limit=Only 50 stickies per room are allowed! +queue_set.d.info=There are %d% Habbos in front of you in the queue. +interstitial_ad_text=Advertisement +room_confirmPlace=Are you sure? +wallitem_item_placeholder_name=This furniture is downloading... +delete_furniture=Delete Furniture (permanently) +locked=Locked (visitors have to ring bell) +room_user_page=Home Page +dimmer_preset_3=Preset 3 +queue_current_2=You are in the queue for the room. +room_remove_specs=Sorry! Now it's someone else's turn to watch this event. +wallitem_item_placeholder_desc=This furniture is downloading... +dimmer_turn_on=Turn ON +room_loading=Loading room... +room_kick=Kick +queue_other_2=Room queue status +room_badge_button=Badge +room_max_pet_limit=Too many pets in the room! +win_doorbell=Doorbell +win_place=Note! +queue_set.queue_full.alert=The queue for this room is full. Please try again later. +item_ad_url_ads_clwall1=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7376__zoneid=2207__cb=a7f8c3d445__maxdest=http://www.childline.org.uk +item_ad_url_ads_clwall3=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=7378__zoneid=2209__cb=a7f8c3d445__maxdest=http://www.childline.org.uk +queue_set.e1.info=There are %e1% Habbos in front of you in the queue. +item_ad_url_ads_mall_winfur=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +room_info_rate_req=Rate this room +dimmer_turn_off=Turn OFF +room_doorbell=Rings the doorbell - Open the door? +room_hold=Wait a second...\rLoading room... +predefined_room_description=%user_name% has entered the building +predefined_room_name=%user_name%'s room +item_ad_url_ads_puffet_tv=http://www.habbo.fi +ig_arena_queue_title=All game rooms are reserved, please wait a moment. +room_badge_visible=Visible +room_unignore=Listen +queue_set.e2.alert=This room is currently available only to Habbos participating to the event. +furni_active_placeholder_desc=This furniture is downloading... +queue_other_1=Habbo Live queue status +item_ad_url_ads_mall_wincin=http://ads.habbogroup.com/max/adclick.php?maxparams=2__bannerid=8303__zoneid=2618__cb=a7f8c3d445__maxdest=http://www.habbo.co.uk/groups/habbomall +friend_tip_search=Search users +send_invitation_text=Want to meet Guides who can help you getting to know Habbo? +friend_invitation_empty_alert=Write your invitation and click send. +friend_invitation_error=One or more of your friends is unavailable at the moment. Please try again later. +console_now=now: +console_follow_not_friend=The user you tried to follow is not your friend anymore. +buddyremove_hc_more_info=More Info About Habbo Club >> +instant_friend_request_header=Friend Request +buddyremove_not_now=Cancel +friend_request_declined=Declined! +friend_tip_preferences=Edit categories +friend_list_no_friends_online_category=No friends online in this category. +console_mainhelp=Habbo Console Help +console_lastvisit=Last Visit +console_messagemode_helptext=You can send an instant message to your Habbo Friends. +im_instruction=Choose a friend from your online friend list and send an instant message or an invitation. +friend_tip_remove=Remove friend +console_email=Email +friend_invitation_note=Make sure you can be followed. +console_modify=Modify +buddyremove_pleasewait=Please wait a second... +im_notification_moderation=Sharing your password or personal details online is dangerous. The moderators might monitor these conversations for your safety. +console_inprivateroom=In A Guest Room +console_accept=Accept +friend_result_other=Other Habbos (%cnt%) : +send_invitation_header=Meet Habbo guides +console_accept_selected=Accept +friend_invitation_summary=Inviting %count% people to this room. +console_habboprofile_arrowed=Habbo Profile >> +console_searchfor=Search: +console_differentmessagemodes=Different Messages +buddyremove_select_all=Select All Friends +invitation_follow_failed=Sorry, your attempt to follow an invitation failed. +buddyremove_windowheader=Your friends list is full. +friend_tip_follow=Follow to a room +friend_tip_search_field= +nuh_invitation_no=Not now +receive_invitation_text=invites you his/her room. Accept invitation? +console_deselect_all=Deselect all +console_concurrency_error=There was a concurrency error while modifying friend list +console_search_habbo_lasthere=Last time +console_noprofile=Habbo Profile Not Found +friend_request_failed=Failed! +console_myinterests=My interests: +console_profile_helptext=The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like. +friend_result_noothersfound=No other Habbos found +friend_list_requests_dismiss_all=Dismiss all +console_report_help=If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends' List automatically when you report. If you want to remove a Habbo from your Friends' List without reporting their message, simply use the Remove button below. +console_select_all=Select all +buddyremove_alphabetical=Alphabetical Order +friend_tip_mail=Send minimail +console_fr_declined_count=Amount to be declined +console_usersnotfound=Habbo Not Found +Message=Message +console_confirm_selected=Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections. +buddyremove_pagecounter=Page +im_invitation=Your friend sent you an invitation: +console_follow_prevented=Your friend has prevented others from following him/her. +buddyremove_names_ordered=Names Ordered By: +console_removefriend_2=from your Friends List? +console_youdonthavebuddies=You have no Friends on your list.\rYou can send Friend Requests using\rthe 'search' button. +console_requests=Friend Request(s) +console_approve_selected=Accept selected +console_fr_limit_exceeded_error=Too many friends selected. Please remove some first. +console_noemail=Sorry, +console_getfriendrequest_1=has asked you to become his/her Friend. +friend_list_search_category=Search +console_next_msg=Delete +console_msgs=msgs +console_follow_offline=Your friend is offline. +console_reject_selected=Reject selected +nuh_invitation_yes=Yes +friend_info_lastvisit=Last visit: +buddyremove_header=Choose %amount% friends to remove +NUH_hand=Click the hand icon to open your inventory, You have received a gift! +console_selection_invert=Invert selection +console_friend_request_error=There was an error with friend requests +friend_list_requests_accept_all=Accept all +buddyremove_accept=Remove Friends +console_invalid_message=There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators. +buddyremove_next=Next > +BuddyNotHere=Offline +friend_tip_inbox=My Messages inbox +friend_tip_compose=Write message +console_report_remove=Remove +friend_list_no_friends_offline_category=No friends offline +console_online=online: +buddyremove_confirm=Yeah, it is done... +invitation_expired=Sorry, all Welcoming Party members were busy. +friend_request_massoperation_cancel=Back to request list. +im_error_busy=Your friend is busy. +im_error_receiver_muted=Your friend is muted and cannot reply. +friend_list_no_requests=No friend requests +friend_list_friend_requests_category=Friend Requests +invitation_exists=You have already invited members of the Welcoming Party to your room. +friend_list_confirm_remove_2=Remove user: %username% +console_console=Console +im_notification_offline=Your friend went offline. +NUH_friends=Check out your friend list to see friends and friend requests. +buddyremove_messenger_updating=The console is updating, try again in a minute... Everything else is working fine! +console_target_does_not_accept=This user does not accept friend requests at the moment +friend_list_online_category=Friends +friend_request_accepted=Accepted! +friend_invitation_cannot_send=Invitation cannot be sent. +console_compose=Compose A Message +im_tooltip=Instant messenger +console_reject_all=Reject All +console_getfriendrequest_2=If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other. +win_messenger=Habbo Console +buddyremove_lessoptions=Less Options << +nuh_bubble_close=Close +console_offline=Offline +friend_request_accept_all=Accept all requests. +console_request_massoperation_title=You have %messageCount% friend requests waiting. +friend_list_confirm_remove=Remove Friend +friend_request_decline_all=Decline all requests. +console_getmessage_sender=Sender: +console_request_massoperation_instruction=Use the options below to accept or decline ALL friend requests you have waiting. +console_creatingaprofile=Creating A Profile +buddyremove_moreoptions=More Options >> +friend_tip_search_button=Search users +console_unknown_sender=Unknown sender +buddyremove_invert=Invert Selection +buddyremove_hc_info_url=http://www.habbo.co.uk/credits/habboclub +console_friends_helptext=This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they're not checked in, when their last visit was. +reply=Reply +console_friends=Friends +im_error_not_friend=Receiver is not your friend anymore. +im_window_title=Chat +messenger=Messenger +friend_invitation_window_title=Invitation +friend_request_options=Advanced options. +frient_tip_mail=(this is not used) +buddyremove_prev=< Previous +console_recipients=Recipient(s) +buddyremove_ok_text=You have chosen enough friends to remove. +console_buddylimit_requester=Friend could not be added. The request sender can not have anymore friends. +BuddyRequesta=Friend Request(s) +im_error_sender_muted=Your message was not sent because you are muted. +nuh_invitation_never=Don't ask me again. +console_mainhelptext=You can use the Habbo Console to keep in constant contact with your friends using instant messages. +friend_tip_im=Instant Message +console_asktobecomeafriend=Ask To Become A Friend +friend_result_nofriendsfound=No friends found +friend_tip_invite=Invite friends +buddyremove_logintime=Last Login Time +BuddyNow=now: +friend_tip_addfriend=Send friend request +im_error_offline=Your friend is not online. +console_friend_request_not_found=There was an error finding the user for the friend request +friend_list_title=Friends +friend_list_search_button=Search +buddyremove_remove_text=You are about to remove %removeamount% friends from your friendlist.\r\r After removal, you'll have %amountleft% friends on your list: +console_request_1=has been sent your Friend Request. +buddyremove_continue=Remove Friend Now +console_onfrontpage=Online +buddyremove_list_full=Your friends list is full, you can't add new friends until you delete some. \r\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list. +console_search_habbo_profilematch=Habbo Profile match - +friend_tip_search_input=Enter search query +console_credits=Credits +console_follow_friend=Go to same room +friend_result_friends=Friends (%cnt%) : +console_request_2=(S)he will be added into your Friends List if (s)he accepts it. +console_newmessages=New Message(s) +friend_list_confirm_remove_1=Confirm remove +BuddyPrivateRoom=In A Guest Room +console_removefriend_1=Are you sure you want to remove +friend_list_offline_category=Offline Friends +console_profilematch=Habbo Profile match - +console_profile_create=Create your Habbo Profile. +Messages=Message(s) +console_follow_hotelview=Your friend is on the hotel view. +im_notification_online=Your friend came online. +console_report=Report +console_target_friend_list_full=This user's friend list is full +console_fr_accepted_count=Amount to be accepted +BuddyEntry=On Hotel View +friend_info_online=Online +console_report_header=Report Abusive Message +Unreadmessages=New Message(s) +console_select_requests=Following users have asked to be your friend. Please accept or decline. +console_lasttime=Last Time +friend_tip_home=User's home +pet.saying.play.croco.0=*Chases tail* +pet_enrg_0=Tired +pet_race_1_002=Lesser Spotted Longhair +pet.hotwords.jump=jump +pet_race_1_001=Purr-Sian +pet.saying.sleep.cat.4=Meow! +pet_hung_0=Empty +pet.saying.sniff.dog.2=*Grrruff! *Sniffs happily* +pet_enrg_10=Mad +pet.saying.angry.croco.2=*licks foot* +pet_hung_1=Hungry +pet_race_1_004=Soft-Toed Sneaker +pet.saying.sniff.dog.1=Grrruff! *Sniffs happily* +pet.saying.eat.dog.0=Woof! *wags tail excitedly* +pet.saying.sniff.dog.0=Grrruff! *Sniffs happily* +pet.saying.beg.cat.2=Meow! +pet.saying.play.dog.0=*Chases tail* +pet.saying.beg.croco.2=Snap! +pet.saying.play.croco.1=*Snaps happily* +pet.saying.generic.dog.2=*Runs happily up to Habbo* +pet_thirsty=Thirst: +pet_enrg_1=Slow +pet.saying.generic.dog.3=*Jumps on Habbo happily* +pet.saying.sniff.croco.0=*sniffs inquisitively* +pet_race_1_003=Hidden Clause +pet_race_2_001=Krazy Krokodilos +pet.saying.angry.dog.4=*Licks foot apologetically* +pet.saying.angry.dog.3=Woof! Woof! +pet_enrg_8=Lively +pet.saying.play.dog.1=*Fetches ball* +pet_race_1_016=Curiousity - The Return! +pet_enrg_9=Tireless +pet_frnd_10=Adoring +pet.hotwords.bad=bad +pet_race_1_018=Trusting Tabby +pet_hung_4=Satisfied +pet.saying.eat.cat.2=Meow! *Licks food* +pet.saying.eat.cat.1=Meow! *Sniffs food* +pet_race_0_019=Tiny Terrier +pet.saying.angry.croco.3=Snap! *innocent smile* +pet.saying.beg.croco.1=Snap! +pet_race_1_022=Matted Moggy +pet.saying.beg.cat.0=Purrrrrr *walks around legs* +pet_race_1_017=Furry Friend +pet.saying.generic.cat.4=Meow +pet_hung_5=Full +pet.saying.sleep.dog.6=Woof! Zzzzzzz +pet_enrg_7=Energetic +pet_race_0_015=Pixie Poodle +pet.saying.angry.croco.4=Snap! *innocent smile* +pet.saying.play.cat.1=*Chases mouse* +pet.saying.sleep.dog.5=Ruff! Zzzzzzzz *wags tail* +pet_thir_3=Not thirsty +pet.saying.eat.croco.4=*Smiles contently* +pet.saying.eat.cat.0=Meow! *Sniffs food* +pet_age=Age: +pet.hotwords.good=good +pet_race_1_021=Fabulous Feline +pet.hotwords.voice=speak +pet.saying.sleep.dog.3=Ruff! Zzzzzzzz *wags tail* +pet_thir_1=Parched +pet.hotwords.go_away=go away +pet_race_1_019=Bobcat Wailer +pet.saying.sleep.dog.4=Ruff! Zzzzzzzz *wags tail* +pet_race_2_005=Galled Gator +pet_race_0_014=Whiffy Woofy +pet.saying.generic.croco.0=Rrrr....Grrrrrg.... +pet_mood_6=Ecstatic +pet_hung_3=Peckish +pet.saying.eat.croco.3=Snap! *Chomps on food* +pet_race_0_016=Murmurin' Minimastiff +pet.hotwords.nest=sleep +pet_hung_2=Rumbling +pet_race_0_010=Furry McScottie +pet_frnd_9=Loyal +pet_race_2_006=Confused Croc +pet_enrg_2=Sluggish +pet_race_0_011=Lappy Lassie +pet_frnd_8=Loving +pet_race_1_011=Egyptian Angora +pet_race_0_013=Mangy Mutt +pet_race_2_004=Dirty Dundee +pet_enrg_3=Lazy +pet.hotwords.follow_me=heel +pet_race_0_012=Tawny Bleugh +pet.saying.eat.croco.1=Snap! *Swallows food whole* +pet.saying.angry.cat.2=Meow! +pet.saying.sleep.dog.2=Ruff! Zzzzzzzz *wags tail* +pet_thir_0=Gasping +pet.saying.eat.croco.2=Snap! *Swallows food whole* +pet_mood_0=Miserable +pet_enrg_4=Relaxed +pet.saying.sleep.croco.0=Zzzzzz *dreams of wilderbeast* +pet_race_2_007=Pretty Pui Pui +pet.saying.sleep.croco.1=Zzzzzz *dreams of zebra* +pet_race_0_006=Stripy Setter +pet.hotwords.sit=sit +pet.saying.sleep.croco.5=Zzzzzz *dreams of wilderbeast* +pet_race_1_013=Felis Catus Allergicus +pet_frnd_0=Hostile +pet.hotwords.beg=beg +pet.saying.sleep.dog.0=Ruff! Zzzzzzzz *wags tail* +pet_race_2_008=Indifferent +pet_race_1_024=Cat Burglar +pet_frnd_1=Angry +pet_race_1_023=Indoor Alley Cat +pet.saying.sleep.croco.3=Zzzzzz *dreams of springboekt* +pet_race_1_010=Wannabe Wildcat +pet_enrg_5=Rabied +pet.saying.angry.cat.3=Meow +pet.saying.sleep.cat.1=Purrr zzzzz +pet_race_0_007=Slobber Don +pet_race_2_010=Giggly Go-go +pet_race_1_012=Freckled Feral +pet.saying.generic.croco.1=Snap! +pet.saying.sleep.dog.1=Zzzzzz +pet_mood_4=Happy +pet.saying.angry.cat.0=Mew *sad eyes* +pet_race_0_005=Paws Forethought +pet_race_1_009=Scaredy Kat +pet.saying.sniff.croco.2=*Watches for hours until it moves* +pet_mood_3=Contented +pet_thir_2=Thirsty +pet.saying.sniff.croco.1=*Watches for hours until it moves* +pet_frnd_2=Suspicious +pet_race_1_006=Titchy Tiger +pet_hung_6=Stuffed +pet_mood_5=Joyful +pet_race_0_004=Droopy of Pawford +pet.saying.sleep.croco.2=Zzzzzz *dreams of wilderbeast* +pet_race_1_020=Caterwaul Kitty +pet_enrg_11=Nutcase +pet.hotwords.lie=lie down +pet_enrg_6=Active +pet_frnd_4=Calm +pet_race_0_009=Hound of Hull +pet.saying.angry.cat.1=Purrrrrr ... *walks around legs* +pet_frnd_7=Affectionate +pet_frnd_5=Friendly +pet_race_0_008=Springy Spaniel +pet.saying.sniff.cat.0=*sniffs inquisitively* +pet_frnd_6=Warm +pet_race_1_015=Haughty House Pet +pet_race_2_011=Petty Petsuchos +pet.saying.eat.dog.2=Woof! *chews* +pet.saying.eat.dog.1=Woof! *chews* +pet.saying.sleep.croco.6=Zzzzzz *dreams of wilderbeast* +pet_frnd_3=Cool +pet_race_1_014=Bushy Bobtail +pet_race_0_017=Speckled Sheepdog +pet_race_0_023=Dotty Dalmatian +pet.saying.eat.dog.3=Woof! *wags tail excitedly* +pet.saying.beg.croco.0=Snap! +pet.saying.play.cat.0=*Jumps at shadow puppet* +pet.saying.generic.croco.2=*Tail flip* +pet.saying.beg.dog.1=Woof! Woof! +pet.saying.generic.cat.1=Purrrr +pet_race_0_000=Yappy Yorkie +pet.saying.generic.cat.0=Purrrr +pet.saying.eat.croco.0=Snap! *Swallows food whole* +pet.saying.beg.dog.2=Woof! *Sits patiently* +pet.saying.angry.dog.1=Ruff! +pet.hotwords.come_here=come here +pet.saying.generic.cat.3=Meow +pet.saying.generic.dog.1=Woof! Woof! +pet_mood_2=Blue +pet_race_0_001=Habbo Husky +pet_status_dialog=%name% +pet_race_0_018=Bushy Woofer +pet.saying.eat.dog.4=Woof! *wags tail excitedly* +pet.saying.angry.croco.1=Snap! *innocent smile* +pet_nature=Nature: +pet_race_1_007=Burmese Buddy +pet.saying.generic.croco.3=*Walks up to Habbo excitedly* +pet_race_0_024=Black-eyed Boxer +pet.saying.angry.croco.0=Snap! +pet_race_1_008=Mad Mouser +pet.saying.angry.dog.0=*Puppy dog eyes* +pet_race_1_005=Cat Astroflea +pet_hungry=Hunger: +pet_race_0_002=Joe Cocker Spaniel +pet_race_0_003=Rescue Bernard +pet.saying.beg.dog.0=*lifts paws onto Habbos knees* +pet_race_2_000=Endangered Albino +pet_race_0_020=Patchy Pup +pet.saying.beg.cat.1=Purrrrrr *walks around legs* +pet_mood_1=Depressed +pet.saying.generic.cat.2=Purrrr +pet.hotwords.play_dead=play dead +pet_race_2_003=Silly Sobek +pet.saying.sleep.cat.3=Meow! +pet_frnd_11=Devoted +pet.saying.sleep.cat.0=Purrr zzzzz +url_pets=http://%predefined%//hotel/pets +pet.saying.generic.dog.0=Grrrrufff! +pet_race_2_002=Nile Dile +pet_race_0_022=Schnitzel Snatcher +pet.saying.sleep.croco.4=Zzzzzz *dreams of elephant burgers* +pet.saying.sleep.cat.2=Purrr zzzzz +pet_race_1_000=Sleepy Siamese +pet_race_0_021=Loyal Labrador +pet.saying.angry.dog.2=*Whines* +pet_happy=Happiness: +pet_race_2_009=Swampy Siamese +ph_tickets_title=Tickets +ph_exit=Exit In Normal Clothes +paalu_ui4=Stabilise +game_TicTacToe=Tic Tac Toe +ph_tickets_txt=Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\r\rCurrently you have \x1 ticket(s). +tickets_button_info_hide=Hide Ticket Info +ph_tickets_choise1=Buy 2 Tickets for 1 Credit. +paalu_ui3=Moving +ph_ticket=Ticket +notickets_buygame=Buy a game +tickets_info_2=With 20 tickets you can play the following Games:\r10 BattleBall:Rebound!\r10 SnowStorm\r20 Wobble Squabble or\r20 Lido Diving +paalu_ui1=Balance +ph_tickets_buyfor=Buy Tickets for: +notickets_window_header=Tickets needed! +ph_goswimming=Go swimming! +ph_choosecolour=Choose Costume Colour +ph_keys_spacebar=Spacebar +ph_keys_run=Run: +notickets_text_1=Game price is 1 credit. For that you get 2 tickets. +ph_tickets_choise2=Buy 20 Tickets for 6 Credits. +play_preview=Play preview of sounds +tickets_button_info_2=Stuff you can do with these 20 tickets +score_board.text=POINTS +ph_keys_dive=Diving moves: +paalu.winner=Winner: +ph_tickets_have2=Tickets +ph_keys_jump=Jump: +tickets_button_info_1=Stuff you can do with these 2 tickets +ph_tickets_have1=You Have +tickets_info_1=With 2 tickets you can play the following Games:\r10 BattleBall:Rebound!\r10 SnowStorm\r20 Wobble Squabble or\r20 Lido Diving +notickets_store_link=Go to ticket store >>> +paalu_ui5=Balance +notickets_text_2=Buy more tickets now and get a discount. You can also buy tickets as a present. +notickets_header=Buy game tickets to play this game +paalu_ui2=Push +roomatic_intro3="My mates live miles away, but we can meet up in my room every Friday night and we don't have to worry about getting home afterwards." - PinkFruit +roommatic_hc_members_only=This Room Is For HC Members Only +roomatic_wrongpw=Oops! Sorry, your passwords don't match. Please enter them again. +roomatic_givename=Give your room a name! +roomatic_hway=Hotel guests are expected to follow the Habbo Way even if word filtering is switched off. +roomatic_namedisplayed=Do you want your name to be displayed with the room? +roomatic_roomnumber=Room number: +roomatic_nomatch=Sorry. Your passwords don't match. Please enter them again. +roomatic_canmodifysettings=(You can change these settings later) +roomatic_letmove=Let other people move your furniture and place their own. (Furniture cannot be stolen.) +roomatic_locked=Door locked - visitors have to ring doorbell +roomatic_givepwd=Password: +roomatic_owner=Owner: +roomatic_open=Door open +roomatic_roomdescription=Room description: +roomatic_goyourroom=Go to your room +roomatic_bobbafilter=Bobba filter (filters out bad language) +roommatic_modify_size=Room size: %tileCount% tiles +more_roomlayouts=Extra room layouts for Habbo Club members >> +roomatic_intro2=Here's what one Habbo says about her room: +roomatic_chooselayout=Choose the layout of your room +roomatic_congrats=Congratulations! You're now the proud owner of your own Habbo Hotel room. +roomatic_name=Room name: +roomatic_onemoment=Please wait, we are going to your room... +roomatic_security=Security +roomatic_confirm=Confirm password: +roomatic_roomname=Room name: +roomatic_pws2=24 hour access: +roomatic_roomdesc=Room description: +roomatic_namedisp=Do you want your name to be displayed with the room? +roomatic_intro1=You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It's up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you'll have your own Habbo Hotel space. +roomatic_createyrown=Create Your Own Room +roomatic_choosecategory= +roomatic_create_error=Error in room creation process. Please try again! +roomatic_pws=Password for selected +sound_machine_jukebox_window=Jukebox +sound_machine_alert_jukebox_list_full=The play list is full. Please wait until the current song has finished playing and try again. +sound_machine_song_name=Untitled Trax +sound_machine_alert_song_saved=Song "%name%" successfully saved. +sound_machine_playlist_window=Traxmachine Playlist Editor +sound_machine_your_songs=Traxmachine Songs +jukebox_empty=Empty +sound_machine_alert_missing_packages=You need the following Traxpacks to edit this song: +sound_machine_alert_invalid_song_name=You have already burned another song with the same name. Please change the song name before trying again. +sound_machine_song_save=Save song +jukebox_now_playing=Now playing: +jukebox_song_name="%name%" +sound_machine_confirm_close=Close the editor? +sound_machine_confirm_close_long=Are you sure you want to leave the editor without saving the song? +jukebox_song_remaining=Remaining time: %time% +jukebox_disk_add=Add Disc +sound_machine_jukebox_disk_window=Insert disc +sound_machine_alert_song_not_ready=Can't save song! Song not ready yet. +sound_machine_alert_no_sound_sets=You don't have any sound sets available for song editing. \rNote that the sets need to be in your inventory (hand). +sound_machine_confirm_delete=Delete song? +sound_machine_confirm_clear=Clear the song? +jukebox_next_up=Next up: +sound_machine_turn_on=Switch On +sound_machine_window=Sound Machine Editor +sound_machine_alert_playlist_full=Could not save playlist! Playlists can have only %count% songs. +room_sound_furni_limit=You can only place one sound furni per room +sound_machine_song_info=Song Info +sound_machine_save_window=Save your Trax +sound_machine_alert_machine_full=You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack. +sound_machine_song_remove=Remove song +sound_machine_insert=Add to mixer +sound_machine_confirm_save_list=Save playlist? +sound_machine_eject=Eject +sound_machine_alert_no_disks=You don't have any more discs! +sound_machine_trax_name=Trax name: +sound_machine_confirm_delete_long=Are you sure you want to delete the selected song? +sound_machine_alert_song_locked=The song you're editing can't be modified. Please save the song under another name to create a new copy. +sound_machine_playlist=Playlist +sound_machine_confirm_burn=Burn this song? +sound_machine_confirm_save_list_long=Are you sure you want to overwrite the current playlist? +sound_machine_alert_no_more_songs=Can't create new song! Traxmachine can have only %count% songs. +sound_machine_confirm_save_long=Are you sure you want to overwrite the current saved song? +sound_machine_confirm_clear_long=Are you sure you want to clear the current song? +sound_machine_time_1=%min%:%sec%min +sound_machine_time_2=%min%:%sec%min +sound_machine_turn_off=Switch Off +sound_machine_confirm_close_list_long=Are you sure you want to exit playlist editor without saving? +jukebox_song_length=Song length: %time% +sound_machine_confirm_eject=Remove cartridge? +jukebox_load_trax=Load Trax +sound_machine_confirm_burn_long=Are you sure you want to burn this song to disc? Burning costs one credit. +sound_machine_confirm_eject_long=Are you sure you want to remove the Traxpack and it's samples from the song? +song_disk_text_template="%name%" by %author% Burned %day%.%month%.%year% +jukebox_reset=Reset Jukebox +sound_machine_confirm_window=Sound Machine +sound_machine_burn=Burn Song +sound_machine_new=Create a New Song +sound_machine_confirm_close_list=Close playlist editor? +sound_machine_alert_invalid_song_length=Can't burn an empty song! +sound_machine_confirm_save=Save the song? +sound_machine_list_save=Save Playlist +sound_machine_open_editor=Trax Editor +jukebox_song_author=by: %author% +sound_machine_alert_song_name_missing=Please give your song a name. +sound_machine_edit=Edit Song +song_disk_trade_info="%name%" by %author% +group_member=Member +interface_icon_help=Help, need help? +interface_icon_hand=Hand, your inventory +int_newrequests=Friend Request(s) +int_newmessages=New Message(s) +group_logo_url_template=http://images.classichabbo.com/habbo-imaging/badge/%imagerdata%.gif +int_update_id=Update My Habbo ID >> +performer_start=Start performance +spectator_count=spectators %cnt%/%max% +group_homepage=Groups' Homepage >>> +int_howtoget=How To get? +judge_voted_no=You voted NO. +interface_icon_navigator=Navigator, navigate around +performer_info=Select a background music for your performance. +interface_icon_catalog=Catalogue, furnishing your room +group_owner=Owner +interface_icon_messenger=Messenger, friends & messages on here +openhrs_title=We are closing the hotel +opening_hours_title=Hotel Maintenance +group_homepage_url=http://%predefined%/groups/%groupid%/id +interface_icon_sound=Sound Off/On +opening_hours_text_disabled=The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open! +int_credits=Credits +performer_song_selector=Select music +judge_waiting_performer=Wait for the next performance to begin. +interface_icon_ig=Controller, join free games +judge_voting_info=Your vote gets locked after you have given it. +judge_voted_yes=You voted YES. +interface_icon_purse=Purse, manage your coins +interface_icon_tv_close=Leave the Room and close the Habbovision mode. +group_privileges=Priviliges: +opening_hours_text_closed=The Hotel has been closed and will be open to the public again at %h%:%m%. +opening_hours_text_opening_time=The Hotel will open again at %h%:%m%. We look forward to welcoming you back! +judge_tool_title=Rate performance +tooltip_external_link=Link opened to web page +group_room_link=Group's room: %room_name% >>> +habbo_tv_title=Widescreen Habbovision +interface_icon_game_rules=Read game rules +group_admin=Administrator +group_window_title=Habbo Groups +opening_hours_text_shutdown=The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow! +performer_no_song=No music +ig_info_can_start=Ready to start! +ig_title_powerups=Power-ups in game +game_chess_black=Black: +game_BattleShip=Battleships +ig_info_game_start_in_x=Game will start in \x +bb_buyTicketsButton=Buy tickets +gs_error_8=To start a Game, there must be at least two Teams of one player each! +gs_3teams=3 Teams Game +ig_rules_ss_2=2. Shift-click a tile to throw a snowball to that direction. +game_chess_start=Start Over +gs_specnum=Number of spectators: \x +gs_error_5=Tournament is only available for users living in the UK. +ig_rules_bb_1=1. Turn tiles to your team color by bouncing on them. Multiple bounces on the same tile locks it. +game_bs_toast=Toast! +gs_choose_gamefield=Choose Game Arena: +gs_error_4=You have reached your maximum number of daily Games! +ig_link_show_high_scores=Show high scores +gs_error_6=You have been removed from the Game! +gs_error_join_7=You have already joined this Game! +ig_button_start_new_cancel=Cancel +gs_button_expand=Expand Window +game_battles_turn=TURN +bb_link_tournament_highScores_url=http://%predefined%//groups/56552/id +ig_button_change_team=Change team +ig_button_prejoin_yes=Yes +ig_rules_ss_1=1. Click a player to throw her with a snowball. +ig_link_hide_high_scores=Hide high scores +gs_state_created=Waiting for players.. +ig_title_starting_games=STARTING GAMES +bb_powerup_7=Bomb +ig_rules_bb_2=2. Create a closed shape out of locked tiles to claim the whole shape for your team. +gs_timeleft=Time Left \x +bb_powerup_8=Vacuum cleaner +game_bs_ship4=Destroyer(s) +ig_button_join_this_game=Join game +game_poker_logoff=Left the game +gs_text_spectate=You can watch this game +game_bs_turn1=Your Turn +ig_title_rules2_ss=Scoring +bb_link_highScores_url=http://%predefined%//groups/56552/id +ig_button_start_game_now=Start game +game_newgame=New game +gs_lounge_skill=Level in this Lounge: \x \r (\y-\z points) +ig_tip_xp_today=Today +ig_link_start_new_game=New game +ig_join_team=Join team +ig_controls_ss_1=Strike an opponent: 1 point +ig_button_gamedetail_back=Back +ig_controls_bb_4=Get major points by creating a closed shape out of locked tiles. +bb_header_powerups=Powerups in game: +ig_game_drt_2=2 min +game_poker_changed=changed +gs_error_watch_0=All The Spectator Seats Are Taken! +gs_5min=5min +gs_lounge_skill_no_max=Infinite +ig_popup_recommended_games=Recommended games +ig_tab_highscores=High scores +sw_fieldname_7=Skull Falls Assault +object_displayer_xp=Monthly XP: \xp +gs_button_ready=Ready +ig_xp_total=Total XP +gs_lounge_skill_no_min=No minimum +game_bs_ship3=Cruiser(s) +ig_info_choose_a_level=Choose a level +game_bs_ship2=Battle Ship(s) +game_waitop=WAITING FOR THE OPPONENT +ig_controls_bb_3=Stealing opponents tiles is worth more than bouncing on free tiles. +gs_link_highscores=High Scores +ig_title_loading=Loading... +gs_button_rejoin=Play again! +ig_title_hscore_team=TEAM +sw_fieldname_6=Riverbank Siege +game_poker_waiting=Change done.\rWaiting for the other players +ig_highscore_rank1=1. +gs_button_cancel=Cancel +ig_button_leave_this_game=Leave game +game_placeship=Place your ships: +ig_controls_ss_2=Opponent falls down: 5 points +ig_button_leave_game=Leave game +ig_popup_gamelist_link=All starting games +ig_ag_flag_teamhigh_title=New team high score! +ig_highscore_rank2=2. +bb_powerup_desc_8=By using a vacuum cleaner, you can clear any tile in the field. +bb_powerup_desc_7=A bomb will clear all tiles around it. +gs_button_spectate=Watch Game! +ig_teamname_2=Blue team +ig_bubble_ag_winner_1=Red team wins! +gs_button_go_finished=Scores +ig_rules_ss_4=4. Make new snowballs by clicking the glove icon in bottom bar. +game_bs_won=WON! +gs_title_finalscores=Final Standings: +gs_score_tie=The game ended in a tie! +ig_title_rules1_bb=Rules +gs_error_start_9=Team sizes can only differ by one player. This Game cannot start! +gs_mouseover_player=\x\r\yp +gs_choose_numteams=Choose number of Teams: +ig_title_duration=Game duration +ig_tooltip_game_availability_0=PUBLIC GAME is shown in the game list and can be joined by everyone. +game_bs_hit=A Hit!: +ig_tooltip_game_availability_1=PRIVATE GAME can only be joined from the room you are in. +ig_rules_ss_3=3. Hold mouse button down longer while pressing shift to throw longer and higher arcs. +gs_state_finished=This Game is already over! +gs_title_countdown=Game Is About To Begin +bb_fieldname_1=Sky Peak +ig_info_prejoin=Join this free game? +ig_play_again_yes=Yes +game_bs_ship1=An aircraft carrier +sw_title=Snow Storm +gs_joinedplayers=Players Who Joined: \x +ig_button_start_new_ready=Ready +ig_title_rules2_bb=Scoring +gs_error_game_checkname=Please check the Game's name! +ig_teamhigh_teamscore=TEAM SCORE +ig_link_leave_game=Leave this game +ig_bubble_ag_winner_2=Blue team wins! +ig_bubble_ag_winner_3=Green team wins! +gs_error_create_0=This Lobby is full, please create a Game in another Lobby! +ig_title_choose_duration=Choose game duration +ig_error_kicked=You have been kicked from the game! +ig_teamname_4=Yellow team +gs_button_buytickets=Buy Tickets +bb_fieldname_4=Gothic Hallway +bb_link_highscores=Highscores +gs_button_start=Start Game! +game_poker_change=Choose cards to change +gs_deathmatch=Every Habbo for himself! +ig_tip_time_to_join_x=Time to join \x +gs_choose_gametime=Choose Game duration: +bb_fieldname_2=Coral Beach +ig_highscore_rank4=4. +ig_title_team_highscores=Team high scores +bb_powerup_desc_2=Bouncing on a spring locks tiles in a single jump. +ig_teamname_3=Green team +sw_user_skill=Snow Storm Skill Level: \x \r (\y points) +game_bs_miss=Miss: +ig_player_needed=-Player needed- +ig_button_owngame_back=Back +sw_link_gameRules_url=http://%predefined%//groups/56553/id +ig_highscore_rank3=3. +bb_user_skill=Skill Level: \x\rScore: \y +bb_choose_powerups=Powerup select +game_poker_ok=Change cards +ig_ag_flag_user_left=Player left! +ig_teamname_1=Red team +gs_title_nextround=Next game... +gs_choose_gamename=Enter A Name For Your Game: +ig_bubble_ag_userleft=\x left the game! +ig_controls_bb_2=Multiple jumps on same tile are worth more points. +ig_link_hide_game_rules=Hide game rules +ig_button_join_another_game=Join another game +bb_title_bouncingBall=Battle Ball +bb_powerup_desc_6=Harlequin effect makes everybody colour tiles for your team! +gs_error_join_0=The team you selected is already full. +bb_fieldname_3=Maze Park +game_chess=Chess +ig_controls_bb_1=Get score by bouncing on tiles. +gs_button_leavegame=Leave Game +gs_4teams=4 Team Game +bb_fieldname_5=Barebones Classic +gs_2min=2min +ig_tooltip_gametype_0=Join this SnowStorm game +bb_title_BBscores2=Game over! +ig_title_play_again=Play again? +bb_powerup_desc_4=A shot with a cannon locks tiles on a straight line. +gs_timetojoin=\x seconds to join +gs_skill_changed=You have advanced to the next skill level. Your level is now %1! +ig_tooltip_gametype_1=Join this Battle Ball game +bb_powerup_desc_3=Flashlight colours a straight line ahead of you. +gs_button_shrink=Minimize Window +number_2=2 +ig_bubble_ag_userrejoined=\x rejoined the game! +ig_tip_xp_value=\xp XP +gs_button_go_started=Watch +ig_tip_xp_month=This month +bb_title_gameCreation=Aloita uusi peli! +bb_powerup_desc_5=Bouncing on a box of pins will burst your Battle Ball! +ig_title_choose_powerups=Choose power-ups +ig_info_get_ready=GET READY! +ig_info_join_a_game=Join a free game +ig_button_create_game=Ready +ig_title_available_levels=AVAILABLE LEVELS +bb_info_gamePrice=Play now for just 2 tickets. +gs_link_gamerules=Game Rules +ig_ag_flag_high_title=New high score! +game_chooseside=Choose your side +gs_title_gamecreation=Game creation +ig_info_no_games=There are no starting games at the moment. But you can easily start a new game yourself! +bb_link_gameRules_url=http://%predefined%//groups/56552/id +bb_powerup_3=Flashlight +number_4=4 +ig_title_highscores=High scores +ig_highscore_rank5=5. +gs_header_page=Page +ig_game_drt_5=5 min +gs_scores_team_4=Green Team: +bb_header_teams=Teams +sw_link_tournament_highScores_url=http://%predefined%//groups/56553/id +sw_fieldname_5=Polar Labyrinth +bb_powerup_4=Cannon +number_3=3 +gs_button_creategame=Create A New Game +ig_text_time_to_join=Time to join +gs_error_join_3=You either have too much or too little skill to join. +bb_powerup_6=Harlequin +bb_text_hostInfo=Please choose a name for your Game and select the number of Teams. +ig_rules_bb_3=3. Use power-ups by clicking the icon in the bottom bar or by pressing arrow down key. +sw_fieldname_2=Algid River +ig_game_drt 5= +game_chess_email=Receive game via email +gs_scores_team_2=Blue Team: +ig_info_waiting_for_players=Waiting for players +game_poker_ready=READY +gs_2teams=2 Teams Game +game_bs_turn2=The Enemy's Turn +gs_scores_team_1=Red Team: +gs_3min=3min +gs_header_teams=Teams +sw_fieldname_4=Frosty Forest +bb_header_gameinfo=Game info +ig_play_again_no=No +ig_game_drt_3=3 min +bb_link_join=Join Team +game_poker=POKER +ig_button_prejoin_no=No +bb_powerup_desc_0=No power-ups selected for this game +ig_title_team_amount=Number of teams +bb_title_finalScores=Final standings: +ig_title_rules1_ss=Controls +bb_powerup_5=Box of pins +game_bs_congrat=Congratulations! +bb_powerup_2=Spring +gs_error_nocredits=You need Habbo Credits to play a Game! +gs_button_go_created=Join +ig_timetojoin=Time to join +bb_powerup_desc_1=Light bulb colours an area around it. +bb_powerup_1=Light bulb +sw_timeleft=Time: +gs_skill_changed_header=Congratulations! +ig_tooltip_game_joined=You are in this game +ig_ag_flag_xp_title=+ \xp XP +ig_link_show_game_rules=Show game rules +sw_gameprice=Play now for just 2 tickets! +sw_link_highScores_url=http://%predefined%//groups/56553/id +gs_error_create_3=Your skill level isn't high enough for creating Games in this Lobby. +ig_title_invitation_only=Private game +gs_state_started=This Game has already started... +bb_link_gamerules=Spelregels +sw_fieldname_3=Glacial Fort +ig_tip_xp_alltime=All time +gs_idlewarning=You will be replaced if you don't start or join a Game soon! +gs_error_game_deleted=The Game has been deleted. +chat.respect.bubble.message=%username% was respected +ig_title_open_for_everyone=Public game +ig_button_cancel=Cancel +gs_error_2=You don't have enough Tickets! +game_chess_white=White: +ig_title_hscore_players=PLAYERS +gs_error_1=You have entered invalid data! +ig_bubble_ag_winner_4=Yellow team wins! +gs_title_bestplayer=Best player: +gs_error_10=The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME). +sw_fieldname_1=Arctic Island +gs_scores_team_3=Yellow Team: +gs_header_gamelist=Game List +handitem1=Tea +handitem28=Sake +handitem4=Ice-cream +handitem23=Beetroot Habbo Soda +handitem29=Tomato juice +handitem34=Kipperific! Yum Yum. +handitem15=Iced +handitem35=pink champagne! +handitem26=Calippo +handitem14=Filter +handitem13=Espresso +handitem9=Decaff +handitem30=Radioactive liquid +handitem19=Habbo Cola +handitem16=Cappuccino +handitem11=Mocha +handitem25=Love potion +handitem2=Juice +handitem8=Regular +handitem3=Carrot +handitem10=Latte +handitem24=Bubble juice from 1999 +handitem21=Hamburger +handitem7=Water +handitem20=Camera +handitem31=Pink Champagne +handitem27=Tea +handitem22=Lime Habbo Soda +handitem18=Tap +handitem5=Milk +handitem17=Java +handitem6=Blackcurrant +handitem12=Macchiato +handitem36=Pear +handitem37=Yummy peach +handitem38=Orange +handitem39=Pineapple +handitem43=Chilled Soda +handitem44=Test Tube +handitem45=Excited Moodi +handitem46=Happy Moodi +handitem47=Angry Moodi +handitem50=Bubble Juice Bottle +badge_desc_UK070=For winning an officially hosted game! +badge_name_UK070=Golden Duck +badge_name_DEV=Codebreaker +badge_desc_DEV= For guessing the room password +badge_name_DEX=Codebreaker Pro +badge_desc_DEX=For guessing the room password 2x +badge_name_DEW=Codebreaker Champion +badge_desc_DEW=For guessing the room password 3x +badge_name_HO1=Room of the Week +badge_desc_HO1=Winner of the Room of the Week competition +badge_name_DET=Room of the Week +badge_desc_DET=2nd place of the Room of the Week competition +badge_name_DEU=Room of the Week +badge_desc_DEU=3nd place of the Room of the Week competition +badge_name_FR019=Pro Gamer +badge_desc_FR019=I won an officially hosted game! +badge_name_DE039=Home Of The Week +badge_desc_DE039=I know how to design an amazing Habbo Home! +badge_name_PX01=StrayPixels Honorable Mention +badge_desc_PX01=I won honorable mention and all I got was this... badge. +badge_name_PX02=StrayPixels Gold +badge_desc_PX02=I won, I actually won ...once +badge_name_PX03=StrayPixels Jade +badge_desc_PX03=Three wins! I own your pixel soul. +badge_name_PX04=StrayPixels Diamond +badge_desc_PX04=brought to you by the number 5. Which is also how many wins I have. +badge_name_PX05=StrayPixels Circuit +badge_desc_PX05=On my seventh win the heavens opened up and this magical badge floated down. +badge_name_PX06=StrayPixels Full Pixel +badge_desc_PX06=I am the most epic winner of all time. ALL TIME! +badge_name_PX07=StrayPixels Hair Cube +badge_desc_PX07=I submitted a hair design for a StrayPixels theme! +badge_name_PX00=StrayPixels Theme +badge_desc_PX00=I sent in a theme for StrayPixels and they actually used it. Suckers. +badge_name_MRG00=Opening Day +badge_desc_MRG00=I joined this hotel on opening day. +badge_name_XM19=Xmas Tree +badge_desc_XM19=Awarded to everyone who visited Habbo during December 2019. Happy Christmas! +badge_name_Z64=Back So Soon +badge_desc_Z64=I survived the Great Wipe of 2019 +badge_name_GA1=Golden Gamer +badge_desc_GA1=You're looking at a hardcore gamer, baby! +badge_name_XM3=Rasta Santa +badge_desc_XM3=Rasta Santa was awarded during Christmas 2005. He visited the hotel again in December 2006. +badge_name_XMB=Mr. Frosty +badge_desc_XMB=Christmas 2019 Penguin Games. +badge_name_MRG01=Habbo Canada +badge_desc_MRG01=Remembering my Habbo roots! +badge_name_MRG02=Habbo USA +badge_desc_MRG02=Remembering my Habbo roots! +badge_name_MRG03=Habbo UK +badge_desc_MRG03=Remembering my Habbo roots! +badge_name_MRG04=Habbo Australia +badge_desc_MRG04=Remembering my Habbo roots! +badge_name_MRG05=Habbo SG +badge_desc_MRG05=Remembering my Habbo roots! +badge_name_BR5=Habbo Portugal +badge_desc_BR5=Remembering my Habbo roots! +badge_name_NL035=Habbo NL +badge_desc_NL035=Remembering my Habbo roots! +badge_name_ES005=Argentina +badge_desc_ES005=Remembering my Habbo roots! +badge_name_ES006=Bolivia +badge_desc_ES006=Remembering my Habbo roots! +badge_name_ES007=Chile +badge_desc_ES007=Remembering my Habbo roots! +badge_name_ES008=Colombia +badge_desc_ES008=Remembering my Habbo roots! +badge_name_ES009=Costa Rica +badge_desc_ES009=Remembering my Habbo roots! +badge_name_ES010=Equador +badge_desc_ES010=Remembering my Habbo roots! +badge_name_ES011=El Salvador +badge_desc_ES011=Remembering my Habbo roots! +badge_name_ES012=España +badge_desc_ES012=Remembering my Habbo roots! +badge_name_ES013=Honduras +badge_desc_ES013=Remembering my Habbo roots! +badge_name_ES014=México +badge_desc_ES014=Remembering my Habbo roots! +badge_name_ES015=Nicaragua +badge_desc_ES015=Remembering my Habbo roots! +badge_name_ES016=Panama +badge_desc_ES016=Remembering my Habbo roots! +badge_name_ES017=Paraguay +badge_desc_ES017=Remembering my Habbo roots! +badge_name_ES018=Peru +badge_desc_ES018=Remembering my Habbo roots! +badge_name_ES019=Uruguay +badge_desc_ES019=Remembering my Habbo roots! +badge_name_ES020=Venezuela +badge_desc_ES020=Remembering my Habbo roots! +badge_name_DE4=Österreich +badge_desc_DE4=Remembering my Habbo roots! +badge_name_DE5=Deutschland +badge_desc_DE5=Remembering my Habbo roots! +badge_name_BR003=Brazil +badge_desc_BR003=Remembering my Habbo roots! +badge_name_CH010=Help Desk +badge_desc_CH010=I'm helping at the official Help Desk! +badge_name_STOUT=Stout +badge_desc_STOUT=omg hou op x +badge_name_BE=Belgium +badge_desc_BE=Remembering my Habbo roots! +badge_name_DK=Denmark +badge_desc_DK=Remembering my Habbo roots! +badge_name_FI=Finland +badge_desc_FI=Remembering my Habbo roots! +badge_name_NO=Norway +badge_desc_NO=Remembering my Habbo roots! +badge_name_RU=Russia +badge_desc_RU=Remembering my Habbo roots! +badge_name_SE=Sweden +badge_desc_SE=Remembering my Habbo roots! +badge_name_WAA00=Waasa Fan! +badge_desc_WAA00=For celebrating the release of Waasa +badge_name_COC02=Coco Coordinator +badge_desc_COC02=Thanks for sending us your resort activity! +badge_name_COC04=Coco-Maniac +badge_desc_COC04=Having a hoot at the Coco Resort! +badge_name_COC03=Coco-Nut Inspector +badge_desc_COC03=For celebrating the release of Coco +badge_name_FRH=Habbo Fashion Week +badge_desc_FRH=For being a part of the Habbo Fashion Week. February 2020. +badge_name_UK071=Habbo Raceway +badge_desc_UK071=Dino Cup Winner. February 2020. +badge_name_Z01=Habbo Model +badge_desc_Z01=Habbo Fashion Week 2020 competition winner. +badge_name_VA014=Blingtastic! +badge_desc_VA014=For celebrating the release of Bling +badge_name_VA012=Bling Master +badge_desc_VA012=Habbo Bling 2020 room competition winner. +badge_name_VA013=Bling Week +badge_desc_VA013=For being a part of the Habbo Bling week. February/March 2020. +badge_name_UK176=ChildLine Group +badge_desc_UK176=I am a member of the ChildLine group +badge_name_UK111=ChildLine Anti-Bullying Badge +badge_desc_UK111=Take action together against bullying! +badge_name_UK175=ChildLine Self-harm Awarness +badge_desc_UK175=I correctly answered the ChildLine Self-harm Awareness Quiz! +badge_name_NEC=Trax Master +badge_desc_NEC=For winning the Trax DJ Party Competition +badge_name_NEJ=Good Party Host +badge_desc_NEJ=For participating in the Trax DJ Party Competition +badge_name_LC7=Little Crab +badge_desc_LC7=For participating in the Aquarium Room Competition +badge_name_LC8=Golden Crab +badge_desc_LC8=For winning the Aquarium Room Competition +badge_name_DS6=Galaxy Maze +badge_desc_DS6=I completed the Habbo Galaxies Maze! +badge_name_ES68H=#StayInHabbo +badge_desc_ES68H=We're all in this together, and we, as a community, stand together. +badge_name_WH8=HABBOTICS Pharm. +badge_desc_WH8=You received the cure to the virus 2020 +badge_name_UK1=Infobus Session April +badge_desc_UK1=For entering our Infobus Session in April 2020. +badge_name_S10=Golden Medal +badge_desc_S10=Given to Habbos who won one of the events or tournaments during #StayInHabbo 2020. +badge_name_MAL03=Habbo Mall (3/3) +badge_desc_MAL03=Secret Mall Achievement +badge_name_MAL02=Habbo Mall (2/3) +badge_desc_MAL02=I found the Malls Hidden Room +badge_name_MAL01=Habbo Mall (1/3) +badge_desc_MAL01=I discovered the Habbo Mall +badge_name_HM1=Mall Builder +badge_desc_HM1=Built a room for the Habbo Mall +badge_name_HBX1=Habbox.CO Re-Launch +badge_desc_HBX1=I joined Habbox for their Re-Launch! +badge_name_UK824=HONK! +badge_desc_UK824=I won the Duck in Deal or No Deal! +badge_name_HBX2=Takeshi's Castle +badge_desc_HBX2=I won a round of Takeshi's Castle! +badge_name_PT737=Infobus Session April +badge_desc_PT737=For entering our Infobus Session in April 2020. +badge_name_FAN2=Fansite Values Staff +badge_desc_FAN2=I contribute to the Rare Values on a Habbo Fansite! +badge_name_FAN3=Fansite Event Staff +badge_desc_FAN3=I plan and host events for a Habbo Fansite! +badge_name_FAN4=Ex-Fansite Staff +badge_desc_FAN4=I was a Staff Member at a Habbo Fansite! +badge_name_SIM1=Yellow Team Winner +badge_desc_SIM1=I won an Official Sims Game! +badge_name_SIM2=Red Team Winner +badge_desc_SIM2=I won an Official Sims Game! +badge_name_SIM3=Green Team Winner +badge_desc_SIM3=I won an Official Sims Game! +badge_name_SIM4=Blue Team Winner +badge_desc_SIM4=I won an Official Sims Game! +badge_name_IT482=Bingo! (1/4) +badge_desc_IT482=I've won 1 game of Bingo! +badge_name_IT483=Bingo! (2/4) +badge_desc_IT483=I've won 2 games of Bingo! +badge_name_IT484=Bingo! (3/4) +badge_desc_IT484=I've won 3 games of Bingo! +badge_name_IT485=Bingo! (4/4) +badge_desc_IT485=I've won 4 games of Bingo! +badge_name_EGG20=Easter Egg Hunt 2020 +badge_desc_EGG20=Completed the Easter Egg Hunt! +badge_name_EGG22=Easter 2020 +badge_desc_EGG22=Happy Easter! +badge_name_EGG24=Easter Bunny Returns! +badge_desc_EGG24=The Easter Bunny has returned, and he brings gifts! +badge_name_EGG25=You!, Easter Eggs! +badge_desc_EGG25=I found the Bunny's Easter Eggs in a Users Room! +badge_name_EGG26=Farewell, Mr. Bunny +badge_desc_EGG26=I said goodbye to the Easter Bunny, April 2020. +badge_name_EST04=Easter Codebreaker +badge_desc_EST04=I guessed the Secret Easter Codeword! +badge_name_DE511=LGBT+ Pride +badge_desc_DE511=Celebrating equality, love, understanding and tolerance in the LGBT+ Lounge. +badge_name_TAKE1=Takeshi's Castle (1/3) +badge_desc_TAKE1=I won a round of Takeshi's Castle. +badge_name_TAKE5=Takeshi's Castle (2/3) +badge_desc_TAKE5=I won 5 games of Takeshi's Castle. +badge_name_TAKE10=Takeshi's Castle (3/3) +badge_desc_TAKE10=I won 10 games of Takeshi's Castle. +badge_name_SWISS=Switzerland +badge_desc_SWISS=Remembering my Habbo roots! +badge_name_NL249=Penguin Rescue +badge_desc_NL249=I joined Habbo during Earth Day 2020 +badge_name_DOND1=Deal or No Deal! +badge_desc_DOND1=I won the Grand Prize in Deal or No Deal! +badge_name_MAYY4=4/5 +badge_desc_MAYY4=May the Fourth be with You! +badge_name_BR075=Q&A #1 +badge_desc_BR075=Attended a Staff Q&A Session +badge_name_ES467=Earth Week Infobus +badge_desc_ES467=Joined Habbo Staff for Special Infobus session +badge_name_ES819=Earth Week Quiz +badge_desc_ES819=Completed the Earth Week Quiz! +badge_name_FFBAN=Falling Furni Winner +badge_desc_FFBAN=I won a game of Falling Furni! +badge_name_DRA6=Don't Roll a 6 +badge_desc_DRA6=I won a game of Don't Roll a 6! +badge_name_NT081=BB #EventsWeek +badge_desc_NT081=I won a Game of Battle Ball during #EventsWeek +badge_name_IT480=Bank Game +badge_desc_IT480=I won an Official Bank Game! +badge_name_ITC54=LGBT+ Infobus +badge_desc_ITC54=I attended the LGBT+ Infobus session! +badge_name_US081=Babybus +badge_desc_US081=Contributed to an Infobus debating session! +badge_name_100O=100 Peak +badge_desc_100O=I helped get 100 Users Online! +badge_name_CLUBS=Oops! +badge_desc_CLUBS=In memory of the Habbo Club Massacre. May 2020. +badge_name_ALP23=Lockdown 2020 +badge_desc_ALP23=What a bummer... +badge_name_CLUBG=Big Oops! +badge_desc_CLUBG=In memory of the Habbo Club Massacre. May 2020. +badge_name_UK037=Britney Spears +badge_desc_UK037=Joined Britney Spears for her Hotel Debut! +badge_name_DE35A=Ban Hammer +badge_desc_DE35A=Moderation makes the world go round... +badge_name_RBH=Real Bingo Hours +badge_desc_RBH=??? +badge_name_BRIT1=She visited! +badge_desc_BRIT1=Britney Spears visited my room. +badge_name_DE182=She answered! +badge_desc_DE182=Britney Spears answered my question. +badge_name_FRIDG=Elegant Carrot +badge_desc_FRIDG=I played and won at the Zana Kick memorial game. +badge_name_GAMB=Gambler +badge_desc_GAMB=Jack of all trades, master of none. +badge_name_RARE1=Gold Rare Hoarder! +badge_desc_RARE1=Still not enough rares! +badge_name_RARE2=Silver Rare Hoarder! +badge_desc_RARE2=Still not enough rares! +badge_name_RARE3=Bronze Rare Hoarder! +badge_desc_RARE3=Still not enough rares! +badge_name_TACO=Tacos Tuesday +badge_desc_TACO=We can't get enough of them! +badge_name_WRITE=King Of Writing +badge_desc_WRITE=You are an authentic writer! +badge_name_ROTW1=ROTW 1st Place +badge_desc_ROTW1=You're a winner baby! +badge_name_ROTW2=ROTW 2nd Place +badge_desc_ROTW2=So close... +badge_name_ROTW3=ROTW 3rd Place +badge_desc_ROTW3=Nearly there... +badge_name_IT021=#IDAHOBIT +badge_desc_IT021=International Day Against Homophobia, Biphobia and Transphobia +badge_name_TC054=Eid Mubarak 2020 +badge_desc_TC054=Celebrating Eid with ClassicHabbo! +badge_name_ES9=Calippo Summer +badge_desc_ES9=Joined ClassicHabbo for a Calippo Summer +badge_name_ES8=Calippo King +badge_desc_ES8=Won the Calippo Summer Giveaway +badge_name_RTS01=The BHF's +badge_desc_RTS01=Best Habbo's Forever. We're popular and we Rule the School! +badge_name_RTS02=The GN0RKS +badge_desc_RTS02=Gamers, Skaters, Geeks, Nerds and Dorks. Unite to Rule the School! +badge_name_RTS03=The Habcats +badge_desc_RTS03=Jocks, football players and cheerleaders - together we Rule the School! +badge_name_RTS04=The Punks +badge_desc_RTS04=Emos, goths, punks and wannabe poets. Anarchy Rules the School! +badge_name_RTS05=Golden Graduation Badge +badge_desc_RTS05=RTS 2020 Winning Group - %PLACEHOLDER%! +badge_name_RTS06=Pop Quiz Badge #1 +badge_desc_RTS06=Aced a Rule The School Pop Quiz about Maths! +badge_name_RTS07=Pop Quiz Badge #2 +badge_desc_RTS07=Aced a Rule The School Pop Quiz about Science! +badge_name_RTS08=Pop Quiz Badge #3 +badge_desc_RTS08=Aced a Rule The School Pop Quiz about History! +badge_name_RTS09=Basketball Champ +badge_desc_RTS09=On the Winning Team! +badge_name_RTS10=Sports Stud +badge_desc_RTS10=Root for your team! +badge_name_RTS16=Red Scholar Badge +badge_desc_RTS16=Straight A's for this Habbo Student +badge_name_RTS18=Glee Club Member +badge_desc_RTS18=I'm a Gleek, hear me sing! +badge_name_RTS19=Green Scholar Badge +badge_desc_RTS19=Straight A's for this Habbo Student +badge_name_RTS22=RTS Hideout Winner +badge_desc_RTS22=Created a perfect Hideout for their school group! +badge_name_RTS25=Not In Use +badge_desc_RTS25=Not In Use +badge_name_RTS26=Blue Scholar Badge +badge_desc_RTS26=Straight A's for this Habbo Student +badge_name_YOUN=YouNow +badge_desc_YOUN=I came from YouNow +badge_name_MLENG=Diversity & Equality! +badge_desc_MLENG=Badges are now multilingual - thanks for joining us on this journey. +badge_name_MLPT=Diversidade & Igualdade! +badge_desc_MLPT=Emblemas agora são multilíngues - Obrigado por se juntar a nós nesta jornada. +badge_name_MLES=Diversidad & Igualdad! +badge_desc_MLES=Las insignias ahora son multilingües- Gracias por acompañarnos en este viaje. +badge_name_MLIT=Awaiting Translation +badge_desc_MLIT=Awaiting Italian Translation +badge_name_BLM=#BlackLivesMatter +badge_desc_BLM=Always, and forever. Take a stand! +badge_name_EAS01=FP Maze (1/3) +badge_desc_EAS01=1 Down, 2 to go! +badge_name_EAS02=FP Maze (2/3) +badge_desc_EAS02=Almost there... +badge_name_EAS03=FP Maze (3/3) +badge_desc_EAS03=I did it! I completed all 3 Flower Power Mazes! +badge_name_EAS04=Flower Power! +badge_desc_EAS04=Discovered a whole new world of Flowers! +badge_name_EAS05=Professional Gardener +badge_desc_EAS05=A Pro Gardner? Probably... +badge_name_ES11A=Wired Tester +badge_desc_ES11A=I am a BETA Tester for Wired! Coming soon... +badge_name_PT107=Pride Month 2020 +badge_desc_PT107=Standing side by side with my brothers and sisters, during Pride Month 2020. +badge_name_UK479=Picnic Fields +badge_desc_UK479=Enjoy the great outdoors, celebrate mother nature and party! +badge_name_THE01=Theatredome +badge_desc_THE01=Perform your latest master piece, or simply catch the latest gossip. +badge_name_ITB61=Habbo Lido +badge_desc_ITB61=Splish, splash and have a bash in the Habbo pool! +badge_name_MLNL=Diversiteit & gelijkheid +badge_desc_MLNL=Badges zijn nu meertalig - bedankt om ons te volgen op deze tocht. +badge_name_NT258=Welcome to ClassicHabbo +badge_desc_NT258=What a great place to start! +badge_name_AST09=Habburgers +badge_desc_AST09=Get food here! +badge_name_SMC04=Library +badge_desc_SMC04=Books! Glorious books! Fill yourself with information and lose yourself in wonderful literary worlds. +badge_name_HLY03=Power Gym +badge_desc_HLY03=Fancy a workout? +badge_name_NL563=Mickey Duck +badge_desc_NL563=flash sino 2 is pretty neat, right? +badge_name_UK982=Juicy +badge_desc_UK982=This is eggciting! +badge_name_UK983=Peachy +badge_desc_UK983=I appeachiate you! +badge_name_MITY=Times are changing! +badge_desc_MITY=You don't have to deal with this all alone! +badge_name_500G=Five Hundred +badge_desc_500G=I counted to 500 on Discord! +badge_name_500S=Five Hundred +badge_desc_500S=Wow! Discord #counting reached 500! +badge_name_BOD1=Body Part (Common) +badge_desc_BOD1=1/3 +badge_name_BOD2=Body Part (Rare) +badge_desc_BOD2=2/3 +badge_name_BOD3=Body Part (Epic) +badge_desc_BOD3=3/3 +badge_name_BUST=BUSTED! +badge_desc_BUST=I got caught Credit Farming...but I've changed my ways! +badge_name_FAG=Smoking Hot +badge_desc_FAG=Fancy a cig buddy? +badge_name_KIDDO=Kiddo +badge_desc_KIDDO=For joining the Cult of Kiddo! +badge_name_POOH=Winnie-the-Pooh +badge_desc_POOH=At your service! +badge_name_ITB25=ITGTTS +badge_desc_ITB25=I'm too GAY to think STRAIGHT! +badge_name_ITB26=ITGTTS +badge_desc_ITB26=I'm too GAY to think STRAIGHT! +badge_name_PT960=Chromatica +badge_desc_PT960=Battle for your life! Babylon! +badge_name_TEST21=Testing Testing +badge_desc_TEST21=1 2 3 4 +badge_name_ITA06=Magnifying Glass +badge_desc_ITA06=For solving GingerBrad mystery. +badge_name_ITA53=Expert Detective +badge_desc_ITA53=I was one of the first 10 Habbo's to Solve GingerBrad's mystery! +badge_name_MDI=Cup of Coffee +badge_desc_MDI=For those Late Night Habbo's +badge_name_IT2=Battle Ball Gold +badge_desc_IT2=Congratulations Chromatica Team! (Leone, esdras90, Lucas-4 and xJoonq) +badge_name_IT3=Battle Ball Silver +badge_desc_IT3=Congratulations AbstractisMyAss! (Abstractis, crxstxnxx, Frvncisco and Punked20) +badge_name_IT4=Battle Ball Bronze +badge_desc_IT4=Congratulations Snek Klan! (devrik, Joorren, boo and EatAss) +badge_name_DEB=Botanist +badge_desc_DEB=I won the Flower Power Room Competition. June 2020. +badge_name_CO5=Gardener +badge_desc_CO5=I submitted my room to the Flower Power Room Competition! June 2020. +badge_name_ES26I=L +badge_desc_ES26I=. +badge_name_ES27I=G +badge_desc_ES27I=. +badge_name_ES29I=B +badge_desc_ES29I=. +badge_name_ES28I=T +badge_desc_ES28I=. +badge_name_ES30I=+ +badge_desc_ES30I=. +badge_name_ES32H=Avo Love +badge_desc_ES32H=You're everything I Avo wanted! +badge_name_DE26C=Gamer Gold +badge_desc_DE26C=Winner winner chicken dinner! +badge_name_DE27C=Gamer Silver +badge_desc_DE27C=Winner winner chicken dinner! +badge_name_DE28C=Gamer Bronze +badge_desc_DE28C=Winner winner chicken dinner! +badge_name_BSH11=Bet on it... +badge_desc_BSH11=I'm a Dice PRO! +badge_name_US019=Canada Day 2020 +badge_desc_US019=Celebrating all things Canadian with Habbo! +badge_name_UK827=Eh?! +badge_desc_UK827=It's a Canadian thing... +badge_name_CAK=Maple Leaf +badge_desc_CAK=A national symbol... +badge_name_IT472=Looking Forward... +badge_desc_IT472=July 2020 Infobus Session on the Future of Classic Habbo! +badge_name_DE258=I voted in 2020 Habbo Elections +badge_desc_DE258=I hope my president wins! #notmypresident +badge_name_DE640=Presidential Nominee July 2020 +badge_desc_DE640=For the tears, the glory and the bobba. +badge_name_US106=Presidential Medal of Recognition +badge_desc_US106=Awarded by President %username% +badge_name_ES35B=Habbo President +badge_desc_ES35B=President of Classic Habbo - 2020! +badge_name_HOT2=Hot +badge_desc_HOT2=One Hot Habbo - Hot/Cool 2020 +badge_name_COL2=Cool +badge_desc_COL2=One Cool Habbo - Hot/Cool 2020 +badge_name_HOT=Hot Badge +badge_desc_HOT=Hot or Cool Campaign +badge_name_COL=Cool Badge +badge_desc_COL=Hot or Cool Campaign +badge_name_ES498=Bacon Medal +badge_desc_ES498=I might not have won but I was there! +badge_name_NL712=Flower Detective +badge_desc_NL712=I solved the mystery! July 2020 +badge_name_REPF1=SAW! Player +badge_desc_REPF1=I entered the Flower Power Castle (Rep Event) +badge_name_REPF2=SAW! Winner +badge_desc_REPF2=I conquered the Flower Power Castle (Rep Event) +badge_name_SSCB=Snow Storm Bronze +badge_desc_SSCB=Congratulations to Joorren and devrik +badge_name_SSCG=Snow Storm Gold +badge_desc_SSCG=Congratulations to Big.ViuS and Kaah +badge_name_SSCS=Snow Storm Silver +badge_desc_SSCS=Congratulations to Why and $$ +badge_name_UK694=USA Independence Day +badge_desc_UK694=Happy 4th of July! +badge_name_DEA=Flower Investigator +badge_desc_DEA=I was one of the 15 best detectives! July 2020 +badge_name_DISC2=One Thousand +badge_desc_DISC2=Wow! Discord #counting reached 1000! +badge_name_VRFD=Verified +badge_desc_VRFD=My account is verified on the official CH discord! +badge_name_POKHR=Pro Gambler +badge_desc_POKHR=A gambler at Heart +badge_name_POKSP=Pro Gambler +badge_desc_POKSP=A gambler by Trade +badge_name_ALEX=Alex +badge_desc_ALEX=I love Alex +badge_name_WING2LGBT+ Punk +badge_desc_WING2=I am LGBT and PUNK! +badge_name_WING1=LGBT+ Punk +badge_desc_WING1=I am LGBT and PUNK! +badge_name_FRECK=Freck +badge_desc_FRECK=Hobo life-style +badge_name_DEVRI=Devrik +badge_desc_DEVRI=Fan of the design +badge_name_CHRIS=Chrisol +badge_desc_CHRIS=Do I look like a baby to you? :/ +badge_name_IT221=Good vs Evil +badge_desc_IT221=Only one team will win! Who will it be? July 2020. +badge_name_FRI02=Lucifer +badge_desc_FRI02=I found Luci, the cat! What a wicked boy. +badge_name_MS1=Bad +badge_desc_MS1=You are bad, but not that bad! Devil's Maze Top 30 +badge_name_MS2=Evil +badge_desc_MS2=You are more evil than most Habbos! Devil's Maze Top 20 +badge_name_KCK01=Kick Wars +badge_desc_KCK01=I trialed Kick Wars with Habbo Staff! +badge_name_BR026=Rock 'N' Roll +badge_desc_BR026=Celebrated International Day of Rock 'N' Roll with Habbo Hotel, 2020. +badge_name_DE08C=Good Angel +badge_desc_DE08C=Winner of Good vs Evil - I defeated the Evil forces. +badge_name_ES12D=Evil Angel +badge_desc_ES12D=Lost the battle between Good vs Evil. +badge_name_ES814=On Wednesdays, we wear pink! +badge_desc_ES814=Mean Girls 2020 +badge_name_US114=You can't sit with us! +badge_desc_US114=Mean Girls 2020 +badge_name_IT492=Artist +badge_desc_IT492=Official Habbo Hotel Pixel Artist +badge_name_PX4=Behind The Pixels +badge_desc_PX4=Joined Staff for the Launch of BTP, 2020. diff --git a/tools/gamedata/shockwave/external_variables.php b/tools/gamedata/shockwave/external_variables.php new file mode 100644 index 0000000..c883e2a --- /dev/null +++ b/tools/gamedata/shockwave/external_variables.php @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/tools/gamedata/shockwave/external_variables.txt b/tools/gamedata/shockwave/external_variables.txt new file mode 100644 index 0000000..16e5a0a --- /dev/null +++ b/tools/gamedata/shockwave/external_variables.txt @@ -0,0 +1,170 @@ +cast.entry.39=hh_human_50_acc_face +cast.entry.33=hh_human_acc_face +cast.entry.11=hh_human_hair +client.fatal.error.url=http://localhost/client_error +link.format.userpage=http://localhost/home/%ID%/id +room.rating.enable=1 +interface.cmds.active.ctrl=["move","rotate"] +cast.entry.28=hh_recycler +avatar.editor.character.update.url=http://localhost/profile +cast.entry.14=hh_human_shoe +cast.entry.16=hh_pets_common +cast.entry.6=hh_human +link.format.collectibles=http://localhost/credits/collectables +room.cast.11=hh_human_fx +interstitial.max.displays=5 +room.cast.1=hh_soundmachine +interface.cmds.item.ctrl=[] +cast.entry.40=hh_human_50_acc_head +cast.entry.32=hh_human_acc_eye +cast.entry.34=hh_human_acc_head +interface.cmds.user.owner=["take_rights","give_rights","kick","friend","trade","ignore","unignore","userpage"] +cast.entry.15=hh_kiosk_room +room.recommendations=1 +room.cast.10=hh_roomdimmer +link.format.friendlist.pref=http://localhost/profile/friendsmanagement?tab=6 +cast.entry.41=hh_human_50_body +cast.entry.10=hh_human_hats +room.cast.5=hh_human_50_leg +cast.entry.30=hh_badges +cast.entry.4=hh_interface +cast.entry.31=hh_entry_init +interface.cmds.user.ctrl=["kick","friend","trade","ignore","unignore","userpage"] +cast.entry.19=hh_furni_classes +interface.cmds.photo.owner=["pick","delete"] +cast.entry.21=hh_club +displayer.tag.expiration.time=600000 +swimjump.key.list=[#run1:"A", #run2:"D", #dive1:"W", #dive2:"E", #dive3:"A", #dive4:"S", #dive5:"D", #dive6:"Z", #dive7:"X", #jump:"SPACE"] +link.format.credits=http://localhost/credits +cast.entry.17=hh_room_utils +cast.entry.46=hh_ig +cast.entry.44=hh_pets +games.tickets.hide=0 +navigator.cache.duration=30 +cast.entry.35=hh_human_50_face +cast.entry.45=hh_guide +cast.entry.47=hh_ig_interface +cast.entry.48=hh_tutorial +cast.entry.20=hh_room +room.cast.4=hh_human_50_shirt +room.cast.3=hh_human_acc_waist +interface.cmds.photo.ctrl=[] +cast.entry.18=hh_room_ui +club.subscription.disabled=1 +cast.entry.12=hh_human_shirt +interface.cmds.user.friend=["friend","trade","ignore","unignore","userpage"] +room.cast.2=hh_human_acc_chest +cast.entry.24=hh_cat_new +link.format.mailpage=http://localhost/me#mail/compose/%recipientid% +text.render.compatibility.mode=2 +interface.cmds.active.owner=["move","rotate","pick"] +cast.entry.43=hh_instant_messenger +group.badge.url=http://localhost/habbo-imaging/badge/%imagerdata%.gif +interstitial.interval=180000 +cast.entry.1=hh_entry_au +cast.entry.7=hh_human_body +cast.entry.13=hh_human_leg +client.full.refresh.period=5000 +group_logo_url_template=http://localhost/habbo-imaging/badge-fill/%imagerdata%.gif +cast.entry.42=hh_friend_list +cast.entry.2=hh_entry_base +room.cast.9=hh_human_50_acc_waist +text.crap.fixing=1 +cast.entry.26=hh_buffer +client.version.id=401 +cast.entry.27=hh_dynamic_downloader +moderator.cmds=[":alert x",":ban x",":kick x",":superban x",":shutup x",":unmute x",":transfer x",":softkick x"] +rosetta.warning.page.url=http://localhost/client_popup/rosetta_info +link.format.mail.inbox=http://localhost/me#mail +link.format.user.search=http://localhost/me#habbo-search +room.cast.6=hh_human_50_shoe +room.cast.8=hh_human_50_acc_chest +cast.entry.36=hh_human_50_hats +avatar.editor.url=%predefined%/profile +cast.entry.22=hh_photo +link.format.habboclub=http://%predefined%/credits/club +link.format.club=http://localhost/credits/club +cast.entry.23=hh_navigator +castload.retry.delay=20000 +link.format.mail.compose=http://localhost/me#mail/compose/%recipientid%/%random%/ +interface.cmds.item.owner=["pick"] +link.format.pets=http://localhost/hotel/pets +interface.cmds.user.personal=["badge","dance","wave","hcdance","userpage"] +paalu.key.list=[#bal1:"Q", #bal2:"E", #push1:"A", #push2:"D", #move1:"N", #move2:"M", #stabilise:"SPACE"] +pixels.enabled=true +link.format.tag.search=http://localhost/tag/search?tag=%tag% +room.cast.small.1=hh_pets_50 +cast.entry.25=hh_cat_gfx_all +cast.entry.5=hh_patch_uk +cast.entry.9=hh_human_item +room.cast.12=hh_human_50_fx +cast.entry.37=hh_human_50_hair +interstitial.show.time=3000 +cast.entry.38=hh_human_50_acc_eye +cast.entry.8=hh_human_face +room.cast.private=["hh_room_private", "hh_room_landscapes"] +client.flood.timeout=1 +cast.entry.29=hh_poll +room.cast.7=hh_human_50_item +cast.entry.3=hh_shared +friend_request_options=Advanced options. +char.conversion.mac=[128:219,130:226,131:196,132:227,133:201,134:160,135:224,136:246,137:228,139:220,140:206,145:212,146:213,147:210,148:211,149:165,150:208,151:209,152:247,153:170,155:221,156:207,159:217,161:193,165:180,167:164,168:172,170:187,171:199,172:194,173:208,174:168,176:161,180:171,182:166,183:225,184:252,186:188,187:200,191:192,192:203,193:231,194:229,195:204,196:128,197:129,198:174,199:130,200:233,201:131,202:230,203:232,204:237,205:234,206:235,207:236,209:132,210:241,211:238,212:239,213:205,214:133,216:175,217:244,218:242,219:243,220:134,223:167,224:136,225:135,226:137,227:139,228:138,229:140,230:190,231:141,232:143,233:142,234:144,235:145,236:147,237:146,238:148,239:149,241:150,242:152,243:151,244:153,246:154,247:214,248:191,249:157,250:156,251:158,252:159,255:216] +profile.events.enabled=false +profile.fields.enabled=false +profiler.enabled=false +profile.core.enabled=false +profile.network.enabled=false +client.use.invites=1 +external.figurepartlist.txt=http://localhost/dcr/v31/gamedata/figuredata.xml +productdata.load.url=http://localhost/dcr/v31/gamedata/productdata.txt +hotelview.banner.url=http://localhost/gamedata/banner +purse.transactions.active=1 +loading.bar.active=1 +client.textdata.utf8=1 +logout.disconnect.url=http://localhost/account/disconnected?reason=logout&origin=popup +logout.concurrent.url= +http://localhost/account/disconnected?reason=concurrentlogin&origin=popup +furnidata.load.url=http://localhost/dcr/v31/gamedata/furnidata.txt +dynamic.download.name.template=hh_furni_xx_%typeid%.cct +navigator.visible.public.root=3 +room.default.wall=201 +figure.draworder.xml.secure=http://localhost/dcr/v31/gamedata/draworder.xml +client.window.title=Habbo Hotel +navigator.private.default=4 +room.default.floor=111 +struct.font.tooltip=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.public.default=3 +stats.tracking.javascript.template=/\TCODE +struct.font.link=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#underline]] +flash.dynamic.download.url=http://localhost/dcr/hof_furni/ +flash.dynamic.download.name.template=%revision%/%typeid%.swf +fuse.project.id=habbo_uk +figure.animation.xml=http://localhost/dcr/v31/gamedata/animation.xml +private.image.library.url=http://localhost/c_images/ +dynamic.download.url=http://localhost/dcr/hof_furni/ +figure.partsets.xml=http://localhost/dcr/v31/gamedata/partsets.xml +tutorial.name.new_user_flow=NUF_mini +external.figurepartlist.txt.secure=http://localhost/dcr/v31/gamedata/figuredata.xml +navigator.visible.private.root=4 +struct.font.italic=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#italic]] +language=en +image.library.url=http://localhost/c_images/ +struct.font.plain=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.default.view=public +security.cast.load.url=http://localhost/dcr/v31/gamedata/sec.cct?t=%token% +logout.url=http://localhost/account/disconnected?reason=logout&origin=popup +figure.draworder.xml=http://localhost/dcr/v31/gamedata/draworder.xml +stats.tracking.javascript=google +struct.font.bold=[#font:"vb",#fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +struct.font.grey=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#666666"),#ilk:#struct,#fontStyle:[#italic]] +permitted.name.chars=1234567890qwertyuiopasdfghjklzxcvbnm-=?!@:., +dynamic.download.samples.template=sounds/%typeid%.cct +handitem.camera.select_handler=photo_interface +navigator.room.forward.timeout=0 +cast.entry.49=hh_tutorial_fix +client.allow.cross.domain=1 +client.notify.cross.domain=0 +handitem.right.45 = 57 +handitem.right.46 = 58 +handitem.right.47 = 59 +handitem.right.50 = 62 diff --git a/tools/gamedata/shockwave/external_variables_nossl.txt b/tools/gamedata/shockwave/external_variables_nossl.txt new file mode 100644 index 0000000..7b7c9bc --- /dev/null +++ b/tools/gamedata/shockwave/external_variables_nossl.txt @@ -0,0 +1,169 @@ +cast.entry.39=hh_human_50_acc_face +cast.entry.33=hh_human_acc_face +cast.entry.11=hh_human_hair +client.fatal.error.url=http://classichabbo.com/client_error +link.format.userpage=http://localhost/home/%ID%/id +room.rating.enable=1 +interface.cmds.active.ctrl=["move","rotate"] +cast.entry.28=hh_recycler +avatar.editor.character.update.url=http://localhost/profile +cast.entry.14=hh_human_shoe +cast.entry.16=hh_pets_common +cast.entry.6=hh_human +link.format.collectibles=http://localhost/credits/collectables +room.cast.11=hh_human_fx +interstitial.max.displays=5 +room.cast.1=hh_soundmachine +interface.cmds.item.ctrl=[] +cast.entry.40=hh_human_50_acc_head +cast.entry.32=hh_human_acc_eye +cast.entry.34=hh_human_acc_head +interface.cmds.user.owner=["take_rights","give_rights","kick","friend","trade","ignore","unignore","userpage"] +cast.entry.15=hh_kiosk_room +room.recommendations=1 +room.cast.10=hh_roomdimmer +link.format.friendlist.pref=http://localhost/profile/friendsmanagement?tab=6 +cast.entry.41=hh_human_50_body +cast.entry.10=hh_human_hats +room.cast.5=hh_human_50_leg +cast.entry.30=hh_badges +cast.entry.4=hh_interface +cast.entry.31=hh_entry_init +interface.cmds.user.ctrl=["kick","friend","trade","ignore","unignore","userpage"] +cast.entry.19=hh_furni_classes +interface.cmds.photo.owner=["pick","delete"] +cast.entry.21=hh_club +displayer.tag.expiration.time=600000 +swimjump.key.list=[#run1:"A", #run2:"D", #dive1:"W", #dive2:"E", #dive3:"A", #dive4:"S", #dive5:"D", #dive6:"Z", #dive7:"X", #jump:"SPACE"] +link.format.credits=http://localhost/credits +cast.entry.17=hh_room_utils +cast.entry.46=hh_ig +cast.entry.44=hh_pets +games.tickets.hide=0 +navigator.cache.duration=30 +cast.entry.35=hh_human_50_face +cast.entry.45=hh_guide +cast.entry.47=hh_ig_interface +cast.entry.48=hh_tutorial +cast.entry.20=hh_room +room.cast.4=hh_human_50_shirt +room.cast.3=hh_human_acc_waist +interface.cmds.photo.ctrl=[] +cast.entry.18=hh_room_ui +club.subscription.disabled=1 +cast.entry.12=hh_human_shirt +interface.cmds.user.friend=["friend","trade","ignore","unignore","userpage"] +room.cast.2=hh_human_acc_chest +cast.entry.24=hh_cat_new +link.format.mailpage=http://localhost/me#mail/compose/%recipientid% +text.render.compatibility.mode=2 +interface.cmds.active.owner=["move","rotate","pick"] +cast.entry.43=hh_instant_messenger +group.badge.url=http://localhost/habbo-imaging/badge/%imagerdata%.gif +interstitial.interval=180000 +cast.entry.1=hh_entry_au +cast.entry.7=hh_human_body +cast.entry.13=hh_human_leg +client.full.refresh.period=5000 +cast.entry.42=hh_friend_list +cast.entry.2=hh_entry_base +room.cast.9=hh_human_50_acc_waist +text.crap.fixing=1 +cast.entry.26=hh_buffer +client.version.id=401 +cast.entry.27=hh_dynamic_downloader +moderator.cmds=[":alert x",":ban x",":kick x",":superban x",":shutup x",":unmute x",":transfer x",":softkick x"] +rosetta.warning.page.url=http://localhost/client_popup/rosetta_info +link.format.mail.inbox=http://localhost/me#mail +link.format.user.search=http://localhost/me#habbo-search +room.cast.6=hh_human_50_shoe +room.cast.8=hh_human_50_acc_chest +cast.entry.36=hh_human_50_hats +avatar.editor.url=%predefined%/profile +cast.entry.22=hh_photo +link.format.habboclub=https://%predefined%/credits/club +link.format.club=http://localhost/credits/club +cast.entry.23=hh_navigator +castload.retry.delay=20000 +link.format.mail.compose=http://localhost/me#mail/compose/%recipientid%/%random%/ +interface.cmds.item.owner=["pick"] +link.format.pets=http://localhost/hotel/pets +interface.cmds.user.personal=["badge","dance","wave","hcdance","userpage"] +paalu.key.list=[#bal1:"Q", #bal2:"E", #push1:"A", #push2:"D", #move1:"N", #move2:"M", #stabilise:"SPACE"] +pixels.enabled=true +link.format.tag.search=http://localhost/tag/search?tag=%tag% +room.cast.small.1=hh_pets_50 +cast.entry.25=hh_cat_gfx_all +cast.entry.5=hh_patch_uk +cast.entry.9=hh_human_item +room.cast.12=hh_human_50_fx +cast.entry.37=hh_human_50_hair +interstitial.show.time=3000 +cast.entry.38=hh_human_50_acc_eye +cast.entry.8=hh_human_face +room.cast.private=["hh_room_private", "hh_room_landscapes"] +client.flood.timeout=1 +cast.entry.29=hh_poll +room.cast.7=hh_human_50_item +cast.entry.3=hh_shared +friend_request_options=Advanced options. +char.conversion.mac=[128:219,130:226,131:196,132:227,133:201,134:160,135:224,136:246,137:228,139:220,140:206,145:212,146:213,147:210,148:211,149:165,150:208,151:209,152:247,153:170,155:221,156:207,159:217,161:193,165:180,167:164,168:172,170:187,171:199,172:194,173:208,174:168,176:161,180:171,182:166,183:225,184:252,186:188,187:200,191:192,192:203,193:231,194:229,195:204,196:128,197:129,198:174,199:130,200:233,201:131,202:230,203:232,204:237,205:234,206:235,207:236,209:132,210:241,211:238,212:239,213:205,214:133,216:175,217:244,218:242,219:243,220:134,223:167,224:136,225:135,226:137,227:139,228:138,229:140,230:190,231:141,232:143,233:142,234:144,235:145,236:147,237:146,238:148,239:149,241:150,242:152,243:151,244:153,246:154,247:214,248:191,249:157,250:156,251:158,252:159,255:216] +profile.events.enabled=false +profile.fields.enabled=false +profiler.enabled=false +profile.core.enabled=false +profile.network.enabled=false +client.use.invites=1 +external.figurepartlist.txt=http://localhost/dcr/v31/gamedata/figuredata.xml +productdata.load.url=http://localhost/dcr/v31/gamedata/productdata.txt +hotelview.banner.url=http://localhost/gamedata/banner +purse.transactions.active=1 +loading.bar.active=1 +client.textdata.utf8=1 +logout.disconnect.url=http://classichabbo.com/account/disconnected?reason=logout&origin=popup +logout.concurrent.url= +http://classichabbo.com/account/disconnected?reason=concurrentlogin&origin=popup +furnidata.load.url=http://localhost/dcr/v31/gamedata/furnidata.txt +dynamic.download.name.template=hh_furni_xx_%typeid%.cct +navigator.visible.public.root=3 +room.default.wall=201 +figure.draworder.xml.secure=http://localhost/dcr/v31/gamedata/draworder.xml +client.window.title=Habbo Hotel +navigator.private.default=4 +room.default.floor=111 +struct.font.tooltip=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.public.default=3 +stats.tracking.javascript.template=/\TCODE +struct.font.link=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#underline]] +flash.dynamic.download.url=http://localhost/dcr/hof_furni/ +flash.dynamic.download.name.template=%revision%/%typeid%.swf +fuse.project.id=habbo_uk +figure.animation.xml=http://localhost/dcr/v31/gamedata/animation.xml +private.image.library.url=http://localhost/c_images/ +dynamic.download.url=http://localhost/dcr/hof_furni/ +figure.partsets.xml=http://localhost/dcr/v31/gamedata/partsets.xml +tutorial.name.new_user_flow=NUF_mini +external.figurepartlist.txt.secure=http://localhost/dcr/v31/gamedata/figuredata.xml +navigator.visible.private.root=4 +struct.font.italic=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#italic]] +language=en +image.library.url=http://localhost/c_images/ +struct.font.plain=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.default.view=public +security.cast.load.url=http://localhost/dcr/v31/gamedata/sec.cct?t=%token% +logout.url=http://localhost/account/disconnected?reason=logout&origin=popup +figure.draworder.xml=http://localhost/dcr/v31/gamedata/draworder.xml +stats.tracking.javascript=google +struct.font.bold=[#font:"vb",#fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +struct.font.grey=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#666666"),#ilk:#struct,#fontStyle:[#italic]] +permitted.name.chars=1234567890qwertyuiopasdfghjklzxcvbnm-=?!@:., +dynamic.download.samples.template=sounds/%typeid%.cct +handitem.camera.select_handler=photo_interface +navigator.room.forward.timeout=0 +cast.entry.49=hh_tutorial_fix +client.allow.cross.domain=1 +client.notify.cross.domain=0 +handitem.right.45 = 57 +handitem.right.46 = 58 +handitem.right.47 = 59 +handitem.right.50 = 62 diff --git a/tools/gamedata/shockwave/figuredata.txt b/tools/gamedata/shockwave/figuredata.txt new file mode 100644 index 0000000..6d23a40 --- /dev/null +++ b/tools/gamedata/shockwave/figuredata.txt @@ -0,0 +1,2 @@ + +FFCB98E3AE7DC99263AE7748945C2F6E482CFFC680F4AC54DC9B4CFFDBC1FFB696FF987FF0DCA3F5DA88DFC375EFD17DC89F56A89473B875609C543F6E392CEAEFD0E2E4B0D5D08CC4A7B3C2C4A7C5C0C2F1E5DAB3BDC34C311E644628926338A97C44B3957FBD9562C2A896CA9072CBBC90D1A78CD1BCADD7BCA9D7CBA3D8A595D8B07EE0BD91E0D0C5E2DBB9E3D38DE7C9A3EDD7BBEEE7E0EFC3B6F1D6B4F8E5DAFDDACFFFCC99FFD6A9DFA66FD1803AFFEEB9F6D059F2B11D9A5D2EAC5300783400D8D3D9918D984A4656F291599E3D3B5C4332FF8746FC610CDE3900D2FF00FFFFFFE5FF09A3FF8F3399663A7B93FFBDBCDE34A49F5699D5F9FB6699CCE71B0A95FFFA2D2D2D00FA000A0A0A1052621062621E321420B4A4234CAF248954282828292929298BB42DA5E9319CF631F6DE322F3E323235325B6A3296FA333333394194463C144A6A184B5A5A4D32234F87C0579E1F5A480A5A837B624A41625A20626262646D6C662608666666674E3B6A3910736346781414784215786D5A7B18947D5B1780557C8331418A49248B18208C694B8C967E904839926338946220947BAC948B6A94BD2994DFFF94FFD5976D3E9CF0689E3F0BA08C64A4A4A4A4DEFFA55A18A7272CA97C44B29B86B2A590B3957FB429CDB4EE29B58B5CB9A16EBD9562BD9CFFBDBD9DC21A86C29C57C2A896C2E3E8C376C4C4FFFFC54A29C59462C8D2E6C96B2FCA5A1ECA5A33CA9072CBBC90CD99C7CF6254D1A78CD1BCADD2C8CCD45B0AD4FE80D54173D5FF9CD7BCA9D7CBA3D8A595D8B07EDA945EDB7C62DCDCC8DDA934DE73DEDEDEDEDFDAB4DFDABEE0BA78E0BD91E0D0C5E1CC78E2DBB9E63139E6A4F6E7C9A3E7E92DEA5959ECFFEDEDD7BBEEE7E0EEEEEEEFC3B6F1D6B4F6AC31F73B32F8E5DAFDA61EFDDACFFE6D6DFE834DFF0000FF006AFF4814FF4C2FFF5F9BFF7329FF7383FF7BDEFF9C62FFA772FFADAEFFBC42FFBDBDFFBE73FFC53AFFCD94FFCD9BFFDC7AFFE639FFE673FFEAACFFEAADFFEEC5FFFFFFEEEEEEA4A4A4595959F6E179E7B027A86B19F8C790EB7E43C74400FFBFC2ED5C509F2B31E7D1EEAC94B37E5B90ACC9E66D80BB544A81C5EDE675B7C74F7AA2BBF3BD6BAE61456F40D2FF00EDFF9ABABB3D7A7D22F3E1AF96743D6B573BFFFFFFFFF41DFF9211FF27A6FF1300FF6D8FE993FFC600AD9B001D76FF2D1CDC00AFF20300B9A894FFEC1BD2FF1F55FF0219A53A53411E1E1E003F1D096E16105262106262121D6D1F1F1F20B4A420B9132828C8292929298BB42F2D26319CF631F6DE333333336633365E8A378BE837E8C53941943B7AC03D3D3D406A6543001A4562834A6A184C882B5A837B5CC4455F5F5F624A41625A20626262656A406666666874506A39106A405C6A4A40779FBB795E537B18947B58187C8F7D7D00047D003483314187D7CD88E0DE8B1820946220947BAC948B6A94BD2994FFD595784E983E4F98863E9FD787A4A4A4A4DEFFA88139ADD0FFAFDCDFB3FCFFB429CDB4EE29B6396DB79BFFB8E737BA9D73BAAD68BAC7FFBB2430BD9CFFBDFFC8C0B4C7C1C1C1C1D2DBC54A29C59462C6B3D6C745D9CA2221CDCDFFCDFFB3D1DFAFD1FFD4D54173D5FF9CD68C8CD7C187D9457ED97145DE73DEDEDEDEDFAFD1DFCBAFE63139E6A4F6E8B137E8FFFFEEEEEEF64C3EF6AC31F9A0A0FF006AFF1092FF45D6FF7329FF7383FF7BDEFF8516FF9C62FFB3D7FFB6DEFFBDBDFFC800FFC92BFFCD94FFCE64FFD2B3FFE639FFE673FFEDB3FFEE6DFFEEC5FFFF00FFFF66FFFFFAFFFFFF \ No newline at end of file diff --git a/tools/gamedata/shockwave/furnidata.txt b/tools/gamedata/shockwave/furnidata.txt new file mode 100644 index 0000000..440b2ee --- /dev/null +++ b/tools/gamedata/shockwave/furnidata.txt @@ -0,0 +1 @@ +[["s","1","rare_parasol*0","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#9EFF1C","Green Parasol","Block those rays!"],["i","2","floor","0","","","","","",""],["i","33","wallpaper","0","","","","","",""],["s","34","nest","0","0","1","1","0,0,0","Basket","Night, night"],["s","35","nest","0","0","1","1","0,0,0","Basket","Night, night"],["s","36","nest","0","0","1","1","0,0,0","Basket","Night, night"],["s","41","petfood1","13144","2","1","1","0,0","Bones Mega Multipack","Fantastic 20% Saving!"],["s","42","petfood2","13144","2","1","1","0","Sardines Mega Multipack","Fantastic 20% Saving!"],["s","43","petfood3","13144","2","1","1","0,0,0","Cabbage Mega Multipack","Fantastic 20% Saving!"],["s","44","petfood4","13144","2","1","1","0,0","T-Bones Mega Multipack","Fantastic 20% Saving!"],["s","45","waterbowl*1","13144","2","1","1","#ff3f3f,#ffffff,#ffffff","Red Water Bowl","Aqua unlimited"],["s","46","waterbowl*2","13144","2","1","1","#3fff3f,#ffffff,#ffffff","Green Water Bowl","Aqua unlimited"],["s","47","waterbowl*3","13144","2","1","1","#ffff00,#ffffff,#ffffff","Yellow Water Bowl","Aqua unlimited"],["s","48","waterbowl*4","13144","2","1","1","#0099ff,#ffffff,#ffffff","Blue Water Bowl","Aqua unlimited"],["s","49","waterbowl*5","13144","2","1","1","#bf7f00,#ffffff,#ffffff","Brown Water Bowl","Aqua unlimited"],["s","50","goodie2","13144","2","1","1","0","Chocolate Mouse","For gourmet kittens"],["s","51","goodie1","13144","2","1","1","#ff4cbf,#ffffff","Marzipan Man","Crunchy Dog Treat"],["s","52","goodie1*1","13144","2","1","1","#3fffff,#ffffff","Marzipan Man","Crunchy Dog Treat"],["s","53","goodie1*2","13144","2","1","1","#ffbf00,#ffffff","Marzipan Man","Crunchy Dog Treat"],["s","54","toy1","13144","2","1","1","#ff0000,#ffff00,#ffffff,#ffffff","Rubber Ball","it's bouncy-tastic"],["s","55","toy1*1","13144","2","1","1","#ff7f00,#007f00,#ffffff,#ffffff","Rubber Ball","it's bouncy-tastic"],["s","56","toy1*2","13144","2","1","1","#003f7f,#ff00bf,#ffffff,#ffffff","Rubber Ball","it's bouncy-tastic"],["s","57","toy1*3","13144","2","1","1","#bf1900,#00bfbf,#ffffff,#ffffff","Rubber Ball","it's bouncy-tastic"],["s","58","toy1*4","13144","2","1","1","#000000,#ffffff,#ffffff,#ffffff","Rubber Ball","it's bouncy-tastic"],["s","59","arabian_bigtb","11385","0","3","2","","Amanjena Table","It must be Jinn-er time!"],["s","60","arabian_chair","4638","0","1","1","","Green Blossom Chair","Exotic, soft seating"],["s","61","arabian_divdr","4638","0","1","2","","Soft wooden screen","Carved Cedar Divider"],["s","62","arabian_pllw","11385","0","1","1","","Green Blossom Pillow","Exotic comfort"],["s","63","arabian_rug","11385","0","3","5","","Berber Kilim Rug","Green blossom design"],["s","64","arabian_snake","13603","0","1","1","","Ornamental Urn","Beware the snake!"],["i","65","arabian_swords","4638","","","","","Ancestral Scimitars","Not for yielding"],["s","66","arabian_teamk","13633","2","1","1","","Tea Maker","Quench that desert thirst"],["s","67","arabian_tetbl","4638","0","1","1","","Hexagonal Tea Table","Serve up a treat"],["s","68","arabian_tray1","4638","0","1","1","","Mint Tea Tray","Tea for every occasion"],["s","69","arabian_tray2","13603","0","1","1","","Candle Tray","For those Arabian nights"],["s","70","arabian_tray3","4638","0","1","1","","Sweets Tray","Indulge yourself!"],["s","71","arabian_tray4","4638","0","1","1","","Fruit Tray","Sweet, juicy and ripe"],["i","72","arabian_wndw","4638","","","","","Arabian Window Frame","Arabian days and nights"],["s","73","arabian_tray2","13603","0","1","1","","Candle Tray","For those Arabian nights"],["s","74","sound_set_62","6035","0","1","1","","Alhambra Trax 1","Music of the Arabian night!"],["s","75","sound_set_63","6035","0","1","1","","Alhambra Trax 2","Desert hits by the oasis!"],["s","76","sound_set_64","6035","0","1","1","","Alhambra Trax 3","Make a little Jinn-gle!"],["s","77","tile_marble","3438","0","1","1","","Marble Tile","Slick sophistication; now 10% off!"],["s","78","tile_brown","3438","0","1","1","","Red Tile","10% off downtown promenades & piazzas!"],["s","79","silo_studydesk","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Area Quest Desk","For the true Habbo Scholars"],["s","80","bed_silo_two","437","0","2","3","0,0,0","Double Bed","Plain and simple x2"],["s","81","bed_silo_one","11385","3","1","3","0,0,0","Single Bed","Plain and simple"],["s","82","shelves_silo","11385","0","2","1","0,0,0","Bookcase","For nic naks and art deco books"],["s","83","sofa_silo","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ABD0D2,#ABD0D2,#ABD0D2,#ABD0D2","Two-Seater Sofa","Cushioned, understated comfort"],["s","84","sofachair_silo","11385","0","1","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Armchair","Large, but worth it"],["s","85","table_silo_small","1272","0","1","1","#ffffff,#ABD0D2","Occasional Table","For those random moments"],["s","86","divider_silo3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2","Gate (lockable)","Form following function"],["s","87","divider_silo2","3438","0","2","1","0,0,0","Screen","Stylish sectioning"],["s","88","divider_silo1","11385","0","1","1","#ffffff,#ABD0D2","Corner Shelf","Neat and natty"],["s","89","chair_silo","11385","0","1","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Dining Chair","Keep it simple"],["s","90","safe_silo","13603","2","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Safe Minibar","Totally shatter-proof!"],["s","91","barchair_silo","1272","0","1","1","#ffffff,#ABD0D2","Bar Stool","Practical and convenient"],["s","92","table_silo_med","11385","0","2","2","#ffffff,#ABD0D2","Coffee Table","Wipe clean and unobtrusive"],["i","93","habbowheel","13603","","","","","The Wheel of Destiny!","So you gotta ask yourself, 'Do I feel lucky?'"],["s","94","tv_luxus","13603","0","1","3","","Digital TV","Bang up to date"],["s","95","wood_tv","13603","0","1","2","","Large TV","HNN weatherman Kiazie"],["s","96","red_tv","13603","2","1","1","","Portable TV","Don?t miss those soaps"],["i","97","post.it","13603","0","0","0","","Pad of stickies","Pad of stickies"],["s","98","pizza","437","0","1","1","","Pizza Box","You dirty Habbo"],["s","99","drinks","437","0","1","1","","Empty Cans","Are you a slob too?"],["s","100","bottle","13603","0","1","1","","Empty Spinning Bottle","For interesting games!"],["s","101","edice","13603","0","1","1","0,0,0","Holo-dice","What's your lucky number?"],["s","102","habbocake","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Cake","Save me a slice!"],["s","103","menorah","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Menorah","Light up your room"],["s","106","wcandleset","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Candle Plate","Simple but stylish"],["s","107","rcandleset","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Red Candle Plate","Simple but stylish"],["s","108","ham","437","0","1","1","0,0,0","Joint of Ham","Tuck in"],["s","109","hockey_light","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Lert","Set it off."],["s","110","barrier*1","13603","0","1","2","#FFFFFF,#FFFFFF,#FFCA28,#FFCA28,#FFFFFF","Yellow Maze Barrier","No escape this way!"],["s","111","barrier*2","13603","0","1","2","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Road Barrier","No trespassing, please!"],["s","112","barrier*3","13603","0","1","2","#FFFFFF,#FFFFFF,#CC3232,#CC3232,#FFFFFF","Red Road Barrier","No trespassing, please!"],["s","113","traffic_light*1","13603","2","1","1","#FFFFFF,#47738B,#FFFFFF","Classic Traffic Light","Chill and wait your turn!"],["s","114","traffic_light*2","13603","2","1","1","#FFFFFF,#2B95E5,#FFFFFF","Blue Traffic Light","Chill and wait your turn!"],["s","115","traffic_light*3","13603","2","1","1","#FFFFFF,#E0337A,#FFFFFF","Purple Traffic Light","Chill and wait your turn!"],["s","116","traffic_light*4","13603","2","1","1","#FFFFFF,#FFDD24,#FFFFFF","Yellow Traffic Light","Chill and wait your turn!"],["s","117","traffic_light*5","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Traffic Light","Chill and wait your turn!"],["s","118","traffic_light*6","13603","2","1","1","#FFFFFF,#EF1D1D,#FFFFFF","Red Traffic Light","Chill and wait your turn!"],["s","119","wall_china","437","0","1","1","0,0,0","Dragon Screen","For your great wall"],["s","120","corner_china","437","0","1","1","0,0,0","Dragon Screen Corner","Firm, fireproof foundation"],["s","121","china_shelve","1272","0","2","1","0,0,0","Chinese Bookshelf","To hold the mind's treasures"],["s","122","china_table","437","0","1","1","0,0,0","Chinese Lacquer Table","Exotic and classy"],["s","123","chair_china","437","0","1","1","0,0,0","Chinese Lacquer Chair","The elegant beauty of tradition"],["s","126","cn_sofa","437","0","3","1","0,0,0","Chinese Sofa","Seats three with ease!"],["s","127","cn_lamp","13603","0","1","1","#FFFFFF,#FFFFFF","Lantern","Light of the East"],["s","128","bath","13603","0","1","2","","Bubble Bath","The ultimate in pampering"],["s","129","sink","13603","2","1","1","","Sink","Hot and cold thrown in for no charge"],["s","130","duck","437","0","1","1","","Rubber Duck","Every bather needs one"],["s","131","toilet","13603","0","1","1","","Loo Seat","Loo Seat"],["s","132","toilet_red","13603","0","1","1","","Loo Seat","Loo Seat"],["s","133","toilet_yell","13603","0","1","1","","Loo Seat","Loo Seat"],["s","134","tile","437","0","4","4","","Floor Tiles","In a choice of colours"],["s","135","tile_red","437","0","4","4","","Floor Tiles","In a choice of colours"],["s","136","tile_yell","437","0","4","4","","Floor Tiles","In a choice of colours"],["s","137","bardesk_polyfon*5","11385","0","2","1","#ffffff,#ffffff,#FF9BBD,#FF9BBD","Candy Bar","For cute constructions"],["s","138","bardeskcorner_polyfon*5","11385","0","1","1","#ffffff,#FF9BBD","Candy Corner","For sweet corners!"],["s","139","divider_poly3*5","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#EE7EA4,#EE7EA4","Candy Hatch (Lockable)","Keep the Pink in!"],["s","140","sofachair_polyfon_girl","1272","0","1","1","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Armchair","Think pink"],["s","141","sofa_polyfon_girl","3438","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#EE7EA4,#EE7EA4,#EE7EA4,#EE7EA4","Two-seater Sofa","Romantic pink for two"],["s","142","carpet_polar*1","10278","0","2","3","#ffbbcf,#ffbbcf,#ffddef","Pink Faux-Fur Bear Rug","Cute"],["s","143","bed_polyfon_girl_one","3987","0","1","3","#ffffff,#ffffff,#ffffff,#EE7EA4,#EE7EA4","Single Bed","Snuggle down in princess pink"],["s","144","bed_polyfon_girl","1272","0","2","3","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Double Bed","Snuggle down in princess pink"],["s","145","camera","0","0","1","1","0,0,0","Camera","Smile!"],["s","215","glass_shelf","11385","0","2","1","0,0","Glass shelf","Translucent beauty"],["s","216","glass_sofa","11385","0","2","1","#ffffff,#ABD0D2,#ABD0D2,#ffffff,#ffffff,#ABD0D2,#ffffff,#ABD0D2","Glass sofa","Translucent beauty"],["s","217","glass_table","11385","0","2","2","#ffffff,#ABD0D2,#ABD0D2,#ffffff","Glass table","Translucent beauty"],["s","218","glass_chair","11385","0","1","1","#ffffff,#ABD0D2,#ABD0D2,#ffffff","Glass chair","Translucent beauty"],["s","219","glass_stool","11385","0","1","1","#ffffff,#ABD0D2,#ABD0D2,#ffffff","Glass stool","Translucent beauty"],["s","220","glass_sofa*2","11385","0","2","1","#ffffff,#525252,#525252,#ffffff,#ffffff,#525252,#ffffff,#525252","Glass sofa","Translucent beauty"],["s","221","glass_table*2","11385","0","2","2","#ffffff,#525252,#525252,#ffffff","Glass table","Translucent beauty"],["s","222","glass_chair*2","11385","0","1","1","#ffffff,#525252,#525252,#ffffff","Glass chair","Translucent beauty"],["s","223","glass_stool*2","11385","0","1","1","#ffffff,#525252,#525252,#ffffff","Glass stool","Translucent beauty"],["s","224","glass_sofa*3","11385","0","2","1","#ffffff,#bfbfbf,#bfbfbf,#ffffff,#ffffff,#bfbfbf,#ffffff,#bfbfbf","White Glass Sofa","Translucent beauty"],["s","225","glass_table*3","11385","0","2","2","#ffffff,#bfbfbf,#bfbfbf,#ffffff","White Glass Table","Translucent beauty"],["s","226","glass_chair*3","11385","0","1","1","#ffffff,#bfbfbf,#bfbfbf,#ffffff","Glass chair","Translucent beauty"],["s","227","glass_stool*3","11385","0","1","1","#ffffff,#bfbfbf,#bfbfbf,#ffffff","White Glass Stool","Translucent beauty"],["s","228","glass_sofa*4","11385","0","2","1","#ffffff,#f7ebbc,#f7ebbc,#ffffff,#ffffff,#f7ebbc,#ffffff,#f7ebbc","Glass sofa","Translucent beauty"],["s","229","glass_table*4","11385","0","2","2","#ffffff,#f7ebbc,#f7ebbc,#ffffff","Glass table","Translucent beauty"],["s","230","glass_chair*4","11385","0","1","1","#ffffff,#f7ebbc,#f7ebbc,#ffffff","Glass chair","Translucent beauty"],["s","231","glass_stool*4","11385","0","1","1","#ffffff,#f7ebbc,#f7ebbc,#ffffff","Glass stool","Translucent beauty"],["s","232","glass_sofa*5","11385","0","2","1","#ffffff,#ee7ea4,#ee7ea4,#ffffff,#ffffff,#ee7ea4,#ffffff,#ee7ea4","Candy Glass Sofa","Double glazed"],["s","233","glass_table*5","11385","0","2","2","#ffffff,#ee7ea4,#ee7ea4,#ffffff","Candy Glass Table","Translucent beauty"],["s","234","glass_chair*5","11385","0","1","1","#ffffff,#ee7ea4,#ee7ea4,#ffffff","Candy Glass Chair","A pane that you're used to"],["s","235","glass_stool*5","11385","0","1","1","#ffffff,#ee7ea4,#ee7ea4,#ffffff","Candy Glass Stool","Clear a seat"],["s","236","glass_sofa*6","11385","0","2","1","#ffffff,#5eaaf8,#5eaaf8,#ffffff,#ffffff,#5eaaf8,#ffffff,#5eaaf8","Blue Glass Sofa","Translucent beauty"],["s","237","glass_table*6","11385","0","2","2","#ffffff,#5eaaf8,#5eaaf8,#ffffff","Blue Glass Table","Translucent beauty"],["s","238","glass_chair*6","11385","0","1","1","#ffffff,#5eaaf8,#5eaaf8,#ffffff","Blue Glass Chair","Translucent beauty"],["s","239","glass_stool*6","11385","0","1","1","#ffffff,#5eaaf8,#5eaaf8,#ffffff","Blue Glass Stool","Translucent beauty"],["s","240","glass_sofa*7","11385","0","2","1","#ffffff,#7cb135,#7cb135,#ffffff,#ffffff,#7cb135,#ffffff,#7cb135","Green Glass Sofa","Habbo Club"],["s","241","glass_table*7","11385","0","2","2","#ffffff,#7cb135,#7cb135,#ffffff","Green Glass Table","Habbo Club"],["s","242","glass_chair*7","11385","0","1","1","#ffffff,#7cb135,#7cb135,#ffffff","Green Glass Chair","Habbo Club"],["s","243","glass_stool*7","11385","0","1","1","#ffffff,#7cb135,#7cb135,#ffffff","Green Glass Stool","Habbo Club"],["s","244","glass_sofa*8","11385","0","2","1","#ffffff,#ffd837,#ffd837,#ffffff,#ffffff,#ffd837,#ffffff,#ffd837","Yellow Glass Sofa","Double glazed"],["s","245","glass_table*8","11385","0","2","2","#ffffff,#ffd837,#ffd837,#ffffff","Yellow Glass Table","Translucent beauty"],["s","246","glass_chair*8","11385","0","1","1","#ffffff,#ffd837,#ffd837,#ffffff","Yellow Glass Chair","A pane that you're used to"],["s","247","glass_stool*8","11385","0","1","1","#ffffff,#ffd837,#ffd837,#ffffff","Yellow Glass Stool","Clear a seat"],["s","248","glass_sofa*9","11385","0","2","1","#ffffff,#e14218,#e14218,#ffffff,#ffffff,#e14218,#ffffff,#e14218","Glass sofa","Translucent beauty"],["s","249","glass_table*9","11385","0","2","2","#ffffff,#e14218,#e14218,#ffffff","Glass table","Translucent beauty"],["s","250","glass_chair*9","11385","0","1","1","#ffffff,#e14218,#e14218,#ffffff","Glass chair","Translucent beauty"],["s","251","glass_stool*9","11385","0","1","1","#ffffff,#e14218,#e14218,#ffffff","Glass stool","Translucent beauty"],["s","2084","gothic_chair*1","56746","0","1","1","#ffffff,#ff9999,#ffffff,#ff9999","Gothic Chair Pink","The dark side of Habbo"],["s","2085","gothic_sofa*1","56746","0","2","1","#ffffff,#ff9999,#ffffff,#ffffff,#ff9999,#ffffff","Gothic Sofa Pink","The dark side of Habbo"],["s","2086","gothic_stool*1","56746","0","1","1","#ffffff,#ff9999,#ffffff","Gothic Stool Pink","The dark side of Habbo"],["s","2087","gothic_chair*2","56746","0","1","1","#ffffff,#ff9900,#ffffff,#ff9900","Gothic Chair Saffron","The dark side of Habbo"],["s","2088","gothic_sofa*2","56746","0","2","1","#ffffff,#ff9900,#ffffff,#ffffff,#ff9900,#ffffff","Gothic Sofa Saffron","The dark side of Habbo"],["s","2089","gothic_stool*2","56746","0","1","1","#ffffff,#ff9900,#ffffff","Gothic Stool Saffron","The dark side of Habbo"],["s","2090","gothic_chair*3","56746","0","1","1","#ffffff,#dd0000,#ffffff,#dd0000","Gothic Chair Red","The dark side of Habbo"],["s","2091","gothic_sofa*3","56746","0","2","1","#ffffff,#dd0000,#ffffff,#ffffff,#dd0000,#ffffff","Gothic Sofa Red","The dark side of Habbo"],["s","2092","gothic_stool*3","56746","0","1","1","#ffffff,#dd0000,#ffffff","Gothic Stool Red","The dark side of Habbo"],["s","2093","gothic_chair*4","56746","0","1","1","#ffffff,#555555,#ffffff,#555555","Black Gothic Chair","The dark side of Habbo"],["s","2094","gothic_sofa*4","56746","0","2","1","#ffffff,#555555,#ffffff,#ffffff,#555555,#ffffff","Black Gothic Sofa","The dark side of Habbo"],["s","2095","gothic_stool*4","56746","0","1","1","#ffffff,#555555,#ffffff","Black Gothic Stool","The dark side of Habbo"],["s","2096","gothic_chair*5","56746","0","1","1","#ffffff,#666600,#ffffff,#666600","Gothic Chair Green","The dark side of Habbo"],["s","2097","gothic_sofa*5","56746","0","2","1","#ffffff,#666600,#ffffff,#ffffff,#666600,#ffffff","Gothic Sofa Green","The dark side of Habbo"],["s","2098","gothic_stool*5","56746","0","1","1","#ffffff,#666600,#ffffff","Gothic Stool Green","The dark side of Habbo"],["s","2099","gothic_chair*6","56746","0","1","1","#ffffff,#336666,#ffffff,#336666","Gothic Chair Blue","The dark side of Habbo"],["s","2100","gothic_sofa*6","56746","0","2","1","#ffffff,#336666,#ffffff,#ffffff,#336666,#ffffff","Gothic Sofa Blue","The dark side of Habbo"],["s","2101","gothic_stool*6","56746","0","1","1","#ffffff,#336666,#ffffff","Gothic Stool Blue","The dark side of Habbo"],["s","255","gothic_carpet","804","0","2","4","","Cobbled Path","The path less travelled"],["s","256","gothic_carpet2","1522","0","2","4","","Dungeon Floor","What lies beneath?"],["s","257","goth_table","437","0","1","5","0,0,0","Gothic table","The dark side of Habbo"],["s","258","gothrailing","1272","0","2","1","0,0,0","Gothic Railing","The dark side of Habbo"],["i","259","torch","13603","","","","","Gothic Torch","The dark side of Habbo"],["i","260","gothicfountain","13603","","","","","Gothic Ectoplasm Fountain","Not suitable for drinking!"],["s","261","gothiccandelabra","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Gothic Candelabra","The dark side of Habbo"],["s","262","gothgate","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF","Gothic Portcullis","The dark side of Habbo"],["i","263","industrialfan","13603","","","","","Industrial Turbine","Powerful and resilient"],["s","264","grunge_barrel","13603","0","1","1","","Flaming Barrel","Beacon of light!"],["s","265","grunge_bench","4134","0","3","1","","Bench","Laid back seating"],["s","266","grunge_candle","13603","0","1","1","","Candle Box","Late night debate"],["s","267","grunge_chair","11385","0","1","1","","Grunge Chair","Alternative chair for alternative people"],["s","268","grunge_mattress","2818","0","3","1","","Grunge Mattress","Beats sleeping on the floor!"],["s","269","grunge_radiator","2818","2","1","1","","Radiator","Started cool but now it's hot!"],["s","270","grunge_shelf","13144","0","3","1","","Grunge Bookshelf","Scrap books and photo albums"],["s","271","grunge_sign","2818","2","1","1","","Road Sign","Bought legitimately from an M1 cafe."],["s","272","grunge_table","2818","0","2","2","","Grunge Table","Students of the round table!"],["s","273","CF_1_coin_bronze","986","0","1","1","0,0,0","Bronze Coin","Worth 1 Credits"],["s","274","CF_5_coin_silver","986","0","1","1","0,0,0","Silver Coin","Worth 5 Credits"],["s","275","CF_10_coin_gold","986","0","1","1","0,0,0","Gold Coin","Worth 10 Credits"],["s","276","CF_20_moneybag","986","0","1","1","0,0,0","Sack of Credits","Worth 20 Credits"],["s","277","CF_50_goldbar","986","0","1","1","0,0,0","Gold Bar","Worth 50 Credits"],["s","278","CFC_10_coin_bronze","986","0","1","1","0,0,0","Bronze Coin (China)","Worth 10 Credits"],["s","279","CFC_50_coin_silver","986","0","1","1","0,0,0","Silver Coin (China)","Worth 50 Credits"],["s","280","CFC_100_coin_gold","986","0","1","1","0,0,0","Gold Coin (China)","Worth 100 Credits"],["s","281","CFC_200_moneybag","986","0","1","1","0,0,0","Sack of Credits (China)","Worth 200 Credits"],["s","282","CFC_500_goldbar","986","0","1","1","0,0,0","Gold Bar (China)","Worth 500 Credits"],["s","283","habbowood_chair","1821","0","1","1","","Director's Chair","Exclusively for Directors"],["s","284","rope_divider","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF","Rope Divider","Rope Divider"],["s","285","spotlight","13603","0","1","1","","Habbowood Spotlight","For the star of the show"],["s","286","theatre_seat","13603","2","1","1","#FFFFFF,#FFFFFF","Deluxe Theatre Chair","For Lazy boys and girls!"],["s","287","rare_icecream_campaign","13603","2","1","1","","Rare icecream white","Basic model"],["i","288","habw_mirror","13603","","","","","Habbowood Mirror","Star of the show!"],["s","289","tile_stella","3438","0","1","1","","Star Tile","10% off the walk of fame!"],["s","290","chair_norja","1272","0","1","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Chair","Sleek and chic for each cheek"],["s","291","couch_norja","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#F7EBBC,#F7EBBC,#F7EBBC,#F7EBBC","Bench","Two can perch comfortably"],["s","292","table_norja_med","2429","0","2","2","#ffffff,#F7EBBC","Coffee Table","Elegance embodied"],["s","293","shelves_norja","1272","0","1","1","#ffffff,#F7EBBC","Bookcase","For nic naks and art deco books"],["s","294","soft_sofachair_norja","10684","0","1","1","#ffffff,#F7EBBC,#F7EBBC","iced sofachair","Soft iced sofachair"],["s","295","soft_sofa_norja","10684","0","2","1","#ffffff,#F7EBBC,#ffffff,#F7EBBC,#F7EBBC,#F7EBBC","iced sofa","A soft iced sofa"],["s","296","divider_nor2","10684","0","2","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Ice Bar-Desk","Strong, yet soft looking"],["s","297","divider_nor1","10684","0","1","1","#ffffff,#F7EBBC","Ice Corner","Looks squishy, but isn't"],["s","298","divider_nor3","15444","0","1","1","#FFFFFF,#FFFFFF,#F7EBBC,#F7EBBC","Door (Lockable)","Do go through..."],["s","299","divider_nor4","13603","0","2","1","#FFFFFF,#FFFFFF,#F7EBBC,#F7EBBC,#F7EBBC,#F7EBBC","Plain Iced Auto Shutter","Habbos, roll out!"],["s","300","divider_nor5","13603","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC","Plain Iced Angle","Cool cornering for your crib y0!"],["s","301","jp_bamboo","1821","0","2","2","","Bamboo Forest","Watch out for pandas!"],["s","302","jp_pillow","1821","0","1","1","","Pillow Chair","Comfy and classical"],["s","303","jp_irori","13603","0","2","2","","Irori","Traditional heating and eating"],["s","304","jp_tatami","1821","0","2","2","","Small Tatami Mat","Shoes off please"],["s","305","jp_tatami2","6035","0","2","4","","Large Tatami Mat","Shoes off please"],["s","306","jp_lantern","13603","0","1","1","","Japanese Lantern","For a mellow Eastern glow"],["s","307","jp_drawer","13603","0","1","1","","Japanese Drawer","Spiritual home for odds and ends"],["i","308","jp_ninjastars","2116","","","","","Ninja Stars","Not a frisbee"],["i","309","jp_sheet1","4638","","","","","Kakejiku Ziritsu","Japanese Kakejiku"],["i","310","jp_sheet2","4638","","","","","Kakejiku Ninjya","Japanese Kakejiku"],["i","311","jp_sheet3","4638","","","","","Kakejiku Hokusai","Japanese Kakejiku"],["s","312","jp_tray1","4638","0","1","1","","Sushi Maguro","Sushi made with tuna"],["s","313","jp_tray2","4638","0","1","1","","Sushi Ika","Sushi made with squid"],["s","314","jp_tray3","4638","0","1","1","","Sushi Ikura","Sushi made with caviar"],["s","315","jp_tray4","4638","0","1","1","","Sushi Uni","Sushi made with sea urchin"],["s","316","jp_tray5","4638","0","1","1","","Sushi Tamago","Sushi made with egg"],["s","317","jp_tray6","4638","0","1","1","","Sushi Kohada","Sushi made with mackerel"],["s","318","bed_armas_two","11385","0","2","3","0,0,0","Double Bed","King-sized pine comfort"],["s","319","bed_armas_one","437","0","1","3","0,0,0","Single Bed","Rustic charm for one"],["s","320","fireplace_armas","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF","Fireplace","Authentic, real flame fire"],["s","321","bartable_armas","11385","0","1","3","","Bardesk","Bar-Style Table - essential for extra guests"],["s","322","table_armas","11385","0","2","2","0,0,0","Dining Table","For informal dining"],["s","323","bench_armas","11385","0","2","1","0,0,0","Bench","To complete the dining set"],["s","324","divider_arm3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Gate (lockable)","Knock, knock..."],["s","325","divider_arm1","437","0","1","1","0,0,0","Corner plinth","Good solid wood"],["s","326","divider_arm2","437","0","2","1","0,0,0","Room divider","I wooden go there"],["s","327","shelves_armas","437","0","2","1","0,0,0","Bookcase","For all those fire-side stories"],["s","328","bar_armas","13603","2","1","1","","Barrel Minibar","It's a barrel of laughs and a great talking point"],["s","329","bar_chair_armas","437","0","1","1","","Barrel Stool","The ultimate recycled furniture"],["s","330","lamp_armas","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Table Lamp","Ambient lighting is essential"],["s","331","lamp2_armas","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Lodge Candle","Wax lyrical with some old-world charm"],["s","332","small_table_armas","650","0","1","1","0,0,0","Occasional Table","Practical and beautiful"],["s","333","small_chair_armas","437","0","1","1","0,0,0","Stool","Rustic charm at it's best"],["s","334","bed_polyfon","1272","0","2","3","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Double Bed","Give yourself space to stretch out"],["s","335","bed_polyfon_one","3987","0","1","3","#ffffff,#ffffff,#ffffff,#ABD0D2,#ABD0D2","Single Bed","Cot of the artistic"],["s","336","fireplace_polyfon","13603","2","2","1","#FFFFFF,#FFFFFF,#FFFFFF","Fireplace","Comfort in stainless steel"],["s","337","sofa_polyfon","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ABD0D2,#ABD0D2,#ABD0D2,#ABD0D2","Two-seater Sofa","Comfort for stylish couples"],["s","338","sofachair_polyfon","1272","0","1","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Armchair","Soft and comfortable"],["s","339","bar_polyfon","13603","2","1","1","","Mini-Bar","You naughty Habbo!"],["s","340","divider_poly3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2","Hatch (Lockable)","All bars should have one"],["s","341","bardesk_polyfon","11385","0","2","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Bar/desk","Perfect for work or play"],["s","342","bardeskcorner_polyfon","11385","0","1","1","#ffffff,#ABD0D2","Corner Cabinet/Desk","Tuck it away"],["s","343","chair_polyfon","11385","0","1","1","0,0,0","Dining Chair","Dining Chair"],["s","344","table_polyfon","11385","0","2","2","","Large Coffee Table","For larger gatherings"],["s","345","table_polyfon_med","11385","0","2","2","0,0,0","Large Coffee Table","For larger gatherings"],["s","346","table_polyfon_small","437","0","2","2","0,0,0","Small Coffee Table","For serving a stylish latte"],["s","347","smooth_table_polyfon","11385","0","2","2","","Large Dining Table","For larger gatherings"],["s","348","stand_polyfon_z","650","0","1","1","0,0,0","Shelf","Tidy up"],["s","349","shelves_polyfon","11385","0","2","1","0,0,0","Bookcase","For the arty pad"],["s","356","giftflowers","13144","2","1","1","0,0,0","Vase of Flowers","Guaranteed to stay fresh"],["s","357","plant_rose","2429","0","1","1","","Cut Roses","Sleek and chic"],["s","358","plant_sunflower","2429","0","1","1","","Cut Sunflower","For happy Habbos"],["s","359","plant_yukka","2429","0","1","1","","Yukka Plant","Easy to care for"],["s","360","plant_pineapple","437","0","1","1","","Pineapple Plant","Needs loving glances"],["s","361","plant_bonsai","2429","0","1","1","","Bonsai Tree","You can be sure it lives"],["s","362","plant_big_cactus","11385","0","1","1","","Mature Cactus","Habbo Dreams monster in hiding! Shhhh"],["s","363","plant_fruittree","2429","0","1","1","","Fruit Tree","Great yield and sweet fruit"],["s","364","plant_small_cactus","2429","0","1","1","","Small Cactus","Even less watering than the real world"],["s","365","plant_maze","13144","2","2","1","","Maze Shrubbery","Build your maze!"],["s","366","plant_mazegate","13603","2","2","1","","Maze Shrubbery Gate","Did we make it?"],["s","367","plant_bulrush","804","0","1","1","","Bulrush","Ideal for the riverside"],["s","368","chair_plasto*16","11385","0","1","1","#ffffff,#CC3399,#ffffff,#CC3399","Chair","Hip plastic furniture"],["s","369","chair_plasto*15","11385","0","1","1","#ffffff,#FF97BA,#ffffff,#FF97BA","Chair","Hip plastic furniture"],["s","370","chair_plasto*5","11385","0","1","1","#ffffff,#54ca00,#ffffff,#54ca00","Chair","Hip plastic furniture"],["s","371","chair_plasto","11385","0","1","1","0,0,0","Chair","Hip plastic furniture"],["s","372","chair_plasto*8","11385","0","1","1","#ffffff,#c38d1a,#ffffff,#c38d1a","Chair","Hip plastic furniture"],["s","373","chair_plasto*7","11385","0","1","1","#ffffff,#ff6d00,#ffffff,#ff6d00","Chair","Hip plastic furniture"],["s","374","chair_plasto*1","11385","0","1","1","#ffffff,#ff1f08,#ffffff,#ff1f08","Chair","Hip plastic furniture"],["s","375","chair_plasto*4","11385","0","1","1","#ffffff,#ccddff,#ffffff,#ccddff","Chair","Hip plastic furniture"],["s","376","chair_plasto*6","11385","0","1","1","#ffffff,#3444ff,#ffffff,#3444ff","Chair","Hip plastic furniture"],["s","377","chair_plasto*3","11385","0","1","1","#ffffff,#ffee00,#ffffff,#ffee00","Chair","Hip plastic furniture"],["s","378","chair_plasto*2","11385","0","1","1","#ffffff,#99DCCC,#ffffff,#99DCCc","Chair","Hip plastic furniture"],["s","379","table_plasto_square*15","11385","0","1","1","#ffffff,#FF97BA","Occasional Table","Hip plastic furniture"],["s","380","table_plasto_square*14","11385","0","1","1","#ffffff,#CC3399","Occasional Table","Hip plastic furniture"],["s","381","table_plasto_square*1","11385","0","1","1","#ffffff,#ff1f08","Occasional Table","Hip plastic furniture"],["s","382","table_plasto_square*7","11385","0","1","1","#ffffff,#ff6d00","Square Dining Table","Hip plastic furniture"],["s","383","table_plasto_square","11385","0","1","1","0,0,0","Occasional Table","Hip plastic furniture"],["s","384","table_plasto_square*2","11385","0","1","1","#ffffff,#99DCCC","Round Dining Table","Hip plastic furniture"],["s","385","table_plasto_square*4","11385","0","1","1","#ffffff,#ccddff","Square Dining Table","Hip plastic furniture"],["s","386","table_plasto_square*6","11385","0","1","1","#ffffff,#3444ff","Square Dining Table","Hip plastic furniture"],["s","387","table_plasto_square*3","11385","0","1","1","#ffffff,#ffee00","Square Dining Table","Hip plastic furniture"],["s","388","table_plasto_square*9","11385","0","1","1","#ffffff,#533e10","Square Dining Table","Hip plastic furniture"],["s","389","table_plasto_square*5","11385","0","1","1","#ffffff,#54ca00","Square Dining Table","Hip plastic furniture"],["s","390","table_plasto_square*8","11385","0","1","1","#ffffff,#c38d1a","Square Dining Table","Hip plastic furniture"],["s","391","table_plasto_round*15","11385","0","2","2","#ffffff,#FF97BA","Occasional Table","Hip plastic furniture"],["s","392","table_plasto_round*14","11385","0","2","2","#ffffff,#CC3399","Occasional Table","Hip plastic furniture"],["s","393","table_plasto_round*7","11385","0","2","2","#ffffff,#ff6d00","Round Dining Table","Hip plastic furniture"],["s","394","table_plasto_round*1","11385","0","2","2","#ffffff,#ff1f08","Round Dining Table","Hip plastic furniture"],["s","395","table_plasto_round*2","11385","0","2","2","#ffffff,#99DCCC","Round Dining Table","Hip plastic furniture"],["s","396","table_plasto_round*4","11385","0","2","2","#ffffff,#ccddff","Square Dining Table","Hip plastic furniture"],["s","397","table_plasto_round*6","11385","0","2","2","#ffffff,#3444ff","Round Dining Table","Hip plastic furniture"],["s","398","table_plasto_round*3","11385","0","2","2","#ffffff,#ffee00","Round Dining Table","Hip plastic furniture?"],["s","399","table_plasto_round*9","11385","0","2","2","#ffffff,#533e10","Round Dining Table","Hip plastic furniture"],["s","400","table_plasto_round","11385","0","2","2","0,0,0","Round Dining Table","Hip plastic furniture"],["s","401","table_plasto_round*5","11385","0","2","2","#ffffff,#54ca00","Round Dining Table","Hip plastic furniture"],["s","402","table_plasto_round*8","11385","0","2","2","#ffffff,#c38d1a","Round Dining Table","Hip plastic furniture"],["s","403","table_plasto_bigsquare*15","11385","0","2","2","#ffffff,#FF97BA","Occasional Table","Hip plastic furniture"],["s","404","table_plasto_bigsquare*14","11385","0","2","2","#ffffff,#CC3399","Occasional Table","Hip plastic furniture"],["s","405","table_plasto_bigsquare*7","11385","0","2","2","#ffffff,#ff6d00","Square Dining Table","Hip plastic furniture"],["s","406","table_plasto_bigsquare*1","11385","0","2","2","#ffffff,#ff1f08","Square Dining Table","Hip plastic furniture"],["s","407","table_plasto_bigsquare*2","11385","0","2","2","#ffffff,#99DCCC","Square Dining Table","Hip plastic furniture"],["s","408","table_plasto_bigsquare","11385","0","2","2","0,0,0","Square Dining Table","Hip plastic furniture"],["s","409","table_plasto_bigsquare*8","11385","0","2","2","#ffffff,#c38d1a","Square Dining Table","Hip plastic furniture"],["s","410","table_plasto_bigsquare*5","11385","0","2","2","#ffffff,#54ca00","Square Dining Table","Hip plastic furniture"],["s","411","table_plasto_bigsquare*9","11385","0","2","2","#ffffff,#533e10","Square Dining Table","Hip plastic furniture"],["s","412","table_plasto_bigsquare*3","11385","0","2","2","#ffffff,#ffee00","Square Dining Table","Hip plastic furniture"],["s","413","table_plasto_bigsquare*6","11385","0","2","2","#ffffff,#3444ff","Square Dining Table","Hip plastic furniture"],["s","414","table_plasto_bigsquare*4","11385","0","2","2","#ffffff,#ccddff","Square Dining Table","Hip plastic furniture"],["s","415","table_plasto_4leg*6","11385","0","2","2","#ffffff,#3444ff","Occasional table Table","Hip plastic furniture"],["s","416","table_plasto_4leg*1","11385","0","2","2","#ffffff,#ff1f08","Square Dining Table","Hip plastic furniture"],["s","417","table_plasto_4leg*3","11385","0","2","2","#ffffff,#ffee00","Round Dining Table","Hip plastic furniture"],["s","418","table_plasto_4leg*9","11385","0","2","2","#ffffff,#533e10","Occasional Table","Hip plastic furniture"],["s","419","table_plasto_4leg","11385","0","2","2","0,0,0","Occasional Table","Hip plastic furniture"],["s","420","table_plasto_4leg*5","11385","0","2","2","#ffffff,#54ca00","Occasional Table","Hip plastic furniture"],["s","421","table_plasto_4leg*2","11385","0","2","2","#ffffff,#99DCCC","Occasional Table","Hip plastic furniture"],["s","422","table_plasto_4leg*8","11385","0","2","2","#ffffff,#c38d1a","Occasional Table","Hip plastic furniture"],["s","423","table_plasto_4leg*7","11385","0","2","2","#ffffff,#ff6d00","Occasional table","Hip plastic furniture"],["s","424","table_plasto_4leg*10","11385","0","2","2","#ffffff,#ccddff","Occasional Table","Hip plastic furniture"],["s","425","table_plasto_4leg*15","11385","0","2","2","#ffffff,#FF97BA","Occasional Table","Hip plastic furniture"],["s","426","table_plasto_4leg*16","11385","0","2","2","#ffffff,#CC3399","Occasional Table","Hip plastic furniture"],["s","427","chair_plasty","11385","0","1","1","0,0,0","Plastic Pod Chair","Hip plastic furniture"],["s","428","chair_plasty*1","11385","0","1","1","#ffffff,#8EB5D1,#ffffff,#8EB5D1","Plastic Pod Chair","Hip plastic furniture"],["s","429","chair_plasty*2","11385","0","1","1","#ffffff,#ff9900,#ffffff,#ff9900","Plastic Pod Chair","Hip plastic furniture"],["s","430","chair_plasty*3","11385","0","1","1","#ffffff,#ff2200,#ffffff,#ff2200","Plastic Pod Chair","Hip plastic furniture"],["s","431","chair_plasty*4","11385","0","1","1","#ffffff,#00cc00,#ffffff,#00cc00","Plastic Pod Chair","Hip plastic furniture"],["s","432","chair_plasty*5","11385","0","1","1","#ffffff,#3444ff,#ffffff,#3444ff","Plastic Pod Chair","Hip plastic furniture"],["s","433","chair_plasty*6","11385","0","1","1","#ffffff,#ffee00,#ffffff,#ffee00","Plastic Pod Chair","Hip plastic furniture"],["s","434","chair_plasty*7","11385","0","1","1","#ffffff,#99DCCc,#ffffff,#99DCCc","Plastic Pod Chair","Hip plastic furniture"],["s","435","chair_plasty*8","11385","0","1","1","#ffffff,#c38d1a,#ffffff,#c38d1a","Plastic Pod Chair","Hip plastic furniture"],["s","436","chair_plasty*9","11385","0","1","1","#ffffff,#533e10,#ffffff,#533e10","Plastic Pod Chair","Hip plastic furniture"],["s","437","chair_plasty*10","11385","0","1","1","#ffffff,#CC3399,#ffffff,#CC3399","Plastic Pod Chair","Hip plastic furniture"],["s","438","chair_plasty*11","11385","0","1","1","#ffffff,#FF97BA,#ffffff,#FF97BA","Plastic Pod Chair","Hip plastic furniture"],["s","439","chair_plasto*9","11385","0","1","1","#ffffff,#533e10,#ffffff,#533e10","Chair","Hip plastic furniture"],["s","440","shelves_basic","11385","0","2","1","0,0,0","Pura Shelves","Pura series 404 shelves"],["s","441","bar_basic","13603","2","1","1","","A Pura Minibar","A pura series 300 minibar"],["s","442","fridge","13603","2","1","1","#FFFFFF,#FFFFFF","Pura Refridgerator","Keep cool with a chilled snack or drink"],["s","443","lamp_basic","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Pura Lamp","Switch on the atmosphere with this sophisticated light"],["s","444","bed_budgetb","2116","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Double Bed","Sweet dreams for two"],["s","445","bed_budgetb_one","2116","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Single Bed","All you need for a good night's kip"],["s","446","bed_budget","9559","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","Pura Bed","Comfortable, affordable!"],["s","447","bed_budget_one","9559","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","bed_budget_one","aquamarine"],["s","448","bed_budgetb","2116","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Double Bed","Sweet dreams for two"],["s","449","bed_budgetb_one","2116","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Single Bed","All you need for a good night's kip"],["s","450","bed_budget","9559","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","Pura Bed","Comfortable, affordable!"],["s","451","bed_budget_one","9559","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","bed_budget_one","aquamarine"],["s","452","bed_budgetb","2116","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Double Bed","Sweet dreams for two"],["s","453","bed_budgetb_one","2116","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Single Bed","All you need for a good night's kip"],["s","454","bed_budget","9559","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","Pura Bed","Comfortable, affordable!"],["s","455","bed_budget_one","9559","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","bed_budget_one","aquamarine"],["s","456","bed_budgetb","2116","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Double Bed","Sweet dreams for two"],["s","457","bed_budgetb_one","2116","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Single Bed","All you need for a good night's kip"],["s","458","bed_budget","9559","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","Pura Bed","Comfortable, affordable!"],["s","459","bed_budget_one","9559","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","bed_budget_one","aquamarine"],["s","460","bed_budgetb","2116","0","2","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Double Bed","Sweet dreams for two"],["s","461","bed_budgetb_one","2116","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Plain Single Bed","All you need for a good night's kip"],["s","462","rclr_sofa","2116","0","2","1","","Polar Sofa","Snuggle up together"],["s","463","rclr_chair","1522","0","1","1","","Palm Chair","Watch out for coconuts"],["s","464","rclr_garden","13603","0","1","3","","Water Garden","Self watering"],["s","465","queue_tile1","11385","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Quest Roller","The power of movement"],["s","466","queue_tile1*1","11385","0","1","1","#ffffff,#FF7C98,#ffffff,#ffffff","Pink Habbo Roller","The power of movement"],["s","467","queue_tile1*2","11385","0","1","1","#ffffff,#FF3333,#ffffff,#ffffff","Red Habbo Roller","The power of movement"],["s","468","queue_tile1*3","11385","0","1","1","#ffffff,#6ED0A7,#ffffff,#ffffff","Aqua Habbo Roller","The power of movement"],["s","469","queue_tile1*4","11385","0","1","1","#ffffff,#FFAA2B,#ffffff,#ffffff","Gold Habbo Roller","The power of movement"],["s","470","queue_tile1*5","11385","0","1","1","#ffffff,#555A37,#ffffff,#ffffff","Black Habbo Roller","The power of movement"],["s","471","queue_tile1*6","11385","0","1","1","#ffffff,#A2E8FA,#ffffff,#ffffff","Blue Habbo Roller","The power of movement"],["s","472","queue_tile1*7","11385","0","1","1","#ffffff,#FC5AFF,#ffffff,#ffffff","Purple Habbo Roller","The power of movement"],["s","473","queue_tile1*8","11385","0","1","1","#ffffff,#1E8AA5,#ffffff,#ffffff","Navy Habbo Roller","The power of movement"],["s","474","queue_tile1*9","11385","0","1","1","#ffffff,#9AFF60,#ffffff,#ffffff","Green Habbo Roller","The power of movement"],["s","475","grand_piano*1","13603","0","2","2","#FFFFFF,#FF8B8B","Rose Quartz Piano Stool","Chopin's revolutionary instrument"],["s","476","romantique_pianochair*1","13144","0","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Piano Stool","Here sat the legend of 1900"],["s","477","romantique_divan*1","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FF8B8B","Chaise-Longue","Recline in continental Rose Quartz comfort"],["s","478","romantique_chair*1","13144","0","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Chair","Elegant seating for elegant Habbos"],["s","479","romantique_divider*1","3438","0","2","1","#FF8B8B,#FF8B8B,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Rose Quartz Screen","Beauty lies within"],["s","480","romantique_smalltabl*1","13144","2","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Tray Table","Every tray needs a table..."],["i","481","wallmirror","1522","","","","","Wallmirror","Mirror, mirror on the wall..."],["s","2145","romantique_tray1","13144","2","1","1","","Romantique Tray","Breakfast is served!"],["s","482","romantique_tray2","13144","2","1","1","","Romantique Treats Tray","Time to celebrate!"],["s","483","rom_lamp","13603","0","1","1","","Crystal Lamp","Light up your life"],["s","484","romantique_mirrortabl","15444","2","1","1","","Dressing Table","Get ready for your big date"],["s","485","romantique_clock","13603","0","1","1","","Grandfather's Clock","The most Romantic tick-tock ever!"],["s","486","carpet_standard","11385","0","3","5","0,0,0","Floor rug","Available in a variety of colours"],["s","487","carpet_standard*a","11385","0","3","5","#55AC00,#55AC00,#55AC00","Floor Rug","Available in a variety of colours"],["s","488","carpet_standard*b","11385","0","3","5","#336666,#336666,#336666","Floor Rug","Available in a variety of colours"],["s","489","carpet_standard*1","11385","0","3","5","#ff1f08","Floor Rug","Available in a variety of colours"],["s","490","carpet_standard*2","11385","0","3","5","#99DCCC","Floor Rug","Available in a variety of colours"],["s","491","carpet_standard*3","11385","0","3","5","#ffee00","Floor Rug","Available in a variety of colours"],["s","492","carpet_standard*4","11385","0","3","5","#ccddff","Floor Rug","Available in a variety of colours"],["s","493","carpet_standard*5","11385","0","3","5","#ddccff","Floor Rug","Available in a variety of colours"],["s","494","carpet_standard*6","11385","0","3","5","#777777","Floor Rug","Available in a variety of colours"],["s","495","carpet_standard*7","11385","0","3","5","#99CCFF,#99CCFF,#99CCFF","Floor Rug","Available in a variety of colours"],["s","496","carpet_standard*8","11385","0","3","5","#999966,#999966,#999966","Floor Rug","Available in a variety of colours"],["s","497","carpet_soft","2818","0","2","4","","Soft Wool Rug","Soft Wool Rug"],["s","498","carpet_soft*1","2818","0","2","4","#CC3333","Soft Wool Rug","Soft Wool Rug"],["s","499","carpet_soft*2","2818","0","2","4","#66FFFF","Soft Wool Rug","Soft Wool Rug"],["s","500","carpet_soft*3","2818","0","2","4","#FFCC99","Soft Wool Rug","Soft Wool Rug"],["s","501","carpet_soft*4","2818","0","2","4","#FFCCFF","Soft Wool Rug","Soft Wool Rug"],["s","502","carpet_soft*5","2818","0","2","4","#FFFF66","Soft Wool Rug","Soft Wool Rug"],["s","503","carpet_soft*6","2818","0","2","4","#669933","Soft Wool Rug","Soft Wool Rug"],["s","504","doormat_love","650","0","1","1","0,0,0","Doormat","Welcome Habbos in style"],["s","505","doormat_plain","3438","0","1","1","0,0,0","Doormat","Available in a variety of colours"],["s","506","doormat_plain*1","3438","0","1","1","#ff1f08","Doormat","Available in a variety of colours"],["s","507","doormat_plain*2","3438","0","1","1","#99DCCC","Doormat","Available in a variety of colours"],["s","508","doormat_plain*3","3438","0","1","1","#ffee00","Doormat","Available in a variety of colours"],["s","509","doormat_plain*4","3438","0","1","1","#ccddff","Doormat","Available in a variety of colours"],["s","510","doormat_plain*5","3438","0","1","1","#ddccff","Doormat","Available in a variety of colours"],["s","511","doormat_plain*6","3438","0","1","1","#777777","Doormat","Available in a variety of colours"],["s","512","carpet_armas","437","0","2","4","0,0,0","Hand-Woven Rug","Adds instant warmth"],["s","513","carpet_polar","10278","0","2","3","#ffffff,#ffffff,#ffffff","Faux-Fur Bear Rug","For cuddling up on"],["s","514","carpet_polar*2","10278","0","2","3","#ccddff,#ccddff,#ffffff","Blue Bear Rug","Snuggle up on a Funky bear rug..."],["s","515","carpet_polar*3","10278","0","2","3","#ffee99,#ffee99,#ffffff","Yellow Bear Rug","Snuggle up on a Funky bear rug..."],["s","516","carpet_polar*4","10278","0","2","3","#ddffaa,#ddffaa,#ffffff","Green Bear Rug","Snuggle up on a Funky bear rug..."],["s","520","hockey_score","13144","2","1","1","0,0,0","Scoreboard","...for keeping your score"],["s","521","legotrophy","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Basketball Trophy","For the winning team"],["s","523","carpet_legocourt","437","0","3","3","0,0,0","Basketball Court","Line up your slam dunk"],["s","524","bench_lego","437","0","4","1","0,0,0","Team Bench","For your reserve players"],["s","525","footylamp","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Football Lamp","Can you kick it?"],["s","526","sporttrack1*1","437","0","2","2","#ffffff,#e4592d,#ffffff","Sport track straight","Let's get sporty!"],["s","527","sporttrack1*2","437","0","2","2","#ffffff,#62818b,#ffffff","Sport track straight asphalt","Let's get sporty!"],["s","528","sporttrack1*3","437","0","2","2","#ffffff,#5cb800,#ffffff","Sport track straight grass","Let's get sporty!"],["s","529","sporttrack2*1","3835","0","2","2","#ffffff,#e4592d,#ffffff","Sport corner tartan","Let's get sporty!"],["s","530","sporttrack2*2","3835","0","2","2","#ffffff,#62818b,#ffffff","Sport corner asphalt","Let's get sporty!"],["s","531","sporttrack2*3","3835","0","2","2","#ffffff,#5cb800,#ffffff","Sport corner grass","Let's get sporty!"],["s","532","sporttrack3*1","437","0","2","2","#ffffff,#e4592d,#ffffff","Sport goal tartan","Let's get sporty!"],["s","533","sporttrack3*2","437","0","2","2","#ffffff,#62818b,#ffffff","Sport goal asphalt","Let's get sporty!"],["s","534","sporttrack3*3","437","0","2","2","#ffffff,#5cb800,#ffffff","Sport goal grass","Let's get sporty!"],["s","535","door","13603","2","1","1","","Telephone Box","Dr Who?"],["s","536","doorC","13603","2","1","1","","Portaloo","In a hurry?"],["s","537","doorB","13603","2","1","1","","Wardrobe","Narnia this way!"],["s","538","teleport_door","13603","0","1","1","","Teleport Door","Magic doorway to anywhere!"],["s","539","sound_machine","1272","0","1","1","#FFFFFF,#FFFFFF,#828282,#FFFFFF","Sound Machine","Creating fancy sounds"],["s","540","sound_set_4","6035","0","1","1","","Ambient 1","Chilled out beats"],["s","541","sound_set_8","6035","0","1","1","","Ambient 2","Mellow electric grooves"],["s","542","sound_set_6","6035","0","1","1","","Ambient 3","Background ambience loops"],["s","543","sound_set_5","6035","0","1","1","","Ambient 4","The dark side of Habbo"],["s","544","sound_set_26","6035","0","1","1","","Groove 1","Bollywood Beats!"],["s","545","sound_set_27","6035","0","1","1","","Groove 2","Jingle Bells will never be the same..."],["s","546","sound_set_17","6035","0","1","1","","Groove 3","Jive's Alive!"],["s","547","sound_set_18","6035","0","1","1","","Groove 4","Listen while you tan"],["s","548","sound_set_3","6035","0","1","1","","Electronic 1","Chilled grooves"],["s","549","sound_set_9","6035","0","1","1","","Electronic 2","Mystical ambient soundscapes"],["s","550","jukebox*1","7053","2","1","1","#FFFFFF,#FFFFFF","Jukebox","For your Happy Days!"],["s","552","sound_set_46","6035","0","1","1","","Club 1","De bada bada bo!"],["s","553","sound_set_47","6035","0","1","1","","Club 2","Storm the UKCharts!"],["s","554","sound_set_48","6035","0","1","1","","Club 3","Sweet party beat"],["s","555","sound_set_49","6035","0","1","1","","Club 4","You will belong"],["s","556","sound_set_50","6035","0","1","1","","Club 5","The harder generation"],["s","557","sound_set_51","6035","0","1","1","","Club 6","Bop to the beat"],["s","2633","sound_set_52","6035","0","1","1","","Club 7","State of Trancehouse"],["s","558","sound_set_25","6035","0","1","1","","Dance 1","Actually, it's Partay!"],["s","559","sound_set_29","6035","0","1","1","","Dance 2","Electronic house"],["s","560","sound_set_31","6035","0","1","1","","Dance 3","House loops"],["s","561","sound_set_11","6035","0","1","1","","Dance 4","Music you can really sink your teeth into"],["s","562","sound_set_13","6035","0","1","1","","Dance 5","Let Music be the food of Habbo"],["s","563","sound_set_35","6035","0","1","1","","Dance 6","Groovelicious"],["s","564","jukebox*1","7053","2","1","1","#FFFFFF,#FFFFFF","Jukebox","For your Happy Days!"],["i","565","guitar_v","2818","","","","","V Guitar",""],["i","566","guitar_skull","2818","","","","","Skull Guitar",""],["s","567","sound_set_21","6035","0","1","1","","Rock 1","Headbanging riffs"],["s","568","sound_set_28","6035","0","1","1","","Rock 2","Head for the pit!"],["s","569","sound_set_33","6035","0","1","1","","Rock 3","Guitar solo set"],["s","570","sound_set_40","6035","0","1","1","","Rock 4","Dude? Cheese!"],["s","571","sound_set_34","6035","0","1","1","","Rock 5","For guitar heroes"],["s","572","sound_set_38","6035","0","1","1","","Rock 6","Rock and Roses!"],["s","573","sound_set_39","6035","0","1","1","","Rock 7","Rock with a roll"],["s","574","sound_set_41","6035","0","1","1","","Rock 8","Burning Riffs"],["s","575","jukebox*1","7053","2","1","1","#FFFFFF,#FFFFFF","Jukebox","For your Happy Days!"],["s","576","sound_set_1","6035","0","1","1","","Habbo Sounds 1","Get the party started!"],["s","577","sound_set_12","6035","0","1","1","","Habbo Sounds 2","Unusual as Standard"],["s","578","sound_set_2","6035","0","1","1","","Habbo Sounds 3","Get the party started!"],["s","579","sound_set_24","6035","0","1","1","","Habbo Sounds 4","It's all about the Pentiums, baby!"],["s","580","sound_set_43","6035","0","1","1","","SFX 1","Beware zombies!"],["s","581","sound_set_20","6035","0","1","1","","SFX 2","Musical heaven"],["s","582","sound_set_22","6035","0","1","1","","SFX 3","With a hamper full of sounds, not sarnies"],["s","583","sound_set_23","6035","0","1","1","","SFX 4","Don't be afraid of the dark"],["s","584","sound_set_7","6035","0","1","1","","SFX 5","Sound effects for Furni"],["s","585","sound_set_30","6035","0","1","1","","Instrumental 1","Moments in love"],["s","586","sound_set_32","6035","0","1","1","","Instrumental 2","Piano concert set"],["s","587","sound_set_36","6035","0","1","1","","Latin Love 1","For adult minded"],["s","588","sound_set_60","6035","0","1","1","","Latin Love 2","Love and affection!"],["s","589","sound_set_61","6035","0","1","1","","Latin Love 3","Straight from the heart"],["s","590","sound_set_55","6035","0","1","1","","RnB Grooves 1","Can you fill me in?"],["s","591","sound_set_56","6035","0","1","1","","RnB Grooves 2","Get down tonight!"],["s","592","sound_set_57","6035","0","1","1","","RnB Grooves 3","Feel the groove"],["s","593","sound_set_58","6035","0","1","1","","RnB Grooves 4","Sh-shake it!"],["s","594","sound_set_59","6035","0","1","1","","RnB Grooves 5","Urban break beats"],["s","595","sound_set_15","6035","0","1","1","","RnB Grooves 6","Unadulterated essentials"],["s","596","sound_set_10","6035","0","1","1","","Hip Hop Beats 1","Made from real Boy Bands!"],["s","597","sound_set_14","6035","0","1","1","","Hip Hop Beats 2","Rock them bodies"],["s","598","sound_set_16","6035","0","1","1","","Hip Hop Beats 3","Ferry, ferry good!"],["s","599","sound_set_19","6035","0","1","1","","Hip Hop Beats 4","Shake your body!"],["s","600","prizetrophy*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Classic trophy","Glittery gold"],["s","601","prizetrophy*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Classic trophy","Shiny silver"],["s","602","prizetrophy*3","7057","0","1","1","#ffffff,#ffffff,#996600","Classic trophy","Breathtaking bronze"],["s","603","prizetrophy2*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Duck trophy","Glittery gold"],["s","604","prizetrophy2*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Duck trophy","Shiny silver"],["s","605","prizetrophy2*3","7057","0","1","1","#ffffff,#ffffff,#996600","Duck trophy","Breathtaking bronze"],["s","606","prizetrophy3*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Globe trophy","Glittery gold"],["s","607","prizetrophy3*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Globe trophy","Shiny silver"],["s","608","prizetrophy3*3","7057","0","1","1","#ffffff,#ffffff,#996600","Globe trophy","Breathtaking bronze"],["s","609","prizetrophy4*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Fish trophy","Glittery gold"],["s","610","prizetrophy4*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Fish trophy","Shiny silver"],["s","611","prizetrophy4*3","7057","0","1","1","#ffffff,#ffffff,#996600","Fish trophy","Breathtaking bronze"],["s","612","prizetrophy5*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Duo trophy","Glittery gold"],["s","613","prizetrophy5*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Duo trophy","Shiny silver"],["s","614","prizetrophy5*3","7057","0","1","1","#ffffff,#ffffff,#996600","Duo trophy","Breathtaking bronze"],["s","615","prizetrophy6*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Champion trophy","Glittery gold"],["s","616","prizetrophy6*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Champion trophy","Shiny silver"],["s","617","prizetrophy6*3","7057","0","1","1","#ffffff,#ffffff,#996600","Champion trophy","Breathtaking bronze"],["s","618","prizetrophy8*1","7057","0","1","1","#FFFFFF,#FFFFFF,#FFDD3F","Bubble trophy","Glittery gold"],["s","619","prizetrophy9*1","7057","0","1","1","#FFFFFF,#FFFFFF,#FFDD3F","Champion trophy","Glittery gold"],["s","635","tree1","1272","0","1","1","0,0,0","Dead tree","Dead christmas tree"],["s","636","tree2","694","0","1","1","0,0,0","Dead Tree","Creates a spooky scene!"],["s","637","tree3","437","0","1","1","0,0,0","Christmas Tree 1","Any presents under it yet?"],["s","638","tree4","13603","0","1","1","#FFFFFF,#FFFFFF","Christmas Tree 2","Any presents under it yet?"],["s","639","tree5","13603","0","1","1","#FFFFFF,#FFFFFF","Christmas Tree 3","Any presents under it yet?"],["s","640","tree6","3438","0","1","1","","Flashy Christmas Tree","The future's bright!"],["s","641","triplecandle","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Electric Candles","No need to worry about wax drips"],["s","642","turkey","437","0","1","1","0,0,0","Roast Turkey","Where's the cranberry sauce?"],["s","643","house","437","0","1","1","0,0,0","Gingerbread House","Good enough to eat"],["s","644","house2","437","0","1","1","","Gingerbread House","Good enough to eat"],["s","645","pudding","437","0","1","1","0,0,0","Christmas Pudding","Will you get the lucky sixpence?"],["s","646","xmasduck","13144","2","1","1","0,0,0","Christmas Rubber Duck","A right Christmas quacker!"],["s","647","hyacinth1","437","2","1","1","0,0,0","Pink Hyacinth","Beautiful bulb"],["s","648","hyacinth2","437","2","1","1","0,0,0","Blue Hyacinth","Beautiful bulb"],["s","649","joulutahti","437","2","1","1","0,0,0","Poinsetta","Christmas in a pot"],["s","650","rcandle","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Red Candle","Xmas tea light"],["s","651","wcandle","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Candle","Xmas tea light"],["s","652","easterduck","13144","2","1","1","0,0,0","Wannabe bunny","Can you tell what it is yet?"],["s","653","birdie","13603","0","1","1","#FFFFFF,#FFFFFF","Pop-up Egg","Cheep (!) and cheerful"],["s","654","basket","13144","2","1","1","0,0,0","Basket Of Eggs","Eggs-actly what you want for Easter"],["s","655","bunny","437","0","1","1","0,0,0","Squidgy Bunny","Yours to cuddle up to"],["s","656","pumpkin","13603","0","1","1","#FFFFFF,#FFFFFF","Pumpkin Lamp","Cast a spooky glow"],["s","659","skullcandle","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Skull Candle Holder","Alas poor Yorrick..."],["s","662","deadduck","437","0","1","1","0,0,0","Dead Duck","Blood, but no guts"],["s","663","deadduck2","437","0","1","1","0,0,0","Dead Duck 2","Someone forgot to feed me..."],["s","664","deadduck3","437","0","1","1","0,0,0","Dead Duck 3","With added ectoplasm"],["s","667","ham2","437","0","1","1","0,0,0","Eaten Ham","Looks like you're too late!"],["s","668","habboween_crypt","13603","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Creepy Crypt","What lurks inside?"],["s","669","habboween_grass","2818","0","2","2","","Unholy Ground","Autumnal chills with each rotation!"],["s","670","hal_cauldron","13603","2","1","1","","Habboween Cauldron","Eye of Habbo and toe of Mod!"],["s","671","hal_grave","13603","2","1","1","","Haunted Grave","We're raising the dead!"],["s","672","heartsofa","1272","0","2","1","0,0,0","Heart Sofa","Perfect for snuggling up on"],["s","673","statue","437","0","1","1","0,0,0","Cupid Statue","Watch out for those arrows!"],["s","674","heart","13144","2","2","1","0,0,0","Giant Heart","Full of love"],["s","675","valeduck","437","0","1","1","0,0,0","Valentine's Duck","He's lovestruck"],["i","676","post.it.vd","13603","0","0","0","","Heart Stickies","Spread your love!"],["s","677","carpet_valentine","1522","0","2","7","","Red carpet","For making an appearance"],["i","678","val_heart","13758","","","","","Heart Light","Heartbroken... without your love!"],["s","679","plant_valentinerose*1","13603","0","1","1","#FFFFFF,#FF1E1E,#FFFFFF,#FFFFFF","Red Valentine's Rose","Secret admirer!"],["s","680","plant_valentinerose*2","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Valentine's Rose","For the purest love"],["s","681","plant_valentinerose*3","13603","0","1","1","#FFFFFF,#FFE61E,#FFFFFF,#FFFFFF","Yellow Valentine's Rose","Relight your passions"],["s","682","plant_valentinerose*4","13603","0","1","1","#FFFFFF,#FF78C8,#FFFFFF,#FFFFFF","Pink Valentine's Rose","Be mine!"],["s","683","plant_valentinerose*5","13603","0","1","1","#FFFFFF,#C828FF,#FFFFFF,#FFFFFF","Purple Valentine's Rose","Requires purple rain to flourish"],["s","684","sofa_silo*2","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#525252,#525252,#525252,#525252","Black Two-Seater Sofa","Cushioned, understated comfort"],["s","685","sofachair_silo*2","11385","0","1","1","#ffffff,#ffffff,#525252,#525252","Black Armchair","Large, but worth it"],["s","686","table_silo_small*2","1272","0","1","1","#ffffff,#525252","Black Occasional Table","For those random moments"],["s","687","divider_silo3*2","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#525252","Black Area Gate","Form following function"],["s","688","divider_silo1*2","11385","0","1","1","#ffffff,#525252","Black Corner Shelf","Neat and natty"],["s","689","chair_silo*2","11385","0","1","1","#ffffff,#ffffff,#525252,#525252","Black Dining Chair","Keep it simple"],["s","690","safe_silo*2","13603","2","1","1","#FFFFFF,#525252,#525252,#FFFFFF","Black Safe Minibar","Totally shatter-proof!"],["s","691","barchair_silo*2","1272","0","1","1","#ffffff,#525252","Black Bar Stool","Practical and convenient"],["s","692","table_silo_med*2","11385","0","2","2","#ffffff,#525252","Black Coffee Table","Wipe clean and unobtrusive"],["s","693","sofa_silo*3","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Two-Seater Sofa","Cushioned, understated comfort"],["s","694","sofachair_silo*3","11385","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Armchair","Large, but worth it"],["s","695","table_silo_small*3","1272","0","1","1","#ffffff,#ffffff","White Occasional Table","For those random moments"],["s","696","divider_silo3*3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Area Gate","Form following function"],["s","697","divider_silo1*3","11385","0","1","1","#ffffff,#ffffff","White Corner Shelf","Neat and natty"],["s","698","chair_silo*3","11385","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Dining Chair","Keep it simple"],["s","699","safe_silo*3","13603","2","1","1","#FFFFFF,#BFBFBF,#BFBFBF,#FFFFFF","White Safe Minibar","Totally shatter-proof!"],["s","700","barchair_silo*3","1272","0","1","1","#ffffff,#ffffff","White Bar Stool","Practical and convenient"],["s","701","table_silo_med*3","11385","0","2","2","#ffffff,#ffffff","White Coffee Table","Wipe clean and unobtrusive"],["s","702","sofa_silo*4","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#F7EBBC,#F7EBBC,#F7EBBC,#F7EBBC","Beige Area Sofa","Beige Area Sofa"],["s","703","sofachair_silo*4","11385","0","1","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Area Armchair","Large, but worth it"],["s","704","table_silo_small*4","1272","0","1","1","#ffffff,#F7EBBC","Beige Area Occasional Table","Beige Area Occasional Table"],["s","705","divider_silo3*4","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#F7EBBC","Beige Area Gate","Beige Area Gate"],["s","706","divider_silo1*4","11385","0","1","1","#ffffff,#F7EBBC","Beige Area Corner Shelf","Beige Area Corner Shelf"],["s","707","chair_silo*4","11385","0","1","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Silo Dining Chair","Beige Silo Dining Chair"],["s","708","safe_silo*4","13603","2","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#FFFFFF","Beige Safe Minibar","Totally shatter-proof!"],["s","709","barchair_silo*4","1272","0","1","1","#ffffff,#F7EBBC","Beige Bar Stool","Practical and convenient"],["s","710","table_silo_med*4","11385","0","2","2","#ffffff,#F7EBBC","Beige Area Coffee Table","Beige Area Coffee Table"],["s","711","sofa_silo*5","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#EE7EA4,#EE7EA4,#EE7EA4,#EE7EA4","Pink Area Sofa","Cushioned, understated comfort"],["s","712","sofachair_silo*5","11385","0","1","1","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Pink Area Armchair","Large, but worth it"],["s","713","table_silo_small*5","1272","0","1","1","#ffffff,#EE7EA4","Pink Area Occasional Table","Pink Area Occasional Table"],["s","714","divider_silo3*5","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#EE7EA4","Pink Area Gate","Pink Area Gate"],["s","715","divider_silo1*5","11385","0","1","1","#ffffff,#EE7EA4","Pink Area Corner Shelf","Pink Area Corner Shelf"],["s","716","chair_silo*5","11385","0","1","1","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Pink Silo Dining Chair","Pink Silo Dining Chair"],["s","717","safe_silo*5","13603","2","1","1","#FFFFFF,#EE7EA4,#EE7EA4,#FFFFFF","Pink Safe Minibar","Totally shatter-proof!"],["s","718","barchair_silo*5","1272","0","1","1","#ffffff,#ee7ea4","Pink Bar Stool","Practical and convenient"],["s","719","table_silo_med*5","11385","0","2","2","#ffffff,#EE7EA4","Pink Area Coffee Table","Pink Area Coffee Table"],["s","720","sofa_silo*6","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#5EAAF8,#5EAAF8,#5EAAF8,#5EAAF8","Blue Area Sofa","Cushioned, understated comfort"],["s","721","sofachair_silo*6","11385","0","1","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Area Armchair","Large, but worth it"],["s","722","table_silo_small*6","1272","0","1","1","#ffffff,#5EAAF8","Blue Area Occasional Table","Small and elegant"],["s","723","divider_silo3*6","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#5EAAF8","Blue Area Gate","Door (lockable)"],["s","724","divider_silo1*6","11385","0","1","1","#ffffff,#5EAAF8","Blue Area Corner Shelf","Tuck it away!"],["s","725","chair_silo*6","11385","0","1","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Area Dining Chair","Wooden dining chair"],["s","726","safe_silo*6","13603","2","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#FFFFFF","Blue Safe Minibar","Totally shatter-proof!"],["s","727","barchair_silo*6","1272","0","1","1","#ffffff,#5eaaf8","Blue Bar Stool","Take a perch!"],["s","728","table_silo_med*6","11385","0","2","2","#ffffff,#5EAAF8","Blue Area Coffee Table","Gather everyone round"],["s","729","sofa_silo*7","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#7CB135,#7CB135,#7CB135,#7CB135","Green Area Sofa","Cushioned, understated comfort"],["s","730","sofachair_silo*7","11385","0","1","1","#ffffff,#ffffff,#7CB135,#7CB135","Green Area Armchair","Large, but worth it"],["s","731","table_silo_small*7","1272","0","1","1","#ffffff,#7CB135","Green Area Occasional Table","Small and elegant"],["s","732","divider_silo3*7","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#7CB135","Green Area Gate","Door (lockable)"],["s","733","divider_silo1*7","11385","0","1","1","#ffffff,#7CB135","Green Area Corner Shelf","Tuck it away!"],["s","734","chair_silo*7","11385","0","1","1","#ffffff,#ffffff,#7CB135,#7CB135","Green Area Dining Chair","Wooden dining chair"],["s","735","safe_silo*7","13603","2","1","1","#FFFFFF,#7CB135,#7CB135,#FFFFFF","Green Safe Minibar","Totally shatter-proof!"],["s","736","barchair_silo*7","1272","0","1","1","#ffffff,#7cb135","Green Bar Stool","Take a perch!"],["s","737","table_silo_med*7","11385","0","2","2","#ffffff,#7CB135","Green Area Coffee Table","Gather everyone round"],["s","738","sofa_silo*8","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#FFD837,#FFD837,#FFD837,#FFD837","Yellow Two-Seater Sofa","Cushioned, understated comfort"],["s","739","sofachair_silo*8","11385","0","1","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Armchair","Large, but worth it"],["s","740","table_silo_small*8","1272","0","1","1","#ffffff,#FFD837","Yellow Occasional Table","For those random moments"],["s","741","divider_silo3*8","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFD837","Yellow Area Gate","Form following function"],["s","742","divider_silo1*8","11385","0","1","1","#ffffff,#FFD837","Yellow Corner Shelf","Neat and natty"],["s","743","chair_silo*8","11385","0","1","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Dining Chair","Keep it simple"],["s","744","safe_silo*8","13603","2","1","1","#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow Safe Minibar","Totally shatter-proof!"],["s","745","barchair_silo*8","1272","0","1","1","#ffffff,#ffd837","Yellow Bar Stool","Practical and convenient"],["s","746","table_silo_med*8","11385","0","2","2","#ffffff,#FFD837","Yellow Coffee Table","Wipe clean and unobtrusive"],["s","747","sofa_silo*9","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#E14218,#E14218,#E14218,#E14218","Red Area Sofa","Cushioned, understated comfort"],["s","748","sofachair_silo*9","11385","0","1","1","#ffffff,#ffffff,#E14218,#E14218","Red Area Armchair","Large, but worth it"],["s","749","table_silo_small*9","1272","0","1","1","#ffffff,#E14218","Red Area Occasional Table","Red Area Occasional Table"],["s","750","divider_silo3*9","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#E14218","Red Area Gate","Red Area Gate"],["s","751","divider_silo1*9","11385","0","1","1","#ffffff,#E14218","Red Area Corner Shelf","Tuck it away"],["s","752","chair_silo*9","11385","0","1","1","#ffffff,#ffffff,#E14218,#E14218","Red Area Dining Chair","Wooden dining chair"],["s","753","safe_silo*9","13603","2","1","1","#FFFFFF,#E14218,#E14218,#FFFFFF","Red Safe Minibar","Totally shatter-proof!"],["s","754","barchair_silo*9","1272","0","1","1","#ffffff,#e14218","Red Bar Stool","Practical and convenient"],["s","755","table_silo_med*9","11385","0","2","2","#ffffff,#E14218","Red Area Coffee Table","Red Area Coffee Table"],["s","756","chair_norja*2","1272","0","1","1","#ffffff,#ffffff,#525252,#525252","Black Iced Chair","Sleek and chic for each cheek"],["s","757","couch_norja*2","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#525252,#525252,#525252,#525252","Black Iced Bench","Two can perch comfortably"],["s","758","table_norja_med*2","2429","0","2","2","#ffffff,#525252","Black Iced Table","For larger gatherings"],["s","759","shelves_norja*2","1272","0","1","1","#ffffff,#525252","Black Iced Bookcase","For nic naks and art deco books"],["s","760","soft_sofachair_norja*2","10684","0","1","1","#ffffff,#525252,#525252","Black Iced Sofachair","Black Iced Sofachair"],["s","761","soft_sofa_norja*2","10684","0","2","1","#ffffff,#525252,#ffffff,#525252,#525252,#525252","Black Iced Sofa","Black Iced Sofa"],["s","762","divider_nor2*2","10684","0","2","1","#ffffff,#ffffff,#525252,#525252","Black Iced Bar-Desk","Soft but sturdy"],["s","763","divider_nor1*2","10684","0","1","1","#ffffff,#525252","Black Iced Corner","Tuck it away"],["s","764","divider_nor3*2","15444","0","1","1","#FFFFFF,#FFFFFF,#525252,#525252","Black Iced Gate","No way through, or is there?"],["s","765","divider_nor4*2","13603","0","2","1","#FFFFFF,#FFFFFF,#525252,#525252,#525252,#525252","Black Iced Auto Shutter","Habbos, roll out!"],["s","766","divider_nor5*2","13603","0","1","1","#FFFFFF,#525252,#525252","Black Iced Angle","Cool cornering for your crib y0!"],["s","767","chair_norja*3","1272","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Iced Chair","Sleek and chic for each cheek"],["s","768","couch_norja*3","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Iced Bench","Two can perch comfortably"],["s","769","table_norja_med*3","2429","0","2","2","#ffffff,#FFFFFF","White Iced Table","For larger gatherings"],["s","770","shelves_norja*3","1272","0","1","1","#ffffff,#ffffff","White Iced Bookcase","For nic naks and art deco books"],["s","771","soft_sofachair_norja*3","10684","0","1","1","#ffffff,#ffffff,#ffffff","White Iced Sofachair","Soft Iced sofachair"],["s","772","soft_sofa_norja*3","10684","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Iced Sofa","Pristine white, keep it clean!"],["s","773","divider_nor2*3","10684","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff","White Iced Bar-Desk","Strong, yet soft looking"],["s","774","divider_nor1*3","10684","0","1","1","#ffffff,#ffffff","White Iced Corner","Looks squishy, but isn't!"],["s","775","divider_nor3*3","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Iced Gate","Do go through..."],["s","776","divider_nor4*3","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Iced Auto Shutter","Habbos, roll out!"],["s","777","divider_nor5*3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Iced Angle","Cool cornering for your crib y0!"],["s","778","chair_norja*4","1272","0","1","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Urban Iced Chair","Sleek and chic for each cheek"],["s","779","couch_norja*4","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ABD0D2,#ABD0D2,#ABD0D2,#ABD0D2","Urban Iced Bench","Two can perch comfortably"],["s","780","table_norja_med*4","2429","0","2","2","#ffffff,#ABD0D2","Urban Iced Coffee Table","For larger gatherings"],["s","781","shelves_norja*4","1272","0","1","1","#ffffff,#ABD0D2","Urban Iced Bookcase","For nic naks and tech books"],["s","782","soft_sofachair_norja*4","10684","0","1","1","#ffffff,#ABD0D2,#ABD0D2","Urban Iced Sofachair","Sit back and relax"],["s","783","soft_sofa_norja*4","10684","0","2","1","#ffffff,#ABD0D2,#ffffff,#ABD0D2,#ABD0D2,#ABD0D2","Urban Iced Sofa","Sit back and relax"],["s","784","divider_nor2*4","10684","0","2","1","#ffffff,#ffffff,#ABD0D2,#ABD0D2","Urban Iced Bar","No way through"],["s","785","divider_nor1*4","10684","0","1","1","#ffffff,#ABD0D2","Urban Iced Corner","The missing piece"],["s","786","divider_nor3*4","15444","0","1","1","#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2","Urban Iced Gate","Entrance or exit?"],["s","787","divider_nor4*4","13603","0","2","1","#FFFFFF,#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2,#ABD0D2","Urban Iced Shutter","Habbos, roll out!"],["s","788","divider_nor5*4","13603","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2","Urban Iced Angle","Cool cornering for your crib!"],["s","789","chair_norja*5","1272","0","1","1","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Pink Chair","Sleek and chic for each cheek"],["s","790","couch_norja*5","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#EE7EA4,#EE7EA4,#EE7EA4,#EE7EA4","Pink Bench","Two can perch comfortably"],["s","791","table_norja_med*5","2429","0","2","2","#ffffff,#EE7EA4","Large Coffee Table Pink","For larger gatherings"],["s","792","shelves_norja*5","1272","0","1","1","#ffffff,#EE7EA4","Pink Bookcase","For nic naks and art deco books"],["s","793","soft_sofachair_norja*5","10684","0","1","1","#ffffff,#EE7EA4,#EE7EA4","Pink Iced Sofachair","Pink Iced Sofachair"],["s","794","soft_sofa_norja*5","10684","0","2","1","#ffffff,#EE7EA4,#ffffff,#EE7EA4,#EE7EA4,#EE7EA4","Pink Iced Sofa","Pink Iced Sofa"],["s","795","divider_nor2*5","10684","0","2","1","#ffffff,#ffffff,#EE7EA4,#EE7EA4","Pink Iced bar desk","Pink Iced bar desk"],["s","796","divider_nor1*5","10684","0","1","1","#ffffff,#EE7EA4","Pink Ice corner","Pink Ice corner"],["s","797","divider_nor3*5","15444","0","1","1","#FFFFFF,#FFFFFF,#EE7EA4,#EE7EA4","Pink Iced gate","Pink Iced gate"],["s","798","divider_nor4*5","13603","0","2","1","#FFFFFF,#FFFFFF,#EE7EA4,#EE7EA4,#EE7EA4,#EE7EA4","Pink Iced Auto Shutter","Habbos, roll out!"],["s","799","divider_nor5*5","13603","0","1","1","#FFFFFF,#EE7EA4,#EE7EA4","Pink Iced Angle","Cool cornering for your crib y0!"],["s","800","chair_norja*6","1272","0","1","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Chair","Sleek and chic for each cheek"],["s","801","couch_norja*6","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#5EAAF8,#5EAAF8,#5EAAF8,#5EAAF8","Blue Bench","Two can perch comfortably"],["s","802","table_norja_med*6","2429","0","2","2","#ffffff,#5EAAF8","Large Coffee Table Blue","For larger gatherings"],["s","803","shelves_norja*6","1272","0","1","1","#ffffff,#5EAAF8","Blue Bookcase","For nic naks and art deco books"],["s","804","soft_sofachair_norja*6","10684","0","1","1","#ffffff,#5EAAF8,#5EAAF8","Blue Iced Sofachair","Blue Iced Sofachair"],["s","805","soft_sofa_norja*6","10684","0","2","1","#ffffff,#5EAAF8,#ffffff,#5EAAF8,#5EAAF8,#5EAAF8","Blue Iced Sofa","A soft leather sofa"],["s","806","divider_nor2*6","10684","0","2","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Iced bar desk","Blue Iced bar desk"],["s","807","divider_nor1*6","10684","0","1","1","#ffffff,#5EAAF8","Blue Ice corner","Blue Ice corner"],["s","808","divider_nor3*6","15444","0","1","1","#FFFFFF,#FFFFFF,#5EAAF8,#5EAAF8","Blue Iced gate","Blue Iced gate"],["s","809","divider_nor4*6","13603","0","2","1","#FFFFFF,#FFFFFF,#5EAAF8,#5EAAF8,#5EAAF8,#5EAAF8","Blue Iced Auto Shutter","Habbos, roll out!"],["s","810","divider_nor5*6","13603","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8","Blue Iced Angle","Cool cornering for your crib y0!"],["s","811","chair_norja*7","1272","0","1","1","#ffffff,#ffffff,#7CB135,#7CB135","Rural Chair","Sleek and chic for each cheek"],["s","812","couch_norja*7","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#7CB135,#7CB135,#7CB135,#7CB135","Rural Iced Bench","Two can perch comfortably"],["s","813","table_norja_med*7","2429","0","2","2","#ffffff,#7CB135","Rural Iced Coffee Table","For larger gatherings"],["s","814","shelves_norja*7","1272","0","1","1","#ffffff,#7CB135","Rural Iced Bookcase","For nic naks and cookery books"],["s","815","soft_sofachair_norja*7","10684","0","1","1","#ffffff,#7CB135,#7CB135","Rural Iced Sofachair","Sit back and relax"],["s","816","soft_sofa_norja*7","10684","0","2","1","#ffffff,#7CB135,#ffffff,#7CB135,#7CB135,#7CB135","Rural Iced Sofa","Sit back and relax"],["s","817","divider_nor2*7","10684","0","2","1","#ffffff,#ffffff,#7CB135,#7CB135","Rural Iced Bar","No way through"],["s","818","divider_nor1*7","10684","0","1","1","#ffffff,#7CB135","Rural Iced Corner","The missing piece"],["s","819","divider_nor3*7","15444","0","1","1","#FFFFFF,#FFFFFF,#7CB135,#7CB135","Rural Iced gate","Entrance or exit?"],["s","820","divider_nor4*7","13603","0","2","1","#FFFFFF,#FFFFFF,#7CB135,#7CB135,#7CB135,#7CB135","Rural Iced Shutter","Habbos, roll out!"],["s","821","divider_nor5*7","13603","0","1","1","#FFFFFF,#7CB135,#7CB135","Rural Iced Angle","Cool cornering for your crib!"],["s","822","chair_norja*8","1272","0","1","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Chair","Sleek and chic for each cheek"],["s","823","couch_norja*8","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#FFD837,#FFD837,#FFD837,#FFD837","Yellow Bench","Two can perch comfortably"],["s","824","table_norja_med*8","2429","0","2","2","#ffffff,#FFD837","Large Coffee Table Yellow","For larger gatherings"],["s","825","shelves_norja*8","1272","0","1","1","#ffffff,#FFD837","Yellow Bookcase","For nic naks and art deco books"],["s","826","soft_sofachair_norja*8","10684","0","1","1","#ffffff,#FFD837,#FFD837","Yellow Iced Sofachair","Yellow Iced Sofachair"],["s","827","soft_sofa_norja*8","10684","0","2","1","#ffffff,#FFD837,#ffffff,#FFD837,#FFD837,#FFD837","Yellow Iced Sofa","Yellow Iced Sofa"],["s","828","divider_nor2*8","10684","0","2","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Iced bar desk","Yellow Iced bar desk"],["s","829","divider_nor1*8","10684","0","1","1","#ffffff,#FFD837","Yellow Ice corner","Yellow Ice corner"],["s","830","divider_nor3*8","15444","0","1","1","#FFFFFF,#FFFFFF,#FFD837,#FFD837","Yellow Iced gate","Yellow Iced gate"],["s","831","divider_nor4*8","13603","0","2","1","#FFFFFF,#FFFFFF,#FFD837,#FFD837,#FFD837,#FFD837","Yellow Iced Auto Shutter","Habbos, roll out!"],["s","832","divider_nor5*8","13603","0","1","1","#FFFFFF,#FFD837,#FFD837","Yellow Iced Angle","Cool cornering for your crib y0!"],["s","833","chair_norja*9","1272","0","1","1","#ffffff,#ffffff,#E14218,#E14218","Red Chair","Sleek and chic for each cheek"],["s","834","couch_norja*9","1272","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#E14218,#E14218,#E14218,#E14218","Red Bench","Two can perch comfortably"],["s","835","table_norja_med*9","2429","0","2","2","#ffffff,#E14218","Large Coffee Table Red","For larger gatherings"],["s","836","shelves_norja*9","1272","0","1","1","#ffffff,#E14218","Red Bookcase","For nic naks and art deco books"],["s","837","soft_sofachair_norja*9","10684","0","1","1","#ffffff,#E14218,#E14218","Red Iced Sofachair","Red Iced Sofachair"],["s","838","soft_sofa_norja*9","10684","0","2","1","#ffffff,#E14218,#ffffff,#E14218,#E14218,#E14218","Red Iced Sofa","Red Iced Sofa"],["s","839","divider_nor2*9","10684","0","2","1","#ffffff,#ffffff,#E14218,#E14218","Red Iced bar desk","Red Iced bar desk"],["s","840","divider_nor1*9","10684","0","1","1","#ffffff,#E14218","Red Ice corner","Red Ice corner"],["s","841","divider_nor3*9","15444","0","1","1","#FFFFFF,#FFFFFF,#E14218,#E14218","Red Iced gate","Red Iced gate"],["s","842","divider_nor4*9","13603","0","2","1","#FFFFFF,#FFFFFF,#E14218,#E14218,#E14218,#E14218","Red Iced Auto Shutter","Habbos, roll out!"],["s","843","divider_nor5*9","13603","0","1","1","#FFFFFF,#E14218,#E14218","Red Iced Angle","Cool cornering for your crib y0!"],["s","844","bed_polyfon*2","1272","0","2","3","#ffffff,#ffffff,#525252,#525252","Black Mode Double Bed","Black Mode Double Bed"],["s","845","bed_polyfon_one*2","3987","0","1","3","#ffffff,#ffffff,#ffffff,#525252,#525252","Black Mode Single Bed","Black Mode Single Bed"],["s","846","sofa_polyfon*2","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#525252,#525252,#525252,#525252","Black Mode Sofa","Black Mode Sofa"],["s","847","sofachair_polyfon*2","1272","0","1","1","#ffffff,#ffffff,#525252,#525252","Black Mode Armchair","Black Mode Armchair"],["s","848","divider_poly3*2","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#525252,#525252","Black Mode Bardesk Gate","Black Mode Bardesk Gate"],["s","849","bardesk_polyfon*2","11385","0","2","1","#ffffff,#ffffff,#525252,#525252","Black Mode Bardesk","Black Mode Bardesk"],["s","850","bardeskcorner_polyfon*2","11385","0","1","1","#ffffff,#525252","Black Mode Bardesk Corner","Black Mode Bardesk Corner"],["s","851","bed_polyfon*3","1272","0","2","3","#ffffff,#ffffff,#ffffff,#ffffff","White Double Bed","Give yourself space to stretch out"],["s","852","bed_polyfon_one*3","3987","0","1","3","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Single Bed","Cot of the artistic"],["s","853","sofa_polyfon*3","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Two-seater Sofa","Comfort for stylish couples"],["s","854","sofachair_polyfon*3","1272","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Armchair","Loft-style comfort"],["s","855","divider_poly3*3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Hatch","Border control!"],["s","856","bardesk_polyfon*3","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff","White Bardesk","Perfect for work or play"],["s","857","bardeskcorner_polyfon*3","11385","0","1","1","#ffffff,#ffffff","White Corner Desk","Tuck it away"],["s","858","bed_polyfon*4","1272","0","2","3","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Mode Double Bed","Beige Mode Double Bed"],["s","859","bed_polyfon_one*4","3987","0","1","3","#ffffff,#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Mode Single Bed","Beige Mode Single Bed"],["s","860","sofa_polyfon*4","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#F7EBBC,#F7EBBC,#F7EBBC,#F7EBBC","Beige Mode Sofa","Beige Mode Sofa"],["s","861","sofachair_polyfon*4","1272","0","1","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Mode Armchair","Beige Mode Armchair"],["s","862","divider_poly3*4","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#F7EBBC,#F7EBBC","Beige Mode Bardesk Gate","Beige Mode Bardesk Gate"],["s","863","bardesk_polyfon*4","11385","0","2","1","#ffffff,#ffffff,#F7EBBC,#F7EBBC","Beige Mode Bardesk","Beige Mode Bardesk"],["s","864","bardeskcorner_polyfon*4","11385","0","1","1","#ffffff,#F7EBBC","Beige Mode Bardesk Corner","Beige Mode Bardesk Corner"],["s","865","bed_polyfon*6","1272","0","2","3","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Mode Double Bed","Blue Mode Double Bed"],["s","866","bed_polyfon_one*6","3987","0","1","3","#ffffff,#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Mode Single Bed","Blue Mode Single Bed"],["s","867","sofa_polyfon*6","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#5EAAF8,#5EAAF8,#5EAAF8,#5EAAF8","Blue Mode Sofa","Blue Mode Sofa"],["s","868","sofachair_polyfon*6","1272","0","1","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Mode Armchair","Blue Mode Armchair"],["s","869","divider_poly3*6","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#5EAAF8,#5EAAF8","Blue Mode Bardesk Gate","Blue Mode Bardesk Gate"],["s","870","bardesk_polyfon*6","11385","0","2","1","#ffffff,#ffffff,#5EAAF8,#5EAAF8","Blue Mode Bardesk","Blue Mode Bardesk"],["s","871","bardeskcorner_polyfon*6","11385","0","1","1","#ffffff,#5EAAF8","Blue Mode Bardesk Corner","Blue Mode Bardesk Corner"],["s","872","bed_polyfon*7","1272","0","2","3","#ffffff,#ffffff,#7CB135,#7CB135","Green Double Bed","Give yourself space to stretch out"],["s","873","bed_polyfon_one*7","3987","0","1","3","#ffffff,#ffffff,#ffffff,#7CB135,#7CB135","Green Single Bed","Cot of the artistic"],["s","874","sofa_polyfon*7","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#7CB135,#7CB135,#7CB135,#7CB135","Green Two-seater Sofa","Comfort for stylish couples"],["s","875","sofachair_polyfon*7","1272","0","1","1","#ffffff,#ffffff,#7CB135,#7CB135","Green Armchair","Loft-style comfort"],["s","876","divider_poly3*7","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#7CB135,#7CB135","Green Hatch","Border control"],["s","877","bardesk_polyfon*7","11385","0","2","1","#ffffff,#ffffff,#7CB135,#7CB135","Green Bardesk","Perfect for work or play"],["s","878","bardeskcorner_polyfon*7","11385","0","1","1","#ffffff,#7CB135","Green Corner Desk","Tuck it away"],["s","879","bed_polyfon*8","1272","0","2","3","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Mode Double Bed","Yellow Mode Double Bed"],["s","880","bed_polyfon_one*8","3987","0","1","3","#ffffff,#ffffff,#ffffff,#FFD837,#FFD837","Yellow Mode Single Bed","Yellow Mode Single Bed"],["s","881","sofa_polyfon*8","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#FFD837,#FFD837,#FFD837,#FFD837","Yellow Mode Sofa","Yellow Mode Sofa"],["s","882","sofachair_polyfon*8","1272","0","1","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Mode Armchair","Yellow Mode Armchair"],["s","883","divider_poly3*8","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFD837,#FFD837","Yellow Mode Bardesk Gate","Yellow Mode Bardesk Gate"],["s","884","bardesk_polyfon*8","11385","0","2","1","#ffffff,#ffffff,#FFD837,#FFD837","Yellow Mode Bardesk","Yellow Mode Bardesk"],["s","885","bardeskcorner_polyfon*8","11385","0","1","1","#ffffff,#FFD837","Yellow Mode Bardesk Corner","Yellow Mode Bardesk Corner"],["s","886","bed_polyfon*9","1272","0","2","3","#ffffff,#ffffff,#E14218,#E14218","Red Double Bed","Give yourself space to stretch out"],["s","887","bed_polyfon_one*9","3987","0","1","3","#ffffff,#ffffff,#ffffff,#E14218,#E14218","Red Single Bed","Cot of the artistic"],["s","888","sofa_polyfon*9","11385","0","2","1","#ffffff,#ffffff,#ffffff,#ffffff,#E14218,#E14218,#E14218,#E14218","Red Two-seater Sofa","Comfort for stylish couples"],["s","889","sofachair_polyfon*9","1272","0","1","1","#ffffff,#ffffff,#E14218,#E14218","Red Armchair","Loft-style comfort"],["s","890","divider_poly3*9","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#E14218,#E14218","Red Hatch","Border Control!"],["s","891","bardesk_polyfon*9","11385","0","2","1","#ffffff,#ffffff,#E14218,#E14218","Red Bardesk","Perfect for work or play"],["s","892","bardeskcorner_polyfon*9","11385","0","1","1","#ffffff,#E14218","Red Corner Desk","Tuck it away"],["s","893","pura_mdl1*1","11385","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Aqua Pura Module 1","Any way you like it!"],["s","894","pura_mdl2*1","11385","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Aqua Pura Module 2","Any way you like it!"],["s","895","pura_mdl3*1","11385","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Aqua Pura Module 3","Any way you like it!"],["s","896","pura_mdl4*1","11385","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#ABD0D2","Aqua Pura Module 4","Any way you like it!"],["s","897","pura_mdl5*1","7053","0","1","1","#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Aqua Pura Module 5","Any way you like it!"],["s","898","pura_mdl1*2","11385","0","1","1","#FFFFFF,#FF99BC,#FF99BC,#FFFFFF","Pink Pura Module 1","Any way you like it!"],["s","899","pura_mdl2*2","11385","0","1","1","#FFFFFF,#FF99BC,#FF99BC,#FFFFFF","Pink Pura Module 2","Any way you like it!"],["s","900","pura_mdl3*2","11385","0","1","1","#FFFFFF,#FF99BC,#FF99BC,#FFFFFF","Pink Pura Module 3","Any way you like it!"],["s","901","pura_mdl4*2","11385","0","1","1","#FFFFFF,#FF99BC,#FF99BC,#FF99BC","Pink Pura Module 4","Any way you like it!"],["s","902","pura_mdl5*2","7053","0","1","1","#FFFFFF,#FF99BC,#FF99BC,#FFFFFF","Pink Pura Module 5","Any way you like it!"],["s","903","pura_mdl1*3","11385","0","1","1","#FFFFFF,#525252,#525252,#FFFFFF","Black Pura Module 1","Any way you like it!"],["s","904","pura_mdl2*3","11385","0","1","1","#FFFFFF,#525252,#525252,#FFFFFF","Black Pura Module 2","Any way you like it!"],["s","905","pura_mdl3*3","11385","0","1","1","#FFFFFF,#525252,#525252,#FFFFFF","Black Pura Module 3","Any way you like it!"],["s","906","pura_mdl4*3","11385","0","1","1","#FFFFFF,#525252,#525252,#525252","Black Pura Module 4","Any way you like it!"],["s","907","pura_mdl5*3","7053","0","1","1","#FFFFFF,#525252,#525252,#FFFFFF","Black Pura Module 5","Any way you like it!"],["s","908","pura_mdl1*4","11385","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Pura Module 1","Any way you like it!"],["s","909","pura_mdl2*4","11385","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Pura Module 2","Any way you like it!"],["s","910","pura_mdl3*4","11385","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Pura Module 3","Any way you like it!"],["s","911","pura_mdl4*4","11385","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Pura Module 4","Any way you like it!"],["s","912","pura_mdl5*4","7053","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Pura Module 5","Any way you like it!"],["s","913","pura_mdl1*5","11385","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#FFFFFF","Beige pura module 1",""],["s","914","pura_mdl2*5","11385","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#FFFFFF","Beige pura module 2",""],["s","915","pura_mdl3*5","11385","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#FFFFFF","Beige pura module 3",""],["s","916","pura_mdl4*5","11385","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#F7EBBC","Beige pura module 4",""],["s","917","pura_mdl5*5","7053","0","1","1","#FFFFFF,#F7EBBC,#F7EBBC,#FFFFFF","Beige pura module 5",""],["s","918","pura_mdl1*6","11385","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#FFFFFF","Blue Pura Module 1","Any way you like it!"],["s","919","pura_mdl2*6","11385","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#FFFFFF","Blue Pura Module 2","Any way you like it!"],["s","920","pura_mdl3*6","11385","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#FFFFFF","Blue Pura Module 3","Any way you like it!"],["s","921","pura_mdl4*6","11385","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#5EAAF8","Blue Pura Module 4","Any way you like it!"],["s","922","pura_mdl5*6","7053","0","1","1","#FFFFFF,#5EAAF8,#5EAAF8,#FFFFFF","Blue Pura Module 5","Any way you like it!"],["s","923","pura_mdl1*7","11385","0","1","1","#FFFFFF,#92D13D,#92D13D,#FFFFFF","Green Pura Module 1","Any way you like it!"],["s","924","pura_mdl2*7","11385","0","1","1","#FFFFFF,#92D13D,#92D13D,#FFFFFF","Green Pura Module 2","Any way you like it!"],["s","925","pura_mdl3*7","11385","0","1","1","#FFFFFF,#92D13D,#92D13D,#FFFFFF","Green Pura Module 3","Any way you like it!"],["s","926","pura_mdl4*7","11385","0","1","1","#FFFFFF,#92D13D,#92D13D,#92D13D","Green Pura Module 4","Any way you like it!"],["s","927","pura_mdl5*7","7053","0","1","1","#FFFFFF,#92D13D,#92D13D,#FFFFFF","Green Pura Module 5","Any way you like it!"],["s","928","pura_mdl1*8","11385","0","1","1","#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow pura module 1",""],["s","929","pura_mdl2*8","11385","0","1","1","#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow pura module 2",""],["s","930","pura_mdl3*8","11385","0","1","1","#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow pura module 3",""],["s","931","pura_mdl4*8","11385","0","1","1","#FFFFFF,#FFD837,#FFD837,#FFD837","Yellow pura module 4",""],["s","932","pura_mdl5*8","7053","0","1","1","#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow Pura Module 5","Any way you like it!"],["s","933","pura_mdl1*9","11385","0","1","1","#FFFFFF,#E14218,#E14218,#FFFFFF","Red Pura Module 1","Any way you like it!"],["s","934","pura_mdl2*9","11385","0","1","1","#FFFFFF,#E14218,#E14218,#FFFFFF","Red Pura Module 2","Any way you like it!"],["s","935","pura_mdl3*9","11385","0","1","1","#FFFFFF,#E14218,#E14218,#FFFFFF","Red Pura Module 3","Any way you like it!"],["s","936","pura_mdl4*9","11385","0","1","1","#FFFFFF,#E14218,#E14218,#E14218","Red Pura Module 4","Any way you like it!"],["s","937","pura_mdl5*9","7053","0","1","1","#FFFFFF,#E14218,#E14218,#FFFFFF","Red Pura Module 5","Any way you like it!"],["s","938","chair_basic*1","11385","0","1","1","#FFFFFF,#ABD0D2,#FFFFFF","Aqua Pura Egg Chair","It's a cracking design!"],["s","939","chair_basic*2","11385","0","1","1","#FFFFFF,#FF99BC,#FFFFFF","Pink Pura Egg Chair","It's a cracking design!"],["s","940","chair_basic*3","11385","0","1","1","#FFFFFF,#525252,#FFFFFF","Black Pura Egg Chair","It's a cracking design!"],["s","941","chair_basic*4","11385","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Pura Egg Chair","It's a cracking design!"],["s","942","chair_basic*5","11385","0","1","1","#FFFFFF,#F7EBBC,#FFFFFF","Beige Pura Egg Chair","It's a cracking design!"],["s","943","chair_basic*6","11385","0","1","1","#FFFFFF,#5EAAF8,#FFFFFF","Blue Pura Egg Chair","It's a cracking design!"],["s","944","chair_basic*7","11385","0","1","1","#FFFFFF,#92D13D,#FFFFFF","Green Pura Egg Chair","It's a cracking design!"],["s","945","chair_basic*8","11385","0","1","1","#FFFFFF,#FFD837,#FFFFFF","Yellow Pura Egg Chair","It's a cracking design!"],["s","946","chair_basic*9","11385","0","1","1","#FFFFFF,#E14218,#FFFFFF","Red Pura Egg Chair","It's a cracking design!"],["s","947","grand_piano*1","13603","0","2","2","#FFFFFF,#FF8B8B","Turquoise Grand Piano","Turquoise Grand Piano"],["s","948","romantique_pianochair*1","13144","0","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Piano Chair","Elegant seating for elegant Habbos"],["s","949","romantique_chair*1","13144","0","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Chair","Elegant seating for elegant Habbos"],["s","950","romantique_divan*1","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FF8B8B","Chaise-Longue","Recline in continental Rose Quartz comfort"],["s","951","romantique_divider*1","3438","0","2","1","#FF8B8B,#FF8B8B,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Rose Quartz Screen","Beauty lies within"],["s","952","romantique_smalltabl*1","13144","2","1","1","#FFFFFF,#FF8B8B,#FFFFFF","Rose Quartz Tray Table","Every tray needs a table..."],["s","953","grand_piano*2","13603","0","2","2","#FFFFFF,#A1DC67","Esmerald Piano Stool","Let the music begin"],["s","954","romantique_pianochair*2","13144","0","1","1","#FFFFFF,#A1DC67,#FFFFFF","Lime Romantique Piano Chair","Sit in traditional style"],["s","955","romantique_chair*2","13144","0","1","1","#FFFFFF,#A1DC67,#FFFFFF","Lime Romantique Chair","null"],["s","956","romantique_divan*2","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#A1DC67","Emerald Chaise-Longue","Recline in continental comfort"],["s","957","romantique_divider*2","3438","0","2","1","#A1DC67,#A1DC67,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Green Screen","Keeping things separated"],["s","958","romantique_smalltabl*2","13144","2","1","1","#FFFFFF,#A1DC67,#FFFFFF","Lime Tray Table","Every tray needs a table..."],["s","959","grand_piano*3","13603","0","2","2","#FFFFFF,#5BD1D2","Sapphire Piano Stool","Make sure you play in key!"],["s","960","romantique_pianochair*3","13144","0","1","1","#FFFFFF,#5BD1D2,#FFFFFF","Sapphire Chair","For stately seating experiences"],["s","961","romantique_chair*3","13144","0","1","1","#FFFFFF,#5BD1D2,#FFFFFF","Turquoise Romantique Chair","null"],["s","962","romantique_divan*3","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#5BD1D2","Turquoise Romantique Divan","null"],["s","963","romantique_divider*3","3438","0","2","1","#5BD1D2,#5BD1D2,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Turquoise Screen","Keeping things separated"],["s","964","romantique_smalltabl*3","13144","2","1","1","#FFFFFF,#5BD1D2,#FFFFFF","Turquoise Tray Table","Every tray needs a table..."],["s","965","grand_piano*4","13603","0","2","2","#FFFFFF,#FFC924","Amber Grand Piano","Why is that key green?"],["s","966","romantique_pianochair*4","13144","0","1","1","#FFFFFF,#FFC924,#FFFFFF","Amber Piano Stool","I can feel air coming through..."],["s","967","romantique_chair*4","13144","0","1","1","#FFFFFF,#FFC924,#FFFFFF","Amber Chair","What does this button do?"],["s","968","romantique_divan*4","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFC924","Amber Chaise-Longue","Is that a cape hanging there?"],["s","969","romantique_divider*4","3438","0","2","1","#FFC924,#FFC924,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Ochre Screen","Keeping things separated"],["s","4488","romantique_divider*5","3438","0","2","1","#323C46,#323C46,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Romantique Screen Gray","Keeping Things Separated"],["s","970","romantique_smalltabl*4","13144","2","1","1","#FFFFFF,#FFC924,#FFFFFF","Amber Tray Table","Why is one leg different?"],["s","971","grand_piano*5","13603","0","2","2","#FFFFFF,#323C46","Onyx Grand Piano","Why is that key green?"],["s","972","romantique_pianochair*5","13144","0","1","1","#FFFFFF,#323C46,#FFFFFF","Onyx Piano Stool","I can feel air coming through..."],["s","973","romantique_chair*5","13144","0","1","1","#FFFFFF,#323C46,#FFFFFF","Onyx Chair","What does this button do?"],["s","974","romantique_divan*5","13144","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#323C46","Onyx Chaise-Longue","Is that a cape hanging there?"],["s","976","romantique_smalltabl*5","13144","2","1","1","#FFFFFF,#323C46,#FFFFFF","Onyx Tray Table","Why is one leg different?"],["s","977","club_sofa","15444","0","2","1","0,0,0","Club sofa","Club sofa"],["s","978","chair_plasto*14","11385","0","1","1","#ffffff,#3CB4F0,#ffffff,#3CB4F0","HC chair","Aqua chair"],["s","979","table_plasto_4leg*14","11385","0","2","2","#ffffff,#3CB4F0","HC table","Aqua table"],["s","980","mocchamaster","13603","2","1","1","#FFFFFF","Mochamaster","Wake up and smell it!"],["s","981","edicehc","13603","0","1","1","0,0,0","Dicemaster","Click and roll!"],["s","982","hcamme","13603","0","1","2","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Tubmaster","Time for a soak"],["s","983","doorD","13603","2","1","1","","Imperial Teleport","Let's go over tzar!"],["s","984","hcsohva","437","0","2","1","0,0,0","Throne Sofa","For royal bottoms..."],["s","985","hc_lmp","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Oil Lamp","Be enlightened"],["s","986","hc_tbl","437","0","1","3","0,0,0","Nordic Table","Perfect for banquets"],["s","987","hc_chr","437","0","1","1","0,0,0","Majestic Chair","Royal comfort"],["s","988","hc_dsk","13603","0","1","2","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Study Desk","For Habbo scholars"],["s","989","hc_trll","437","0","1","2","0,0,0","Drinks Trolley","For swanky dinners only"],["s","990","hc_crpt","437","0","3","5","0,0,0","Persian Carpet","Ultimate craftsmanship"],["s","991","hc_lmpst","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Victorian Street Light","Somber and atmospheric"],["s","992","hc_crtn","15444","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Antique Drapery","Topnotch privacy protection"],["s","993","hc_tv","15444","2","2","1","","Mega TV Set","Forget plasma, go HC!"],["s","994","hc_btlr","13603","2","1","1","#FFFFFF,#FFFFFF","Electric Butler","Your personal caretaker"],["s","995","hc_bkshlf","437","0","1","4","0,0,0","Medieval Bookcase","For the scholarly ones"],["s","996","hc_rntgn","1272","0","2","1","0,0,0","X-Ray Divider","Believe it or not!"],["s","997","hc_machine","13603","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Weird Science Machine","By and for mad inventors"],["s","998","hc_frplc","13603","0","1","3","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Heavy Duty Fireplace","Pixel-powered for maximum heating"],["s","999","hc_djset","437","0","3","1","0,0,0","The Grammophon","Very old skool scratch'n'spin"],["s","1000","hc_rllr","15444","0","1","1","0,0,0","HC Rollers Set","Highest class transportation"],["i","1001","hc_wall_lamp","13603","","","","","Retro Wall Lamp","Tres chic!"],["i","1002","roomdimmer","13603","","","","","Mood Light","Superior lighting for your room"],["s","1003","rare_dragonlamp*0","13603","2","1","1","#FFFFFF,#FA2D00,#FA2D00,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Fire Dragon Lamp","George and the..."],["s","1004","rare_dragonlamp*1","13603","2","1","1","#FFFFFF,#3470FF,#3470FF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Sea Dragon Lamp","Out of the deep blue!"],["s","1005","rare_dragonlamp*2","13603","2","1","1","#FFFFFF,#02BB70,#02BB70,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Jade Dragon Lamp","Oriental beast of legends"],["s","1006","rare_dragonlamp*3","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Silver Dragon Lamp","Scary and scorching!"],["s","1007","rare_dragonlamp*4","13603","2","1","1","#FFFFFF,#3E3D40,#3E3D40,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Black Dragon Lamp","Scary and scorching!"],["s","1008","rare_dragonlamp*5","13603","2","1","1","#FFFFFF,#589A03,#589A03,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Elf Green Dragon Lamp","Roast your chestnuts here!"],["s","1009","rare_dragonlamp*6","13603","2","1","1","#FFFFFF,#FFBC00,#FFBC00,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Gold Dragon Lamp","Scary and scorching!"],["s","1010","rare_dragonlamp*7","13603","2","1","1","#FFFFFF,#83AEFF,#83AEFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Sky Dragon Lamp","Scary and scorching!"],["s","1011","rare_dragonlamp*8","13603","2","1","1","#FFFFFF,#FF5F01,#FF5F01,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Bronze Dragon Lamp","Scary and scorching!"],["s","1012","rare_dragonlamp*9","13603","2","1","1","#FFFFFF,#B357FF,#B357FF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Purple Dragon Lamp","Scary and scorching!"],["s","1013","rare_fan*0","13603","0","1","1","#F43100,#FFFFFF,#FFFFFF,#FFFFFF","Festive Fan","As red as Rudolph's nose"],["s","1014","rare_fan*1","13603","0","1","1","#3C75FF,#FFFFFF,#FFFFFF,#FFFFFF","Birthday Fan","It'll blow your candles out!"],["s","1015","rare_fan*2","13603","0","1","1","#55CD01,#FFFFFF,#FFFFFF,#FFFFFF","Green Powered Fan","It'll blow you away!"],["s","1016","rare_fan*3","13603","0","1","1","#C05DFF,#FFFFFF,#FFFFFF,#FFFFFF","Purple Dragon Skin Fan","Keeps the heat off St George!"],["s","1017","rare_fan*4","13603","0","1","1","#FF9898,#FFFFFF,#FFFFFF,#FFFFFF","SUPERLOVE Fan","Fanning the fires of SUPERLOVE..."],["s","1018","rare_fan*5","13603","0","1","1","#E1CC00,#FFFFFF,#FFFFFF,#FFFFFF","Yellow Powered Fan","It'll blow you away!"],["s","1019","rare_fan*6","13603","0","1","1","#FF8000,#FFFFFF,#FFFFFF,#FFFFFF","Ochre Powered Fan","It'll blow you away!"],["s","1020","rare_fan*7","13603","0","1","1","#97420C,#FFFFFF,#FFFFFF,#FFFFFF","Brown Powered Fan","...it's really hit the fan!"],["s","1021","rare_fan*8","13603","0","1","1","#00E5E2,#FFFFFF,#FFFFFF,#FFFFFF","Habbo Wind Turbine","Stylish, Eco-Energy!"],["s","1022","rare_fan*9","13603","0","1","1","#FF60B0,#FFFFFF,#FFFFFF,#FFFFFF","Fucsia Powered Fan","It'll blow you away!"],["s","1023","rare_icecream*0","13603","2","1","1","#FFFFFF,#F43100,#FFFFFF,#FFFFFF,#FFFFFF","Cherry Ice Cream Machine","Virtual cherry rocks!"],["s","1024","rare_icecream*1","13603","2","1","1","#FFFFFF,#3C75FF,#FFFFFF,#FFFFFF,#FFFFFF","Blueberry Ice Cream Machine","Virtual blueberry rocks!"],["s","1025","rare_icecream*2","13603","2","1","1","#FFFFFF,#55CD01,#FFFFFF,#FFFFFF,#FFFFFF","Pistachio Ice Cream Machine","Virtual pistachio rocks!"],["s","1026","rare_icecream*3","13603","2","1","1","#FFFFFF,#C05DFF,#FFFFFF,#FFFFFF,#FFFFFF","Blackcurrant Ice Cream Machine","Virtual blackcurrant rocks!"],["s","1027","rare_icecream*4","13603","2","1","1","#FFFFFF,#FF9898,#FFFFFF,#FFFFFF,#FFFFFF","Strawberry Ice Cream Machine","Virtual strawberry rocks!"],["s","1028","rare_icecream*5","13603","2","1","1","#FFFFFF,#E1CC00,#FFFFFF,#FFFFFF,#FFFFFF","Vanilla Ice Cream Machine","Virtual vanilla rocks!"],["s","1029","rare_icecream*6","13603","2","1","1","#FFFFFF,#FF8000,#FFFFFF,#FFFFFF,#FFFFFF","Toffee Ice Cream Machine","Virtual toffee rocks!"],["s","1030","rare_icecream*7","13603","2","1","1","#FFFFFF,#97420C,#FFFFFF,#FFFFFF,#FFFFFF","Chocolate Ice Cream Machine","Virtual chocolate rocks!"],["s","1031","rare_icecream*8","13603","2","1","1","#FFFFFF,#00E5E2,#FFFFFF,#FFFFFF,#FFFFFF","Peppermint Ice Cream Machine","Virtual peppermint rocks!"],["s","1032","rare_icecream*9","13603","2","1","1","#FFFFFF,#FF60B0,#FFFFFF,#FFFFFF,#FFFFFF","Bubblegum Ice Cream Machine","Virtual bubblegum rocks!"],["s","1033","rubberchair*1","11385","0","1","1","#4193D6,#ffffff,#ffffff,#ffffff,#ffffff","Blue Inflatable Chair","Soft and stylish HC chair"],["s","1034","rubberchair*2","11385","0","1","1","#F24570,#ffffff,#ffffff,#ffffff,#ffffff","Pink Inflatable Chair","Soft and tearproof!"],["s","1035","rubberchair*3","11385","0","1","1","#F06E3B,#ffffff,#ffffff,#ffffff,#ffffff","Orange Inflatable Chair","Soft and tearproof!"],["s","1036","rubberchair*4","11385","0","1","1","#53C7D5,#ffffff,#ffffff,#ffffff,#ffffff","Ocean Inflatable Chair","Soft and tearproof!"],["s","1037","rubberchair*5","11385","0","1","1","#CBE42D,#ffffff,#ffffff,#ffffff,#ffffff","Lime Inflatable Chair","Soft and tearproof!"],["s","1038","rubberchair*6","11385","0","1","1","#DE4FAE,#ffffff,#ffffff,#ffffff,#ffffff","Violet Inflatable Chair","Soft and tearproof!"],["s","1039","rubberchair*7","11385","0","1","1","#FFFFFF,#ffffff,#ffffff,#ffffff,#ffffff","White Inflatable Chair","Soft and tearproof!"],["s","1040","rubberchair*8","11385","0","1","1","#444444,#ffffff,#ffffff,#ffffff,#ffffff","Black Inflatable Chair","Soft and tearproof for HC!"],["s","1041","scifiport*0","13603","0","1","1","#FFFFFF,#DD2D22,#FFFFFF,#FFFFFF,#FFFFFF,#DD2D22","Red Laser Door","Energy beams. No trespassers!"],["s","1042","scifiport*1","13603","0","1","1","#FFFFFF,#FFBC00,#FFFFFF,#FFFFFF,#FFFFFF,#FFBC00","Gold Laser Gate","Energy beams. No trespassers!"],["s","1043","scifiport*2","13603","0","1","1","#FFFFFF,#5599FF,#FFFFFF,#FFFFFF,#FFFFFF,#5599FF","Blue Laser Gate","Get in the ring!"],["s","1044","scifiport*3","13603","0","1","1","#FFFFFF,#02BB70,#FFFFFF,#FFFFFF,#FFFFFF,#02BB70","Jade Sci-Fi Port","Energy beams. No trespassers!"],["s","1045","scifiport*4","13603","0","1","1","#FFFFFF,#FF5577,#FFFFFF,#FFFFFF,#FFFFFF,#FF5577","Pink Sci-Fi Port","Energy beams. No trespassers!"],["s","1046","scifiport*5","13603","0","1","1","#FFFFFF,#555555,#FFFFFF,#FFFFFF,#FFFFFF,#555555","Security Fence","Recovered from Roswell"],["s","1047","scifiport*6","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Sci-Fi Port","Energy beams. No trespassers!"],["s","1048","scifiport*7","13603","0","1","1","#FFFFFF,#00CCCC,#FFFFFF,#FFFFFF,#FFFFFF,#00CCCC","Turquoise Sci-Fi Port","Energy beams. No trespassers!"],["s","1049","scifiport*8","13603","0","1","1","#FFFFFF,#BB55CC,#FFFFFF,#FFFFFF,#FFFFFF,#BB55CC","Purple Sci-Fi Port","Energy beams. No trespassers!"],["s","1050","scifiport*9","13603","0","1","1","#FFFFFF,#7733FF,#FFFFFF,#FFFFFF,#FFFFFF,#7733FF","Violet Sci-Fi Port","Energy beams. No trespassers!"],["s","1051","marquee*1","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FF798F,#FFFFFF","Pink marquee","It's both door and a shade!"],["s","1052","marquee*2","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#C60000,#FFFFFF","Red Dragon Marquee","Dragons out and Davids in!"],["s","1053","marquee*3","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#68DADA,#FFFFFF","Aqua Marquee","It's both door and a shade!"],["s","1054","marquee*4","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#F8CD00,#FFFFFF","Yellow Marquee","It's both door and a shade!"],["s","1055","marquee*5","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#707070,#FFFFFF","Graphite Marquee","It's both door and a shade!"],["s","1056","marquee*6","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#719EFD,#FFFFFF","Blue Marquee","It's both door and a shade!"],["s","1057","marquee*7","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#D600E2,#FFFFFF","Purple Marquee","It's both door and a shade!"],["s","1058","marquee*8","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#004AA0,#FFFFFF","Ultramarine Marquee","It's both door and a shade!"],["s","1059","marquee*9","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#8FD94A,#FFFFFF","Green Marquee","It's both door and a shade!"],["s","1060","scifidoor*1","13603","2","1","1","#FFFFFF,#FFAAAA,#FFAAAA,#FFAAAA,#FFFFFF","Pink Spaceship Door","There out of this world!"],["s","1061","scifidoor*2","13603","2","1","1","#FFFFFF,#FFEE66,#FFEE66,#FFEE66,#FFFFFF","Yellow Spaceship Door","There out of this world!"],["s","1062","scifidoor*3","13603","2","1","1","#FFFFFF,#AACCFF,#AACCFF,#AACCFF,#FFFFFF","Lightblue Spaceship Door","There out of this world!"],["s","1063","scifidoor*4","13603","2","1","1","#FFFFFF,#99DD77,#99DD77,#99DD77,#FFFFFF","Emerald Spaceship Door","Protect your pot of gold!"],["s","1064","scifidoor*5","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Spaceship Door","There out of this world!"],["s","1065","scifidoor*6","13603","2","1","1","#FFFFFF,#333333,#333333,#333333,#FFFFFF","Black Monolith","Monolith goes up! Monolith goes down!"],["s","1066","scifidoor*7","13603","2","1","1","#FFFFFF,#AAFFFF,#AAFFFF,#AAFFFF,#FFFFFF","Aqua Spaceship Door","There out of this world!"],["s","1067","scifidoor*8","13603","2","1","1","#FFFFFF,#FF99CC,#FF99CC,#FF99CC,#FFFFFF","Purple Spaceship Door","There out of this world!"],["s","1068","scifidoor*9","13603","2","1","1","#FFFFFF,#4488FF,#4488FF,#4488FF,#FFFFFF","Blue Spaceship Door","There out of this world!"],["s","1069","scifidoor*10","13603","2","1","1","#FFFFFF,#BB99FF,#BB99FF,#BB99FF,#FFFFFF","Violet Spaceship Door","There out of this world!"],["s","1070","wooden_screen*0","2429","0","1","2","#ffffff,#ffffff,#ffffff,#ffffff,#ffffff,#ffffff","White Oriental Screen","Add an exotic touch to your room"],["s","1071","wooden_screen*1","2429","0","1","2","#ffffff,#ffffff,#FFA795,#FFA795,#ffffff,#ffffff","Pink Oriental screen","Add an exotic touch to your room"],["s","1072","wooden_screen*2","2429","0","1","2","#ffffff,#ffffff,#BD0000,#BD0000,#ffffff,#ffffff","RosewoodScreen","Add an exotic touch to your room"],["s","1073","wooden_screen*3","2429","0","1","2","#ffffff,#ffffff,#79E4B3,#79E4B3,#ffffff,#ffffff","Aqua Oriental Screen","Add an exotic touch to your room"],["s","1074","wooden_screen*4","2429","0","1","2","#ffffff,#ffffff,#F7B800,#F7B800,#ffffff,#ffffff","Golden Oriental Screen","Add an exotic touch to your room"],["s","1075","wooden_screen*5","2429","0","1","2","#ffffff,#ffffff,#778B61,#778B61,#ffffff,#ffffff","Gray Oriental Screen","Add an exotic touch to your room"],["s","1076","wooden_screen*6","2429","0","1","2","#ffffff,#ffffff,#72B6D1,#72B6D1,#ffffff,#ffffff","Blue Oriental Screen","Add an exotic touch to your room"],["s","1077","wooden_screen*7","2429","0","1","2","#ffffff,#ffffff,#DA2591,#DA2591,#ffffff,#ffffff","Purple Oriental Screen","Add an exotic touch to your room"],["s","1078","wooden_screen*8","2429","0","1","2","#ffffff,#ffffff,#004B5E,#004B5E,#ffffff,#ffffff","Night Blue Oriental Screen","Add an exotic touch to your room"],["s","1079","wooden_screen*9","2429","0","1","2","#ffffff,#ffffff,#A0BE1F,#A0BE1F,#ffffff,#ffffff","Green Oriental Screen","Add an exotic touch to your room"],["s","1080","pillar*0","2429","0","1","1","#ffffff,#ffffff,#ffffff","Greek Pillar","Classy architect, for holding up ceilings!"],["s","1081","pillar*1","2429","0","1","1","#ffffff,#FFD0D2,#FFD0D2","Pink Marble Pillar","Ancient and stately"],["s","1082","pillar*2","2429","0","1","1","#ffffff,#7B5922,#7B5922","Nordic Pillar","Ancient and stately"],["s","1083","pillar*3","2429","0","1","1","#ffffff,#BDCDEA,#BDCDEA","blue pillar","Ancient and stately"],["s","1084","pillar*4","2429","0","1","1","#ffffff,#71797C,#71797C","Dark Ages Pillar","From the time of the Kick Warz"],["s","1085","pillar*5","2429","0","1","1","#ffffff,#CEDD65,#CEDD65","Pagan Pillar","Find your natural roots"],["s","1086","pillar*6","2429","0","1","1","#ffffff,#962725,#962725","Terracotta Pillar","Ancient and stately"],["s","1087","pillar*7","2429","0","1","1","#ffffff,#E6D000,#E6D000","Atlantean Pillar","Recovered from Habblantis"],["s","1088","pillar*8","2429","0","1","1","#ffffff,#9A924B,#9A924B","Roman Pillar","All roads lead to Rome"],["s","1089","pillar*9","2429","0","1","1","#ffffff,#B2A69D,#B2A69D","Rock Pillar","Ancient and stately"],["s","1090","pillow*0","437","0","1","1","#ffffff,#ffffff,#ffffff,#ffffff","White Lace Pillow","Minimalist comfort!"],["s","1091","pillow*1","437","0","1","1","#FF8888,#FF8888,#ffffff,#ffffff","Pink Fluffy Pillow","Puffy, soft and huge"],["s","1092","pillow*2","437","0","1","1","#F00000,#F00000,#ffffff,#ffffff","Red Silk Pillow","Puffy, soft and huge"],["s","1093","pillow*3","437","0","1","1","#63C9A0,#63C9A0,#ffffff,#ffffff","Turquoise Satin Pillow","Puffy, soft and huge"],["s","1094","pillow*4","437","0","1","1","#FFBD18,#FFBD18,#ffffff,#ffffff","Gold Feather Pillow","Puffy, soft and huge"],["s","1095","pillow*5","437","0","1","1","#494D29,#494D29,#ffffff,#ffffff","Black Leather Pillow","Puffy, soft and huge"],["s","1096","pillow*6","437","0","1","1","#5DAAC9,#5DAAC9,#ffffff,#ffffff","Blue Cotton Pillow","Puffy, soft and huge"],["s","1097","pillow*7","437","0","1","1","#E532CA,#E532CA,#ffffff,#ffffff","Purple Velvet Pillow","Bonnie's pillow of choice!"],["s","1098","pillow*8","437","0","1","1","#214E68,#214E68,#ffffff,#ffffff","Navy Cord Pillow","Puffy, soft and huge"],["s","1099","pillow*9","437","0","1","1","#B9FF4B,#B9FF4B,#ffffff,#ffffff","Green Wooly Pillow","Puffy, soft and VERY fluffy!"],["s","1100","scifirocket*0","15444","0","1","1","#FFFFFF,#FFFFFF,#DD2D22,#FFFFFF","Mars Smoke Machine","See in 2007 with a bang!"],["s","1101","scifirocket*1","15444","0","1","1","#FFFFFF,#FFFFFF,#FFBC00,#FFFFFF","Saturn Smoke Machine","There is always space for this!"],["s","1102","scifirocket*2","15444","0","1","1","#FFFFFF,#FFFFFF,#5599FF,#FFFFFF","Earth Smoke Machine","A little closer to home!"],["s","1103","scifirocket*3","15444","0","1","1","#FFFFFF,#FFFFFF,#02BB70,#FFFFFF","Endor Smoke Machine","Caution! Unknown Location!"],["s","1104","scifirocket*4","15444","0","1","1","#FFFFFF,#FFFFFF,#FF5577,#FFFFFF","Venus Smoke Machine","Welcome... to planet love"],["s","1105","scifirocket*5","15444","0","1","1","#FFFFFF,#FFFFFF,#555555,#FFFFFF","Uranus Smoke Machine","From the unknown depths of space"],["s","1106","scifirocket*6","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Mercury Smoke Machine","Too hot to handle!"],["s","1107","scifirocket*7","15444","0","1","1","#FFFFFF,#FFFFFF,#00CCCC,#FFFFFF","Jupiter Smoke Machine","Larger than life!"],["s","1108","scifirocket*8","15444","0","1","1","#FFFFFF,#FFFFFF,#BB55CC,#FFFFFF","Pluto Smoke Machine","From a space far, far away!"],["s","1109","scifirocket*9","15444","0","1","1","#FFFFFF,#FFFFFF,#7733FF,#FFFFFF","Neptune Smoke Machine","Something fishy is going on..."],["s","1110","summer_pool*1","2482","0","2","2","#00C8C8,#00C8C8,#00C8C8,#00C8C8,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#00C8C8","Blue Summer Pool","Fancy a dip?"],["s","1111","summer_pool*2","2482","0","2","2","#FF3219,#FF3219,#FF3219,#FF3219,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FF3219","Red Summer Pool","Fancy a dip?"],["s","1112","summer_pool*3","2482","0","2","2","#19C819,#19C819,#19C819,#19C819,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#19C819","Green Summer Pool","Fancy a dip?"],["s","1113","summer_pool*4","2482","0","2","2","#FFD837,#FFD837,#FFD837,#FFD837,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFD837","Yellow Summer Pool","Fancy a dip?"],["s","1114","djesko_turntable","437","0","1","1","","Habbo Turntable","For the music-lovers"],["s","1115","hologram","13633","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Holopod","As if by magic..."],["s","1116","redhologram","13633","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Holo-girl","You're her only hope..."],["s","1117","typingmachine","437","0","1","1","0,0,0","Typewriter","Write that bestseller"],["s","1118","spyro","437","0","1","1","0,0,0","Dragon Egg","The stuff of legend"],["s","1119","rare_globe","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Snow Globe","It's all white.."],["s","1120","rare_xmas_screen","13144","2","2","1","0,0,0","Lappland Greetings","Ho Ho Ho!"],["s","1121","valentinescreen","13144","2","2","1","0,0,0","Holiday Romance","Peep through and smile!"],["s","1122","rare_hammock","437","0","1","3","0,0,0","Hammock","Eco bed"],["s","1123","sandrug","1272","0","2","2","0,0,0","Tropical Beach Rug","Your own paradise island"],["s","1124","rare_snowrug","1272","0","2","2","0,0,0","Snow Rug","Chilled Elegance"],["s","1125","rare_moonrug","437","0","2","2","0,0,0","Moon Patch","Desolation rocks!"],["s","1126","rare_daffodil_rug","437","0","2","2","0,0,0","Petal Patch","A little bit of outdoors indoors.."],["s","1127","plant_cruddy","437","0","1","1","","Aloe Vera","Goodbye Bert..."],["s","1128","rare_mnstr","2429","0","1","1","","Venomus Habbolus","Don't get too close..."],["s","1129","prize1","437","0","1","1","0,0,0","Gold Trophy","Gorgeously glittery"],["s","1130","prize2","437","0","1","1","0,0,0","Silver Trophy","Nice and shiny"],["s","1131","prize3","437","0","1","1","0,0,0","Bronze Trophy","A weighty award"],["s","1132","rare_beehive_bulb","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#55C4DE","Blue Amber Lamp","A honey-hued glow"],["s","11118","rare_beehive_bulb*0","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Blue Amber Lamp","A honey-hued glow"],["s","1133","rare_beehive_bulb*1","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FF4C47","Red Amber Lamp","A honey-hued glow"],["s","1134","rare_beehive_bulb*2","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFC307","Yellow Amber Lamp","A honey-hued glow"],["s","1135","rare_elephant_statue","437","0","1","1","#ffffff,#ffcf1c","Golden Elephant","Say hello to Nelly"],["s","1136","rare_elephant_statue*1","437","0","1","1","#ffffff,#bfbfbf","Silver Elephant","Say hello to Nelly"],["s","1137","rare_elephant_statue*2","437","0","1","1","#ffffff,#d46b00","Bronze Elephant","Say hello to Nelly"],["s","1138","rare_fountain","13603","0","1","1","#FFFFFF,#FFFFFF,#FF6666","Bird Bath (red)","For our feathered friends"],["s","1139","rare_fountain*1","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Bird Bath (grey)","For our feathered friends"],["s","1140","rare_fountain*2","13603","0","1","1","#FFFFFF,#FFFFFF,#B8CF00","Bird Bath (green)","For our feathered friends"],["s","1141","rare_fountain*3","13603","0","1","1","#FFFFFF,#FFFFFF,#59CCCC","Bird Bath (blue)","For our feathered friends"],["s","1142","samovar","13603","2","1","1","#FFFFFF","Russian Samovar","Click for a refreshing cuppa"],["s","1143","md_limukaappi","13603","2","1","1","","Habbo Cola Machine","A sparkling and refreshing pixel drink!"],["s","1144","rare_stand","437","0","1","1","0,0,0","Speaker's Corner","Stand and Deliver!"],["i","1145","poster","11385","","","","","",""],["s","1147","rare_parasol*1","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFF11","Yellow Parasol","Block those rays!"],["s","1148","rare_parasol*2","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FF8F61","Orange Parasol","Block those rays!"],["s","1149","rare_parasol*3","15444","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#D47FFF","Violet Parasol","Block those rays!"],["s","1150","sleepingbag*1","437","0","1","3","#ed796b,#ffffff,#ed796b,#ffffff,#ed796b,#ffffff","Red Sleeping Bag","Ultimate coziness"],["s","1151","solarium_norja","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Solarium","Rejuvenate your pixels!"],["s","1152","throne","437","0","1","1","0,0,0","Throne","Important Habbos only"],["s","1153","prizetrophy7*3","7057","0","1","1","#ffffff,#ffffff,#996600","Bronze Habbo trophy","Bronze Habbo trophy"],["s","1154","prizetrophy4*3","7057","0","1","1","#ffffff,#ffffff,#996600","Fish trophy","Breathtaking bronze"],["s","1155","prizetrophy3*3","7057","0","1","1","#ffffff,#ffffff,#996600","Globe trophy","Breathtaking bronze"],["s","1156","prizetrophy6*3","7057","0","1","1","#ffffff,#ffffff,#996600","Champion trophy","Breathtaking bronze"],["s","1157","prizetrophy4*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Fish trophy","Shiny silver"],["s","1158","prizetrophy7*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Silver Habbo trophy","Silver Habbo trophy"],["s","1159","prizetrophy3*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Globe trophy","Shiny silver"],["s","1160","prizetrophy6*2","7057","0","1","1","#ffffff,#ffffff,#ffffff","Champion trophy","Shiny silver"],["s","1161","prizetrophy4*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Fish trophy","Glittery gold"],["s","1162","prizetrophy3*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Globe trophy","Glittery gold"],["s","1163","prizetrophy7*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Gold Habbo trophy","Gold Habbo trophy"],["s","1164","prizetrophy6*1","7057","0","1","1","#ffffff,#ffffff,#FFDD3F","Champion trophy","Glittery gold"],["s","1165","noob_chair*1","11760","0","1","1","#FFFFFF,#EFE853,#EFE853,#FFFFFF,#EFE853,#EFE853","My first Habbo chair","Lightweight, practical and yellow"],["s","1166","noob_chair*2","11760","0","1","1","#FFFFFF,#4C526E,#8D92AB,#FFFFFF,#8D92AB,#4C526E","My first Habbo chair","Lightweight, practical, with dark blue stripes"],["s","1167","noob_chair*3","11760","0","1","1","#FFFFFF,#985A47,#D9AD90,#FFFFFF,#D9AD90,#985A47","My first Habbo chair","Lightweight, practical, with red stripes"],["s","1168","noob_chair*4","11760","0","1","1","#FFFFFF,#80B1BC,#DAF4FA,#FFFFFF,#DAF4FA,#80B1BC","My first Habbo chair","Lightweight, practical, with light blue stripes"],["s","1169","noob_chair*5","11760","0","1","1","#FFFFFF,#F6C0C0,#F6C0C0,#FFFFFF,#F6C0C0,#F6C0C0","My first Habbo chair","Lightweight, practical, with pink stripes"],["s","1170","noob_chair*6","11760","0","1","1","#FFFFFF,#FFD923,#B1B400,#FFFFFF,#B1B400,#FFD923","My first Habbo chair ","Lightweight, practical with dark yellow stripes"],["s","1171","noob_lamp*1","13603","0","1","1","#F0E641,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (yellow)"],["s","1172","noob_lamp*2","13603","0","1","1","#8D92AB,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (dark blue)"],["s","1173","noob_lamp*3","13603","0","1","1","#D9AD90,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (aubergine)"],["s","1174","noob_lamp*4","13603","0","1","1","#94CBD7,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (light blue)"],["s","1175","noob_lamp*5","13603","0","1","1","#F5779F,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (pink)"],["s","1176","noob_lamp*6","13603","0","1","1","#FFD406,#FFFFFF,#FFFFFF","My first Habbo lamp","Get the light right where you want it (canary yellow)"],["s","1177","noob_rug*1","11760","0","2","3","#FC9C45,#F4EC36","My first Habbo rug","Nice and neat sisal rug with orange edging"],["s","1178","noob_rug*2","11760","0","2","3","#4C526E,#8D92AB","My first Habbo rug","Nice and neat sisal rug with blue edging"],["s","1179","noob_rug*3","11760","0","2","3","#985A47,#D9AD90","My first Habbo rug","Nice and neat sisal rug with aubergine edging"],["s","1180","noob_rug*4","11760","0","2","3","#94CBD7,#DAF4FA","My first Habbo rug","Nice and neat sisal rug with light blue edging"],["s","1181","noob_rug*5","11760","0","2","3","#F5779F,#F6C0C0","My first Habbo rug","Nice and neat sisal rug with pink edging"],["s","1182","noob_rug*6","11760","0","2","3","#C1C400,#FFD406","My first Habbo rug","Nice and neat sisal rug with green edging"],["s","1183","noob_stool*1","11760","0","1","1","#FFFFFF,#F38420","My first Habbo stool","Unfold me and take the weight off (orange)"],["s","1184","noob_stool*2","11760","0","1","1","#FFFFFF,#4C526E","My first Habbo stool","Unfold me and take the weight off (dark blue)"],["s","1185","noob_stool*3","11760","0","1","1","#FFFFFF,#985A47","My first Habbo stool","Unfold me and take the weight off (aubergine)"],["s","1186","noob_stool*4","11760","0","1","1","#FFFFFF,#94CBD7","My first Habbo stool","Unfold me and take the weight off (light blue)"],["s","1187","noob_stool*5","11760","0","1","1","#FFFFFF,#F5779F","My first Habbo stool","Unfold me and take the weight off (pink)"],["s","1188","noob_stool*6","11760","0","1","1","#FFFFFF,#B1B400","My first Habbo stool","Unfold me and take the weight off (green)"],["s","1189","noob_table*1","11760","0","2","2","#FFFFFF,#F1E93A,#F38420","My first Habbo table","Lightweight, practical and orange"],["s","1190","noob_table*2","11760","0","2","2","#FFFFFF,#A5A9BC,#4C526E","My first Habbo table","Lightweight, practical and dark blue"],["s","1191","noob_table*3","11760","0","2","2","#FFFFFF,#D9AD90,#985A47","My first Habbo table","Lightweight, practical and aubergine"],["s","1192","noob_table*4","11760","0","2","2","#FFFFFF,#DAF4FA,#94CBD7","My first Habbo table","Lightweight, practical and light blue"],["s","1193","noob_table*5","11760","0","2","2","#FFFFFF,#F6C0C0,#F5779F","My first Habbo table","Lightweight, practical and pink"],["s","1194","noob_table*6","11760","0","2","2","#FFFFFF,#FFD406,#B1B400","My first Habbo table","Lightweight, practical and green"],["s","1195","carpet_soft_tut","3835","0","1","1","","Welcome Mat","Welcome, enjoy your stay!"],["i","1196","noob_window_double","6035","","","","","Window","Room with a view"],["i","1197","window_70s_narrow","13603","","","","","Small 70s Window","Takes you back"],["i","1198","window_70s_wide","13603","","","","","Large 70s Window","A view of the past"],["i","1199","window_basic","13603","","","","","Basic Window","Plain and simple"],["i","1200","window_chinese_narrow","7173","","","","","Small Oriental Window","Narrow wood carved frame"],["i","1201","window_chinese_wide","6303","","","","","Large Oriental Window","Dreaming of a Chinese summer"],["i","1202","window_double_default","6303","","","","","Double Window","Twice as good a view"],["i","1203","window_golden","6303","","","","","Golden Window","An expensive view"],["i","1204","window_grunge","13603","","","","","Grunge Window","Don't get too close!"],["i","1205","window_romantic_narrow","13603","","","","","Small Romantic Window","A beautiful view"],["i","1206","window_romantic_wide","13603","","","","","Large Romantic Window","Heavenly scent of flowers"],["i","1207","window_single_default","6303","","","","","Single Window","A simple view"],["i","1208","window_square","6303","","","","","Glass Square Window","Let's get creative!"],["i","1209","window_triple","6303","","","","","Bay Window","Now THAT'S a view!"],["i","1210","xmas_light","13603","","","","","Christmas Lights","Seen Rudolph's nose anywhere?"],["s","1211","christmas_poop","3438","0","1","1","","Reindeer Droppings","Bob?s magical fertilizer"],["s","1212","christmas_reindeer","15444","2","1","2","","Reindeer","Prancer becomes Rudolph in a click!"],["s","1213","christmas_sleigh","13144","2","2","2","","Winter Sleigh","Ready for your Xmas cheer"],["s","1214","tree6","3438","0","1","1","","Flashy Christmas Tree","The future's bright!"],["s","1215","tree7","3438","0","1","1","0,0,0","Snowy Christmas Tree","Walking in a winter wonderland!"],["s","1216","xmas_cstl_gate","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Ice Castle Gate","Let that icy draft out!"],["s","1217","xmas_cstl_twr","3438","0","1","1","0,0,0","Ice Castle Tower","All I see from up here is snow!"],["s","1218","xmas_cstl_wall","3438","0","2","1","0,0,0","Ice Castle Wall","Solid blocks of ice and snow"],["s","1219","xmas_icelamp","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","Ice Block Lantern","Light up the winter nights"],["s","1220","plant_maze_snow","13144","2","2","1","","Snowy Maze Shrubbery","Labyrinths galore!"],["s","1221","plant_mazegate_snow","13603","2","2","1","","Snowy Maze Gate","There's snow way through!"],["s","1222","safe_silo_pb","13603","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","postbank Safe","Totally shatter-proof!"],["s","1223","exe_bardesk","3438","0","1","1","","Executive Bar Desk","Divide the profits!"],["s","1224","exe_corner","3438","0","1","1","","Executive Corner Desk","Tuck it away"],["s","1225","exe_chair","3438","0","1","1","","Executive Sofa Chair","Relaxing leather comfort"],["s","1226","exe_chair2","11385","0","1","1","","Executive Boss Chair","You're fired!"],["s","1227","exe_drinks","3438","2","1","1","","Executive Drinks Tray","Give a warm welcome"],["s","1228","exe_sofa","3438","0","3","1","","3-Seater Sofa","Relaxing leather comfort"],["s","1229","exe_table","13603","0","3","2","","Executive Desk","Take a memo, Featherstone"],["s","1230","exe_rug","11385","0","3","3","","Executive Rug","Please remove your shoes!"],["s","1231","exe_s_table","13603","0","2","2","","Executive Glass Table","Get a clear reflection!"],["s","1232","exe_globe","13603","0","1","1","","Power Globe","The power is yours!"],["s","1233","exe_plant","13603","0","1","1","","Executive Plant","Shimmering hedge trimming!"],["s","1234","fortune","13633","0","1","1","","Crystal Ball","Gaze into the future"],["s","1235","val_choco","13603","0","1","1","","Heart Shaped Chocs","One for them. Two for me!"],["s","1236","val_randomizer","13603","2","4","1","","Love Randomiser","Surprise surprise! (Cilla Black not included)"],["i","1237","hrella_poster_1","3839","","","","","Porthole","Brighten up your cabin"],["i","1238","hrella_poster_2","4134","","","","","Life Buoy","For those scary Lido moments"],["i","1239","hrella_poster_3","3839","","","","","Anchor","Don't drift away!"],["s","1240","val_teddy*1","13144","0","1","1","#BFBFBF,#FFFFFF,#BFBFBF,#BFBFBF,#FFFFFF","Grey Share Bear","The grey bear of affection"],["s","1241","val_teddy*2","13144","0","1","1","#EE7EA4,#FFFFFF,#EE7EA4,#EE7EA4,#FFFFFF","Pink Share Bear","The pink bear of passion"],["s","1242","val_teddy*3","13144","0","1","1","#7CB135,#FFFFFF,#7CB135,#7CB135,#FFFFFF","Green Share Bear","The green bear of friendship"],["s","1243","val_teddy*4","13144","0","1","1","#965014,#FFFFFF,#965014,#965014,#FFFFFF","Brown Share Bear","The brown bear of naughtiness"],["s","1244","val_teddy*5","13144","0","1","1","#FFD837,#FFFFFF,#FFD837,#FFD837,#FFFFFF","Yellow Share Bear","The yellow bear of understanding"],["s","1245","val_teddy*6","13144","0","1","1","#ABD0D2,#FFFFFF,#ABD0D2,#ABD0D2,#FFFFFF","Blue Share Bear","The blue bear of happiness"],["s","1246","sand_cstl_gate","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Sand Castle Gate","Keep the sand out!"],["s","1247","sand_cstl_twr","4134","0","1","1","0,0,0","Sand Castle Tower","Look out for sand storms!"],["s","1248","sand_cstl_wall","4134","0","2","1","0,0,0","Sand Castle Wall","Not entirely water proof!"],["s","1249","summer_chair*1","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#ABD0D2","Aqua Deck Chair","Got your swimming trunks?"],["s","1250","summer_chair*2","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FF99BC","Pink Deck Chair","Waterproof!"],["s","1251","summer_chair*3","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#525252","Black Deck Chair","Rest from castle building!"],["s","1252","summer_chair*4","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Deck Chair","Sit back and enjoy!"],["s","1253","summer_chair*5","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#F7EBBC","Deck Chair","Beige"],["s","1254","summer_chair*6","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#5EAAF8","Deck Chair","Blue"],["s","1255","summer_chair*7","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#92D13D","Green Deck Chair","Reserved!"],["s","1256","summer_chair*8","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFD837","Yellow Deck Chair","Got your sun cream?"],["s","1257","summer_chair*9","13144","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#E14218","Red Deck Chair","Got your sunglasses?"],["s","1258","summer_grill*1","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#00C8C8,#00C8C8,#00C8C8,#00C8C8","Blue Barbeque Grill","Plenty of ribs on that barbie"],["s","1259","summer_grill*2","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FF3219,#FF3219,#FF3219,#FF3219","Red Barbeque Grill","Plenty of shrimp on that barbie"],["s","1260","summer_grill*3","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#19C819,#19C819,#19C819,#19C819","Green Barbeque Grill","Plenty of steak on that barbie"],["s","1261","summer_grill*4","13603","0","2","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFD837,#FFD837,#FFD837,#FFD837","Green Barbeque Grill","Plenty of burgers on that barbie"],["s","1262","sw_table","4134","0","1","2","","Adventure Desk","Where will you go today?"],["i","1263","sw_swords","4134","","","","","Swords","The other kind of fencing..."],["i","1264","sw_stone","4134","","","","","Mysterious Necklace","Why does the stone glow at night?"],["s","1265","sw_raven","4495","0","1","1","","Raven","Lurking... with intent"],["i","1266","sw_hole","4134","","","","","Ventilation Duct","Full of creepy crawlies"],["s","1267","sw_chest","13758","0","1","2","","Ye Olde Chest","One size fits all"],["s","1268","jp_katana1","5684","0","1","1","","HC Katana Red","Essential chopping!"],["s","1269","jp_katana2","5684","0","1","1","","Katana Blue","Let's get chopping!"],["s","1270","jp_katana3","5684","0","1","1","","Katana Green","Hurry! Chop chop!"],["s","1271","jp_table","13603","0","2","2","","Chabu Dai","Japanese coffee table"],["s","1272","jp_rare","13603","0","2","2","","Shishi Odishi","Traditional Japanese water ornament"],["s","1273","jukebox_ptv*1","7053","2","1","1","#FFFFFF,#FFFFFF","Jukebox Pacha TV","Jukebox Pacha TV"],["s","1274","calippo","13603","2","1","1","","Calippo icecream machine","Basic model"],["s","1275","nouvelle_trax","13603","2","1","1","","Nouvelle Trax",""],["i","1276","md_can","13603","","","","","Bubble Juice Can","Enough bubbling juice for one evening"],["i","1277","md_logo_wall","13603","","","","","Bubble Juice Logo","Bubble up your wall"],["s","1278","md_rug","4638","0","4","4","","Bubble Juice Floor","Bubbles under your steps"],["s","1279","rclr_lamp","13603","0","1","1","","Moon Lamp","Light your space"],["s","1280","sound_set_53","6035","0","1","1","","Snowy Surprise","Break the icy silence"],["s","1281","sound_set_54","6035","0","1","1","","Oh Blinging Tree","Tune into Christmas"],["s","1282","jp_teamaker","13603","2","1","1","","Japanese Teamaker","Makes a steaming brew!"],["s","1283","tiki_tray0","6035","0","1","1","","Empty Tray","That was tasty!"],["s","1284","tiki_tray1","6035","0","1","1","","Tiki Fruit Tray","Refreshing!"],["s","1285","tiki_tray2","6035","0","1","1","","Tiki Pineapple Plate","Fresh and juicy!"],["s","1286","tiki_tray3","6035","0","1","1","","Tiki Fish Tray","Freshly caught and BBQ'd!"],["s","1287","tiki_tray4","6035","0","1","1","","Tiki Pig Tray","Slow roastet pig head"],["s","1288","noob_plant","11760","0","1","1","","Lucky Bamboo","Starter Furni"],["i","1289","tampax_wall","13603","","","","","Tampax wall","Tampax wall"],["s","1290","tampax_rug","6035","0","3","4","","Tampax rug","Tampax rug"],["i","1291","tiki_wallplnt","6035","","","","","Jungle Wallplant","Dense jungle ahead!"],["s","1292","tiki_bardesk","6035","0","1","1","","Tiki Bar Desk","Serving up Summer"],["s","1293","tiki_bench","6035","0","1","1","","Tiki Bar Stool","Sit back and relax!"],["s","1294","tiki_bflies","13603","0","1","1","","Butterflies","Get your island beauties"],["s","1295","tiki_junglerug","6035","0","2","2","","Jungle Patch","Bring your machete"],["s","1296","tiki_parasol","13603","0","1","1","","Tiki Parasol","Funky party lighting"],["s","1297","tiki_sand","6035","0","2","2","","Island Sand Patch","Life's a beach!"],["s","1298","tiki_statue","13603","2","1","1","","Tribal Statue","Burn baby burn.. tiki inferno"],["s","1299","tiki_torch","13603","2","1","1","","Beach Torch","Lighting the way"],["s","1300","tiki_toucan","6035","0","1","1","","Toucan","Ermm... *pecks*"],["s","1301","tiki_waterfall","6035","0","3","2","","Tiki Waterfall","Fresh mountain water"],["i","1302","tiki_surfboard","13603","","","","","Surfboard","Ride the waves dude!"],["s","1303","tiki_corner","6035","0","1","1","","Tiki Bar Corner","Nothing says a bar like a corner?"],["s","1304","rare_mmmth","2116","0","2","1","","Sofa Mammut","Pre Historic Sofa"],["s","1305","bw_croc","2482","0","1","3","","Inflatable Croc","Never smile at a Crocodile."],["s","1306","holo_dragon","13603","0","1","1","","Holo Dragon","Dragon Hologram"],["s","1329","diner_shaker","13603","0","1","1","","Diner Shaker","So cool it's shaking!"],["s","1332","diner_rug","11385","0","2","2","","Diner Floor","Shiny polished finish"],["s","1333","svnr_de","13603","0","1","1","","German Gnome","October 2008, 4/6"],["s","1334","svnr_uk","8067","0","1","1","","Big Ben","September 2008, 3/6"],["s","1335","svnr_it","13144","2","2","1","","Venetian Gondola","July 2008, 1/6"],["s","1336","svnr_nl","13144","2","1","2","","Dutch Clog","August 2008, 2/6"],["s","1337","diner_tray_0","6303","0","1","1","","Empty Plate","Had your fill, or running on empty?"],["s","1338","diner_tray_1","6303","0","1","1","","Burger and Chips","99% British beef!"],["s","1339","diner_tray_2","6303","0","1","1","","Steak and Mash","Juicy sirloin with onion gravy"],["s","1340","diner_tray_3","6303","0","1","1","","Spaghetti Meatballs","Juicy tomato sauce included!"],["s","1341","diner_tray_4","6303","0","1","1","","Pancakes","Smothered in syrup and butter!"],["s","1342","diner_tray_5","6303","0","1","1","","Bacon and Eggs","Smoky bacon and free range eggs!"],["s","1343","diner_tray_6","6303","0","1","1","","Ice Cream Sundae","Vanilla, chocolate and strawberry!"],["s","1344","diner_tray_7","13603","0","1","1","","Accompaniments","Tommy and Mustard"],["i","1346","ads_sunnyd","6321","","","","","Sunny Delight","Sunny Delight"],["s","1348","sound_set_65","6035","0","1","1","","Sound set 65",""],["s","1349","sound_set_67","6035","0","1","1","","Sound set 67",""],["s","1351","sound_set_68","6035","0","1","1","","Sound set 68",""],["s","1352","sound_set_69","6035","0","1","1","","Sound set 69",""],["s","1353","sound_set_70","6035","0","1","1","","Sound set 70",""],["s","1354","sound_set_66","6035","0","1","1","","Sound set 66",""],["s","1355","song_disk","7053","0","1","1","","Traxdisc","Burn, baby burn"],["i","1358","window_diner","13603","","","","","Large Diner Window","Panoramic view of America"],["i","1359","window_diner2","13603","","","","","Small Diner Window","Good grub, good view!"],["s","1360","svnr_aus","6303","2","1","1","","Aussie Outback","November 2008, 5/6"],["s","1365","ads_dave_cns","9559","0","1","1","","Dave cns","ads Dave cns"],["i","1366","ads_dave_wall","9559","","","","","Dave Wall","ads dave wall"],["i","1367","diner_walltable","6820","","","","","Diner Side Table","Attaches to the wall"],["s","1371","present_gen","3835","0","1","1","","Gift","What's inside?"],["s","1372","present_gen1","3835","0","1","1","","Gift","What's inside?"],["s","1373","present_gen2","3835","0","1","1","","Gift","What's inside?"],["s","1374","present_gen3","3835","0","1","1","","Gift","What's inside?"],["s","1375","present_gen4","3835","0","1","1","","Gift","What's inside?"],["s","1376","present_gen5","3835","0","1","1","","Gift","What's inside?"],["s","1377","present_gen6","3835","0","1","1","","Gift","What's inside?"],["s","1378","greek_corner","7053","0","1","1","","Greek Corner","Tuck it away!"],["s","1379","greek_gate","13603","0","2","1","","Greek Gate","Enter mortal, exit immortal!"],["s","1380","greek_pillars","7053","0","2","1","","Greek Pillars","Architectural splendor!"],["s","1381","greek_seat","7053","0","1","1","","Greek Seat","Park your bot on this stone slab!"],["s","2195","greek_block","7053","0","2","1","","Greek Block","A nice stone block"],["s","1382","greektrophy*1","7235","2","1","1","#FFFFFF,#FFFFFF,#FFDD3F","Greek trophy","Glittery gold"],["s","1383","greektrophy*2","7235","2","1","1","#FFFFFF,#FFFFFF,#DDDDDD","Greek trophy","Shiny silver"],["s","1384","greektrophy*3","7235","2","1","1","#FFFFFF,#FFFFFF,#996600","Greek trophy","Breathtaking bronze"],["s","1385","easy_bowl2","7053","0","1","1","","Easy bowl2","old campaign product desc"],["s","1386","easy_carpet","7053","0","4","4","0,0,0","Easy carpet","Easy carpet"],["i","1387","easy_poster","7053","","","","","Easy poster","Easy mac promotion"],["i","1388","ads_nokia_logo","13603","","","","","Nokia Phone","Connecting People"],["i","1389","ads_nokia_phone","13603","","","","","ads_nokia_phone name","ads_nokia_phone desc"],["i","1390","window_hole","13603","","","","","Window","Window"],["i","1391","window_skyscraper","7339","","","","","Skyscraper Window","Dizzy heights!"],["i","1392","landscape","13633","","","","","",""],["i","1393","landscape","13633","","","","","",""],["i","1394","landscape","13633","","","","","",""],["i","1395","landscape","13633","","","","","",""],["i","1396","landscape","13633","","","","","",""],["i","1397","landscape","13633","","","","","",""],["s","1400","det_body","7553","0","2","3","","Chalk Outline","They were a great Habbo..."],["s","1401","det_divider","13603","0","2","1","","Police Divider","Crime scene, stay out!"],["i","1402","det_bhole","13603","","","","","Bullet Hole","That was close!"],["s","1403","hcc_chair","7553","0","1","1","","Trendy Stool","Shiny varnished finish"],["s","1404","hcc_minibar","13603","2","1","1","","Minibar","Cool look, cool drinks!"],["s","1405","hcc_shelf","7553","0","1","2","","Bookshelf","Your own Habbo archives"],["s","1406","hcc_sofa","7553","0","2","1","","Low Back Sofa","Get your friends over!"],["s","1407","hcc_sofachair","7553","0","1","1","","Reclining Chair","Put your feet up!"],["s","1408","hcc_stool","7553","0","1","1","","Antique Stool","For larger gatherings"],["s","1409","sob_carpet1","8067","0","3","5","","Street of Bobba","SOB flamer"],["s","1418","igor_seat","13603","0","1","1","","Hump Massaging Chair","My Hump, My Hump, My Hump"],["s","1419","ads_igorbrain","13603","2","1","1","","The Brain","Mwahhahahahaha brains..."],["s","1420","ads_igorraygun","13603","0","1","2","","Igor Ray Gun","Shoot down your foes!"],["s","1421","ads_igorswitch","13603","0","1","1","","Igor Switch","Nothing will work without this being on!"],["i","1422","hween08_wndwb","13603","","","","","Broken Window (small)","Was it a rock or a dictionary?"],["i","1423","hween08_wndw","13603","","","","","Broken Window (large)","Was it a bird or a parsnip?"],["i","1424","hween08_rad","9069","","","","","Nuclear Radiation Sign","Warning! Smelly cheese ahead!"],["i","1425","hween08_bio","9069","","","","","Biohazard Sign","Every sock bin needs one!"],["s","1427","hween08_bath2","15444","0","1","2","","Ooze Bath","Relax. Take it oozey!"],["s","1428","hween08_bbag","9069","0","1","3","","Body Bag","Not a nice place to catch some Zzz's"],["s","1429","hween08_bed","10278","0","1","3","","Hospital Bed (blood)","You're in safe hands..."],["s","1430","hween08_bed2","10278","0","1","3","","Hospital Bed (ooze)","I'm wicked and I'm oozey!"],["s","1431","hween08_curtain","9069","0","3","1","","Hospital Curtain (blood)","Doctors at work"],["s","1432","hween08_curtain2","9069","0","3","1","","Hospital Curtain (ooze)","Nurses at work"],["s","1433","hween08_defibs","9069","0","1","1","","Life Support (blood)","Brought back to Earth with a shock!"],["s","1434","hween08_defibs2","9069","0","1","1","","Life Support (ooze)","Brought back to Earth with a shock!"],["s","1435","hween08_manhole","13603","0","1","1","","Manhole","Watch your step..."],["s","1436","hween08_sink","13603","2","1","1","","Blood Sink","Nasty shaving accident?"],["s","1437","hween08_sink2","13603","2","1","1","","Ooze Sink","Who picked a spot?"],["s","1438","hween08_trll","9069","0","1","1","","Surgeon's Trolley","Chop, poke, ouch!"],["i","1439","hw08_xray","13603","","","","","X-Ray Poster","For viewing your bruises"],["s","1440","party_ball","13603","0","1","1","","Glitter Ball","Every party MUST have one!"],["s","1441","party_barcorn","13603","0","1","1","","Bar Corner","Every party needs one!"],["s","1442","party_bardesk","13603","0","1","1","","Bar Centre","Keep the punters at bay"],["s","1443","party_beamer","13603","2","1","1","","Dance Floor Beamer","Get some lights to match your dancing shapes!"],["s","1444","party_block","9559","0","1","1","","Small Stage","Build yourself a stage to host events!"],["s","1445","party_block2","9559","0","2","2","","Stage Block Large","Make mine a large!"],["s","1446","party_chair","13603","0","1","1","","High Class Bar Stool","Sit high and people watch on this!"],["s","1447","party_discol","13603","2","1","1","","Spotlight","Focus your attention or dance within its glow!"],["s","1448","party_djtable","9559","0","1","2","","DJ Table","Scratch it, spin it and play some banging tracks!"],["s","1449","party_floor","13603","0","2","2","","Disco Floor","The perfect place to throw some shapes"],["i","1450","party_led","13603","","","","","Big Wall Lights","Flashing Neon lights on the wall!"],["s","1451","party_mic","9559","0","1","1","","Microphone","Sing, MC, shout out to your friends!"],["i","1452","party_neon1","13603","","","","","Neon Right Arrows","Find your way right in the dark!"],["i","1453","party_neon2","13603","","","","","Neon Left Arrows","Find your way left in the dark!"],["i","1454","party_neon3","13603","","","","","Neon Pink Flamingo","Celebrate the Eighties with this!"],["i","1455","party_neon4","13603","","","","","Neon Skull Light","A dull wall be gone!"],["i","1456","party_neon5","13603","","","","","Neon Heart Light","I heart Neon!"],["s","1457","party_ravel","13603","2","1","1","","Dance Floor Laser","Meet the 22nd Century's dance floor lighting!"],["s","1458","party_seat","9559","0","1","1","","Club seat","Rest your dancing feet on this!"],["i","1459","party_shelf","13633","","","","","Bar Shelf","Line up your beverages!"],["s","1460","party_table","13603","0","1","1","","Glass High Bar Table","Chat with your friends over this!"],["s","1461","party_tray","13603","2","1","1","","Club Tray","Rest your drinks on this!"],["s","1462","party_tube_bubble","13603","0","1","1","","Bubbles Machine","Bubbles! Bubbles! Lovely bubbles!"],["s","1463","party_tube_lava","13603","0","1","1","","Lava Lamp","Despite being made a lava, it is very cool."],["i","1464","party_wc_boy","13603","","","","","Boys Toilets","Stand up or sitting down, this is for the Boys only!"],["i","1465","party_wc_girl","13603","","","","","Girls Toilets","Girls only please."],["i","1466","ads_cmusic","9559","","","","","TBD Central Musical TV","TBD Click it away"],["i","1467","party_lights","13603","","","","","Party lights","Dance dance dance!"],["s","1493","xmas08_chair","10278","0","1","1","","Ice chair","Make sure you wear trousers!"],["s","1494","xmas08_cubetree","10278","0","1","1","","Cube Tree","So ice Cubes DO grow on trees..."],["s","1495","xmas08_dvdr1","10278","0","2","1","","Ice divider","Stone and ice in one snowy wall!"],["s","1496","xmas08_dvdr2","13603","0","1","1","","Icy Divider Corner","What's a dividing wall without a corner?"],["s","1497","xmas08_geysir","10278","0","2","2","","Geyser","Nothing quite like a warm exploding water hole!"],["s","1498","xmas08_hole","13603","2","1","1","","Ice Fish Hole","What can you catch?"],["s","1499","xmas08_hottub","13144","2","2","2","","Hot Tub","Party time in the Arctic people!"],["s","1500","xmas08_icerug","13603","0","2","2","","Ice Patch","Ice, Snow or Wet Slush? All is possible with this."],["s","1501","xmas08_icetree","13603","0","1","1","","Icy Christmas Tree","It can't be Christmas without it!"],["i","1502","xmas08_icewall","13603","","","","","Icy Wall","The stuff Ice Palace's are made of!"],["s","1503","xmas08_lantern","13603","0","1","1","","Snowball Lantern Pile","No dodging this pile!"],["s","1504","xmas08_snowpl","13603","0","1","1","","Snow Seat","Take a rest and warm by a fire perhaps?"],["s","1505","xmas08_table","10278","0","2","2","","Icy table","Keeps your ice cream chilled - guaranteed!"],["s","1506","xmas08_telep","13603","2","1","1","","Icy Teleport","Travel space and time in this freeze block!"],["s","1507","xmas08_trph1","10684","0","1","1","","Arctic Penguin Trophy","Given to those who have adopted ALL 26 penguins!"],["i","1508","xmas08_wallpaper","13603","","","","","Snowy Posters","The Arctic scenery on your walls!"],["s","1509","campfire","13603","0","1","1","","Camp fire","Keep warm on those Arctic nights!"],["s","1510","sound_set_71","10278","0","1","1","","Ice cool sounds","Get your Winter Wonderland sounds for your Trax Machine!"],["s","1511","xmas_snow","10278","0","2","2","","Snow Storm","Get lost in your own blizzard!"],["s","1513","ads_cltele","13603","2","1","1","","Idea Agency Teleporter","Whatever your Idea, it's better out than in."],["s","1514","ads_cldesk","10684","0","2","2","","Idea Agency Desk","Work on your latest agency brief."],["i","1515","ads_clwall1","10684","","","","","Idea Agency Plasma 1","ChildLine"],["i","1516","ads_clwall2","10684","","","","","Idea Agency Plasma 2","Welcome to the Idea Agency"],["s","1517","ads_ob_pillow","13603","0","1","1","","Ob pillow","The perfect way to relax"],["i","1518","ads_ob_wall","10684","","","","","Ob wall","TBD ads_ob_wall"],["s","1519","lostc_merdragon","13603","0","1","3","","Leviathan","1/6 - January 2009"],["s","1520","xmas08_trph2","11202","0","1","1","","Eco Friendly Penguin","Given to Eco friendly Habbo!"],["s","1521","fx_explosion","13603","0","1","1","","The Kaboomer","Blow it up, baby!"],["s","1522","fx_bubble","13603","0","1","1","","Bubbles","Forever blowing bubbles!"],["s","1523","fx_flare","13603","0","1","1","","Firestarter","Light it up!"],["s","1524","ads_igor_flask","13603","0","1","1","","Glass Flask","Down the hatch!"],["s","1525","ads_igor_dsk","13603","0","2","1","","Inventor's Desk","Draw your evil plans"],["i","1526","ads_igorevilb","13603","","","","","Evil Bone","It's not a funny bone"],["i","1527","ads_igor_wall","11967","","","","","Monster Plan Poster","The latest model!"],["i","1528","china_light","13603","","","","","Chinese Wall Lamp","Flickers in the Eastern wind"],["s","1529","china_moongt","13603","1","1","3","","Moongate","A mysterious and eery past"],["s","1530","china_ox","11551","0","1","1","","Ox Statue","An oriental sculpture"],["i","1531","china_pstr1","11551","","","","","Ox Poster","Celebrate the year ahead"],["i","1532","china_pstr2","11551","","","","","Dragon Poster","Majestic flying beast"],["s","1533","kinkysofa","11551","0","2","1","","Kinky Sofa","Don't look at it under UV light!"],["s","1534","bolly_lotus_pool","13603","0","2","2","","Lotus Pool","Giant passionate flower"],["s","1535","bolly_corner","13603","0","1","1","","Bollywood Corner","Tuck it away"],["s","1536","bolly_desk","13603","0","2","1","","Bollywood Desk","To build and divide"],["s","1537","bolly_drapea","13603","0","3","1","","Pink Curtain","Made with the finest materials"],["s","1538","bolly_drapeb","13603","0","3","1","","Green Curtain","Made with the finest materials"],["s","1539","bolly_drapec","13603","0","3","1","","Yellow Curtain","Made with the finest materials"],["s","1540","bolly_pillow","11760","0","1","1","","Star Pillow","Don't forget to make a wish!"],["s","1541","bolly_fountain","13603","0","2","2","","Extravagant Fountain","Now that's refreshing!"],["s","1542","bolly_lamp","13603","0","1","1","","Chandelier","Turn the lights down low"],["s","1543","bolly_monkey_lamp","15444","0","1","1","","Monkey Lamp","Cast a cheeky glow"],["s","1544","bolly_phant","13603","2","1","1","","Elephant MiniBar","For he's a 'bolly' good fellow!"],["s","1545","bolly_petals","13603","0","2","2","","Petal Flurry","Lay down a bed of roses"],["s","1546","bolly_palm","11760","0","1","1","","Palm Tree","Watch for falling coconuts!"],["s","1547","bolly_swing","11760","0","2","1","","Swing","Swing low, my sweet."],["s","1548","bolly_table","11760","0","2","2","","Large Ornamental Table","Decorative granite finish"],["s","1549","bolly_tile1","11760","0","2","2","","Ornamental Tile","The floor is your canvas"],["s","1550","bolly_tile2","11760","0","2","2","","Standard Tile","The floor is your canvas"],["s","1551","bolly_vase","11760","0","1","1","","Vase of Flowers","Let off a heavenly scent"],["s","1552","bolly_tree","13603","0","1","1","","Palm Tree","Bollywood meets Hollywood"],["i","1553","bolly_wdw_wd","13603","","","","","Bolly Window","Sets the scene"],["s","1554","lc_coral_divider_hi","13144","0","2","1","","Large Coral Divider","Keep those pesky sharks out"],["s","1555","lc_coral_divider_low","13144","0","2","1","","Small Coral Divider","Perhaps you could swim over?"],["i","1556","lc_wall1","13144","","","","","Rock Wall","Depths of the ocean"],["i","1557","lc_wall2","13144","","","","","Coral Wall","There's life in the deep blue"],["i","1558","lc_window1","13603","","","","","Wooden Window","The deep blue"],["i","1559","lc_window2","13603","","","","","Aquarium Window","Creates a stunning scene"],["s","1560","lc_anemone","13603","0","1","1","","Anemone","In glorious water colour!"],["s","1561","lc_chair","13144","0","1","1","","Wooden Chair","No rusty nails, in sight"],["s","1562","lc_corner","13144","0","1","1","","Wooden Corner","Tuck it away"],["s","1563","lc_desk","13144","0","2","1","","Wooden Bar Desk","Not for sitting"],["s","1564","lc_stool","13144","0","1","1","","Wooden Stool","Watch out for splinters"],["s","1565","lc_table","13144","0","2","2","","Captain's Table","Treasure map not included"],["s","1566","lc_tile1","13144","0","2","2","","Marble Floor Tile","Elegant underwater flooring"],["s","1567","lc_tile2","13144","0","2","2","","Cobbled Stones","Rocky room foundations"],["s","1568","lc_tubes_corners","13144","0","1","1","","Water Tube Corner","Sends you round the bend"],["s","1569","lc_tubes_straight","13144","0","1","1","","Water Tube Straight","Just go with the flow"],["s","1570","lostc_teleport","13758","2","1","1","","Architeuthis","March Collectable 2009, 3/6"],["s","1571","lc_crab1","13144","0","2","2","","Crab Patch","Careful where you put your feet!"],["s","1572","lc_crab2","13144","0","1","1","","Sally Lightfoot","Careful! She'll give it 'all that'"],["s","1573","lc_glass_floor","13144","0","2","3","","Ocean Window Rug","Under the sea!"],["s","1574","lc_medusa1","13603","0","1","1","","Large Jellyfish Lamp","There's no sting in this tail"],["s","1575","lc_medusa2","13603","0","1","1","","Small Jellyfish Lamp","There's no sting in this tail"],["s","1576","ads_711shelf","13144","0","1","2","","ads 711shelf","ads_711shelf desc"],["s","1577","ads_idol_floor1","13603","0","2","2","","American Idol Floor Tile 1","Create a custom floor in your American Idol room"],["s","1578","ads_idol_desk","11967","0","1","4","","American Idol Judge Desk","No audition room is complete with out one of these!"],["s","1579","ads_idol_ch","15444","0","1","1","","American Idol Judge Chair","Sit comfortably in this American Idol Judge Chair"],["s","1580","ads_idol_floor2","13603","0","2","2","","American Idol Floor Tile 2","Make your American Idol room more unique with these tiles"],["s","1581","ads_idol_piano","13603","0","2","2","","American Idol Piano","Write a beautiful ballad for the performance of your life!"],["i","1582","ads_idol_wall","13603","","","","","American Idol Poster","Set the stage with this poster. Feels like you're really there, right?"],["i","1583","ads_idol_tv","13603","","","","","American Idol TV","TBD Click it away"],["s","1584","ads_idol_mic","12636","0","1","1","","American Idol Microphone","Sing your heart out! Well, not literally..."],["s","1585","ads_idol_drape","13603","0","3","1","","American Idol Curtain","Create the perfect American Idol set with these curtains"],["s","1586","ads_idol_audChr","13603","0","1","1","","American Idol Audience Chair","Fancy seating for your audience!"],["s","1587","ads_idol_pchair","13094","0","1","1","","American Idol Piano Chair","Sit comfortably in this chair with your Idol piano"],["s","1588","ads_idol_trax","13603","2","1","1","","American Idol Trax Machine","Everything sounds sweeter with this custom American Idol Trax Machine!"],["s","1589","ads_idol_tele","13603","0","1","1","","American Idol Star Teleport","This could be the doorway to your dreams!"],["s","1590","ads_idol_jukebox*1","13094","2","1","1","#FFFFFF,#FFFFFF","American Idol Jukebox","I sound better already!"],["s","1591","ads_idol_clRack","13571","0","3","1","","Clothes Rack","Finally! Somewhere to hang up your clothes"],["i","1592","ads_idol_mirror","13603","","","","","Makeup Mirror","Pass the lipstick please!"],["s","1593","ads_idol_voting_ch","13603","0","1","1","","Voting Chair","Do you have a good ear for music?"],["i","1594","ads_mall_winbea","13571","","","","","Mall Beauty Salon","Give yourself some red carpet glamour in the Salon"],["i","1595","ads_mall_wincin","13571","","","","","Mall Cinema Window","What movies are playing in the big silver screen?"],["s","1600","ads_idol_hotspot","13603","2","1","1","","Hot Spot Scoreboard","Stand here and await the verdict!"],["i","1601","eco_curtains1","13632","","","","","Eco Curtain 1","Help keep the heat in"],["i","1602","eco_curtains2","13632","","","","","Eco Curtain 2","Help keep the heat in"],["i","1603","eco_curtains3","13632","","","","","Eco Curtain 3","Help keep the heat in"],["s","1604","eco_cactus1","13632","0","1","1","","Potted Cactus 1","Find a place in the sun"],["s","1605","eco_cactus2","13632","0","1","1","","Potted Cactus 2","Find a place in the sun"],["s","1606","eco_cactus3","13632","0","1","1","","Potted Cactus 3","Find a place in the sun"],["s","1607","eco_chair1","13632","0","1","1","","Eco Stool 1","Green leaf design"],["s","1608","eco_chair2","13632","0","1","1","","Eco Stool 2","Brown floral design"],["s","1609","eco_chair3","13632","0","1","1","","Eco Stool 3","Black and white skull design"],["s","1610","eco_fruits1","13632","2","1","1","","Fruit Bowl 1","From tree to hand in 3 pixels!"],["s","1611","eco_fruits2","13632","2","1","1","","Fruit Bowl 2","From tree to hand in 3 pixels!"],["s","1612","eco_fruits3","13632","2","1","1","","Fruit Bowl 3","From tree to hand in 3 pixels!"],["s","1613","eco_lamp1","15444","1","1","1","","Eco Lamp 1","Energy saving bulb fitted"],["s","1614","eco_lamp2","15444","0","1","1","","Eco Lamp 2","Energy saving bulb fitted"],["s","1615","eco_lamp3","15444","0","1","1","","Eco Lamp 3","Energy saving bulb fitted"],["s","1616","eco_light1","13632","0","1","1","","Eco Light 1","Energy saving bulb fitted"],["s","1617","eco_light2","13632","0","1","1","","Eco Light 2","Energy saving bulb fitted"],["s","1618","eco_light3","13632","0","1","1","","Eco Light 3","Energy saving bulb fitted"],["s","1619","eco_sofa1","13632","0","1","1","","Eco Armchair 1","Relax! You've done your bit"],["s","1620","eco_sofa2","13632","0","1","1","","Eco Armchair 2","Relax! You've done your bit"],["s","1621","eco_sofa3","13632","0","1","1","","Eco Armchair 3","Relax! You've done your bit"],["s","1622","eco_table1","13632","0","2","2","","Eco Coffee Table 1","Recycled wood as standard"],["s","1623","eco_table2","13632","0","2","2","","Eco Coffee Table 2","Recycled wood as standard"],["s","1624","eco_table3","13632","0","2","2","","Eco Coffee Table 3","Recycled wood as standard"],["s","1625","eco_tree1","13632","2","1","1","","Orange Tree","Actually, the tree is green..."],["s","1626","eco_tree2","13632","2","1","1","","Pear Tree","You'll want a pair of these..."],["s","1627","ecotron_box","13632","0","1","1","","Ecotron prize","This item is 100 % recycled."],["s","1701","bump_lights","13603","0","1","1","","Traffic Lights","Ready. Steady. Go!"],["s","1702","bump_road","13603","0","2","2","#FFFFFF,#626D8B,#FFFFFF","Road","Get in the fast lane"],["s","1703","bump_signs","13603","0","1","1","","Road Signs","7 in 1 road sign."],["s","1704","bump_tires","13603","0","1","1","","Bumper Tyres","Gets you back on track"],["s","1705","bump_tottero","13603","0","1","1","","Safety Cone","Not a road bump!"],["s","1706","ktchn_pots","13603","0","2","1","","Hanging Pot Rack","Watch your head!"],["s","1707","ktchn_dvdr","13603","0","2","1","","Kitchel Wall Divider","A contemporary backsplash for any kitchen"],["s","1708","ktchn_light","13603","0","2","1","","Kitchen Light","The perfect lighting fixture to prep your food"],["s","1709","ktchn_countr_2","13603","0","2","1","","Kitchen Counter Large","Vibrant and shiny."],["s","1710","ktchn_cornr","13603","0","1","1","","Kitchen Wall Divider Corner","A contemporary backsplash for any kitchen"],["s","1711","ktchn_gate","13603","0","2","1","","Kitchen Swinging Door","Easy to open and close during a bustling service."],["i","1712","ktchn_knives","13603","","","","","Magnetic Knife Holder","Keeps your knives organized."],["s","1713","ktchn_plates","13603","0","1","1","","Dinner Plates","Who didn't finish their dinner?"],["i","1714","ktchn_oven","13603","","","","","Kitchen Oven","Bake me a pie!"],["i","1715","ktchn_wall","13603","","","","","Kitchen Wall","A contemporary backsplash for any kitchen"],["s","1716","ktchn_countr_1","13603","0","1","1","","Kitchen Counter Small","Vibrant and shiny"],["s","1717","ktchn_sink","13603","0","2","1","","Industrial Sink","Always full of dirty dishes"],["s","1718","ktchn_desk","13603","0","2","1","","Kitchen Work Table","Sanitary for prepping those delicate deserts."],["s","1719","ktchn_fridge","13603","0","1","1","","Kitchen Fridge","Keeps it all cold."],["s","1720","ktchn_inspctr","13603","0","1","1","","Kitchen Inspector","This kitchen needs a serious inspection"],["s","1721","ktchn_hlthNut","13603","0","1","1","","The Health Nut","Run...run.....RUN! I'm running!!!"],["s","1722","ktchn_stove","13603","0","2","1","","Industrial Stove","Keeps it simmering"],["s","1723","ktchn_bBlock","13603","0","1","1","","Butcher's Block","Sanitary for chopping any kind of food"],["s","1724","ktchn_trash","13603","0","1","1","","Trash Can","Smelly if you don't empty it."],["s","1726","hween08_bath","15444","0","1","2","","Blood Bath","Should have chosen the shower!"],["s","1820","penguin_ballet","10278","2","1","1","","Ballerina Penguin","Aptenodytes Vaganova"],["s","1821","penguin_basic","10278","2","1","1","","Emperor Penguin","Aptenodytes Forsteri"],["s","1822","penguin_boxer","10278","2","1","1","","Boxer Penguin","Aptenodytes Ali"],["s","1823","penguin_bunny","10278","2","1","1","","Bunny Penguin","Aptenodytes Euripides"],["s","1824","penguin_clown","10278","2","1","1","","Clown Penguin","Aptenodytes Pennywise"],["s","1826","penguin_elf","10278","2","1","1","","Christmas Penguin","Aptenodytes Jolly"],["s","1827","penguin_glow","10278","2","1","1","","Fluorescent Penguin","Aptenodytes Gamma"],["s","1828","penguin_hunchback","10278","2","1","1","","Beautiful Penguin","Aptenodytes Narcissus"],["s","1829","penguin_icehockey","10278","2","1","1","","Hockey Penguin","Aptenodytes Gretzsky"],["s","1830","penguin_infected","10278","2","1","1","","Infected Penguin","Aptenodytes Bacterium"],["s","1831","penguin_magician","10278","2","1","1","","Magic Penguin","Aptenodytes Houdini"],["s","1832","penguin_musketeer","10278","2","1","1","","Musketeer Penguin","Aptenodytes Aramis"],["s","1833","penguin_ninja","10278","2","1","1","","Ninja Penguin","Aptenodytes Hamburger"],["s","1834","penguin_pilot","10278","2","1","1","","Pilot Penguin","Aptenodytes Biggles"],["s","1835","penguin_pirate","10278","2","1","1","","Pirate Penguin","Aptenodytes Silver"],["s","1836","penguin_punk","10278","2","1","1","","Punk Penguin","Aptenodytes Rotter"],["s","1837","penguin_robot","10278","2","1","1","","Robot Penguin","Aptenodytes Asimov"],["s","1838","penguin_rock","10278","2","1","1","","Disco Penguin","Aptenodytes Foxy"],["s","1839","penguin_skater","10278","2","1","1","","Skater Penguin","Aptenodytes Arto"],["s","1840","penguin_ski","10278","2","1","1","","XC Penguin","Aptenodytes Swish"],["s","1841","penguin_suit","10278","2","1","1","","Executive Penguin","Aptenodytes Loman"],["s","1842","penguin_sumo","10278","2","1","1","","Sumo Penguin","Aptenodytes Musashimaru"],["s","1843","penguin_super","10278","2","1","1","","Superhero Penguin","Aptenodytes Kirby"],["s","1844","penguin_swim","10278","2","1","1","","Summer Penguin","Aptenodytes Buubar"],["s","1845","penguin_wrestler","10278","2","1","1","","Luchador Penguin","Aptenodytes Mysterioso"],["s","1894","penguin_cowboy","25824","2","1","1","","Cowboy Penguin","Aptenodytes Hickok"],["s","1846","svnr_fi","13603","0","1","1","","Finnish Sauna","December 2008, 6/6"],["i","1956","ads_mall_winmus","13571","","","","","Mall Music Shop Window","Strum, play and drum - this shop is a music lover's heaven"],["s","2000","ads_frankb","13603","2","1","1","Brain Lamp","Talk To FRANK Brain Lamp","Look after your brain - Talk To FRANK"],["s","2842","diner_bardesk_gate*1","6303","0","1","1","#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2","Aquamarine Gate","Smothered in syrup and butter!"],["s","2843","diner_bardesk_gate*2","6303","0","1","1","#FFFFFF,#FF99BC,#FFFFFF,#FF99BC,#FFFFFF,#FF99BC","Pink Gate","Smothered in syrup and butter!"],["s","2844","diner_bardesk_gate*3","6303","0","1","1","#FFFFFF,#525252,#FFFFFF,#525252,#FFFFFF,#525252","Black Gate","Smothered in syrup and butter!"],["s","2845","diner_bardesk_gate*4","6303","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Gate","Smothered in syrup and butter!"],["s","2846","diner_bardesk_gate*5","6303","0","1","1","#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC","Beige Gate","Smothered in syrup and butter!"],["s","2847","diner_bardesk_gate*6","6303","0","1","1","#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8","Blue Gate","Smothered in syrup and butter!"],["s","2848","diner_bardesk_gate*7","6303","0","1","1","#FFFFFF,#92D13D,#FFFFFF,#92D13D,#FFFFFF,#92D13D","Green Gate","Smothered in syrup and butter!"],["s","2849","diner_bardesk_gate*8","6303","0","1","1","#FFFFFF,#FFD837,#FFFFFF,#FFD837,#FFFFFF,#FFD837","Yellow Gate","Smothered in syrup and butter!"],["s","2850","diner_bardesk_gate*9","6303","0","1","1","#FFFFFF,#E14218,#FFFFFF,#E14218,#FFFFFF,#E14218","Red Gate","Smothered in syrup and butter!"],["s","5109","diner_bardesk_gate*10","6303","0","1","1","#FFFFFF,#99FFCC,#FFFFFF,#99FFCC,#FFFFFF,#99FFCC","Mint Gate","Smothered in syrup and butter!"],["s","2851","diner_bardesk*1","6303","0","1","1","#FFFFFF,#ABD0D2","Aquamarine Bar","Pull up a stool."],["s","2852","diner_bardesk*2","6303","0","1","1","FFFFFF,#FF99BC","Pink Bar","Pull up a stool."],["s","2853","diner_bardesk*3","6303","0","1","1","#FFFFFF,#525252","Black Bar","Pull up a stool."],["s","2854","diner_bardesk*4","6303","0","1","1","FFFFFF,#FFFFFF","White Bar","Pull up a stool."],["s","2855","diner_bardesk*5","6303","0","1","1","#FFFFFF,#F7EBBC","Beige Bar","Pull up a stool."],["s","2856","diner_bardesk*6","6303","0","1","1","#FFFFFF,#5EAAF8","Blue Bar","Pull up a stool."],["s","2857","diner_bardesk*7","6303","0","1","1","#FFFFFF,#92D13D","Green Bar","Pull up a stool."],["s","2858","diner_bardesk*8","6303","0","1","1","#FFFFFF,#FFD837","Yellow Bar","Pull up a stool."],["s","2859","diner_bardesk*9","6303","0","1","1","#FFFFFF,#E14218","Red Bar","Pull up a stool."],["s","5111","diner_bardesk*10","6303","0","1","1","#FFFFFF,#99FFCC","Mint Bar","Pull up a stool."],["s","2870","diner_bardesk_corner*1","6303","0","1","1","#FFFFFF,#ABD0D2","Aquamarine Corner","Now that's smooth."],["s","2871","diner_bardesk_corner*2","6303","0","1","1","#FFFFFF,#FF99BC","Pink Corner","Now that's smooth."],["s","2872","diner_bardesk_corner*3","6303","0","1","1","#FFFFFF,#525252","Black Corner","Now that's smooth."],["s","2873","diner_bardesk_corner*4","6303","0","1","1","#FFFFFF,#FFFFF","White Corner","Now that's smooth."],["s","2874","diner_bardesk_corner*5","6303","0","1","1","#FFFFFF,#F7EBBC","Beige Corner","Now that's smooth."],["s","2875","diner_bardesk_corner*6","6303","0","1","1","#FFFFFF,#SEAAF8","Blue Corner","Now that's smooth."],["s","2876","diner_bardesk_corner*7","6303","0","1","1","#FFFFFF,#92D13D","Green Corner","Now that's smooth."],["s","2877","diner_bardesk_corner*8","6303","0","1","1","#FFFFFF,#FFD837","Yellow Corner","Now that's smooth."],["s","2878","diner_bardesk_corner*9","6303","0","1","1","#FFFFFF,#E14218","Red Corner","Now that's smooth."],["s","5108","diner_bardesk_corner*10","6303","0","1","1","#FFFFFF,#99FFCC","Mint Corner","Now that's smooth."],["s","2816","diner_cashreg*1","6303","0","1","1","#FFFFFF,#ABD0D2,#FFFFFF","Aquamarine Register","Roll up roll up!"],["s","2817","diner_cashreg*2","6303","0","1","1","#FFFFFF,#FF99BC,#FFFFFF","Pink Register","Roll up roll up!"],["s","2818","diner_cashreg*3","6303","0","1","1","#FFFFFF,#525252,#FFFFFF","Black Register","Roll up roll up!"],["s","2819","diner_cashreg*4","6303","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","White Register","Roll up roll up!"],["s","2820","diner_cashreg*5","6303","0","1","1","#FFFFFF,#F7EBBC,#FFFFFF","Beige Register","Roll up roll up!"],["s","2821","diner_cashreg*6","6303","0","1","1","#FFFFFF,#5EAAF8,#FFFFFF","Blue Register","Roll up roll up!"],["s","2822","diner_cashreg*7","6303","0","1","1","#FFFFFF,#92D13D,#FFFFFF","Green Register","Roll up roll up!"],["s","2823","diner_cashreg*8","6303","0","1","1","#FFFFFF,#FFD837,#FFFFFF","Yellow Register","Roll up roll up!"],["s","2824","diner_cashreg*9","6303","0","1","1","#FFFFFF,#E14218,#FFFFFF","Red Register","Roll up roll up!"],["s","5117","diner_cashreg*10","6303","0","1","1","#FFFFFF,#99FFCC,#FFFFFF","Mint Register","Roll up roll up!"],["s","2861","diner_chair*1","6303","0","1","1","#FFFFFF,#ABD0D2","Aquamarine Stool","Perch in comfort."],["s","2862","diner_chair*2","6303","0","1","1","#FFFFFF,#FF99BC","Pink Stool","Perch in comfort."],["s","2863","diner_chair*3","6303","0","1","1","#FFFFFF,#525252","Black Stool","Perch in comfort."],["s","2864","diner_chair*4","6303","0","1","1","#FFFFFF,#FFFFF","White Stool","Perch in comfort."],["s","2865","diner_chair*5","6303","0","1","1","#FFFFFF,#F7EBBC","Beige Stool","Perch in comfort."],["s","2866","diner_chair*6","6303","0","1","1","#FFFFFF,#5EAAF8","Blue Stool","Perch in comfort."],["s","2867","diner_chair*7","6303","0","1","1","#FFFFFF,#92D13D","Green Stool","Perch in comfort."],["s","2868","diner_chair*8","6303","0","1","1","#FFFFFF,#FFD837","Yellow Stool","Perch in comfort."],["s","2869","diner_chair*9","6303","0","1","1","#FFFFFF,#E14218","Red Stool","Perch in comfort."],["s","5116","diner_chair*10","6303","0","1","1","#FFFFFF,#99FFCC","Mint Stool","Perch in comfort."],["s","2827","diner_gumvendor*1","6303","0","1","1","#FFFFFF,#ABD0D2","Aquamarine Gum Machine","A chewy mouthful."],["s","2828","diner_gumvendor*2","6303","0","1","1","#FFFFFF,#FF99BC","Pink Gum Machine","A chewy mouthful."],["s","2829","diner_gumvendor*3","6303","0","1","1","#FFFFFF,#525252","Black Gum Machine","A chewy mouthful."],["s","2830","diner_gumvendor*4","6303","0","1","1","#FFFFFF,#FFFFFF","White Gum Machine","A chewy mouthful."],["s","2831","diner_gumvendor*5","6303","0","1","1","#FFFFFF,#F7EBBC","Beige Gum Machine","A chewy mouthful."],["s","2832","diner_gumvendor*6","6303","0","1","1","#FFFFFF,#5EAAF8","Blue Gum Machine","A chewy mouthful."],["s","2833","diner_gumvendor*7","6303","0","1","1","#FFFFFF,#92D13D","Green Gum Machine","A chewy mouthful."],["s","2834","diner_gumvendor*8","6303","0","1","1","#FFFFFF,#FFD837","Yellow Gum Machine","A chewy mouthful."],["s","2835","diner_gumvendor*9","6303","0","1","1","#FFFFFF,#E14218","Red Gum Machine","A chewy mouthful."],["s","5113","diner_gumvendor*10","6303","0","1","1","#FFFFFF,#99FFCC","Mint Gum Machine","A chewy mouthful."],["s","2888","diner_sofa_1*1","6303","0","1","1","#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2","Aquamarine Sofa 1","Soft leather in 50s design."],["s","2889","diner_sofa_1*2","6303","0","1","1","#FFFFFF,#FF99BC,#FFFFFF,#FF99BC","Pink Sofa 1","Soft leather in 50s design."],["s","2890","diner_sofa_1*3","6303","0","1","1","#FFFFFF,#525252,#FFFFFF,#525252","Black Sofa 1","Soft leather in 50s design."],["s","2891","diner_sofa_1*4","6303","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Sofa 1","Soft leather in 50s design."],["s","2892","diner_sofa_1*5","6303","0","1","1","#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC","Beige Sofa 1","Soft leather in 50s design."],["s","2893","diner_sofa_1*6","6303","0","1","1","#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8","Blue Sofa 1","Soft leather in 50s design."],["s","2894","diner_sofa_1*7","6303","0","1","1","#FFFFFF,#92D13D,#FFFFFF,#92D13D","Green Sofa 1","Soft leather in 50s design."],["s","2895","diner_sofa_1*8","6303","0","1","1","#FFFFFF,#FFD837,#FFFFFF,#FFD837","Yellow Sofa 1","Soft leather in 50s design."],["s","2896","diner_sofa_1*9","6303","0","1","1","#FFFFFF,#E14218,#FFFFFF,#E14218","Red Sofa 1","Soft leather in 50s design."],["s","5110","diner_sofa_1*10","6303","0","1","1","#FFFFFF,#99FFCC,#FFFFFF,#99FFCC","Mint Sofa 1","Soft leather in 50s design."],["s","2804","diner_sofa_2*1","6303","0","1","1","#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2","Aquamarine Sofa 2","Soft leather in 50s design."],["s","2805","diner_sofa_2*2","6303","0","1","1","#FFFFFF,#FF99BC,#FFFFFF,#FF99BC","Pink Sofa 2","Soft leather in 50s design."],["s","2806","diner_sofa_2*3","6303","0","1","1","#FFFFFF,#525252,#FFFFFF,#525252","Black Sofa 2","Soft leather in 50s design."],["s","2807","diner_sofa_2*4","6303","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Sofa 2","Soft leather in 50s design."],["s","2808","diner_sofa_2*5","6303","0","1","1","#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC","Beige Sofa 2","Soft leather in 50s design."],["s","2809","diner_sofa_2*6","6303","0","1","1","#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8","Blue Sofa 2","Soft leather in 50s design."],["s","2810","diner_sofa_2*7","6303","0","1","1","#FFFFFF,#92D13D,#FFFFFF,#92D13D","Green Sofa 2","Soft leather in 50s design."],["s","2811","diner_sofa_2*8","6303","0","1","1","#FFFFFF,#FFD837,#FFFFFF,#FFD837","Yellow Sofa 2","Soft leather in 50s design."],["s","2812","diner_sofa_2*9","6303","0","1","1","#FFFFFF,#E14218,#FFFFFF,#E14218","Red Sofa 2","Soft leather in 50s design."],["s","5114","diner_sofa_2*10","6303","0","1","1","#FFFFFF,#99FFCC,#FFFFFF,#99FFCC","Mint Sofa 2","Soft leather in 50s design."],["s","2897","diner_table_1*1","6303","0","2","2","#FFFFFF,#ABD0D2","Aquamarine Booth Table","Ready to order?"],["s","2898","diner_table_1*2","6303","0","2","2","#FFFFFF,#FF99BC","Pink Booth Table","Ready to order?"],["s","2899","diner_table_1*3","6303","0","2","2","#FFFFFF,#525252","Black Booth Table","Ready to order?"],["s","2900","diner_table_1*4","6303","0","2","2","#FFFFFF,#FFFFFF","White Booth Table","Ready to order?"],["s","2901","diner_table_1*5","6303","0","2","2","#FFFFFF,#F7EBBC","Beige Booth Table","Ready to order?"],["s","2902","diner_table_1*6","6303","0","2","2","#FFFFFF,#5EAAF8","Blue Booth Table","Ready to order?"],["s","2903","diner_table_1*7","6303","0","2","2","#FFFFFF,#92D13D","Green Booth Table","Ready to order?"],["s","2904","diner_table_1*8","6303","0","2","2","#FFFFFF,#FFD837","Yellow Booth Table","Ready to order?"],["s","2905","diner_table_1*9","6303","0","2","2","#FFFFFF,#E14218","Red Booth Table","Ready to order?"],["s","5112","diner_table_1*10","6303","0","2","2","#FFFFFF,#99FFCC","Mint Booth Table","Ready to order?"],["s","2879","diner_table_2*1","6303","0","3","2","#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2,#FFFFFF,#ABD0D2","Aquamarine Table","Enjoy your meal."],["s","2880","diner_table_2*2","6303","0","3","2","#FFFFFF,#FF99BC,#FFFFFF,#FF99BC,#FFFFFF,#FF99BC,#FFFFFF,#FF99BC","Pink Table","Enjoy your meal."],["s","2881","diner_table_2*3","6303","0","3","2","#FFFFFF,#525252,#FFFFFF,#525252,#FFFFFF,#525252,#FFFFFF,#525252","Black Table","Enjoy your meal."],["s","2882","diner_table_2*4","6303","0","3","2","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White Table","Enjoy your meal."],["s","2883","diner_table_2*5","6303","0","3","2","#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC,#FFFFFF,#F7EBBC","Beige Table","Enjoy your meal."],["s","2884","diner_table_2*6","6303","0","3","2","#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8,#FFFFFF,#5EAAF8","Blue Table","Enjoy your meal."],["s","2885","diner_table_2*7","6303","0","3","2","#FFFFFF,#92D13D,#FFFFFF,#92D13D,#FFFFFF,#92D13D,#FFFFFF,#92D13D","Green Table","Enjoy your meal."],["s","2886","diner_table_2*8","6303","0","3","2","#FFFFFF,#FFD837,#FFFFFF,#FFD837,#FFFFFF,#FFD837,#FFFFFF,#FFD837","Yellow Table","Enjoy your meal."],["s","2887","diner_table_2*9","6303","0","3","2","#FFFFFF,#E14218,#FFFFFF,#FFD837,#FFFFFF,#FFD837,#FFFFFF,#FFD837","Red Table","Enjoy your meal."],["s","5115","diner_table_2*10","6303","0","3","2","#FFFFFF,#99FFCC,#FFFFFF,#99FFCC,#FFFFFF,#99FFCC,#FFFFFF,#99FFCC","Mint Table","Enjoy your meal."],["s","2978","urban_sidewalk","56746","0","2","2","","Sidewalk","Don't step on a crack."],["s","2979","urban_lamp","56746","0","1","1","","Street Lamp","Keeps a dark street brightly lit."],["s","2980","urban_bin","56746","0","1","1","","Urban Trash Can","Street trash."],["s","2981","urban_bench","56746","0","2","1","","Urban Bench","Watch out for gum before you sit."],["s","2982","urban_carsofa","56746","0","2","1","","Taxi Sofa","Seats comfortably for crazy cab drives."],["s","2983","urban_bsktbll","56746","0","1","1","","Urban Basketball Hoop","Slam dunk!"],["s","2984","urban_fence","56746","0","1","2","","Urban Fence","Keeps trouble in our out."],["s","2985","ads_gsArcade_1","56746","0","1","1","","Arcade Machine","Game over"],["s","2986","urban_wpost","56746","0","1","1","","Fire Hydrant","Sometimes used for putting out fires."],["s","2987","urban_fence_corner","56746","0","1","1","","Urban Fence Corner","Keeps trouble in or out."],["s","2988","urban_blocker","56746","0","1","1","","Road Block","Don't go any further."],["s","2989","urban_bench_plain","56746","0","2","1","","Clean Bench","Nothing feels better than sitting on a clean bench."],["i","2990","urban_wall","56746","","","","","Urban Wall","Great for graffiti art."],["s","7988","solarium_norja*1","13603","2","1","1","#FFFFFF,#525252,#FFFFFF","Black Solarium","Rejuvenate your pixels!"],["s","7989","solarium_norja*2","13603","2","1","1","#FFFFFF,#F7EBC0,#FFFFFF","Beige Solarium","Rejuvenate your pixels!"],["s","7990","solarium_norja*3","13603","2","1","1","#FFFFFF,#ABD0D2,#FFFFFF","Urban Solarium","Get the city look!"],["s","7992","solarium_norja*5","13603","2","1","1","#FFFFFF,#EE7EA4,#FFFFFF","Pink Solarium","Rejuvenate your pixels!"],["s","7993","solarium_norja*6","13603","2","1","1","#FFFFFF,#5EAAF8,#FFFFFF","Blue Solarium","Rejuvenate your pixels!"],["s","7994","solarium_norja*7","13603","2","1","1","#FFFFFF,#7CB135,#FFFFFF","Rural Solarium","Fun in the sun!"],["s","7995","solarium_norja*8","13603","2","1","1","#FFFFFF,#FFD837,#FFFFFF","Yellow Solarium","Rejuvenate your pixels!"],["s","7996","solarium_norja*9","13603","2","1","1","#FFFFFF,#E14218,#FFFFFF","Red Solarium","Rejuvenate your pixels!"],["s","9800","one_way_door*1","13603","0","1","1","#ABD0D2,#FFFFFF,#ABD0D2,#FFFFFF,#FFFFFF","Aqua One Way Gate","One at a time!"],["s","9801","one_way_door*2","13603","0","1","1","#525252,#FFFFFF,#525252,#FFFFFF,#FFFFFF","Black HC Gate","One way! The HC way!"],["s","9802","one_way_door*3","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","White HC Gate","One way! The HC way!"],["s","9803","one_way_door*4","13603","0","1","1","#F7EBBC,#FFFFFF,#F7EBBC,#FFFFFF,#FFFFFF","Beige One Way Gate","One at a time!"],["s","9804","one_way_door*5","13603","0","1","1","#EE7EA4,#FFFFFF,#EE7EA4,#FFFFFF,#FFFFFF","Pink One Way Gate","One at a time!"],["s","9805","one_way_door*6","13603","0","1","1","#5EAAF8,#FFFFFF,#5EAAF8,#FFFFFF,#FFFFFF","Blue HC Gate","One way! The HC way!"],["s","9806","one_way_door*7","13603","0","1","1","#7CB135,#FFFFFF,#7CB135,#FFFFFF,#FFFFFF","Green One Way Gate","One at a time!"],["s","9807","one_way_door*8","13603","0","1","1","#FFD837,#FFFFFF,#FFD837,#FFFFFF,#FFFFFF","Yellow One Way Gate","One at a time!"],["s","9808","one_way_door*9","13603","0","1","1","#E14218,#FFFFFF,#E14218,#FFFFFF,#FFFFFF","Red One Way Gate","One at a time!"],["s","9900","sleepingbag*2","437","0","1","3","#d3ff82,#ffffff,#d3ff82,#ffffff,#d3ff82,#ffffff","Lime Sleeping Bag","Ultimate coziness"],["s","9901","sleepingbag*3","437","0","1","3","#8aeded,#ffffff,#8aeded,#ffffff,#8aeded,#ffffff","Ocean Sleeping Bag","Ultimate coziness"],["s","9902","sleepingbag*4","437","0","1","3","#a9bc82,#ffffff,#a9bc82,#ffffff,#a9bc82,#ffffff","Safety Sleeping Bag","Ultimate coziness in SafeSid's sleeping bag!"],["s","9903","sleepingbag*5","437","0","1","3","#9f9f9f,#ffffff,#9f9f9f,#ffffff,#9f9f9f,#ffffff","Graphite Sleeping Bag","Ultimate coziness"],["s","9904","sleepingbag*6","437","0","1","3","#a78acf,#ffffff,#a78acf,#ffffff,#a78acf,#ffffff","Purple Sleeping Bag","Ultimate coziness"],["s","9905","sleepingbag*6","437","0","1","3","#a78acf,#ffffff,#a78acf,#ffffff,#a78acf,#ffffff","Purple Sleeping Bag","Ultimate coziness"],["s","9906","sleepingbag*8","437","0","1","3","#ffcc5a,#ffffff,#ffcc5a,#ffffff,#ffcc5a,#ffffff","Golden Sleeping Bag","Ultimate coziness for SnowStorm winners"],["s","9907","sleepingbag*9","437","0","1","3","#3badf7,#ffffff,#3badf7,#ffffff,#3badf7,#ffffff","eXceptional Sleeping Bag","For eXceptional comfort!"],["s","9908","ads_idol_l_carpet","15113","0","2","7","","Idol Carpet","With glamour and style"],["i","9909","ads_idol_l_logo","14223","","","","","Idol Logo","Idol logo wall"],["i","9910","ads_idol_l_tv","13603","","","","","American Idol Tv","TBD Click it away"],["s","9990","sleepingbag*7","437","0","1","3","#e49350,#ffffff,#e49350,#ffffff,#e49350,#ffffff","Orange Sleeping Bag","Ultimate coziness"],["s","10001","ads_grefusa_cactus","14055","0","1","1","","Grefusa Cactus","Grefusa Cactus promotion"],["s","10002","lostc_octopus","13603","4","1","2","","Kraken","2/6 - February 2009"],["s","10009","totem_leg","14055","2","1","1","","Totem Leg","1/3 of Totem"],["s","10050","ads_cl_jukeb","14223","2","1","1","","Idea Agency Jukebox","Shake it like a polaroid picture in the Idea agency"],["s","10051","ads_idol_cork","14223","0","3","1","","Cubicle Partition","Need privacy so you can write that story? Get this!"],["s","10052","ads_idol_ichair","14223","0","1","1","","Interview Chair","Next question please."],["i","10053","ads_idol_logo","14223","","","","","Idol Logo","Idol logo wall"],["s","10054","ads_idol_newsDsk","14223","0","2","2","","News Reporter Desk","Report all the gossip in Habbo at this desk!"],["s","10055","ads_idol_tube","14223","2","1","1","","Tube Light","Set the mood with this beautv!"],["i","10056","ads_mall_winice","14223","","","","","Mall Ice Cream Parlour Window","Get yourself a cold rock of ice creamy goodness here."],["i","10057","ads_mall_winspo","14223","","","","","Mall Sports World Window","Whatever your sporting dibble, you'll find it here"],["s","10058","env_bushes","14223","0","1","2","","Eco Hedgerow","Block out your nosey neighbours"],["s","10059","env_bushes_gate","14223","0","1","2","","Eco Hedgerows Gate","Get ready for Mother Nature's world and wait your turn"],["s","10060","env_grass","14223","0","2","2","","Grass patch","Lush green grass to lay on your Earth"],["s","10061","env_tree1","14223","0","1","1","","Forest Tree Chair","Take seat and breathe in the fresh air!"],["s","10062","env_tree2","14223","0","1","1","","Forest Tree Americana","Earth's Green Haven - ROOM 997 by EarthBoyJim"],["s","10063","env_tree3","14223","0","1","1","","Forest Trunk Seat","Earth's Green Haven - ROOM 629 by EarthBoyJim"],["s","10064","env_tree4","14223","0","2","2","","The Four Seasons Tree","Crank up some Vivaldi & give your mate a gift."],["s","10065","exe_artlamp","14223","0","1","1","","Sphere Lamp","Suitable for budding entrepreneurs"],["s","10066","exe_cubelight","14223","2","1","1","","Cubist Light","Lights up a square"],["s","10067","exe_gate","14223","0","1","1","","Executive Gate","Keeps the tax man away"],["s","10068","exe_light","14223","0","1","1","","Executive Light","Glow your business"],["i","10069","exe_map","14223","","","","","World Map","World domination imminent"],["i","10070","exe_wfall","14223","","","","","Wall Fall","Improve your cash flow"],["i","11073","landscape","13633","","","","","",""],["i","11074","landscape","13633","","","","","",""],["i","11075","landscape","13633","","","","","",""],["i","11076","landscape","13633","","","","","",""],["i","11077","landscape","13633","","","","","",""],["i","11078","landscape","13633","","","","","",""],["s","11112","hcc_dvdr","7644","0","2","1","","Glass Divider","It won't cramp your style"],["s","11113","hcc_crnr","7644","0","1","1","","Glass Corner","Adds the finishing touch"],["i","11114","ads_campguitar","9559","","","","","Red V Guitar","Awarded to some Camp Rock entrants"],["s","11115","hcc_table","7553","0","1","2","","Glass Table","Elegant centre piece"],["s","11116","netari_carpet","8067","0","3","5","","Netari carpet","Netari branded skull"],["i","11117","netari_poster","7553","","","","","Netari poster","Netari promotion"],["i","11079","ads_lin_wh_c","14684","","","","","ads_lin_wh_c name","ads_lin_wh_c text"],["i","11279","ads_lin_wh_c2","14684","","","","","ads_lin_wh_c2 name","ads_lin_wh_c2 text"],["i","11080","ads_malaco_tv","14684","","","","","Malaco TV","Malaco TV"],["i","11081","ads_puffet_tv","14684","","","","","ads_puffet_tv name","ads_puffet_tv text"],["i","11082","ads_reebok_tv","14684","","","","","ads_reebok_tv name","ads_reebok_tv text"],["i","11086","country_forestwall","14684","","","","","Forest Wall Poster","Give your walls a woodland touch"],["s","11083","ads_malaco_gu","14684","0","1","1","","malaco gu","ads_malaco_gu"],["s","11084","ads_malaco_rug","14684","0","3","3","","Malaco Rug",""],["s","11085","ads_reebok_block2","14684","0","2","2","","ads Reebok block2",""],["s","11087","tray_cake","14684","0","1","1","","tray_cake","tray_cake"],["s","11088","tray_champagne","14684","0","1","1","","tray_champagne","tray_champagne"],["s","11089","tray_glasstower","14684","2","1","1","","tray_glasstower","tray_glasstower"],["s","11119","spyro","437","0","1","1","0,0,0","Dragon Egg","The stuff of legend"],["s","11120","djesko_turntable","437","0","1","1","","Habbo Turntable","For the music-lovers"],["s","11121","ads_calip_cola*2","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#a32300,#FFFFFF","Calippo Cola","Of the most refreshing!"],["s","11122","eco_mush1","15444","0","1","1","","Witch Mushroom","Poisonous in the wrong hands"],["s","11123","eco_mush2","15444","0","1","1","","Fairy Mushroom","Sweet and nutty."],["i","11124","country_lantern","15444","","","","","Ye Olde Lantern","Light of your Country life"],["s","11125","country_trctr","15444","0","2","2","","Tractor","Don't run over the bunny!"],["s","11126","ads_calip_cola*1","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#d2ff00,#FFFFFF","Calippo Lima","Of the most refreshing!"],["i","11127","country_wall","15444","","","","","Country Wall","Tudor Style"],["s","11128","country_fnc3","15444","0","1","1","","Stone Pile","The work of a witch?"],["s","11129","country_fnc1","15444","0","2","1","","Stick Fence","Wooden fence"],["s","11130","country_rbw","15444","0","1","1","","Rainbow","Is there a pot of gold at the end?"],["s","11131","country_fnc2","15444","0","2","1","","Stone Wall","Keep your livestock safe"],["s","11132","country_well","15444","2","1","1","","Wishing Well","Come spend a penny"],["s","11133","ads_idol_tblCloth","15113","0","2","2","","ads_idol_tblCloth name","ads_idol_tbleCloth desc"],["s","11134","country_scarecrow","15444","0","1","1","","Country Scarecrow","Looks strangely similar"],["s","11135","country_wheat","15444","0","2","2","","Golden Wheat","Right on the brink of harvest"],["i","11136","country_fp","15444","","","","","Marble Fireplace","Keep the home fires burning"],["s","11137","ads_idol_lamp","15113","0","1","1","","ads_idol_lamp name","ads_idol_lamp desc"],["s","11138","country_soil","15444","0","2","2","","Crop Field","Grow your own!"],["s","11139","country_rain","15444","0","1","1","","Rain Shower","Made in Britain"],["s","11140","country_gate","15444","0","2","1","","Farm Gate","Livestock: Close gate behind you"],["s","11141","ads_clcake","15113","0","1","1","","ads_clcake","ads_clcake"],["s","11142","country_stage","15444","0","2","2","","Wooden Stage","Time for a barn dance"],["s","11143","country_log","15444","0","2","1","","Log bench","Stop and perch"],["s","11144","country_grass","15444","0","2","2","","Field Grass","Herding and grazing"],["s","11147","sound_set_72","15444","0","1","1","","Sound set 72",""],["s","11148","env_telep","15444","2","1","1","","The Outhouse","A place for privacy"],["s","11149","ads_idol_carpet","15113","0","2","7","","Idol Carpet","With glamour and style"],["s","11150","ads_calip_cola*3","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#fd2c36,#FFFFFF","Calippo Strawberry","Of the most refreshing!"],["s","11151","ads_calip_cola*4","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#00c6ff,#FFFFFF","Calippo Crazy","Of the most refreshing!"],["i","11205","dimmer_swtch","15113","0","1","1","","Large Mood Switch","Set the right MOOD!"],["i","11206","dimmer_buttn","15113","0","1","1","","Small Mood Switch","Set the right MOOD!!!"],["i","11207","dimmer_fuse2","15113","0","1","1","","Small Mood Controller","Set the right MOOD!!!"],["i","11208","dimmer_fuse6","15113","0","1","1","","Large Mood Controller","Set the right MOOD!"],["s","11180","marsrug","15113","0","2","2","","Mars Patch","Discover the red planet"],["i","11181","sf_wall2","15113","","","","","Starship Wall","Keeping space out since 1969"],["i","11182","sf_wall3","15113","","","","","Starship Corner","Streamlined for speed"],["i","11183","sf_window","15113","","","","","Starship Window","It'll put stars in your eyes"],["s","11184","sf_roof","15113","0","2","4","","Starship Roof","But it doen't rain in space..."],["s","11185","SF_crate_2","18787","1","2","1","","Large Crate","Weightless in Space"],["s","11186","SF_crate_1","18787","0","1","1","","Small Crate","Weightless in Space"],["s","11187","sf_stick","18787","0","1","1","","Light Pole","Attracts space critters."],["s","11188","SF_chair_blue","18787","0","1","1","","Medium Chair","Space captain's side kick."],["s","11189","sf_roller","18787","0","1","1","","SciFi Roller","Moving through space."],["s","11190","SF_alien","18787","0","1","1","","K-nick-4","Alien Collectible"],["s","11191","SF_floor_2","18787","0","2","2","","Spaceship Floor Dark","Space walk"],["s","11192","SF_panel3","18787","0","1","1","","Navigation Console","Steer clear of Black Holes"],["s","11193","sf_floor","18787","0","2","4","","Transparent Floor","Don't fall through!"],["s","11194","sf_tele","18787","2","1","1","","Space Teleporter","Turn into millions of atoms"],["s","11195","SF_reactor","18787","0","1","1","","Warp Reactor","Fusion reactor to heat plasma"],["s","11196","SF_chair_green","18787","0","1","1","","Small Chair","Buckle up for a space ride."],["s","11198","SF_panel1","18787","0","1","1","","Command Console","Blinking Lights but what to do"],["s","11199","SF_panel2","18787","0","2","1","","Engineering Console","All systems checked"],["s","11200","sf_pod","18787","0","1","3","","Cryogenic Bed","For those who like to sleep a long time."],["s","11201","SF_table","18787","0","2","2","","Space Table","Supplied with gravity"],["s","11202","sf_gate","18787","0","2","1","","Display-Gate","Can you see me now?"],["s","11203","SF_floor_1","18787","0","2","2","","Spaceship Floor Light","Space walk"],["s","11204","SF_chair_red","18787","0","1","1","","Captain's Chair","Master of Space"],["s","11209","SF_lamp","18787","0","1","1","","Sci fi Lamp","Bright lights in a dark space"],["s","11153","ads_calip_pool","15444","0","2","2","","Calippo Pool","Fancy a dip?"],["s","11154","saturn","15444","0","1","1","","Planet of Eternity","How many rings are there??"],["s","11152","ads_calip_tele","15444","2","1","1","","Calippo Teleporter","Get your swim outfit now!"],["s","11178","country_patio","15444","0","1","1","","Wooden Patio Tile","Build the great outdoors"],["s","11177","country_corner","15444","0","1","1","","Country Ditch Corner","Channel your irrigation"],["s","11176","country_ditch","15444","0","1","2","","Country Ditch Corner","Irrigation to irritation in one wrong step"],["s","11174","ads_calip_chair","15444","0","1","1","","Calippo Chair","Calippo Inflatable Chair"],["i","11173","flag_norway","15444","","","","","Norwegian Flag","Land of the fjord"],["i","4270","flag_algeria","15444","","","","","The Algerian Flag","Wave it proudly!"],["i","4261","flag_argentina","15444","","","","","The Argentinian Flag","Wave it proudly!"],["i","4229","flag_belgium","15444","","","","","The Belgian Flag","Wave it proudly!"],["i","4256","flag_chile","15444","","","","","The Chilean Flag","Wave it proudly!"],["i","4258","flag_columbia","15444","","","","","The Colombian Flag","Wave it proudly!"],["i","4265","flag_dominicanrepublic","15444","","","","","The Dominican Republic Flag","Wave it proudly!"],["i","4268","flag_ecuador","15444","","","","","The Ecuadorian Flag","Wave it proudly!"],["i","4253","flag_greece","15444","","","","","The Greek Flag","Wave it proudly!"],["i","4252","flag_malaysia","15444","","","","","The Malaysian Flag","Wave it proudly!"],["i","4250","flag_mexico","15444","","","","","The Mexican Flag","Wave it proudly!"],["i","4264","flag_morocco","15444","","","","","The Moroccan Flag","Wave it proudly!"],["i","4260","flag_newzealand","15444","","","","","The New Zealand Flag","Wave it proudly!"],["i","4262","flag_panama","15444","","","","","The Panama Flag","Wave it proudly!"],["i","4246","flag_peru","15444","","","","","The Peruvian Flag","Wave it proudly!"],["i","4251","flag_philippines","15444","","","","","The Philippines Flag","Wave it proudly!"],["i","4231","flag_portugal","15444","","","","","The Portuguese Flag","Wave it proudly!"],["i","4249","flag_singapore","15444","","","","","The Singapore Flag","Wave it proudly!"],["i","4248","flag_tunisia","15444","","","","","The Tunisian Flag","Wave it proudly!"],["i","4255","flag_turkey","15444","","","","","The Turkish Flag","Wave it proudly!"],["i","4254","flag_venezl","15444","","","","","The Venezuelan Flag","Wave it proudly!"],["s","11172","ads_idol_trophy","15444","0","1","1","#ffffff,#ffffff,#FFDD3F","American Idol Trophy","For the winner of American Idol"],["s","11171","totem_head","15444","2","1","1","","Totem Spirit Head","Which animal are you? 2/3 of Totem"],["s","11156","LT_throne","15444","0","1","1","","Lost Tribe Throne","Important for Tribe"],["i","11155","diner_poster","15444","","","","","Diner Poster","Have a diner!"],["i","11157","lt_jngl_wall","15444","","","","","Jungle Wall","Jungle Wall"],["s","11158","lt_patch","15444","0","2","2","","Lost Tribe Patch","Attention!"],["s","11159","lt_lavac","15444","0","1","1","","Lost Tribe Lava Corner","Very dangerous!"],["s","11160","LT_pillar","15444","0","1","1","","Lost Tribe Pillar","Lost Tribe Pillar"],["s","11161","LT_pillar2","15444","0","1","1","","Lost Tribe Pillar 2","Attention!"],["s","11162","LT_skull","15444","0","1","1","","Lost Tribe Skull","Very scary!"],["s","11163","lt_spider","15444","0","1","1","","Lost Tribe Spider","Attention!"],["s","11164","lt_stage1","15444","0","1","1","","Lost Tribe Stage","Make mine a large!"],["s","11165","lt_stage2","15444","0","2","2","","Lost Tribe Stage","Make mine a large!"],["s","11166","lt_statue","15444","0","1","1","","Lost Tribe Statue","Attention!"],["s","11167","lt_stone2","15444","0","2","1","","Lost Tribe Stone 2","Mysterious Stone"],["s","11168","lt_lava","15444","0","1","2","","Lost Tribe Lava","Very dangerous!"],["s","11169","lt_bughill","15444","0","1","1","","Lost Tribe Hill","Attention!"],["s","11170","lt_gate","15444","0","2","1","","Lost Tribe Gate","Knock, knock..."],["s","11145","ads_cl_sofa","15444","0","2","1","","Idea Agency Sofa","Take a load off - both your feet and mind!"],["i","11210","lt_wall","15444","0","0","0","","Lost Tribe Stone Wall","I wonder if this wall is safe to climb?"],["s","11211","lt_stone1","15444","0","1","1","","Stone Corner","I wonder how old this is???"],["s","11212","pix_asteroid","15444","0","1","1","","The Asteroid","A smashing rock in space!"],["s","11213","planet_of_love","15444","0","1","1","","Planet of Love","All you need is world LOVE!"],["s","11214","totem_planet","14055","2","1","1","","Totem Planet","3/3 of Totem"],["s","11215","sound_set_37","10278","0","1","1","","Habbowood Traxpack","Blockbuster hits!"],["s","11216","sound_set_42","10278","0","1","1","","Haunted Mansion","Bumps and Chills"],["s","11217","sound_set_44","10278","0","1","1","","Graveyard Portal","Haunted Dimension"],["s","11218","sound_set_45","10278","0","1","1","","Berlin Connection","The Bass? is the rhythm!"],["s","11219","carpet_soft*9","2818","0","2","4","#FFDD00,#FFDD00,#FFDD00","Soft Wool Rug","Soft Wool Rug"],["s","11220","exe_elevator","59616","0","1","1","","Elevator Teleport","Going up or down in style!"],["i","11221","photo","45508","0","0","0","","Photo","Photo from Habbo"],["s","3312","arabian_tile","25824","0","2","2","","Arabian Tile","Step in style..."],["i","4287","arabian_wall","25824","","","","","Arabian Wall","A wall built with class."],["s","1661","xm09_man_a","13603","0","1","1","","Snowman legs","What can you build?"],["s","1662","xm09_man_b","13603","0","1","1","","Snowman middle","What can you build?"],["s","1663","xm09_man_c","13603","0","1","1","","Snowman head","What can you build?"],["s","1664","xm09_table","13603","0","2","6","","Holiday Table","Enough room for an entire family"],["s","1665","xm09_bench","13603","0","6","1","","Holiday Bench","Will everyone fit?"],["i","1666","xm09_firwall","13603","","","","","Xmas Tree Wall","Don't you just love snow..."],["i","1667","xm09_forestwall","13603","","","","","Snow Forest Wall","Covered in snow..."],["i","1668","xm09_lodgewall","13603","","","","","Lodge Wall","Keep the heat in and the cold out"],["i","1669","xm09_bauble_1","13603","","","","","Red Bauble","Perfect for a tree"],["i","1670","xm09_bauble_2","13603","","","","","Blue Bauble","Perfect for a tree"],["i","1671","xm09_bauble_3","13603","","","","","Green Bauble","Perfect for a tree"],["i","1672","xm09_bauble_4","13603","","","","","Yellow Bauble","Perfect for a tree"],["i","1673","xm09_bauble_5","13603","","","","","White Bauble","Perfect for a tree"],["i","1674","xm09_bauble_6","13603","","","","","Red Striped Bauble","Perfect for the tree"],["i","1675","xm09_bauble_7","13603","","","","","Blue Striped Bauble","Perfect for the tree"],["i","1676","xm09_bauble_8","13603","","","","","Green Striped Bauble","Perfect for the tree"],["i","1677","xm09_bauble_9","13603","","","","","Yellow Striped Bauble","Perfect for the tree"],["i","1678","xm09_bauble_10","13603","","","","","White Striped Bauble","Perfect for the tree"],["i","1679","xm09_bauble_11","13603","","","","","Tall Red Bauble","Perfect for the tree"],["i","1680","xm09_bauble_12","13603","","","","","Tall Blue Bauble","Perfect for the tree"],["i","1681","xm09_bauble_13","13603","","","","","Tall Green Bauble","Perfect for the tree"],["i","1682","xm09_bauble_14","13603","","","","","Tall Yellow Bauble","Perfect for the tree"],["i","1683","xm09_bauble_15","13603","","","","","Tall White Bauble","Perfect for the tree"],["i","1684","xm09_bauble_16","13603","","","","","Purple Green Bauble","Perfect for the tree"],["i","1685","xm09_bauble_17","13603","","","","","Tall Red Striped Bauble","Perfect for the tree"],["i","1686","xm09_bauble_18","13603","","","","","White Dot Bauble","Perfect for the tree"],["i","1687","xm09_bauble_19","13603","","","","","Tall Blue Striped Bauble","Perfect for the tree"],["i","1688","xm09_bauble_20","13603","","","","","Tall Yellow Striped Bauble","Perfect for the tree"],["i","1689","xm09_bauble_21","13603","","","","","Green White Bauble","Perfect for the tree"],["i","1690","xm09_bauble_22","13603","","","","","Red Heart Bauble","To hang on your tree"],["i","1691","xm09_bauble_23","13603","","","","","Blue Heart Bauble","To hang on your tree"],["i","1692","xm09_bauble_24","13603","","","","","Green Heart Bauble","To hang on your tree"],["i","1693","xm09_bauble_25","13603","","","","","Yellow Heart Bauble","To hang on your tree"],["i","1694","xm09_bauble_26","13603","","","","","White Heart Bauble","To hang on your tree"],["i","1695","xm09_bauble_27","13603","","","","","Pink Heart Bauble","To hang on your tree"],["s","1696","xm09_candyCane","13603","0","1","1","","Candy Canes","Got Candy?"],["i","1697","xm09_stocking","13603","","","","","Holiday Stocking","Are they filled with coal?"],["i","1698","xm09_infotv","13603","","","","","Flatscreen TV","Catch the latest news of the pre-Holiday season!"],["s","1699","xm09_cocoa","13603","0","1","1","","Hot Chocolate Maker","Cocoa and Christmas. Excellent!"],["s","1700","xm09_lrgBauble","13603","0","1","1","","Large Bauble","Isn't it pretty!"],["i","4312","xm09_frplc","13603","","","","","Christmas Fireplace","Warm and cozy!"],["i","4272","ads_twi_paint","45508","","","","","Painting","Stare deep into the painting..."],["i","4273","ads_twi_dreamc","45508","","","","","Dream Catcher","Will it catch them?"],["i","4274","ads_twi_bwall1","45508","","","","","Barn Wall","Keeps the cold out.."],["i","4275","ads_twi_crest","45508","","","","","Volturi Crest","A Royal Crest."],["s","3296","ads_twi_toolbx","45508","2","1","1","","Toolbox","Good spot for some tools..."],["s","3297","ads_twi_table","45508","0","2","2","","Cake on Table with Presents","Whose name is on that present?"],["s","3298","ads_twi_tower","45508","0","1","1","","Clock Tower","What time is it?"],["s","3299","ads_twi_piano","45508","0","2","2","","Broken Piano","I wonder if it's still in tune."],["s","3300","ads_twi_chair","45508","0","1","1","","Volturi Royal Chair","A chair fit for royalty"],["s","3301","ads_twi_fountn","45508","0","2","2","","Fountain","Simply breathtaking..."],["s","3302","ads_twi_dvdr2","45508","0","2","1","","Clock Tower wall","Repel all attacks..."],["s","3303","ads_twi_dvdr1","45508","0","2","1","","Half wall","Where is the other half?"],["s","3304","ads_twi_roses","45508","0","1","1","","Standing Rose Bouquet","You shouldn't have..."],["i","4276","ads_twi_bwall2","45508","","","","","Truck and Motorcycles","Nice motorcycle"],["i","4277","ads_twi_windw","45508","","","","","Window with Candles","Watch the candle flicker"],["s","3311","ads_twi_trophy","45512","2","1","1","#ffffff,#ffffff,#FFDD3F","Twilight Trophy","Fitting for the biggest Twilight fan!"],["s","3308","ads_twi_mist","45508","0","1","1","","Fog","Sure is foggy out here..."],["s","2103","val_cauldron","45512","0","1","1","","Valentine's cauldron","Cast a loving spell"],["s","3234","rela_candles1","56746","0","1","1","","White Candles","Calming Relaxation..."],["s","3245","rela_candles2","56746","0","1","1","","Red Candles","Calming Relaxation..."],["s","3236","rela_candles3","56746","0","1","1","","Violet Candles","Calming Relaxation..."],["s","3238","rela_candle1","56746","0","1","1","","White Candle","Calming Relaxation..."],["s","3244","rela_candle2","56746","0","1","1","","Red Candle","Calming Relaxation..."],["s","3235","rela_candle3","56746","0","1","1","","Violet Candle","Calming Relaxation..."],["s","3247","rela_hchair","56746","0","1","1","","Comfort Cradle","Calming Comfort..."],["s","3239","rela_orchid","56746","0","1","1","","Orchid","Calming Fragrance..."],["s","3246","rela_plant","56746","0","1","1","","Relaxation Plant","Calming Greenery..."],["s","3240","rela_stick","56746","0","1","1","","Stick in Jar","Calming Tranquility..."],["s","3233","rela_stone","56746","0","1","1","","Relaxation Stones","Calming Stability..."],["s","3248","rela_rock","56746","0","1","1","","Rock Seat","Calming Comfort..."],["i","4232","rela_wall","56746","","","","","Relaxation Wall","Calming Serenity..."],["s","3282","hween09_organ","45512","0","2","1","","Ghostly Organ","Play a ghastly tune on the bones..."],["s","3273","sf_mbar","45512","0","1","1","","Astro-Bar","Deep space refreshment."],["s","3401","beanstalk","45512","0","1","1","","Gigantic Beanstalk","A majestic rare... but who's gonna fix my floor?!"],["s","3399","rare_ironmaiden","45512","4","1","1","","Rare Iron Maiden","So good it's torturous!"],["s","3403","rare_vdoll","45512","4","1","1","","Rare Voodoo Doll","Choose your punishment!"],["i","4269","hween09_treewall","54764","","","","","Haunted Forest","Don't enter alone..."],["i","4271","hween09_win","54764","","","","","Haunted Window","What is really outside?"],["i","4247","hween09_crnr1","54764","","","","","Creaky Corner","Perfect corner for a haunted house..."],["i","4257","hween09_wall1","54764","","","","","Creaky Wall","I wonder if there is a hidden passage here?"],["i","4259","hween09_stonewall","54764","","","","","Old Stone Wall","Looks strong enough."],["i","4263","hween09_paint","45508","","","","","Haunted Painting","Is that cat watching me?"],["i","4266","hween09_curt","54764","","","","","Floating Curtain","Is someone hiding behind??"],["s","3285","hween09_hatch","54764","0","2","2","","Creepy Trap Door","I wonder where this goes?"],["s","3286","hween09_table","54764","0","1","3","","Creepy Table","Hope there is not a head on the platter..."],["s","3287","hween09_jar","45508","0","1","1","","Strange Jar","Would you like a Duck or a Head?"],["s","3288","hween09_floor","54764","0","2","2","","Creaky Floor","Watch your step!"],["s","3290","hween09_ghost","54764","0","1","1","","Ghost-in-the-Box","Ohh haunting..."],["s","3292","hween09_tv","54764","0","2","1","","Haunted TV","Whats on Haunted TV tonight?"],["s","3293","hween09_mirror","54764","2","1","1","","Ghostly Mirror","Is that a Habbo in there?"],["s","3294","hween09_chandelier","54764","0","1","1","","Haunted Chandelier","Flickering in the night..."],["s","3295","hween09_chair","54764","0","1","1","","Haunted Chair","Was something just sitting in this??"],["s","3231","summer_icebox","48082","2","1","1","","Ice Box","Chilled surprises"],["s","3228","summer_raft1","48082","0","1","1","","Pink Raft","Float down a lazy river."],["s","3227","summer_raft2","48082","0","1","1","","Blue Raft","Float down a lazy river."],["i","4222","ads_veet","45508","","","","","ads_veet name","ads_veet desc"],["i","4226","ads_wwe_poster","45508","","","","","WWE","Bigger, Badder, Better"],["i","4322","ads_percyw","45508","","","","","ads_percyw name","ads_percyw desc"],["s","3230","ads_oc_soda","45508","2","1","1","","Orange Soda Machine","Who loves Orange Soda?!"],["s","432233","ads_oc_soda_cmp","45508","2","1","1","","Orange Soda Machine","Who loves Orange Soda?!"],["i","4122","ads_mirror","45508","","","","","Dress Up Mirror","Look the part!"],["s","3278","ads_gsArcade_2","45508","2","1","1","","Arcade Cabinet","Must...get....high....score!"],["s","3251","ads_1800tele","45508","2","1","1","","ads_1800tele",""],["s","3367","ads_chups","45508","0","1","1","","ads_chups name","ads_chups desc"],["s","3365","ads_droetker_paula","45508","2","1","1","","ads_droetker_paula name","ads_droetker_paula desc"],["s","3132","ads_reebok_block2","45508","0","2","2","","ads_reebok_block2",""],["s","313222","ads_reebok_block2cmp","45508","0","2","2","","ads_reebok_block2cmp",""],["s","3280","ads_spang_sleep","45508","0","1","3","","ads_spang_sleep","ads_spang_sleep text"],["s","45598","footylamp_campaign_ing","13603","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF","ING Trophy","We are the champions"],["i","4267","byesw_loadscreen","45508","","","","","Loading screen memorial","The old Habbo loading screen."],["s","3289","byesw_hotel","45508","2","1","1","","Hotel view memorial","3 different miniature Hotels."],["s","3291","byesw_hand","45508","0","1","1","","Big Hand seat memorial","We'll miss you Big Hand!"],["i","4278","flag_denmark","15444","","","","","The Danish Flag","Wave it proudly!"],["s","3199","transparent_floor","25824","0","2","2","","Transparent Floor","Watch your step!"],["s","3139","ads_clcake2","45508","0","1","1","","Idea Agency Super Cake","Have your cake and eat it with Idea"],["s","1596","ads_clfloor","25824","0","3","5","","Childline Rug","Keep your feet warm with the Idea Agency rug"],["s","1597","ads_cllava","25824","0","1","1","","Idea Agency Lava Lamp","It's better out than in!"],["s","1598","ads_cllava2","25824","0","1","1","","Idea Agency Lava Lamp","It's better out than in!"],["s","1599","ads_cltele_cmp","45508","2","1","1","","Idea Agency Teleporter","Whatever your Idea, it's better out than in."],["i","10071","ads_clwall3","45508","","","","","ChildLine TV","Helping to raise awareness of the great advice ChildLine can offer"],["s","10072","ads_cl_sofa_cmp","15444","0","2","1","","Idea Agency Sofa","Take a load off - both your feet and mind!"],["s","10073","ads_cl_jukeb_camp","45508","2","1","1","","Idea Agency Jukebox","Shake it like a polaroid picture in the Idea agency"],["s","3169","ads_calip_chaircmp","45508","0","1","1","","ads_calip_chair name","ads_calip_chair text"],["s","3198","ads_calip_fan","45508","0","1","1","","ads_calip_fan","ads_cali desc"],["s","3201","ads_calip_fan_cmp","45508","0","1","1","","ads_calip_fan","ads_cali desc"],["s","3197","ads_calip_lava","45508","0","1","1","","ads_calip_lava name","ads_calip_lava desc"],["s","3195","ads_calip_parasol","45508","0","1","1","","ads_calip_parasol name","ads_calip_parasol desc"],["s","3203","ads_calip_parasol_cmp","45508","0","1","1","","ads_calip_parasol name","ads_calip_parasol desc"],["s","3183","ads_calip_pool_cmp","45508","0","2","2","","ads_calip_pool name","ads_calip_pool desc"],["s","3191","ads_calip_telecmp","45508","2","1","1","","ads_calip_tele name","ads_calip_tele text"],["s","2738","calippo_cmp","45508","2","1","1","","Calippo icecream machine","Basic model"],["s","1307","ads_calip_colac*2","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#a32300,#FFFFFF","Calippo Cola","Of the most refreshing!"],["s","1146","ads_calip_colac*1","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#d2ff00,#FFFFFF","Calippo Lima","Of the most refreshing!"],["s","1308","ads_calip_colac*3","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#fd2c36,#FFFFFF","Calippo Strawberry","Of the most refreshing!"],["s","1309","ads_calip_colac*4","15444","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#00c6ff,#FFFFFF","Calippo Crazy","Of the most refreshing!"],["s","1310","ads_calip_lava2","45508","0","1","1","","ads_calip_lava2 name","ads_calip_lava2 desc"],["s","3202","ads_mall_coffeem","45508","2","1","1","","Quick Coffee Stop","Exclusively Mall coffee and free to boot!"],["s","3306","ads_mall_elevator","45508","2","1","1","","Mall Lift","Up, up and away to the next shopping level"],["s","3216","ads_mall_kiosk","45508","0","1","2","","Mall Kiosk","Fish, fruit, sweets, sunglasses - it is all available here."],["s","3020","ads_mall_tele","47501","0","1","1","","Mall tele-door","Step inside the store and look around"],["i","4103","ads_mall_winchi","45508","","","","","ads_mall_winchi","ads_mall_winchi"],["i","4236","ads_mall_winclo","45508","","","","","ads_mall_winclo","ads_mall_winclo"],["i","4083","ads_mall_window","47501","","","","","Habbo Mall Window","Can you see that!"],["i","4092","ads_mall_winfur","47501","","","","","Habbo Mall Furni Window","Can you see that!"],["i","4230","ads_mall_wingar","45508","","","","","ads_mall_wingar","ads_mall_wingar"],["i","4091","ads_mall_winpet","45508","","","","","Habbo Mall Petshop Window",""],["s","3343","ads_cl_moodi_camp","45508","2","1","1","","The Moodi Machine","how u feelin? Express yourself with ChildLine"],["i","4225","ads_mall_wintra","45508","","","","","ads_mall_wintra","ads_mall_wintra"],["s","3582","easel_0","45508","0","1","1","","StrayPixels Winner x1","Made by our very own RollerKingdom and Fredsicle"],["s","3594","easel_1","45508","0","1","1","","StrayPixels winner x3","Made by our very own avilaman, HankMcCoy, and ,CrystalBailey"],["s","3603","easel_2","45508","0","1","1","","StrayPixels winner x5","Is that... cheese chasing that man!?"],["s","3596","easel_3","45508","0","1","1","","StrayPixels winner x7","Watching paint dry... fun"],["s","3600","easel_4","45508","0","1","1","","StrayPixels winner x10","Holy carp my watch just melted!"],["s","3225","prizetrophy_cool","45512","0","1","1","","Cool Trophy","One Cool Habbo"],["s","3229","prizetrophy_hot","45512","0","1","1","","Hot Trophy","One Hot Habbo"],["s","3901","waasa_aquarium","56746","0","2","1","","Aquarium","Finding Nemo should be pretty easy."],["s","3889","waasa_chair","56746","2","1","1","","Computer Chair","For the perfect posture"],["s","3903","waasa_chair_wood","56746","2","1","1","","Wooden Chair","A little hard on the buttocks."],["s","3896","waasa_desk","56746","2","2","1","","Wooden Study Desk","The ultimate in sophisticated studying"],["s","3899","waasa_rug1","56746","0","2","4","","Blue Waasa Rug","Sink your toes into its softness"],["s","3904","waasa_rug2","56746","0","2","4","","Yellow Waasa Rug","Sink your toes into its softness"],["s","3900","waasa_rug3","56746","0","2","4","","Orange Waasa Rug","Sink your toes into its softness"],["s","3902","waasa_rug4","56746","0","2","4","","Green Waasa Rug","Sink your toes into its softness"],["s","3898","waasa_rug5","56746","0","2","4","","Gray Waasa Rug","Sink your toes into its softness"],["s","3891","waasa_ship1","56746","2","1","1","","Small Sailing Boat","Set sail on water!"],["s","3890","waasa_ship2","56746","2","2","1","","Large Sailing Boat","Let's hope this one floats!"],["s","3895","waasa_table1","56746","0","1","1","","Small Wooden Table","No name carving allowed"],["s","3887","waasa_table2","56746","0","2","1","","Large Wooden Table","Simple, strong and sturdy"],["i","4397","waasa_wall_shelf1","56746","","","","","Book Shelf","Just a small amount of light reading"],["i","4396","waasa_wall_shelf2","56746","","","","","Wall Shelf","Smells of many leather-bound books and rich mahogany."],["s","3892","waasa_bunk_bed","56746","2","3","1","","Bunk Bed","Study or sleep? That's a tough decision!"],["s","3894","computer_old","48082","2","1","1","","Nostalgic Computer","Ahhh the good old days..."],["s","3888","computer_flatscreen","48082","2","1","1","","Desktop Computer","Downloading...."],["s","3886","tv_flat","54450","0","2","1","","Flatscreen TV","Plasma vs. LCD"],["s","3351","xm09_trophy","45512","2","1","1","#FFFFFF,#FFFFFF,#FFDD3F","2009 Habbo Trophy","Winner of a 2009 Habbo of the Year competition."],["s","3893","computer_laptop","48082","2","1","1","","Laptop","For geeks on the go!"],["s","3530","bw_water_1","48082","0","2","2","","Water Patch","Swimming in the shallow end."],["s","3541","bw_water_2","49148","0","2","2","","Deep Water Patch","Get thrown in the deep end!"],["s","4042","coco_chair","56746","0","1","1","","Blue Resort Pod","The circular edges will relax you."],["s","4053","coco_chair_c2","56746","0","1","1","","Chocolate Resort Pod","The circular edges will relax you."],["s","4059","coco_chair_c3","56746","0","1","1","","White Resort Pod","The circular edges will relax you."],["s","4058","coco_chair_c4","56746","0","1","1","","Black Resort Pod","The circular edges will relax you."],["s","4060","coco_divan","56746","2","2","1","","Blue Pool-side Lounge","Every resort needs one!"],["s","4046","coco_divan_c2","56746","2","2","1","","Chocolate Pool-side Lounge","Every resort needs one!"],["s","4061","coco_divan_c3","56746","2","2","1","","White Pool-side Lounge","Every resort needs one!"],["s","4040","coco_divan_c4","56746","2","2","1","","Black Pool-side Lounge","Every resort needs one!"],["s","4045","coco_patch","56746","0","2","3","","Resort Flooring","Luxurious under bare feet"],["s","4066","coco_sofa","56746","0","3","1","","Blue Coco Sofa","The perfect place for a massage."],["s","4062","coco_sofatable","56746","0","1","1","","Blue Drinks Table","When carrying your drink becomes hard work."],["s","4064","coco_sofatable_c2","56746","0","1","1","","Chocolate Drinks Table","When carrying your drink becomes hard work."],["s","4047","coco_sofatable_c3","56746","0","1","1","","White Drinks Table","When carrying your drink becomes hard work."],["s","4049","coco_sofatable_c4","56746","0","1","1","","Black Drinks Table","When carrying your drink becomes hard work."],["s","4057","coco_sofa_c2","56746","0","3","1","","Chocolate Coco Sofa","The perfect place for a massage."],["s","4050","coco_sofa_c3","56746","0","3","1","","White Coco Sofa","The perfect place for a massage."],["s","4063","coco_sofa_c4","56746","0","3","1","","Black Coco Sofa","The perfect place for a massage."],["s","4054","coco_stick","56746","0","1","1","","Resort Ornament","It's not dead, it's modern."],["s","4052","coco_stool","56746","0","1","1","","Blue Coco Stool","For meditation to the maximum."],["s","4039","coco_stool_c2","56746","0","1","1","","Chocolate Coco Stool","For meditation to the maximum."],["s","4048","coco_stool_c3","56746","0","1","1","","White Coco Stool","For meditation to the maximum."],["s","4044","coco_stool_c4","56746","0","1","1","","Black Coco Stool","For meditation to the maximum."],["s","4051","coco_table","56746","0","2","3","","COCOnut Table","We had to use them somewhere!"],["s","4056","coco_table2","56746","0","2","2","","Pool-side Table","Resort to this for your own resort"],["s","4055","coco_throne","56746","2","1","1","","Blue Wicker Throne","The ultimate in resort relaxation"],["s","4041","coco_throne_c3","56746","2","1","1","","White Wicker Throne","The ultimate in resort relaxation"],["s","4065","coco_throne_c4","56746","2","1","1","","Black Wicker Throne","The ultimate in resort relaxation"],["s","4043","coco_throne__c2","56746","2","1","1","","Chocolate Wicker Throne","The ultimate in resort relaxation"],["i","4379","bling11_big1","45508","","","","","Vegas Buildings","What happens in Vegas...."],["s","3801","bling11_block","56746","0","1","1","","Bling Block","A classy building block"],["s","3793","bling11_dvd","56746","0","1","2","","Bling Divider","Divide and conquer!"],["s","3798","bling11_dvn","56746","0","1","3","","Bling Daybed","Lie back in style... hand me those grapes!"],["s","3794","bling11_floor","56746","0","2","2","","Italian Marble Floor","Floor tiles that spell out class!"],["s","3802","bling11_pillar","56746","0","1","1","","Italian Marble Pillar","Will support all your bling!"],["s","3795","bling11_plant","56746","0","1","1","","Bling Plant","Classy Greenery!"],["s","3788","bling11_rug1","59643","4","2","2","","Tiger Rug","Be careful - it will bite!"],["s","3797","bling11_rug2","56746","0","3","3","","Bling Carpet","So soft your feet will sing with joy!"],["s","3800","bling11_seat1","56746","0","1","1","","Bling Seat","Silky comfort for your behind!"],["s","3799","bling11_seat2","56746","2","1","1","","Slot Chair","This could be the luckiest chair in the room!"],["s","3786","bling11_slot","56746","0","1","1","","Slot Machine","Watch out for this one-armed bandit!"],["s","3790","bling11_sofa","56746","2","3","1","","Bling Divan","Fit for classy butts!"],["s","3791","bling11_statue1","56746","0","1","1","","Eros","A God of Love"],["s","3785","bling11_statue2","56746","0","2","2","","Love Carp","Carpe Diem!"],["s","3789","bling11_tele","59643","2","1","1","","Bling Teleporter","Teleports you with great grace!"],["s","3787","bling11_towels","56746","2","1","1","","Bling Towels","Gives your bathroom that extra OUMPH!"],["i","4374","bling11_wall1","56746","","","","","Tiger Wall Cover","Rawr!"],["i","4376","bling11_wall2","56746","","","","","Zebra Wall Cover","A touch of wild life!"],["i","4377","bling11_wall3","56746","","","","","Leopard Wall Cover","Wild patterns for your walls!"],["i","4375","bling11_wall4","56746","","","","","Panther Wall Cover","Adds wild mystery to your walls!"],["s","3364","bling_bed","56746","2","2","3","","Bling Bed","No Comment..."],["i","4321","bling_cabinet","56746","","","","","Bathroom Cabinet","Now With A Mirror"],["s","3368","bling_chair_a","56746","0","1","1","","Suave Chair","Sit in style!"],["s","3360","bling_chair_b","56746","0","1","1","","Suave Chair","Sit in style!"],["s","3361","bling_chair_c","56746","0","1","1","","Suave Chair","Sit in style!"],["s","3366","bling_fridge","56746","2","1","1","","Big Purple Fridge","I wonder whats inside?"],["s","3369","bling_pool","56746","0","3","1","","Jacuzzi","Is this a time machine?"],["s","3396","bling_shwr","56746","0","1","1","","Power Shower","So fresh and so clean..."],["i","4319","bling_sink","56746","","","","","Marble Sink","Hand Wash, Baby"],["s","3371","bling_sofa","56746","2","2","1","","Leather Sofa","Perfect for two."],["s","3362","bling_toilet","56746","2","1","1","","Golden Toilet","Don't forget to flush."],["s","3363","val09_floor","57144","0","2","2","","Polished Tile","Looks all shiny..."],["s","3357","val09_floor2","57144","0","2","2","","Wooden Tile","Look closely at the grain"],["i","4318","val09_wall1","57144","","","","","Sound-proofed Wall","I wonder if it really works?"],["i","4316","val09_wall2","57144","","","","","Embroidered Wall","Isn't it pretty?"],["i","4320","val09_wdrobe_b","57144","","","","","Designer Wardrobe","I wonder if all my clothes will fit?"],["i","4317","val09_wdrobe_g","57144","","","","","Designer Wardrobe","I wonder if all my clothes will fit?"],["s","3822","limo_w_back","56746","2","2","1","","Limo Back","Ride in style!"],["s","3823","limo_w_front","56746","2","2","1","","Limo Front","Ride in style!"],["s","3819","limo_w_mid","56746","2","2","1","","Limo Middle Part 1","Build your limo and ride in style!"],["s","3820","limo_w_mid2","56746","2","2","1","","Limo Middle Part 2","Build your limo and ride in style!"],["s","3589","ktchn10_block","48478","0","1","1","","Kitchen Corner Block","Cutting this corner won't give you food poisoning."],["i","4338","ktchn10_cabnt","45508","","","","","Cabinet","Hide all your messy bits and pieces."],["s","3580","ktchn10_pot","45508","0","1","1","","Boiling Water","If you can't stand the heat."],["s","3612","ktchn10_sink","45508","0","2","1","","Kitchen Sink","Everything but..."],["s","3581","ktchn10_stove","45508","0","2","1","","Kitchen Stove","Cook up a storm!"],["s","3592","ktchn10_tea","45508","0","1","1","","Teapot","Short and stout."],["s","1312","md_limukaappi_cmp","13603","2","1","1","","Mountain Dew Machine","A sparkling and refreshing pixel drink!"],["s","3849","cine_bench","56746","0","3","1","","Red Lobby Bench","Rest your feet before the show!"],["s","3845","cine_bench_b","56746","0","3","1","","Black Lobby Bench","Rest your feet before the show!"],["s","3850","cine_bench_g","56746","0","3","1","","Green Lobby Bench","Rest your feet before the show!"],["s","5327","cine_bigcorn","56737","0","1","1","","Big Popcorn","Swimming in butter"],["s","3841","cine_curtain","56746","0","8","1","","Theater Curtains","Open them up to start the show!"],["s","4485","cine_curtain_red","45508","0","8","1","","Red Theatre Curtain","Limited Edition Rare. Grab yourself some popcorn and enjoy the show!"],["s","3856","cine_glass","56746","0","1","1","","Glass Divider","What's between you and them..."],["i","4383","cine_light1","56746","","","","","Theater Lights","Lighting up the darkness."],["i","4382","cine_light2","56746","","","","","Theater Hall Lights","Follow the lights and please make your way to the seats."],["s","5325","cine_pillarlight","56737","2","2","1","","Cine Pillar Light","For the perfect movie theatre ambiance"],["s","4444","cine_platform","55667","0","4","1","","Cinema Platform","Enjoy the show!"],["s","3848","cine_popcorn","56746","2","1","1","","Popcorn Machine","Munch & Crunch- the perfect snack for movie-goers."],["s","3852","cine_projector","57710","0","1","1","","Movie Projector","For showing home movies and Hollywood blockbusters."],["i","4519","cine_pstr_0","56737","","","","","Revenge of the Cheeps","It's a Freaking SAGA"],["i","4517","cine_pstr_1","56737","","","","","Get Frank","The fourth film by Quilting Tarantula"],["i","4529","cine_pstr_10","49452","","","","","Gnome","This holiday, discover your inner Habbo"],["i","4589","cine_pstr_14","56737","","","","","Freeze!","Let it go, let it go, I can't hold this snowball anymore!"],["i","4588","cine_pstr_15","56737","","","","","Ducknado","Almost enough said!"],["i","4584","cine_pstr_16","56737","","","","","Quacktrix","No one can be told what the Quacktrix is. You must see it for yourself."],["i","4590","cine_pstr_17","56737","","","","","Barry Bobba","A half-blood Habbo and one of the most famous role-players of all time."],["i","4583","cine_pstr_18","56737","","","","","Habbo Games","May the credits be ever in your favor!"],["i","4586","cine_pstr_19","56737","","","","","The Guardian of Habbo","All Habbos start somewhere."],["i","4522","cine_pstr_2","56737","","","","","The Rabbit","An unexpected hop."],["i","4520","cine_pstr_3","56737","","","","","The Rabbit 2","One carrot to rule them all."],["i","4514","cine_pstr_4","56737","","","","","Dark Duck Descends","He's the duck Habbo deserves"],["i","4518","cine_pstr_5","56737","","","","","Avatar Editor","From the makers of The Catalog"],["i","4513","cine_pstr_6","56737","","","","","The Ducket List","We live, we die, we rent."],["i","4515","cine_pstr_7","56737","","","","","M.O.D","I'll make him a trade he can't refuse."],["i","4516","cine_pstr_8","56737","","","","","Habbo Club","Rule Six: Nice shirt, Nice shoes."],["i","4521","cine_pstr_9","56737","","","","","Bobbaro","An adventure through the forest with a penguin spirit Bobbaro"],["s","3847","cine_roof","56746","2","3","3","","Glass roof","Put a shiny glass ceiling on your red carpet!"],["s","3842","cine_screen","56746","0","6","1","","Movie Screen","The silver screen and home to movie magic."],["s","5329","cine_soda","56737","0","1","1","","Big Soda","Soda, pop, fizz"],["s","3839","cine_star","45512","0","1","1","","Walk of Fame Tile","Go down in Habbo history!"],["s","5324","cine_starchair","48719","0","1","1","","Director's Chair","You call the shots!"],["s","5328","cine_teleport1","48187","4","1","1","","Cinema Teleport","Theatre 1"],["s","5326","cine_teleport2","48287","0","1","1","","Cinema Teleport","Theatre 2"],["s","5330","cine_teleport3","48287","4","1","1","","Cinema Teleport","Theatre 3"],["s","5323","cine_teleport4","48287","4","1","1","","Cinema Teleport","Theatre 4"],["s","3851","cine_ticket_booth","56746","2","1","1","","Ticket Vending Booth","What's showing tonight?"],["s","3844","cine_tile","56746","0","1","1","","Tile With a Halo","Lights up when walked over."],["s","3834","cine_vipsign","56746","0","1","1","","HC Sign","Who's hot... and who's not."],["s","3846","theatre_seat_b","56737","0","1","1","","Black Habbowood Chair","Try not to spill any drinks!"],["s","3843","theatre_seat_g","56737","0","1","1","","Green Habbowood Chair","Try not to spill any drinks!"],["s","3418","garden_flo1","51267","0","1","1","","Jimson Weed","Awww aren't they beautiful..."],["s","3409","garden_flo2","50156","0","1","1","","Yellow Delight","Awww aren't they beautiful..."],["s","3426","garden_flo3","51267","0","1","1","","Pink Pandemic","Awww aren't they beautiful..."],["s","3415","garden_flolamp","51267","0","1","1","","Wonder Lamp","I wonder what makes it glow..."],["s","3420","garden_flytrap","51497","2","1","1","","Snapping Teleporter","Hope this doesn't hurt.. Ouch!"],["s","3422","garden_jungle","51267","0","1","1","","Duck Grass","duck, duck, goose..."],["s","3405","garden_jyrki","51267","0","1","1","","Star Flower","Awww aren't they beautiful..."],["s","3425","garden_leaves","51267","0","1","1","","Garden Leaves","Elegant and classy at the same time"],["s","3421","garden_lupin1","51267","0","1","1","","Gold Lupine","Awww aren't they beautiful..."],["s","3416","garden_lupin2","51267","0","1","1","","Sky Blue Lupine","Awww aren't they beautiful..."],["s","3407","garden_lupin3","51267","0","1","1","","Ravishing Red Lupine","Awww aren't they beautiful..."],["s","3419","garden_lupin4","51267","0","1","1","","White Lupine","Awww aren't they beautiful..."],["s","3411","garden_lupin5","51267","0","1","1","","Princly Purple Lupine","Awww aren't they beautiful..."],["s","3404","garden_mursu","51267","0","1","1","","Perfectly Pink Rush","Watch your allergies..."],["s","3412","garden_mursu2","51267","0","1","1","","Rampaging Red Rush","Watch your allergies..."],["s","3408","garden_mursu3","51267","0","1","1","","Gallant Gold Rush","Watch your allergies..."],["s","3414","garden_mursu4","51267","0","1","1","","Wimsome White Rush","Watch your allergies..."],["s","3413","garden_orchtree","51267","0","1","1","","Bauhibia Orchid Tree","They look like upside down bells."],["s","3406","garden_seed","45508","0","1","1","","Violet blossom","All it needs is LOVE!"],["s","3417","garden_seed_cmp","45508","0","1","1","","Violet blossom","All it needs is LOVE!"],["s","3423","garden_staringbush","50156","4","1","3","","Weird Staring Bush","Ummmmm. No comment..."],["s","3424","garden_volcano","50156","4","2","2","","Volcano Flower","AHHH Run away!!!"],["i","4325","garden_wall","51267","","","","","Green Bean Vines","Wonder how far they will grow..."],["s","3436","hc2_armchair","45512","2","1","1","","Leather Armchair","Relax in style"],["s","3439","hc2_barchair","45512","2","1","1","","Leather Bar Stool","Sit up high"],["s","3446","hc2_biglamp","45512","4","1","1","","Black Lamp","Sophisticated lighting"],["s","3440","hc2_carpet","45512","4","3","5","","Trendy Rug","Luxurious comfort"],["s","3430","hc2_cart","45512","4","1","1","","Service Trolley","Butler not included"],["s","3450","hc2_coffee","45512","2","1","1","","Espresso Machine","Morning glory"],["s","3449","hc2_divider","45512","4","1","3","","Black Divider","Divide the wealth"],["s","3459","hc2_dvn","45512","2","1","3","","Leather Duvan","Stretch out"],["s","3458","hc2_frplc","45512","0","1","2","","Suave Fireplace","Roaring success"],["s","3452","hc2_sofa","45512","4","2","1","","Leather Sofa","Stylish seating"],["s","3434","hc2_sofatbl","45508","0","2","2","","Glass Table","Make a statement"],["s","3428","hc2_vase","45512","0","1","1","","Black Vase","Elegantly shaped"],["s","3445","hc3_bard","45512","0","2","1","","HC Bar Desk","Set up shop"],["s","3461","hc3_dc","45512","0","1","3","","HC Duvan","Live the life"],["s","3431","hc3_divider","45512","4","1","3","","HC Divider","Manage your space"],["s","3447","hc3_hugelamp","45512","4","1","1","","HC Lamp","Makes a huge statement"],["s","3465","hc3_light","45512","0","2","1","","HC Light","Stay in the spotlight"],["s","3438","hc3_shelf","45512","0","3","1","","HC Shelves","Store your awards"],["s","3441","hc3_sofa","45512","0","2","1","","HC Sofa","Comfort in style"],["s","3470","hc3_stereo","45512","2","3","1","","HC Stereo","Block rockin' beats"],["s","3448","hc3_stool","45512","0","1","1","","HC Stool","High and mighty"],["s","3466","hc3_table","45508","0","2","2","","HC Coffee Table","For social gatherings"],["s","3479","hc3_vase","45512","0","1","1","","HC Vase","The ultimate floral arrangement."],["i","4329","hc3_walldeco","45512","","","","","HC Wall Art","Cubism lives on"],["s","4153","school_bench","56746","0","3","1","","Cafeteria Bench","Take a load off!"],["s","4151","school_bus","56746","2","2","4","","School Bus","On the journey of learning ;)"],["s","5272","school_cafe","54386","0","2","1","","School Lunch Cart","No throwing food!"],["s","4162","school_chair","56746","0","1","1","","Desk Chair","Sit down (don't) behave."],["s","5257","school_chairgold","47123","0","1","1","","Rare Gilded Chair","Be the classiest in class!"],["s","5262","school_chair_b","54386","0","1","1","","Blue School Chair","Not to be used in association with musical chairs"],["s","5265","school_chair_g","54386","0","1","1","","Green School Chair","Not to be used in association with musical chairs"],["i","4418","school_chalkboard","56746","","","","","Chalkboard","I will not waste chalk. I will not waste chalk. I will not..."],["i","4512","school_chalkboard2","54386","","","","","School Chalkboard","Does chalk really taste like cheese?"],["i","4421","school_charts","56746","","","","","School Charts","TMI!"],["s","5260","school_coatrack_b","54386","0","2","1","","Blue Coatrack","THE place to hang out"],["s","5258","school_coatrack_g","54386","0","2","1","","Green Coatrack","THE place to hang out"],["s","5270","school_coatrack_r","54386","0","2","1","","Red Coatrack","THE place to hang out"],["s","4154","school_console","56746","0","1","1","","School Desk","Walk the path of knowledge ;)"],["s","5264","school_consolegold","47123","0","1","1","","Rare Gilded Desk","Be the classiest in class!"],["s","5269","school_console_b","54386","0","1","1","","Blue School Desk","Write on the paper, not on the desk!"],["s","5268","school_console_g","54386","0","1","1","","Green School Desk","Write on the paper, not on the desk!"],["s","4157","school_floor","56746","0","2","2","","School Flooring","Walk the path of knowledge ;)"],["s","5266","school_fountain","54386","0","1","1","","School Water Fountain","Water, water, everywhere!"],["s","5271","school_gate","47346","2","3","1","","School Gates","The gateway to a whole new education"],["s","4146","school_locker_b","45512","2","1","1","","Blue Locker Teleport","Takes you far away from here!"],["s","4158","school_locker_b_nosale","45508","2","1","1","","Blue Locker (NOT FOR SALE)","Store your stuff safely"],["s","5261","school_locker_b_notele","54386","4","1","1","","Blue School Locker","Don't forget your combination!"],["s","5263","school_locker_g","56025","4","1","1","","Teleport School Locker","Ooh, where does THIS locker go?"],["s","5259","school_locker_g_notele","54386","4","1","1","","Green School Locker","Don't forget your combination!"],["s","4150","school_locker_r","45512","2","1","1","","Red Locker Teleport","Takes you far away from here!"],["s","4147","school_locker_r_nosale","45508","2","1","1","","Red Locker (NOT FOR SALE)","Store your stuff safely"],["s","5267","school_locker_r_notele","54386","4","1","1","","Red School Locker","Don't forget your combination!"],["s","4145","school_platform","56746","0","1","1","","Auditorium Platform","Holds your school assembly"],["s","4155","school_stuff_01","56746","2","1","1","","School Books","Makes your brain grow... or something."],["s","4159","school_stuff_02","56746","0","1","1","","Chem Set","Don't blow anything up..."],["s","4161","school_stuff_03","56746","0","1","1","","Cafeteria Burger","Yum! Cafeteria Food..."],["s","4160","school_stuff_04","56746","0","1","1","","Cafeteria Meatballs","Yum! Cafeteria Food..."],["s","4156","school_stuff_05","56746","0","1","1","","Cafeteria Nuggets","Yum! Cafeteria Food..."],["s","4149","school_stuff_06","56746","0","1","1","","Cafeteria Vegetables","Yum! Cafeteria Food..."],["s","4152","school_table","56746","0","3","2","","Cafeteria Table","No food fights please!"],["s","4148","school_toilet_stall","56746","2","1","1","","Toilet Stall","Close the door please..."],["i","4422","school_toilet_wall","56746","","","","","Toilet Wall","""E&"Don't scribble on the wall!""E&""],["i","4419","school_urinal","56746","","","","","Urinal","With a sweet smell of roses!"],["i","4420","school_wall","56746","","","","","School Wall","Don't just be another brick in the wall..."],["s","4692","matic_box","45508","0","1","1","","Mystery Box","What did you get?"],["s","4965","steampunk_carpet","56737","2","3","2","","Steampunk Carpet","I like my carpet steamed"],["s","4955","steampunk_chair","56737","2","1","1","","Steampunk Chair","Don't worry we don't think it will electrocute you"],["s","4952","steampunk_chand","56746","0","1","1","","Steampunk Chandalier","Light it up (3 states)"],["s","4961","steampunk_computer","56737","2","1","1","","Steampunk Computer","The future of computing?"],["s","4953","steampunk_floor1","56737","0","2","2","","Steampunk Floor","With 6 states!"],["s","4962","steampunk_floor2","56737","2","2","2","","Steampunk Floor","Underfoot lighting"],["s","4958","steampunk_gear_1","56746","0","1","1","","Large Cog","Watch them turn"],["s","4964","steampunk_gear_2","56746","0","1","1","","Small Cog","Watch them turn"],["s","4963","steampunk_globe","56737","0","1","1","","Globe","Where in the world?"],["s","4966","steampunk_gramophone","45508","0","1","1","","Steampunk Gramophone","The future of music?"],["s","4960","steampunk_lamp","56746","0","1","1","","Steampunk Lamp","Light the way"],["i","4503","steampunk_map","56737","","","","","World Map","Where in the world?"],["s","4949","steampunk_pillar_1","56746","0","1","1","","Steampunk Pillar","Industrial Framework"],["s","4951","steampunk_pillar_2","56746","0","1","1","","Steampunk Pillar","Industrial Hydraulics"],["s","4950","steampunk_rack","56737","0","1","1","","Donnie Santini's Helmet","But where's Donnie?!?"],["s","4954","steampunk_sofachair","56746","2","1","1","","Steampunk Sofa","Somehwere to sit?"],["s","4948","steampunk_table_1","56737","0","1","2","","Steampunk Table","With a steamy finish"],["s","4957","steampunk_table_2","56737","0","2","2","","Steampunk Table","With a steamy finish"],["s","4956","steampunk_tele","49408","4","1","1","","Steampunk Tele","Steamy!"],["s","4967","steampunk_timemach","45508","2","1","1","","Time Machine","A journey to the fourth dimension"],["i","4501","steampunk_wall1","56737","","","","","Steampunk Wall","Tick, Tock."],["i","4500","steampunk_wall2","56737","","","","","Steampunk Wall","3 States!"],["i","4502","steampunk_window","56737","","","","","steampunk_window name","steampunk_window desc"],["s","4968","steampunk_zep","45508","4","2","1","","Steampunk Zeppelin","Keep away from open flames!"],["s","8217","rare_beehive_bulb*3","59424","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#9C0247","Maroon Amber Lamp","Only with these on will you be able to see the truth!"],["s","4852","rare_dragonlamp_pink","45508","4","1","1","","Pink Dragon Lamp","Breathes Fire"],["s","4859","rare_icecream*10","59424","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Silver Icecream Machine","ice cold snacks"],["s","8208","pillar*10","59424","0","1","1","#FFFFFF,#9C0247,#9C0247","Maroon Classic Pillar","Ancient and stately."],["s","8209","rare_parasol*4","59424","0","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#9C0247","Maroon Parasol","Zon! Zon! Zon!"],["s","8210","scifidoor*11","59424","2","1","1","#FFFFFF,#9C0247,#9C0247,#9C0247,#FFFFFF","Maroon Spaceship Door","Beam me up."],["s","8211","sleepingbag*11","59424","0","1","3","#9C0247,#FFFFFF,#9C0247,#FFFFFF,#9C0247,#FFFFFF","Maroon Sleeping Bag","Ultimate coziness"],["s","8212","rare_fountain*4","59424","0","1","1","#FFFFFF,#FFFFFF,#9C0247","Maroon Fountain","Lounge Oasis"],["s","8213","rare_dragonlamp*10","59424","2","1","1","#FFFFFF,#9C0247,#9C0247,#FFFFFF,#FFFFFF,#FFFFFF,#FFFFFF","Maroon Dragon Lamp","Scary and scorching!"],["s","8214","rare_fan*10","59424","0","1","1","#9C0247,#FFFFFF,#FFFFFF,#FFFFFF","Maroon Powered Fan","Turn it on and enjoy the cool breeze"],["s","8215","rare_icecream*11","59424","2","1","1","#FFFFFF,#9C0247,#FFFFFF,#FFFFFF,#FFFFFF","Maroon Ice Cream Maker","Virtual chocolate rocks!"],["s","8216","wooden_screen*10","59424","0","1","2","#FFFFFF,#FFFFFF,#9C0247,#9C0247,#FFFFFF,#FFFFFF","Maroon Oriental Door","Adds an exotic vibe to any room"],["s","8218","pillow*10","59424","0","1","1","#9C0247,#9C0247,#FFFFFF,#FFFFFF","Maroon Pillow","Rest your head after a long day of partying."],["s","8219","scifiport*10","59424","0","1","1","#FFFFFF,#9C0247,#FFFFFF,#FFFFFF,#FFFFFF,#9C0247","Maroon Laser Portal","Energy beams. No trespassers!"],["s","8220","rare_elephant_statue*3","59424","0","1","1","#FFFFFF,#9C0247","Maroon Elephant","Imported Handicrafts"],["s","8221","marquee*11","59424","2","1","1","#FFFFFF,#FFFFFF,#FFFFFF,#9C0247,#FFFFFF","Maroon Marquee","A door and a sunshade in one furni!"],["s","8222","scifirocket*10","59424","0","1","1","#FFFFFF,#FFFFFF,#9C0247,#FFFFFF","Maroon Smoke Machine","Retro-mystification"],["i","4499","dimmer_steampunk","49408","","","","","Steampunk Dimmer Switch","Set the right mood."],["s","3805","qt_val11_discoball","45512","0","1","1","","Disco Hearts","A slow dance never felt more romantic..."],["s","3809","qt_val11_duckformer","45512","0","1","1","","Duck-o-Heart","It's like magic! Is it a duck.. is it a heart?"],["i","4378","qt_val11_heartlights","45512","","","","","Heart Lights","Brightens up your room with romance!"],["s","3803","qt_val11_holoduck","45512","0","1","1","","Holo-Duck","Lights up your day!"],["s","3813","qt_val11_holoheart","45512","0","1","1","","Holo-Heart","Lights up your heart!"],["s","3810","qt_val11_jellychair","45508","2","1","1","","Jelly Chair","Squishy like your heart!"],["s","3811","qt_val11_jellyheart","45508","2","1","1","","Jelly Heart","Get jiggly with it!"],["s","4487","dark_merdragon","45508","0","1","3","","Black Leviathan","Limited Edition Rare. Found in the darkest depths of the abyss."],["s","2928","sob_carpet","45508","0","3","5","","Bobba Carpet","Walk the walk..."],["s","204","door_event","45512","2","1","1","","Hire-A-Room","Room hire service on the fly"],["s","10674","rainbow_ltd_parasol","65046","0","1","1","","Rainbow Parasol","Very cute and proud!"],["s","4361","snst_fireplace","45508","2","3","3","","Epic Fireplace","With a fire big enough to keep the entire room warm"],["s","4380","xmas11_balloon","45508","0","1","1","","Rare Balloon Machine","Double click to pick up a Balloon and some festive cheer!"],["s","4370","xmas11_balloon1","55667","0","1","1","","Single Balloon","A party on a string!"],["s","4368","xmas11_balloon2","55667","0","1","1","","Double Balloon","A party on a string!"],["s","4381","xmas11_balloon3","55667","0","1","1","","Triple Balloons","A party on a string!"],["s","4323","xmas11_btlr","54031","2","1","1","#FFFFFF,#FFFFFF","The Santa Butler","Spreading cheer and good times!"],["s","4303","xmas11_chair","55667","4","1","1","","Red Wooden Cabin Chair","Cushioned for comfort"],["s","4324","xmas11_chair_2","55667","4","1","1","","Green Wooden Cabin Chair","Cushioned for comfort"],["s","4328","xmas11_chair_3","55667","4","1","1","","Beige Wooden Cabin Chair","Cushioned for comfort"],["s","4326","xmas11_chair_4","55667","4","1","1","","Wooden Cabin Chair with Fur Cover","Cushioned for comfort"],["s","4297","xmas11_comfy_bench","55667","4","2","1","","Red Wooden Cabin Bench","Fits more than one"],["s","4327","xmas11_comfy_bench_2","55667","4","2","1","","Green Wooden Cabin Bench","Fits more than one"],["s","4330","xmas11_comfy_bench_3","55667","4","2","1","","Beige Wooden Cabin Bench","Fits more than one"],["s","4331","xmas11_comfy_bench_4","55667","4","2","1","","Wooden Cabin Bench with Fur Cover","Fits more than one"],["s","4283","xmas11_comfy_chair","55667","2","1","1","","Red Cozy Cabin Chair","Sit down and relax"],["s","4332","xmas11_comfy_chair_2","55667","2","1","1","","Green Cozy Cabin Chair","Sit down and relax"],["s","4315","xmas11_comfy_chair_3","55667","2","1","1","","Beige Cozy Cabin Chair","Sit down and relax"],["s","4333","xmas11_comfy_chair_4","55667","2","1","1","","Cozy Cabin Fur Chair","Sit down and relax"],["i","4443","xmas11_cuckoo","55667","","","","","Cuckoo's Clock","Let's you know when the clock strikes midnight..."],["s","4309","xmas11_elewood","55667","0","1","1","","Cabin Stone and Wood Tiles","Change the height by clicking"],["s","4292","xmas11_firewood","55667","0","1","1","","Cabin Firewood","Click to change the size of the pile"],["s","4290","xmas11_flag","45508","0","1","1","","Flag","For marking an area"],["s","4289","xmas11_footstool","55667","0","1","1","","Red Cabin Footstool","Put your feet up and take it easy"],["s","4334","xmas11_footstool_2","55667","0","1","1","","Green Cabin Footstool","Put your feet up and take it easy"],["s","4335","xmas11_footstool_3","55667","0","1","1","","Beige Cabin Footstool","Put your feet up and take it easy"],["s","4336","xmas11_footstool_4","55667","0","1","1","","Cabin Footstool with Fur Cover","Put your feet up and take it easy"],["i","4440","xmas11_hd1","55667","","","","","Moose Head","I'd be a lot happier out in the woods!"],["i","4437","xmas11_hd2","55667","","","","","Arctic Bear Head","How did I end up here on the wall?"],["i","4439","xmas11_hd3","55667","","","","","Wild Boar Head","At least they didn't put an apple in my mouth..."],["i","4435","xmas11_hd4","55667","","","","","Crocodile Head","Someone take this thing off of my head please!"],["i","4438","xmas11_hd5","55667","","","","","Ghost Pet Head","I don't give a sheet..."],["i","4441","xmas11_hd6","55667","","","","","Deer Head","Oh deer what have they done with me..."],["s","4384","xmas11_luxchair1","55667","2","1","1","","White Chesterfield Armchair","Swank seating for your delicate behinds."],["s","4386","xmas11_luxchair2","55667","2","1","1","","Red Chesterfield Armchair","Swank seating for your delicate behinds."],["s","4385","xmas11_luxchair3","55667","2","1","1","","Black Chesterfield Armchair","Swank seating for your delicate behinds."],["s","4388","xmas11_luxdish1","61013","0","1","1","","Chocolate Fountain","Sweet, sweet heaven!"],["s","4387","xmas11_luxdish2","55667","0","1","1","","Strawberries","Little pieces of loveliness!"],["s","4389","xmas11_luxdish3","55667","0","1","1","","Porcelain","Tea's served!"],["s","4390","xmas11_luxfloor1","55667","0","2","2","","Parquet","Luxury Flooring"],["s","4369","xmas11_luxfloor2","55667","0","2","2","","Polished Stone Floor","Luxury Flooring"],["s","4391","xmas11_luxsofa1","55667","2","2","1","","White Chesterfield Sofa","Swank seating for your delicate behinds."],["s","4392","xmas11_luxsofa2","55667","2","2","1","","Red Chesterfield Sofa","Swank seating for your delicate behinds."],["s","4393","xmas11_luxsofa3","55667","2","2","1","","Black Chesterfield Sofa","Swank seating for your delicate behinds."],["s","4372","xmas11_luxtable","55667","0","1","2","","Serving Table","Serves up a delicate meal."],["s","4302","xmas11_nghtstnd","55667","0","1","1","","Cabin Nightstand","With a small lamp to light up your evenings"],["s","4300","xmas11_petfood","55667","2","1","1","","Cheese","Does not smell like old socks"],["s","4282","xmas11_sofatable","55667","0","2","2","","Cabin Sofa Table","Put down your hot choc and chill"],["s","4285","xmas11_stonedivider","55667","0","2","1","","Cabin Divider","Divide the space and make it stylish"],["s","4296","xmas11_stonefloor","55667","2","2","2","","Cabin Stone Floor","Cold under your bare feet"],["s","4293","xmas11_stool","55667","0","1","1","","Red Wooden Cabin Stool","Cushioned for comfort"],["s","4337","xmas11_stool_2","55667","0","1","1","","Green Wooden Cabin Stool","Cushioned for comfort"],["s","4339","xmas11_stool_3","55667","0","1","1","","Beige Wooden Cabin Stool","Cushioned for comfort"],["s","4340","xmas11_stool_4","55667","0","1","1","","Wooden Cabin Stool with Fur Cover","Cushioned for comfort"],["s","4294","xmas11_stove","55667","0","1","1","","Cabin Stove","Click it to turn up the heat"],["s","4299","xmas11_throne","45508","2","1","1","","Xmas Throne","A kingly seat"],["i","4436","xmas11_wall","55667","","","","","Cabin Wall","Keeps your cabin warm and cozy"],["s","4288","xmas11_woodfloor","55667","2","2","2","","Cabin Wooden Floor","Doesn't creak under your feet"],["s","4286","xmas11_yetifeet","45508","0","1","1","","xmas11_yetifeet name","xmas11_yetifeet desc"],["s","3724","qt_xm10_elephant","45512","2","1","1","","Elephant Minibar","Now serving icy cool drinks!"],["s","3726","qt_xm10_gnome","45512","0","1","1","","Garden Gnome","Someone left him out in the cold for too long!"],["s","3718","qt_xm10_iceclubsofa","45512","0","2","1","","Cool Club Sofa","The pillows should keep you warm."],["s","3746","qt_xm10_icedragon","45512","4","1","1","","Blizzard Dragon","With a fiery breath."],["s","3727","qt_xm10_iceduck","45512","0","1","1","","Plain Icy Duck","It's quack-tastic!"],["s","3755","qt_xm10_iceelephant","45512","0","1","1","","Woah Nelly!","So cool it's freezing!"],["s","3737","qt_xm10_icepillar","45512","0","1","1","","Frozen Pillar","Won't crumble... might melt though."],["s","3734","qt_xm10_iceteddy","45508","4","1","1","","Frozen Ted","Cold yet cuddly."],["s","5534","xmas13_icecream","48938","2","1","1","","Icy Ice Cream Maker","Virtual Ice Cream Rocks!"],["s","3151","ads_goldtabl","45508","0","1","1","","The Golden Tablet","What every Museum resident craves"],["s","350","easter_2021_box","45531","","1","1","","Easter Egg 2021","What did you get beneath that chocolate?"],["s","3923","kuurna_chair","45508","4","1","1","","Pixel Sofa Chair","Cool and comfortable!"],["s","3928","kuurna_chair1","45508","4","1","1","","Pixel Dining Chair","Pixel dining at its best."],["s","3922","kuurna_lamp","45508","0","1","1","","Pixel Lamp","Shed some light on your room."],["s","3924","kuurna_mat","45508","2","3","2","","Pixel Shag Rug","Design and comfort in one great rug!"],["s","4618","kuurna_red_chair","45508","4","1","1","","Pixel Sofa Chair","Sit on it"],["s","4619","kuurna_red_chair1","45508","4","1","1","","Pixel Dining Chair","Take a load off"],["s","4622","kuurna_red_lamp","45508","0","1","1","","Pixel Lamp","Shed some light on your room"],["s","4617","kuurna_red_sofa","45508","4","2","1","","Pixel Sofa","Make room for your friends!"],["s","4620","kuurna_red_table","45508","0","2","2","","Pixel Dining Table","Did someone say dinner party?"],["s","4621","kuurna_red_table1","45508","0","1","1","","Pixel Side Table","Small but functional"],["s","3919","kuurna_sofa","45508","4","2","1","","Pixel Sofa","Make room for your friends!"],["s","3926","kuurna_table","45508","0","2","2","","Pixel Dining Table","Invite your friends over for a cool dining experience!"],["s","3925","kuurna_table1","45508","0","1","1","","Pixel Side Table","Small but functional."],["s","4663","track12_ujack_sofa","45508","0","2","1","","Union Jack Sofa","Jolly good rumpus machine, innit??"]] \ No newline at end of file diff --git a/tools/gamedata/shockwave/hh_furni_xx_nest.cct b/tools/gamedata/shockwave/hh_furni_xx_nest.cct new file mode 100644 index 0000000000000000000000000000000000000000..3720e7cc43bcd0242e454f33f54f86b5662a7bff GIT binary patch literal 523 zcmV+m0`&b@MoCfw0ssI*L`Oz)Wp+jmiU9$RLI^Q1E-)i8I5=`-V@6zf+GAv3c{y`U z0fQMg0|N&GyLpv~Z(?#$er{??W}-q>WbQD$NeG=Z=%u%c*U zV2}a@1rXaYFaZr^211bGAfx7kJ!!){Q^Cb5#>dmo-9IKgzbHE*^&SN literal 0 HcmV?d00001 diff --git a/tools/gamedata/shockwave/hh_furni_xx_photo.cct b/tools/gamedata/shockwave/hh_furni_xx_photo.cct new file mode 100644 index 0000000000000000000000000000000000000000..3720e7cc43bcd0242e454f33f54f86b5662a7bff GIT binary patch literal 523 zcmV+m0`&b@MoCfw0ssI*L`Oz)Wp+jmiU9$RLI^Q1E-)i8I5=`-V@6zf+GAv3c{y`U z0fQMg0|N&GyLpv~Z(?#$er{??W}-q>WbQD$NeG=Z=%u%c*U zV2}a@1rXaYFaZr^211bGAfx7kJ!!){Q^Cb5#>dmo-9IKgzbHE*^&SN literal 0 HcmV?d00001 diff --git a/tools/gamedata/shockwave/hh_furni_xx_post.it.cct b/tools/gamedata/shockwave/hh_furni_xx_post.it.cct new file mode 100644 index 0000000000000000000000000000000000000000..3720e7cc43bcd0242e454f33f54f86b5662a7bff GIT binary patch literal 523 zcmV+m0`&b@MoCfw0ssI*L`Oz)Wp+jmiU9$RLI^Q1E-)i8I5=`-V@6zf+GAv3c{y`U z0fQMg0|N&GyLpv~Z(?#$er{??W}-q>WbQD$NeG=Z=%u%c*U zV2}a@1rXaYFaZr^211bGAfx7kJ!!){Q^Cb5#>dmo-9IKgzbHE*^&SN literal 0 HcmV?d00001 diff --git a/tools/gamedata/shockwave/partsets.txt b/tools/gamedata/shockwave/partsets.txt new file mode 100644 index 0000000..0d1c15c --- /dev/null +++ b/tools/gamedata/shockwave/partsets.txt @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/partsets.xml b/tools/gamedata/shockwave/partsets.xml new file mode 100644 index 0000000..ade7b82 --- /dev/null +++ b/tools/gamedata/shockwave/partsets.xml @@ -0,0 +1,117 @@ + +- + + + + + + + + + + + + + + + + + + + + + + + +- + + + + + + + + + + + + + + + + + + + + + +- + + + + + + + + + + + +- + + + + + + + + +- + + + + +- + + + +- + + + + + +- + + + + + +- + + + + + + + + + +- + + + + + +- + + + +- + + + + + + + \ No newline at end of file diff --git a/tools/gamedata/shockwave/productdata.txt b/tools/gamedata/shockwave/productdata.txt new file mode 100644 index 0000000..2c80c61 --- /dev/null +++ b/tools/gamedata/shockwave/productdata.txt @@ -0,0 +1,30 @@ +[["wallpaper 2","wallpaper","Wallpaper",""],["diner_gumvendor*6","Blue Gum Machine","Fruity bubbly goodness!",""],["ads_elisa_gnome","ads_elisa_gnome name","ads_elisa_gnome desc",""],["svnr_uk","Big Ben","September 2008, 3/6",""],["dimmer_swtch","Large Mood Switch","Set the right MOOD!",""],["dimmer_buttn","Small Mood Switch","Set the right MOOD!!!",""],["dimmer_fuse2","Small Mood Controller","Set the right MOOD!!!",""],["dimmer_fuse6","Large Mood Controller","Set the right MOOD!",""],["stand_polyfon_z","Shelf","Tidy up",""],["hcc_crnr","Glass Corner","Adds the finishing touch",""],["poster 18","Butterfly Cabinet 2","Beautiful reproduction butterfly",""],["party_shelf","Bar Shelf","Line up your beverages!",""],["china_ox","Ox Statue","An oriental sculpture",""],["DEV bed_budget_one5","Beige Pura Bed","Prince sized comfort!",""],["safe_silo*6","Blue Safe Minibar","Totally shatter-proof!","Special Offer!"],["chair_plasto","Chair","Hip plastic furniture",""],["glass_sofa*5","Candy Glass Sofa","Double glazed",""],["bardeskcorner_polyfon*2","Black Mode Bardesk Corner","Black Mode Bardesk Corner",""],["sf_roof","Starship Roof","But it doesn't rain in space...",""],["chair_silo*4","Beige Silo Dining Chair","Beige Silo Dining Chair",""],["eco_light2","Eco Light 2","Energy saving bulb fitted",""],["noob_table*1","My first Habbo table","Lightweight, practical and orange",""],["deal_catfood","Sardines Mega Multipack","Fantastic 20% Saving!",""],["deadduck3","Dead Duck 3","With added ectoplasm",""],["poster 41","Gold Record","You sold 500,000!",""],["fx_bubble","Bubbles","Forever blowing bubbles!",""],["chair_silo","Dining Chair","Keep it simple",""],["glass_chair*3","White Glass Chair","Translucent beauty",""],["hockey_score","Scoreboard","...for keeping your score",""],["wallpaper 30","wallpaper","Wallpaper",""],["jp_tatami","Small Tatami Mat","Shoes off please",""],["sofa_silo*8","Yellow Two-Seater Sofa","Cushioned, understated comfort",""],["deal_tp3","Easter Park Bundle","",""],["glass_table*2","Glass table","Translucent beauty",""],["avatar_effect12","Frozen","Ice cold!",""],["chair_norja*8","Yellow Chair","Sleek and chic for each cheek",""],["penguin_magician","Magic Penguin","Aptenodytes Houdini",""],["lblue_mode_jan08_deal","Light Blue Mode Bedroom Deal","Light Blue Single and Double Mode Bed, Mode Bookcase",""],["SF_table","Starship Table","Star charts and mission briefs",""],["a0 deal118","Pink Habbo Roller","The power of movement","2: 5 Pink Habbo Rollers in a convenient Pack"],["sofachair_polyfon*8","Yellow Mode Armchair","Yellow Mode Armchair",""],["diner_chair*7","Green Stool","Perch in comfort",""],["safe_silo*8","Yellow Safe Minibar","Totally shatter-proof!",""],["table_silo_small","Occasional Table","Hip plastic furniture",""],["deal_uk_junglewall1","Jungle Wall","","Save 25%"],["soft_sofachair_norja","Black Iced Sofachair","Black Iced Sofachair",""],["deal_sport2","Player Deal","",""],["divider_nor2*3","White Iced Bar-Desk","Strong, yet soft looking",""],["grunge_sign","Road Sign","Bought legitimately from an M1 cafe.",""],["xmas_cstl_twr","Ice Castle Tower","All I see from up here is snow!",""],["country_forestwall","Forest Wall Poster","Give your walls a woodland touch",""],["gothic_carpet","Cobbled Path","The route less travelled",""],["deal_uk_floor9b","Standard Tile","The floor is your canvas",""],["pet0","Pet and Basket","Night, night",""],["xmas08_cubetree","Cube Tree","So ice Cubes DO grow on trees...",""],["divider_silo1","Corner Shelf","Neat and natty",""],["barchair_silo*7","Green Bar Stool","Take a perch!",""],["fx_explosion","The Kaboomer","Blow it up, baby!",""],["ads_cldesk","Idea Agency Desk","Work on your latest agency brief.",""],["table_norja_med*4","Urban Iced Coffee Table","For larger gatherings",""],["pura_mdl1*4","White Pura Module 1","Any way you like it!",""],["tiki_bench","Tiki Bar Stool","Sit back and relax!",""],["bed_budget","Pura Bed","Comfortable, affordable!",""],["ads_mall_window","Mall Window","Take a peek - what's inside?",""],["tree4","Christmas Tree 2","Any presents under it yet?",""],["a0 deal108","Green Habbo Roller","The power of movement","2: 3 Green Habbo Rollers in a convenient Pack"],["a0 marquee","White Marquee","It's both door and a shade!",""],["hw_08_xray","X-Ray Light Box","Check for breaks and sprains",""],["house","Gingerbread House","Good enough to eat",""],["landscape 8","landscape","Rolling hills of chocolate!",""],["summer_chair*4","White Deck Chair","Sit back and enjoy!",""],["safe_silo*4","Beige Safe Minibar","Totally shatter-proof!",""],["DEV bed_budget1","Aqua Pura Double Bed","King sized comfort!",""],["carpet_valentine","Red Carpet","For making an entrance.",""],["ads_idol_voting_ch","Voting Chair","Do you have a good ear for music?",""],["poster 518","The Welsh flag","A fiery dragon for your wall",""],["deal_swapit1","Mode Bundle","",""],["ads_nokia_phone","Nokia Phone","Nokia Phone",""],["soft_sofa_norja","Black Iced Sofa","Black Iced Sofa",""],["sound_set_57","RnB Grooves 3","Feel the groove",""],["lt_spider","Tarantula","It'll make you jump",""],["carpet_standard*b","Floor Rug","Available in a variety of colours",""],["rclr_sofa","Polar Sofa","Snuggle up together",""],["rare_mmmth","Sofa Mammut","Pre Historic Sofa",""],["a2 poletti","Jump ticket","Jump ticket",""],["sofachair_silo","Armchair","Large, but worth it",""],["jukebox*1","Jukebox","For your Happy Days!",""],["A1 D8P","Square Dining Table","Hip plastic furniture",""],["summer_raft2","summer_raft2","",""],["tiki_parasol","Parasol","Funky party lighting while getting out of the sun!",""],["ads_calip_chair","Calippo Chair","Calippo Inflatable Chair",""],["doormat_love","Doormat","Welcome Habbos in style",""],["prizetrophy2*1","Duck trophy","Glittery gold",""],["wallpaper 27","wallpaper","Wallpaper",""],["guitar_v","V Guitar","",""],["ads_idol_hotspot","Hot Spot Scoreboard","Stand here and await the verdict!",""],["diner_cashreg*4","White Register","Roll up roll up!",""],["svnr_it","Venetian Gondola","July 2008, 1/6",""],["pura_mdl3*6","Blue Pura Module 3","Any way you like it!",""],["a0 deal208","Sport corner grass","Let's get sporty!","Eight corner grass tracks"],["bump_tires_deal3","Bumper Tyres 3","Gets you back on track",""]] +[["glass_table","Glass table","Translucent beauty",""],["greek_gate","Greek Gate","Enter mortal, exit immortal!",""],["divider_poly3*8","Yellow Mode Bardesk Gate","Yellow Mode Bardesk Gate",""],["poster 1","Lady Lisa","Is she smiling?",""],["sf_stick","Light Pole","Get in the swing of things!",""],["christmas_poop","Reindeer Droppings","Bob?s magical fertilizer",""],["ads_cl_jukeb","Idea Agency Jukebox","Shake it like a polaroid picture in the Idea agency",""],["poster 58","Red Knots","Wishing you luck",""],["bardesk_polyfon*7","Green Bardesk","Perfect for work or play",""],["bolly_tile1","Ornamental Tile","The floor is your canvas",""],["lc_glass_floor","Ocean Window Rug","Under the sea!",""],["deals_habbowood_spot ","Spotlight Bundle","Five for the price of four!",""],["candy_bm_jan07_deal","Candy Bardesk Bundle","Great value bundle!",""],["sound_set_13","Dance 5","Let Music be the food of Habbo",""],["carpet_soft*5","Soft Wool Rug","Soft Wool Rug",""],["sofachair_polyfon*9","Red Armchair","Loft-style comfort",""],["chair_norja*4","Urban Iced Chair","Sleek and chic for each cheek",""],["a2 gothicsofa","Golden Gothic Sofa","Stylish seating for two",""],["deal_stars","Silver Star Bundle","Selection of silver stars",""],["sporttrack1*1","Sport track straight grass","Let's get sporty!","Eight straight grass tracks"],["a2 sporttrackstraight asp","Sport track straight asphalt","Let's get sporty!",""],["wallpaper 31","Gothic Wallpaper","The dark side of Habbo",""],["summer_chair*6","Blue Deck Chair","Got your bucket and spade?",""],["ads_idol_cork","Cubicle Partition","Need privacy so you can write that story?",""],["wooden_screen*9","Green Oriental Screen","Add an exotic touch to your room",""],["ads_idol_tele","American Idol Star Teleport","This could be the doorway to your dreams!","ads_idol_tele"],["diner_bardesk_corner*3","Black Corner","Now that's smooth...",""],["area_cm_jan07_deal","Area Corner Bundle","5 corner shelves",""],["a0 deal207","Sport corner grass","Let's get sporty!","Four corner grass tracks"],["CFC_50_coin_silver","Silver Coin (China)","Worth 50 Credits",""],["xmas_cstl_gate","Ice Castle Gate","Let that icy draft out!",""],["xmas_cstl_wall","Ice Castle Wall","Solid blocks of ice and snow",""],["plant_maze_snow","Snowy Maze Shrubbery","Labyrinths galore!",""],["ads_clwall3","Idea Agency Plasma 3","Whistle while you work!",""],["pura_mdl1*6","Blue Pura Module 1","Any way you like it!",""],["deal_tikisand","Island Sand Bundle","","Save 50%!"],["deal_uk_lctubes","Bensalem Tubes Deal","Tube until your heart is content with this deal.",""],["divider_silo1*7","Green Area Corner Shelf","Tuck it away!",""],["carpet_standard*1","Floor Rug","Available in a variety of colours",""],["party_barcorn","Bar Corner","Every party needs one!",""],["DEV bed_budget4","White Pura Double Bed","King sized comfort!",""],["queue_tile1","White Quest Roller","The power of movement",""],["wallpaper 28","wallpaper","Wallpaper",""],["DEV plant_bulrush","Bulrush","Ideal for the riverside",""],["croc_green_deal","Croc Starter Pack (green)","",""],["bolly_phant","Elephant MiniBar","For he's a 'bolly' good fellow!",""],["DEV bed_budget3","Black Pura Double Bed","King sized comfort!",""],["DEV bed_budget9","Red Pura Double Bed","King sized comfort!",""],["divider_nor1*6","Blue Ice corner","Blue Ice corner",""],["ads_711_2","ads_711","",""],["poster 2005","Infobus","The Special Infobus Poster",""],["party_block","Small Stage","Build yourself a stage to host events!",""],["country_grass","Field Grass","Herding and grazing",""],["table_plasto_square","Occasional Table","Hip plastic furniture",""],["scifidoor*5","White Monolith","They're out of this world!",""],["one_way_door*2","Black HC Gate","One way! The HC way!",""],["tile_stella","Star Tile","Take a walk of fame",""],["soft_sofachair_norja*5","Pink Iced Sofachair","Pink Iced Sofachair",""],["a2 gothicstool","Golden Gothic Stool","Be seated please..",""],["deal06","Stool","Rustic charm at it's best",""],["ads_puffet_tv","Ads Puffet TV","Ads Puffet TV",""],["red_mode_jan08_deal","Red Mode Bedroom Deal","Red Single and Double Mode Bed, Mode Bookcase",""],["lt_patch","Moss Patch","The ground less trodden",""],["lt_lavac","Lost Tribe Lava Corner","Very Dangerous!",""],["lt_lava","Lost Tribe Lava","Very Dangerous!",""],["eco_tree2","Pear Tree","You'll want a pair of these...",""],["divider_poly3*5","Candy Hatch (Lockable)","Keep the Pink in!",""],["val_teddy*2","Pink Share Bear","The pink bear of passion",""],["toy1*4","Rubber Ball","it's bouncy-tastic",""],["deal_skyscraper2","Skyscraper Window","Dizzy heights!",""],["party_table","Glass High Bar Table","Chat with your friends over this!",""],["VALENTINE_07_02","Valentine Deal","Signs of Love","Signs of Love"],["wooden_screen*8","Night Blue Oriental Screen","Add an exotic touch to your room",""],["sound_set_56","RnB Grooves 2","Get down tonight!",""],["deal_plant3","Sunflower","","Save 33%"],["bed_polyfon*4","Beige Mode Double Bed","Beige Mode Double Bed",""],["exe_plant","Executive Plant","Shimmering hedge trimming!",""],["scifirocket*9","Neptune Smoke Machine","Something fishy is going on...",""],["table_plasto_square*1","Occasional Table","Hip plastic furniture",""],["prizetrophy2*3","Duck trophy","Breathtaking bronze",""],["deal_uk_stone2","Tribal Stone Wall","","Great saving!"],["deal_tp4","Winter Wonderland Bundle","",""],["deal09","Queen Mum Poster","aw, bless...",""],["landscape 4","landscapes","Watch out for bears!",""],["penguin_suit","Executive Penguin","Aptenodytes Loman",""],["sound_set_65","Tiki anthems","Tiki drums go boom!",""],["CF_1_coin_bronze","Bronze Coin","Worth 1 Credit",""],["dog_red_deal","Dog Starter Pack (red)","",""],["sound_set_2","Habbo Sounds 3","Get the party started!",""],["divider_nor3","Door (Lockable)","Do go through...",""],["sound_machine7","Red Traxmachine","Red alert. Red alert. It's a party!",""],["prizetrophy3*2","Globe trophy","Shiny silver",""],["jp_irori","Irori","Traditional heating and eating",""],["deal_det_bhole","Bullet Hole","That was close!","Save 50%"],["divider_arm1","Corner plinth","Good solid wood",""],["env_tree3","Forest Trunk Seat","Earth's Green Haven - ROOM 629 by EarthBoyJim",""],["poster 19","Hole In The Wall","Trying to get in or out?",""],["poster 28","Tinsel (silver)","A touch of festive sparkle",""],["sporttrack2*3","Sport corner tartan","Let's get sporty!","Four corner tartan tracks"],["queue_tile1*9","Green Habbo Roller","The power of movement",""],["glass_stool*7","Green Glass Stool","Habbo Club",""]] +[["poster 45","Skeleton","Needs a few more Habburgers",""],["deal_movie5","Horror Bundle","Is it really a quiet Village?",""],["sound_set_66","Tiki trax","Spin some island tunes",""],["prize1","Gold Trophy","Gorgeously glittery",""],["ads_711_4","ads_711","",""],["rare_beehive_bulb*2","Yellow Amber Lamp","A honey-hued glow",""],["blue_mode_jan08_deal","Blue Mode Bedroom Deal","Blue Single and Double Mode Bed, Mode Bookcase",""],["pink_mode_jan08_deal","Candy Bedroom Deal (pink mode)","Single and Double Candy Bed, Mode Bookcase",""],["val_heart","Heart Light","Heartbroken... without your love!",""],["a2 sportcorner asphalt","Sport corner asphalt","Let's get sporty!",""],["arabian_tray4","Fruit Tray","Sweet, juicy and ripe",""],["rare_fan*9","Fucsia Powered Fan","It'll blow you away!",""],["a0 deal203","Aqua Habbo Roller","The power of movement","2: 5 Aqua Habbo Rollers in a convenient Pack"],["a0 deal210","Aqua Habbo Roller","The power of movement","2: 3 Aqua Habbo Rollers in a convenient Pack"],["queue_tile1*3","Aqua Habbo Roller","The power of movement",""],["scifidoor*4","Emerald Spaceship Door","Protect your pot of gold!",""],["doorC","Portaloo","In a hurry?",""],["poster 66","allSTARS poster","The fab five from STARstreet",""],["ads_idol_lamp","Function Lamp","Add some glamour to your party",""],["divider_nor4*9","Red Iced Auto Shutter","Habbos, roll out!",""],["pura_mdl4*8","Yellow Pura Module 4","Any way you like it!",""],["ads_mirror","ads_mirror name","ads_mirror desc",""],["table_norja_med*6","Large Coffee Table Blue","For larger gatherings",""],["eco_lamp3","Eco Lamp 3","Energy saving bulb fitted",""],["diner_sofa_1*6","Blue Sofa 1","Soft leather in 50s design",""],["sound_set_58","RnB Grooves 4","Sh-shake it!",""],["diner_table_2*5","Beige Table","Enjoy your meal!",""],["couch_norja","Bench","Two can perch comfortably",""],["hwn_deal_4","Skull Candle Holder","Alas poor Yorrick...","The 3rd one is FREE!"],["A2 OLYMPIA","Doormat","Welcome Habbos in style",""],["jp_ninjastars","Ninja Stars","Not a frisbee",""],["prizetrophy3*1","Globe trophy","Glittery gold",""],["party_seat","Club seat","Rest your dancing feet on this!",""],["diner_table_2*1","Aquamarine Table","Enjoy your meal!",""],["ads_idol_ch","American Idol Judge Chair","Sit comfortably in this American Idol Judge Chair",""],["bed_silo_two","Double Bed","Plain and simple x2",""],["jp_katana1","HC Katana Red","Essential chopping!",""],["deal_uk_lava","Lava Ditch","","Save 25%"],["table_plasto_square*2","Occasional Table","Hip plastic furniture",""],["deal_uk_hafta4","A&E Props","Emergency room in a box!","The sink is free!"],["A1 CHP","Round Dining Table","Hip plastic furniture",""],["scifiport*6","White Sci-Fi Port","Energy beams. No trespassers!",""],["party_block2","Stage Block Large","Make mine a large!",""],["rare_fan*4","SUPERLOVE Fan","Fanning the fires of SUPERLOVE...",""],["diner_chair*1","Aquamarine Stool","Perch in comfort",""],["divider_silo2","Screen","Stylish sectioning",""],["sleepingbag*6","Purple Sleeping Bag","Ultimate coziness",""],["romantique_pianochair*2","Esmerald Chair","Sit in traditional style",""],["deal_icebc3","10,000 BC Bundle 3","",""],["noob_rug*4","My first Habbo rug","Nice and neat sisal rug with light blue edging",""],["a1 sportcorner tartan","Sport corner tartan","Let's get sporty!",""],["window_diner","Large Diner Window","Panoramic view of America","NEW Aug 08"],["basket","Basket Of Eggs","Eggs-actly what you want for Easter",""],["poster 22","Winter Wonderland","A chilly snowy scene",""],["glass_chair*7","Green Glass Chair","Habbo Club",""],["bardeskcorner_polyfon*9","Red Corner Desk","Tuck it away",""],["barchair_silo*4","Beige Bar Stool","Practical and convenient",""],["grunge_mattress","Grunge Mattress","Beats sleeping on the floor!",""],["prizetrophy_cool","prizetrophy_cool","prizetrophy_cool",""],["cat_brown_deal","Cat Starter Pack (brown)","",""],["sound_set_49","Club 4","You will belong",""],["wallpaper 25","wallpaper","Wallpaper",""],["glass_stool*4","Glass stool","Translucent beauty",""],["country wheat","Golden Wheat","Right on the brink of harvest",""],["noob_stool*4","My first Habbo stool","Unfold me and take the weight off (light blue)",""],["carpet_polar*1","Pink Faux-Fur Bear Rug","Cute",""],["poster 78","Small gold star","Twinkle, twinkle",""],["mode_sp_jan07_deal","Mode Starter Pack","Hatch, Bardesk Corner and 2 Bardesks",""],["SF_lamp","Sci Fi Lamp","The future's bright...",""],["rare_icecream*8","Peppermint Ice Cream Machine","Virtual peppermint rocks!",""],["doormat_plain","Doormat","Available in a variety of colours",""],["noob_chair_tradeable_1","starter chair","beginniner set",""],["exe_rug","Executive Rug","Please remove your shoes!",""],["jp_tray4","Sushi Uni","Sushi made with sea urchin",""],["divider_nor2*5","Pink Iced bar desk","Pink Iced bar desk",""],["soft_sofachair_norja*4","Urban Iced Sofachair","Sit back and relax",""],["sw_hole","Ventilation Duct","Full of creepy crawlies",""],["deal_uk_junglewall2","Jungle Wall","","Save nearly 50%"],["bed_polyfon_one*2","Black Mode Single Bed","Black Mode Single Bed",""],["arabian_chair","Green Blossom Chair","Exotic, soft seating",""],["rubberchair*6","Violet Inflatable Chair","Soft and tearproof!",""],["sound_set_32","Instrumental 2","Piano concert set",""],["A1 C3P","Round Dining Table","Hip plastic furniture",""],["summer_grill*1","Blue Barbeque Grill","Plenty of ribs on that barbie",""],["wooden_screen*4","Golden Oriental Screen","Add an exotic touch to your room",""],["landscape 2","landscape","Glorious coastline and beach",""],["a1 sportcorner grass","Sport corner grass","Let's get sporty!",""],["diner_tray_0","Empty Plate","Had your fill, or running on empty?",""],["table_silo_med*5","Pink Area Coffee Table","Pink Area Coffee Table",""],["deal_floor_neon","Dance Floor Deal","Dance your socks off with this pack of 4","How cheap is this!"],["ads_mall_wintra","Travel Agency Mall Window","Fly me to the moon, or anywhere else on the Globetrekkers Guide.",""],["eco_mush1","Witch Mushroom","Poisonous in the wrong hands",""],["diner_rug","Diner Floor","Shiny polished finish",""],["wallpaper 20","wallpaper","Wallpaper",""],["a0 stick2","Hockey Stick","Hockey Stick",""],["sofa_polyfon*7","Green Two-seater Sofa","Comfort for stylish couples",""],["xmas08_hole","Ice Fish Hole","What can you catch?",""],["ads_mall_winbea","Mall Beauty Salon","Give yourself some red carpet glamour in the Salon",""],["deal_arab2","Alhambra Deal 2","",""],["noob_window","Window","Room with a view",""],["carpet_standard*2","Floor Rug","Available in a variety of colours",""]] +[["DEV bed_budget7","Green Pura Double Bed","King sized comfort!",""],["poster 1000","Comedy Poster","The Noble and Silver Show",""],["hween08_bath","Blood Bath","Should have chosen the shower!",""],["a0 deal110","Ice Habbo Roller","The power of movement","2: 3 Ice Habbo Rollers in a convenient Pack"],["deal_camera_offer1","Paparazzi Starter Pack","Just Click and Go!","This weekend only!"],["lc_coral_divider_low","Small Coral Divider","Perhaps you could swim over?",""],["tampax_wall","Tampax wall","Tampax wall",""],["ads_mall_tele","Mall tele-door","Step inside the store and look around","ads_mall_tele"],["hcsohva","Throne Sofa","For royal bottoms...",""],["diner_bardesk_corner*4","White Corner","Now that's smooth...",""],["xmas08_trph1","Arctic Penguin Trophy","Given to those who have adopted ALL 26 penguins!",""],["eco_sofa2","Eco Armchair 2","Relax! You've done your bit",""],["hween08_bath2","Ooze Bath","Relax. Take it oozey!",""],["wallpaper","Wallpaper","Add some color to your walls",""],["floor","Floor Pattern","A great floor pattern for your room",""],["divider_poly3*3","White Hatch","Border control!",""],["soft_sofachair_norja*2","iced sofachair","Soft iced sofachair",""],["landscape 7","landscape","Stunning view of Alhambra and the palace",""],["bump_lights","Traffic Lights","Ready. Steady. Go!",""],["bump_tires","Bumper Tyres","Gets you back on track",""],["country_wall","Farmhouse Wall","Tudor decor for your home",""],["DEV bed_budget_one9","Red Pura Bed","Prince sized comfort!",""],["bardeskcorner_polyfon*6","Blue Mode Bardesk Corner","Blue Mode Bardesk Corner",""],["diner_gumvendor*1","Aquamarine Gum Machine","Fruity bubbly goodness!",""],["deal08","Doormat","Welcome Habbos in style",""],["divider_nor3*2","Black Iced Gate","No way through, or is there?",""],["sound_set_30","Instrumental 1","Moments in love",""],["bardesk_polyfon*3","White Bardesk","Perfect for work or play",""],["DEV chair_basic7","Green Pura Egg Chair","It's a cracking design!",""],["sf_gate","Display Gate","Get out! (of this world)",""],["bardeskcorner_polyfon","Corner Cabinet/Desk","Tuck it away",""],["wallpaper 6","wallpaper","Wallpaper",""],["lt_statue","Stone Statue","The temple's guardian force",""],["sound_set_44","Graveyard Portal","Haunted Dimension",""],["rare_dragonlamp*7","Sky Dragon Lamp","Scary and scorching!",""],["bed_polyfon*2","Black Mode Double Bed","Black Mode Double Bed",""],["divider_poly3*2","Black Mode Bardesk Gate","Black Mode Bardesk Gate",""],["glass_sofa*6","Blue Glass Sofa","Translucent beauty",""],["window_70s_wide","Large 70s Window","A view of the past",""],["deal_lantern2","Lantern Bundle 2","20 lanterns for the price of 6!",""],["deal_earthday1","Mood Light","","Save 40 Credits!"],["deal_eas07_rare","BirdBath Bundle","Keep your feathered friends Chirpy this Easter!","Easter Weekend Only!"],["pillow*6","Blue Cotton Pillow","Puffy, soft and huge",""],["sound_machine_deal","Sound machine starter pack","Standard Traxmachine pack",""],["diner_chair*6","Blue Stool","Perch in comfort",""],["xmas08_dvdr2","Icy Divider Corner","What's a dividing wall without a corner?",""],["deal_eas07_1","Wannabe bunny","Can you tell what it is yet?",""],["ads_igor_wall","Monster Plan Poster","The latest model!",""],["eco_cactus1","Potted Cactus 1","Find a place in the sun",""],["deal_xmas9","Xmas Poster Selection","Festive cheer for your walls!","5 for the price of 4!"],["ads_mall_winfur","Mall Furni Showroom","Want to know different ways of decorating? Take a peek inside.",""],["ads_idol_wall","American Idol Poster","Set the stage with this poster. Feels like you're really there, right?",""],["poster 31","System of a Ban","Pure and unbridled nu-metal",""],["deal_tikistatue","Tribal Statue Bundle","",""],["tree7","Snowy Christmas Tree","Walking in a winter wonderland!",""],["hween08_bio","Biohazard Sign","Every sock bin needs one!",""],["grand_piano*4","Amber Piano Stool","I can feel air coming through...",""],["hwn_deal_6","Haunted Grave","We're raising the dead!","Huge saving!"],["chair_plasty","Plastic Pod Chair","Hip plastic furniture",""],["noob_stool*5","My first Habbo stool","Unfold me and take the weight off (pink)",""],["bed_polyfon*7","Green Double Bed","Give yourself space to stretch out",""],["xmasduck","Christmas Rubber Duck","A right Christmas quacker!",""],["diner_table_1*7","Green Booth Table","Ready to order?",""],["greektrophy*1","Greek trophy","Glittery gold",""],["yellow_pura_jan08_deal","Yellow Pura Bedroom Deal","Yellow Single and Double Pura Bed, Pura Lamp",""],["svnr_de","German Gnome","October 2008, 4/6",""],["country_fnc2","Stone Wall","Keep your livestock safe",""],["bed_polyfon*6","Blue Mode Double Bed","Blue Mode Double Bed",""],["xmas08_storms10_deal","Snow Storm Deal x10","Half price offer on Snow Storms!",""],["pura_mdl3*8","Yellow Pura Module 3","Any way you like it!",""],["country_soil","Crop Field","Grow your own!",""],["bolly_tile2","Standard Tile","The floor is your canvas",""],["A1 S1BVALKO","Plain Single Bed","All you need for a good night's kip",""],["avatar_effect14","Pink Hover Board","The future of transportation in pink.",""],["avatar_effect20","HelpMobile effect","I'll help you if I can.",""],["sofa_polyfon*9","Red Two-seater Sofa","Comfort for stylish couples",""],["hcc_sofa","Low Back Sofa","Get your friends over!",""],["easy_poster","Easy poster","Easy mac promotion",""],["hween08_curtain2","Hospital Curtain (ooze)","Nurses at work",""],["poster 79","Small silver star","Twinkle, twinkle",""],["deal_swapit3","Romantique Bundle","",""],["sound_set_4","Ambient 1","Chilled out beats",""],["deal_uk_stage2","Large Tribal Block","","Save 25%"],["noob_lamp*3","My first Habbo lamp","Get the light right where you want it (aubergine)",""],["DEV bed_budget8","Yellow Pura Double Bed","King sized comfort!",""],["ads_calip_fan","ads_calip_fan","ads_cali desc",""],["solarium_norja*6","Blue Solarium","Rejuvenate your pixels!",""],["poster 82","Basketball Hoop","2 points for every basket",""],["val_cauldron","Valentine's Cauldron","Cast a loving spell!",""],["sofa_silo*5","Pink Area Sofa","Pink Area Sofa",""],["pura_mdl2*8","Yellow Pura Module 2","Any way you like it!",""],["lc_tubes_corners","Water Tube Corner","Sends you round the bend",""],["SF_chair_blue","Space Crew Chair","Time to man your position",""],["deal_christmas1","New Year Deal 1","The perfect NYE party deal!",""],["poster 56","Disco Sign","Serious partying going on!",""],["summer_chair*8","Yellow Deck Chair","Got your sun cream?",""],["heartsofa","Heart Sofa","Perfect for snuggling up on",""],["country_patio","Wooden Patio Tile","Build the great outdoors",""],["det_bhole","Bullet Hole","That was close!",""],["doormat_plain*1","Doormat","Available in a variety of colours",""],["scifirocket*4","Venus Smoke Machine","Welcome... to planet love",""]] +[["deal_sport4","Luxury Team Hotel Deal","",""],["toilet","Loo Seat","Loo Seat",""],["landscape 3","landscape","Snow capped mountains above the clouds",""],["a5 gothicsofa","Green Gothic Sofa","The dark side of Habbo",""],["window_single_default","Single Window","A simple view",""],["couch_norja*9","Red Bench","Two can perch comfortably",""],["eco_table1","Eco Coffee Table 1","Recycled wood as standard",""],["exe_globe","Power Globe","The power is yours!",""],["det_divider","Police Divider","Crime scene, stay out!",""],["ticketbundle5","Small Ticket Bundle","A bundle of 5 gaming tickets",""],["carpet_standard*3","Floor Rug","Available in a variety of colours",""],["table_plasto_4leg","Occasional table Table","Hip plastic furniture",""],["table_plasto_4leg*1","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*2","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*3","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*5","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*6","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*7","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*8","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*9","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*10","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*14","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*15","Occasional Table table","Hip plastic furniture",""],["table_plasto_4leg*16","Occasional Table table","Hip plastic furniture",""],["trax_electro_jan08_deal","Electronic / Latin Deal","Latino Grooves","Save over 25%"],["A1 C7P","Round Dining Table","Hip plastic furniture",""],["prizetrophy*1","Classic trophy","Glittery gold",""],["rare_moonrug","Moon Patch","Desolation rocks!",""],["gothrailing","Gothic Railing","Keep out!",""],["xmas08_icetree","Icy Christmas Tree","It can't be Christmas without it!",""],["lt_stone1","Tribal Stone Corner","This path is blocked",""],["divider_arm3","Gate (lockable)","Knock, knock...",""],["a0 sleepingbag10","Khaki Sleeping Bag","Ultimate coziness",""],["diner_bardesk_corner*1","Aquamarine Corner","Now that's smooth...",""],["wooden_screen*2","Rosewood Screen","Add an exotic touch to your room",""],["avatar_effect10","Flies","Time to take a bath?",""],["diner_table_2*2","Pink Table","Enjoy your meal!",""],["deadduck2","Dead Duck 2","Someone forgot to feed me...",""],["eco_light1","Eco Light 1","Energy saving bulb fitted",""],["landscape 9","Eastern Skyline","Landscape 9",""],["diner_bardesk_gate*8","Yellow Gate","Working 9 to 5",""],["hween08_wndw","Broken Window (large)","Was it a bird or a parsnip?",""],["footylamp_campaign","footylamp_campaign","",""],["penguin_super","Superhero Penguin","Aptenodytes Kirby",""],["a0 pet1","Pet and Basket","Night, night",""],["noob_rug_tradeable_1","starter rug","beginner set",""],["scifirocket*6","Mercury Smoke Machine","Too hot to handle!",""],["eco_mush2","Fairy Mushroom","Sweet and nutty.",""],["sob_carpet","Street of Bobba","SOB flamer",""],["SF_floor_1","Starship Floor 1","Dec out the decks!",""],["spyro","Dragon Egg","The stuff of legend",""],["pillow*0","White Lace Pillow","Minimalist comfort!",""],["deal_christmas5","Tinsel (gold)","A touch of festive sparkle",""],["divider_poly3*7","Green Hatch","Border control",""],["kinkysofa","kinkysofa","",""],["poster 48","The Spanish flag","The flag of Spain",""],["sleepingbag*3","Ocean Sleeping Bag","Ultimate coziness",""],["pura_mdl3*4","White Pura Module 3","Any way you like it!",""],["table_polyfon_med","Large Coffee Table","For larger gatherings",""],["lc_wall2","Coral Wall","There's life in the deep blue",""],["poster 80","Large gold star","All that glitters...",""],["cat_blue_deal","Cat Starter Pack (blue)","",""],["deal_blocks_neon","Ready Made Stage Large","Get 10 blocks at 2.5 credits per block!",""],["lc_wall1","Rock Wall","Depths of the ocean",""],["jp_katana2","Katana Blue","Let's get chopping!",""],["prizetrophy7*2","Silver Habbo trophy","Silver Habbo trophy",""],["ads_calip_parasol","ads_calip_parasol name","ads_calip_parasol desc",""],["deal_sport1","Manager Deal","",""],["12_Month_Subscription_8","Endor Smoke Machine and 80 Credits","",""],["landscape 10","Landscape 10 - Lost city ocean","landscape 10 desc",""],["deal_icebc2","10,000 BC Bundle 2","",""],["dog_yellow_deal","Dog Starter Pack (yellow)","",""],["a2 tree1","Dead tree","Dead christmas tree",""],["deal_tatami_s","Small Tatami Mat","Shoes off please","4 for 3!"],["diner_bardesk_gate*9","Red Gate","Working 9 to 5",""],["diner_bardesk_gate*10","Mint Gate","Working 9 to 5",""],["sleepingbag*1","Rose Sleeping Bag","Bed of roses",""],["A1 C4P","Round Dining Table","Hip plastic furniture",""],["glass_sofa*4","Glass sofa","Translucent beauty",""],["divider_silo3","Gate (lockable)","Form following function",""],["party_wc_boy","Boys Toilets","Stand up or sitting down, this is for the Boys only!",""],["noob_rug*2","My first Habbo rug","Nice and neat sisal rug with blue edging",""],["lt lava","Lava Ditch","Mind the gap",""],["ads_nokia_logo","Nokia phone","Connecting People",""],["valeduck","Valentine's Duck","He's lovestruck",""],["hween08_sink2","Ooze Sink","Who picked a spot?",""],["bench_armas","Bench","To complete the dining set",""],["val_teddy*5","Yellow Share Bear","The yellow bear of understanding",""],["avatar_effect25","Flares","What a heat it gives off!",""],["country_rbw","Rainbow","Find your pot of gold",""],["12_Month_Subscription_4","Aqua Spaceship Door and 80 Credits","",""],["hc_dsk","Study Desk","For Habbo scholars",""],["ads_campguitar","Red V Guitar","Awarded to some Camp Rock entrants",""],["ads_calip_cola*3","Calippo Strawberry","Of the most refreshing!",""],["carpet_standard*4","Floor Rug","Available in a variety of colours",""],["bolly_table","Large Ornamental Table","Decorative granite finish",""],["12_Month_Subscription_3","Love Cauldron and 80 Credits","",""],["sound_set_11","Dance 4","Music you can really sink your teeth into",""],["deal_trax3","Trax Pack: Rock","You will, you will, rock out!",""],["pura_mdl2*2","Pink Pura Module 2","Any way you like it!",""],["window_romantic_narrow","Small Romantic Window","A beautiful view",""]] +[["trax_rock2_jan08_deal","Metal Deal","Heavy metal!","Save 25%"],["ads_ob_pillow","Ob pillow","The perfect way to relax",""],["ads_igorraygun","Igor Ray Gun","Shoot down your foes!",""],["A1 OSB","Doormat","Welcome Habbos in style",""],["noob_chair_tradeable_2","starter chair","beginner set",""],["sleepingbag*7","Orange Sleeping Bag","Ultimate coziness",""],["xmas_icewall","xmas_icewall name","xmas_icewall desc",""],["prizetrophy6*1","Champion trophy","Glittery gold",""],["rclr_chair","Palm Chair","Watch out for coconuts",""],["table_silo_small*5","Pink Area Occasional Table","Pink Area Occasional Table",""],["glass_shelf","Glass shelf","Translucent beauty",""],["deal_habbowood_100","The Mega Sale bundle!","Habbowood Glamour for less","Fantastic Furni at insane prices!"],["eco_table3","Eco Coffee Table 3","Recycled wood as standard",""],["md_can","Bubble Juice Can","Enough bubbling juice for one evening",""],["diner_sofa_2*3","Black Sofa 2","Soft leather in 50s design",""],["glass_sofa","Glass sofa","Translucent beauty",""],["sound_machine5","Brown Traxmachine","Heard the Habbo Bands new singles?",""],["avatar_effect3","Blue UFO","Help, I'm being abducted.",""],["A1 LTP","Shelf","Tidy up",""],["eco_lamp2","Eco Lamp 2","Energy saving bulb fitted",""],["shelves_norja*5","Pink Bookcase","For nic naks and art deco books",""],["dog_blue_deal","Dog Starter Pack (blue)","",""],["sound_set_5","Ambient 4","The dark side of Habbo",""],["table_norja_med","Coffee Table","Elegance embodied",""],["pura_mdl1*5","Beige Pura Module 1","Any way you like it!",""],["deal_uk_grass4","Field Grass","Herding and grazing",""],["guitar_skull","Skull Guitar","",""],["poster 3","Fish Plaque","Smells fishy, looks cool",""],["prizetrophy4*2","Fish trophy","Breathtaking bronze",""],["lc_corner","Wooden Corner","Tuck it away",""],["carpet_polar*4","Green Bear Rug","Snuggle up on a Funky bear rug...",""],["rare_fan*3","Summer Fan","Be cool!",""],["scifiport*2","Blue Laser Gate","Get in the ring!",""],["bardesk_polyfon","Bar/desk","Perfect for work or play",""],["A1 C5P","Round Dining Table","Hip plastic furniture?",""],["diner_bardesk*9","Red Bar","Pull up a stool!",""],["diner_bardesk*10","Mint Bar","Pull up a stool!",""],["sporttrack1*2","Sport track straight grass","Let's get sporty!","Four straight grass tracks"],["bardesk_polyfon*8","Yellow Mode Bardesk","Yellow Mode Bardesk",""],["xmas_light","Christmas Lights","Seen Rudolph's nose anywhere?",""],["lc_medusa2","Small Jellyfish Lamp","There's no sting in this tail",""],["queue_tile1*4","Gold Habbo Roller","The power of movement",""],["one_way_door*7","Green One Way Gate","One at a time!",""],["SF_panel1","Command Console","Ready. Aim. Reboot!",""],["poster 27","Holly Garland","Deck the halls!",""],["A1 B6P","Square Dining Table","Hip plastic furniture",""],["poster 522","Japan Flag","Land of the rising sun",""],["rare_fan*7","Brown Powered Fan","...it's really hit the fan!",""],["table_polyfon_small","Small Coffee Table","For serving a stylish latte",""],["arabian_tray1","Mint Tea Tray","Tea for every occasion",""],["diner_tray_6","Ice Cream Sundae","Vanilla, chocolate and strawberry!",""],["scifirocket*3","Endor Smoke Machine","Caution! Unknown Location!",""],["traffic_light*4","Yellow Traffic Light","Chill and wait your turn!",""],["sound_set_43","SFX 1","Beware zombies!",""],["grunge_radiator","Radiator","Started cool but now it's hot!",""],["diner_chair*3","Black Stool","Perch in comfort",""],["ads_oc_soda","ads_oc_soda","ads_oc_soda desc",""],["fx_flare","Firestarter","Light it up!",""],["A1 D9P","Square Dining Table","Hip plastic furniture",""],["small_table_armas","Occasional Table","Practical and beautiful",""],["chair_silo*5","Pink Silo Dining Chair","Pink Silo Dining Chair",""],["A1 D6P","Square Dining Table","Hip plastic furniture",""],["wall_china","Dragon Screen","For your great wall",""],["soft_sofa_norja*8","Yellow Iced Sofa","Yellow Iced Sofa",""],["window_70s_narrow","Small 70s Window","Takes you back",""],["yellow_bathroom_jan08_deal","Yellow Bathroom Deal","Duck, Sink, Bath, Yellow Floor Tiles, Yellow Loo Seat",""],["divider_nor4*2","Black Iced Auto Shutter","Habbos, roll out!",""],["area_sm_jan07_deal","Area Screen Multipack","5 screens",""],["sleepingbag*8","Golden Sleeping Bag","Ultimate coziness for SnowStorm winners",""],["sofa_polyfon*8","Yellow Mode Sofa","Yellow Mode Sofa",""],["deal_sport3","Hooligan Deal","",""],["summer_pool*1","Blue Summer Pool","Fancy a dip?",""],["A1 B3P","Square Dining Table","Hip plastic furniture",""],["christmas_sleigh","Winter Sleigh","Ready for your Xmas cheer",""],["queue_tile1*8","Navy Habbo Roller","The power of movement",""],["exe_chair2","Executive Boss Chair","You're fired!",""],["bed_polyfon_one","Single Bed","Cot of the artistic",""],["window_chinese_narrow","Small Oriental Window","Narrow wood carved frame",""],["DEV bed_budget_one8","Yellow Pura Bed","Prince sized comfort!",""],["deal_jpillow","Pillow Chair","Comfy and classical","4 for 3!"],["glass_chair*8","Yellow Glass Chair","A pane that you're used to",""],["tiki_wallplnt","Jungle Wallplant","Dense jungle ahead!",""],["bar_armas","Barrel Minibar","It's a barrel of laughs and a great talking point",""],["window_skyscraper","Skyscraper Window","Dizzy heights!","NEW Aug 08"],["bolly_drapeb","Green Curtain","Made with the finest materials",""],["diner_bardesk_gate*7","Green Gate","Working 9 to 5",""],["deal_fair2","HabboValley.com Roundabout","",""],["chair_norja","Chair","Sleek and chic for each cheek",""],["md_logo_wall","Bubble Juice Logo","Bubble up your wall",""],["traffic_light*6","Red Traffic Light","Chill and wait your turn!",""],["diner_tray_4","Pancakes","Smothered in syrup and butter!",""],["hcc_dvdr","Glass Divider","It won't cramp your style",""],["DEV chair_basic8","Yellow Pura Egg Chair","It's a cracking design!",""],["DEV chair_basic6","Blue Pura Egg Chair","It's a cracking design!",""],["sound_set_52","Club 7","State of Trancehouse",""],["couch_norja*5","Pink Bench","Two can perch comfortably",""],["SF_alien","Alien Lifeform","Name and origin currently unknown",""],["diner_bardesk_gate*1","Aquamarine Gate","Working 9 to 5",""],["table_silo_med*7","Green Area Coffee Table","Gather everyone round",""],["bar_chair_armas","Barrel Stool","The ultimate recycled furniture",""],["chair_plasty*1","Plastic Pod Chair","Hip plastic furniture",""]] +[["deal_xmaseve","Christmas Eve Bundle","Xmas Eve in a box!",""],["summer_pool*3","Green Summer Pool","Fancy a dip?",""],["romantique_clock","Grandfather's Clock","The most Romantic tick-tock ever!",""],["prizetrophy8*1","Bubble trophy","Glittery gold",""],["pink_pura_jan08_deal","Pink Pura Bedroom Deal","Pink Single and Double Pura Bed, Pura Lamp",""],["greektrophy*3","Greek trophy","Breathtaking bronze",""],["A1 A5P","Round Dining Table","Hip plastic furniture",""],["deal_rom_window_big","Large Romantic Window","Heavenly scent of flowers","2 FREE Windows!"],["table_plasto_square*3","Occasional Table","Hip plastic furniture",""],["couch_norja*8","Yellow Bench","Two can perch comfortably",""],["window_basic","Basic Window","Plain and simple",""],["jp_teamaker","Japanese Teamaker","Makes a steaming brew!",""],["deal_dogs_2","Doggy Bumper Deal","Special deal with over a 1/3 off the normal price!",""],["solarium_norja*5","Pink Solarium","Rejuvenate your pixels!",""],["pura_mdl3*2","Pink Pura Module 3","Any way you like it!",""],["industrialfan","Industrial Turbine","Powerful and resilient",""],["pura_mdl5*6","Blue Pura Module 5","Any way you like it!",""],["poster 72","Habbo Golden Record","For the best music-makers",""],["bed_polyfon_one*9","Red Single Bed","Cot of the artistic",""],["romantique_pianochair*3","Sapphire Chair","For stately seating experiences",""],["3_Month_Subscription_1","Blue Cotton Pillow and 80 Credits","",""],["Christmas maze shrubbery","Snowy Maze Shrubbery","Snow end in sight!",""],["poster_mistletoe","Mistletoe","Pucker up",""],["small_chair_armas","Stool","Rustic charm at it's best",""],["poster 30","Mistletoe","Pucker up",""],["lostc_teleport","Architeuthis","3/6 - March 2009",""],["CFC_500_goldbar","Gold Bar (China)","Worth 500 Credits",""],["a0 pet2","Pet and Basket","Night, night",""],["poster 71","Bonnie Blonde","The one and only. Adore her!","Straight from the Habbowood set!"],["romantique_pianochair*4","Amber Chair","What does this button do?",""],["diner_table_2*4","White Table","Enjoy your meal!",""],["sound_set_63","AlhambraTrax 2","Desert hits by the oasis!",""],["DEV chair_basic2","Pink Pura Egg Chair","It's a cracking design!",""],["ham","Joint of Ham","Tuck in",""],["deal_uk_soil4","Crop Field","Grow your own!",""],["trax_club1_jan08_deal","Trance Deal","Trance anthems!","Save over 25%"],["sofachair_silo*3","White Armchair","Large, but worth it",""],["trax_party","Trax Pack: Red Party","You here to partyyy?","Limited Edition!"],["soft_sofa_norja*5","Pink Iced Sofa","Pink Iced Sofa",""],["avatar_effect9","Love","Exciting and new!",""],["pura_mdl1*8","Yellow Pura Module 1","Any way you like it!",""],["ads_ob_wall","Ob wall","TBD ads_ob_wall",""],["sf_floor","Transparent Floor","I can see Uranus through here!",""],["bolly_fountain","Extravagant Fountain","Now that's refreshing!",""],["toy1*2","Rubber Ball","it's bouncy-tastic",""],["toy1","Rubber Ball","it's bouncy-tastic",""],["12_Month_Subscription_5","Khaki Sleeping Bag and 80 Credits","",""],["poster 17","Butterfly Cabinet 1","Beautiful reproduction butterfly",""],["noob_rug_tradeable_5","starter rug","beginner set",""],["poster 46","The flag of Finland","To 'Finnish' your decor...",""],["deal_uk_scififloor10b","Starship Floor 1","Dec out the decks!",""],["rare_dragonlamp*0","Fire Dragon Lamp","George and the...",""],["poster 49","The Jamaican flag","The flag of Jamaica",""],["diner_tray_1","Burger and Chips","99% British beef!",""],["shelves_polyfon","Bookcase","For the arty pad",""],["romantique_divan*3","Sapphire Chaise-Longue","Relax and recline!",""],["poster 24","Three Wise Men Poster","Following the star",""],["plant_valentinerose*5","Purple Valentine's Rose","Requires purple rain to flourish","New item 2009!"],["scifidoor*6","Black Monolith","Monolith goes up! Monolith goes down!",""],["env_bushes_gate","Eco Hedgerows Gate","Get ready for Mother Nature's world and wait your turn",""],["trax_disco_jan08_deal","Disco Deal","Night fever!",""],["deal_uk_lavac","Lava Corner","","Saver bundle!"],["white_mode_jan08_deal","White Mode Bedroom Deal","White Single and Double Mode Bed, Mode Bookcase",""],["tile_marble","Marble Tile","Slick sophistication, don't slip!",""],["rare_fountain*2","Bird Bath (green)"," For our feathered friends",""],["A1 PPS","Occasional Table","For those random moments",""],["diner_bardesk_corner*9","Red Corner","Now that's smooth...",""],["diner_bardesk_corner*10","Mint Corner","Now that's smooth...",""],["safe_silo*7","Green Safe Minibar","Totally shatter-proof!",""],["pillow*2","Red Silk Pillow","Puffy, soft and huge",""],["diner_cashreg*2","Pink Register","Roll up roll up!",""],["diner_sofa_2*2","Pink Sofa 2","Soft leather in 50s design",""],["svnr_aus","Aussie Outback","November 2008, 5/6",""],["ads_idol_mirror","Makeup Mirror","Pass the lipstick please!",""],["hockey_light","Lert","Set it off.",""],["deal_uk_grass10","Mega Grass Deal","10 (yes 10!) patches for 45 Credits - over 50% off!",""],["a6 gothicsofa","Gothic Sofa Blue","The dark side of Habbo",""],["hcc_stool","Antique Stool","For larger gatherings",""],["arabian_rug","Berber Kilim Rug","Green blossom design",""],["lodge_sp_jan07_deal","Lodge Starter Pack","Gate, Corner Plinth and 2 Room Dividers",""],["hwn_deal_7","Haunted Grave","We're raising the dead!","The 3rd one is FREE!"],["sound_set_10","Hip Hop Beats 1","Made from real Boy Bands!",""],["sleepingbag*2","Lime Sleeping Bag","Ultimate coziness",""],["poster 52","The Irish flag","The flag of Ireland",""],["divider_nor3*7","Rural Iced gate","Entrance or exit?",""],["lc_medusa1","Large Jellyfish Lamp","There's no sting in this tail",""],["plant_fruittree","Fruit Tree","Great yield and sweet fruit",""],["greek_pillars","Greek Pillars","Architectural splendor!",""],["safe_silo*3","White Safe Minibar","Totally shatter-proof!",""],["deal_uk_scififloor10","Transparent Floor","I can see Uranus through here!",""],["croc_red_deal","Croc Starter Pack (red)","",""],["plant_mazegate","Maze Shrubbery Gate","Did we make it?",""],["soft_sofa_norja*6","Blue Iced Sofa","Blue Iced Sofa",""],["12_Month_Subscription_2","Rose Powered Fan and 80 Credits","",""],["a0 deal106","Blue Habbo Roller","The power of movement","2: 3 Blue Habbo Rollers in a convenient Pack"],["divider_nor5*6","Blue Iced Angle","Cool cornering for your crib y0!",""],["marquee*6","Blue Marquee","It's both door and a shade!",""],["safe_silo*2","Black Safe Minibar","Totally shatter-proof!",""],["lc_tile2","Cobbled Stones","Rocky room foundations",""],["sound_set_35","Dance 6","Groovelicious",""],["poster 36","Habbo Babes 2","The Hotels girlband. Dream on!",""]] +[["drinks","Empty Cans","Are you a slob too?",""],["deal_christmas4","Mistletoe","Pucker up",""],["sound_set_1","Habbo Sounds 1","Get the party started!",""],["tray_glasstower","Champagne Tower","To the Bride and Groom",""],["penguin_bunny","Bunny Penguin","Aptenodytes Euripides",""],["a0 deal114","Navy Habbo Roller","The power of movement","2: 3 Navy Habbo Rollers in a convenient Pack"],["rare_dragonlamp*1","Sea Dragon Lamp","Out of the deep blue!",""],["poster 6","Abstract Poster","But is it the right way up?",""],["doorD","Imperial Teleport","Let's go over tzar!",""],["hc_chr","Majestic Chair","Royal comfort",""],["HW XMAS_HC_RIBBON","HW XMAS_HC_RIBBON","HW XMAS_HC_RIBBON",""],["sw_swords","Swords","The other kind of fencing...",""],["deal_uk_floor9a","Ornamental Tile","The floor is your canvas",""],["deal_trax2","Trax Pack: Pop","Lets all bop til' we drop!",""],["env_bushes","Eco Hedgerow","Block out your nosey neighbours",""],["A1 C8P","Square Dining Table","Hip plastic furniture",""],["party_wc_girl","Girls Toilets","Girls only please.",""],["party_lights","Party Lights","Dance dance dance!",""],["diner_table_2*6","Blue Table","Enjoy your meal!",""],["hc_trll","Drinks Trolley","For swanky dinners only",""],["a0 deal209","Sport track straight asphalt","Let's get sporty!","Four straight asphalt tracks"],["summer_grill*4","Yellow Barbeque Grill","Plenty of burgers on that barbie",""],["deal_pop","Abstract Poster","But is it the right way up?",""],["ads_idol_trax","American Idol Trax Machine","Everything sounds sweeter with this custom American Idol Trax Machine!",""],["plant_rose","Cut Roses","Sleek and chic",""],["rare_hammock","Hammock","Eco bed",""],["china_pstr2","Dragon Poster","Majestic flying beast",""],["chair_plasty*2","Plastic Pod Chair","Hip plastic furniture",""],["sound_set_64","AlhambraTrax 3","Make a little Jinn-gle!",""],["divider_nor5*8","Yellow Iced Angle","Cool cornering for your crib y0!",""],["chair_plasto*1","Chair","Hip plastic furniture",""],["deal_dogs_1","Dog Accessories Deal","Get a basic starter kit worth 8 credits for 5!",""],["glass_stool*5","Candy Glass Stool","Clear a seat",""],["divider_nor4*3","White Iced Auto Shutter","Habbos, roll out!",""],["carpet_standard*5","Floor rug","Available in a variety of colours",""],["deal_uk_patch1","Moss Patch","","Save 60%!"],["g0 group_product","group product","A group product",""],["noob_lamp*4","My first Habbo lamp","Get the light right where you want it (light blue)",""],["deal_tile4","Star Tile","Take a walk of fame",""],["cat_yellow_deal","Cat Starter Pack (yellow)","",""],["deal_movie2","Comedy Bundle","Your very own dodgeball court",""],["rare_icecream*6","Toffee Ice Cream Machine","Virtual toffee rocks!",""],["lt lava corner","Lava Corner","Curb that hot flush",""],["divider_nor2","Ice Bar-Desk","Strong, yet soft looking",""],["rubberchair*3","Orange Inflatable Chair","Soft and tearproof!",""],["summer_pool*2","Red Summer Pool","Fancy a dip?",""],["tiki_tray1","Tiki Fruit Tray","Refreshing!",""],["avatar_effect4","Twinkle","Twinkle like the star you are.",""],["wallpaper 26","wallpaper","Wallpaper",""],["romantique_smalltabl*3","Sapphire Tray Table","Every tray needs a table...",""],["rare_beehive_bulb","Blue Amber Lamp","A honey-hued glow",""],["rare_beehive_bulb*0","Grey Amber Lamp","A honey-hued glow",""],["deal_snowhedge1","Snowy Maze Bundle 1","10 x Snowy Maze Shrubbery","Super saver bundle!"],["lc_coral_divider_hi","Large Coral Divider","Keep those pesky sharks out",""],["pillar*6","Terracotta Pillar","Ancient and stately",""],["wallpaper 3","wallpaper","Wallpaper",""],["hal_cauldron","Habboween Cauldron","Eye of Habbo and toe of Mod!",""],["a0 deal102","Red Habbo Roller","The power of movement","2: 5 Red Habbo Rollers in a convenient Pack"],["Test Deal","Test Deal","Seeing how many items I can get in it...",""],["CF_20_moneybag","Sack of Credits","Worth 20 Credits",""],["noob_chair_tradeable_3","starter chair","beginner set",""],["diner_table_1*1","Aquamarine Booth Table","Ready to order?",""],["divider_silo1*8","Yellow Corner Shelf","Neat and natty",""],["sound_set_8","Ambient 2","Mellow electric grooves",""],["deal_Igor","Igor Package","Igor furnitures",""],["rare_xmas_screen","Lappland Greetings","Ho Ho Ho!",""],["trax_ambient_jan08_deal","Ambient Deal","Ultimate in ambiance","Save 25%"],["wallpaper 4","wallpaper","Wallpaper",""],["sofa_polyfon_girl","Two-seater Sofa","Romantic pink for two",""],["hc_machine","Weird Science Machine","By and for mad inventors",""],["avatar_effect16","Microphone","One mic - one MC!",""],["romantique_tray2","Romantique Treats Tray","Time to celebrate!",""],["deal_tp1","Ghost Train Bundle","",""],["sound_machine1","Traxmachine","Let the party begin!",""],["ads_idol_newsDsk","New Reporter Desk","Report all the gossip in Habbo at this desk!",""],["habboween_crypt","Creepy Crypt","What lurks inside?",""],["sleepingbag*9","eXceptional Sleeping Bag","For eXceptional comfort!",""],["house2","Gingerbread House","Good enough to eat",""],["bolly_petals","Petal Flurry","Lay down a bed of roses",""],["diner_table_1*4","White Booth Table","Ready to order?",""],["ads_mall_winchi","Mall Idea Agency Window","Come inside and become a part of Idea",""],["scifirocket*2","Earth Smoke Machine","A little closer to home!",""],["chair_plasto*2","Chair","Hip plastic furniture",""],["bed_budgetb","Plain Double Bed","Sweet dreams for two",""],["pura_mdl4*6","Blue Pura Module 4","Any way you like it!",""],["waterbowl*3","Yellow Water Bowl","Aqua unlimited",""],["mode_bm_jan07_deal","Mode Bardesk Multipack","5 bardesks",""],["deal_uk_wallie2","Beach BBQ Set","",""],["bed_polyfon*9","Red Double Bed","Give yourself space to stretch out",""],["plant_mazegate_snow","Snowy Maze Gate","There's snow way through!",""],["poster 33","Save the Panda","We can't bear to lose them",""],["deal_uk_wall10","Starship Wall","Keeping space out since 1969",""],["joulutahti","Poinsetta","Christmas in a pot",""],["chair_silo*3","White Dining Chair","Keep it simple",""],["testi","","",""],["arabian_tray2","Candle Tray","For those Arabian nights",""],["legotrophy","Basketball Trophy","For the winning team",""],["poster 502","The Stars and Stripes","The US flag",""],["deal_spotlights_neon","Spotlight Deal","5 spotlights for just 13 Credits!",""],["a6 gothicstool","Gothic Stool","The dark side of Habbo",""],["deal_uk_soil9","Crop Field","Grow your own!",""]] +[["arabian_tetbl","Hexagonal Tea Table","Serve up a treat",""],["country_stage","Wooden Stage","Time for a barn dance",""],["queue_tile1*2","Red Habbo Roller","The power of movement",""],["xmas08_telep","Icy Teleport","Travel space and time in this freeze block!",""],["shelves_norja*2","Black Iced Bookcase","For nic naks and art deco books",""],["hween08_bbag","Body Bag","Not a nice place to catch some Zzz's",""],["deal_lava_neon","Lava Lamp Deal","15 Credits get you 5 Lamps!",""],["poster 1003","UK Map","get the lovely isles on your walls",""],["wooden_screen*3","Aqua Oriental Screen","Add an exotic touch to your room",""],["prizetrophy2*2","Duck trophy","Shiny silver",""],["poster 51","The Dutch flag","The flag of The Netherlands",""],["a0 deal116","Purple Habbo Roller","The power of movement","2: 3 Purple Habbo Rollers in a convenient Pack"],["greek_block","Greek Block","A nice stone block",""],["SF_panel3","Navigation Panel","Don't get lost in space",""],["rclr_lamp","Moon Lamp","Light your space",""],["pura_mdl2*9","Red Pura Module 2","Any way you like it!",""],["country_rain","Rain Shower","Made in Britain",""],["scifidoor*9","Blue Spaceship Door","It's blue, da ba dee...",""],["diner_sofa_2*5","Beige Sofa 2","Soft leather in 50s design",""],["jp_drawer","Japanese Drawer","Spiritual home for odds and ends",""],["poster 53","The Australian flag","Aussies rule!",""],["country_scarecrow","Scarecrow","Looks strangely familiar",""],["avatar_effect1","Spotlight","Shine the light on me!",""],["diner_bardesk*8","Yellow Bar","Pull up a stool!",""],["noob_lamp_tradeable_4","starter lamp","beginner set",""],["lc_anemone","Anemone","In glorious water colour!",""],["deal_sport6","Supporter Deal","",""],["avatar_effect15","Yellow Hover Board","As yellow as a submarine.",""],["chair_norja*3","White Iced Chair","Sleek and chic for each cheek",""],["eco_chair2","Eco Stool 2","Brown floral design",""],["jp_rare","Shishi Odishi","Traditional Japanese water ornament",""],["penguin_cowboy","Cowboy Penguin","Aptenodytes Hickok",""],["xmas08_icewall25_deal","Ice Wall Deal x25","Get 25 walls at half price - that is just 50 Credits!",""],["hc_lmpst","Victorian Street Light","Somber and atmospheric",""],["barchair_silo*3","White Bar Stool","Practical and convenient",""],["carpet_soft*6","Soft Wool Rug","Soft Wool Rug",""],["ads_mall_winpet","Mall Pet Shop Window","Which exotic animals can you see inside?",""],["ads_idol_floor1","American Idol Floor Tile 1","Create a custom floor in your American Idol room",""],["sw_chest","Ye Olde Chest","One size fits all",""],["a6 gothicchair","Gothic Chair Blue","The dark side of Habbo",""],["penguin_boxer","Boxer Penguin","Aptenodytes Ali",""],["deal_bubbles_neon","Bubble Lamp Deal","5 bubble lamps for 15 credits",""],["table_plasto_square*4","Occasional Table","Hip plastic furniture",""],["table_plasto_square*5","Occasional Table","Hip plastic furniture",""],["deal_urban","Urban Hangout","Chilled Streetz style",""],["poster 521","Flag of Brazil","Ordem e progresso",""],["poster 1004","Eid Mubarak Poster","Celebrate with us",""],["sf_pod","Cryogenic Bed","For those who like to sleep a long time.",""],["sofachair_silo*5","Pink Area Armchair","Large, but worth it",""],["bolly_lamp","Chandelier","Turn the lights down low",""],["hc_tbl","Nordic Table","Perfect for banquets",""],["table_silo_med*9","Red Area Coffee Table","Red Area Coffee Table",""],["wallpaper 14","wallpaper","Wallpaper",""],["rare_fountain*1","Bird Bath (grey)","For our feathered friends",""],["hween08_rad","Nuclear Radiation Sign","Warning! Smelly cheese ahead!",""],["sound_set_19","Hip Hop Beats 4","Shake your body!",""],["pura_mdl5*3","Black Pura Module 5","Any way you like it!",""],["table_silo_small*9","Red Area Occasional Table","Red Area Occasional Table",""],["table_norja_med*2","Black Iced Table","For larger gatherings",""],["heart","Giant Heart","Full of love",""],["ads_idol_floor2","American Idol Floor Tile 2","Make your American Idol room more unique with these tiles",""],["avatar_effect11","X-Ray","X-rayed",""],["lamp_basic","Pura Lamp","Switch on the atmosphere with this sophisticated light",""],["A2 pumpkin","Pumpkin Lamp","Cast a spooky glow",""],["diner_chair*9","Red Stool","Perch in comfort",""],["diner_chair*10","Mint Stool","Perch in comfort",""],["sound_set_40","Rock 4","Dude? Cheese!",""],["ads_goldtabl","The Golden Tablet","What every Museum resident craves",""],["xmas08_icewall5_deal","Ice Wall Deal x5","Get 5 Ice Walls for the price of 3!",""],["xmas08_icewall","Icy Wall","The stuff Ice Palace's are made of!",""],["doorB","Wardrobe","Narnia this way!",""],["toy1*5","Rubber Ball","it's bouncy-tastic",""],["deal_tile2","Marble Tile","Slick sophistication, don't slip!",""],["cn_lamp","Lantern","Light of the East",""],["divider_arm2","Room divider","I wooden go there",""],["grunge_candle","Candle Box","Late night debate",""],["scifidoor*8","Habbowood Security","To keep the rif raf out!",""],["poster 516","The English Flag","Eng-er-land",""],["prizetrophy9*1","Champion trophy","Glittery gold",""],["pura_mdl5*5","Beige Pura Module 5","Any way you like it!",""],["romantique_pianochair*1","Rose Quartz Chair","Elegant seating for elegant Habbos",""],["chair_plasto*3","Chair","Hip plastic furniture",""],["romantique_chair*1","Rose Quartz Chair","Elegant seating for elegant Habbos",""],["romantique_chair*2","Lime Quartz Chair","Elegant seating for elegant Habbos",""],["romantique_chair*3","Turquoise Romantique Chair","Elegant seating for elegant Habbos",""],["romantique_chair*4","Amber Chair","Elegant seating for elegant Habbos",""],["romantique_chair*5","Onyx Chair","What does this button do?",""],["party_beamer","Dance Floor Beamer","Get some lights to match your dancing shapes!",""],["md_rug","Bubble Juice Floor","Bubbles under your steps",""],["carpet_standard*6","Floor Rug","Available in a variety of colours",""],["deal_uk_gate4","Display Gate","Get out! (of this world)",""],["diner_chair*2","Pink Stool","Perch in comfort",""],["chair_silo*9","Red Area Dining Chair","Wooden dining chair",""],["table_norja_med*9","Large Coffee Table Red","For larger gatherings",""],["poster 35","Habbo Babes","Pop stars from heaven",""],["hc_djset","The Grammophon","Very old skool scratch'n'spin",""],["a0 deal211","Sport corner asphalt","Let's get sporty!","Four corner asphalt tracks"],["country_fp","Marble Fireplace","Keep the home fires burning",""],["lc_crab2","Sally Lightfoot","Careful! She'll give it 'all that'",""],["wallpaper 5","wallpaper","Wallpaper",""],["eco_fruits2","Fruit Bowl 2","From tree to hand in 3 pixels!",""]] +[["waterbowl*1","Red Water Bowl","Aqua unlimited",""],["deal98","Sardines","Fresh catch of the day",""],["poster 7","Hammer Cabinet","For emergencies only",""],["svnr_nl","Dutch Clog","August 2008, 2/6",""],["edice","Holo-dice","What's your lucky number?",""],["deal_rock","Rock da Room","For Metalheads, Moshers and more!",""],["black_pura_jan08_deal","Black Pura Bedroom Deal","Black Single and Double Pura Bed, Pura Lamp",""],["window_chinese_wide","Large Oriental Window","Dreaming of a Chinese summer...",""],["barrier*2","White Road Barrier","No trespassing, please!",""],["bolly_vase","Vase of Flowers","Let off a heavenly scent",""],["shelves_norja*6","Blue Bookcase","For nic naks and art deco books",""],["toy1*3","Rubber Ball","it's bouncy-tastic",""],["chair_plasto*4","Chair","Hip plastic furniture",""],["tiki_statue","Tribal Statue","Burn baby burn.. tiki inferno",""],["a1 sporttrackstraight","Sport track straight","Let's get sporty!",""],["deal_holly3","Holly Bundle 3","Deck the halls!","Super Saver Bundle!"],["12_Month_Subscription_10","Navy Marquee and 80 Credits","",""],["noob_lamp_tradeable_5","starter lamp","beginner set",""],["a0 deal100","Black Habbo Roller","The power of movement","2: 3 Black Habbo Rollers in a convenient Pack"],["poster 508","The Spanish flag","The flag of Spain",""],["ads_dave_wall","Dave Wall","ads dave wall",""],["bench_puffet","bench_puffet","bench_puffet",""],["rare_beehive_bulb*1","Red Amber Lamp","A honey-hued glow",""],["deal_arab1","Alhambra Deal 1","",""],["glass_table*6","Blue Glass Table","Translucent beauty",""],["pura_mdl4*9","Red Pura Module 4","Any way you like it!",""],["glass_stool","Glass stool","Translucent beauty",""],["table_norja_med*8","Large Coffee Table Yellow","For larger gatherings",""],["lc_window2","Aquarium Window","Creates a stunning scene",""],["pillow*5","Black Leather Pillow","Puffy, soft and huge",""],["prizetrophy_hot","prizetrophy_hot","prizetrophy_hot",""],["bottle","Empty Spinning Bottle","For interesting games!","!"],["deal_movie4","Adventure Bundle","Sail the seas of the Caribbean",""],["china_pstr1","Ox Poster","Celebrate the year ahead",""],["diner_tray_3","Spaghetti Meatballs","Juicy tomato sauce included!",""],["romantique_divan*4","Amber Chaise-Longue","Is that a cape hanging there?",""],["rare_icecream*0","Cherry Ice Cream Machine","Virtual cherry rocks!",""],["jp_tray1","Sushi Maguro","Sushi made with tuna",""],["romantique_smalltabl*5","Onyx Tray Table","Why is one leg different?",""],["sound_set_3","Electronic 1","Chilled grooves",""],["sink","Sink","Hot and cold thrown in for no charge",""],["diner_bardesk_gate*5","Beige Gate","Working 9 to 5",""],["rare_fan*6","Orange Arabian Fan","Blowing up a sandstorm!",""],["DEV bed_budget_one4","White Pura Bed","Prince sized comfort!",""],["a2 kamera","Camera","Smile!",""],["lostc_octopus","Kraken","2/6 - February 2009",""],["romantique_smalltabl*4","Amber Tray Table","Why is one leg different?",""],["penguin_pirate","Pirate Penguin","Aptenodytes Silver",""],["poster 12","Skyline Poster","Darling harbour by night",""],["hrella_poster_3","Anchor","Don't drift away!",""],["wallpaper 21","wallpaper","Wallpaper",""],["diner_tray_2","Steak and Mash","Juicy sirloin with onion gravy",""],["country_fnc3","Stone Pile","The work of a witch?",""],["poster 514","The EU flag","Be proud to be in the Union!",""],["table_silo_small*4","Beige Area Occasional Table","Beige Area Occasional Table",""],["chair_plasto*5","Chair","Hip plastic furniture",""],["glass_table*9","Habbowood Glass Table","Empty glasses welcome!",""],["noob_rug_tradeable_4","starter rug","beginner set",""],["diner_gumvendor*3","Black Gum Machine","Fruity bubbly goodness!",""],["deal_uk_lccrab2","Sally Lightfoot","Careful! She'll give it 'all that'","Great value bundle"],["area_bedroom_jan08_deal","Area Bedroom Deal","Area Single and Double Bed, Area Bookcase",""],["chair_plasto*6","Chair","Hip plastic furniture",""],["sound_set_69","Referee Rhythm","Football Sounds 2",""],["party_neon2","Neon Left Arrows","Find your way left in the dark!",""],["teleport_door","Teleport Door","Magic doorway to anywhere!","New!"],["sofachair_polyfon*2","Black Mode Armchair","Black Mode Armchair",""],["noob_set_4","Beginner Set 4","Beginner Furni Set 4",""],["Deal_tst","Chinese Lacquer Sofa","Oriental seating for three",""],["xmas08_icepatch_deal","Ice Patch Deal","Get 6 Ice Patches (that can turn to snow) for just 35 Credits!",""],["hyacinth1","Pink Hyacinth","Beautiful bulb",""],["sound_set_14","Hip Hop Beats 2","Rock them bodies",""],["tampax_rug","Tampax rug","Tampax rug",""],["12_Month_Subscription_1","Blue Cotton Pillow and 80 Credits","",""],["sf_wall","sf_wall","sf_wall",""],["sound_set_59","RnB Grooves 5","Urban break beats",""],["chair_norja*9","Red Chair","Sleek and chic for each cheek",""],["ads_grefusa_cactus","Grefusa Cactus","Grefusa cactus promotion",""],["edicehc","Dicemaster","Click and roll!",""],["romantique_divan*2","Emerald Chaise-Longue","Recline in continental comfort",""],["rcandle","Red Candle","Xmas tea light",""],["deal_rocker","Rock da Room","For metalheads, moshers and more!",""],["ads_711shelf","ads 711shelf","ads_711shelf desc",""],["bardesk_polyfon*5","Candy Bar","For cute constructions",""],["plant_small_cactus","Small Cactus","Even less watering than the real world",""],["divider_nor4*5","Pink Iced Auto Shutter","Habbos, roll out!",""],["poster 39","Screaming Furnies","The rock masters of virtual music",""],["penguin_wrestler","Luchador Penguin","Aptenodytes Mysterioso",""],["hwn_deal_2","Pumpkin Lamp","Cast a spooky glow","The 3rd one is FREE!"],["poster 81","Large silver star","Twinkle, twinkle",""],["croc_blue_deal","Croc Starter Pack (blue)","",""],["greek_seat_bundle","Greek Seat","Park your bot on this stone slab!","10 for the price of 6! Bargain!"],["barrier*1","Yellow Maze Barrier","No escape this way!",""],["penguin_skater","Skater Penguin","Aptenodytes Arto",""],["shelves_norja*4","Urban Iced Bookcase","For nic naks and tech books",""],["sofa_silo*4","Beige Area Sofa","Cushioned, understated comfort",""],["couch_norja*2","Black Iced Bench","Two can perch comfortably",""],["","Roast Turkey","Where's the cranberry sauce?",""],["poster 65","The Habbo Babes 2","The Hotels girlband. Dream on!",""],["a5 gothicchair","Green Gothic Chair","The dark side of Habbo",""],["shelves_norja*3","White Iced Bookcase","For nic naks and art deco books",""],["sofa_polyfon","Two-seater Sofa","Comfort for stylish couples",""]] +[["glass_stool*3","White Glass Stool","Translucent beauty",""],["avatar_effect19","BluesMobile effect","We'got a show tonite.",""],["prizetrophy7*3","Bronze Habbo trophy","Bronze Habbo trophy",""],["diner_shaker","Diner Shaker","So cool it's shaking!",""],["easy_bowl2","Easy bowl2","old campaign product desc",""],["xmas08_snowpl","Snow Seat","Take a rest and warm by a fire perhaps?",""],["wallpaper 16","wallpaper","Wallpaper",""],["jp_tatami2","Large Tatami Mat","Shoes off please",""],["poster 40","Bonnie Blonde poster","Princess of Pop",""],["divider_nor3*3","White Iced Gate","Do go through...",""],["tiki_tray3","Tiki Fish Tray","Freshly caught and BBQ'd!",""],["cat_red_deal","Cat Starter Pack (red)","",""],["sf_roller","Sci Fi Roller","They work against gravity",""],["pillar*1","Pink Marble Pillar","Ancient and stately",""],["flag_norway","Norwegian Flag","Land of the fjord",""],["flag_algeria","The Algerian Flag","Wave it proudly!",""],["flag_argentina","The Argentinian Flag","Wave it proudly!",""],["flag_belgium","The Belgian Flag","Wave it proudly!",""],["flag_columbia","The Colombian Flag","Wave it proudly!",""],["flag_dominicanrepublic","The Dominican Republic Flag","Wave it proudly!",""],["flag_ecuador","The Ecuadorian Flag","Wave it proudly!",""],["flag_greece","The Greek Flag","Wave it proudly!",""],["flag_malaysia","The Malaysian Flag","Wave it proudly!",""],["flag_mexico","The Mexican Flag","Wave it proudly!",""],["flag_morocco","The Moroccan Flag","Wave it proudly!",""],["flag_newzealand","The New Zealand Flag","Wave it proudly!",""],["flag_panama","The Panama Flag","Wave it proudly!",""],["flag_peru","The Peruvian Flag","Wave it proudly!",""],["flag_philippines","The Philippines Flag","Wave it proudly!",""],["flag_portugal","The Portugal Flag","Wave it proudly!",""],["flag_singapore","The Singapore Flag","Wave it proudly!",""],["flag_tunisia","The Tunisian Flag","Wave it proudly!",""],["flag_turkey","The Turkish Flag","Wave it proudly!",""],["flag_venezl","The Venezuelan Flag","Wave it proudly!",""],["pura_mdl4*2","Pink Pura Module 4","Any way you like it!",""],["netari_poster","Netari poster","Netari promotion",""],["ads_idol_tv","American Idol TV","TBD Click it away",""],["a0 throne","Throne","Important Habbos only",""],["habbowheel","The Wheel of Destiny!","So you gotta ask yourself, 'Do I feel lucky?'",""],["glass_sofa*3","White Glass Sofa","Translucent beauty",""],["deal_uk_sfroller5","Sci Fi Roller","They work against gravity",""],["romantique_smalltabl*2","Emerald Tray Table","Every tray needs a table...",""],["scifirocket*1","Saturn Smoke Machine","There is always space for this!",""],["rare_icecream*7","Chocolate Ice Cream Machine","Virtual chocolate rocks!",""],["chair_norja*5","Pink Chair","Sleek and chic for each cheek",""],["spotlight","Habbowood Spotlight","For the star of the show",""],["sound_machine_freebie_deal","Monsters of Habbo freebie","Free gift for Monsters of Habbo",""],["deal_trax1","Trax Pack: Dance","Get the dancefloor pumping",""],["glass_table*3","White Glass Table","Translucent beauty",""],["diner_cashreg*9","Red Register","Roll up roll up!",""],["diner_cashreg*10","Mint Register","Roll up roll up!",""],["diner_bardesk*2","Pink Bar","Pull up a stool!",""],["pillar*5","Pagan Pillar","Find your natural roots",""],["a0 deal115","Purple Habbo Roller","The power of movement","2: 5 Purple Habbo Rollers in a convenient Pack"],["prizetrophy5*1","Duo trophy","Glittery gold",""],["jp_tray3","Sushi Ikura","Sushi made with caviar",""],["sound_set_71","Ice cool sounds","Get your Winter Wonderland sounds for your Trax Machine!",""],["romantique_divider*3","Turquoise Screen","Stylish Separation",""],["chair_plasto*7","Chair","Hip plastic furniture",""],["totem_head","Totem Spirit Head","Which animal are you? 2/3 of Totem",""],["eco_sofa1","Eco Armchair 1","Relax! You've done your bit",""],["lodge_mm_jan07_deal","Lodge Mixed Multipack","3 room dividers, 2 corner plinths",""],["poster 68","dmac poster","The soul-meister himself",""],["ads_reebok_block2","ads Reebok block2","",""],["DEV grand_piano2","Emerald Grand Piano","Beethoven's Preferred Piano",""],["green_mode_jan08_deal","Green Mode Bedroom Deal","Green Single and Double Mode Bed, Mode Bookcase",""],["sound_set_60","Latin Love 2","Love and affection!",""],["party_ravel","Dance Floor Laser","Meet the 22nd Century's dance floor lighting!",""],["chair_plasto*8","Chair","Hip plastic furniture","January Sale - Save 33%"],["ads_idol_mic","American Idol Microphone","Sing your heart out! Well not literally...",""],["divider_nor5","Plain Iced Angle","Cool cornering for your crib y0!",""],["a0 deal103","White Quest Roller","The power of movement","2: 3 White Quest Rollers in a convenient Pack"],["hween08_defibs2","Life Support (ooze)","Brought back to Earth with a shock!",""],["rare_snowrug","Snow Rug","Chilled Elegance",""],["tiki_torch","Beach Torch","Lighting the way",""],["DEV door","Telephone Box","Dr Who?",""],["deal01","Dining Chair","Keep it simple",""],["diner_bardesk_corner*7","Green Corner","Now that's smooth...",""],["DEV bed_budget_one3","Black Pura Bed","Prince sized comfort!",""],["giftflowers","Vase of Flowers","Guaranteed to stay fresh",""],["sound_set_70","Squad Synth","Football Sounds 3",""],["diner_sofa_2*4","White Sofa 2","Soft leather in 50s design",""],["poster 1001","Prince Charles Poster","Even walls have ears",""],["poster 1002","Queen Mum Poster","Aw, bles...",""],["poster 2000","Suomen kartta","Suomen kartta",""],["poster 2002","Urho Kaleva Kekkonen","Presidentin moutokuva",""],["poster 2003","Dodgy Geezer","Would you trust this man?",""],["poster 2004","Rasta Poster","Irie!",""],["pillar*4","Dark Ages Pillar","From the time of the Kick Warz",""],["safe_silo","Safe Minibar","Totally shatter-proof!",""],["bardeskcorner_polyfon*7","Green Corner Desk","Tuck it away",""],["penguin_rock","Disco Penguin","Aptenodytes Foxy",""],["xmas08_wallpaper","Snowy Posters","The Arctic scenery on your walls!",""],["A2 tlp 20","Pad of stickies","Pad of stickies",""],["chair_plasto*9","Chair","Hip plastic furniture","January Sale - Save 20%"],["glass_stool*2","Glass stool","Translucent beauty",""],["deal_fair9","Fairground Queue","",""],["a4 gothicstool","Black Gothic Stool","Witches and Warlocks",""],["ads_cllava2","Idea Agency Lava Lamp","It's better out than in!",""],["deal_xmastrax","Red Traxmachine Bundle","Includes all the new Traxpacks!",""],["hc_btlr","Electric Butler","Your personal caretaker",""]] +[["marquee*2","Red Dragon Marquee","Dragons out and Davids in!",""],["hc_lmp","Oil Lamp","Be enlightened",""],["ads_calip_lava","ads_calip_lava name","ads_calip_lava desc",""],["wallpaper 29","wallpaper","Wallpaper",""],["poster 57","Calligraphy Poster","Chinese calligraphy",""],["carpet_soft","Soft Wool Rug","Soft Wool Rug",""],["sound_set_23","SFX 4","Don't be afraid of the dark",""],["pura_mdl5*8","Yellow Pura Module 5","Any way you like it!",""],["lc_window1","Wooden Window","The deep blue",""],["sound_set_72","Country Trax","The working farm",""],["pillow*1","Pink Fluffy Pillow","Puffy, soft and huge",""],["one_way_door*9","Red One Way Gate","One at a time!",""],["safe_silo_pb","postbank Safe","Totally shatter-proof!",""],["DEV grand_piano3","Sapphire Grand Piano","Mozart's weapon in the war on silence",""],["plant_valentinerose*1","Red Valentine's Rose","Secret admirer!",""],["red_bathroom_jan08_deal","Pink Bathroom Deal","Duck, Sink, Bath, Pink Floor Tiles, Pink Loo Seat",""],["prize2","Silver Trophy","Nice and shiny",""],["hcporttele","Imperial Teleport","Let's go over tzar!",""],["summer_grill*2","Red Barbeque Grill","Plenty of shrimp on that barbie",""],["ads_idol_tube","Tube Light","Set the mood with this beautv!",""],["deal_eng1","England Supporters","RWC Final 2007",""],["ads_mall_winice","Mall Ice Cream Parlour Window","Get yourself a cold rock of ice creamy goodness here.",""],["iced_bm_jan07_deal","Iced Bar-desk Multipack","5 bar-desks",""],["sw_stone","Mysterious Necklace","Why does the stone glow at night?",""],["deal_arab3","Alhambra Deal 3","",""],["noob_set_5","Beginner Set 5","Beginner Furni Set 5",""],["chair_plasty*3","Plastic Pod Chair","Hip plastic furniture",""],["diner_chair*8","Yellow Stool","Perch in comfort",""],["bed_silo_one","Single Bed","Plain and simple",""],["sound_set_9","Electronic 2","Mystical ambient soundscapes",""],["rare_dragonlamp*9","Purple Dragon Lamp","Scary and scorching!",""],["poster 70","Flag of Brazil","The flag of Brazil",""],["DEV grand_piano5","Onyx Grand Piano","Why is that key green?",""],["divider_silo1*2","Black Corner Shelf","Neat and natty",""],["eco_fruits1","Fruit Bowl 1","From tree to hand in 3 pixels!",""],["table_silo_med*4","Beige Area Coffee Table","Beige Area Coffee Table",""],["glass_chair*4","Glass chair","Translucent beauty",""],["divider_nor3*4","Urban Iced Gate","Entrance or exit?",""],["pura_mdl4*4","White Pura Module 4","Any way you like it!",""],["arabian_divdr","Carved Cedar Divider","Soft wooden screen",""],["noob_plant","Plant","beginner set",""],["wallpaper 24","wallpaper","Wallpaper",""],["china_light","Chinese Wall Lamp","Flickers in the Eastern wind",""],["deal_rocks","Hole In The Wall","Trying to get in or out?",""],["table_plasto_square*5","Occasional table","Hip plastic furniture",""],["divider_nor3*5","Pink Iced gate","Pink Iced gate",""],["carpet_soft*1","Soft Wool Rug","Soft Wool Rug",""],["DEV grand_piano4","Amber Grand Piano","Why is that key green?",""],["prize3","Bronze Trophy","A weighty award",""],["sleepingbag*4","Safety Sleeping Bag","Ultimate coziness in SafeSid's sleeping bag!",""],["bed_polyfon_one*4","Beige Mode Single Bed","Beige Mode Single Bed",""],["sofa_silo*7","Green Area Sofa","Put your feet up!",""],["deal_tatami_l","Large Tatami Mat","Shoes off please","4 for 3!"],["deal_sa1","Springbok Supporters","RWC Final 2007",""],["diner_sofa_1*7","Green Sofa 1","Soft leather in 50s design",""],["tiki_bflies","Butterflies","Get your island beauties",""],["glass_stool*6","Blue Glass Stool","Translucent beauty",""],["jp_tray2","Sushi Ika","Sushi made with squid",""],["ads_idol_tblCloth","Function Table","Complete with beautiful tablecloth",""],["window_golden","Golden Window","An expensive view",""],["wallpaper 19","wallpaper","Wallpaper",""],["ads_idol_drape","American Idol Curtain","Create the perfect American Idol set with these curtains",""],["poster 500","Union Jack","The UK flag",""],["rubberchair*1","Blue Inflatable Chair","Soft and stylish HC chair",""],["DEV bed_budget_one7","Green Pura Bed","Prince sized comfort!",""],["SF_reactor","Warp Reactor","Don't worry, you'll warm to it",""],["DEV doorB","Wardrobe","Narnia this way!",""],["deal_plant4","Bonsai Tree","","Save 33%"],["A1 A1P","Square Dining Table","Hip plastic furniture",""],["romantique_smalltabl*1","Rose Quartz Tray Table","Every tray needs a table...",""],["table_silo_small*8","Yellow Occasional Table","For those random moments",""],["penguin_basic","Emperor Penguin","Aptenodytes Forsteri",""],["deal_maze","Maze Pack","Ultimate maze pack",""],["sound_set_21","Rock 1","Headbanging riffs",""],["pura_mdl3*9","Red Pura Module 3","Any way you like it!",""],["hween08_manhole","Manhole","Watch your step...",""],["noob_rug*6","My first Habbo rug","Nice and neat sisal rug with green edging",""],["ads_idol_desk","American Idol Judge Desk","No audition room is complete with out one of these!",""],["red_tv","Portable TV","Don?t miss those soaps",""],["soft_sofachair_norja*6","Blue Iced Sofachair","Blue Iced Sofachair",""],["ads_idol_logo","Idol logo","Idol logo wall",""],["ads_idol_l_carpet","Idol Carpet","With glamour and style",""],["ads_idol_l_logo","Idol logo","Idol logo wall",""],["ads_idol_l_tv","Latin American Idol TV","TBD Click it away",""],["a0 deal109","Navy Habbo Roller","The power of movement","2: 5 Navy Habbo Rollers in a convenient Pack"],["avatar_effect24","Under rain","What a shower!",""],["iced_cm_jan07_deal","Iced Corner Multipack","5 corners",""],["ads_calip_tele","Calippo Teleporter","Get your swim outfit now!",""],["rubberchair*2","Pink Inflatable Chair","Soft and tearproof!",""],["exe_table","Executive Desk","Take a memo, Featherstone",""],["bump_road_deal15","Road Deal 15","Get in the fast lane",""],["sleepingbag*5","Graphite Sleeping Bag","Ultimate outdoor coziness",""],["bolly_pillow","Star Pillow","Don't forget to make a wish!",""],["table_norja_med*5","Large Coffee Table Pink","For larger gatherings",""],["hcc_shelf","Bookshelf","Your own Habbo archives",""],["wcandleset","White Candle Plate","Simple but stylish",""],["chair_plasto*14","Chair","Hip plastic furniture",""],["chair_plasto*15","Chair","Hip plastic furniture",""],["diner_sofa_1*1","Aquamarine Sofa 1","Soft leather in 50s design",""],["country_lantern","Ye Olde Lantern","Light of your country life",""],["a1 gothicsofa","Gothic Sofa","The dark side of Habbo",""]] +[["a2 giftflowers","Vase of Flowers","Guaranteed to stay fresh",""],["tiki_tray0","Empty Tray","That was tasty!",""],["deal_swapit2","Trax Bundle","",""],["chair_plasty*4","Plastic Pod Chair","Hip plastic furniture",""],["table_plasto_square*6","Occasional Table","Hip plastic furniture",""],["couch_norja*7","Rural Iced Bench","Two can perch comfortably",""],["sound_set_27","Groove 2","Jingle Bells will never be the same...",""],["a1 gothicchair","Gothic Chair","The dark side of Habbo",""],["sporttrack3*1","Sport goal tartan","Let's get sporty!",""],["samovar","Russian Samovar","Click for a refreshing cuppa",""],["A1 B9P","Square Dining Table","Hip plastic furniture",""],["exe_sofa","3-Seater Sofa","Relaxing leather comfort",""],["noob_table*2","My first Habbo table","Lightweight, practical and dark blue",""],["planet_of_love","Planet of Love","A place of hope and liberty",""],["pix_asteroid","The Asteroid","A smashing rock in space!",""],["bump_tires_deal5","Bumper Tyres 5","Gets you back on track",""],["ticketbundle17","Big Ticket Bundle","A bundle of 17 gaming tickets",""],["pizza","Pizza Box","You dirty Habbo",""],["bed_polyfon_girl","Double Bed","Snuggle down in princess pink",""],["ads_calip_cola*2","Calippo Cola","Of the most refreshing!",""],["lt_gate","Tribal Gate","Tomb raid or not tomb raid",""],["divider_nor2*8","Yellow Iced bar desk","Yellow Iced bar desk",""],["DEV chair_basic4","White Pura Egg Chair","It's a cracking design!",""],["noob_stool*6","My first Habbo stool","Unfold me and take the weight off (green)",""],["A1 LAT","Floor Tile","In Variety of Colours",""],["wallpaper 9","wallpaper","Wallpaper",""],["poster 21","Angel Poster","See that halo gleam",""],["grunge_table","Grunge Table","Students of the round table!",""],["ads_veet","ads_veet name","ads_veet desc",""],["poster 504","The Bundesflagge","The German flag",""],["tv_luxus","Digital TV","Bang up to date",""],["party_bardesk","Bar Centre","Keep the punters at bay",""],["ads_idol_ichair","Interview Chair","Next question please.",""],["pura_mdl4*1","Aqua Pura Module 4","Any way you like it!",""],["ads_wwe_poster","ads_wwe_poster name","ads_wwe_poster text",""],["sound_set_6","Ambient 3","Background ambience loops",""],["rare_dragonlamp*3","Silver Dragon Lamp","Scary and scorching!",""],["chair_silo*2","Black Dining Chair","Keep it simple",""],["china_moongt","Moongate","A mysterious and eery past",""],["shelves_silo","Bookcase","For nic naks and art deco books",""],["eco_cactus3","Potted Cactus 3","Find a place in the sun",""],["diner_cashreg*3","Black Register","Roll up roll up!",""],["poster 55","Tree of Time","Save our trees!",""],["divider_silo1*5","Pink Area Corner Shelf","Pink Area Corner Shelf",""],["A2 POJAT","Occasional Table","For those random moments",""],["glass_table*7","Green Glass Table","Habbo Club",""],["chair_silo*6","Blue Area Dining Chair","Wooden dining chair",""],["noob_table*4","My first Habbo table","Lightweight, practical and light blue",""],["chair_norja*2","Black Iced Chair","Sleek and chic for each cheek",""],["bed_polyfon*8","Yellow Mode Double Bed","Yellow Mode Double Bed",""],["wood_tv","Large TV","HNN weatherman Kiazie",""],["shelves_norja","Bookcase","For nic naks and art deco books",""],["chair_plasty*5","Plastic Pod Chair","Hip plastic furniture",""],["summer_chair*3","Black Deck Chair","Rest from castle building!",""],["chair_norja*6","Blue Chair","Sleek and chic for each cheek",""],["bardesk_polyfon*2","Black Mode Bardesk","Black Mode Bardesk",""],["petfood1","Doggy Bones","Natural nutrition for the barking one",""],["divider_poly3*4","Beige Mode Bardesk Gate","Beige Mode Bardesk Gate",""],["ads_idol_pchair","American Idol Piano Chair","Sit comfortably in this chair with your Idol piano",""],["divider_silo3*5","Pink Area Gate","Pink Area Gate",""],["poster 506","The flag of Finland","To 'Finnish' your decor...",""],["deal_plant6","Mature Cactus","","Save 33%"],["rare_icecream*4","Strawberry Ice Cream Machine","Virtual strawberry rocks!",""],["poster 520","The Rainbow Flag","Every colour for everyone",""],["blue_bathroom_jan08_deal","Blue Bathroom Deal","Duck, Sink, Bath, Blue Floor Tiles, Blue Loo Seat",""],["scifirocket*5","Uranus Smoke Machine","From the unknown depths of space",""],["deal_crocfood","T-Bones Mega Multipack","Fantastic 20% Saving!",""],["soft_sofa_norja*9","Red Iced Sofa","Red Iced Sofa",""],["a0 stick3","Hockey Stick","Hockey Stick",""],["A1 DHP","Square Dining Table","Hip plastic furniture",""],["penguin_pilot","Pilot Penguin","Aptenodytes Biggles",""],["diner_table_2*7","Green Table","Enjoy your meal!",""],["habboween_grass","Unholy Ground","Autumnal chills with each rotation!",""],["sound_set_46","Club 1","De bada bada bo!",""],["3_Month_Subscription_3","Love Cauldron and 80 Credits","",""],["poster 11","Certificate","I obey the Habbo way!",""],["rom_lamp","Crystal Lamp","Light up your life",""],["pura_mdl5*2","Pink Pura Module 5","Any way you like it!",""],["window_triple","Bay Window","Now THAT'S a view!",""],["yellow_mode_jan08_deal","Yellow Mode Bedroom Deal","Yellow Single and Double Mode Bed, Mode Bookcase",""],["prizetrophy6*3","Champion trophy","Breathtaking bronze",""],["deal_uk_patch2","Moss Patch","","Save over 50%"],["prizetrophy5*3","Duo trophy","Breathtaking bronze",""],["avatar_effect2","Blue Hover Board","The future of transportation",""],["party_neon4","Neon Skull Light","A dull wall be gone!",""],["pudding","Christmas Pudding","Will you get the lucky sixpence?",""],["ads_malaco_gu","malaco gu","ads_malaco_gu",""],["diner_tray_5","Bacon and Eggs","Smoky bacon and free range eggs!",""],["glass_chair*2","Glass chair","Translucent beauty",""],["a0 deal201","Sport track straight","Let's get sporty!",""],["a4 gothicchair","Black Gothic Chair","Vampires and Wizards",""],["bolly_corner","Bollywood Corner","Tuck it away",""],["A1 B7P","Square Dining Table","Hip plastic furniture",""],["glass_stool*8","Yellow Glass Stool","Clear a seat",""],["deal_fair7","Habbo-Works.com Spring Coaster","",""],["glass_chair*9","Habbowood Glass Chair","For celebrity divas",""],["pillar*2","Nordic Pillar","Ancient and stately",""],["country_trctr","Tractor","Don't run over the bunny!",""],["deal_maze_mega","Mega Maze Pack","Complete with barriers",""],["scifidoor*3","Lightblue Spaceship Door","There out of this world!",""],["voting_ch","voting_ch name","voting_ch desc",""]] +[["deal_sushi","Sushi Deal","","ALL Sushi - Save 33%"],["env_grass","Grass patch","Lush green grass to lay on your Earth",""],["grand_piano*1","Rose Quartz Piano Stool","Here sat the legend of 1900",""],["exe_gate","Executive Gate","Keeps the tax man away",""],["eco_lamp1","Eco Lamp 1","Energy saving bulb fitted",""],["rare_icecream*5","Vanilla Ice Cream Machine","Virtual vanilla rocks!",""],["soft_sofachair_norja*8","Yellow Iced Sofachair","Yellow Iced Sofachair",""],["ads_clwall2","Idea Agency Plasma 2","Welcome to the Idea Agency",""],["queue_tile1*7","Purple Habbo Roller","The power of movement",""],["pura_mdl3*5","Beige Pura Module 3","Any way you like it!",""],["pura_mdl4*7","Green Pura Module 4","Any way you like it!",""],["poster 4","Bear Plaque","Fake of course!",""],["deal_tinsels","Silver Tinsel Bundle","10 x Silver Tinsel",""],["traffic_light*2","Blue Traffic Light","Chill and wait your turn!",""],["pura_mdl1*7","Green Pura Module 1","Any way you like it!",""],["table_plasto_square*7","Occasional Table","Hip plastic furniture",""],["noob_stool*1","My first Habbo stool","Unfold me and take the weight off (orange)",""],["deal_dance","Dance Destination","Everything but the dancers!",""],["shelves_norja*7","Rural Iced Bookcase","For nic naks and cookery books",""],["fireplace_polyfon","Fireplace","Comfort in stainless steel",""],["hw08_xray","X-Ray Poster","For viewing your bruises",""],["bolly_monkey_lamp","Monkey Lamp","Cast a cheeky glow",""],["carpet_soft_tut","Welcome Mat","Welcome, enjoy your stay!",""],["noob_stool*2","My first Habbo stool","Unfold me and take the weight off (dark blue)",""],["ads_igorevilb","Evil Bone","It's not a funny bone",""],["rare_elephant_statue","Golden Elephant","Say hello to Nelly",""],["wallpaper 15","wallpaper","Wallpaper",""],["chair_plasty*6","Plastic Pod Chair","Hip plastic furniture",""],["scifirocket*0","Mars Smoke Machine","See in 2007 with a bang!",""],["noob_rug_tradeable_3","starter rug","beginner set",""],["diner_sofa_1*8","Yellow Sofa 1","Soft leather in 50s design",""],["ads_711_1","ads_711","",""],["env_telep","Porta-House","Keep up with the neighbours",""],["diner_gumvendor*8","Yellow Gum Machine","Fruity bubbly goodness!",""],["glass_sofa*2","Glass sofa","Translucent beauty",""],["glass_sofa*7","Green Glass Sofa","Habbo Club",""],["table_silo_small*6","Blue Area Occasional Table","Small and elegant",""],["arabian_pllw","Green Blossom Pillow","Exotic comfort",""],["ads_calip_cola*4","Calippo Crazy","Of the most refreshing!",""],["diner_bardesk_gate*4","White Gate","Working 9 to 5",""],["hween08_wndwb","Broken Window (small)","Was it a rock or a dictionary?",""],["sofa_silo*6","Blue Area Sofa","Cushioned, understated comfort",""],["bones mega deal","testing","",""],["deal_trax5","Trax Pack: Purple SFX","Groovin' Purple Traxmachine!",""],["noob_rug*1","My first Habbo rug","Nice and neat sisal rug with orange edging",""],["saturn","Planet of Eternity","How many rings are there??",""],["solarium_norja","White Solarium","Rejuvenate your pixels!",""],["netari_carpet","Netari carpet","Netari branded skull",""],["diner_sofa_1*5","Beige Sofa 1","Soft leather in 50s design",""],["rare_fan*1","Birthday Fan","It'll blow your candles out!",""],["rare_fan*2","Green Powered Fan","It'll blow you away!",""],["lt_stage2","Large Tribal Block","Ancient ruins a plenty",""],["queue_tile1*6","Blue Habbo Roller","The power of movement",""],["ads_igor_dsk","Inventor's Desk","Draw your evil plans",""],["duck","Rubber Duck","Every bather needs one",""],["bump_tottero","Safety Cone","Not a road bump!",""],["sofa_silo*9","Red Area Sofa","Cushioned, understated comfort",""],["deal_christmas2","New Year Deal 2","Candles and cake to see in the new year!",""],["jp_katana3","Katana Green","Hurry! Chop chop!",""],["hwn_deal_3","Skull Candle","Alas poor Yorrick...","Huge saving!"],["summer_pool*4","Yellow Summer Pool","Chance to cool off",""],["party_floor","Disco Floor","The perfect place to throw some shapes",""],["candy_cm_jan07_deal","Candy Bardesk Bundle","Great value bundle!",""],["DEV bed_budget_one1","Aqua Pura Bed","Prince sized comfort!",""],["hween08_defibs","Life Support (blood)","Brought back to Earth with a shock!",""],["sofa_polyfon*2","Black Mode Sofa","Black Mode Sofa",""],["rare_fountain","Bird Bath (red)","For our feathered friends",""],["diner_bardesk_corner*5","Beige Corner","Now that's smooth...",""],["divider_nor1*9","Red Ice corner","Red Ice corner",""],["SF_crate_1","Small Crate","Pack up your space wares!",""],["A1 C9P","Round Dining Table","Hip plastic furniture",""],["rare_fan*8","Habbo Wind Turbine","Stylish, Eco-Energy!",""],["solarium_norja*7","Rural Solarium","Fun in the sun!",""],["sound_set_36","Latin Love 1","For adult minded",""],["carpet_standard*7","Floor Rug","Available in a variety of colours",""],["clrack","Clothes Rack","Fancy a new look? You can get it here.",""],["ads_calip_pool","Calippo Pool","Fancy a dip?",""],["bolly_desk","Bollywood Desk","To build and divide",""],["deal_tile1","Red Tile","Ideal for your downtown promenades & piazzas",""],["solarium_norja*3","Urban Solarium","Get the city look!",""],["poster 25","Reindeer Poster","Doing a hard night's work",""],["poster 59","Hoot Poster","The eyes follow you...",""],["poster 501","Jolly Roger","For pirates everywhere",""],["deal_skyscraper1","Skyscraper Window","Dizzy heights!",""],["pura_mdl2*5","Beige Pura Module 2","Any way you like it!",""],["gothic_carpet2","Dungeon Floor","What lies beneath?",""],["noob_chair_tradeable_6","starter chair","beginner set",""],["scifirocket*7","Jupiter Smoke Machine","Larger than life!",""],["wooden_screen*5","Shadow Screen","From deep inside the dragon caves",""],["deal_uk_corn9","Golden Wheat","Right on the brink of harvest",""],["a2 l","floor","Floor",""],["deal_winter_blues2","Winter Blues Bundle 2","Blue Summer Pool, 2 Aqua Deck Chairs and 2 Yukka Plants",""],["sand_cstl_wall","Sand Castle Wall","Not entirely water proof!",""],["diner_bardesk*4","White Bar","Pull up a stool!",""],["poster 503","The Swiss flag","There's no holes in this...",""],["wooden_screen*6","Blue Oriental Screen","Add an exotic touch to your room",""],["exe_s_table","Executive Glass Table","Get a clear reflection!",""],["campfire","Camp fire","Keep warm on those Arctic nights!",""],["deal_movie6","Drama Bundle","Can you escape Shawshank?",""],["eco_light3","Eco Light 3","Energy saving bulb fitted",""],["greek_seat","Greek Seat","Park your bot on this stone slab!",""]] +[["traffic_light*5","White Traffic Light","Chill and wait your turn!",""],["diner_poster","Diner Poster","Diner officially approved!",""],["ads igor_brain","The Brain","Brains of the operation",""],["arabian_bigtb","Amanjena Table","It must be Jinn-er time!",""],["goodie2","Chocolate Mouse","For gourmet kittens",""],["lodge_bedroom_jan08_deal","Lodge Bedroom Deal","Lodge Single and Double Bed, Lodge Floor lamp",""],["poster 67","Reel poster","These five lads are Reel-y great",""],["ticketbundle20","Big Ticket Bundle","A bundle of 17 gaming tickets",""],["pura_mdl4*5","Beige Pura Module 4","Any way you like it!",""],["diner_table_1*3","Black Booth Table","Ready to order?",""],["deal_uk_pillar2","Small Tribal Torch","","Save 25%"],["deal_uk_sfroller10","Sci Fi Roller","They work against gravity",""],["barchair_silo*5","Pink Bar Stool","Practical and convenient",""],["country_log","Log Bench","Stop and perch",""],["traxbronze","traxbronze","",""],["china_shelve","Chinese Bookshelf","To hold the mind's treasures",""],["penguin_elf","Christmas Penguin","Aptenodytes Jolly",""],["divider_nor2*9","Red Iced bar desk","Red Iced bar desk",""],["divider_silo3*7","Green Area Gate","Door (lockable)",""],["rare_dragonlamp*6","Gold Dragon Lamp","Scary and scorching!",""],["typingmachine","Typewriter","Write that bestseller",""],["barchair_silo*2","Black Bar Stool","Practical and convenient",""],["one_way_door*3","White HC Gate","One way! The HC way!",""],["tiki_corner","Tiki Bar Corner","Nothing says a bar like a corner?",""],["env_tree2","Forest Tree Americana","Earth's Green Haven - ROOM 997 by EarthBoyJim",""],["a0 deal111","Ice Habbo Roller","The power of movement","2: 5 Ice Habbo Rollers in a convenient Pack"],["ads_malaco_tv","Malaco TV","Malaco TV",""],["one_way_door*5","Pink One Way Gate","One at a time!",""],["prizetrophy7*1","Gold Habbo trophy","Gold Habbo trophy",""],["marsrug","Mars Patch","Discover the red planet",""],["summer_chair*5","Deck Chair","Beige",""],["diner_chair*4","White Stool","Perch in comfort",""],["eco_tree1","Orange Tree","Actually, the tree is green...",""],["summer_chair*1","Aqua Deck Chair","Got your swimming trunks?",""],["sofachair_polyfon","Armchair","Soft and comfortable",""],["bunny","Squidgy Bunny","Yours to cuddle up to",""],["deal_tile11","Red Tile","10% off downtown promenades & piazzas!",""],["glass_sofa*9","Habbowood Glass Sofa","For comedy duos",""],["val_teddy*4","Brown Share Bear","The brown bear of naughtiness",""],["glass_chair*5","Candy Glass Chair","A pane that you're used to",""],["habbocake","Cake","Save me a slice!",""],["diner_bardesk*3","Black Bar","Pull up a stool!",""],["diner_gumvendor*4","White Gum Machine","Fruity bubbly goodness!",""],["divider_nor5*3","White Iced Angle","Cool cornering for your crib y0!",""],["penguin_robot","Robot Penguin","Aptenodytes Asimov",""],["ads_reebok_tv","ads Reebok TV","ads Reebok tv",""],["marquee*8","Ultramarine Marquee","It's both door and a shade!",""],["deal_movie3","Crime Bundle","Are you one of Ocean's Eleven?",""],["noob_table*6","My first Habbo table","Lightweight, practical and green",""],["deal_uk_curtainpink3","Pink Curtain","Made with the finest materials",""],["blue_pura_jan08_deal","Blue Pura Bedroom Deal","Blue Single and Double Pura Bed, Pura Lamp",""],["poster 513","The Australian flag","Aussies rule!",""],["ads_mall_winmus","Mall Music Shop Window","Strum, play and drum - this shop is a music lover's heaven",""],["divider_nor2*6","Blue Iced bar desk","Blue Iced bar desk",""],["triplecandle","Electric Candles","No need to worry about wax drips",""],["pillar*0","Greek Pillar","Classy architect, for holding up ceilings!",""],["one_way_door*1","Aqua One Way Gate","One at a time!",""],["divider_nor5*7","Rural Iced Angle","Cool cornering for your crib!",""],["clickable_poster_test","Skyscraper Window","",""],["rare_fan*0"," Festive Fan","As red as Rudolph's nose",""],["hc_crtn","Antique Drapery","Topnotch privacy protection",""],["marquee*4","Yellow Marquee","It's both door and a shade!",""],["sofa_polyfon*4","Beige Mode Sofa","Beige Mode Sofa",""],["table_silo_small*7","Green Area Occasional Table","Small and elegant",""],["solarium_norja*2","Beige Solarium","Rejuvenate your pixels!",""],["poster 42","Spiderweb","Not something you want to run into",""],["plant_maze","Maze Shrubbery","Build your maze!",""],["diner_bardesk_gate*3","Black Gate","Working 9 to 5",""],["chair_plasto*16","Chair","Hip plastic furniture",""],["tile","Floor Tiles","In a choice of colours",""],["table_plasto_square*8","Occasional Table","Hip plastic furniture",""],["bed_polyfon_one*7","Green Single Bed","Cot of the artistic",""],["doormat_plain*2","Doormat","Available in a variety of colours",""],["prizetrophy6*2","Champion trophy","Shiny silver",""],["noob_rug*5","My first Habbo rug","Nice and neat sisal rug with pink edging",""],["a0 deal101","White Quest Roller","The power of movement","2: 5 White Quest Rollers in a convenient Pack"],["ticketbundle2","Big Ticket Bundle","A bundle of 17 gaming tickets",""],["bartable_armas","Bardesk","Bar-Style Table - essential for extra guests",""],["sound_machine4","Blue Traxmachine","For Funky, Funky Fridays!",""],["diner_table_1*2","Pink Booth Table","Ready to order?",""],["petfood2","Sardines","Fresh catch of the day",""],["DEV doorC","Portaloo","In a hurry?",""],["chair_plasty*7","Plastic Pod Chair","Hip plastic furniture",""],["noob_lamp*6","My first Habbo lamp","Get the light right where you want it (canary yellow)",""],["jukebox_ptv*1","Jukebox Pacha TV","Jukebox Pacha TV",""],["deal_uk_corn4","Golden Wheat","Right on the brink of harvest",""],["deal_holly2","Holly Bundle 2","Deck the halls!","Super Saver Bundle!"],["smooth_table_polyfon","Large Dining Table","For larger gatherings",""],["ads_calip_cola*1","Calippo Lima","Of the most refreshing!",""],["torch","Gothic Torch","Keeping dungeons light",""],["deal_uk_floor4a","Ornamental Tile","The floor is your canvas",""],["divider_nor5*2","Black Iced Angle","Cool cornering for your crib y0!",""],["nouvelle_trax","Nouvelle Trax","",""],["bed_armas_one","Single Bed","Rustic charm for one",""],["sound_set_55","RnB Grooves 1","Can you fill me in?",""],["gothic_chair*1","Gothic Chair Pink","The dark side of Habbo",""],["gothic_chair*2","Gothic Chair Saffron","The dark side of Habbo",""],["gothic_chair*3","Gothic Chair Red","The dark side of Habbo",""],["gothic_chair*4","Black Gothic Chair","The dark side of Habbo",""],["gothic_chair*5","Gothic Chair Green","The dark side of Habbo",""],["gothic_chair*6","Gothic Chair Blue","The dark side of Habbo",""]] +[["hc_bkshlf","Medieval Bookcase","For the scholarly ones",""],["deal_uk_rock5","Stone Wall","Keep your livestock safe",""],["eco_chair1","Eco Stool 1","Green leaf design",""],["avatar_effect18","Yellow UFO","Unidentified yellow flying object.",""],["landscape 6","landscapes","You're better in than out!",""],["penguin_glow","Fluorescent Penguin","Aptenodytes Gamma",""],["hw_08_xray","X-Ray Light","Check for breaks and sprains",""],["wooden_screen*7","Purple Oriental Screen","Add an exotic touch to your room",""],["lt_jngl_wall","Jungle Wall","Thick jungle scenery",""],["jp_pillow","Pillow Chair","Comfy and classical",""],["rare_mnstr","Venomus Habbolus","Don't get too close...",""],["rubberchair*4","Ocean Inflatable Chair","Soft and tearproof!",""],["prizetrophy4*2","Fish trophy","Shiny silver",""],["poster 2001","Magic Carpet","Former servant of a great wizard!",""],["pura_mdl3*7","Green Pura Module 3","Any way you like it!",""],["DEV bed_budget2","Pink Pura Double Bed","Queen sized comfort!",""],["diner_tray_7","Accompaniments","Tommy and Mustard",""],["sofachair_polyfon_girl","Armchair","Think pink",""],["ads_mall_kiosk","Mall Kiosk","Fish, fruit, sweets, sunglasses - it is all available here.",""],["fortune","Crystal Ball","Gaze into the future",""],["a0 deal119","Pink Habbo Roller","The power of movement","2: 3 Pink Habbo Rollers in a convenient Pack"],["lc_tubes_straight","Water Tube Straight","Just go with the flow",""],["noob_table*5","My first Habbo table","Lightweight, practical and pink",""],["tile_red","Floor Tiles","In a choice of colours",""],["wallpaper 12","wallpaper","Wallpaper",""],["DEV grand_piano1","Rose Quartz Grand Piano","Chopin's revolutionary instrument",""],["deal_sport5","Referee Deal","",""],["penguin_musketeer","Musketeer Penguin","Aptenodytes Aramis",""],["bardeskcorner_polyfon*8","Yellow Mode Bardesk Corner","Yellow Mode Bardesk Corner",""],["poster 510","The Italian flag","The flag of Italy",""],["det_body","Chalk Outline","They were a great Habbo...",""],["A1 PYS","Coffee Table","Wipe clean and unobtrusive",""],["landscape 5","landscapes","Above the little fluffy clouds",""],["rare_fan*5","Yellow Powered Fan","It'll blow you away!",""],["couch_norja*4","Urban Iced Bench","Two can perch comfortably",""],["glass_chair","Glass chair","Translucent beauty",""],["deal_tp2","Summer Beach Bundle","",""],["divider_silo3*8","Yellow Area Gate","Form following function",""],["sound_set_48","Club 3","Sweet party beat",""],["exe_wfall","Wall Fall","Improve your cash flow",""],["ads_idol_clRack","Clothes Rack","Finally! Somewhere to hang up your clothes",""],["deal_movie1","Fantasy Bundle","Spend an evening at Hogwarts",""],["poster 1006","Hoot Poster","The eyes follow you...",""],["hween08_bed2","Hospital Bed (ooze)","I'm wicked and I'm oozey!",""],["sound_set_29","Dance 2","Electronic house",""],["sporttrack1*3","Sport track straight grass","Let's get sporty!",""],["redhologram","Holo-girl","You're her only hope...",""],["dog_brown_deal","Dog Starter Pack (brown)","",""],["deal_uk_rock3","Stone Wall","Keep your livestock safe",""],["ads_idol_trophy","American Idol Trophy","For the winner of American Idol",""],["sofachair_polyfon*4","Beige Mode Armchair","Beige Mode Armchair",""],["ham2","Eaten Ham","Looks like you're too late!",""],["yellow diner_table_2","Yellow Diner Table","Enjoy your meal!",""],["poster 26","Stocking","Hung yours up yet?",""],["grunge_chair","Grunge Chair","Alternative chair for alternative people",""],["hcc_chair","Trendy Stool","Shiny varnished finish",""],["deal_uk_marsrug20","Mars Patch","Discover the red planet",""],["party_mic","Microphone","Sing, MC, shout out to your friends!",""],["prizetrophy4*1","Fish trophy","Glittery gold",""],["couch_norja*3","White Iced Bench","Two can perch comfortably",""],["sf_wall3","Starship Corner","Streamlined for speed",""],["diner_bardesk*7","Green Bar","Pull up a stool!",""],["sound_set_47","Club 2","Storm the UKCharts!",""],["easy_carpet","Easy carpet","Easy carpet",""],["diner_table_2*3","Black Table","Enjoy your meal!",""],["bar_basic","A Pura Minibar","A pura series 300 minibar",""],["party_led","Big Wall Lights","Flashing Neon lights on the wall!",""],["white_pura_jan08_deal","White Pura Bedroom Deal","White Single and Double Pura Bed, Pura Lamp",""],["carpet_legocourt","Basketball Court","Line up your slam dunk",""],["deal_tikiwallplant","Jungle Wallplant","",""],["A1 E6P","Chair","Hip plastic furniture",""],["noob_table*3","My first Habbo table","Lightweight, practical and aubergine",""],["party_tube_bubble","Bubbles Machine","Bubbles! Bubbles! Lovely bubbles!",""],["deal_verifyflags","Flag Bundle","",""],["poster 523","India Flag","The flag of India",""],["tiki_junglerug","Jungle Patch","Bring your machete",""],["A1 C2P","Round Dining Table","Hip plastic furniture",""],["ads_idol_jukebox*1","American Idol Jukebox","I sound better already!",""],["diner_sofa_2*9","Red Sofa 2","Soft leather in 50s design",""],["diner_sofa_2*10","Mint Sofa 2","Soft leather in 50s design",""],["a2 t","wallpaper","Wallpaper",""],["soft_sofa_norja*2","iced sofa","A soft iced sofa",""],["solarium_norja*1","Black Solarium","Rejuvenate your pixels!",""],["one_way_door*8","Yellow One Way Gate","One at a time!",""],["table_silo_small*2","Black Occasional Table","For those random moments",""],["plant_pineapple","Pineapple Plant","","Save 33%"],["DEV bed_budget_one2","Pink Pura Bed","Princess sized comfort!",""],["party_discol","Spotlight","Focus your attention or dance within its glow!",""],["sound_set_45","Berlin Connection","The Bass? is the rhythm!",""],["country_well","Wishing Well","Come spend a penny",""],["poster 54","The EU flag","Be proud to be in the Union!",""],["totem_planet","Totem Planet","Mysterious powers lie in wait...",""],["laptopdesk","laptopdesk name","laptopdesk desc",""],["scifiport*1","Gold Laser Gate","Energy beams. No trespassers!",""],["deal_tinselg","Gold Tinsel Bundle","10 x Gold Tinsel",""],["a2 film","Film","Film for five photos",""],["sofa_silo","Two-Seater Sofa","Cushioned, understated comfort",""],["deal_uk_hafta1","Crime Props","Create the perfect crime scene","Great value!"],["exe_light","Executive Light","Glow your business",""],["lc_tile1","Marble Floor Tile","Elegant underwater flooring",""],["poster 74","Chains","Shake, rattle and roll",""]] +[["noob_chair*1","My first Habbo chair","Lightweight, practical and yellow",""],["noob_lamp_tradeable_3","starter lamp","beginner set",""],["carpet_standard*8","Floor Rug","Available in a variety of colours",""],["soft_sofachair_norja*9","Red Iced Sofachair","Red Iced Sofachair",""],["rare_icecream*1","Blueberry Ice Cream Machine","Virtual blueberry rocks!",""],["pura_mdl3*3","Black Pura Module 3","Any way you like it!",""],["deal_fair5","HabboHut.com Bumper Cars","",""],["party_ball","Glitter Ball","Every party MUST have one!",""],["diner_sofa_2*6","Blue Sofa 2","Soft leather in 50s design",""],["avatar_effect22","Bad bad BadMobile effect","Get all evil with this BadMobile.",""],["pura_mdl2*6","Blue Pura Module 2","Any way you like it!",""],["prizetrophy*2","Classic trophy","Shiny silver",""],["rare_icecream*3","Blackcurrant Ice Cream Machine","Virtual blackcurrant rocks!",""],["A2 MAJAHARJU","Occasional Table","Practical and beautiful",""],["waterbowl*4","Blue Water Bowl","Aqua unlimited",""],["bed_polyfon_girl_one","Single Bed","Snuggle down in princess pink",""],["sound_set_18","Groove 4","Listen while you tan",""],["deal_tikidesk","Tiki Bar Desk Bundle","","Super saver pack!"],["rare_fan*3","Purple Dragon Skin Fan","Keeps the heat off St George!","Happy St George's Day!"],["eco_sofa3","Eco Armchair 3","Relax! You've done your bit",""],["wallpaper 7","wallpaper","Wallpaper",""],["CFC_200_moneybag","Sack of Credits (China)","Worth 200 Credits",""],["xmas08_dvdr1","Ice divider","Stone and ice in one snowy wall!",""],["noob_rug*3","My first Habbo rug","Nice and neat sisal rug with aubergine edging",""],["sound_machine6","Purple Traxmachine","Add some effects to your room!",""],["xmas08_icerug","Ice Patch","Ice, Snow or Wet Slush? All is possible with this.",""],["A2 KIIHTELYS","Shelf","Shelf",""],["romantique_divan*1","Rose Quartz Chaise-Longue","Recline in continental Rose Quartz comfort",""],["grunge_bench","Bench","Laid back seating",""],["silo_studydesk","Area Quest Desk","For the true Habbo Scholars",""],["poster 29","Tinsel (gold)","A touch of festive sparkle",""],["arabian_swords","Ancestral Scimitars","Not for yielding",""],["soft_sofachair_norja*3","White Iced Sofachair","Soft Iced sofachair",""],["diner_table_2*9","Red Table","Enjoy your meal!",""],["diner_table_2*10","Mint Table","Enjoy your meal!",""],["bardeskcorner_polyfon*5","Candy Corner","For sweet corners!",""],["noob_lamp*5","My first Habbo lamp","Get the light right where you want it (pink)",""],["a5 gothicstool","Green Gothic Stool","The dark side of Habbo",""],["deal_walllight_neon","Neon Lights Deal","Get all wall lights for 15 credits!",""],["sound_set_42","Haunted Mansion","Bumps and Chills",""],["deal_uk_sflamp","Sci Fi Lamp","The future's bright...",""],["country_gate","Farm Gate","Livestock: Close gate behind you",""],["val_choco","Heart Shaped Chocs","One for them. Two for me!",""],["bardesk_polyfon*6","Blue Mode Bardesk","Blue Mode Bardesk",""],["country_fnc1","Stick Fence","It's brown and sticky",""],["avatar_effect13","Ghost","Spooky",""],["tiki_surfboard","Surfboard","Ride the waves dude!",""],["wallpaper 13","wallpaper","Wallpaper",""],["romantique_mirrortabl","Dressing Table","Get ready for your big date",""],["chair_basic*1","Aqua Pura Egg Chair","It's a cracking design!",""],["chair_basic*2","Pink Pura Egg Chair","It's a cracking design!",""],["chair_basic*3","Black Pura Egg Chair","It's a cracking design!",""],["chair_basic*4","White Pura Egg Chair","It's a cracking design!",""],["chair_basic*5","Beige Pura Egg Chair","It's a cracking design!",""],["chair_basic*6","Blue Pura Egg Chair","It's a cracking design!",""],["chair_basic*7","Green Pura Egg Chair","It's a cracking design!",""],["chair_basic*8","Yellow Pura Egg Chair","It's a cracking design!",""],["chair_basic*9","Red Pura Egg Chair","It's a cracking design!",""],["sound_set_41","Rock 8","Burning Riffs",""],["candy_sp_jan07_deal","Candy Starter Pack","Hatch, Corner and 2 Bars",""],["a1 newplch2","Chair","Hip plastic furniture",""],["eco_cactus2","Potted Cactus 2","Find a place in the sun",""],["tile_yell","Floor Tiles","In a choice of colours",""],["sound_set_68","Pitchside Pro","Football Sounds 1",""],["sofachair_silo*6","Blue Area Armchair","Large, but worth it",""],["deal_starg","Gold Star Bundle","Selection of gold stars",""],["SF_chair_red","Captain's Chair","You're their only hope",""],["ads_igorbrain","The Brain","Mwahhahahahaha brains...",""],["12_Month_Subscription_11","Pink Pillar and 80 Credits","",""],["ads_sunnyd","Sunny Delight","Sunny Delight",""],["shelves_norja*8","Yellow Bookcase","For nic naks and art deco books",""],["eco_curtains2","Eco Curtain 2","Help keep the heat in",""],["lc_table","Captain's Table","Treasure map not included",""],["sound_machine_pro","Sound Machine Pro","creating fancy sounds",""],["env_tree1","Forest Tree Chair","Go to ""E&"Earth's Green Haven Room 321""E&" of EarthboyJim for quest!",""],["barrier*3","Red Road Barrier","No trespassing, please!",""],["table_silo_med*8","Yellow Coffee Table","Wipe clean and unobtrusive",""],["eco_curtains3","Eco Curtain 3","Help keep the heat in",""],["poster 16","Bars","Added security",""],["deal_earthday2","Mood Light","","Save 10 Credits!"],["noob_set_2","Beginner Set 2","Beginner Furni Set 2",""],["TEST","","",""],["barchair_silo","Bar Stool","Practical and convenient",""],["audChr","audChr name","audChr desc",""],["wallpaper 18","wallpaper","Wallpaper",""],["poster 515","The Swedish flag","Waved by Swedes everywhere",""],["xmas08_table","Icy table","Keeps your ice cream chilled - guaranteed!",""],["chair_china","Chinese Lacquer Chair","The elegant beauty of tradition",""],["ads_clcake","Idea Agency Super Cake","Have your cake and eat it with Idea",""],["pura_mdl5*7","Green Pura Module 5","Any way you like it!",""],["pumpkin","Pumpkin Lamp","Cast a spooky glow","Huge saving!"],["gothic_stool*1","Gothic Stool Pink","The dark side of Habbo",""],["gothic_stool*2","Gothic Stool Saffron","The dark side of Habbo",""],["gothic_stool*3","Gothic Stool Red","The dark side of Habbo",""],["gothic_stool*4","Black Gothic Stool","The dark side of Habbo",""],["gothic_stool*5","Gothic Stool Green","The dark side of Habbo",""],["gothic_stool*6","Gothic Stool Blue","The dark side of Habbo",""],["poster 512","The Irish flag","The flag of Ireland",""],["penguin_sumo","Sumo Penguin","Aptenodytes Musashimaru",""],["tree5","Christmas Tree 3","Any presents under it yet?",""],["A1 D5P","Square Dining Table","Hip plastic furniture",""]] +[["avatar_effect26","Stick of command","Do not even think of a case!",""],["sound_set_15","RnB Grooves 6","Unadulterated essentials",""],["wooden_screen*0","White Oriental Screen","Add an exotic touch to your room",""],["lc_desk","Wooden Bar Desk","Not for sitting",""],["window_hole","Window","Window",""],["bardeskcorner_polyfon*4","Beige Mode Bardesk Corner","Beige Mode Bardesk Corner",""],["A1 BM4","Floor Rug","Available in a variety of colours",""],["lt_stage1","Small Tribal Block","Ancient ruins a plenty",""],["avatar_effect17","Pink UFO","Fly away with this UFO of love.",""],["sofa_silo*2","Black Two-Seater Sofa","Cushioned, understated comfort",""],["poster 47","The French Tricolore","The French flag",""],["diner_gumvendor*2","Pink Gum Machine","Fruity bubbly goodness!",""],["eco_fruits3","Fruit Bowl 3","From tree to hand in 3 pixels!",""],["avatar_effect23","Radioactive","You can even fly!",""],["A1 E5P","Chair","Hip plastic furniture",""],["divider_nor1*4","Urban Iced Corner","The missing piece",""],["jp_bamboo","Bamboo Forest","Watch out for pandas!",""],["pillow*8","Navy Cord Pillow","Puffy, soft and huge",""],["svnr_fi","Finnish Sauna","December 2008, 6/6",""],["diner_bardesk_gate*6","Blue Gate","Working 9 to 5",""],["pura_mdl5*1","Aqua Pura Module 5","Any way you like it!",""],["sporttrack3*2","Sport goal tartan","Let's get sporty!",""],["sound_set_22","SFX 3","With a hamper full of sounds, not sarnies",""],["romantique_divider*1","Rose Quartz Screen","Beauty lies within",""],["divider_silo3*9","Red Area Gate","Red Area Gate",""],["sofachair_silo*7","Green Area Armchair","Large, but worth it",""],["mode_cm_jan07_deal","Mode Bardesk Corner Multipack","5 bardesk corners",""],["poster 75","Mummy","Beware the curse...",""],["rare_elephant_statue*2","Bronze Elephant","Say hello to Nelly",""],["sporttrack2*1","Sport corner tartan","Let's get sporty!","Eight corner tartan tracks"],["deal_plant8","Small Cactus","","2 for free!"],["wallpaper 22","wallpaper","Wallpaper",""],["deal_bones_mega","Bones Mega Multipack","Fantastic 20% Saving!",""],["plant_valentinerose*3","Yellow Valentine's Rose","special pixel character","Special text - very special"],["plant_valentinerose*4","Pink Valentine's Rose","Be mine!",""],["glass_table*5","Candy Glass Table","Translucent beauty",""],["deal_uk_lava2","Lava Bundle","","HUGE Saving!"],["poster 76","Skeleton","Needs a few more Habburgers",""],["divider_silo1*6","Blue Area Corner Shelf","Tuck it away!",""],["table_silo_small*3","White Occasional Table","For those random moments",""],["sound_set_54","Oh Blinging Tree","Tune into Christmas",""],["deal_fair3","Habbos.net Bumper Cars","",""],["avatar_effect7","Butterflies","Not only in your stomach",""],["greek_corner","Greek Corner","Tuck it away!",""],["deal_camera_offer2","Paparazzi Pro Pack","Never miss that perfect shot.","This weekend only - 5 for price of 4!"],["rope_divider","Rope Divider","If your name's not down you're not coming in!",""],["deal10","Prince Charles Poster","Even walls have ears",""],["tiki_tray4","Tiki Pig Tray","Slow roastet pig head",""],["avatar_effect6","HRJP-3000","Habbo Rocket Jet Pack.",""],["eco_curtains1","Eco Curtain 1","Help keep the heat in",""],["romantique_tray1","Romantique Tray","Breakfast is served!",""],["rclr_garden","Water Garden","Self watering",""],["noob_rug_tradeable_6","starter rug","beginner set",""],["penguin_ski","XC Penguin","Aptenodytes Swish",""],["tree6","Flashy Christmas Tree","The future's bright!",""],["divider_nor2*2","Black Iced Bar-Desk","Soft but sturdy",""],["prizetrophy5*2","Duo trophy","Shiny silver",""],["scifiport*5","Security Fence"," Recovered from Roswell",""],["LT_pillar","Large Tribal Torch","Sacrificial flame",""],["pillar*9","Rock Pillar","Ancient and stately",""],["deal_christmas8","Mistletoe","Pucker up",""],["chair_plasty*8","Plastic Pod Chair","Hip plastic furniture",""],["prizetrophy*3","Classic trophy","Breathtaking bronze",""],["a0 clubplastos","HC chair","Aqua chair",""],["hwn_deal_8","Dead Tree","Creates a spooky scene!",""],["deal_arab4","Alhambra Deal 4","",""],["jp_sheet3","Kakejiku Hokusai","Japanese Kakejiku",""],["A1 D1P","Square Dining Table","Hip plastic furniture",""],["tray_cake","Wedding Cake","Share the love around",""],["couch_norja*6","Blue Bench","Two can perch comfortably",""],["rare_parasol*1","Yellow Parasol","Block those rays!",""],["hcc_sofachair","Reclining Chair","Put your feet up!",""],["exe_corner","Executive Corner Desk","Tuck it away",""],["croc_brown_deal","Croc Starter Pack (brown)","",""],["deal_uk_floor4b","Standard Tile","The floor is your canvas",""],["ads_mall_winspo","Mall Sports World Window","Whatever your sporting dibble, you'll find it here",""],["song_disk","Traxdisc","Burn, baby burn",""],["sound_set_53","Snowy Surprise","Break the icy silence",""],["a2 slp","Heart Stickies","Spread your love!",""],["jp_tray5","Sushi Tamago","Sushi made with egg",""],["diner_table_1*5","Beige Booth Table","Ready to order?",""],["penguin_icehockey","Hockey Penguin","Aptenodytes Gretzsky",""],["solarium_norja*9","Red Solarium","Rejuvenate your pixels!",""],["scifidoor*1","Pink Spaceship Door","There out of this world!",""],["shelves_basic","Pura Shelves","Pura series 404 shelves",""],["deal_uk_sfroller30","Sci Fi Roller","They work against gravity",""],["poster 20","Snowman Poster","A new use for carrots!",""],["summer_raft1","Pink Inflatable Raft","Ride the rapids in style",""],["deal_uk_wallie1","BBQ Set","",""],["sporttrack2*2","Sport corner asphalt","Let's get sporty!","Eight corner asphalt tracks"],["divider_nor5*5","Pink Iced Angle","Cool cornering for your crib y0!",""],["diner_gumvendor*9","Red Gum Machine","Fruity bubbly goodness!",""],["diner_gumvendor*10","Mint Gum Machine","Fruity bubbly goodness!",""],["divider_nor1*7","Rural Iced Corner","The missing piece",""],["barchair_silo*8","Yellow Bar Stool","Practical and convenient",""],["goodie1","Marzipan Man","Crunchy Dog Treat",""],["deal_arab5","Ornamental Urn","","Value Bundle: Voted most popular item!"],["mode_mm_jan07_deal","Mode Mixed Multipack","3 bardesks, 2 bardesk corners",""],["A1 D3P","Square Dining Table","Hip plastic furniture",""],["sound_set_28","Rock 2","Head for the pit!",""],["a0 stick1","Hockey Stick","Hockey Stick",""]] +[["bed_polyfon","Double Bed","Give yourself space to stretch out",""],["hween08_trll","Surgeon's Trolley","Chop, poke, ouch!",""],["party_tube_lava","Lava Lamp","Despite being made a lava, it is very cool.",""],["xmas08_lantern","Snowball Lantern Pile","No dodging this pile!",""],["deal_plant5","Fruit Tree","","Save 33%"],["christmas_reindeer","Reindeer","Prancer becomes Rudolph in a click!",""],["divider_nor5*9","Red Iced Angle","Cool cornering for your crib y0!",""],["a4 gothicsofa","Black Gothic Sofa","Ghosts and Ghouls",""],["ads_lin_wh_c","ads_lin_wh_c name","ads_lin_wh_c text",""],["ads_lin_wh_c2","ads_lin_wh_c2 name","ads_lin_wh_c2 text",""],["party_neon3","Neon Pink Flamingo","Celebrate the Eighties with this!",""],["poster 69","Jimmy Eat World poster","Don't eat this though!",""],["area_sp_jan07_deal","Area Starter Pack","Gate, corner and 2 screens",""],["divider_nor5*4","Urban Iced Angle","Cool cornering for your crib!",""],["noob_rug_tradeable_2","starter rug","beginner set",""],["noob_window_double","Double Window","Twice as good a view",""],["diner_cashreg*7","Green Register","Roll up roll up!",""],["carpet_standard","Floor Rug","Available in a variety of colours",""],["roomdimmer","Mood Light","Superior lighting for your room",""],["pura_mdl2*7","Green Pura Module 2","Any way you like it!",""],["waterbowl*5","Brown Water Bowl","Aqua unlimited",""],["bolly_palm","Palm Tree","Watch for falling coconuts!",""],["landscape 1","landscape","For the perfect urban hangout",""],["sofachair_silo*2","Black Armchair","Large, but worth it",""],["deal_icebc1","10,000 BC Bundle 1","",""],["12_Month_Subscription_6","Violet Laser Gate and 80 Credits","",""],["party_chair","High Class Bar Stool","Sit high and people watch on this!",""],["grunge_shelf","Grunge Bookshelf","Scrap books and photo albums",""],["black_mode_jan08_deal","Black Mode Bedroom Deal","Black Single and Double Mode Bed, Mode Bookcase",""],["jp_sheet2","Kakejiku Ninjya","Japanese Kakejiku",""],["exe_bardesk","Executive Bar Desk","Divide the profits!",""],["tiki_bardesk","Tiki Bar Desk","Serving up Summer",""],["divider_nor2*7","Rural Iced Bar","No way through",""],["party_neon1","Neon Right Arrows","Find your way right in the dark!",""],["hc_rllr","HC Roller","Highest class transportation",""],["arabian_tray3","Sweets Tray","Indulge yourself!",""],["one_way_door*6","Blue HC Gate","One way! The HC way!",""],["ads_cmusic","TBD Central Musical TV","TBD Click it away",""],["divider_nor4*8","Yellow Iced Auto Shutter","Habbos, roll out!",""],["china_table","Chinese Lacquer Table","Exotic and classy",""],["SF_crate_2","Large Crate","Pack all you want, we'll still travel light!",""],["fridge","Pura Refrigerator","Keep cool with a chilled snack or drink",""],["wallmirror","Wall Mirror","Mirror, mirror on the wall",""],["pura_mdl2*1","Aqua Pura Module 2","Any way you like it!",""],["glass_chair*6","Blue Glass Chair","Translucent beauty",""],["ads_711_3","ads_711","",""],["soft_sofachair_norja*7","Rural Iced Sofachair","Sit back and relax",""],["divider_silo1*3","White Corner Shelf","Neat and natty",""],["xmas08_storms5_deal","Snow Storm Deal x5","Buy 5 storms for the price of 3!",""],["sound_set_17","Groove 3","Jive's Alive!",""],["SF_panel2","Engineering Console","The computer says no",""],["sand_cstl_twr","Sand Castle Tower","Look out for sand storms!",""],["deal_uk_curtainyellow3","Yellow Curtain","Made with the finest materials",""],["wallpaper 8","wallpaper","Wallpaper",""],["a0 gothicfountain 2","Red Gothic Fountain","The life blood of Habbo",""],["pillar*7","Atlantean Pillar","Recovered from Habblantis",""],["arabian_wndw","Arabian Window Frame","Arabian days and nights",""],["A1 E3P","Chair","Hip plastic furniture",""],["rare_elephant_statue*1","Silver Elephant","Say hello to Nelly",""],["hween08_bed","Hospital Bed (blood)","You're in safe hands...",""],["ads_malaco_rug","Malaco Rug","",""],["divider_silo3*2","Black Area Gate","Form following function",""],["JUKKA","Yukka Plant","Easy to care for",""],["divider_nor1*8","Yellow Ice corner","Yellow Ice corner",""],["divider_poly3","Hatch (Lockable)","All bars should have one",""],["a0 deal107","Green Habbo Roller","The power of movement","2: 5 Green Habbo Rollers in a convenient Pack"],["scifidoor*10","Violet Starship Door","Awarded to honourary Space Cadets",""],["croc_yellow_deal","Croc Starter Pack (yellow)","",""],["ads_idol_carpet","Idol Carpet","With glamour and style",""],["tile_brown","Red Tile","Ideal for your downtown promenades & piazzas",""],["table_plasto_square*9","Occasional Table","Hip plastic furniture",""],["CF_5_coin_silver","Silver Coin","Worth 5 Credits",""],["igor_seat","Hump Massaging Chair","My Hump, My Hump, My Hump",""],["val_teddy*6","Blue Share Bear","The blue bear of happiness",""],["window_square","Glass Square Window","Create your own view!",""],["diner_bardesk*5","Beige Bar","Pull up a stool!",""],["lodge_dm_jan07_deal","Lodge Room Divider Multipack","5 room dividers",""],["grand_piano*2","Esmerald Piano Stool","Let the music begin",""],["rare_icecream_campaign","Rare icecream white","Basic model",""],["diner_bardesk_gate*2","Pink Gate","Working 9 to 5",""],["sporttrack3*3","Sport goal tartan","Let's get sporty!","Eight straight asphalt tracks"],["grand_piano*3","Sapphire Piano Stool","The pianist's preferred perch!",""],["scifiport*9","Violet Sci-Fi Port","Energy beams. No trespassers!",""],["lt_stone2","Tribal Stone Wall","Blocks from ancient ruins",""],["avatar_effect5","Torch","Light the dark corners of your existence.",""],["shelves_norja*9","Red Bookcase","For nic naks and art deco books",""],["hc_wall_lamp","Retro Wall Lamp","Tres chic!",""],["arabian_teamk","Tea Maker","Quench that desert thirst",""],["table_silo_med*2","Coffee Table","Wipe clean and unobtrusive",""],["hcc_minibar","Minibar","Cool look, cool drinks!",""],["deal_uk_hafta6","Sport Props","Time to get sporty!","Save 25%!"],["scifiport*7","Aqua Laser Gate","Impenetrable force field",""],["table_silo_med","Black Coffee Table","Wipe clean and unobtrusive",""],["summer_chair*9","Red Deck Chair","Got your sunglasses?",""],["xmas_snow","Snow Storm","Get lost in your own blizzard!",""],["rare_daffodil_rug","Petal Patch","A little bit of outdoors indoors..",""],["bump_road","Road","Get in the fast lane",""],["safe_silo*9","Red Safe Minibar","Totally shatter-proof!",""],["queue_tile1*1","Pink Habbo Roller","The power of movement",""],["sofachair_silo*4","Beige Area Armchair","Large, but worth it",""],["bump_signs","Road Signs","7 in 1 road sign.",""]] +[["pillow*3","Turquoise Satin Pillow","Puffy, soft and huge",""],["marquee*1","Pink marquee","It's both door and a shade!",""],["divider_nor4*7","Rural Iced Shutter","Habbos, roll out!",""],["table_plasto_square*14","Occasional Table","Hip plastic furniture",""],["window_diner2","Small Diner Window","Good grub, good view!","NEW Aug 08"],["goodie1*1","Marzipan Man","Crunchy Dog Treat",""],["a2 gothicchair","Golden Gothic Chair","The prince of Habbo",""],["rcandleset","Red Candle Plate","Simple but stylish",""],["deal_tile44","Star Tile","10% off the walk of fame!",""],["beige_mode_jan08_deal","Beige Mode Bedroom Deal","Beige Single and Double Mode Bed, Mode Bookcase",""],["deal_icebc","10,000 BC Bundle","",""],["A1 TUP","Dining Chair","Metallic seating experience",""],["lamp2_armas","Lodge Candle","Wax lyrical with some old-world charm",""],["deal_winter_blues1","Winter Blues Bundle 1","Blue BBQ, 2 Blue Deck Chairs and 2 Yukka Plants",""],["deal_uk_lcfloor6","Bensalem Floor Deal","Get a load more Floora!",""],["hal_grave","Haunted Grave","We're raising the dead!",""],["noob_set_6","Beginner Set 6","Beginner Furni Set 6",""],["scifidoor*2","Yellow Spaceship Door","There out of this world!",""],["DEV bed_budget5","Beige Pura Double Bed","King sized comfort!",""],["poster 73","Spiderweb","Not something you want to run into",""],["landscape 12","Landscape 12 - Space","landscape 12 desc",""],["goodie1*2","Marzipan Man","Crunchy Dog Treat",""],["statue","Cupid Statue","Watch out for those arrows!",""],["deal_uk_lcglassfloor","Bensalem Glass Floor Deal","Get more Glass in this top deal.",""],["A1 ANANAS","Pineapple Plant","Needs loving glances",""],["marquee*5","Graphite Marquee","It's both door and a shade!",""],["credits","Credits","",""],["sound_set_67","The trax of Tiki","Appease the great Habboa with party songs",""],["theatre_seat","Deluxe Theatre Chair","For Lazy boys and girls!",""],["summer_chair*2","Pink Deck Chair","Waterproof!",""],["tree1","Dead tree","Dead christmas tree",""],["carpet_polar","Faux-Fur Bear Rug","For cuddling up on",""],["ads_mall_coffeem","Quick Coffee Stop","Exclusively Mall coffee and free to boot!",""],["hc_tv","Mega TV Set","Forget plasma, go HC!",""],["habw_mirror","Habbowood Mirror","Star of the show!",""],["carpet_polar*3","Yellow Bear Rug","Snuggle up on a Funky bear rug...",""],["bed_budgetb_one","Plain Single Bed","All you need for a good night?s kip",""],["party_neon5","Neon Heart Light","I heart Neon!",""],["CFC_10_coin_bronze","Bronze Coin (China)","Worth 10 Credits",""],["divider_nor4","Plain Iced Auto Shutter","Habbos, roll out!",""],["table_silo_med*6","Blue Area Coffee Table","Gather everyone round",""],["deal_christmas7","Christmas Rubber Duck","A right Christmas quacker!",""],["table_norja_med*3","White Iced Table","For larger gatherings",""],["sound_machine","Sound Machine","creating fancy sounds",""],["poster 2008","Habbo Leap Day Poster","Once every four Habbo years!",""],["xmas08_trph2","Eco Friendly Penguin","Given to Eco friendly Habbo!",""],["window_grunge","Grunge Window","Don't get too close!",""],["deal_uk_grass9","Field Grass","Herding and grazing",""],["poster 511","The Dutch flag","The flag of The Netherlands",""],["divider_nor4*4","Urban Iced Shutter","Habbos, roll out!",""],["chair_silo*7","Green Area Dining Chair","Wooden dining chair",""],["noob_lamp_tradeable_6","starter lamp","beginner set",""],["pillar*8","Roman Pillar","All roads lead to Rome",""],["LT_skull","Skull","Tribal trophies",""],["lodge_cm_jan07_deal","Lodge Corner Multipack","5 corner plinths",""],["eco_table2","Eco Coffee Table 2","Recycled wood as standard",""],["ads_igor_flask","Glass Flask","Down the hatch!",""],["window_romantic_wide","Large Romantic Window","Heavenly scent of flowers",""],["bardesk_polyfon*4","Beige Mode Bardesk","Beige Mode Bardesk",""],["a0 deal104","Red Habbo Roller","The power of movement","2: 3 Red Habbo Rollers in a convenient Pack"],["scifirocket*8","Pluto Smoke Machine","From a space far, far away!",""],["valentinescreen","Holiday Romance","Peep through and smile!",""],["iced_sp_jan07_deal","Iced Starter Pack","Door, Corner and 2 Bar-desks",""],["jp_sheet1","Kakejiku Ziritsu","Japanese Kakejiku",""],["sandrug","Arabian Sand Patch","Your own empty wilderness",""],["CF_50_goldbar","Gold Bar","Worth 50 Credits",""],["chair_plasty*9","Plastic Pod Chair","Hip plastic furniture",""],["poster 505","The Maple Leaf","The Canadian flag",""],["12_Month_Subscription_7","Cherry Ice Cream Machine and 80 Credits","",""],["A1 B8P","Square Dining Table","Hip plastic furniture",""],["val_teddy*1","Grey Share Bear","The grey bear of affection",""],["diner_sofa_1*2","Pink Sofa 1","Soft leather in 50s design",""],["3_Month_Subscription_2","Rose Powered Fan and 80 Credits","",""],["chair_plasty*10","Plastic Pod Chair","Hip plastic furniture",""],["A1 PMP","Large Coffee Table","For larger gatherings",""],["divider_nor3*8","Yellow Iced gate","Yellow Iced gate",""],["summer_grill*3","Green Barbeque Grill","Plenty of steak on that barbie",""],["penguin_ballet","Ballerina Penguin","Aptenodytes Vaganova",""],["table_plasto_square*15","Occasional Table","Hip plastic furniture",""],["diner_sofa_2*8","Yellow Sofa 2","Soft leather in 50s design",""],["diner_table_1*6","Blue Booth Table","Ready to order?",""],["bench_lego","Team Bench","For your reserve players",""],["diner_bardesk_corner*2","Pink Corner","Now that's smooth...",""],["12_Month_Subscription_9","Industrial Turbine and 80 Credits","",""],["scifiport*0","Red Laser Door","Energy beams. No trespassers!",""],["diner_sofa_2*1","Aquamarine Sofa 2","Soft leather in 50s design",""],["diner_bardesk_corner*6","Blue Corner","Now that's smooth...",""],["sound_set_20","SFX 2","Musical heaven",""],["marquee*9","Green Marquee","Keep the mob out",""],["poster 50","Bat Poster","flap, flap, screech, screech...",""],["sofa_polyfon*3","White Two-seater Sofa","Comfort for stylish couples",""],["VALENTINE_07_01","Giant Heart","Full of love",""],["toilet_red","Loo Seat","Loo Seat",""],["goth_table","Gothic Table","A table with two heads",""],["romantique_divider*4","Amber Screen","Busy keeping things separated",""],["romantique_divider*5","Romantique Screen Gray","Keeping Things Separated",""],["A1 B2P","Square Dining Table","Hip plastic furniture",""],["a0 deal202","Sport track straight","Let's get sporty!",""],["noob_lamp*1","My first Habbo lamp","Get the light right where you want it (yellow)",""],["DEV bed_budget6","Blue Pura Double Bed","King sized comfort!",""],["menorah","Menorah","Light up your room",""]] +[["greektrophy*2","Greek trophy","Shiny silver",""],["habbowood_chair","Director's Chair","Exclusively for Directors",""],["bolly_wdw_wd","Bolly Window","Sets the scene",""],["sound_set_62","AlhambraTrax 1","Music of the Arabian night!",""],["chair_norja*7","Rural Chair","Sleek and chic for each cheek",""],["lc_stool","Wooden Stool","Watch out for splinters",""],["hrella_poster_2","Life Buoy","For those scary Lido moments",""],["one_way_door*4","Beige One Way Gate","One at a time!",""],["LT_pillar2","Small Tribal Torch","Light at the end of the jungle",""],["penguin_punk","Punk Penguin","Aptenodytes Rotter",""],["penguin_infected","Infected Penguin","Aptenodytes Bacterium",""],["plant_cruddy","Aloe Vera","Goodbye Bert...",""],["poster 64","The Habbo Babes 1","The Hotel's girlband. Dream on!",""],["chair_polyfon","Dining Chair","Dining Chair",""],["carpet_polar*2","Blue Bear Rug","Snuggle up on a Funky bear rug...",""],["xmas08_hottub","Hot Tub","Party time in the Arctic people!",""],["noob_chair*6","My first Habbo chair","Lightweight, practical with dark yellow stripes",""],["hologram","Holopod","As if by magic...",""],["aquamarine diner_cashreg*1","Aquamarine Register","Roll up roll up!",""],["plant_valentinerose*2","White Valentine's Rose","For the purest love","New item 2009!"],["pura_mdl2*4","White Pura Module 2","Any way you like it!",""],["plant_bonsai","Bonsai Tree","You can be sure it lives",""],["ads_frankb","Brain Lamp","Look after your brain - Talk To FRANK",""],["urban_sidewalk","Sidewalk","Don't step on a crack.",""],["urban_lamp","Street Lamp","Keeps a dark street brightly lit.",""],["urban_bin","Urban Trash Can","Street trash.",""],["urban_bench","Urban Bench","Watch out for gum before you sit.",""],["urban_carsofa","Taxi Sofa","Seats comfortably for crazy cab drives.",""],["urbanbsktbll_","Urban Basketball Hoop","Slam dunk!",""],["urban_fence","Urban Fence","Keeps trouble in or out.",""],["ads_gsArcade_1","Arcade Machine","Game over",""],["urban_wpost","Fire Hydrant","Sometimes used for putting out fires.",""],["urban_fence_corner","Urban Fence Corner","Keeps trouble in or out.",""],["urban_blocker","Road Block","Don't go any further.",""],["urban_bench_plain","Clean Bench","Nothing feels better than sitting on a clean bench.",""],["urban_wall","Urban Wall","Great for graffiti art.",""],["penguin_ninja","Ninja Penguin","Aptenodytes Hamburger",""],["bed_armas_two","Double Bed","King-sized pine comfort",""],["a0 deal117","Black Habbo Roller","The power of movement","2: 5 Black Habbo Rollers in a convenient Pack"],["noob_chair_tradeable_5","starter chair","beginner chair",""],["queue_tile1*5","Black Habbo Roller","The power of movement",""],["chair_silo*8","Yellow Dining Chair","Keep it simple",""],["noob_set_1","Beginner Set 1","Beginner Furni Set 1",""],["noticeboard","noticeboard name","noticeboard desc",""],["SF_chair_green","Space Cadet Chair","Welcome aboard, rookie",""],["traffic_light*1","Classic Traffic Light","Chill and wait your turn!",""],["sofachair_polyfon*3","White Armchair","Loft-style comfort",""],["deal_xmasday","Christmas Day Bundle","Xmas Day in a box!",""],["deal_uk_pillar","Large Tribal Torch","","Large saving!"],["chair_plasty*11","Plastic Pod Chair","Hip plastic furniture",""],["trax_sound_jan08_deal","Habbo Sounds Deal","Many sounds of Habbo","Save 25%"],["SF_floor_2","Starship Floor 2","Dec out the decks!",""],["sf_wall2","Starship Wall","Keeping space out since 1969",""],["pura_mdl4*3","Black Pura Module 4","Any way you like it!",""],["arabian_tile","Arabian Tile","Step in style...",""],["arabian_wall","Arabian Wall","A wall built with class.",""],["ads_clwall1","Idea Agency Plasma 1","ChildLine",""],["hc_roller_deal","HC Roller","Highest class transportation","Club gift, not for sale!"],["arabian_snake","Ornamental Urn","Beware the snake!",""],["door","Telephone Box","Dr Who?",""],["bolly_drapea","Pink Curtain","Made with the finest materials",""],["romantique_pianochair*5","Onyx Chair","What does this button do?",""],["deal_dancefloor9_neon","Dance Floor Mega Deal","30 Credits gets you 9 Dance Floor pieces!",""],["exe_map","World Map","World domination imminent",""],["tray_champagne","Champagne Bucket","Poised and ready to pop",""],["calippo","Calippo icecream machine","Basic model",""],["jp_table","Chabu Dai","Japanese coffee table",""],["diner_cashreg*8","Yellow Register","Roll up roll up!",""],["traxsilver","traxsilver","",""],["marquee*7","Purple Marquee","It's both door and a shade!",""],["poster 44","Mummy","Beware the curse...",""],["a0 deal113","Gold Habbo Roller","The power of movement","2: 5 Gold Habbo Rollers in a convenient Pack"],["pura_mdl5*9","Red Pura Module 5","Any way you like it!",""],["barchair_silo*6","Blue Bar Stool","Take a perch!",""],["bardeskcorner_polyfon*3","White Corner Desk","Tuck it away",""],["bed_polyfon_one*8","Yellow Mode Single Bed","Yellow Mode Single Bed",""],["divider_silo3*3","White Area Gate","Form following function",""],["A1 D7P","Square Dining Table","Hip plastic furniture",""],["env_tree4","The Four Seasons Tree","Crank up some Vivaldi & give your mate a gift.",""],["diner_gumvendor*6","Green Gum Machine","Fruity bubbly goodness!",""],["toilet_yell","Loo Seat","Loo Seat",""],["sw_table","Adventure Desk","Where will you go today?",""],["deal_trax4","Trax Pack: Urban","Sounds of the streets of bobba",""],["diner_table_1*9","Red Booth Table","Ready to order?",""],["diner_table_1*10","Mint Booth Table","Ready to order?",""],["hcc_table","Glass Table","Elegant centre piece",""],["sofa_silo*3","White Two-Seater Sofa","Cushioned, understated comfort",""],["pura_mdl1*9","Red Pura Module 1","Any way you like it!",""],["deal_lantern1","Lantern Bundle 1","10 lanterns for the price of 4!",""],["sound_set_31","Dance 3","House loops",""],["a2 juliste 83","Hoot Poster","The eyes follow you...",""],["table_plasto_round","Occasional Table","Hip plastic furniture",""],["xmas08_chair","Ice chair","Make sure you wear trousers!",""],["divider_nor1*2","Black Iced Corner","Tuck it away",""],["rare_icecream*9","Bubblegum Ice Cream Machine","Virtual bubblegum rocks!",""],["soft_sofa_norja*7","Rural Iced Sofa","Sit back and relax",""],["plant_sunflower","Cut Sunflower","For happy Habbos",""],["divider_nor2*4","Urban Iced Bar","No way through",""],["deal_cabbage","Cabbage Mega Multipack","Fantastic 20% Saving!",""],["rare_dragonlamp*5","Elf Green Dragon Lamp","Roast your chestnuts here!",""],["sofachair_silo*8","Yellow Armchair","Large, but worth it",""]] +[["deal_tile22","Marble Tile","Slick sophistication; now 10% off!",""],["deal_dogfood","Doggy Bones","Fantastic 20% Saving!",""],["djesko_turntable","Habbo Turntable","For the music-lovers",""],["summer_icebox","summer_icebox","",""],["rare_dragonlamp*2","Jade Dragon Lamp","Oriental beast of legends",""],["romantique_divider*2","Sapphire Screen","Divided lovers never had it so good!",""],["trax_effect_jan08_deal","Sound Effects Deal","SFX bundle","Save 24%"],["fireplace_armas","Fireplace","Authentic, real flame fire",""],["divider_silo3*4","Beige Area Gate","Beige Area Gate",""],["rare_dragonlamp*4","Black Dragon Lamp","Scary and scorching!",""],["doormat_plain*3","Doormat","Available in a variety of colours",""],["A1 C6P","Round Dining Table","Hip plastic furniture",""],["sound_machine_monster_deal","Sound Machine Monster Deal","Purple Traxmachine, plus Moshy Metal",""],["birdie","Pop-up Egg","Cheep (!) and cheerful",""],["deal_uk_pillow5","Star Pillow","Don't forget to make a wish!",""],["noob_set_3","Beginner Set 3","Beginner Furni Set 3",""],["a1 gothicstool","Gothic Stool","The dark side of Habbo",""],["mocchamaster","Mochamaster","Wake up and smell it!",""],["poster 2006","DJ Throne","He is the magic Habbo",""],["trax_club2_jan08_deal","Club Deal","Dancefloor burners!","Save 25%"],["xmas08_geysir","Geyser","Nothing quite like a warm exploding water hole!",""],["poster 43","Chains","Shake, rattle and roll",""],["easterduck","Wannabe bunny","Can you tell what it is yet?",""],["glass_sofa*8","Yellow Glass Sofa","Double glazed",""],["marquee*3","Aqua Marquee","It's both door and a shade!",""],["deal_uk_hafta2","Food Props","What will your stars feast on?","Two free plates!"],["deal_club_furni1","Chilled Bling","",""],["bed_polyfon_one*3","White Single Bed","Cot of the artistic",""],["rare_stand","Speaker's Corner","Stand and Deliver!",""],["trax_dance_jan08_deal","Dance Deal","Ready for the launch?","Save over 25%"],["wooden_screen*1","Pink Oriental screen","Add an exotic touch to your room",""],["poster 63","Scamme'd","Habbo-punk for the never-agreeing",""],["table_norja_med*7","Rural Iced Coffee Table","For larger gatherings",""],["exe_chair","Executive Sofa Chair","Relaxing leather comfort",""],["deal_window_small","Glass Square Window","Create your own view!","Half price windows!"],["sound_set_24","Habbo Sounds 4","It's all about the Pentiums, baby!",""],["summer_chair*7","Green Deck Chair","Reserved!",""],["ads_cltele","Idea Agency Teleporter","Whatever your Idea, it's better out than in.",""],["club_sofa","Club sofa","Club sofa",""],["hcamme","Tubmaster","Time for a soak",""],["pillow*4","Gold Feather Pillow","Puffy, soft and elegant",""],["cn_sofa","Chinese Sofa","Seats three with ease!",""],["bed_polyfon_one*6","Blue Mode Single Bed","Blue Mode Single Bed",""],["noob_lamp_tradeable_1","starter lamp","beginner set",""],["gothgate","Gothic Portcullis","Don't get caught beneath!",""],["bolly_lotus_pool","Lotus Pool","Giant passionate flower",""],["tree2","Dead Tree","Creates a spooky scene!",""],["diner_bardesk*6","Blue Bar","Pull up a stool!",""],["skullcandle","Skull Candle Holder","Alas poor Yorrick...",""],["md_limukaappi","Habbo Cola Machine","Proud sponsor of Habbo Football 2006",""],["sw_raven","Raven","Lurking... with intent",""],["sound_set_39","Rock 7","Rock with a roll",""],["noob_chair*2","My first Habbo chair","Lightweight, practical, with dark blue stripes",""],["poster 14","Fox Poster","A cunning painting",""],["deal_fair1","YourHabbo.co.uk Bumper Cars","",""],["rare_parasol*3","Violet Parasol","Block those rays!",""],["val_teddy*3","Green Share Bear","The green bear of friendship ",""],["deal_tile3","20 Mixed Tiles","Bundled for your convenience",""],["waterbowl*2","Green Water Bowl","Aqua unlimited",""],["rare_parasol*0","Green Parasol","Sun! Sun! Sun!",""],["divider_nor1","Ice Corner","Looks squishy, but isn't",""],["diner_table_1*8","Yellow Booth Table","Ready to order?",""],["exe_artlamp","Sphere Lamp","Suitable for budding entrepreneurs",""],["pura_mdl3*1","Aqua Pura Module 3","Any way you like it!",""],["country corner","Country Ditch Corner","Channel your irrigation",""],["deal_uk_lcplants","Bensalem Plant Deal","Flora, Fauna and all those plant you wanna!",""],["poster 34","Scamme´d poster","punk as a duck",""],["diner_walltable","Diner Side Table","Attaches to the wall",""],["pura_mdl5*4","White Pura Module 5","Any way you like it!",""],["deal_uk_petal5","Petal Flurry","Lay down a bed of roses",""],["noob_stool*3","My first Habbo stool","Unfold me and take the weight off (aubergine)",""],["wcandle","White Candle","Xmas tea light",""],["CF_10_coin_gold","Gold Coin","Worth 10 Credits",""],["divider_silo1*9","Red Area Corner Shelf","Tuck it away",""],["sound_set_26","Groove 1","Bollywood Beats!",""],["carpet_standard*a","Floor Rug","Available in a variety of colours",""],["doormat_plain*4","Doormat","Available in a variety of colours",""],["grunge_barrel","Flaming Barrel","Beacon of light!",""],["diner_sofa_1*3","Black Sofa 1","Soft leather in 50s design",""],["carpet_armas","Hand-Woven Rug","Adds instant warmth",""],["toy1*1","Rubber Ball","it's bouncy-tastic",""],["avatar_effect21","RebelMobile effect","Rebel without a cause.",""],["hween08_curtain","Hospital Curtain (blood)","Doctors at work",""],["plant_big_cactus","Mature Cactus","Habbo Dreams monster in hiding! Shhhh",""],["safe_silo*5","Pink Safe Minibar","Totally shatter-proof!",""],["poster 23","Santa Poster","The jolly fat man himself",""],["table_plasto_round*1","Occasional Table","Hip plastic furniture",""],["deal_blocksSMALL_neon","Small Blocks Deal","Get 10 blocks for 18 credits!",""],["petfood4","T-Bones","For the croc!",""],["noob_lamp*2","My first Habbo lamp","Get the light right where you want it (dark blue)",""],["12_Month_Subscription_12","Monster Plant and 80 Credits","",""],["tree3","Christmas Tree 1","Any presents under it yet?",""],["rare_dragonlamp*8","Bronze Dragon Lamp","Scary and scorching!",""],["DEV chair_basic9","Red Pura Egg Chair","It's a cracking design!",""],["poster 10","Lapland Poster","Beautiful sunset",""],["ads_dave_cns","Dave cns","Meet Dave in cinemas July 18th",""],["plant_bulrush","Bulrush","","Save 33%"],["divider_poly3*6","Blue Mode Bardesk Gate","Blue Mode Bardesk Gate",""],["deal_uk_bughill","Ant Hill","","Save 25%"],["red_pura_jan08_deal","Red Pura Bedroom Deal","Red Single and Double Pura Bed, Pura Lamp",""],["rare_parasol*2","Orange Parasol","Block those rays!",""]] +[["gothic_sofa*1","Gothic Sofa Pink","The dark side of Habbo",""],["gothic_sofa*2","Gothic Sofa Saffron","The dark side of Habbo",""],["gothic_sofa*3","Gothic Sofa Red","The dark side of Habbo",""],["gothic_sofa*4","Black Gothic Sofa","The dark side of Habbo",""],["gothic_sofa*5","Gothic Sofa Green","The dark side of Habbo",""],["gothic_sofa*6","Gothic Sofa Blue","The dark side of Habbo",""],["sf_tele","Futuristic Teleport","Beam me up!",""],["poster 37","The Habbo Babes 3","The Hotels girlband. Dream on!",""],["table_polyfon","Large Coffee Table","For larger gatherings",""],["penguin_swim","Summer Penguin","Aptenodytes Buubar",""],["doormat_plain*5","Doormat","Available in a variety of colours",""],["bardesk_polyfon*9","Red Bardesk","Perfect for work or play",""],["traxgold","traxgold","",""],["diner_chair*5","Beige Stool","Perch in comfort",""],["deal_christmas6","Tinsel (silver)","A touch of festive sparkle",""],["divider_nor1*5","Pink Ice corner","Pink Ice corner",""],["jp_lantern","Japanese Lantern","For a mellow Eastern glow",""],["glass_table*4","Glass table","Translucent beauty",""],["divider_silo1*4","Beige Area Corner Shelf","Beige Area Corner Shelf",""],["pura_mdl1*1","Aqua Pura Module 1","Any way you like it!",""],["deal_uk_hafta3","Dressing Room","Treat your stars in style","Special Offer!"],["glass_stool*9","Habbowood Glass Stool","For laid back stunt men",""],["scifiport*3","Jade Sci-Fi Port","Energy beams. No trespassers!",""],["A1 B4P","Round Dining Table","Hip plastic furniture",""],["turkey","Roast Turkey","Where's the cranberry sauce?",""],["hc_crpt","Persian Carpet","Ultimate craftsmanship",""],["sound_set_12","Habbo Sounds 2","Unusual as Standard",""],["rubberchair*8","Black Inflatable Chair","Soft and tearproof for HC!",""],["soft_sofa_norja*3","White Iced Sofa","Pristine white, keep it clean!",""],["noob_chair*5","My first Habbo chair","Lightweight, practical, with pink stripes",""],["barchair_silo*9","Red Bar Stool","Practical and convenient",""],["DEV chair_basic3","Black Pura Egg Chair","It's a cracking design!",""],["ads_idol_audChr","American Idol Audience Chair","Fancy seating for your audience!",""],["wallpaper 1","wallpaper","Wallpaper",""],["deadduck","Dead Duck","Blood, but no guts",""],["table_plasto_round*2","Occasional Table","Hip plastic furniture",""],["table_plasto_round*3","Occasional Table","Hip plastic furniture",""],["divider_silo3*6","Blue Area Gate","Door (lockable)",""],["tiki_tray2","Tiki Pineapple Plate","Fresh and juicy!",""],["solarium_norja*8","Yellow Solarium","Rejuvenate your pixels!",""],["bath","Bubble Bath","The ultimate in pampering",""],["corner_china","Dragon Screen Corner","Firm, fireproof foundation",""],["green_pura_jan08_deal","Green Pura Bedroom Deal","Green Single and Double Pura Bed, Pura Lamp",""],["scifiport*8","Purple Sci-Fi Port","Energy beams. No trespassers!",""],["pillow*7","Purple Velvet Pillow","Bonnie's pillow of choice!",""],["deal_crocfud","T-Bones","For the croc!",""],["pillar*3","blue pillar","Ancient and stately",""],["sound_set_34","Rock 5","For guitar heroes",""],["trax_groove_jan08_deal","Disco / Groove Deal","Step into the groove!","Save 25%"],["doormat_plain*6","Doormat","Available in a variety of colours",""],["carpet_soft*2","Soft Wool Rug","Soft Wool Rug",""],["deal_uk_hafta5","Musical Props","Let's make some noise","Half price Piano!"],["exe_cubelight","Cubist Light","Lights up a square",""],["sound_set_61","Latin Love 3","Straight from the heart",""],["lt_bughill","Ant Hill","Working 9 to 5",""],["country_wheat","Country Wheat","Right on the brink harvest",""],["country_corner","Country Ditch Corner","Channel your irrigation",""],["country_ditch","Country Ditch","Irrigation to irritation in one wrong step",""],["a1 newpl4lg1","HC table","Aqua table",""],["sound_set_16","Hip Hop Beats 3","Ferry, ferry good!",""],["dog_green_deal","Dog Starter Pack (green)","",""],["ads_igorswitch","Igor Switch","Nothing will work without this being on!",""],["gothicfountain","Gothic Ectoplasm Fountain","Not suitable for drinking!",""],["sofachair_polyfon*7","Green Armchair","Loft-style comfort",""],["bump_road_deal10","Road Deal 10","Get in the fast lane",""],["traffic_light*3","Purple Traffic Light","Chill and wait your turn!",""],["jp_tray6","Sushi Kohada","Sushi made with mackerel",""],["diner_sofa_2*7","Green Sofa 2","Soft leather in 50s design",""],["carpet_soft*3","Soft Wool Rug","Soft Wool Rug",""],["ads_clfloor","Childline Rug","Keep your feet warm with the Idea Agency rug",""],["wallpaper 17","wallpaper","Wallpaper",""],["exe_drinks","Executive Drinks Tray","Give a warm welcome",""],["sound_machine2","Ocean Traxmachine","Dance to the Habbo Club beat!",""],["sound_set_25","Dance 1","Actually, it's Partay!",""],["beige_pura_jan08_deal","Beige Pura Bedroom Deal","Beige Single and Double Pura Bed, Pura Lamp",""],["bed_polyfon*3","White Double Bed","Give yourself space to stretch out",""],["totem_leg","Totem Leg","1/3 of Totem",""],["poster 2007","The Father Of Habbo","The legendary founder of the Hotel",""],["sound_machine3","Green Traxmachine","Top the Habbo Charts!",""],["poster 509","The Jamaican flag","The flag of Jamaica",""],["sound_set_51","Club 6","Bop to the beat",""],["transparent_floor","transparent_floor name","transparent_floor desc",""],["party_djtable","DJ Table","Scratch it, spin it and play some banging tracks!",""],["cat_green_deal","Cat Starter Pack (green)","",""],["iced_mm_jan07_deal","Iced Mixed Multipack","3 bar-desks, 2 corners",""],["trax_rock1_jan08_deal","Rock Deal","Rock with a roll!","Save 25%"],["ads_mall_wincin","Mall Cinema Window","What movies are playing in the big silver screen?",""],["sofachair_silo*9","Red Area Armchair","Large, but worth it",""],["scifidoor*7","Aqua Spaceship Door","They're out of this world!",""],["deal_trax0","Traxmachine","Trax starter pack",""],["A1 C1P","Round Dining Table","Hip plastic furniture",""],["deal_eas07_3","Easter Flowers Deal","Let the Spring in this Easter",""],["carpet_soft*4","Soft Wool Rug","Soft Wool Rug",""],["diner_cashreg*5","Beige Register","Roll up roll up!",""],["deal_uk_scififloor10c","Starship Floor 2","Dec out the decks!",""],["sound_set_33","Rock 3","Guitar solo set",""],["eco_chair3","Eco Stool 3","Black and white skull design",""],["deal_uk_forestwall","Forest Poster Deal","Get 5 forest posters at a discounted price",""],["poster 13","BW Skyline Poster","Arty black and white",""],["rubberchair*5","Lime Inflatable Chair","Soft and tearproof!",""],["poster 8","Habbo Colours","Habbos come in all colours",""]] +[["poster 2","Carrot Plaque","Take pride in your veg!",""],["bump_road_deal20","Road Deal 20","Get in the fast lane",""],["divider_nor4*6","Blue Iced Auto Shutter","Habbos, roll out!",""],["table_plasto_round*4","Occasional Table","Hip plastic furniture",""],["table_plasto_round*5","Occasional Table","Hip plastic furniture",""],["table_plasto_round*6","Occasional Table","Hip plastic furniture",""],["table_plasto_round*7","Occasional Table","Hip plastic furniture",""],["table_plasto_round*8","Occasional Table","Hip plastic furniture",""],["table_plasto_round*9","Occasional Table","Hip plastic furniture",""],["table_plasto_round*14","Occasional Table","Hip plastic furniture",""],["table_plasto_round*15","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*1","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*2","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*3","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*4","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*5","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*6","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*7","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*8","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*9","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*14","Occasional Table","Hip plastic furniture",""],["table_plasto_bigsquare*15","Occasional Table","Hip plastic furniture",""],["poster 517","The Scottish flag","Where's your kilt?",""],["deal_uk_curtaingreen3","Green Curtain","Made with the finest materials",""],["lblue_pura_jan08_deal","Light Blue Pura Bedroom Deal","Light Blue Single and Double Pura Bed, Pura Lamp",""],["table_armas","Dining Table","For informal dining",""],["grand_piano*5","Onyx Piano Stool","I can feel air coming through...",""],["tiki_waterfall","Tiki Waterfall","Fresh mountain water",""],["sound_set_7","SFX 5","Sound effects for Furni",""],["poster 32","Shiva Poster","The Auspicious One",""],["tiki_sand","Island Sand Patch","Life's a beach!",""],["bar_polyfon","Mini-Bar","You naughty Habbo!",""],["sofachair_polyfon*6","Blue Mode Armchair","Blue Mode Armchair",""],["lc_chair","Wooden Chair","No rusty nails, in sight",""],["ads_cl_sofa","Idea Agency Sofa","Take a load off - both your feet and mind!",""],["diner_bardesk*1","Aquamarine Bar","Pull up a stool!",""],["deal_tile33","40 Mixed Tiles","Now with 10% off!",""],["CFC_100_coin_gold","Gold Coin (China)","Worth 100 Credits",""],["sand_cstl_gate","Sand Castle Gate","Keep the sand out!",""],["penguin_hunchback","Beautiful Penguin","Aptenodytes Narcissus",""],["glass_table*8","Yellow Glass Table","Translucent beauty",""],["footylamp","Football Lamp","Can you kick it?",""],["hyacinth2","Blue Hyacinth","Beautiful bulb",""],["area_mm_jan07_deal","Area Mixed Bundle","3 screens, 2 corner shelves",""],["avatar_effect8","Fireflies","Light my fire",""],["prizetrophy3*3","Globe trophy","Breathtaking bronze",""],["diner_sofa_1*9","Red Sofa 1","Soft leather in 50s design",""],["diner_sofa_1*10","Mint Sofa 1","Soft leather in 50s design",""],["A1 D4P","Square Dining Table","Hip plastic furniture",""],["table_silo_med*3","White Coffee Table","Wipe clean and unobtrusive",""],["noob_lamp_tradeable_2","starter lamp","beginner set",""],["poster 1005","Johnny Squabble","The muscly movie hero","Straight from the Habbowood set!"],["trax_hiphop_jan08_deal","Hip Hop Deal","Hip Hop beats","Save 24%"],["diner_cashreg*6","Blue Register","Roll up roll up!",""],["a0 deal112","Gold Habbo Roller","The power of movement","2: 3 Gold Habbo Rollers in a convenient Pack"],["pillow*9","Green Wooly Pillow","Puffy, soft and VERY fluffy!",""],["plant_yukka","Yukka Plant","","Save 33%"],["xmas_icelamp","Ice Block Lantern","Light up the winter nights",""],["hc_rntgn","X-Ray Divider","Believe it or not!",""],["deal_holly1","Holly Bundle 1","Deck the halls!","Super Saver Bundle!"],["hc_frplc","Heavy Duty Fireplace","Pixel-powered for maximum heating",""],["penguin_clown","Clown Penguin","Aptenodytes Pennywise",""],["noob_chair*3","My first Habbo chair","Lightweight, practical, with red stripes",""],["party_tray","Club Tray","Rest your drinks on this!",""],["A1 D2P","Square Dining Table","Hip plastic furniture",""],["bolly_swing","Swing","Swing low, my sweet.",""],["rare_fountain*3","Bird Bath (blue)","For our feathered friends",""],["poster 15","Himalayas Poster","Marvellous mountains",""],["A2 3000rpm","Habbo Turntable","For the retro music-lover",""],["petfood3","Cabbage","Health food for pets",""],["diner_bardesk_corner*8","Yellow Corner","Now that's smooth...",""],["landscape 11","Landscape 11 - Audience","landscape 11 desc",""],["poster 5","Duck Poster","Quacking good design!",""],["ads_idol_piano","American Idol Piano","Write a beautiful ballad for the performance of your life!",""],["wallpaper 11","wallpaper","Wallpaper",""],["shelves_armas","Bookcase","For all those fire-side stories",""],["wallpaper 10","wallpaper","Wallpaper",""],["bolly_tree","Palm Tree","Bollywood meets Hollywood",""],["val_randomizer","Love Randomiser","Surprise surprise! (Cilla Black not included)","We love it!"],["poster 38","Smiling Headbangerz","For really TOUGH Habbos!",""],["rare_icecream*2","Pistachio Ice Cream Machine","Virtual pistachio rocks!",""],["HW_stickerwarchild","War Child","Show your support for peace with this sticker!",""],["noob_chair*4","My first Habbo chair","Lightweight, practical, with light blue stripes",""],["LT_throne","Tribal Seat","Are you the chosen one?",""],["divider_nor3*6","Blue Iced gate","Blue Iced gate",""],["deal_eas07_2","Egg-tastic Deal","Easter goodness, in a box!",""],["divider_nor1*3","White Iced Corner","Looks squishy, but isn't!",""],["rubberchair*7","White Inflatable Chair","Soft and tearproof!",""],["scifiport*4","Pink Sci-Fi Port","Energy beams. No trespassers!",""],["pura_mdl1*3","Black Pura Module 1","Any way you like it!",""],["diner_gumvendor*5","Beige Gum Machine","Fruity bubbly goodness!",""],["noob_chair_tradeable_4","starter chair","beginner set",""],["pura_mdl2*3","Black Pura Module 2","Any way you like it!",""],["divider_nor3*9","Red Iced gate","Red Iced gate",""],["rare_parasol","Green Parasol","Block those rays!",""],["sofa_polyfon*6","Blue Mode Sofa","Blue Mode Sofa",""],["DEV chair_basic5","Beige Pura Egg Chair","Not just the shape of an egg...",""],["lt_wall","Lost Tribe Stone Wall","I wonder if this wall is safe to climb?",""],["poster 507","The French Tricolore","The French flag",""],["pura_mdl1*2","Pink Pura Module 1","Any way you like it!",""]] +[["sound_set_38","Rock 6","Rock and Roses!",""],["sound_set_50","Club 5","The harder generation",""],["deal_tikirug","Jungle Patch Bundle","",""],["lamp_armas","Table Lamp","Ambient lighting is essential",""],["hwn_deal_5","Dead Duck","","6 ducks total - image is wrong."],["lc_crab1","Crab Patch","Careful where you put your feet!",""],["a2 sportgoal asphalt","Sport goal asphalt","Let's get sporty!",""],["diner_sofa_1*4","White Sofa 1","Soft leather in 50s design",""],["gothiccandelabra","Gothic Candelabra","Through darkness came light",""],["sf_window","Starship Window","It'll put stars in your eyes",""],["hween08_sink","Blood Sink","Nasty shaving accident?",""],["a0 deal105","Blue Habbo Roller","The power of movement","2: 5 Blue Habbo Rollers in a convenient Pack"],["a1 newplch1","HC chair","Aqua chair",""],["A1 B5P","Square Dining Table","Hip plastic furniture",""],["rare_globe","Snow Globe","It's all white..",""],["hrella_poster_1","Porthole","Brighten up your cabin",""],["bolly_drapec","Yellow Curtain","Made with the finest materials",""],["romantique_divan*5","Onyx Chaise-Longue","Is that a cape hanging there?",""],["lostc_merdragon","Leviathan","1/6 - January 2009",""],["DEV bed_budget_one6","Blue Pura Bed","Prince sized comfort!",""],["poster 9","Rainforest Poster","Do your bit for the environment",""],["deal_fair6","Habbucks.com Ghost Train","",""],["sound_set_37","Habbowood Traxpack","Blockbuster hits!",""],["divider_poly3*9","Red Hatch","Border Control!",""],["soft_sofa_norja*4","Urban Iced Sofa","Sit back and relax",""],["candy_mm_jan07_deal","Candy Mixed Multipack","3 bars, 2 corners",""],["tiki_toucan","Toucan","Ermm... *pecks*",""],["deal_fair4","HabboHarmony.net Tea Cups","",""],["window_double_default","Double Window","It all started with a window..",""],["exe_elevator","Elevator Teleport","Going up or down in style!",""],["ktchn_pots","Hanging Pot Rack","Watch your head!",""],["ktchn_dvdr","Kitchel Wall Divider","A contemporary backsplash for any kitchen",""],["ktchn_light","Kitchen Light","The perfect lighting fixture to prep your food",""],["ktchn_countr_2","Kitchen Counter Large","Vibrant and shiny.",""],["ktchn_cornr","Kitchen Wall Divider Corner","A contemporary backsplash for any kitchen",""],["ktchn_gate","Kitchen Swinging Door","Easy to open and close during a bustling service.",""],["ktchn_knives","Magnetic Knife Holder","Keeps your knives organized.",""],["ktchn_plates","Dinner Plates","Who didn't finish their dinner?",""],["ktchn_oven","Kitchen Oven","Bake me a pie!",""],["ktchn_wall","Kitchen Wall","A contemporary backsplash for any kitchen",""],["ktchn_countr_1","Kitchen Counter Small","Vibrant and shiny.",""],["ktchn_sink","Industrial Sink","Always full of dirty dishes.",""],["ktchn_desk","Kitchen Work Table","Sanitary for prepping those delicate deserts.",""],["ktchn_fridge","Kitchen Fridge","Keeps it all cold.",""],["ktchn_inspctr","Kitchen Inspector","This kitchen needs a serious inspection",""],["ktchn_hlthNut","The Health Nut","Run...run.....RUN! I'm running!!!",""],["ktchn_stove","Industrial Stove","Keeps it simmering",""],["ktchn_bBlock","Butcher's Block","Sanitary for chopping any kind of food",""],["ktchn_trash","Trash Can","Smelly if you don't empty it.",""],["bw_croc","Inflatable Croc","Never smile at a Crocodile.",""],["holo_dragon","Holo Dragon","Dragon Hologram",""],["xm09_man_a","Snowman legs","What can you build?",""],["xm09_man_b","Snowman middle","What can you build?",""],["xm09_man_c","Snowman head","What can you build?",""],["xm09_forestwall","Snow Forest Wall","Covered in snow...",""],["xm09_lodgewall","Lodge Wall","Keep the heat in and the cold out",""],["xm09_bauble_1","Red Bauble","Perfect for a tree",""],["xm09_bauble_2","Blue Bauble","Perfect for a tree",""],["xm09_bauble_3","Green Bauble","Perfect for a tree",""],["xm09_bauble_4","Yellow Bauble","Perfect for a tree",""],["xm09_bauble_5","White Bauble","Perfect for a tree",""],["xm09_bauble_6","Red Striped Bauble","Perfect for the tree",""],["xm09_bauble_7","Blue Striped Bauble","Perfect for the tree",""],["xm09_bauble_8","Green Striped Bauble","Perfect for the tree",""],["xm09_bauble_9","Yellow Striped Bauble","Perfect for the tree",""],["xm09_bauble_10","White Striped Bauble","Perfect for the tree",""],["xm09_bauble_11","Tall Red Bauble","Perfect for the tree",""],["xm09_bauble_12","Tall Blue Bauble","Perfect for the tree",""],["xm09_bauble_13","Tall Green Bauble","Perfect for the tree",""],["xm09_bauble_14","Tall Yellow Bauble","Perfect for the tree",""],["xm09_bauble_15","Tall White Bauble","Perfect for the tree",""],["xm09_bauble_16","Purple Green Bauble","Perfect for the tree",""],["xm09_bauble_17","Tall Red Striped Bauble","Perfect for the tree",""],["xm09_bauble_18","White Dot Bauble","Perfect for the tree",""],["xm09_bauble_19","Tall Blue Striped Bauble","Perfect for the tree",""],["xm09_bauble_20","Tall Yellow Striped Bauble","Perfect for the tree",""],["xm09_bauble_21","Green White Bauble","Perfect for the tree",""],["xm09_bauble_22","Red Heart Bauble","To hang on your tree",""],["xm09_bauble_23","Blue Heart Bauble","To hang on your tree",""],["xm09_bauble_24","Green Heart Bauble","To hang on your tree",""],["xm09_bauble_25","Yellow Heart Bauble","To hang on your tree",""],["xm09_bauble_26","White Heart Bauble","To hang on your tree",""],["xm09_bauble_27","Pink Heart Bauble","To hang on your tree",""],["xm09_candyCane","Candy Canes","Got Candy?",""],["xm09_stocking","Holiday Stocking","Are they filled with coal?",""],["xm09_infotv","Flatscreen TV","Catch the latest news of the pre-Holiday season!",""],["xm09_cocoa","Hot Chocolate Maker","Cocoa and Christmas. Excellent!",""],["xm09_lrgBauble","Large Bauble","Isn't it pretty!",""],["xm09_frplc","Christmas Fireplace","Warm and cozy!",""],["xm09_table","Holiday Table","Enough Room for an entire family",""],["xm09_bench","Holiday Bench","Will everyone fit?",""],["ads_twi_paint","Painting","Stare deep into the painting...",""],["ads_twi_dreamc","Dream Catcher","Will it catch them?",""],["ads_twi_bwall1","Barn Wall","Keeps the cold out..",""],["ads_twi_crest","Volturi Crest","A Royal Crest.",""],["ads_twi_toolbx","Toolbox","Good spot for some tools...",""],["ads_twi_table","Cake on Table with Presents","Whose name is on that present?",""],["ads_twi_tower","Clock Tower","What time is it?",""],["ads_twi_piano","Broken Piano","I wonder if it's still in tune.",""],["ads_twi_chair","Volturi Royal Chair","A chair fit for royalty",""],["ads_twi_fountn","Fountain","Simply breathtaking...",""]] +[["ads_twi_dvdr2","Clock Tower wall","Repel all attacks...",""],["ads_twi_dvdr1","Half wall","Where is the other half?",""],["ads_twi_roses","Standing Rose Bouquet","You shouldn't have...",""],["ads_twi_bwall2","Truck and Motorcycles","Nice motorcycle",""],["ads_twi_windw","Window with Candles","Watch the candle flicker",""],["ads_twi_trophy","Twilight Trophy","Fitting for the biggest Twilight fan!",""],["ads_twi_mist","Fog","Sure is foggy out here...",""],["rela_candles1","White Candles","Calming Relaxation...",""],["rela_candles2","Red Candles","Calming Relaxation...",""],["rela_candles3","Violet Candles","Calming Relaxation...",""],["rela_candle1","White Candle","Calming Relaxation...",""],["rela_candle2","Red Candle","Calming Relaxation...",""],["rela_candle3","Violet Candle","Calming Relaxation...",""],["rela_hchair","Comfort Cradle","Calming Comfort...",""],["rela_orchid","Orchid","Calming Fragrance...",""],["rela_plant","Relaxation Plant","Calming Greenery...",""],["rela_stick","Stick in Jar","Calming Tranquility...",""],["rela_stone","Relaxation Stones","Calming Stability...",""],["rela_rock","Rock Seat","Calming Comfort...",""],["rela_wall","Relaxation Wall","Calming Serenity...",""],["hween09_organ","Ghostly Organ","Play a ghastly tune on the bones...",""],["sf_mbar","Astro-Bar","Deep space refreshment.",""],["beanstalk","Gigantic Beanstalk","A majestic rare...but who's gonna fix my floor?!",""],["rare_ironmaiden","Rare Iron Maiden","So good it's torturous!",""],["rare_vdoll","Rare Voodoo Doll","Choose your punishment!",""],["hween09_treewall","Haunted Forest","Don't enter alone...",""],["hween09_win","Haunted Window","What is really outside?",""],["hween09_crnr1","Creaky Corner","Perfect corner for a haunted house...",""],["hween09_wall1","Creaky Wall","I wonder if there is a hidden passage here?",""],["hween09_stonewall","Old Stone Wall","Looks strong enough.",""],["hween09_paint","Haunted Painting","Is that cat watching me?",""],["hween09_curt","Floating Curtain","Is someone hiding behind??",""],["hween09_hatch","Creepy Trap Door","I wonder where this goes?",""],["hween09_table","Creepy Table","Hope there is not a head on the platter...",""],["hween09_jar","Strange Jar","Would you like a Duck or a Head?",""],["hween09_floor","Creaky Floor","Watch your step!",""],["hween09_ghost","Ghost-in-the-Box","Ohh haunting...",""],["hween09_tv","Haunted TV","Whats on Haunted TV tonight?",""],["hween09_mirror","Ghostly Mirror","Is that a Habbo in there?",""],["hween09_chandelier","Haunted Chandelier","Flickering in the night...",""],["hween09_chair","Haunted Chair","Was something just sitting in this??",""],["summer_icebox","Ice Box","Chilled surprises",""],["summer_raft2","Blue Inflatable Raft","Ride the rapids in style",""],["ads_veet","ads_veet name","ads_veet desc",""],["ads_wwe_poster","WWE","Bigger, Badder, Better",""],["ads_percyw","ads_percyw name","ads_percyw desc",""],["ads_oc_soda","Orange Soda Machine","Who loves Orange Soda?!",""],["ads_oc_soda_cmp","Orange Soda Machine","Who loves Orange Soda?!",""],["ads_mirror","Dress Up Mirror","Look the part!",""],["ads_gsArcade_2","Arcade Cabinet","Must...get....high....score!",""],["ads_1800tele","ads_1800tele","",""],["ads_chups","ads_chups name","ads_chups desc",""],["ads_droetker_paula","ads_droetker_paula name","ads_droetker_paula desc",""],["ads_reebok_block2","ads_reebok_block2","",""],["ads_spang_sleep","ads_spang_sleep","ads_spang_sleep text",""],["ads_cl_moodi_camp","The Moodi Machine","how u feelin? Express yourself with ChildLine",""],["footylamp_campaign_ing","ING Trophy","We are the champions",""],["byesw_loadscreen","Loading screen memorial","The old Habbo loading screen.",""],["byesw_hotel","Hotel view memorial","3 different miniature Hotels.",""],["byesw_hand","Big Hand seat memorial","We'll miss you Big Hand!",""],["flag_denmark","The Danish Flag","Wave it proudly!",""],["transparent_floor","Transparent Floor","Watch your step!",""],["easel_0","StrayPixels Winner x1","Made by our very own RollerKingdom and Fredsicle",""],["easel_1","StrayPixels winner x3","Made by our very own avilaman, HankMcCoy, and ,CrystalBailey",""],["easel_2","StrayPixels winner x5","Is that... cheese chasing that man!?",""],["easel_3","StrayPixels winner x7","Watching paint dry... fun",""],["easel_4","StrayPixels winner x10","Holy carp my watch just melted!",""],["computer_flatscreen","Desktop Computer","Downloading....",""],["computer_old","Nostalgic Computer","Ahhh the good old days...",""],["computer_laptop","Laptop","For geeks on the go!",""],["tv_flat","Flatscreen TV","Plasma vs. LCD",""],["waasa_aquarium","Aquarium","Finding Nemo should be pretty easy.",""],["waasa_bunk_bed","Bunk Bed","Study or sleep? That's a tough decision!",""],["waasa_chair","Computer Chair","For the perfect posture",""],["waasa_chair_wood","Wooden Chair","A little hard on the buttocks.",""],["waasa_desk","Wooden Study Desk","The ultimate in sophisticated studying",""],["waasa_rug1","Blue Waasa Rug","Sink your toes into its softness",""],["waasa_rug2","Yellow Waasa Rug","Sink your toes into its softness",""],["waasa_rug3","Orange Waasa Rug","Sink your toes into its softness",""],["waasa_rug4","Green Waasa Rug","Sink your toes into its softness",""],["waasa_rug5","Gray Waasa Rug","Sink your toes into its softness",""],["waasa_ship1","Small Sailing Boat","Set sail on water!",""],["waasa_ship2","Large Sailing Boat","Let's hope this one floats!",""],["waasa_table1","Small Wooden Table","No name carving allowed",""],["waasa_table2","Large Wooden Table","Simple, strong and sturdy",""],["waasa_wall_shelf1","Book Shelf","Just a small amount of light reading",""],["waasa_wall_shelf2","Wall Shelf","Smells of many leather-bound books and rich mahogany.",""],["bw_water_1","Water Patch","Swimming in the shallow end.",""],["bw_water_2","Deep Water Patch","Get thrown in the deep end!",""],["coco_chair","Blue Resort Pod","The circular edges will relax you.",""],["coco_chair_c2","Chocolate Resort Pod","The circular edges will relax you.",""],["coco_chair_c3","White Resort Pod","The circular edges will relax you.",""],["coco_chair_c4","Black Resort Pod","The circular edges will relax you.",""],["coco_divan","Blue Pool-side Lounge","Every resort needs one!",""],["coco_divan_c2","Chocolate Pool-side Lounge","Every resort needs one!",""],["coco_divan_c3","White Pool-side Lounge","Every resort needs one!",""],["coco_divan_c4","Black Pool-side Lounge","Every resort needs one!",""],["coco_patch","Resort Flooring","Luxurious under bare feet",""],["coco_sofa","Blue Coco Sofa","The perfect place for a massage.",""],["coco_sofatable","Blue Drinks Table","When carrying your drink becomes hard work.",""],["coco_sofatable_c2","Chocolate Drinks Table","When carrying your drink becomes hard work.",""]] +[["coco_sofatable_c3","White Drinks Table","When carrying your drink becomes hard work.",""],["coco_sofatable_c4","Black Drinks Table","When carrying your drink becomes hard work.",""],["coco_sofa_c2","Chocolate Coco Sofa","The perfect place for a massage.",""],["coco_sofa_c3","White Coco Sofa","The perfect place for a massage.",""],["coco_sofa_c4","Black Coco Sofa","The perfect place for a massage.",""],["coco_stick","Resort Ornament","It's not dead, it's modern.",""],["coco_stool","Blue Coco Stool","For meditation to the maximum.",""],["coco_stool_c2","Chocolate Coco Stool","For meditation to the maximum.",""],["coco_stool_c3","White Coco Stool","For meditation to the maximum.",""],["coco_stool_c4","Black Coco Stool","For meditation to the maximum.",""],["coco_table","COCOnut Table","We had to use them somewhere!",""],["coco_table2","Pool-side Table","Resort to this for your own resort",""],["coco_throne","Blue Wicker Throne","The ultimate in resort relaxation",""],["coco_throne_c3","White Wicker Throne","The ultimate in resort relaxation",""],["coco_throne_c4","Black Wicker Throne","The ultimate in resort relaxation",""],["coco_throne__c2","Chocolate Wicker Throne","The ultimate in resort relaxation",""],["bling11_big1","Vegas Buildings","What happens in Vegas....",""],["bling11_block","Bling Block","A classy building block",""],["bling11_dvd","Bling Divider","Divide and conquer!",""],["bling11_dvn","Bling Daybed","Lie back in style... hand me those grapes!",""],["bling11_floor","Italian Marble Floor","Floor tiles that spell out class!",""],["bling11_pillar","Italian Marble Pillar","Will support all your bling!",""],["bling11_plant","Bling Plant","Classy Greenery!",""],["bling11_rug1","Tiger Rug","Be careful - it will bite!",""],["bling11_rug2","Bling Carpet","So soft your feet will sing with joy!",""],["bling11_seat1","Bling Seat","Silky comfort for your behind!",""],["bling11_seat2","Slot Chair","This could be the luckiest chair in the room!",""],["bling11_slot","Slot Machine","Watch out for this one-armed bandit!",""],["bling11_sofa","Bling Divan","Fit for classy butts!",""],["bling11_statue1","Eros","A God of Love",""],["bling11_statue2","Love Carp","Carpe Diem!",""],["bling11_tele","Bling Teleporter","Teleports you with great grace!",""],["bling11_towels","Bling Towels","Gives your bathroom that extra OUMPH!",""],["bling11_wall1","Tiger Wall Cover","Rawr!",""],["bling11_wall2","Zebra Wall Cover","A touch of wild life!",""],["bling11_wall3","Leopard Wall Cover","Wild patterns for your walls!",""],["bling11_wall4","Panther Wall Cover","Adds wild mystery to your walls!",""],["bling_bed","Bling Bed","No Comment...",""],["bling_cabinet","Bathroom Cabinet","Now With A Mirror",""],["bling_chair_a","Suave Chair","Sit in style!",""],["bling_chair_b","Suave Chair","Sit in style!",""],["bling_chair_c","Suave Chair","Sit in style!",""],["bling_fridge","Big Purple Fridge","I wonder whats inside?",""],["bling_pool","Jacuzzi","Is this a time machine?",""],["bling_shwr","Power Shower","So fresh and so clean...",""],["bling_sink","Marble Sink","Hand Wash, Baby",""],["bling_sofa","Leather Sofa","Perfect for two.",""],["bling_toilet","Golden Toilet","Don't forget to flush.",""],["val09_floor","Polished Tile","Looks all shiny...",""],["val09_floor2","Wooden Tile","Look closely at the grain",""],["val09_wall1","Sound-proofed Wall","I wonder if it really works?",""],["val09_wall2","Embroidered Wall","Isn't it pretty?",""],["val09_wdrobe_b","Designer Wardrobe","I wonder if all my clothes will fit?",""],["val09_wdrobe_g","Designer Wardrobe","I wonder if all my clothes will fit?",""],["bling11_floor_deal5","Italian Marble Floor","Floor tiles that spell out class!",""],["bling11_floor_deal10","Italian Marble Floor","Floor tiles that spell out class!",""],["val09_floor_deal5","Polished Tile","Looks all shiny...",""],["val09_floor_deal10","Polished Tile","Looks all shiny...",""],["val09_floor2_deal5","Wooden Tile","Look closely at the grain",""],["val09_floor2_deal10","Wooden Tile","Look closely at the grain",""],["limo_w_back","Limo Back","Ride in style!",""],["limo_w_front","Limo Front","Ride in style!",""],["limo_w_mid","Limo Middle Part 1","Build your limo and ride in style!",""],["limo_w_mid2","Limo Middle Part 2","Build your limo and ride in style!",""],["ktchn10_block","Kitchen Corner Block","Cutting this corner won't give you food poisoning.",""],["ktchn10_cabnt","Cabinet","Hide all your messy bits and pieces.",""],["ktchn10_pot","Boiling Water","If you can't stand the heat.",""],["ktchn10_sink","Kitchen Sink","Everything but...",""],["ktchn10_stove","Kitchen Stove","Cook up a storm!",""],["ktchn10_tea","Teapot","Short and stout.",""],["ktchn10_block_deal5","Kitchen Corner Block","Cutting this corner won't give you food poisoning.",""],["ktchn10_block_deal10","Kitchen Corner Block","Cutting this corner won't give you food poisoning.",""],["md_limukaappi_cmp","Mountain Dew Machine","A sparkling and refreshing pixel drink!",""],["cine_bench","Red Lobby Bench","Rest your feet before the show!",""],["cine_bench_b","Black Lobby Bench","Rest your feet before the show!",""],["cine_bench_g","Green Lobby Bench","Rest your feet before the show!",""],["cine_bigcorn","Big Popcorn","Swimming in butter",""],["cine_curtain","Theater Curtains","Open them up to start the show!",""],["cine_curtain_red","Red Theatre Curtain","Limited Edition Rare. Grab yourself some popcorn and enjoy the show!",""],["cine_glass","Glass Divider","What's between you and them...",""],["cine_light1","Theater Lights","Lighting up the darkness.",""],["cine_light2","Theater Hall Lights","Follow the lights and please make your way to the seats.",""],["cine_pillarlight","Cine Pillar Light","For the perfect movie theatre ambiance",""],["cine_platform","Cinema Platform","Enjoy the show!",""],["cine_popcorn","Popcorn Machine","Munch & Crunch- the perfect snack for movie-goers.",""],["cine_projector","Movie Projector","For showing home movies and Hollywood blockbusters.",""],["cine_pstr_0","Revenge of the Cheeps","It's a Freaking SAGA",""],["cine_pstr_1","Get Frank","The fourth film by Quilting Tarantula",""],["cine_pstr_10","Gnome","This holiday, discover your inner Habbo",""],["cine_pstr_14","Freeze!","Let it go, let it go, I can't hold this snowball anymore!",""],["cine_pstr_15","Ducknado","Almost enough said!",""],["cine_pstr_16","Quacktrix","No one can be told what the Quacktrix is. You must see it for yourself.",""],["cine_pstr_17","Barry Bobba","A half-blood Habbo and one of the most famous role-players of all time.",""],["cine_pstr_18","Habbo Games","May the credits be ever in your favor!",""],["cine_pstr_19","The Guardian of Habbo","All Habbos start somewhere.",""],["cine_pstr_2","The Rabbit","An unexpected hop.",""],["cine_pstr_3","The Rabbit 2","One carrot to rule them all.",""],["cine_pstr_4","Dark Duck Descends","He's the duck Habbo deserves",""],["cine_pstr_5","Avatar Editor","From the makers of The Catalog",""],["cine_pstr_6","The Ducket List","We live, we die, we rent.",""],["cine_pstr_7","M.O.D","I'll make him a trade he can't refuse.",""]] +[["cine_pstr_8","Habbo Club","Rule Six: Nice shirt, Nice shoes.",""],["cine_pstr_9","Bobbaro","An adventure through the forest with a penguin spirit Bobbaro",""],["cine_roof","Glass roof","Put a shiny glass ceiling on your red carpet!",""],["cine_screen","Movie Screen","The silver screen and home to movie magic.",""],["cine_soda","Big Soda","Soda, pop, fizz",""],["cine_star","Walk of Fame Tile","Go down in Habbo history!",""],["cine_starchair","Director's Chair","You call the shots!",""],["cine_teleport1","Cinema Teleport","Theatre 1",""],["cine_teleport2","Cinema Teleport","Theatre 2",""],["cine_teleport3","Cinema Teleport","Theatre 3",""],["cine_teleport4","Cinema Teleport","Theatre 4",""],["cine_ticket_booth","Ticket Vending Booth","What's showing tonight?",""],["cine_tile","Tile With a Halo","Lights up when walked over.",""],["cine_vipsign","HC Sign","Who's hot... and who's not.",""],["theatre_seat_b","Black Habbowood Chair","Try not to spill any drinks!",""],["theatre_seat_g","Green Habbowood Chair","Try not to spill any drinks!",""],["garden_flo1","Jimson Weed","Awww aren't they beautiful...",""],["garden_flo2","Yellow Delight","Awww aren't they beautiful...",""],["garden_flo3","Pink Pandemic","Awww aren't they beautiful...",""],["garden_flolamp","Wonder Lamp","I wonder what makes it glow...",""],["garden_flytrap","Snapping Teleporter","Hope this doesn't hurt.. Ouch!",""],["garden_jungle","Duck Grass","duck, duck, goose...",""],["garden_jyrki","Star Flower","Awww aren't they beautiful...",""],["garden_leaves","Garden Leaves","Elegant and classy at the same time",""],["garden_lupin1","Gold Lupine","Awww aren't they beautiful...",""],["garden_lupin2","Sky Blue Lupine","Awww aren't they beautiful...",""],["garden_lupin3","Ravishing Red Lupine","Awww aren't they beautiful...",""],["garden_lupin4","White Lupine","Awww aren't they beautiful...",""],["garden_lupin5","Princly Purple Lupine","Awww aren't they beautiful...",""],["garden_mursu","Perfectly Pink Rush","Watch your allergies...",""],["garden_mursu2","Rampaging Red Rush","Watch your allergies...",""],["garden_mursu3","Gallant Gold Rush","Watch your allergies...",""],["garden_mursu4","Wimsome White Rush","Watch your allergies...",""],["garden_orchtree","Bauhibia Orchid Tree","They look like upside down bells.",""],["garden_seed","Violet blossom","All it needs is LOVE!",""],["garden_seed_cmp","Violet blossom","All it needs is LOVE!",""],["garden_staringbush","Weird Staring Bush","Ummmmm. No comment...",""],["garden_volcano","Volcano Flower","AHHH Run away!!!",""],["garden_wall","Green Bean Vines","Wonder how far they will grow...",""],["hc2_armchair","Leather Armchair","Relax in style",""],["hc2_barchair","Leather Bar Stool","Sit up high",""],["hc2_biglamp","Black Lamp","Sophisticated lighting",""],["hc2_carpet","Trendy Rug","Luxurious comfort",""],["hc2_cart","Service Trolley","Butler not included",""],["hc2_coffee","Espresso Machine","Morning glory",""],["hc2_divider","Black Divider","Divide the wealth",""],["hc2_dvn","Leather Duvan","Stretch out",""],["hc2_frplc","Suave Fireplace","Roaring success",""],["hc2_sofa","Leather Sofa","Stylish seating",""],["hc2_sofatbl","Glass Table","Make a statement",""],["hc2_vase","Black Vase","Elegantly shaped",""],["hc3_bard","HC Bar Desk","Set up shop",""],["hc3_dc","HC Duvan","Live the life",""],["hc3_divider","HC Divider","Manage your space",""],["hc3_hugelamp","HC Lamp","Makes a huge statement",""],["hc3_light","HC Light","Stay in the spotlight",""],["hc3_shelf","HC Shelves","Store your awards",""],["hc3_sofa","HC Sofa","Comfort in style",""],["hc3_stereo","HC Stereo","Block rockin' beats",""],["hc3_stool","HC Stool","High and mighty",""],["hc3_table","HC Coffee Table","For social gatherings",""],["hc3_vase","HC Vase","The ultimate floral arrangement.",""],["hc3_walldeco","HC Wall Art","Cubism lives on",""],["school_bench","Cafeteria Bench","Take a load off!",""],["school_bus","School Bus","On the journey of learning ;)",""],["school_cafe","School Lunch Cart","No throwing food!",""],["school_chair","Desk Chair","Sit down (don't) behave.",""],["school_chairgold","Rare Gilded Chair","Be the classiest in class!",""],["school_chair_b","Blue School Chair","Not to be used in association with musical chairs",""],["school_chair_g","Green School Chair","Not to be used in association with musical chairs",""],["school_chalkboard","Chalkboard","I will not waste chalk. I will not waste chalk. I will not...",""],["school_chalkboard2","School Chalkboard","Does chalk really taste like cheese?",""],["school_charts","School Charts","TMI!",""],["school_coatrack_b","Blue Coatrack","THE place to hang out",""],["school_coatrack_g","Green Coatrack","THE place to hang out",""],["school_coatrack_r","Red Coatrack","THE place to hang out",""],["school_console","School Desk","Walk the path of knowledge ;)",""],["school_consolegold","Rare Gilded Desk","Be the classiest in class!",""],["school_console_b","Blue School Desk","Write on the paper, not on the desk!",""],["school_console_g","Green School Desk","Write on the paper, not on the desk!",""],["school_floor","School Flooring","Walk the path of knowledge ;)",""],["school_fountain","School Water Fountain","Water, water, everywhere!",""],["school_gate","School Gates","The gateway to a whole new education",""],["school_locker_b","Blue Locker Teleport","Takes you far away from here!",""],["school_locker_b_nosale","Blue Locker (NOT FOR SALE)","Store your stuff safely",""],["school_locker_b_notele","Blue School Locker","Don't forget your combination!",""],["school_locker_g","Teleport School Locker","Ooh, where does THIS locker go?",""],["school_locker_g_notele","Green School Locker","Don't forget your combination!",""],["school_locker_r","Red Locker Teleport","Takes you far away from here!",""],["school_locker_r_nosale","Red Locker (NOT FOR SALE)","Store your stuff safely",""],["school_locker_r_notele","Red School Locker","Don't forget your combination!",""],["school_platform","Auditorium Platform","Holds your school assembly",""],["school_stuff_01","School Books","Makes your brain grow... or something.",""],["school_stuff_02","Chem Set","Don't blow anything up...",""],["school_stuff_03","Cafeteria Burger","Yum! Cafeteria Food...",""],["school_stuff_04","Cafeteria Meatballs","Yum! Cafeteria Food...",""],["school_stuff_05","Cafeteria Nuggets","Yum! Cafeteria Food...",""],["school_stuff_06","Cafeteria Vegetables","Yum! Cafeteria Food...",""],["school_table","Cafeteria Table","No food fights please!",""],["school_toilet_stall","Toilet Stall","Close the door please...",""],["school_toilet_wall","Toilet Wall","Don't scribble on the wall!",""]] +[["school_urinal","Urinal","With a sweet smell of roses!",""],["school_wall","School Wall","Don't just be another brick in the wall...",""],["matic_box","Mystery Box","What did you get",""],["steampunk_carpet","Steampunk Carpet","I like my carpet steamed",""],["steampunk_chair","Steampunk Chair","Don't worry we don't think it will electrocute you",""],["steampunk_chand","Steampunk Chandalier","Light it up (3 states)",""],["steampunk_computer","Steampunk Computer","The future of computing?",""],["steampunk_floor1","Steampunk Floor","With 6 states!",""],["steampunk_floor2","Steampunk Floor","Underfoot lighting",""],["steampunk_gear_1","Large Cog","Watch them turn",""],["steampunk_gear_2","Small Cog","Watch them turn",""],["steampunk_globe","Globe","Where in the world?",""],["steampunk_gramophone","Steampunk Gramophone","The future of music?",""],["steampunk_lamp","Steampunk Lamp","Light the way",""],["steampunk_map","World Map","Where in the world?",""],["steampunk_pillar_1","Steampunk Pillar","Industrial Framework",""],["steampunk_pillar_2","Steampunk Pillar","Industrial Hydraulics",""],["steampunk_rack","Donnie Santini's Helmet","But where's Donnie?!?",""],["steampunk_sofachair","Steampunk Sofa","Somehwere to sit?",""],["steampunk_table_1","Steampunk Table","With a steamy finish",""],["steampunk_table_2","Steampunk Table","With a steamy finish",""],["steampunk_tele","Steampunk Tele","Steamy!",""],["steampunk_timemach","Time Machine","A journey to the fourth dimension",""],["steampunk_wall1","Steampunk Wall","Tick, Tock.",""],["steampunk_wall2","Steampunk Wall","3 States!",""],["steampunk_window","steampunk_window name","steampunk_window desc",""],["steampunk_zep","Steampunk Zeppelin","Keep away from open flames!",""],["dimmer_steampunk","Steampunk Dimmer Switch","Set the right mood.",""],["qt_val11_discoball","Disco Hearts","A slow dance never felt more romantic...",""],["qt_val11_duckformer","Duck-o-Heart","It's like magic! Is it a duck.. is it a heart?",""],["qt_val11_heartlights","Heart Lights","Brightens up your room with romance!",""],["qt_val11_holoduck","Holo-Duck","Lights up your day!",""],["qt_val11_holoheart","Holo-Heart","Lights up your heart!",""],["qt_val11_jellychair","Jelly Chair","Squishy like your heart!",""],["qt_val11_jellyheart","Jelly Heart","Get jiggly with it!",""],["dark_merdragon","Black Leviathan","Limited Edition Rare. Found in the darkest depths of the abyss.",""],["door_event","Hire-A-Room","Room hire service on the fly",""],["rainbow_ltd_parasol","Rainbow Parasol","Very cute and proud!",""],["snst_fireplace","Epic Fireplace","With a fire big enough to keep the entire room warm",""],["xmas11_balloon","Rare Balloon Machine","Double click to pick up a Balloon and some festive cheer!",""],["xmas11_balloon1","Single Balloon","A party on a string!",""],["xmas11_balloon2","Double Balloon","A party on a string!",""],["xmas11_balloon3","Triple Balloons","A party on a string!",""],["xmas11_btlr","The Santa Butler","Spreading cheer and good times!",""],["xmas11_chair","Red Wooden Cabin Chair","Cushioned for comfort",""],["xmas11_chair_2","Green Wooden Cabin Chair","Cushioned for comfort",""],["xmas11_chair_3","Beige Wooden Cabin Chair","Cushioned for comfort",""],["xmas11_chair_4","Wooden Cabin Chair with Fur Cover","Cushioned for comfort",""],["xmas11_comfy_bench","Red Wooden Cabin Bench","Fits more than one",""],["xmas11_comfy_bench_2","Green Wooden Cabin Bench","Fits more than one",""],["xmas11_comfy_bench_3","Beige Wooden Cabin Bench","Fits more than one",""],["xmas11_comfy_bench_4","Wooden Cabin Bench with Fur Cover","Fits more than one",""],["xmas11_comfy_chair","Red Cozy Cabin Chair","Sit down and relax",""],["xmas11_comfy_chair_2","Green Cozy Cabin Chair","Sit down and relax",""],["xmas11_comfy_chair_3","Beige Cozy Cabin Chair","Sit down and relax",""],["xmas11_comfy_chair_4","Cozy Cabin Fur Chair","Sit down and relax",""],["xmas11_cuckoo","Cuckoo's Clock","Let's you know when the clock strikes midnight...",""],["xmas11_elewood","Cabin Stone and Wood Tiles","Change the height by clicking",""],["xmas11_firewood","Cabin Firewood","Click to change the size of the pile",""],["xmas11_flag","Flag","For marking an area",""],["xmas11_footstool","Red Cabin Footstool","Put your feet up and take it easy",""],["xmas11_footstool_2","Green Cabin Footstool","Put your feet up and take it easy",""],["xmas11_footstool_3","Beige Cabin Footstool","Put your feet up and take it easy",""],["xmas11_footstool_4","Cabin Footstool with Fur Cover","Put your feet up and take it easy",""],["xmas11_hd1","Moose Head","I'd be a lot happier out in the woods!",""],["xmas11_hd2","Arctic Bear Head","How did I end up here on the wall?",""],["xmas11_hd3","Wild Boar Head","At least they didn't put an apple in my mouth...",""],["xmas11_hd4","Crocodile Head","Someone take this thing off of my head please!",""],["xmas11_hd5","Ghost Pet Head","I don't give a sheet...",""],["xmas11_hd6","Deer Head","Oh deer what have they done with me...",""],["xmas11_luxchair1","White Chesterfield Armchair","Swank seating for your delicate behinds.",""],["xmas11_luxchair2","Red Chesterfield Armchair","Swank seating for your delicate behinds.",""],["xmas11_luxchair3","Black Chesterfield Armchair","Swank seating for your delicate behinds.",""],["xmas11_luxdish1","Chocolate Fountain","Sweet, sweet heaven!",""],["xmas11_luxdish2","Strawberries","Little pieces of loveliness!",""],["xmas11_luxdish3","Porcelain","Tea's served!",""],["xmas11_luxfloor1","Parquet","Luxury Flooring",""],["xmas11_luxfloor2","Polished Stone Floor","Luxury Flooring",""],["xmas11_luxsofa1","White Chesterfield Sofa","Swank seating for your delicate behinds.",""],["xmas11_luxsofa2","Red Chesterfield Sofa","Swank seating for your delicate behinds.",""],["xmas11_luxsofa3","Black Chesterfield Sofa","Swank seating for your delicate behinds.",""],["xmas11_luxtable","Serving Table","Serves up a delicate meal.",""],["xmas11_nghtstnd","Cabin Nightstand","With a small lamp to light up your evenings",""],["xmas11_petfood","Cheese","Does not smell like old socks",""],["xmas11_sofatable","Cabin Sofa Table","Put down your hot choc and chill",""],["xmas11_stonedivider","Cabin Divider","Divide the space and make it stylish",""],["xmas11_stonefloor","Cabin Stone Floor","Cold under your bare feet",""],["xmas11_stool","Red Wooden Cabin Stool","Cushioned for comfort",""],["xmas11_stool_2","Green Wooden Cabin Stool","Cushioned for comfort",""],["xmas11_stool_3","Beige Wooden Cabin Stool","Cushioned for comfort",""],["xmas11_stool_4","Wooden Cabin Stool with Fur Cover","Cushioned for comfort",""],["xmas11_stove","Cabin Stove","Click it to turn up the heat",""],["xmas11_throne","Xmas Throne","A kingly seat",""],["xmas11_wall","Cabin Wall","Keeps your cabin warm and cozy",""],["xmas11_woodfloor","Cabin Wooden Floor","Doesn't creak under your feet",""],["xmas11_yetifeet","xmas11_yetifeet name","xmas11_yetifeet desc",""],["qt_xm10_elephant","Elephant Minibar","Now serving icy cool drinks!",""],["qt_xm10_gnome","Garden Gnome","Someone left him out in the cold for too long!",""],["qt_xm10_iceclubsofa","Cool Club Sofa","The pillows should keep you warm.",""],["qt_xm10_icedragon","Blizzard Dragon","With a fiery breath.",""],["qt_xm10_iceduck","Plain Icy Duck","It's quack-tastic!",""]] +[["qt_xm10_iceelephant","Woah Nelly!","So cool it's freezing!",""],["qt_xm10_icepillar","Frozen Pillar","Won't crumble... might melt though.",""],["qt_xm10_iceteddy","Frozen Ted","Cold yet cuddly.",""],["xmas13_icecream","Icy Ice Cream Maker","Virtual Ice Cream Rocks!",""],["easter_2021_box","Easter Egg 2021","What did you get beneath that chocolate?",""],["kuurna_chair","Pixel Sofa Chair","Cool and comfortable!",""],["kuurna_chair1","Pixel Dining Chair","Pixel dining at its best.",""],["kuurna_lamp","Pixel Lamp","Shed some light on your room.",""],["kuurna_mat","Pixel Shag Rug","Design and comfort in one great rug!",""],["kuurna_red_chair","Pixel Sofa Chair","Sit on it",""],["kuurna_red_chair1","Pixel Dining Chair","Take a load off",""],["kuurna_red_lamp","Pixel Lamp","Shed some light on your room",""],["kuurna_red_sofa","Pixel Sofa","Make room for your friends!",""],["kuurna_red_table","Pixel Dining Table","Did someone say dinner party?",""],["kuurna_red_table1","Pixel Side Table","Small but functional",""],["kuurna_sofa","Pixel Sofa","Make room for your friends!",""],["kuurna_table","Pixel Dining Table","Invite your friends over for a cool dining experience!",""],["kuurna_table1","Pixel Side Table","Small but functional.",""],["track12_ujack_sofa","Union Jack Sofa","Jolly good rumpus machine, innit??",""]] diff --git a/tools/gamedata/shockwave/sec.cct b/tools/gamedata/shockwave/sec.cct new file mode 100644 index 0000000000000000000000000000000000000000..456b12d5da399951c283d1fc005b44e2480fd2d8 GIT binary patch literal 965 zcmV;$13LUzMoCh(0{{R+L`Oz)Wp+jliU9$RL+*MMqGH>V`N}?Ide?` zgBdpi0|x`Ud6kK8VscS_ZfZ(qqC!<>K~83pLUMj?K~ZXPab|v=4v>>ql9*hgfKaBR z;F*`Kr=t*@n5W=Yl$e*CS)81&qu}hw003%|9ve_iLP2=|fd+WmW8~vvVrW(A;$~0? z_VHxy|NsAgePc~y4TDyst2YanYir9;671;A3g)DwFt|Afxv+ydEG!IKKp74&Cntv? zq9oae8_bE1XGqJ-bmnPQkq}`B4ss3Sg_z9U$jy+OnCHU>=C<&(@Gul57yAGJ1g|#3 zNkvCS0C?KXRLxHlQ4pWE+wCr8+lpdLK+s5p1VTtfL*f^Kr62(bp}{qwq?GNmZu+s! z?iRuc{|Cdxi#IRExoC_RIe9R~t49;#fpG9*;=x;;eQZlfI2cd66&+Y%8VB34}EJ<5B1DS`oZ7mu~5HUwk-G$pg=*L zX<3Y(Q_vQ13<;J=-u`^`d)9as*!+5qY-cW*tTFdoariZf6*!0)#bdKuW+Bc>f?O1 zQ0A@{zCATpE9ZB(8`*N~LZ|QMEuOJlyXHq-?$_OFG*@x9Y%bg7Qq2dSQCI&MMnm&lc9>$onM1(5HCTW-S>(F$Nkeo1dFWJ4(nNzG%wNz;#}Afmq# z4}x{}LG<@iOOBKGe5hXvYe&icCh8oBxWlHDzQaXPSOfB7!Xf7?V88|ki0;FTfJs9N-cT+ep zi1J(X&f#1aj+%I38i&R)vyUS$jaYw>@Dxgv(McH=W%NbROyR^mOvbS{g}0Kpb{*#> z%-z7zc{K0iI-vO)@2ulo0w-tD({boMruT77!=X30`U2N>aij-3`muKq)fBD{prsmp z;!~WlpxX&Lo-sAJMidfVagelOZG%Q2HozbmTt5c%A6aVapa;-=?)i4LDE^;_xTl&p zOY9*|5~rx?jK-t1{^aMP$}{=PfN?WRXR4IV)XVu2&ra2S$KzIRiErmtu1#cpUa3*& nAD2(~%y`;kU}9im;9_88U|`?|(jc%000LwH;kQlT=pv60DUH#l literal 0 HcmV?d00001 diff --git a/tools/gamedata/shockwave/template_variables.txt b/tools/gamedata/shockwave/template_variables.txt new file mode 100644 index 0000000..8a60782 --- /dev/null +++ b/tools/gamedata/shockwave/template_variables.txt @@ -0,0 +1,170 @@ +cast.entry.39=hh_human_50_acc_face +cast.entry.33=hh_human_acc_face +cast.entry.11=hh_human_hair +client.fatal.error.url=[HTTP_TAG]://classichabbo.com/client_error +link.format.userpage=[HTTP_TAG]://classichabbo.com/home/%ID%/id +room.rating.enable=1 +interface.cmds.active.ctrl=["move","rotate"] +cast.entry.28=hh_recycler +avatar.editor.character.update.url=[HTTP_TAG]://[SSL_DOMAIN]/profile +cast.entry.14=hh_human_shoe +cast.entry.16=hh_pets_common +cast.entry.6=hh_human +link.format.collectibles=[HTTP_TAG]://[SSL_DOMAIN]/credits/collectables +room.cast.11=hh_human_fx +interstitial.max.displays=5 +room.cast.1=hh_soundmachine +interface.cmds.item.ctrl=[] +cast.entry.40=hh_human_50_acc_head +cast.entry.32=hh_human_acc_eye +cast.entry.34=hh_human_acc_head +interface.cmds.user.owner=["take_rights","give_rights","kick","friend","trade","ignore","unignore","userpage"] +cast.entry.15=hh_kiosk_room +room.recommendations=1 +room.cast.10=hh_roomdimmer +link.format.friendlist.pref=[HTTP_TAG]://classichabbo.com/profile/friendsmanagement?tab=6 +cast.entry.41=hh_human_50_body +cast.entry.10=hh_human_hats +room.cast.5=hh_human_50_leg +cast.entry.30=hh_badges +cast.entry.4=hh_interface +cast.entry.31=hh_entry_init +interface.cmds.user.ctrl=["kick","friend","trade","ignore","unignore","userpage"] +cast.entry.19=hh_furni_classes +interface.cmds.photo.owner=["pick","delete"] +cast.entry.21=hh_club +displayer.tag.expiration.time=600000 +swimjump.key.list=[#run1:"A", #run2:"D", #dive1:"W", #dive2:"E", #dive3:"A", #dive4:"S", #dive5:"D", #dive6:"Z", #dive7:"X", #jump:"SPACE"] +link.format.credits=[HTTP_TAG]://classichabbo.com/credits +cast.entry.17=hh_room_utils +cast.entry.46=hh_ig +cast.entry.44=hh_pets +games.tickets.hide=0 +navigator.cache.duration=30 +cast.entry.35=hh_human_50_face +cast.entry.45=hh_guide +cast.entry.47=hh_ig_interface +cast.entry.48=hh_tutorial +cast.entry.20=hh_room +room.cast.4=hh_human_50_shirt +room.cast.3=hh_human_acc_waist +interface.cmds.photo.ctrl=[] +cast.entry.18=hh_room_ui +club.subscription.disabled=1 +cast.entry.12=hh_human_shirt +interface.cmds.user.friend=["friend","trade","ignore","unignore","userpage"] +room.cast.2=hh_human_acc_chest +cast.entry.24=hh_cat_new +link.format.mailpage=[HTTP_TAG]://classichabbo.com/me#mail/compose/%recipientid% +text.render.compatibility.mode=2 +interface.cmds.active.owner=["move","rotate","pick"] +cast.entry.43=hh_instant_messenger +group.badge.url=[HTTP_TAG]://[SSL_DOMAIN]/habbo-imaging/badge/%imagerdata%.gif +interstitial.interval=180000 +cast.entry.1=hh_entry_[HOTEL_VIEW_TAG] +cast.entry.7=hh_human_body +cast.entry.13=hh_human_leg +client.full.refresh.period=5000 +group_logo_url_template=[HTTP_TAG]://[SSL_DOMAIN]/habbo-imaging/badge-fill/%imagerdata%.gif +cast.entry.42=hh_friend_list +cast.entry.2=hh_entry_base +room.cast.9=hh_human_50_acc_waist +text.crap.fixing=1 +cast.entry.26=hh_buffer +client.version.id=401 +cast.entry.27=hh_dynamic_downloader +moderator.cmds=[":alert x",":ban x",":kick x",":superban x",":shutup x",":unmute x",":transfer x",":softkick x"] +rosetta.warning.page.url=[HTTP_TAG]://classichabbo.com/client_popup/rosetta_info +link.format.mail.inbox=[HTTP_TAG]://classichabbo.com/me#mail +link.format.user.search=[HTTP_TAG]://classichabbo.com/me#habbo-search +room.cast.6=hh_human_50_shoe +room.cast.8=hh_human_50_acc_chest +cast.entry.36=hh_human_50_hats +avatar.editor.url=%predefined%/profile +cast.entry.22=hh_photo +link.format.habboclub=[HTTP_TAG]://%predefined%/credits/club +link.format.club=[HTTP_TAG]://classichabbo.com/credits/club +cast.entry.23=hh_navigator +castload.retry.delay=20000 +link.format.mail.compose=[HTTP_TAG]://classichabbo.com/me#mail/compose/%recipientid%/%random%/ +interface.cmds.item.owner=["pick"] +link.format.pets=[HTTP_TAG]://classichabbo.com/hotel/pets +interface.cmds.user.personal=["badge","dance","wave","hcdance","userpage"] +paalu.key.list=[#bal1:"Q", #bal2:"E", #push1:"A", #push2:"D", #move1:"N", #move2:"M", #stabilise:"SPACE"] +pixels.enabled=true +link.format.tag.search=[HTTP_TAG]://classichabbo.com/tag/search?tag=%tag% +room.cast.small.1=hh_pets_50 +cast.entry.25=hh_cat_gfx_all +cast.entry.5=hh_patch_uk +cast.entry.9=hh_human_item +room.cast.12=hh_human_50_fx +cast.entry.37=hh_human_50_hair +interstitial.show.time=3000 +cast.entry.38=hh_human_50_acc_eye +cast.entry.8=hh_human_face +room.cast.private=["hh_room_private", "hh_room_landscapes"] +client.flood.timeout=1 +cast.entry.29=hh_poll +room.cast.7=hh_human_50_item +cast.entry.3=hh_shared +friend_request_options=Advanced options. +char.conversion.mac=[128:219,130:226,131:196,132:227,133:201,134:160,135:224,136:246,137:228,139:220,140:206,145:212,146:213,147:210,148:211,149:165,150:208,151:209,152:247,153:170,155:221,156:207,159:217,161:193,165:180,167:164,168:172,170:187,171:199,172:194,173:208,174:168,176:161,180:171,182:166,183:225,184:252,186:188,187:200,191:192,192:203,193:231,194:229,195:204,196:128,197:129,198:174,199:130,200:233,201:131,202:230,203:232,204:237,205:234,206:235,207:236,209:132,210:241,211:238,212:239,213:205,214:133,216:175,217:244,218:242,219:243,220:134,223:167,224:136,225:135,226:137,227:139,228:138,229:140,230:190,231:141,232:143,233:142,234:144,235:145,236:147,237:146,238:148,239:149,241:150,242:152,243:151,244:153,246:154,247:214,248:191,249:157,250:156,251:158,252:159,255:216] +profile.events.enabled=false +profile.fields.enabled=false +profiler.enabled=false +profile.core.enabled=false +profile.network.enabled=false +client.use.invites=1 +external.figurepartlist.txt=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/figuredata.xml +productdata.load.url=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/productdata.txt +hotelview.banner.url=[HTTP_TAG]://[SSL_DOMAIN]/gamedata/banner +purse.transactions.active=1 +loading.bar.active=1 +client.textdata.utf8=1 +logout.disconnect.url=[HTTP_TAG]://classichabbo.com/account/disconnected?reason=logout&origin=popup +logout.concurrent.url= +[HTTP_TAG]://classichabbo.com/account/disconnected?reason=concurrentlogin&origin=popup +furnidata.load.url=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/furnidata.txt +dynamic.download.name.template=hh_furni_xx_%typeid%.cct +navigator.visible.public.root=3 +room.default.wall=201 +figure.draworder.xml.secure=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/draworder.xml +client.window.title=Habbo Hotel +navigator.private.default=4 +room.default.floor=111 +struct.font.tooltip=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.public.default=3 +stats.tracking.javascript.template=/\TCODE +struct.font.link=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#underline]] +flash.dynamic.download.url=[HTTP_TAG]://[SSL_DOMAIN]/dcr/hof_furni/ +flash.dynamic.download.name.template=%revision%/%typeid%.swf +fuse.project.id=habbo_uk +figure.animation.xml=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/animation.xml +private.image.library.url=[CDN_IMAGES] +dynamic.download.url=[HTTP_TAG]://[SSL_DOMAIN]/dcr/hof_furni/ +figure.partsets.xml=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/partsets.xml +tutorial.name.new_user_flow=NUF_mini +external.figurepartlist.txt.secure=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/figuredata.xml +navigator.visible.private.root=4 +struct.font.italic=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#italic]] +language=en +image.library.url=[CDN_IMAGES] +struct.font.plain=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.default.view=public +security.cast.load.url=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/sec.cct?t=%token% +logout.url=[HTTP_TAG]://[SSL_DOMAIN]/account/disconnected?reason=logout&origin=popup +figure.draworder.xml=[HTTP_TAG]://[SSL_DOMAIN]/dcr/v31/gamedata/draworder.xml +stats.tracking.javascript=google +struct.font.bold=[#font:"vb",#fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +struct.font.grey=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#666666"),#ilk:#struct,#fontStyle:[#italic]] +permitted.name.chars=1234567890qwertyuiopasdfghjklzxcvbnm-=?!@:., +dynamic.download.samples.template=sounds/%typeid%.cct +handitem.camera.select_handler=photo_interface +navigator.room.forward.timeout=0 +cast.entry.49=hh_tutorial_fix +client.allow.cross.domain=1 +client.notify.cross.domain=0 +handitem.right.45 = 57 +handitem.right.46 = 58 +handitem.right.47 = 59 +handitem.right.50 = 62 diff --git a/tools/gamedata/shockwave/template_variables2.txt b/tools/gamedata/shockwave/template_variables2.txt new file mode 100644 index 0000000..24082d9 --- /dev/null +++ b/tools/gamedata/shockwave/template_variables2.txt @@ -0,0 +1,170 @@ +cast.entry.39=hh_human_50_acc_face +cast.entry.33=hh_human_acc_face +cast.entry.11=hh_human_hair +client.fatal.error.url=[HTTP_TAG]://classichabbo.com/client_error +link.format.userpage=[HTTP_TAG]://classichabbo.com/home/%ID%/id +room.rating.enable=1 +interface.cmds.active.ctrl=["move","rotate"] +cast.entry.28=hh_recycler +avatar.editor.character.update.url=[HTTP_TAG]://cdn.classichabbo.com/profile +cast.entry.14=hh_human_shoe +cast.entry.16=hh_pets_common +cast.entry.6=hh_human +link.format.collectibles=[HTTP_TAG]://cdn.classichabbo.com/credits/collectables +room.cast.11=hh_human_fx +interstitial.max.displays=5 +room.cast.1=hh_soundmachine +interface.cmds.item.ctrl=[] +cast.entry.40=hh_human_50_acc_head +cast.entry.32=hh_human_acc_eye +cast.entry.34=hh_human_acc_head +interface.cmds.user.owner=["take_rights","give_rights","kick","friend","trade","ignore","unignore","userpage"] +cast.entry.15=hh_kiosk_room +room.recommendations=1 +room.cast.10=hh_roomdimmer +link.format.friendlist.pref=[HTTP_TAG]://classichabbo.com/profile/friendsmanagement?tab=6 +cast.entry.41=hh_human_50_body +cast.entry.10=hh_human_hats +room.cast.5=hh_human_50_leg +cast.entry.30=hh_badges +cast.entry.4=hh_interface +cast.entry.31=hh_entry_init +interface.cmds.user.ctrl=["kick","friend","trade","ignore","unignore","userpage"] +cast.entry.19=hh_furni_classes +interface.cmds.photo.owner=["pick","delete"] +cast.entry.21=hh_club +displayer.tag.expiration.time=600000 +swimjump.key.list=[#run1:"A", #run2:"D", #dive1:"W", #dive2:"E", #dive3:"A", #dive4:"S", #dive5:"D", #dive6:"Z", #dive7:"X", #jump:"SPACE"] +link.format.credits=[HTTP_TAG]://classichabbo.com/credits +cast.entry.17=hh_room_utils +cast.entry.46=hh_ig +cast.entry.44=hh_pets +games.tickets.hide=0 +navigator.cache.duration=30 +cast.entry.35=hh_human_50_face +cast.entry.45=hh_guide +cast.entry.47=hh_ig_interface +cast.entry.48=hh_tutorial +cast.entry.20=hh_room +room.cast.4=hh_human_50_shirt +room.cast.3=hh_human_acc_waist +interface.cmds.photo.ctrl=[] +cast.entry.18=hh_room_ui +club.subscription.disabled=1 +cast.entry.12=hh_human_shirt +interface.cmds.user.friend=["friend","trade","ignore","unignore","userpage"] +room.cast.2=hh_human_acc_chest +cast.entry.24=hh_cat_new +link.format.mailpage=[HTTP_TAG]://classichabbo.com/me#mail/compose/%recipientid% +text.render.compatibility.mode=2 +interface.cmds.active.owner=["move","rotate","pick"] +cast.entry.43=hh_instant_messenger +group.badge.url=http://cdn.classichabbo.com/habbo-imaging/badge/%imagerdata%.gif +interstitial.interval=180000 +cast.entry.1=hh_entry_[HOTEL_VIEW_TAG] +cast.entry.7=hh_human_body +cast.entry.13=hh_human_leg +client.full.refresh.period=5000 +group_logo_url_template=http://cdn.classichabbo.com/habbo-imaging/badge-fill/%imagerdata%.gif +cast.entry.42=hh_friend_list +cast.entry.2=hh_entry_base +room.cast.9=hh_human_50_acc_waist +text.crap.fixing=1 +cast.entry.26=hh_buffer +client.version.id=401 +cast.entry.27=hh_dynamic_downloader +moderator.cmds=[":alert x",":ban x",":kick x",":superban x",":shutup x",":unmute x",":transfer x",":softkick x"] +rosetta.warning.page.url=[HTTP_TAG]://classichabbo.com/client_popup/rosetta_info +link.format.mail.inbox=[HTTP_TAG]://classichabbo.com/me#mail +link.format.user.search=[HTTP_TAG]://classichabbo.com/me#habbo-search +room.cast.6=hh_human_50_shoe +room.cast.8=hh_human_50_acc_chest +cast.entry.36=hh_human_50_hats +avatar.editor.url=%predefined%/profile +cast.entry.22=hh_photo +link.format.habboclub=http://%predefined%/credits/club +link.format.club=[HTTP_TAG]://classichabbo.com/credits/club +cast.entry.23=hh_navigator +castload.retry.delay=20000 +link.format.mail.compose=[HTTP_TAG]://classichabbo.com/me#mail/compose/%recipientid%/%random%/ +interface.cmds.item.owner=["pick"] +link.format.pets=[HTTP_TAG]://classichabbo.com/hotel/pets +interface.cmds.user.personal=["badge","dance","wave","hcdance","userpage"] +paalu.key.list=[#bal1:"Q", #bal2:"E", #push1:"A", #push2:"D", #move1:"N", #move2:"M", #stabilise:"SPACE"] +pixels.enabled=true +link.format.tag.search=[HTTP_TAG]://classichabbo.com/tag/search?tag=%tag% +room.cast.small.1=hh_pets_50 +cast.entry.25=hh_cat_gfx_all +cast.entry.5=hh_patch_uk +cast.entry.9=hh_human_item +room.cast.12=hh_human_50_fx +cast.entry.37=hh_human_50_hair +interstitial.show.time=3000 +cast.entry.38=hh_human_50_acc_eye +cast.entry.8=hh_human_face +room.cast.private=["hh_room_private", "hh_room_landscapes"] +client.flood.timeout=1 +cast.entry.29=hh_poll +room.cast.7=hh_human_50_item +cast.entry.3=hh_shared +friend_request_options=Advanced options. +char.conversion.mac=[128:219,130:226,131:196,132:227,133:201,134:160,135:224,136:246,137:228,139:220,140:206,145:212,146:213,147:210,148:211,149:165,150:208,151:209,152:247,153:170,155:221,156:207,159:217,161:193,165:180,167:164,168:172,170:187,171:199,172:194,173:208,174:168,176:161,180:171,182:166,183:225,184:252,186:188,187:200,191:192,192:203,193:231,194:229,195:204,196:128,197:129,198:174,199:130,200:233,201:131,202:230,203:232,204:237,205:234,206:235,207:236,209:132,210:241,211:238,212:239,213:205,214:133,216:175,217:244,218:242,219:243,220:134,223:167,224:136,225:135,226:137,227:139,228:138,229:140,230:190,231:141,232:143,233:142,234:144,235:145,236:147,237:146,238:148,239:149,241:150,242:152,243:151,244:153,246:154,247:214,248:191,249:157,250:156,251:158,252:159,255:216] +profile.events.enabled=false +profile.fields.enabled=false +profiler.enabled=false +profile.core.enabled=false +profile.network.enabled=false +client.use.invites=1 +external.figurepartlist.txt=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/figuredata.xml +productdata.load.url=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/productdata.txt +hotelview.banner.url=[HTTP_TAG]://cdn.classichabbo.com/gamedata/banner +purse.transactions.active=1 +loading.bar.active=1 +client.textdata.utf8=1 +logout.disconnect.url=[HTTP_TAG]://classichabbo.com/account/disconnected?reason=logout&origin=popup +logout.concurrent.url= +[HTTP_TAG]://classichabbo.com/account/disconnected?reason=concurrentlogin&origin=popup +furnidata.load.url=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/furnidata.txt +dynamic.download.name.template=hh_furni_xx_%typeid%.cct +navigator.visible.public.root=3 +room.default.wall=201 +figure.draworder.xml.secure=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/draworder.xml +client.window.title=Habbo Hotel +navigator.private.default=4 +room.default.floor=111 +struct.font.tooltip=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.public.default=3 +stats.tracking.javascript.template=/\TCODE +struct.font.link=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#underline]] +flash.dynamic.download.url=[HTTP_TAG]://cdn.classichabbo.com/dcr/hof_furni/ +flash.dynamic.download.name.template=%revision%/%typeid%.swf +fuse.project.id=habbo_uk +figure.animation.xml=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/animation.xml +private.image.library.url=[HTTP_TAG]://cdn.classichabbo.com/c_images/ +dynamic.download.url=[HTTP_TAG]://cdn.classichabbo.com/dcr/hof_furni/ +figure.partsets.xml=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/partsets.xml +tutorial.name.new_user_flow=NUF_mini +external.figurepartlist.txt.secure=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/figuredata.xml +navigator.visible.private.root=4 +struct.font.italic=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#italic]] +language=en +image.library.url=[HTTP_TAG]://cdn.classichabbo.com/c_images/ +struct.font.plain=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +navigator.default.view=public +security.cast.load.url=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/sec.cct?t=%token% +logout.url=[HTTP_TAG]://cdn.classichabbo.com/account/disconnected?reason=logout&origin=popup +figure.draworder.xml=[HTTP_TAG]://cdn.classichabbo.com/dcr/v31/gamedata/draworder.xml +stats.tracking.javascript=google +struct.font.bold=[#font:"vb",#fontSize:9,#lineHeight:10,#color:rgb("#000000"),#ilk:#struct,#fontStyle:[#plain]] +struct.font.grey=[#font:"v", #fontSize:9,#lineHeight:10,#color:rgb("#666666"),#ilk:#struct,#fontStyle:[#italic]] +permitted.name.chars=1234567890qwertyuiopasdfghjklzxcvbnm-=?!@:., +dynamic.download.samples.template=sounds/%typeid%.cct +handitem.camera.select_handler=photo_interface +navigator.room.forward.timeout=0 +cast.entry.49=hh_tutorial_fix +client.allow.cross.domain=1 +client.notify.cross.domain=0 +handitem.right.45 = 57 +handitem.right.46 = 58 +handitem.right.47 = 59 +handitem.right.50 = 62 diff --git a/tools/gamedata/temp-furni.7z b/tools/gamedata/temp-furni.7z new file mode 100644 index 0000000000000000000000000000000000000000..6bda108909182b884eb6834ab1f74ccbf8d07fd2 GIT binary patch literal 59995 zcmV($K;yqRdc3bE8~_BYZIbC1>Hq)$0000a000000001AF*_dPSH8dmT>vZ*g;A4- zaMd6;9Pzd-<~lP{rl7)On^`1H;l0^n zuEYCze#M_&fU_&Ie+9;W(7sIQX4=r zMUSKIoLrKX*!e=*W1QHHYv2WkWXWF=mqK#%*-GAn$yVf71;Dk=g{xQcPar1Rm} z0STh0ztWv<@I&mkpnuR^*6@3O0Ov)=(s>#PqrHg}d}l?$@*z)Loc1ESbfa5y#u9Fj zQ`sAvzf61#VKDJSh9Fc5;3G$I1nk-AY0)Q&DB0h2XD5By5j84ZhL0(d{iXr66c(!+3Y zfqn*Adv(`+MC)~WCLutaB*iOIY?n_38k2u7=;1A%0X)_=kAmV5FZ;2`V=i5!_~UqX zCXOzO1~%fyK4a_170(+{4PwkCUH2%lkU)21qw_*A@u4yY7XRkGC=3Y1-ULO!;!P6* z#_R=XW|LFFiv&5#Yab4*v+!>FUD2{U>dLdw&8mR2&ZruzX8_*oeq1{|E5p)uP{Gc^ z5aBI z2Z%g8;XG5g`?dY-C9F%YyGaBCkn_sFyXvJhBP(6rUV7PY2y z?20xZ!0%Y5xCZ7DB8(#ShhDYA`dbrP4IZ2US)mDRB45LsFoK+9p&hu&>xmUs8r(f;Giu)4)zX#^c|imzg*deYc%1<8;nDpEJLWQ)UOL5`6yE% zN9nQSb*Sy2kHH{pfo_c#)!VvucYsr?*30V+z1}p4=&;kx5rJ!c%K4&Z;U2F64o?}T zuKG|u3IckVwidIkop#Poq9#eONqgE0v&y9%l*jBBuWYH-&2G!M;>XD)mh~_Iae`Re z{!g(dTHqIIM_%#_C0T=m+}L1#^N2i9atGre|7sWyDvZ^(bqv!D5K`&D?S`n7M26>!G zRb+|@WU`aJ2w4XMWBM1Gn3_|jpnc+6dbrEqaP@e}D}S~4?L_49bPsYeEU9J7{xq!MEU$(iD>j8lu7X)3a$UAIH) zfGcdjWInqzkU-by50ekiwmF4jQptB6>bdor{|KD_W$?l`NhhUG3pLTX0W>QsqEbxE z_o|RMe6I0fR$h&av=>?7$#AN1QG#*2KFZ0nc3&#gUc{_HYJ_B+QKa+HxkD)F2|&7MXT6}6tH35miYK(n3lgiKjjQH{4RR7=J@y zAx0_~81Zq`)w)cOjHQ{%t9w^N_>M?YBi{oaff#j*w;&Tk5`}?}R^%)l1~T-%g`azr zfp&;PLJi}fdfQcP6cTtz)_vB9Lsb>`kD3i`=Co5CuDdY`$k(tVsD`9(NViF!Uy3us zyMPJ7$>ip*s)_7AA%&~#_Rq2Oexk`nQ|4prsMQlLe}?(ik=7NZUrriSc^Ndl0sAgS z+B@tU3j$HJZgvtJ4a$|uo30#sY+$oAv>RlR{=Vs+Qh&BYo#eN~6LD_R_adV~%1AIM zz5etfCp~}RW>N533#z-U(ZBoSvjT) lCV(xd4R$m9VSCjJ>h+4$@r!D6FPO{O@+Vee*)- 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

      5XKoNzv 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\\" below.","Redeem a Habbo Voucher code here:","","#FAF8CC","#FAF8CC","scifi"]', NULL, 0), + (2, 0, -1, 3, 1, 0, 0, 'Furni Shop', 2, 3, '', '[]', '[]', NULL, 0), + (3, 0, 2, 2, 1, 1, 0, 'Spaces', 0, 0, 'spaces', '["catalog_spaces_headline1"]', '["Floors, wallpapers, landscapes - get a groovy combination to your room. Use our virtual room preview below to test out the combinations before you buy. Select the design and color you like and click Buy."]', NULL, 0), + (4, 0, -1, 7, 1, 1, 0, 'Habbo Exchange', 6, 11, 'default_3x3', '["catalog_bank_headline1","catalog_bank_teaser","catalog_special_txtbg1"]', '["The Habbo Exchange is where you can convert your Habbo Credits into a tradable currency. You can use this tradable currency to exchange Habbo Credits for Furni!","Click on the item you want for more information","Refundable Goods!"]', NULL, 0), + (5, 0, 2, 5, 1, 1, 0, 'Rollers', 0, 0, 'default_3x3', '["catalog_roller_headline1","","catalog_special_txtbg1"]', '["Move your imagination, while you move your Habbo! Perfect for mazes, games, for keeping your queue moving or making your pet go round in circles for hours. Available in multi-packs - the more you buy the cheaper the Roller! Pink Rollers out now!","Click on a Roller to see more information!","You can fit 30 Rollers in a user flat!"]', NULL, 0), + (6, 0, 2, 5, 1, 1, 0, 'Teleporters', 0, 0, 'default_3x3', '["catalog_doors_headline1","catalog_teleports_teaser2_en","catalog_special_txtbg1"]', '["Beam your user from one room to another with one of our cunningly disguised, space age teleports. Now you can link any two rooms together! Teleports are sold in pairs, so if you trade for them, check you\'re getting a linked pair.","Click on the item you want for more information","New Door Teleport!"]', NULL, 0), + (7, 0, 54, 10, 1, 1, 0, 'Pets', 0, 0, 'pets', '["catalog_pet_headline1"]', '["Fluff and whiskers, meows and woofs! You\'\'re about to enter the world of small creatures with furry features. Find a new friend from our ever-changing selection. From faithful servants to playful playmates - here\'s where you\'\'ll find them all.","Find your own pet!"]', NULL, 0), + (8, 0, 54, 10, 1, 1, 0, 'Pet Accessories', 0, 0, 'default_3x3', '["catalog_pet_headline2","ctlg_pet_teaser1","catalog_special_txtbg2"]', '["You\'\'ll need to take care of your pet to keep it happy and healthy. This section of the Catalogue has EVERYTHING you\'ll need to satisfy your pet\'s needs.","Click on the item you want for more information","You\'ll have to share it!"]', NULL, 0), + (9, 0, 2, 6, 1, 1, 0, 'Area', 0, 0, 'default_3x3', '["catalog_area_headline1","catalog_area_teaser1","catalog_special_txtbg2"]', '["Introducing the Area Collection... Clean, chunky lines set this collection apart as a preserve of the down-to-earth person. It\'s beautiful in its simplicity, and welcoming to everyone.","Click on the item you want for more information","Beautiful in it\'s simplicity!"]', NULL, 0), + (10, 0, 2, 7, 1, 1, 0, 'Gothic', 0, 0, 'default_3x3', '["catalog_gothic_headline1","catalog_gothic_teaser1"]', '["The Gothic section is full of medieval looking items. Create your own Gothic castle!","Click on the item you want for more information",""]', NULL, 0), + (11, 0, -1, 5, 1, 0, 0, 'Trax', 4, 4, 'default_3x3', '[]', '[]', NULL, 0), + (12, 0, 2, 8, 1, 1, 0, 'Candy', 0, 0, 'default_3x3', '["catalog_candy_headline1","catalog_candy_teaser1","catalog_special_txtbg2"]', '["Candy combines the cool, clean lines of the Mode collection with a softer, more soothing style. It\'\'s urban sharpness with a hint of the feminine.","Click on the item you want for more information","Relax! It\'s faux-fur."]', NULL, 0), + (13, 0, 2, 9, 1, 1, 0, 'Asian', 0, 0, 'default_3x3', '["catalog_asian_headline1","catalog_asian_teaser1"]', '["Introducing the Asian collection... These handcrafted items are the result of years of child slavery, some mixture of Ying and Yang and a mass-shipping from China. These authentic items fit in every oriental themed user flat.","Click on the item you want for more information",""]', NULL, 0), + (14, 0, 2, 10, 1, 1, 0, 'Iced', 0, 0, 'default_3x3', '["catalog_iced_headline1","catalog_iced_teaser1","catalog_special_txtbg2"]', '["Introducing the Iced Collection... For the person who needs no introduction. It\'s so chic, it says everything and nothing. It\'s a blank canvas, let your imagination to run wild!","Click on the item you want for more information"," These chairs are so comfy."]', NULL, 0), + (15, 0, 2, 11, 1, 1, 0, 'Lodge', 0, 0, 'default_3x3', '["catalog_lodge_headline1","catalog_lodge_teaser1","catalog_special_txtbg2"]', '["Introducing the Lodge Collection... Do you appreciate the beauty of wood? For that ski lodge effect, or to match that open fire... Lodge is the Furni of choice for people with that no frills approach to decorating.","Click on the item you want for more information"," I LOVE this wood Furni!"]', NULL, 0), + (16, 0, 2, 12, 1, 1, 0, 'Plasto', 0, 0, 'plasto', '["catalog_plasto_headline1",""]', '["Introducing The Plasto Collection... Can you feel that 1970s vibe? Decorate with Plasto and add some colour to your life. Choose a colour that reflect your mood, or just pick your favourite shade.","Select an item and a colour and buy!"]', NULL, 0), + (17, 0, 2, 13, 1, 1, 0, 'Pura', 0, 0, 'default_3x3', '["catalog_pura_headline1","catalog_pura_teaser1"]', '["Introducing the Pura Collection... This collection breathes fresh, clean air and cool tranquillity. Use it to create a special haven away from the hullabaloo of life outside the Hotel.","Click on the item you want for more information",""]', NULL, 0), + (18, 0, 2, 14, 1, 1, 0, 'Mode', 0, 0, 'default_3x3', '["catalog_mode_headline1","catalog_mode_teaser1","catalog_special_txtbg2"]', '["Introducing the Mode Collection... Steely grey functionality combined with sleek designer upholstery. The person that chooses this furniture is a cool urban cat - streetwise, sassy and so slightly untouchable.","Click on the item you want for more information","So shiny and new..."]', NULL, 0), + (19, 0, 2, 15, 1, 1, 0, 'Accessories', 0, 0, 'default_3x3', '["catalog_extra_headline1","catalog_extra_teaser1","catalog_special_txtbg2"]', '["Is your room missing something? Well, now you can add the finishing touches that express your true personality. And don\'t forget, like everything else, these accessories can be moved about to suit your mood.","Click on the item you want for more information","I love my rabbit..."]', NULL, 0), + (20, 0, 2, 16, 1, 1, 0, 'Bathroom', 0, 0, 'default_3x3', '["catalog_bath_headline1","catalog_bath_teaser1","catalog_special_txtbg2"]', '["Introducing the Bathroom Collection... Have some fun with the cheerful bathroom collection. Give yourself and your guests somewhere to freshen up - vital if you want to avoid nasty niffs. Put your loo in a corner though...","Click on the item you want for more information"," Every Habbo needs one!"]', NULL, 0), + (21, 0, 2, 18, 1, 1, 0, 'Plants', 0, 0, 'default_3x3', '["catalog_plants_headline1","catalog_plants_teaser1"]', '["Introducing the Plant Collection... Every room needs a plant! Not only do they bring a bit of the outside inside, they also enhance the air quality! Do we give a fuck? Up to you!","Click on the item you want for more information",""]', NULL, 0), + (22, 0, 2, 17, 1, 1, 0, 'Sports', 0, 0, 'default_3x3', '["catalog_sports_headline1","catalog_sports_teaser1"]', '["For the sporty people, here is the Sports section! Create your own hockey stadium!","Click on the item you want for more information",""]', NULL, 0), + (23, 0, 2, 19, 1, 1, 0, 'Rugs', 0, 0, 'default_3x3', '["catalog_rugs_headline1","catalog_rugs_teaser1","catalog_special_txtbg2"]', '["We have rugs for all occasions. All rugs are non-slip and washable.","Click on the item you want for more information","We have rugs for ANY room!"]', NULL, 0), + (24, 0, 2, 20, 1, 1, 0, 'Gallery', 0, 0, 'default_3x3', '["catalog_gallery_headline1","catalog_posters_teaser1","catalog_special_txtbg2"]', '["Adorn your walls with wondrous works of art, posters, plaques and wall hangings. We have items to suit all tastes, from kitsch to cool, traditional to modern.","Click on the item you want for more information","Brighten up your walls!"]', NULL, 0), + (25, 0, 2, 21, 1, 1, 0, 'Flags', 0, 0, 'default_3x3', '["catalog_flags_headline1","catalog_flags_teaser1","catalog_special_txtbg2"]', '["If you\'re feeling patriotic, get a flag to prove it. Our finest cloth flags will brighten up the dullest walls.","Click on the item you want for more information"," Flag this section for later!"]', NULL, 0), + (26, 0, 2, 22, 1, 1, 0, 'Trophies', 0, 0, 'trophies', '["catalog_trophies_headline1",""]', '["Reward your friends, or yourself with one of our fabulous glittering array of bronze, silver and gold trophies.\r\nFirst choose the trophy model (click on the arrows to see all the different styles) and then the metal (click on the seal below the trop",""]', NULL, 0), + (27, 0, 63, 3, 6, 1, 0, 'Club Gifts', 0, 0, 'default_3x3', '["catalog_club_headline1","catalog_hc_teaser"]', '["Welcome to the Club Shop! All \'Habbo Club membership gifts\' are available here, use them wisely you greedy cunt! We have sofas, butlers and all the happy stuff.","Click on the item you want for more information",""]', NULL, 0), + (28, 0, 62, 1, 6, 1, 0, 'Dragons', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["The Dragon page contains all of the Dragon Lamps.","Click on the item you want for more information",""]', NULL, 0), + (29, 0, 62, 1, 6, 1, 0, 'Sci-fi Doors', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (30, 0, 62, 1, 6, 1, 0, 'Parasols', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (31, 0, 62, 1, 6, 1, 0, 'Screens', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (32, 0, 62, 1, 6, 1, 0, 'Marquees', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (33, 0, 62, 1, 6, 1, 0, 'Pillows', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (34, 0, 62, 1, 6, 1, 0, 'Icecream', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (35, 0, 62, 1, 6, 1, 0, 'Smoke machines', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (36, 0, 62, 1, 6, 1, 0, 'Sci-Fi Ports', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (37, 0, 62, 1, 6, 1, 0, 'Amber Lamp', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (38, 0, 62, 1, 6, 1, 0, 'Fountains', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (39, 0, 62, 1, 6, 1, 0, 'Elephants', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (40, 0, 62, 1, 6, 1, 0, 'Fans', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (41, 0, 2, 4, 1, 1, 0, 'Camera', 0, 0, 'camera1', '["catalog_camera_headline1","campic_cam","","campic_film"]', '["With your Camera you can take pictures of just about anything in the hotel - your friend on the loo (hehe), your best dive in the Lido, or your room when you\'ve got it just right!\\r\\nA camera costs 10 Credits (two free photos included).","When you\'ve used your free photos, you\'ll need to buy more. Each roll of film takes five photos. Your Camera will show how much film you have left and loads the next roll automatically.\\r\\nEach Film (5 photos) costs: 6 Credits"]', NULL, 0), + (42, 0, 1000, 1, 1, 1, 0, 'Camera How-To', 0, 0, 'camera2', '["catalog_camera_headline1","campic_help"]', '["CAMERA FUNCTIONS\\r\\n1. Press this button to take a photo. 2. Photo cancel - for when you\'ve chopped off your friend\'s head! 3. Zoom in and out. 4. Photo counter - shows how much film you have left 5. Caption Box - write your caption before saving the photo. 6. Save - this moves the photo to your giant.\\r\\nYou can give photos to your friends, or put them on the wall like posters.",""]', NULL, 0), + (43, 0, 62, 1, 6, 1, 0, 'Inflatable Chairs', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (44, 0, 62, 1, 6, 1, 0, 'Rares Mixed', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (45, 0, 2, 23, 1, 1, 0, 'Executive', 0, 0, 'default_3x3', '["catalog_exe_headline1_en","catalog_exe_teaser_en"]', '["The Executive Furni is ideal for creating a sophisticated working environment, whether it be an office, a mafia headquarters or study!","Click on the item you want for more information",""]', NULL, 0), + (46, 0, 2, 24, 1, 1, 0, 'Alhambra', 0, 0, 'soundmachine', '["catalog_alh_headline2","catalog_alh_teaser2","catalog_special_txtbg1"]', '["The Palace of Alhambra has appeared and with it this exotic and beautifully crafted range of Arabian Furni. Luxury seating and gourmet food combine to make your room sparkle with riches.","Click on the item you want for more information","Get your Alhambrian goodies now!"]', NULL, 0), + (51, 0, -1, 2, 1, 1, 0, 'Collectables', 3, 2, 'default_3x3', '["catalog_cltbs_header1_uk","catalog_cltbs_teaser_en"]', '["Collect your way to the riches! Collectables are special furniture sold only for a limited period of time. They cost a wee bit more, but make up with an amazing trade value.",""," Collect your way to riches!"]', NULL, 0), + (53, 0, 2, 3, 1, 1, 0, 'Windows', 0, 0, 'default_3x3', '["ctlg_windows_headline1_en","ctlg_windows_teaser1_en","catalog_special_txtbg2"]', '["Let some sunshine in! Our windows come in many styles to give a unique look to your room. Who said your room can\'t have a view?","Click on the item you want for more information","Ooh, new view!"]', NULL, 0), + (54, 0, -1, 4, 1, 0, 0, 'Pets Shop', 8, 7, '', '[]', '[]', NULL, 0), + (55, 0, 54, 11, 1, 1, 0, 'Pets Info', 0, 0, 'pets2', '["catalog_pet_headline1","ctlg_pet_note"]', '["Pets are inhabitants of Habbo Hotel too, so each pet owner needs to know a bit about them. Look after your pet by looking through our key points below.","A few things you should know:","- You can only put it down in one of your rooms.\\r\\n- There can be 3 pets in each room.\\r\\n- The basket is your pet\'s home. If you pick it up, the pet will go back in your hand.\\r\\n- Every time you visit this page, you will go back to a different selection of pets.\\r\\n- Your pet will sleep more when it gets old\\r\\n- You cannot trade your pet"]', NULL, 0), + (56, 0, -1, 6, 1, 0, 0, 'Pixel Shop', 5, 5, '', '[]', '[]', NULL, 0), + (57, 0, 56, 3, 1, 1, 0, 'Hello Furni', 0, 0, 'pixelrent', '["catalog_hello_header1_en","catalog_hello_teaser1_en"]', '["Hello Furni is available with Pixels and is perfect if you are decorating your room for the very first time. The Furni is yours to keep and therefore cannot be traded.","Click on the item you want for more information"," "]', NULL, 0), + (58, 0, -1, 9, 1, 0, 0, 'Ecotron', 7, 3, '', '[]', '[]', NULL, 0), + (59, 0, 2, 27, 1, 1, 0, 'Country', 0, 0, 'default_3x3', '["catalog_country_header1_en","catalog_country_teaser1_en","catalog_special_txtbg2"]', '["Let\'s leave the busy city streets and head over to the wide abyss of golden wheat, emerald fields and home grown, organic vegetables. Everything you need to create a farm!","Click on the item you want for more information","Who\'d be a crow, eh?"]', NULL, 0), + (60, 0, 56, 2, 1, 1, 0, 'Special Effects', 0, 0, 'pixeleffects', '["catalog_pixeleffects_headline1_en","catalog_pxl_teaser1_en"]', '["Tune your character with cool effects that fit the occasion. Do you want to fly away with the red carpet or be in the spotlight? Now is your chance!\\r\\n\\r\\nThe effects can be activated in your badge dialog under effects tab.",""," "]', NULL, 0), + (61, 0, 56, 4, 1, 1, 0, 'Automobile', 0, 0, 'cars', '["catalog_automobile_header1_en","catalog_automobile_teaser1_en"]', '["Every Habbo needs a car effect! Not only do they bring a bit of the outside inside, they also enhance the air quality! And what better gift for a friend than a beautiful traffic sign or elegant pile of tires...","Click on the item you want for more information."," "]', NULL, 0), + (62, 0, -1, 11, 6, 0, 0, 'Admin Shop', 1, 6, '', '[]', '[]', NULL, 0), + (63, 0, -1, 8, 1, 1, 0, 'Habbo Club', 9, 7, 'club1', '["catalog_club_headline1","clubcat_pic"]', '["Welcome to Habbo Club - the members only club that all the best Habbos belong to!","Every member of Habbo Club gets priority access to the hotel. So, if the hotel\'s full up, you\'ll get to the front of the queue automatically - no waiting around! And you\'ll get exclusive clothes, hair colours, furni, special guest room layouts and more besides. Normal Habbos will not have any of these.","How do I join? Use the Navigator to go to \'Hotel View\' and click on the Habbo Club icon. Habbo Club costs 20 Credits a month. We\'ll remind you when your membership is about to run out.","Well, what are you waiting for? Join Habbo Club today!"]', NULL, 0), + (64, 0, 63, 2, 1, 1, 1, 'Club Shop', 0, 0, 'default_3x3', '["catalog_club_headline1","catalog_hc_teaser","catalog_special_txtbg1"]', '["NEW Habbo Club Furni range. Allow these elegant delights to make your room sophisticated and humble. They look great placed with your monthly gifts!","Click on the item you want for more information","For Habbo Club members only!"]', NULL, 0), + (65, 0, 63, 1, 1, 1, 0, 'Club Info', 0, 0, 'club2', '["catalog_club_headline1","club_pos","","club_neg"]', '["What happens when my Habbo Club runs out?","If your Habbo Club runs out, you WILL be able to keep any rooms you made with a Club layout and the Habbo Club Furni is yours to keep.","If your Habbo Club runs out you WON\'T be able to wander around with a cool HC badge, the funky clothes and your hair will vanish from your Habbo, you won\'t be able to do chose HC rooms layouts in the Room-O-Matics, you\'ll receive no new HC Furni and worst all, you won\'t be able to jump the queue if the Hotel\'s Full!","Stay in Habbo Club for more than a year and you\'ll get a special sparkly BADGE!"]', NULL, 0), + (66, 0, 2, 28, 1, 1, 0, 'Glass', 0, 0, 'default_3x3', '["catalog_glass_headline1","catalog_glass_teaser1"]', '["You can really open up a space with this stylish glass furniture, just don\'t walk into it!","Click on the item you want for more information",""]', NULL, 0), + (67, 0, 2, 29, 1, 1, 0, 'Greek', 0, 0, 'default_3x3', '["catalog_greek_header1","catalog_greek_teaser1"]', '["Be transported back to ancient Greece with a couple of thousand pounds and British Airways. Until then, build your own panthenon with our realist Greek range!","Click on the item you want for more information",""]', NULL, 0), + (68, 0, 2, 30, 1, 1, 0, 'Romantique', 0, 0, 'default_3x3', '["catalog_romantique_headline1","catalog_romantique_teaser1"]', '["The Romantique range features Grand Pianos, old antique lamps and tables. It is the ideal range for setting a warm and loving mood in your room. Spruce up your room and invite that special someone over. Now featuring the extra special COLOUR edition.","Click on the item you want for more information",""]', '12-01', 2592000), + (69, 0, 2, 31, 1, 1, 0, 'Arctic', 0, 0, 'soundmachine', '["catalog_arc_header1_en","catalog_arc_teaser1_en"]', '["Stay cool (or warm with our campfire!) and create your own Winter Wonderland or Humble Homeland for your penguins.","Click on the item you want for more information",""]', NULL, 0), + (70, 0, 2, 32, 1, 1, 0, 'Bensalem', 0, 0, 'default_3x3', '["catalog_header_bensalem","catalog_teaser_bensalem"]', '["The Lost City of Bensalem has been located beneath the sea. We have worked hard to salvage all kinds of fantastic furni, which is now all available below.","Click on the item you want for more information",""]', NULL, 0), + (71, 0, 2, 33, 1, 1, 0, 'Neon', 0, 0, 'default_3x3', '["catalog_neon_header1_en","catalog_neon_teaser1_en"]', '["New years eve, birthdays and every other day of the year, there\'s always an excuse for a party! So, why don\'t you buy some Neon furni!?","Click on the item you want for more information",""]', NULL, 0), + (72, 0, 2, 34, 1, 1, 0, 'Lost Tribe', 0, 0, 'default_3x3', '["catalog_header_lost_tribe","LT_teaser_en"]', '["Start your own tribal village with our ancient furniture, all carved from hard wearing stone. NOTE: Lava is hot, get an adult to help you.","Click on the item you want for more information",""]', NULL, 0), + (73, 0, 2, 35, 1, 1, 0, 'Virus', 0, 0, 'default_3x3', '["catalog_vir_header1_en","catalog_vir_teaser_en","catalog_special_txtbg1"]', '["A virus is spreading through Habbo Hotel. Many casualties reported and it could get much worse! Whether you are hoping to help infected Habbos or look after number one, get your clean hands on our terrifying Infection Furni.","Click on the item you want for more information","Latest virus news on TV now!"]', NULL, 0), + (74, 0, 58, 9, 1, 1, 0, 'Ecotron', 0, 0, 'recycler', '["catalog_recycler_headline3_en"]', '["Become an Eco-warrior\\\\r\\\\nRecycle your worthless stuff and be rewarded with a random prize. Check out the prizes and the instructions for recycling.\\\\r\\\\nDrag 5 items to the boxes below and click recycle!"]', NULL, 0), + (75, 0, 58, 9, 1, 1, 0, 'Rewards', 0, 0, 'recycler_prizes', '["catalog_recycler_headline3_en","",""]', '["What are the prizes? Ecotron box may contain one of these:","","What are the prizes? Ecotron box may contain one of these:"]', NULL, 0), + (76, 0, 58, 11, 6, 1, 0, 'Ecotron Shop', 0, 0, 'default_3x3', '["catalog_recycler_headline4_en",""]', '["Yet another Ecotron page!","",""]', NULL, 0), + (77, 0, 58, 10, 1, 1, 0, 'Instructions', 0, 0, 'pets2', '["catalog_recycler_headline5_en","ctlg_ecotron_box2"]', '["The Ecotron is a furni recycler. Get rid of old furni... what will you get in return? It\'s a surprise! Become a Habbo eco-warrior. No refunds!","How to use the Ecotron?","1. Just drag 5 items from your hand to the Ecotron. One item / square. Recyclable items are marked in your inventory with an image. When you have 5 items in the boxes, click the \\"Recycle\\" button. You can now find the Ecotron prize box from your hand.\\r\\n\\r\\n2. Click the box to see its tag. Open the box, or trade it unopened. The timer shows you how long you have to wait before you can recycle more items. Check the prizes before you recycle- don\'t be surprised by the surprise!"]', NULL, 0), + (78, 0, 2, 36, 1, 1, 0, 'Kitchen', 0, 0, 'default_3x3', '["catalog_header_kitchen","catalog_teaser_kitchen"]', '["Create your dream kitchen with this exquisite range of matured pine and marble furniture.","Click on the item you want for more information",""]', NULL, 0), + (79, 0, 2, 37, 1, 1, 0, 'Christmas 09', 0, 0, 'default_3x3', '["catalog_xmas_headline1","catalog_xmas_teaser"]', '["Get yourself into the Christmas spirit with our selection of festive furni! From baubles to reindeer poo, we\'ve got it all!","Click on the item you want for more information",""]', '12-01', 2592000), + (80, 0, 2, 39, 1, 1, 0, 'Urban', 0, 0, 'default_3x3', '["urban_header_en","urban_teaser_en"]', '["New York City styled furni range, Urban is perfect for any street, alleyway or road. Rubbish bins, street lights and benches, all the Urban furniture you need!","Click on the item you want for more information",""]', NULL, 0), + (81, 0, 2, 39, 1, 1, 0, 'Grunge', 0, 0, 'default_3x3', '["catalog_grunge_headline1","catalog_grunge_teaser"]', '["The Grunge range will get your bedroom looking just the way you like it - organised, neat and tidy!","Click on the item you want for more information",""]', NULL, 0), + (82, 0, 2, 40, 1, 1, 0, 'Shalimar', 0, 0, 'default_3x3', '["catalog_shal_header1_en","catalog_shal_teaser_en"]', '["Everyone loves Bollywood! Watch out for rose petals!","Click on the item you want for more information",""]', NULL, 0), + (83, 0, 51, 2, 6, 1, 0, 'Collectables Shop', 0, 0, 'default_3x3', '["catalog_cltbs_header1_uk","catalog_cltbs_teaser_en"]', '["Collect your way to the riches! Collectables are special furniture sold only for a limited period of time. They cost a wee bit more, but make up with an amazing trade value.",""," Collect your way to riches!"]', NULL, 0), + (84, 0, 11, 5, 1, 1, 0, 'How to make music?', 0, 0, 'default_3x3', '["catalog_djshop_headline1","catalog_djshop_teaser1"]', '["You must own a trax machine and at least one trax pax. Place the trax machine in your room and the trax pax in your hand. Double click the trax machine, click \\"Trax editor\\" and start editing music. When ready, save, select the tune, turn on the trax machine and enjoy.","Cool, my own music!",""]', NULL, 0), + (85, 0, 11, 5, 1, 1, 0, 'Ambient', 0, 0, 'soundmachine', '["catalog_trx_header1_en","catalog_trx_teaser1"]', '["Welcome to the Ambient Trax Store! With groovy beats and chilled out melodies, this is the section for some cool and relaxing tunes.",""]', NULL, 0), + (86, 0, 11, 5, 1, 1, 0, 'Dance', 0, 0, 'soundmachine', '["catalog_trx_header2_en","catalog_trx_teaser2"]', '["Welcome to the Dance Trax Store! With funky beats and catchy melodies, this is the section for every clubber to indulge in.",""]', NULL, 0), + (87, 0, 11, 5, 1, 1, 0, 'Rock', 0, 0, 'soundmachine', '["catalog_trx_header3_en","catalog_trx_teaser3"]', '["Welcome to the Rock Trax Store! With heavy beats and rockin\' riffs, this is the section for every rock fan to experiment with.",""]', NULL, 0), + (88, 0, 11, 5, 1, 1, 0, 'SFX', 0, 0, 'soundmachine', '["catalog_trx_header4_en","catalog_trx_teaser4"]', '["Welcome to the SFX Trax Store! With crazy sounds and weird noises, this is the section for every creative room builder to indulge in.",""]', NULL, 0), + (89, 0, 11, 5, 1, 1, 0, 'Urban', 0, 0, 'soundmachine', '["catalog_trx_header5_en","catalog_trx_teaser5"]', '["Welcome to the Urban Trax Store! With hip hop beats and RnB vocals, this is the section for every city bopper to indulge in.",""]', NULL, 0), + (90, 0, 2, 40, 1, 1, 0, 'Sci-Fi', 0, 0, 'default_3x3', '["sf_header_en","sf_teaser_en"]', '["Blipblop blip blip blip.. Oooh.. what\\\'s this button do?.. You can find out exactly what it does with our new Scifi range, batteries included!","Click on the item you want for more information",""]', NULL, 0), + (91, 0, 2, 40, 1, 1, 0, 'American Idol', 0, 0, 'default_3x3', '["catalog_idol_header1","catalog_idol_teaser1"]', '["Create your own American Idol world in Habbo with this exclusive AI furniture set.","Click on the item you want for more information",""]', NULL, 0), + (92, 0, 56, 1, 1, 1, 0, 'Rentals', 0, 0, 'pixelrent', '["catalog_pixelrentals_header_en","catalog_pxl_teaser3_en"]', '["Crate a cool room, with these rocking room effects you can expand your friends experience.","",""]', NULL, 0), + (93, 0, 56, 1, 1, 1, 0, 'Pixel Collectable', 0, 0, 'cars', '["catalog_pixeldeals_headline1_en","catalog_pxl_teaser2_en"]', '["The Pixel Collectable is the ultimate collectors item requiring a mammoth 2000 pixels to purchase.","",""]', NULL, 0), + (94, 0, 62, 1, 6, 1, 0, 'Pixel Collectables', 0, 0, 'cars', '["catalog_pixeldeals_headline1_en","catalog_pxl_teaser2_en"]', '["The admin page for all the pixel collectables.","",""]', NULL, 0), + (95, 0, 63, 4, 1, 1, 1, 'One Way Gates', 0, 0, 'cars', '["catalog_onewaygates_en",""]', '["As a token of gratitude for Habbo Club members, you can now purchase One Way Gates without having to wait for them to appear in the catalogue!","Click on the item you want for more information",""]', NULL, 0), + (96, 0, 2, 41, 1, 1, 0, 'Tiki', 0, 0, 'soundmachine', '["catalog_tiki_header1_en","tiki_teaser"]', '["Go a little bit exotic with your food choices with these items from our much-loved Tiki range!","Click on the item you want for more information",""]', NULL, 0), + (97, 0, 2, 42, 1, 1, 0, 'Twilight', 0, 0, 'default_3x3', '["catalog_twilight_header_en","catalog_teaser_twilight"]', '["The Twilight Saga - New Moon is here! To celebrate the arrival of the Cullens, some special furniture has been made so you can create your own Twilight rooms.","Click on the item you want for more information",""]', NULL, 0), + (98, 0, 2, 43, 1, 1, 0, 'Habbowood', 0, 0, 'default_3x3', '["ctlg_habbowood_headline1_en","ctlg_habbowood_teaser1_en"]', '["Presenting the all new Habbowood Furni range! Whether it\'s a boulevard of stars, a cinema, a theatre, a dressing room or an entire film studio - the Habbowood Furni ticks all the stage exit right boxes!","Click on the item you want for more information",""]', '02-01', 2419200), + (99, 0, 2, 44, 1, 1, 0, 'Love', 0, 0, 'default_3x3', '["catalog_love_headline1","catalog_love_teaser1"]', '["It is Valentine\'s Day and time to express your love and affection for your friends. Go wild and leave anonymous Heart Stickies all over the hotel!","Click on the item you want for more information",""]', '02-01', 2419200), + (100, 0, 2, 44, 1, 1, 0, 'Valentines', 0, 0, 'default_3x3', '["catalog_va2_headline1_en","catalog_va2_teaser_en","catalog_special_txtbg2"]', '["Valentine\'s Love Furni will set the right mood in your room this week. Avaliable until Monday so don\'t miss out on the Heart Sofa - one of the most popular items in Habbo - and Heart Stickies","Mood Light - Turn the lights down low this Valentine\'s","I prefer White and Purple Roses :o"]', NULL, 0), + (101, 0, 2, 44, 1, 1, 0, 'Habboween', 0, 0, 'default_3x3', '["catalog_halloween_headline1","catalog_halloween_teaser","catalog_special_txtbg2"]', '["Yes, it\'\'s a spookfest! Get your boney hands on our creepy collection of ghoulish goodies. But be quick - they\'\'\'ll be gone from the Catalogue after two weeks!","Click an item for more information","Halloween is My day!"]', '10-01', 2592000), + (102, 0, 2, 44, 1, 1, 0, 'Relax', 0, 0, 'default_3x3', '["catalog_relax_headline1_en","catalog_relax_teaser1_en",""]', '["Relax after a busy day in the Welcome Lounge. Light a few candles, and chill out with a good read in a wicker chair. We understand the needs of a Habbo with a hectic lifestyle!","Click an item for more information",""]', NULL, 0), + (103, 0, 2, 44, 1, 1, 0, 'Japanese', 0, 0, 'default_3x3', '["catalog_jap_headline2_en","catalog_jap_teaser3_en",""]', '["We have sushi, tatami and katana\\\'s! I have no idea what the difference is, but I sure know its Japanese! Fulfil your fantasies and buy some today!","Click an item for more information",""]', NULL, 0), + (104, 0, 2, 44, 1, 1, 0, 'Haunted House', 0, 0, 'default_3x3', '["catalog_halloween_headline2","catalog_halloween_teaser2_en",""]', '["The creepy house on top of the hill has swung open its haunted doors to let you inside. With creaky floors and even creakier doors, you better watch your step in this eerie haunted mansion.","Click an item for more information",""]', '10-01', 2592000), + (105, 0, 2, 44, 1, 1, 0, 'Igor', 0, 0, 'default_3x3', '["catalog_igor_headine2_en","catalog_igor_teaser1_en",""]', '["Igor\'s back and he means business. Celebrating the release of IGOR on DVD, he\'s Introducing FOUR new additions to the IGOR furni line. These include a Flask, Science Desk, Wall Poster and Evil Bone!","Click an item for more information",""]', NULL, 0), + (106, 0, 2, 44, 1, 1, 0, 'Spiderwick', 0, 0, 'default_3x3', '["catalog_spw_header1_en","catalog_spw_teaser2_en",""]', '["The Spiderwick Exhibition has arrived at the \\"Museum of Invention\\" in Habbo Hotel. Grab yourself a limited edition souvenir item of Furni below before it\'s too late!","Click an item for more information",""]', NULL, 0), + (107, 0, 2, 44, 1, 1, 0, 'Summer', 0, 0, 'default_3x3', '["catalog_sum_headline1_en","catalog_sum_teaser1_en",""]', '["Phwoar! Start up the barbie! This range has everything you need for the perfect summer garden!","Click an item for more information",""]', NULL, 0), + (108, 0, 2, 44, 1, 1, 0, 'Moodlights', 0, 0, 'default_3x3', '["catalog_dimmers_header1_en","catalog_dimmer_teaser_en",""]', '["Our range of moodlights allow you to control the atmosphere and transform your room in just a click. What will your room look like? Click the switch and find out now!","Click an item for more information",""]', NULL, 0), + (109, 0, 62, 1, 6, 1, 0, 'Various Ads', 0, 0, 'default_3x3', '["catalog_rares_headline1","",""]', '["Miscelaneous advertisement furniture","Click an item for more information",""]', NULL, 0), + (110, 0, 2, 45, 1, 1, 0, 'Memorial', 0, 0, 'default_3x3', '["catalog_limited_headline1_en","catalog_limited_teaser_en","catalog_special_txtbg2"]', '["Available this week only and NEVER to be sold again, special Memorial Furni. As we have a fond farewell to Old Habbo and welcome New Habbo, bag yourself a highly collectible momento.","Click an item for more details","Habbo Memorial"]', NULL, 0), + (111, 0, 62, 1, 6, 1, 0, 'Extra Rollers', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (112, 0, 2, 44, 1, 1, 0, 'Diner', 0, 0, 'default_3x3', '["catalog_diner_header_en","catalog_diner_teaser_en",""]', '["Get cookin\' with Diner Furni! Serve up your eggs \'n\' grits on new Yellow or Aquamarine Diner Furni, avaliable for a limited time only!","Click an item for more information",""]', NULL, 0), + (113, 0, 62, 1, 6, 1, 0, 'Sleeping Bags', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (114, 0, 62, 1, 6, 1, 0, 'Pillars', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (116, 0, 62, 1, 6, 1, 0, 'Penguins', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (117, 0, 2, 36, 1, 1, 0, 'Christmas 06', 0, 0, 'default_3x3', '["catalog_xmas_headline1","catalog_xmas_teaser"]', '["Get yourself into the Christmas spirit with our selection of festive furni! From baubles to reindeer poo, we\'ve got it all!","Click on the item you want for more information",""]', '12-01', 2592000), + (118, 0, 62, 1, 6, 1, 0, 'Various Misc', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (119, 0, 2, 36, 1, 1, 0, 'Christmas 07', 0, 0, 'default_3x3', '["catalog_xmas_headline1","catalog_xmas_teaser"]', '["Get yourself into the Christmas spirit with our selection of festive furni! From baubles to reindeer poo, we\'ve got it all!","Click on the item you want for more information",""]', '12-01', 2592000), + (120, 0, 62, 1, 6, 1, 0, 'Recycler (Old)', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (121, 0, 62, 1, 6, 1, 0, 'Super Rares', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (122, 0, 62, 1, 6, 1, 0, 'Expensive Rares', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (123, 0, 124, 1, 6, 1, 0, 'Child Line', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (124, 0, -1, 12, 6, 0, 0, 'Advertisements', 6, 3, '', '[]', '[]', NULL, 0), + (125, 0, 124, 2, 6, 1, 0, 'Calippo', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (126, 0, 124, 2, 6, 1, 0, 'Habbo Mall', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (127, 0, 62, 2, 6, 1, 0, 'StrayPixels', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (128, 0, 62, 0, 6, 1, 0, 'Super Trophies', 0, 0, 'trophies', '["catalog_trophies_headline1",""]', '["Reward your friends, or yourself with one of our fabulous glittering array of bronze, silver and gold trophies.\r\nFirst choose the trophy model (click on the arrows to see all the different styles) and then the metal (click on the seal below the trop",""]', NULL, 0), + (132, 0, 62, 1, 6, 1, 0, 'Premium Rares', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (133, 0, 124, 2, 6, 1, 0, 'Mountain Dew', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0), + (136, 0, 2, -10, 1, 1, 0, 'Easter', 0, 0, 'default_3x3', '["catalog_easter_headline1","catalog_easter_teaser1",""]', '["\'Egg\'cellent furni - Bouncing bunnies, fluffy chicks, choccy eggs... Yep, it\'s Easter!\\rCelebrate with something \'eggs\'tra special from our Easter range. But hurry - it\'s not here for long this year!","Click on the item you want for more information","\'"]', NULL, 0), + (142, 0, 62, 3, 6, 1, 0, 'Streets of Bobba', 0, 0, 'default_3x3', '["catalog_rares_headline1",""]', '["Yet another rares page.","Click on the item you want for more information",""]', NULL, 0); +/*!40000 ALTER TABLE `catalogue_pages` ENABLE KEYS */; + +-- Dumping structure for table havana.catalogue_sale_badges +CREATE TABLE IF NOT EXISTS `catalogue_sale_badges` ( + `sale_code` varchar(250) NOT NULL, + `badge_code` varchar(250) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table havana.catalogue_sale_badges: ~0 rows (approximately) +DELETE FROM `catalogue_sale_badges`; +/*!40000 ALTER TABLE `catalogue_sale_badges` DISABLE KEYS */; +INSERT INTO `catalogue_sale_badges` (`sale_code`, `badge_code`) VALUES + ('garden_seed_cmp', 'EAS02'); +/*!40000 ALTER TABLE `catalogue_sale_badges` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_alerts +CREATE TABLE IF NOT EXISTS `cms_alerts` ( + `id` bigint(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `alert_type` enum('HC_EXPIRED','PRESENT','TUTOR_SCORE','CREDIT_DONATION') NOT NULL, + `message` text DEFAULT '', + `is_disabled` tinyint(11) NOT NULL DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_alerts: ~0 rows (approximately) +DELETE FROM `cms_alerts`; +/*!40000 ALTER TABLE `cms_alerts` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_alerts` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_forums_read_replies +CREATE TABLE IF NOT EXISTS `cms_forums_read_replies` ( + `user_id` int(11) NOT NULL, + `reply_id` int(11) NOT NULL, + KEY `user_id` (`user_id`), + KEY `reply_id` (`reply_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_forums_read_replies: ~0 rows (approximately) +DELETE FROM `cms_forums_read_replies`; +/*!40000 ALTER TABLE `cms_forums_read_replies` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_forums_read_replies` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_forum_replies +CREATE TABLE IF NOT EXISTS `cms_forum_replies` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `thread_id` int(11) NOT NULL, + `message` text NOT NULL, + `poster_id` int(11) NOT NULL, + `is_edited` tinyint(1) NOT NULL DEFAULT 0, + `is_deleted` tinyint(1) NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `modified_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `thread_id` (`thread_id`), + KEY `poster_id` (`poster_id`), + KEY `created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_forum_replies: ~0 rows (approximately) +DELETE FROM `cms_forum_replies`; +/*!40000 ALTER TABLE `cms_forum_replies` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_forum_replies` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_forum_threads +CREATE TABLE IF NOT EXISTS `cms_forum_threads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `topic_title` varchar(32) NOT NULL, + `poster_id` int(11) NOT NULL, + `is_open` int(1) NOT NULL DEFAULT 1, + `is_stickied` int(1) NOT NULL DEFAULT 0, + `views` int(11) NOT NULL DEFAULT 0, + `group_id` int(11) NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `modified_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + KEY `group_id` (`group_id`), + KEY `poster_id` (`poster_id`), + KEY `created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_forum_threads: ~0 rows (approximately) +DELETE FROM `cms_forum_threads`; +/*!40000 ALTER TABLE `cms_forum_threads` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_forum_threads` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_guestbook_entries +CREATE TABLE IF NOT EXISTS `cms_guestbook_entries` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL DEFAULT 0, + `home_id` int(11) NOT NULL DEFAULT 0, + `group_id` int(11) NOT NULL DEFAULT 0, + `message` longtext NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + KEY `id` (`id`), + KEY `group_id` (`group_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_guestbook_entries: ~0 rows (approximately) +DELETE FROM `cms_guestbook_entries`; +/*!40000 ALTER TABLE `cms_guestbook_entries` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_guestbook_entries` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_minimail +CREATE TABLE IF NOT EXISTS `cms_minimail` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `target_id` int(11) NOT NULL, + `sender_id` int(11) NOT NULL, + `to_id` int(11) NOT NULL, + `is_read` tinyint(1) NOT NULL DEFAULT 0, + `subject` varchar(100) NOT NULL DEFAULT '', + `message` text NOT NULL, + `date_sent` datetime NOT NULL DEFAULT current_timestamp(), + `conversation_id` int(11) NOT NULL DEFAULT 0, + `is_trash` tinyint(1) NOT NULL DEFAULT 0, + `is_deleted` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `sender_id` (`sender_id`), + KEY `to_id` (`to_id`), + KEY `conversation_id` (`conversation_id`), + KEY `is_trash` (`is_trash`), + KEY `is_deleted` (`is_deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_minimail: ~0 rows (approximately) +DELETE FROM `cms_minimail`; +/*!40000 ALTER TABLE `cms_minimail` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_minimail` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_recommended +CREATE TABLE IF NOT EXISTS `cms_recommended` ( + `recommended_id` int(11) NOT NULL, + `type` enum('GROUP','ROOM') NOT NULL, + `is_staff_pick` tinyint(1) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_recommended: ~0 rows (approximately) +DELETE FROM `cms_recommended`; +/*!40000 ALTER TABLE `cms_recommended` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_recommended` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_stickers +CREATE TABLE IF NOT EXISTS `cms_stickers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `x` varchar(6) NOT NULL DEFAULT '0' COMMENT 'left', + `y` varchar(6) NOT NULL DEFAULT '0' COMMENT 'top', + `z` varchar(6) NOT NULL DEFAULT '0' COMMENT 'z-index', + `sticker_id` int(11) NOT NULL, + `skin_id` int(11) NOT NULL DEFAULT 0, + `group_id` int(11) NOT NULL DEFAULT -1, + `text` longtext NOT NULL DEFAULT '', + `is_placed` tinyint(1) NOT NULL DEFAULT 0, + `extra_data` varchar(11) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `user_id` (`user_id`), + KEY `group_id` (`group_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_stickers: 0 rows +DELETE FROM `cms_stickers`; +/*!40000 ALTER TABLE `cms_stickers` DISABLE KEYS */; +/*!40000 ALTER TABLE `cms_stickers` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_stickers_catalogue +CREATE TABLE IF NOT EXISTS `cms_stickers_catalogue` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` mediumtext NOT NULL, + `description` varchar(255) NOT NULL, + `type` varchar(1) NOT NULL, + `data` mediumtext NOT NULL, + `price` int(11) NOT NULL, + `amount` int(11) NOT NULL DEFAULT 1, + `category_id` int(11) NOT NULL, + `min_rank` int(11) NOT NULL DEFAULT 1, + `widget_type` int(11) DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=11338 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_stickers_catalogue: 1,488 rows +DELETE FROM `cms_stickers_catalogue`; +/*!40000 ALTER TABLE `cms_stickers_catalogue` DISABLE KEYS */; +INSERT INTO `cms_stickers_catalogue` (`id`, `name`, `description`, `type`, `data`, `price`, `amount`, `category_id`, `min_rank`, `widget_type`) VALUES + (2, 'Trax Sfx', 'desc', '1', 'trax_sfx', 1, 1, 102, 1, 0), + (3, 'Trax Disco', 'desc', '1', 'trax_disco', 1, 1, 102, 1, 0), + (4, 'Trax 8 bit', 'desc', '1', 'trax_8_bit', 1, 1, 102, 1, 0), + (5, 'Trax Electro', 'desc', '1', 'trax_electro', 1, 1, 102, 1, 0), + (6, 'Trax Reggae', 'desc', '1', 'trax_reggae', 1, 1, 102, 1, 0), + (7, 'Trax Ambient', 'desc', '1', 'trax_ambient', 1, 1, 102, 1, 0), + (8, 'Trax Bling', 'desc', '1', 'trax_bling', 1, 1, 102, 1, 0), + (9, 'Trax Heavy', 'desc', '1', 'trax_heavy', 1, 1, 102, 1, 0), + (10, 'Trax Latin', 'desc', '1', 'trax_latin', 1, 1, 102, 1, 0), + (11, 'Trax Rock', 'desc', '1', 'trax_rock', 1, 1, 102, 1, 0), + (12, 'Rain Background', 'desc', '4', 'bg_rain', 3, 1, 104, 1, 0), + (13, 'Notes', 'desc', '3', 'stickienote', 2, 5, 101, 1, 0), + (14, 'Serpentine Darkblue Background', 'desc', '4', 'bg_serpentine_darkblue', 3, 1, 104, 1, 0), + (15, 'Serpentine Darkred Background', 'desc', '4', 'bg_serpentine_darkred', 3, 1, 104, 1, 0), + (16, 'Serpentine Background', 'desc', '4', 'bg_serpentine_1', 3, 1, 104, 1, 0), + (17, 'Serpentine Background 2', 'desc', '4', 'bg_serpentine_2', 3, 1, 104, 1, 0), + (18, 'Denim Background', 'desc', '4', 'bg_denim', 3, 1, 104, 1, 0), + (19, 'Lace Background', 'desc', '4', 'bg_lace', 3, 1, 104, 1, 0), + (20, 'Stitched Background', 'desc', '4', 'bg_stitched', 3, 1, 104, 1, 0), + (21, 'Wood Background', 'desc', '4', 'bg_wood', 3, 1, 104, 1, 0), + (22, 'Cork Background', 'desc', '4', 'bg_cork', 3, 1, 104, 1, 0), + (23, 'Stone Background', 'desc', '4', 'bg_stone', 3, 1, 104, 1, 0), + (24, 'Pattern Bricks Background', 'desc', '4', 'bg_pattern_bricks', 3, 1, 104, 1, 0), + (25, 'Ruled Paper Background', 'desc', '4', 'bg_ruled_paper', 3, 1, 104, 1, 0), + (26, 'Grass Background', 'desc', '4', 'bg_grass', 3, 1, 104, 1, 0), + (28, 'Bubble Background', 'desc', '4', 'bg_bubble', 3, 1, 104, 1, 0), + (29, 'Pattern Bobbaskulls Background', 'desc', '4', 'bg_pattern_bobbaskulls1', 3, 1, 104, 1, 0), + (30, 'Pattern Space Background', 'desc', '4', 'bg_pattern_space', 3, 1, 104, 1, 0), + (31, 'Image Submarine Background', 'desc', '4', 'bg_image_submarine', 3, 1, 104, 1, 0), + (32, 'Metal Background 2', 'desc', '4', 'bg_metal2', 3, 1, 104, 1, 0), + (33, 'Broken Glass Background', 'desc', '4', 'bg_broken_glass', 3, 1, 104, 1, 0), + (34, 'Pattern Clouds Background', 'desc', '4', 'bg_pattern_clouds', 3, 1, 104, 1, 0), + (36, 'Pattern Floral Background 1', 'desc', '4', 'bg_pattern_floral_01', 3, 1, 104, 1, 0), + (37, 'A', 'desc', '1', 'a', 1, 1, 394, 1, 0), + (38, 'B', 'desc', '1', 'b', 1, 1, 394, 1, 0), + (39, 'C', 'desc', '1', 'c', 1, 1, 394, 1, 0), + (40, 'D', 'desc', '1', 'd', 1, 1, 394, 1, 0), + (41, 'E', 'desc', '1', 'e', 1, 1, 394, 1, 0), + (42, 'F', 'desc', '1', 'f', 1, 1, 394, 1, 0), + (43, 'G', 'desc', '1', 'g', 1, 1, 394, 1, 0), + (44, 'H', 'desc', '1', 'h', 1, 1, 394, 1, 0), + (45, 'I', 'desc', '1', 'i', 1, 1, 394, 1, 0), + (46, 'J', 'desc', '1', 'j', 1, 1, 394, 1, 0), + (47, 'K', 'desc', '1', 'k', 1, 1, 394, 1, 0), + (48, 'L', 'desc', '1', 'l', 1, 1, 394, 1, 0), + (49, 'M', 'desc', '1', 'm', 1, 1, 394, 1, 0), + (50, 'N', 'desc', '1', 'n', 1, 1, 394, 1, 0), + (51, 'O', 'desc', '1', 'o', 1, 1, 394, 1, 0), + (52, 'P', 'desc', '1', 'p', 1, 1, 394, 1, 0), + (53, 'Q', 'desc', '1', 'q', 1, 1, 394, 1, 0), + (54, 'R', 'desc', '1', 'r', 1, 1, 394, 1, 0), + (55, 'S', 'desc', '1', 's', 1, 1, 394, 1, 0), + (56, 'T', 'desc', '1', 't', 1, 1, 394, 1, 0), + (57, 'U', 'desc', '1', 'u', 1, 1, 394, 1, 0), + (58, 'V', 'desc', '1', 'v', 1, 1, 394, 1, 0), + (59, 'W', 'desc', '1', 'w', 1, 1, 394, 1, 0), + (60, 'X', 'desc', '1', 'x', 1, 1, 394, 1, 0), + (62, 'Z', 'desc', '1', 'z', 1, 1, 394, 1, 0), + (63, 'Bling Star', 'desc', '1', 'bling_star', 1, 1, 182, 1, 0), + (64, 'Bling a', 'desc', '1', 'bling_a', 1, 1, 182, 1, 0), + (65, 'Bling b', 'desc', '1', 'bling_b', 1, 1, 182, 1, 0), + (66, 'Bling c', 'desc', '1', 'bling_c', 1, 1, 182, 1, 0), + (67, 'Bling d', 'desc', '1', 'bling_d', 1, 1, 182, 1, 0), + (68, 'Bling e', 'desc', '1', 'bling_e', 1, 1, 182, 1, 0), + (69, 'Bling f', 'desc', '1', 'bling_f', 1, 1, 182, 1, 0), + (70, 'Bling g', 'desc', '1', 'bling_g', 1, 1, 182, 1, 0), + (71, 'Bling h', 'desc', '1', 'bling_h', 1, 1, 182, 1, 0), + (72, 'Bling i', 'desc', '1', 'bling_i', 1, 1, 182, 1, 0), + (73, 'Bling j', 'desc', '1', 'bling_j', 1, 1, 182, 1, 0), + (74, 'Bling k', 'desc', '1', 'bling_k', 1, 1, 182, 1, 0), + (75, 'Bling l', 'desc', '1', 'bling_l', 1, 1, 182, 1, 0), + (76, 'Bling m', 'desc', '1', 'bling_m', 1, 1, 182, 1, 0), + (77, 'Bling n', 'desc', '1', 'bling_n', 1, 1, 182, 1, 0), + (78, 'Bling o', 'desc', '1', 'bling_o', 1, 1, 182, 1, 0), + (79, 'Bling p', 'desc', '1', 'bling_p', 1, 1, 182, 1, 0), + (80, 'Bling q', 'desc', '1', 'bling_q', 1, 1, 182, 1, 0), + (81, 'Bling r', 'desc', '1', 'bling_r', 1, 1, 182, 1, 0), + (82, 'Bling s', 'desc', '1', 'bling_s', 1, 1, 182, 1, 0), + (83, 'Bling t', 'desc', '1', 'bling_t', 1, 1, 182, 1, 0), + (84, 'Bling u', 'desc', '1', 'bling_u', 1, 1, 182, 1, 0), + (85, 'Bling v', 'desc', '1', 'bling_v', 1, 1, 182, 1, 0), + (86, 'Bling w', 'desc', '1', 'bling_w', 1, 1, 182, 1, 0), + (87, 'Bling x', 'desc', '1', 'bling_x', 1, 1, 182, 1, 0), + (88, 'Bling y', 'desc', '1', 'bling_y', 1, 1, 182, 1, 0), + (89, 'Bling z', 'desc', '1', 'bling_z', 1, 1, 182, 1, 0), + (90, 'Bling Underscore', 'desc', '1', 'bling_underscore', 1, 1, 182, 1, 0), + (91, 'Bling Comma', 'desc', '1', 'bling_comma', 1, 1, 182, 1, 0), + (92, 'Bling Dot', 'desc', '1', 'bling_dot', 1, 1, 182, 1, 0), + (93, 'Bling Exclamation', 'desc', '1', 'bling_exclamation', 1, 1, 182, 1, 0), + (94, 'Bling Question', 'desc', '1', 'bling_question', 1, 1, 182, 1, 0), + (95, 'A with Circle', 'desc', '1', 'a_with_circle', 1, 1, 394, 1, 0), + (96, 'A with Dots', 'desc', '1', 'a_with_dots', 1, 1, 394, 1, 0), + (97, 'O with Dots', 'desc', '1', 'o_with_dots', 1, 1, 394, 1, 0), + (99, 'Acsent 1', 'desc', '1', 'acsent1', 1, 1, 394, 1, 0), + (100, 'Acsent 2', 'desc', '1', 'acsent2', 1, 1, 394, 1, 0), + (101, 'Underscore', 'desc', '1', 'underscore', 1, 1, 394, 1, 0), + (104, 'Chain Vertical', 'desc', '1', 'chain_vertical', 1, 1, 138, 1, 0), + (105, 'Ruler Horizontal', 'desc', '1', 'ruler_horizontal', 1, 1, 138, 1, 0), + (106, 'Ruler Vertical', 'desc', '1', 'ruler_vertical', 1, 1, 138, 1, 0), + (107, 'Vine', 'desc', '1', 'vine', 1, 1, 138, 1, 0), + (108, 'Vine 2', 'desc', '1', 'vine2', 1, 1, 138, 1, 0), + (109, 'Leafs 1', 'desc', '1', 'leafs1', 1, 1, 138, 1, 0), + (110, 'Leafs 2', 'desc', '1', 'leafs2', 1, 1, 138, 1, 0), + (111, 'Sticker Zipper V Tile', 'desc', '1', 'sticker_zipper_v_tile', 1, 1, 138, 1, 0), + (112, 'Sticker Zipper H Tile', 'desc', '1', 'sticker_zipper_h_tile', 1, 1, 138, 1, 0), + (113, 'Sticker Zipper H Normal Lock', 'desc', '1', 'sticker_zipper_h_normal_lock', 1, 1, 138, 1, 0), + (114, 'Sticker Zipper H Bobba Lock', 'desc', '1', 'sticker_zipper_h_bobba_lock', 1, 1, 138, 1, 0), + (115, 'Sticker Zipper H End', 'desc', '1', 'sticker_zipper_h_end', 1, 1, 138, 1, 0), + (116, 'Sticker Zipper V End', 'desc', '1', 'sticker_zipper_v_end', 1, 1, 138, 1, 0), + (117, 'Sticker Zipper V Bobba Lock', 'desc', '1', 'sticker_zipper_v_bobba_lock', 1, 1, 138, 1, 0), + (118, 'Sticker Zipper V Normal Lock', 'desc', '1', 'sticker_zipper_v_normal_lock', 1, 1, 138, 1, 0), + (119, 'Wormhand', 'desc', '1', 'wormhand', 5, 1, 488, 1, 0), + (121, 'Chewed Bubblegum', 'desc', '1', 'chewed_bubblegum', 1, 1, 130, 1, 0), + (122, 'Cactus', 'desc', '1', 'sticker_cactus_anim', 2, 1, 130, 1, 0), + (123, 'Sticker Spaceduck', 'desc', '1', 'sticker_spaceduck', 1, 1, 130, 1, 0), + (124, 'Sticker Moonpig', 'desc', '1', 'sticker_moonpig', 2, 1, 130, 1, 0), + (125, 'Swimming Fish', 'desc', '1', 'swimming_fish', 2, 1, 130, 1, 0), + (127, 'Wunder Frank', 'desc', '1', 'wunderfrank', 1, 1, 130, 1, 0), + (128, 'Sticker Submarine', 'desc', '1', 'sticker_submarine', 2, 1, 130, 1, 0), + (132, 'Sticker Heartbeat', 'desc', '1', 'sticker_heartbeat', 2, 1, 171, 1, 0), + (133, 'Sticker Catinabox', 'desc', '1', 'sticker_catinabox', 2, 1, 171, 1, 0), + (134, 'Bear', 'desc', '1', 'bear', 2, 1, 171, 1, 0), + (136, 'Evil Giant Bunny', 'desc', '1', 'evil_giant_bunny', 2, 1, 488, 1, 0), + (137, 'Zombie Pupu', 'desc', '1', 'zombiepupu', 2, 1, 488, 1, 0), + (138, 'Skeletor 1', 'desc', '1', 'skeletor_001', 2, 1, 488, 1, 0), + (139, 'Skull', 'desc', '1', 'skull', 2, 1, 488, 1, 0), + (140, 'Skull 2', 'desc', '1', 'skull2', 2, 1, 488, 1, 0), + (141, 'Scubacapsule Anim', 'desc', '1', 'scubacapsule_anim', 2, 1, 130, 1, 0), + (142, 'Bobbaskull', 'desc', '1', 'sticker_bobbaskull', 2, 1, 488, 1, 0), + (143, 'Sticker Flower', 'desc', '1', 'sticker_flower1', 3, 5, 444, 1, 0), + (144, 'Icecube Big', 'desc', '1', 'icecube_big', 3, 10, 444, 1, 0), + (145, 'Leafs 2', 'desc', '1', 'leafs2', 5, 7, 444, 1, 0), + (146, 'Vine 2', 'desc', '1', 'vine2', 3, 5, 444, 1, 0), + (147, 'Chain Horizontal', 'desc', '1', 'chain_horizontal', 3, 5, 444, 1, 0), + (148, 'Icecube Small', 'desc', '1', 'icecube_small', 3, 10, 444, 1, 0), + (149, 'Sticker Arrow Up', 'desc', '1', 'sticker_arrow_up', 2, 1, 270, 1, 0), + (150, 'Sticker Arrow Down', 'desc', '1', 'sticker_arrow_down', 2, 1, 270, 1, 0), + (151, 'Sticker Arrow Left', 'desc', '1', 'sticker_arrow_left', 2, 1, 270, 1, 0), + (152, 'Sticker Arrow Right', 'desc', '1', 'sticker_arrow_right', 2, 1, 270, 1, 0), + (153, 'Sticker Pointing Hand 1', 'desc', '1', 'sticker_pointing_hand_1', 2, 1, 270, 1, 0), + (154, 'Sticker Pointing Hand 2', 'desc', '1', 'sticker_pointing_hand_2', 2, 1, 270, 1, 0), + (155, 'Sticker Pointing Hand 3', 'desc', '1', 'sticker_pointing_hand_3', 2, 1, 270, 1, 0), + (156, 'Sticker Pointing Hand 4', 'desc', '1', 'sticker_pointing_hand_4', 2, 1, 270, 1, 0), + (157, 'Nail 2', 'desc', '1', 'nail2', 2, 1, 270, 1, 0), + (158, 'Nail 3', 'desc', '1', 'nail3', 2, 1, 270, 1, 0), + (159, 'Needle 1', 'desc', '1', 'needle_1', 1, 1, 270, 1, 0), + (160, 'Needle 2', 'desc', '1', 'needle_2', 1, 1, 270, 1, 0), + (161, 'Needle 3', 'desc', '1', 'needle_3', 1, 1, 270, 1, 0), + (162, 'Needle 4', 'desc', '1', 'needle_4', 1, 1, 270, 1, 0), + (163, 'Needle 5', 'desc', '1', 'needle_5', 1, 1, 270, 1, 0), + (164, 'Grass Meadow', 'desc', '1', 'grass', 2, 1, 442, 1, 0), + (165, 'Sticker Flower', 'desc', '1', 'sticker_flower1', 1, 1, 442, 1, 0), + (166, 'Sticker Flower Big Yellow', 'desc', '1', 'sticker_flower_big_yellow', 1, 1, 442, 1, 0), + (167, 'Sticker Flower Pink', 'desc', '1', 'sticker_flower_pink', 1, 1, 442, 1, 0), + (169, 'I love Coffee', 'desc', '1', 'i_love_coffee', 1, 1, 443, 1, 0), + (170, 'Sticker Effect Bam', 'desc', '1', 'sticker_effect_bam', 1, 1, 443, 1, 0), + (171, 'Sticker Effect Burp', 'desc', '1', 'sticker_effect_burp', 1, 1, 443, 1, 0), + (172, 'Sticker Effect Woosh', 'desc', '1', 'sticker_effect_woosh', 1, 1, 443, 1, 0), + (173, 'Sticker Effect Zap', 'desc', '1', 'sticker_effect_zap', 1, 1, 443, 1, 0), + (174, 'Sticker Effect Whoosh 2', 'desc', '1', 'sticker_effect_whoosh2', 1, 1, 443, 1, 0), + (175, 'Icecube Small', 'desc', '1', 'icecube_small', 1, 1, 445, 1, 0), + (176, 'Snowball Machine', 'desc', '1', 'ss_snowballmachine', 1, 1, 445, 1, 0), + (177, 'Icecube Big', 'desc', '1', 'icecube_big', 1, 1, 445, 1, 0), + (178, 'Bootsitjalapaset Red', 'desc', '1', 'bootsitjalapaset_red', 2, 1, 445, 1, 0), + (179, 'Boots and Gloves', 'desc', '1', 'ss_bootsitjalapaset_blue', 2, 1, 445, 1, 0), + (180, 'Red SnowStorm Costume', 'desc', '1', 'ss_costume_red', 2, 1, 445, 1, 0), + (181, 'Snowstorm Blue Costume', 'desc', '1', 'ss_costume_blue', 2, 1, 445, 1, 0), + (182, 'Splash!', 'desc', '1', 'ss_hits_by_snowball', 1, 1, 445, 1, 0), + (183, 'SnowStorm Duck!', 'desc', '1', 'extra_ss_duck_left', 1, 1, 445, 1, 0), + (184, 'Snowtree', 'desc', '1', 'ss_snowtree', 2, 1, 445, 1, 0), + (185, 'SnowStorm Duck!', 'desc', '1', 'extra_ss_duck_right', 1, 1, 445, 1, 0), + (186, 'Snowman', 'desc', '1', 'ss_snowman', 2, 1, 445, 1, 0), + (187, 'Lumihiutale 2', 'desc', '1', 'ss_snowflake2', 1, 1, 445, 1, 0), + (188, 'Snow Queen', 'desc', '1', 'ss_snowqueen', 2, 1, 445, 1, 0), + (189, 'Battle 1', 'desc', '1', 'battle1', 1, 1, 446, 1, 0), + (190, 'Battle 3', 'desc', '1', 'battle3', 1, 1, 446, 1, 0), + (192, 'Eye Left', 'desc', '1', 'eyeleft', 2, 1, 488, 1, 0), + (193, 'Eye Right', 'desc', '1', 'eyeright', 2, 1, 488, 1, 0), + (194, 'Angel Wings', 'desc', '1', 'angelwings_anim', 3, 1, 459, 1, 0), + (195, 'Sticker Gurubeard Gray', 'desc', '1', 'sticker_gurubeard_gray', 1, 1, 459, 1, 0), + (196, 'Sticker Gurubeard Brown', 'desc', '1', 'sticker_gurubeard_brown', 1, 1, 459, 1, 0), + (197, 'Supernerd', 'desc', '1', 'sticker_glasses_supernerd', 1, 1, 459, 1, 0), + (198, 'Goofy Glasses', 'desc', '1', 'sticker_glasses_elton', 1, 1, 459, 1, 0), + (199, 'Blue Eyes', 'desc', '1', 'sticker_eyes_blue', 1, 1, 459, 1, 0), + (200, 'Sticker Eye Anim', 'desc', '1', 'sticker_eye_anim', 2, 1, 459, 1, 0), + (201, 'Sticker Eye Evil Anim', 'desc', '1', 'sticker_eye_evil_anim', 2, 1, 459, 1, 0), + (203, 'Star', 'desc', '1', 'star', 1, 1, 130, 1, 0), + (204, 'Sticker Pencil', 'desc', '1', 'sticker_pencil', 1, 1, 130, 1, 0), + (206, 'Sticker Pencil 2', 'desc', '1', 'sticker_pencil_2', 1, 1, 130, 1, 0), + (208, 'Sticker Prankster', 'desc', '1', 'sticker_prankster', 3, 1, 130, 1, 0), + (210, 'Sticker Romantic', 'desc', '1', 'sticker_romantic', 3, 1, 130, 1, 0), + (212, 'Lightbulb', 'desc', '1', 'lightbulb', 2, 1, 130, 1, 0), + (213, 'Bullet 1', 'desc', '1', 'bullet1', 2, 1, 130, 1, 0), + (220, 'Paper Clip 1', 'desc', '1', 'paper_clip_1', 1, 1, 270, 1, 0), + (221, 'Paper Clip 2', 'desc', '1', 'paper_clip_2', 1, 1, 270, 1, 0), + (222, 'Paper Clip 3', 'desc', '1', 'paper_clip_3', 1, 1, 270, 1, 0), + (231, 'Plaster', 'desc', '1', 'plaster', 1, 1, 130, 1, 0), + (232, 'Plaster 2', 'desc', '1', 'plaster2', 1, 1, 130, 1, 0), + (235, 'Parrot', 'desc', '1', 'parrot', 1, 1, 130, 1, 0), + (237, 'Burger', 'desc', '1', 'burger', 1, 1, 130, 1, 0), + (246, 'Pattern Floral Background 2', 'desc', '4', 'bg_pattern_floral_02', 2, 1, 104, 1, 0), + (247, 'Pattern Floral Background 3', 'desc', '4', 'bg_pattern_floral_03', 2, 1, 104, 1, 0), + (248, 'Pattern Cars Background', 'desc', '4', 'bg_pattern_cars', 2, 1, 104, 1, 0), + (250, 'Pattern Plasto Background', 'desc', '4', 'bg_pattern_plasto', 2, 1, 104, 1, 0), + (251, 'Pattern Tinyroom Background', 'desc', '4', 'bg_pattern_tinyroom', 2, 1, 104, 1, 0), + (252, 'Pattern Hearts Background', 'desc', '4', 'bg_pattern_hearts', 2, 1, 104, 1, 0), + (253, 'Pattern Abstract Background', 'desc', '4', 'bg_pattern_abstract1', 2, 1, 104, 1, 0), + (254, 'Bathroom Tile Background', 'desc', '4', 'bg_bathroom_tile', 2, 1, 104, 1, 0), + (255, 'Pattern Fish Background', 'desc', '4', 'bg_pattern_fish', 2, 1, 104, 1, 0), + (256, 'Pattern Deepred Background', 'desc', '4', 'bg_pattern_deepred', 2, 1, 104, 1, 0), + (257, 'Colour 02 Background', 'desc', '4', 'bg_colour_02', 2, 1, 104, 1, 0), + (258, 'Colour 03 Background', 'desc', '4', 'bg_colour_03', 2, 1, 104, 1, 0), + (259, 'Colour 04 Background', 'desc', '4', 'bg_colour_04', 2, 1, 104, 1, 0), + (260, 'Colour 05 Background', 'desc', '4', 'bg_colour_05', 2, 1, 104, 1, 0), + (261, 'Colour 06 Background', 'desc', '4', 'bg_colour_06', 2, 1, 104, 1, 0), + (262, 'Colour 07 Background', 'desc', '4', 'bg_colour_07', 2, 1, 104, 1, 0), + (263, 'Colour 08 Background', 'desc', '4', 'bg_colour_08', 2, 1, 104, 1, 0), + (264, 'Colour 09 Background', 'desc', '4', 'bg_colour_09', 2, 1, 104, 1, 0), + (265, 'Colour 10 Background', 'desc', '4', 'bg_colour_10', 2, 1, 104, 1, 0), + (266, 'Colour 11 Background', 'desc', '4', 'bg_colour_11', 2, 1, 104, 1, 0), + (267, 'Colour 12 Background', 'desc', '4', 'bg_colour_12', 2, 1, 104, 1, 0), + (268, 'Colour 13 Background', 'desc', '4', 'bg_colour_13', 2, 1, 104, 1, 0), + (269, 'Colour 14 Background', 'desc', '4', 'bg_colour_14', 2, 1, 104, 1, 0), + (270, 'Colour 15 Background', 'desc', '4', 'bg_colour_15', 2, 1, 104, 1, 0), + (271, 'Colour 17 Background', 'desc', '4', 'bg_colour_17', 2, 1, 104, 1, 0), + (272, 'Tonga Background', 'desc', '4', 'bg_tonga', 2, 1, 104, 1, 0), + (2591, 'Happy net', 'desc', '4', 'back_happyhnet', 2, 1, 104, 1, 0), + (276, 'Themepark Background 1', 'desc', '4', 'themepark_bg_01', 0, 1, 104, 1, 0), + (277, 'Themepark Background 2', 'desc', '4', 'themepark_bg_02', 0, 1, 104, 1, 0), + (283, 'Penelope', 'desc', '4', 'penelope', 0, 1, 104, 1, 0), + (299, 'Infobus Yellow Background', 'desc', '4', 'bg_infobus_yellow', 0, 1, 104, 1, 0), + (300, 'Infobus White Background', 'desc', '4', 'bg_infobus_white', 0, 1, 104, 1, 0), + (301, 'Infobus Blue Background', 'desc', '4', 'bg_infobus_blue', 0, 1, 104, 1, 0), + (303, 'Grunge Background', 'desc', '4', 'grungewall', 0, 1, 104, 1, 0), + (1001, 'OB Clubber', 'desc', '1', 'ob_clubber_146x146', 2, 1, 449, 1, 0), + (1002, 'OB Devil', 'desc', '1', 'ob_devil_146x146', 2, 1, 449, 1, 0), + (1003, 'OB Doctor', 'desc', '1', 'ob_doctor_146x146', 2, 1, 449, 1, 0), + (1004, 'OB Fairy', 'desc', '1', 'ob_fairy_146x146', 2, 1, 449, 1, 0), + (1005, 'OB Jetsetter', 'desc', '1', 'ob_jetsetter_146x146', 2, 1, 449, 1, 0), + (1007, 'OB Shopaholic', 'desc', '1', 'ob_shopaholic_146x146', 2, 1, 449, 1, 0), + (1008, 'OB Sport', 'desc', '1', 'ob_sporty_146x146', 2, 1, 449, 1, 0), + (1011, 'Sticker Themepark', 'desc', '1', '27224_sticker_themepark_001', 2, 1, 130, 1, 0), + (1017, 'Acento', 'desc', '1', 'acento', 2, 1, 394, 1, 0), + (1028, 'Ad Cats', 'desc', '1', 'adcats', 2, 1, 451, 1, 0), + (1029, 'Ad Dogs', 'desc', '1', 'addogs', 2, 1, 451, 1, 0), + (1030, 'Ad Holiday', 'desc', '1', 'adholiday', 2, 1, 451, 1, 0), + (1032, 'Ad Party', 'desc', '1', 'adparty', 2, 1, 451, 1, 0), + (1033, 'Ad Skating', 'desc', '1', 'adskating', 2, 1, 451, 1, 0), + (1034, 'Agudo', 'desc', '1', 'agudo', 2, 1, 394, 1, 0), + (1035, 'Alhambra Sticker', 'desc', '1', 'alhambra_sticker', 2, 1, 452, 1, 0), + (1036, 'Alhambra Wallsticker', 'desc', '1', 'alhambra_wallsticker', 2, 1, 452, 1, 0), + (1037, 'Alhambra Logo', 'desc', '1', 'alhambralogo', 2, 1, 452, 1, 0), + (1039, 'Ametrin', 'desc', '1', 'ametrin', 2, 1, 453, 1, 0), + (1040, 'Angel', 'desc', '1', 'angel_146x146', 2, 1, 449, 1, 0), + (1043, 'Anim Appart 732', 'desc', '1', 'anim_appart_732', 2, 1, 454, 1, 0), + (1044, 'Anim Boule Cristal', 'desc', '1', 'anim_boule_cristal', 2, 1, 454, 1, 0), + (1045, 'Anim Brasero', 'desc', '1', 'anim_brasero', 2, 1, 454, 1, 0), + (1046, 'Anim Cook', 'desc', '1', 'anim_cook', 2, 1, 453, 1, 0), + (1047, 'Anim Elvis', 'desc', '1', 'anim_elvis', 2, 1, 453, 1, 0), + (1048, 'Anim Enseigne', 'desc', '1', 'anim_enseigne', 2, 1, 454, 1, 0), + (1049, 'Anim Hockey', 'desc', '1', 'anim_hockey', 2, 1, 491, 1, 0), + (1051, 'Anim Oeil', 'desc', '1', 'anim_oeil', 2, 1, 454, 1, 0), + (1052, 'Anim Ventilo', 'desc', '1', 'anim_ventilo', 2, 1, 454, 1, 0), + (1053, 'Anim Viking Hole', 'desc', '1', 'anim_viking_hole', 2, 1, 453, 1, 0), + (1054, 'Anti Eco', 'desc', '1', 'anti_eco', 2, 1, 130, 1, 0), + (1057, 'Argentina', 'desc', '1', 'argentina', 2, 1, 456, 1, 0), + (1058, 'Asterisco 1', 'desc', '1', 'asterisco1', 2, 1, 394, 1, 0), + (1059, 'AU 3rd Bday 1', 'desc', '1', 'au_3rdbday_01', 2, 1, 130, 1, 0), + (1060, 'AU 3rd Bday 2', 'desc', '1', 'au_3rdbday_02', 2, 1, 130, 1, 0), + (1061, 'AU 3rd Bday 3', 'desc', '1', 'au_3rdbday_03', 2, 1, 130, 1, 0), + (1062, 'AU Greengold', 'desc', '1', 'au_greengold', 2, 1, 451, 1, 0), + (1063, 'AU Lifesaver', 'desc', '1', 'au_lifesaver', 2, 1, 130, 1, 0), + (1064, 'AU Surfing', 'desc', '1', 'au_surfing', 2, 1, 451, 1, 0), + (1067, 'Ballsma Honey', 'desc', '1', 'ballsmahoney', 2, 1, 453, 1, 0), + (1068, 'Baltasar', 'desc', '1', 'baltasar', 2, 1, 453, 1, 0), + (1069, 'Banks Bobby', 'desc', '1', 'banksbobby', 2, 1, 457, 1, 0), + (1070, 'Banks Can', 'desc', '1', 'bankscan', 2, 1, 457, 1, 0), + (1071, 'Banks Door', 'desc', '1', 'banksdoor', 2, 1, 457, 1, 0), + (1072, 'Banks Heater', 'desc', '1', 'banksheater', 2, 1, 457, 1, 0), + (1073, 'Barbequeset', 'desc', '1', 'barbequeset', 2, 1, 458, 1, 0), + (1074, 'Barra', 'desc', '1', 'barra', 2, 1, 394, 1, 0), + (1076, 'Batista', 'desc', '1', 'batista', 2, 1, 460, 1, 0), + (1079, 'Beachbunny Beachball', 'desc', '1', 'beachbunny_beachball', 2, 1, 461, 1, 0), + (1080, 'Beachbunny Beachball Bouncing', 'desc', '1', 'beachbunny_beachball_bouncing', 2, 1, 461, 1, 0), + (1081, 'Beachbunny Bmovie Poster', 'desc', '1', 'beachbunny_bmovieposter', 2, 1, 461, 1, 0), + (1082, 'Beachbunny Bunny Suit', 'desc', '1', 'beachbunny_bunny_suit', 2, 1, 461, 1, 0), + (1083, 'Beachbunny Peep', 'desc', '1', 'beachbunny_peep', 2, 1, 461, 1, 0), + (1084, 'Beachbunny Roaster Bunny', 'desc', '1', 'beachbunny_roaster_bunny', 2, 1, 461, 1, 0), + (1085, 'Beachgirl', 'desc', '1', 'beachgirl_146x146', 2, 1, 449, 1, 0), + (1087, 'Bellydancer', 'desc', '1', 'bellydancer', 2, 1, 452, 1, 0), + (1088, 'Beth Phoenix', 'desc', '1', 'bethphoenix', 2, 1, 460, 1, 0), + (1089, 'Beth Phoenix Skinny', 'desc', '1', 'bethphoenixskinny', 2, 1, 460, 1, 0), + (1092, 'Big Daddy V', 'desc', '1', 'bigdaddyv', 2, 1, 460, 1, 0), + (1093, 'Big Show', 'desc', '1', 'bigshow', 2, 1, 460, 1, 0), + (1094, 'Billy Graham', 'desc', '1', 'billygraham', 2, 1, 460, 1, 0), + (1095, 'Bird Suit', 'desc', '1', 'bird_suit', 2, 1, 462, 1, 0), + (1129, 'Bling Bling Stars', 'desc', '1', 'blingblingstars', 2, 1, 479, 1, 0), + (1130, 'Bling Hearts', 'desc', '1', 'blinghearts', 2, 1, 479, 1, 0), + (1132, 'Blue Hockey Stick', 'desc', '1', 'bluehockeystick', 2, 1, 491, 1, 0), + (1133, 'Blue Starfish', 'desc', '1', 'bluestarfish', 2, 1, 130, 1, 0), + (1136, 'Boborton', 'desc', '1', 'boborton', 2, 1, 460, 1, 0), + (1137, 'Bonbon Duck', 'desc', '1', 'bonbon_duck_146x146', 2, 1, 470, 1, 0), + (1138, 'Bonbon Mouse', 'desc', '1', 'bonbon_mouse_146x146', 2, 1, 470, 1, 0), + (1139, 'Bonbon Rat', 'desc', '1', 'bonbon_rat_146x146', 2, 1, 470, 1, 0), + (1140, 'Boogeyman', 'desc', '1', 'boogeyman', 2, 1, 460, 1, 0), + (1144, 'Bowser Sticker v1', 'desc', '1', 'bowser_sticker_v1', 2, 1, 465, 1, 0), + (1145, 'Bozzanova', 'desc', '1', 'bozzanova', 2, 1, 453, 1, 0), + (1146, 'BRA Football Guest 2', 'desc', '1', 'bra_football_guest2', 2, 1, 456, 1, 0), + (1147, 'Bratz Featured Clique', 'desc', '1', 'bratz_featuredclique', 2, 1, 470, 1, 0), + (1148, 'Brian Kendrick', 'desc', '1', 'briankendrick', 2, 1, 460, 1, 0), + (1149, 'British Legion', 'desc', '1', 'britishlegion', 2, 1, 130, 1, 0), + (1150, 'Britney', 'desc', '1', 'britney', 2, 1, 130, 1, 0), + (1153, 'Bullybuster', 'desc', '1', 'bullybuster', 2, 1, 130, 1, 0), + (1156, 'Businesswoman', 'desc', '1', 'businesswoman_146x146', 2, 1, 449, 1, 0), + (1157, 'Butterfly', 'desc', '1', 'butterfly_01', 2, 1, 462, 1, 0), + (1159, 'CA Hockeygoalie 2', 'desc', '1', 'ca_hockeygoalie2', 2, 1, 491, 1, 0), + (1160, 'Camel', 'desc', '1', 'camel', 2, 1, 130, 1, 0), + (1162, 'Candice Michelle', 'desc', '1', 'candicemichelle', 2, 1, 460, 1, 0), + (1163, 'Candycorn', 'desc', '1', 'candycorn', 2, 1, 130, 1, 0), + (1164, 'Carlito', 'desc', '1', 'carlito', 2, 1, 460, 1, 0), + (1165, 'Cassette 1', 'desc', '1', 'cassette1', 2, 1, 130, 1, 0), + (1166, 'Cassette 2', 'desc', '1', 'cassette2', 2, 1, 130, 1, 0), + (1167, 'Cassette 3', 'desc', '1', 'cassette3', 2, 1, 130, 1, 0), + (1168, 'Cassette 4', 'desc', '1', 'cassette4', 2, 1, 130, 1, 0), + (1170, 'Celeb Ticket Veronicas', 'desc', '1', 'celebticket_veronicas', 2, 1, 470, 1, 0), + (1171, 'Cena', 'desc', '1', 'cena', 2, 1, 460, 1, 0), + (1174, 'Cheerleader', 'desc', '1', 'cheerleader_146x146', 2, 1, 449, 1, 0), + (1175, 'Cheese Badge', 'desc', '1', 'cheese_badge', 2, 1, 451, 1, 0), + (1177, 'Cheese Suit Sticker', 'desc', '1', 'cheese_suit_sticker', 2, 1, 459, 1, 0), + (1178, 'Cheshirecat', 'desc', '1', 'cheshirecat', 2, 1, 453, 1, 0), + (1180, 'Chile', 'desc', '1', 'chile', 2, 1, 456, 1, 0), + (1181, 'Chocolates', 'desc', '1', 'chocolates', 2, 1, 130, 1, 0), + (1183, 'Chris Jericho', 'desc', '1', 'chrisjericho', 2, 1, 460, 1, 0), + (1184, 'Chuck Palumbo', 'desc', '1', 'chuckpalumbo', 2, 1, 460, 1, 0), + (1185, 'Clothes line', 'desc', '1', 'clothesline', 2, 1, 130, 1, 0), + (1187, 'CM Punk', 'desc', '1', 'cmpunk', 2, 1, 460, 1, 0), + (1188, 'CN Teleskull', 'desc', '1', 'cn_teleskull', 2, 1, 488, 1, 0), + (1190, 'CNY Dragon Body L', 'desc', '1', 'cny_dragon_body_l', 2, 1, 466, 1, 0), + (1191, 'CNY Dragon Body R', 'desc', '1', 'cny_dragon_body_r', 2, 1, 466, 1, 0), + (1192, 'CNY Dragon Head L', 'desc', '1', 'cny_dragon_head_l', 2, 1, 466, 1, 0), + (1193, 'CNY Dragon Head R', 'desc', '1', 'cny_dragon_head_r', 2, 1, 466, 1, 0), + (1195, 'CNY Kunfu Dude', 'desc', '1', 'cny_kunfu_dude', 2, 1, 466, 1, 0), + (1197, 'CNY Kunfu Girl', 'desc', '1', 'cny_kungfu_girl', 2, 1, 466, 1, 0), + (1198, 'Colombia', 'desc', '1', 'colombia', 2, 1, 456, 1, 0), + (1199, 'Comma', 'desc', '1', 'comma', 2, 1, 394, 1, 0), + (1202, 'Crase', 'desc', '1', 'crase', 2, 1, 394, 1, 0), + (1206, 'Curt Hawkins', 'desc', '1', 'curthawkins', 2, 1, 460, 1, 0), + (1208, 'Dag of Habbo Trophy', 'desc', '1', 'dagofhabbo_trophy', 2, 1, 130, 1, 0), + (1209, 'DagorNot', 'desc', '1', 'dagornot', 2, 1, 130, 1, 0), + (1210, 'DE 4th Bday', 'desc', '1', 'de_bday_4', 2, 1, 130, 1, 0), + (1214, 'Deal easter 6', 'desc', '1', 'deal_eas07_6', 2, 1, 462, 1, 0), + (1215, 'Deal easter 7', 'desc', '1', 'deal_eas07_7', 2, 1, 462, 1, 0), + (1216, 'Deal easter 8', 'desc', '1', 'deal_eas07_8', 2, 1, 462, 1, 0), + (1217, 'Deal goth border Horizontale', 'desc', '1', 'deal_goth_border_hor', 2, 1, 488, 1, 0), + (1218, 'deal goth border Verticale', 'desc', '1', 'deal_goth_border_ver', 2, 1, 488, 1, 0), + (1219, 'DH Smith', 'desc', '1', 'dhsmith', 2, 1, 460, 1, 0), + (1220, 'Dia de Internetsticker 2008', 'desc', '1', 'diadeinternetsticker2008_001', 2, 1, 470, 1, 0), + (1221, 'Diamond Reward', 'desc', '1', 'diamond_reward', 2, 1, 479, 1, 0), + (1222, 'Dim Sims', 'desc', '1', 'dimsims', 2, 1, 130, 1, 0), + (1223, 'DK Bobbacurse 2', 'desc', '1', 'dk_bobbacurse_2', 2, 1, 130, 1, 0), + (1224, 'Doelee', 'desc', '1', 'doelee', 2, 1, 453, 1, 0), + (1225, 'Donk', 'desc', '1', 'donk', 2, 1, 453, 1, 0), + (1226, 'Dot', 'desc', '1', 'dot', 2, 1, 394, 1, 0), + (1227, 'Dudesons', 'desc', '1', 'dudesons', 2, 1, 470, 1, 0), + (1228, 'Durian', 'desc', '1', 'durian', 2, 1, 130, 1, 0), + (1231, 'Easter Bird', 'desc', '1', 'easter_bird', 2, 1, 462, 1, 0), + (1236, 'Easter Broomstick_001', 'desc', '1', 'easter_broomstick_001', 2, 1, 462, 1, 0), + (1238, 'Easter Bunnymoped', 'desc', '1', 'easter_bunnymoped', 2, 1, 462, 1, 0), + (1240, 'Easter Carrot_rocket', 'desc', '1', 'easter_carrot_rocket', 2, 1, 462, 1, 0), + (1251, 'Easter Pointyhat', 'desc', '1', 'easter_pointyhat', 2, 1, 462, 1, 0), + (1253, 'Easter Rabbit_in_hole', 'desc', '1', 'easter_rabbit_in_hole', 2, 1, 462, 1, 0), + (1255, 'Easter Egg Costume', 'desc', '1', 'easteregg_costume', 2, 1, 462, 1, 0), + (1258, 'Edge', 'desc', '1', 'edge', 2, 1, 460, 1, 0), + (1259, 'Edito Fisherman Bait', 'desc', '1', 'edito_fisherman_bait', 2, 1, 130, 1, 0), + (1260, 'Edito Logo', 'desc', '1', 'edito_logo', 2, 1, 130, 1, 0), + (1263, 'Eggs', 'desc', '1', 'eggs', 2, 1, 488, 1, 0), + (1264, 'Elegant Bling', 'desc', '1', 'elegant_bling', 2, 1, 479, 1, 0), + (1265, 'Elijah Burke', 'desc', '1', 'elijahburke', 2, 1, 460, 1, 0), + (1270, 'Exclamation', 'desc', '1', 'exclamation', 2, 1, 394, 1, 0), + (1271, 'Executive Cheappen', 'desc', '1', 'exe_sticker_cheappen', 2, 1, 130, 1, 0), + (1272, 'Executive Luxurypen', 'desc', '1', 'exe_sticker_luxurypen', 2, 1, 130, 1, 0), + (1276, 'Extreme Dudesons', 'desc', '1', 'extreme_dudesons', 2, 1, 470, 1, 0), + (1280, 'Fantastic Four Logo', 'desc', '1', 'fantasticfourlogo', 2, 1, 470, 1, 0), + (1281, 'Featuredgroup', 'desc', '1', 'featuredgroup', 2, 1, 130, 1, 0), + (1283, 'Featuredgroup Sticker', 'desc', '1', 'featuredgroup_sticker', 2, 1, 130, 1, 0), + (1284, 'Felix 1', 'desc', '1', 'felix01', 2, 1, 470, 1, 0), + (1285, 'Felix 2', 'desc', '1', 'felix02', 2, 1, 470, 1, 0), + (1286, 'Felix 3', 'desc', '1', 'felix03b', 2, 1, 470, 1, 0), + (1289, 'Festus', 'desc', '1', 'festus', 2, 1, 460, 1, 0), + (1291, 'FI Golden Snake', 'desc', '1', 'fi_golden_snake', 2, 1, 130, 1, 0), + (1292, 'FI Koirakisu 2', 'desc', '1', 'fi_koirakisu2', 2, 1, 453, 1, 0), + (1293, 'FI Mino', 'desc', '1', 'fi_mino', 2, 1, 453, 1, 0), + (1294, 'FI Posti Box', 'desc', '1', 'fi_posti_box', 2, 1, 453, 1, 0), + (1295, 'FI Posti Girl', 'desc', '1', 'fi_posti_girl', 2, 1, 453, 1, 0), + (1297, 'Fieldberries', 'desc', '1', 'fieldberries', 2, 1, 470, 1, 0), + (1298, 'Fiesta Chica Tampax', 'desc', '1', 'fiesta_chica_tampax', 2, 1, 470, 1, 0), + (1299, 'Fiesta Minifalda 1', 'desc', '1', 'fiesta_minifalda_1', 2, 1, 470, 1, 0), + (1300, 'Fiesta Minifalda 2', 'desc', '1', 'fiesta_minifalda_2', 2, 1, 470, 1, 0), + (1301, 'Fiesta Welcome', 'desc', '1', 'fiesta_welcome', 2, 1, 470, 1, 0), + (1302, 'Filmstrip Corner Botleft', 'desc', '1', 'filmstrip_corner_botleft', 2, 1, 467, 1, 0), + (1303, 'Filmstrip Corner Botright', 'desc', '1', 'filmstrip_corner_botright', 2, 1, 467, 1, 0), + (1304, 'Filmstrip Corner Topleft', 'desc', '1', 'filmstrip_corner_topleft', 2, 1, 467, 1, 0), + (1305, 'Filmstrip Corner Topright', 'desc', '1', 'filmstrip_corner_topright', 2, 1, 467, 1, 0), + (1306, 'Filmstrip Horiz', 'desc', '1', 'filmstrip_horiz', 2, 1, 467, 1, 0), + (1307, 'Filmstrip Vert', 'desc', '1', 'filmstrip_vert', 2, 1, 467, 1, 0), + (1308, 'Finger Push', 'desc', '1', 'finger_push', 2, 1, 270, 1, 0), + (1309, 'Fish', 'desc', '1', 'fish', 2, 1, 130, 1, 0), + (1311, 'Flower 1', 'desc', '1', 'flower1png', 2, 1, 470, 1, 0), + (1312, 'Xmas SnowCone', 'desc', '1', 'Xmas_Snowcone_costume', 2, 1, 445, 1, 0), + (1313, 'Football', 'desc', '1', 'football', 2, 1, 456, 1, 0), + (1314, 'Free Hugs', 'desc', '1', 'free_hugs', 2, 1, 453, 1, 0), + (1317, 'Funaki', 'desc', '1', 'funaki', 2, 1, 460, 1, 0), + (1318, 'FWRK Blue', 'desc', '1', 'fwrk_blue', 2, 1, 468, 1, 0), + (1319, 'FWRK Pink', 'desc', '1', 'fwrk_pink', 2, 1, 468, 1, 0), + (1320, 'FWRK Yellow', 'desc', '1', 'fwrk_yellow', 2, 1, 468, 1, 0), + (1324, 'Gaspar', 'desc', '1', 'gaspar', 2, 1, 453, 1, 0), + (1327, 'Gaursticker 3', 'desc', '1', 'gaursticker3', 2, 1, 470, 1, 0), + (1330, 'Girlfriend Blue', 'desc', '1', 'gf_hotornot_blue', 2, 1, 470, 1, 0), + (1331, 'Girlfriend Pink', 'desc', '1', 'gf_hotornot_pink', 2, 1, 470, 1, 0), + (1332, 'Global World Sticker', 'desc', '1', 'globalw_sticker', 2, 1, 445, 1, 0), + (1337, 'Gorilla Hand 1', 'desc', '1', 'gorillahand1', 2, 1, 130, 1, 0), + (1338, 'Gorilla Hand 2', 'desc', '1', 'gorillahand2', 2, 1, 130, 1, 0), + (1344, 'Gothic Draculacape', 'desc', '1', 'gothic_draculacape', 2, 1, 488, 1, 0), + (1346, 'Gothic Scienceplatform', 'desc', '1', 'gothic_scienceplatform', 2, 1, 488, 1, 0), + (1352, 'Grave Sticker', 'desc', '1', 'gravesticker', 2, 1, 130, 1, 0), + (1353, 'Grave Sticker 2', 'desc', '1', 'gravesticker2', 2, 1, 130, 1, 0), + (1354, 'Green Hockey Stick', 'desc', '1', 'greenhockeystick', 2, 1, 491, 1, 0), + (1357, 'Greenpeace White', 'desc', '1', 'greenpeacewhite', 2, 1, 130, 1, 0), + (1360, 'Grunge Polaroid 1', 'desc', '1', 'grunge_polaroid_1', 2, 1, 453, 1, 0), + (1361, 'Grunge Polaroid 2', 'desc', '1', 'grunge_polaroid_2', 2, 1, 453, 1, 0), + (1362, 'Grunge Polaroid 3', 'desc', '1', 'grunge_polaroid_3', 2, 1, 453, 1, 0), + (1363, 'Grunge Polaroid 4', 'desc', '1', 'grunge_polaroid_4', 2, 1, 453, 1, 0), + (1364, 'Grunge Polaroid 5', 'desc', '1', 'grunge_polaroid_5', 2, 1, 453, 1, 0), + (1365, 'Guard 1', 'desc', '1', 'guard1', 2, 1, 453, 1, 0), + (1366, 'Guard 2', 'desc', '1', 'guard2', 2, 1, 453, 1, 0), + (1367, 'Guccimama', 'desc', '1', 'guccimama', 2, 1, 453, 1, 0), + (1370, 'Habbo Island', 'desc', '1', 'habbo_island', 2, 1, 461, 1, 0), + (1372, 'Habbo By Night-sticker', 'desc', '1', 'habbobynightsticker', 2, 1, 130, 1, 0), + (1373, 'Habbohome Of The Month', 'desc', '1', 'habbohome_of_the_month', 2, 1, 130, 1, 0), + (1375, 'Habborella Logo', 'desc', '1', 'habborella_logo', 2, 1, 130, 1, 0), + (1376, 'Habboween Background', 'desc', '4', 'habboween_bg', 2, 1, 104, 1, 0), + (1377, 'Hacksaw', 'desc', '1', 'hacksaw', 2, 1, 460, 1, 0), + (1378, 'Hat Clown 2', 'desc', '1', 'hat_clown2', 2, 1, 459, 1, 0), + (1379, 'HC Hat', 'desc', '1', 'hc_hat', 2, 1, 459, 1, 0), + (1380, 'Highlighter 1', 'desc', '1', 'highlighter_1', 2, 1, 469, 1, 0), + (1381, 'Highlighter 2', 'desc', '1', 'highlighter_2', 2, 1, 469, 1, 0), + (1382, 'Highlighter Mark 1', 'desc', '1', 'highlighter_mark1', 2, 1, 469, 1, 0), + (1383, 'Highlighter Mark 2', 'desc', '1', 'highlighter_mark2', 2, 1, 469, 1, 0), + (1384, 'Highlighter Mark 3', 'desc', '1', 'highlighter_mark3', 2, 1, 469, 1, 0), + (1385, 'Highlighter Mark 4', 'desc', '1', 'highlighter_mark4b', 2, 1, 469, 1, 0), + (1386, 'Highlighter Mark 5', 'desc', '1', 'highlighter_mark5', 2, 1, 469, 1, 0), + (1387, 'Highlighter Mark 6', 'desc', '1', 'highlighter_mark6', 2, 1, 469, 1, 0), + (1388, 'Hockey Habbo', 'desc', '1', 'hockey_habbo', 2, 1, 491, 1, 0), + (1389, 'Hockeyref', 'desc', '1', 'hockeyref', 2, 1, 491, 1, 0), + (1390, 'Holycarp', 'desc', '1', 'holycarp', 2, 1, 130, 1, 0), + (1391, 'Homer', 'desc', '1', 'homer', 2, 1, 453, 1, 0), + (1392, 'Horizontalink', 'desc', '1', 'horizontalink', 2, 1, 469, 1, 0), + (1393, 'Hornswoggle', 'desc', '1', 'hornswoggle', 2, 1, 460, 1, 0), + (1394, 'HP Guest', 'desc', '1', 'hp_guest', 2, 1, 453, 1, 0), + (1429, '3d Glasses', 'desc', '1', 'hw_3d_glasses', 2, 1, 459, 1, 0), + (1430, 'Actionstar', 'desc', '1', 'hw_actionstar', 2, 1, 467, 1, 0), + (1431, 'Amp Big', 'desc', '1', 'hw_amp_big', 2, 1, 467, 1, 0), + (1432, 'Amp Small', 'desc', '1', 'hw_amp_small', 2, 1, 467, 1, 0), + (1433, 'Bartender Costume', 'desc', '1', 'hw_bartender_costume', 2, 1, 459, 1, 0), + (1434, 'Bassplayer Boy', 'desc', '1', 'hw_bassplayer_boy', 2, 1, 492, 1, 0), + (1435, 'Bassplayer Girl', 'desc', '1', 'hw_bassplayer_girl', 2, 1, 492, 1, 0), + (1438, 'Bigcamera', 'desc', '1', 'hw_bigcamera', 2, 1, 467, 1, 0), + (1439, 'Bouncers', 'desc', '1', 'hw_bouncers', 2, 1, 467, 1, 0), + (1440, 'Camera L', 'desc', '1', 'hw_camera_l', 2, 1, 467, 1, 0), + (1441, 'Camera R', 'desc', '1', 'hw_camera_r', 2, 1, 467, 1, 0), + (1445, 'Carpet Corner Down', 'desc', '1', 'hw_carpet_corner_down', 2, 1, 467, 1, 0), + (1446, 'Carpet Corner Up', 'desc', '1', 'hw_carpet_corner_up', 2, 1, 467, 1, 0), + (1447, 'Carpet End Ldown', 'desc', '1', 'hw_carpet_end_ldown', 2, 1, 467, 1, 0), + (1448, 'Carpet End Lup', 'desc', '1', 'hw_carpet_end_lup', 2, 1, 467, 1, 0), + (1449, 'Carpet End Rdown', 'desc', '1', 'hw_carpet_end_rdown', 2, 1, 467, 1, 0), + (1450, 'Carpet End Rup', 'desc', '1', 'hw_carpet_end_rup', 2, 1, 467, 1, 0), + (1451, 'Carpet L', 'desc', '1', 'hw_carpet_l', 2, 1, 467, 1, 0), + (1452, 'Carpet R', 'desc', '1', 'hw_carpet_r', 2, 1, 467, 1, 0), + (1453, 'Drummer Boy', 'desc', '1', 'hw_drummer_boy', 2, 1, 492, 1, 0), + (1454, 'Drummer Girl', 'desc', '1', 'hw_drummer_girl', 2, 1, 492, 1, 0), + (1456, 'Guitarplayer Black', 'desc', '1', 'hw_guitarplayer_black', 2, 1, 492, 1, 0), + (1457, 'Guitarplayer White', 'desc', '1', 'hw_guitarplayer_white', 2, 1, 492, 1, 0), + (1458, 'Hairspray', 'desc', '1', 'hw_hairspray', 2, 1, 467, 1, 0), + (1459, 'Hippie', 'desc', '1', 'hw_hippie', 2, 1, 467, 1, 0), + (1460, 'Hitcher', 'desc', '1', 'hw_hitcher', 2, 1, 467, 1, 0), + (1461, 'Inmate', 'desc', '1', 'hw_inmate', 2, 1, 467, 1, 0), + (1462, 'Kenny Burger', 'desc', '1', 'hw_kenny_burger', 2, 1, 467, 1, 0), + (1463, 'Kenny Fight', 'desc', '1', 'hw_kenny_fight', 2, 1, 467, 1, 0), + (1464, 'Kenny Shock', 'desc', '1', 'hw_kenny_shock', 2, 1, 467, 1, 0), + (1465, 'Keyboards', 'desc', '1', 'hw_keyboards', 2, 1, 467, 1, 0), + (1468, 'Logoanim', 'desc', '1', 'hw_logoanim', 2, 1, 467, 1, 0), + (1469, 'Mega Afro', 'desc', '1', 'hw_mega_afro', 2, 1, 459, 1, 0), + (1470, 'Microphone', 'desc', '1', 'hw_microphone', 2, 1, 467, 1, 0), + (1471, 'Moh Logo', 'desc', '1', 'hw_moh_logo', 2, 1, 467, 1, 0), + (1472, 'Shades', 'desc', '1', 'hw_shades', 2, 1, 459, 1, 0), + (1473, 'Speedobunny', 'desc', '1', 'hw_speedobunny', 2, 1, 130, 1, 0), + (1477, 'Habbowood Klaffi 2', 'desc', '1', 'hwood07_klaffi2', 2, 1, 467, 1, 0), + (1511, 'Jenkki Monster Sticker', 'desc', '1', 'jenkki_monster_sticker', 2, 1, 470, 1, 0), + (1510, 'Jeff Hardy', 'desc', '1', 'jeffhardy', 2, 1, 460, 1, 0), + (1509, 'JBL', 'desc', '1', 'jbl', 2, 1, 460, 1, 0), + (1508, 'Jarppi Guest 2', 'desc', '1', 'jarppi_guest2', 2, 1, 453, 1, 0), + (1507, 'Jarppi Guest', 'desc', '1', 'jarppi_guest', 2, 1, 453, 1, 0), + (1506, 'Jarno Guest', 'desc', '1', 'jarno_guest', 2, 1, 453, 1, 0), + (1505, 'Jared', 'desc', '1', 'jared', 2, 1, 453, 1, 0), + (1504, 'James Curtis', 'desc', '1', 'jamescurtis', 2, 1, 460, 1, 0), + (1502, 'IT Toilet', 'desc', '1', 'it_toilet', 2, 1, 453, 1, 0), + (1501, 'IT Stickerpodio', 'desc', '1', 'it_stickerpodio', 2, 1, 130, 1, 0), + (1500, 'IT Habbohome', 'desc', '1', 'it_habbohome', 2, 1, 472, 1, 0), + (1499, 'Island', 'desc', '1', 'island', 2, 1, 461, 1, 0), + (1497, 'Inked Squidpants', 'desc', '1', 'inked_squidpants', 2, 1, 471, 1, 0), + (1498, 'Inked Suidpatrol', 'desc', '1', 'inked_suidpatrol', 2, 1, 471, 1, 0), + (1496, 'Inked Spit', 'desc', '1', 'inked_spit', 2, 1, 471, 1, 0), + (1495, 'Inked Ship', 'desc', '1', 'inked_ship', 2, 1, 471, 1, 0), + (1494, 'Inked Poster', 'desc', '1', 'inked_poster', 2, 1, 471, 1, 0), + (1493, 'Inked Love', 'desc', '1', 'inked_love', 2, 1, 471, 1, 0), + (1491, 'Inked Inkedblink', 'desc', '1', 'inked_inkedblink', 2, 1, 471, 1, 0), + (1492, 'Inked Lamp', 'desc', '1', 'inked_lamp', 2, 1, 471, 1, 0), + (1490, 'Inked Antisquidrank', 'desc', '1', 'inked_antisquidrank', 2, 1, 471, 1, 0), + (1488, 'Inked Antisquidf', 'desc', '1', 'inked_antisquidf', 2, 1, 471, 1, 0), + (1489, 'Inked Antisquidm', 'desc', '1', 'inked_antisquidm', 2, 1, 471, 1, 0), + (1480, 'I love Bobba', 'desc', '1', 'i_love_bobba', 2, 1, 451, 1, 0), + (1481, 'I love Coffee', 'desc', '1', 'i_love_coffee', 2, 1, 451, 1, 0), + (1516, 'Jimmyhart', 'desc', '1', 'jimmyhart', 2, 1, 460, 1, 0), + (1515, 'Jigoku Shojo 2', 'desc', '1', 'jigoku_shojo_2', 2, 1, 470, 1, 0), + (1514, 'Jigoku Shojo 1', 'desc', '1', 'jigoku_shojo_1', 2, 1, 470, 1, 0), + (1513, 'Jesse', 'desc', '1', 'jesse', 2, 1, 460, 1, 0), + (1517, 'Jimmysnuka', 'desc', '1', 'jimmysnuka', 2, 1, 460, 1, 0), + (1518, 'Johnmorrison', 'desc', '1', 'johnmorrison', 2, 1, 460, 1, 0), + (1519, 'JP 5 Uears', 'desc', '1', 'jp_5years', 2, 1, 130, 1, 0), + (1520, 'JP Godzilla', 'desc', '1', 'jp_godzilla', 2, 1, 451, 1, 0), + (1521, 'JP Sushi', 'desc', '1', 'jp_sushi', 2, 1, 451, 1, 0), + (1522, 'Juice', 'desc', '1', 'juice', 2, 1, 130, 1, 0), + (1523, 'Jukka Guest', 'desc', '1', 'jukka_guest', 2, 1, 453, 1, 0), + (1524, 'Jukka Guest2', 'desc', '1', 'jukka_guest2', 2, 1, 453, 1, 0), + (1525, 'July0408 Boom 1', 'desc', '1', 'july0408_boom_1', 2, 1, 468, 1, 0), + (1526, 'July408 Auntsamantha', 'desc', '1', 'july408_auntsamantha', 2, 1, 468, 1, 0), + (1527, 'July408 Boom 2', 'desc', '1', 'july408_boom_2', 2, 1, 468, 1, 0), + (1529, 'July408 Boom 4', 'desc', '1', 'july408_boom_4', 2, 1, 468, 1, 0), + (1530, 'July408 Border', 'desc', '1', 'july408_border', 2, 1, 468, 1, 0), + (1531, 'July408 July4th', 'desc', '1', 'july408_july4th', 2, 1, 468, 1, 0), + (1532, 'July408 Unclesam', 'desc', '1', 'july408_unclesam', 2, 1, 468, 1, 0), + (1534, 'Karigrandi Sticker', 'desc', '1', 'karigrandi_sticker', 2, 1, 470, 1, 0), + (1535, 'Kennydy Kstra', 'desc', '1', 'kennydykstra', 2, 1, 460, 1, 0), + (1536, 'Ketupat', 'desc', '1', 'ketupat', 2, 1, 130, 1, 0), + (1537, 'Kevinthorn', 'desc', '1', 'kevinthorn', 2, 1, 460, 1, 0), + (1538, 'KFP Sticker 1', 'desc', '1', 'kfp_sticker_01', 2, 1, 470, 1, 0), + (1539, 'KFP Sticker 2', 'desc', '1', 'kfp_sticker_02', 2, 1, 470, 1, 0), + (1540, 'KFP Sticker 3', 'desc', '1', 'kfp_sticker_03', 2, 1, 470, 1, 0), + (1541, 'KFP Sticker 4', 'desc', '1', 'kfp_sticker_04', 2, 1, 470, 1, 0), + (1542, 'KFP Sticker 5', 'desc', '1', 'kfp_sticker_05', 2, 1, 470, 1, 0), + (1543, 'KFP Sticker 6', 'desc', '1', 'kfp_sticker_06', 2, 1, 470, 1, 0), + (1544, 'KFP Sticker 7', 'desc', '1', 'kfp_sticker_07', 2, 1, 470, 1, 0), + (1545, 'KIP Partnerbtn', 'desc', '1', 'kip_partnerbtn', 2, 1, 470, 1, 0), + (1546, 'KIR Stamp 1', 'desc', '1', 'kir-stamp1', 2, 1, 475, 1, 0), + (1547, 'KIR Bam Sticker', 'desc', '1', 'kir_bam_sticker', 2, 1, 475, 1, 0), + (1548, 'KIR Elkah Sticker', 'desc', '1', 'kir_elkah_sticker', 2, 1, 475, 1, 0), + (1549, 'KIR Foz Sticker', 'desc', '1', 'kir_foz_sticker', 2, 1, 475, 1, 0), + (1550, 'KIR Fushi Sticker', 'desc', '1', 'kir_fushi_sticker', 2, 1, 475, 1, 0), + (1551, 'KIR Stamp 1', 'desc', '1', 'kir_stamp1', 2, 1, 475, 1, 0), + (1552, 'KIR Stamp 2', 'desc', '1', 'kir_stamp2', 2, 1, 475, 1, 0), + (1553, 'KIR Stamp 3', 'desc', '1', 'kir_stamp3', 2, 1, 475, 1, 0), + (1555, 'Kir Stamp', 'desc', '1', 'kir_stamp4', 2, 1, 475, 1, 0), + (1557, 'KIR Stamp 5', 'desc', '1', 'kir_stamp5', 2, 1, 475, 1, 0), + (1558, 'KIR Stamp 6', 'desc', '1', 'kir_stamp6', 2, 1, 475, 1, 0), + (1559, 'KIR Stamp 7', 'desc', '1', 'kir_stamp6_002', 2, 1, 475, 1, 0), + (1561, 'KIR Sticker', 'desc', '1', 'kir_sticker', 2, 1, 475, 1, 0), + (1562, 'KIR Winner 1', 'desc', '1', 'kir_winner_01', 2, 1, 475, 1, 0), + (1563, 'KIR Winner 2', 'desc', '1', 'kir_winner_02', 2, 1, 475, 1, 0), + (1564, 'KIR Winner 3', 'desc', '1', 'kir_winner_03', 2, 1, 475, 1, 0), + (1565, 'KIR Winner 4', 'desc', '1', 'kir_winner_04', 2, 1, 475, 1, 0), + (1566, 'KIR Winner 5', 'desc', '1', 'kir_winner_05', 2, 1, 475, 1, 0), + (1567, 'KIR Winner 6', 'desc', '1', 'kir_winner_06', 2, 1, 475, 1, 0), + (1568, 'KIR Winner 7', 'desc', '1', 'kir_winner_07', 2, 1, 475, 1, 0), + (1569, 'KIR Winner 8', 'desc', '1', 'kir_winner_08', 2, 1, 475, 1, 0), + (1570, 'KIR Winner 9', 'desc', '1', 'kir_winner_09', 2, 1, 475, 1, 0), + (1571, 'KIR Winner 10', 'desc', '1', 'kir_winner_10', 2, 1, 475, 1, 0), + (1572, 'KIR Winner 11', 'desc', '1', 'kir_winner_11', 2, 1, 475, 1, 0), + (1573, 'KIR Yobbo Sticker', 'desc', '1', 'kir_yobbo_sticker', 2, 1, 475, 1, 0), + (1574, 'Kitsune Wonders', 'desc', '1', 'kitsune_wonders', 2, 1, 476, 1, 0), + (1575, 'Kitsune Yelling', 'desc', '1', 'kitsune_yelling', 2, 1, 476, 1, 0), + (1576, 'Kitune Fighting', 'desc', '1', 'kitune_fighting', 2, 1, 476, 1, 0), + (1580, 'Krans', 'desc', '1', 'krans', 2, 1, 130, 1, 0), + (1582, 'Lamp 1', 'desc', '1', 'lamp_1', 2, 1, 130, 1, 0), + (1583, 'Lamp 2', 'desc', '1', 'lamp_2', 2, 1, 130, 1, 0), + (1584, 'Lamp 3', 'desc', '1', 'lamp_3', 2, 1, 130, 1, 0), + (1585, 'Lamp 4', 'desc', '1', 'lamp_4', 2, 1, 130, 1, 0), + (1586, 'Lamp Group', 'desc', '1', 'lamp_group', 2, 1, 130, 1, 0), + (1588, 'Lapanen Blue', 'desc', '1', 'lapanen_blue', 2, 1, 445, 1, 0), + (1593, 'Lapanen Purple', 'desc', '1', 'lapanen_purple', 2, 1, 445, 1, 0), + (1594, 'Lapanen Red', 'desc', '1', 'lapanen_red', 2, 1, 445, 1, 0), + (1596, 'Lapanen Yellow', 'desc', '1', 'lapanen_yellow', 2, 1, 445, 1, 0), + (1597, 'Lashey', 'desc', '1', 'lashey', 2, 1, 460, 1, 0), + (1599, 'Leafs 1', 'desc', '1', 'leafs1', 5, 7, 444, 1, 0), + (1600, 'Leapday', 'desc', '1', 'leapday', 2, 1, 130, 1, 0), + (1605, 'Limo Back', 'desc', '1', 'limo_back', 2, 1, 467, 1, 0), + (1606, 'Limo Doorpiece', 'desc', '1', 'limo_doorpiece', 2, 1, 467, 1, 0), + (1607, 'Limo Front', 'desc', '1', 'limo_front', 2, 1, 467, 1, 0), + (1608, 'Limo Windowpiece', 'desc', '1', 'limo_windowpiece', 2, 1, 467, 1, 0), + (1610, 'Linnsticker', 'desc', '1', 'linnsticker', 2, 1, 470, 1, 0), + (1614, 'Loderse', 'desc', '1', 'loderse', 2, 1, 470, 1, 0), + (1616, 'Lovebed', 'desc', '1', 'lovebed', 2, 1, 489, 1, 0), + (1622, 'Mansikka Tarra', 'desc', '1', 'mansikka_tarra', 2, 1, 470, 1, 0), + (1623, 'Maria', 'desc', '1', 'maria', 2, 1, 460, 1, 0), + (1624, 'Mark Henry', 'desc', '1', 'markhenry', 2, 1, 460, 1, 0), + (1625, 'Matt Hardy', 'desc', '1', 'matthardy', 2, 1, 460, 1, 0), + (1626, 'Matt Striker', 'desc', '1', 'mattstriker', 2, 1, 460, 1, 0), + (1627, 'May Weather', 'desc', '1', 'mayweather', 2, 1, 460, 1, 0), + (1628, 'Melchor', 'desc', '1', 'melchor', 2, 1, 453, 1, 0), + (1629, 'Melina', 'desc', '1', 'melina', 2, 1, 460, 1, 0), + (1631, 'Mexico', 'desc', '1', 'mexico', 2, 1, 456, 1, 0), + (1633, 'Mid Sommar 1', 'desc', '1', 'midsommar_1', 2, 1, 130, 1, 0), + (1634, 'Mike Knoxx', 'desc', '1', 'mikeknoxx', 2, 1, 460, 1, 0), + (1635, 'Miss J', 'desc', '1', 'missj', 2, 1, 453, 1, 0), + (1636, 'Money Low', 'desc', '1', 'money_o', 2, 1, 490, 1, 0), + (1637, 'Money Stash', 'desc', '1', 'money_stash', 2, 1, 490, 1, 0), + (1638, 'Money High', 'desc', '1', 'money_v', 2, 1, 490, 1, 0), + (1639, 'Mooncake Dark', 'desc', '1', 'mooncake_dark', 2, 1, 452, 1, 0), + (1640, 'Mooncake Light', 'desc', '1', 'mooncake_light', 2, 1, 452, 1, 0), + (1641, 'Mr Kennedy', 'desc', '1', 'mrkennedy', 2, 1, 460, 1, 0), + (1642, 'Mummimor', 'desc', '1', 'mummimor', 2, 1, 453, 1, 0), + (1652, 'Newyear 2007', 'desc', '1', 'newyear_2007_anim', 2, 1, 468, 1, 0), + (1655, 'Newyear Sparkler', 'desc', '1', 'newyear_sparkler', 2, 1, 468, 1, 0), + (1656, 'Nigiri Sushi', 'desc', '1', 'nigirisushi', 2, 1, 476, 1, 0), + (1657, 'NL Coinguy Animated', 'desc', '1', 'nl_coinguy_animated', 2, 1, 490, 1, 0), + (1658, 'NL Cupido', 'desc', '1', 'nl_cupido', 2, 1, 489, 1, 0), + (1659, 'NL Downtown Costume', 'desc', '1', 'nl_downtown_costume', 2, 1, 459, 1, 0), + (1660, 'NL Firecracker', 'desc', '1', 'nl_firecracker', 2, 1, 466, 1, 0), + (1661, 'NL Football Guest', 'desc', '1', 'nl_football_guest', 2, 1, 456, 1, 0), + (1662, 'NL Football Guest 2', 'desc', '1', 'nl_football_guest2', 2, 1, 456, 1, 0), + (1663, 'NL Limo', 'desc', '1', 'nl_limo', 2, 1, 467, 1, 0), + (1664, 'NL Wanted Costume', 'desc', '1', 'nl_wanted_costume', 2, 1, 459, 1, 0), + (1665, 'No Space Sticker', 'desc', '1', 'no_space_sticker', 2, 1, 451, 1, 0), + (1666, 'No Way Out Slanted', 'desc', '1', 'nowayout_slanted', 2, 1, 470, 1, 0), + (1670, 'Nunzio', 'desc', '1', 'nunzio', 2, 1, 460, 1, 0), + (1671, 'NZ Heart', 'desc', '1', 'nz_heart', 2, 1, 451, 1, 0), + (1672, 'NZ Tiki', 'desc', '1', 'nz_tiki', 2, 1, 451, 1, 0), + (1675, 'Ogopogo 1', 'desc', '1', 'ogopogo1', 2, 1, 466, 1, 0), + (1676, 'Oldfence Left', 'desc', '1', 'oldfence_left', 2, 1, 130, 1, 0), + (1677, 'Oldfence Right', 'desc', '1', 'oldfence_right', 2, 1, 130, 1, 0), + (1678, 'Orca Ideal Home', 'desc', '1', 'orca_ideal_home', 2, 1, 130, 1, 0), + (1684, 'Patsday Claddagh', 'desc', '1', 'patsday_claddagh', 2, 1, 484, 1, 0), + (1685, 'Patsday Kissme', 'desc', '1', 'patsday_kissme', 2, 1, 484, 1, 0), + (1687, 'Patsday Potogold', 'desc', '1', 'patsday_potogold', 2, 1, 484, 1, 0), + (1688, 'Patsday Shamborderh', 'desc', '1', 'patsday_shamborderh', 2, 1, 484, 1, 0), + (1689, 'Patsday Shamborderv', 'desc', '1', 'patsday_shamborderv', 2, 1, 484, 1, 0), + (1690, 'Patsday Shamrock', 'desc', '1', 'patsday_shamrock', 2, 1, 484, 1, 0), + (1691, 'Paul London', 'desc', '1', 'paullondon', 2, 1, 460, 1, 0), + (1692, 'Paul Orndorff', 'desc', '1', 'paulorndorff', 2, 1, 460, 1, 0), + (1704, 'HWSTICKER', 'desc', '1', 'HW_STICKER1_50000', 2, 1, 130, 1, 0), + (1707, 'Poppy', 'desc', '1', 'poppy', 2, 1, 130, 1, 0), + (1714, 'Pro Eco', 'desc', '1', 'pro_eco', 2, 1, 130, 1, 0), + (1717, 'Prom of the Dead Sticker Brains', 'desc', '1', 'promofthedead_sticker_brains', 2, 1, 488, 1, 0), + (1718, 'Prom of the Dead Sticker Dress', 'desc', '1', 'promofthedead_sticker_dress', 2, 1, 488, 1, 0), + (1719, 'Prom of the Dead Sticker Duck', 'desc', '1', 'promofthedead_sticker_duck', 2, 1, 488, 1, 0), + (1720, 'Prom of the Dead Sticker Poster', 'desc', '1', 'promofthedead_sticker_poster', 2, 1, 488, 1, 0), + (1721, 'Prom of the Dead Sticker Suit', 'desc', '1', 'promofthedead_sticker_suit', 2, 1, 488, 1, 0), + (1722, 'Prom of the Dead Sticker Zombie', 'desc', '1', 'promofthedead_sticker_zombie', 2, 1, 488, 1, 0), + (1724, 'Queensibidi', 'desc', '1', 'queensibidi', 2, 1, 453, 1, 0), + (1727, 'Radar', 'desc', '1', 'radar', 2, 1, 453, 1, 0), + (1728, 'Randy Orton', 'desc', '1', 'randyorton', 2, 1, 460, 1, 0), + (1729, 'Rasta', 'desc', '1', 'rasta', 2, 1, 453, 1, 0), + (1730, 'Ratv 2', 'desc', '1', 'ratv2', 2, 1, 466, 1, 0), + (1731, 'Red Hockeystick', 'desc', '1', 'redhockeystick', 2, 1, 491, 1, 0), + (1732, 'Redlamp', 'desc', '1', 'redlamp', 2, 1, 130, 1, 0), + (1733, 'Red Starfish', 'desc', '1', 'redstarfish', 2, 1, 130, 1, 0), + (1734, 'Referee 1 Guest', 'desc', '1', 'referee_01_guest', 2, 1, 453, 1, 0), + (1736, 'Referee 3 Guest', 'desc', '1', 'referee_03_guest', 2, 1, 453, 1, 0), + (1737, 'Reymysterio', 'desc', '1', 'reymysterio', 2, 1, 460, 1, 0), + (1738, 'Ricflair', 'desc', '1', 'ricflair', 2, 1, 460, 1, 0), + (1739, 'Roddypiper', 'desc', '1', 'roddypiper', 2, 1, 460, 1, 0), + (1740, 'Ronsimmons', 'desc', '1', 'ronsimmons', 2, 1, 460, 1, 0), + (1741, 'Room of the Week', 'desc', '1', 'room_of_the_week', 2, 1, 472, 1, 0), + (1748, 'Sack Costume', 'desc', '1', 'sackcostume', 2, 1, 459, 1, 0), + (1749, 'Safer Internet 2008', 'desc', '1', 'saferinternet2008', 2, 1, 130, 1, 0), + (1750, 'Samsung 1', 'desc', '1', 'samsung1', 2, 1, 470, 1, 0), + (1751, 'Samsung 2', 'desc', '1', 'samsung2', 2, 1, 470, 1, 0), + (1752, 'Samsung 3', 'desc', '1', 'samsung3', 2, 1, 470, 1, 0), + (1753, 'Samsung 4', 'desc', '1', 'samsung4', 2, 1, 470, 1, 0), + (1754, 'Samsung 5', 'desc', '1', 'samsung5', 2, 1, 470, 1, 0), + (1756, 'Santinoma Rella', 'desc', '1', 'santinomarella', 2, 1, 460, 1, 0), + (1758, 'Sasquatch', 'desc', '1', 'sasquatch7', 2, 1, 130, 1, 0), + (1759, 'Sasquatch Hands', 'desc', '1', 'sasquatch_hands', 2, 1, 459, 1, 0), + (1760, 'Satay', 'desc', '1', 'satay', 2, 1, 130, 1, 0), + (1762, 'SE Sticker Competition', 'desc', '1', 'se_sticker_competition', 2, 1, 459, 1, 0), + (1763, 'Seagull 1', 'desc', '1', 'seagull_01', 2, 1, 487, 1, 0), + (1764, 'Seagull 2', 'desc', '1', 'seagull_02', 2, 1, 487, 1, 0), + (1767, 'Sea Shell', 'desc', '1', 'seashell', 2, 1, 487, 1, 0), + (1768, 'Sergeant Slaughter', 'desc', '1', 'sergeantslaughter', 2, 1, 460, 1, 0), + (1769, 'MTV Sticker 1', 'desc', '1', 'sg_mtv_sticker_01', 2, 1, 470, 1, 0), + (1770, 'MTV Sticker 2', 'desc', '1', 'sg_mtv_sticker_02', 2, 1, 470, 1, 0), + (1771, 'MTV Sticker 3', 'desc', '1', 'sg_mtv_sticker_03', 2, 1, 470, 1, 0), + (1772, 'Claws', 'desc', '1', 'claws_lostc_twitchyanim', 2, 1, 487, 1, 0), + (1773, 'Shelton Benjamin', 'desc', '1', 'sheltonbenjamin', 2, 1, 460, 1, 0), + (1774, 'Shrubbery', 'desc', '1', 'shrubbery', 2, 1, 130, 1, 0), + (1780, 'Smichaels', 'desc', '1', 'smichaels', 2, 1, 460, 1, 0), + (1781, 'Snitsky', 'desc', '1', 'snitsky', 2, 1, 460, 1, 0), + (1782, 'Snowball', 'desc', '1', 'snowball', 2, 1, 445, 1, 0), + (1783, 'Snowball Bumpy', 'desc', '1', 'snowball_bumpy', 2, 1, 445, 1, 0), + (1785, 'Soccer Dude 1', 'desc', '1', 'soccer_dude_1', 2, 1, 456, 1, 0), + (1786, 'Soccer Dude 2', 'desc', '1', 'soccer_dude_2', 2, 1, 456, 1, 0), + (1787, 'Soccer Dude 3', 'desc', '1', 'soccer_dude_3', 2, 1, 456, 1, 0), + (1788, 'Soccer Dude 4', 'desc', '1', 'soccer_dude_4', 2, 1, 456, 1, 0), + (1789, 'Soccer Dude 5', 'desc', '1', 'soccer_dude_5', 2, 1, 456, 1, 0), + (1830, 'Sofresh', 'desc', '1', 'sofresh', 2, 1, 451, 1, 0), + (1831, 'spiderwick Goblin 1 L', 'desc', '1', 'spiderwick_goblin1_l', 2, 1, 470, 1, 0), + (1832, 'spiderwick Goblin 1 R', 'desc', '1', 'spiderwick_goblin1_r', 2, 1, 470, 1, 0), + (1833, 'spiderwick Goblin 2 L', 'desc', '1', 'spiderwick_goblin2_l', 2, 1, 470, 1, 0), + (1834, 'spiderwick Goblin 2 R', 'desc', '1', 'spiderwick_goblin2_r', 2, 1, 470, 1, 0), + (1835, 'spiderwick Goblin Anim L', 'desc', '1', 'spiderwick_goblin_anim_l', 2, 1, 470, 1, 0), + (1836, 'spiderwick Goblin Anim R', 'desc', '1', 'spiderwick_goblin_anim_r', 2, 1, 470, 1, 0), + (1837, 'spiderwick Griffin L', 'desc', '1', 'spiderwick_griffin_l', 2, 1, 470, 1, 0), + (1838, 'spiderwick Griffin R', 'desc', '1', 'spiderwick_griffin_r', 2, 1, 470, 1, 0), + (1839, 'spiderwick Sprite 1 L', 'desc', '1', 'spiderwick_sprite1_l', 2, 1, 470, 1, 0), + (1840, 'spiderwick Sprite 1 R', 'desc', '1', 'spiderwick_sprite1_r', 2, 1, 470, 1, 0), + (1841, 'spiderwick Sprite 2 L', 'desc', '1', 'spiderwick_sprite2_l', 2, 1, 470, 1, 0), + (1842, 'spiderwick Sprite 2 R', 'desc', '1', 'spiderwick_sprite2_r', 2, 1, 470, 1, 0), + (1845, 'Spill 1', 'desc', '1', 'spill1', 2, 1, 130, 1, 0), + (1846, 'Spill 2', 'desc', '1', 'spill2', 2, 1, 130, 1, 0), + (1847, 'Spill 3', 'desc', '1', 'spill3', 2, 1, 130, 1, 0), + (1848, 'Spotlight Sticker', 'desc', '1', 'spotlight_sticker', 2, 1, 130, 1, 0), + (1849, 'Spotlight Sticker 2', 'desc', '1', 'spotlight_sticker2_001', 2, 1, 130, 1, 0), + (1852, 'Spray', 'desc', '1', 'spray1', 2, 1, 130, 1, 0), + (1853, 'Spray 2', 'desc', '1', 'spray2', 2, 1, 130, 1, 0), + (1854, 'Squib', 'desc', '1', 'squib', 2, 1, 488, 1, 0), + (1869, 'Stanley Cup Sticker', 'desc', '1', 'stanleycupsticker', 2, 1, 130, 1, 0), + (1872, 'Starburst', 'desc', '1', 'starburst', 2, 1, 470, 1, 0), + (1873, 'Stevie Richards', 'desc', '1', 'stevierichards', 2, 1, 460, 1, 0), + (1877, 'Sticker 3 Years', 'desc', '1', 'sticker_3years', 2, 1, 130, 1, 0), + (1883, 'Sticker Award Bronze', 'desc', '1', 'sticker_award_bronze', 2, 1, 472, 1, 0), + (1884, 'Sticker Award Gold', 'desc', '1', 'sticker_award_gold', 2, 1, 472, 1, 0), + (1886, 'Sticker Award Silver', 'desc', '1', 'sticker_award_silver', 2, 1, 472, 1, 0), + (1888, 'Sticker Bonsai Ninjaf', 'desc', '1', 'sticker_bonsai_ninjaf', 2, 1, 476, 1, 0), + (1889, 'Sticker Bonsai Ninjafa', 'desc', '1', 'sticker_bonsai_ninjafa', 2, 1, 476, 1, 0), + (1890, 'Sticker Bonsai Ninjam', 'desc', '1', 'sticker_bonsai_ninjam', 2, 1, 476, 1, 0), + (1891, 'Sticker Bonsai Ninjama', 'desc', '1', 'sticker_bonsai_ninjama', 2, 1, 476, 1, 0), + (1892, 'Sticker Bonsai Samuraif', 'desc', '1', 'sticker_bonsai_samuraif', 2, 1, 476, 1, 0), + (1893, 'Sticker Bonsai Samuraifa', 'desc', '1', 'sticker_bonsai_samuraifa', 2, 1, 476, 1, 0), + (1894, 'Sticker Bonsai Samuraim', 'desc', '1', 'sticker_bonsai_samuraim', 2, 1, 476, 1, 0), + (1895, 'Sticker Bonsai Samuraima', 'desc', '1', 'sticker_bonsai_samuraima', 2, 1, 476, 1, 0), + (1897, 'Sticker Boxer', 'desc', '1', 'sticker_boxer', 2, 1, 453, 1, 0), + (1898, 'Sticker Caballoons', 'desc', '1', 'sticker_caballoons', 2, 1, 130, 1, 0), + (1899, 'Sticker Cabin', 'desc', '1', 'sticker_cabin', 2, 1, 130, 1, 0), + (1901, 'Sticker Cais 4', 'desc', '1', 'sticker_cais4', 2, 1, 130, 1, 0), + (1902, 'sticker_Cape', 'desc', '1', 'sticker_cape', 2, 1, 459, 1, 0), + (1906, 'Sticker Chica_Tampax', 'desc', '1', 'sticker_chica_tampax', 2, 1, 470, 1, 0), + (1907, 'Sticker Chica_Tampax 1', 'desc', '1', 'sticker_chica_tampax1', 2, 1, 470, 1, 0), + (1908, 'Sticker Chica Tampax 2', 'desc', '1', 'sticker_chica_tampax2', 2, 1, 470, 1, 0), + (1909, 'Sticker Chips', 'desc', '1', 'sticker_chips', 2, 1, 130, 1, 0), + (1910, 'Sticker Clown Anim', 'desc', '1', 'sticker_clown_anim', 2, 1, 453, 1, 0), + (1911, 'Sticker Coffee Stain', 'desc', '1', 'sticker_coffee_stain', 2, 1, 130, 1, 0), + (1912, 'Sticker Coffee Steam Blue', 'desc', '1', 'sticker_coffee_steam_blue', 2, 1, 130, 1, 0), + (1913, 'Sticker Coffee Steam Grey', 'desc', '1', 'sticker_coffee_steam_grey', 2, 1, 130, 1, 0), + (1914, 'Sticker Croco', 'desc', '1', 'sticker_croco', 2, 1, 130, 1, 0), + (1915, 'Sticker DA Blingclock', 'desc', '1', 'sticker_da_blingclock', 2, 1, 130, 1, 0), + (1916, 'Sticker Dreamer', 'desc', '1', 'sticker_dreamer', 2, 1, 130, 1, 0), + (1922, 'Sticker Eraser', 'desc', '1', 'sticker_eraser', 2, 1, 130, 1, 0), + (1926, 'Sticker Fireworkboom 3', 'desc', '1', 'sticker_fireworkboom3', 2, 1, 468, 1, 0), + (1927, 'Sticker Flames', 'desc', '1', 'sticker_flames', 2, 1, 130, 1, 0), + (1932, 'Sticker Gala', 'desc', '1', 'sticker_gala', 2, 1, 467, 1, 0), + (1934, 'Sticker Gentleman', 'desc', '1', 'sticker_gentleman', 2, 1, 453, 1, 0), + (1949, 'Sticker Hole', 'desc', '1', 'sticker_hole', 2, 1, 130, 1, 0), + (1950, 'Sticker Hulkhogan', 'desc', '1', 'sticker_hulkhogan', 2, 1, 459, 1, 0), + (1951, 'Sticker Iheartfools', 'desc', '1', 'sticker_iheartfools', 2, 1, 451, 1, 0), + (1952, 'Sticker Koopa', 'desc', '1', 'sticker_koopa', 2, 1, 465, 1, 0), + (1953, 'Sticker Lonewolf', 'desc', '1', 'sticker_lonewolf', 2, 1, 130, 1, 0), + (1954, 'Sticker Luigi', 'desc', '1', 'sticker_luigi', 2, 1, 465, 1, 0), + (1955, 'Sticker Mamasboy', 'desc', '1', 'sticker_mamasboy', 2, 1, 130, 1, 0), + (1956, 'Sticker Maquillage', 'desc', '1', 'sticker_maquillage', 2, 1, 459, 1, 0), + (1957, 'Sticker Mario', 'desc', '1', 'sticker_mario', 2, 1, 465, 1, 0), + (1958, 'Sticker Masque', 'desc', '1', 'sticker_masque_01', 2, 1, 459, 1, 0), + (1959, 'Sticker Masque 2', 'desc', '1', 'sticker_masque_02', 2, 1, 459, 1, 0), + (1960, 'Sticker Masque 3', 'desc', '1', 'sticker_masque_03', 2, 1, 459, 1, 0), + (1961, 'sticker_Masque 4', 'desc', '1', 'sticker_masque_04', 2, 1, 459, 1, 0), + (1962, 'Sticker Masque 5', 'desc', '1', 'sticker_masque_05', 2, 1, 459, 1, 0), + (1963, 'Sticker Masque Or', 'desc', '1', 'sticker_masque_or', 2, 1, 459, 1, 0), + (1964, 'Sticker Mathoffman', 'desc', '1', 'sticker_mathoffman', 2, 1, 470, 1, 0), + (1965, 'Sticker Mineur', 'desc', '1', 'sticker_mineur', 2, 1, 453, 1, 0), + (1966, 'Sticker Monolithe', 'desc', '1', 'sticker_monolithe', 2, 1, 130, 1, 0), + (1972, 'Sticker Peach', 'desc', '1', 'sticker_peach', 2, 1, 465, 1, 0), + (1986, 'Sticker Sboard 2', 'desc', '1', 'sticker_sboard2', 2, 1, 487, 1, 0), + (1987, 'Sticker Sboard 3', 'desc', '1', 'sticker_sboard3', 2, 1, 487, 1, 0), + (1990, 'Sticker Sleeping Habbo', 'desc', '1', 'sticker_sleeping_habbo', 2, 1, 453, 1, 0), + (1992, 'Sticker Spiky Wristband', 'desc', '1', 'sticker_spiky_wristband', 2, 1, 130, 1, 0), + (1997, 'Sticker Squelette', 'desc', '1', 'sticker_squelette', 2, 1, 488, 1, 0), + (2000, 'Sticker Themepark 2', 'desc', '1', 'sticker_themepark_002', 2, 1, 130, 1, 0), + (2001, 'Sticker Themepark 3', 'desc', '1', 'sticker_themepark_003', 2, 1, 130, 1, 0), + (2002, 'Sticker Tiki Flamesboard', 'desc', '1', 'sticker_tiki_flamesboard', 2, 1, 473, 1, 0), + (2006, 'Sticker Tour', 'desc', '1', 'sticker_tour', 2, 1, 470, 1, 0), + (2010, 'Sticker Trophy Award', 'desc', '1', 'sticker_trophy_award', 2, 1, 130, 1, 0), + (2011, 'Sticker Unclesam', 'desc', '1', 'sticker_unclesam', 2, 1, 468, 1, 0), + (2012, 'Sticker Woodboard', 'desc', '1', 'sticker_woodboard', 2, 1, 487, 1, 0), + (2022, 'Stonecold', 'desc', '1', 'stonecold', 2, 1, 460, 1, 0), + (2023, 'Stray Pixels Winner', 'desc', '1', 'straypixelswinner', 2, 1, 130, 1, 0), + (2024, 'Streaker', 'desc', '1', 'streaker', 2, 1, 453, 1, 0), + (2026, 'Summer Beachballafro', 'desc', '1', 'summer_beachballafro', 2, 1, 459, 1, 0), + (2027, 'Summer Blueberry Left', 'desc', '1', 'summer_blueberry_left', 2, 1, 130, 1, 0), + (2031, 'Summer Blueberry Right', 'desc', '1', 'summer_blueberry_right', 2, 1, 130, 1, 0), + (2033, 'Summer Cloud 1', 'desc', '1', 'summer_cloud1', 2, 1, 130, 1, 0), + (2035, 'Summer Cloud 2', 'desc', '1', 'summer_cloud2', 2, 1, 130, 1, 0), + (2037, 'Summer Cloud 3', 'desc', '1', 'summer_cloud3', 2, 1, 130, 1, 0), + (2039, 'Summer Flowerwreath 2', 'desc', '1', 'summer_flowerwreath', 2, 1, 130, 1, 0), + (2040, 'Summer Kite', 'desc', '1', 'summer_kite', 2, 1, 130, 1, 0), + (2043, 'Summer Rollerblades', 'desc', '1', 'summer_rollerblades', 2, 1, 130, 1, 0), + (2044, 'Summer Rowingboat', 'desc', '1', 'summer_rowingboat', 2, 1, 130, 1, 0), + (2045, 'Summer Skateboard', 'desc', '1', 'summer_skateboard', 2, 1, 130, 1, 0), + (2046, 'Summer Swim Trunk', 'desc', '1', 'summer_swim_trunk', 2, 1, 459, 1, 0), + (2047, 'Summer sticker_Strawberry', 'desc', '1', 'summersticker_strawberry', 2, 1, 130, 1, 0), + (2048, 'Sunflower', 'desc', '1', 'sunflower', 2, 1, 442, 1, 0), + (2050, 'Supercrazy', 'desc', '1', 'supercrazy', 2, 1, 460, 1, 0), + (2053, 'Sushi Ika Squid', 'desc', '1', 'sushi_ika_squid', 2, 1, 476, 1, 0), + (2054, 'Sushi Ikura Caviar', 'desc', '1', 'sushi_ikura_caviar', 2, 1, 476, 1, 0), + (2055, 'Sushi Kohada Mackerel', 'desc', '1', 'sushi_kohada_mackerel', 2, 1, 476, 1, 0), + (2056, 'Sushi Maguro', 'desc', '1', 'sushi_maguro', 2, 1, 476, 1, 0), + (2057, 'Sushi Tamago Egg', 'desc', '1', 'sushi_tamago_egg', 2, 1, 476, 1, 0), + (2058, 'Sushi Uni Sea Urchin', 'desc', '1', 'sushi_uni_sea_urchin', 2, 1, 476, 1, 0), + (2061, 'Tahti', 'desc', '1', 'tahti', 2, 1, 479, 1, 0), + (2062, 'Tall Ship', 'desc', '1', 'tall_ship', 2, 1, 489, 1, 0), + (2064, 'Tampax Signboard', 'desc', '1', 'tampax_signboard', 2, 1, 470, 1, 0), + (2069, 'Thanksgiving 07', 'desc', '1', 'thanksgiving07', 2, 1, 130, 1, 0), + (2070, 'The Great Khali', 'desc', '1', 'thegreatkhali', 2, 1, 460, 1, 0), + (2071, 'The Miz', 'desc', '1', 'themiz', 2, 1, 460, 1, 0), + (2072, 'The Safety Box', 'desc', '1', 'thesafetybox', 2, 1, 130, 1, 0), + (2073, 'Tiki Cloudtiki L', 'desc', '1', 'tiki_cloudtiki_l', 2, 1, 473, 1, 0), + (2074, 'Tiki Cloudtiki R', 'desc', '1', 'tiki_cloudtiki_r', 2, 1, 473, 1, 0), + (2075, 'Tiki Flowersboard', 'desc', '1', 'tiki_flowersboard', 2, 1, 473, 1, 0), + (2076, 'Tiki Greenboard', 'desc', '1', 'tiki_greenboard', 2, 1, 473, 1, 0), + (2077, 'Tiki Moarider F', 'desc', '1', 'tiki_moarider_f', 2, 1, 473, 1, 0), + (2078, 'Tiki Moarider M', 'desc', '1', 'tiki_moarider_m', 2, 1, 473, 1, 0), + (2079, 'Tiki Planttiki L', 'desc', '1', 'tiki_planttiki_l', 2, 1, 473, 1, 0), + (2080, 'Tiki Planttiki R', 'desc', '1', 'tiki_planttiki_r', 2, 1, 473, 1, 0), + (2081, 'Tiki Skulltiki L', 'desc', '1', 'tiki_skulltiki_l', 2, 1, 473, 1, 0), + (2082, 'Tiki Skulltiki R', 'desc', '1', 'tiki_skulltiki_r', 2, 1, 473, 1, 0), + (2083, 'Tiki Watertiki L', 'desc', '1', 'tiki_watertiki_l', 2, 1, 473, 1, 0), + (2084, 'Tiki Watertiki R', 'desc', '1', 'tiki_watertiki_r', 2, 1, 473, 1, 0), + (2085, 'Tiki Woodboard', 'desc', '1', 'tiki_woodboard', 2, 1, 473, 1, 0), + (2086, 'Toffee Tarra', 'desc', '1', 'toffee_tarra', 2, 1, 470, 1, 0), + (2087, 'Tokfia', 'desc', '1', 'tokfia', 2, 1, 453, 1, 0), + (2088, 'Tommy Dreamer', 'desc', '1', 'tommydreamer', 2, 1, 460, 1, 0), + (2089, 'Tomo', 'desc', '1', 'tomo', 2, 1, 453, 1, 0), + (2091, 'Torrie Wilson', 'desc', '1', 'torriewilson', 2, 1, 460, 1, 0), + (2092, 'Tproll', 'desc', '1', 'tproll', 2, 1, 488, 1, 0), + (2116, 'Trax Goldrecord', 'desc', '1', 'traxgoldrecord', 2, 1, 130, 1, 0), + (2118, 'Tree Owl', 'desc', '1', 'tree_owl', 2, 1, 130, 1, 0), + (2119, 'Treestump', 'desc', '1', 'treestump', 2, 1, 445, 1, 0), + (2120, 'Tripleh', 'desc', '1', 'tripleh', 2, 1, 460, 1, 0), + (2122, 'UK Childline', 'desc', '1', 'uk_childline_sticker', 2, 1, 451, 1, 0), + (2123, 'UK Habbo X', 'desc', '1', 'uk_habbo_x_sticker', 2, 1, 130, 1, 0), + (2124, 'UK Pixel Maze', 'desc', '1', 'uk_pixel_maze_sticker', 2, 1, 451, 1, 0), + (2126, 'Umaga', 'desc', '1', 'umaga', 2, 1, 460, 1, 0), + (2128, 'Undertaker', 'desc', '1', 'undertaker', 2, 1, 460, 1, 0), + (2134, 'Valentine Cupido', 'desc', '1', 'val_cupido_anim', 2, 1, 489, 1, 0), + (2136, 'Valentine Costume 3', 'desc', '1', 'val_lovecostume3', 2, 1, 489, 1, 0), + (2139, 'Valentine Lovedice', 'desc', '1', 'val_lovedice', 2, 1, 489, 1, 0), + (2141, 'Valentine Barbwire Horis', 'desc', '1', 'val_sticker_barbwire_horis', 2, 1, 489, 1, 0), + (2143, 'Valentine Barbwire Vert', 'desc', '1', 'val_sticker_barbwire_vert', 2, 1, 489, 1, 0), + (2146, 'Valentine Bartender', 'desc', '1', 'val_sticker_bartender', 2, 1, 489, 1, 0), + (2147, 'Valentine Bartender2', 'desc', '1', 'val_sticker_bartender2', 2, 1, 489, 1, 0), + (2150, 'Valentine Crew', 'desc', '1', 'val_sticker_crew', 2, 1, 489, 1, 0), + (2151, 'Valentine Croco', 'desc', '1', 'val_sticker_croco', 2, 1, 489, 1, 0), + (2152, 'Valentine Cupid Arrow', 'desc', '1', 'val_sticker_cupid_arrow', 2, 1, 489, 1, 0), + (2153, 'Valentine Femalecaptain', 'desc', '1', 'val_sticker_femalecaptain', 2, 1, 489, 1, 0), + (2157, 'Valentine Malecaptain', 'desc', '1', 'val_sticker_malecaptain', 2, 1, 489, 1, 0), + (2158, 'Valentine Malecrew', 'desc', '1', 'val_sticker_malecrew', 2, 1, 489, 1, 0), + (2159, 'Valentine Rosewire Corner', 'desc', '1', 'val_sticker_rosewire_corner', 2, 1, 489, 1, 0), + (2162, 'Valentine Rosewire Horis', 'desc', '1', 'val_sticker_rosewire_horis', 2, 1, 489, 1, 0), + (2163, 'Valentine Rosewire Vert', 'desc', '1', 'val_sticker_rosewire_vert', 2, 1, 489, 1, 0), + (2165, 'Valentine Skull 360', 'desc', '1', 'val_sticker_skull360', 2, 1, 489, 1, 0), + (2166, 'Valentine Skull 360 Circle', 'desc', '1', 'val_sticker_skull360_circle', 2, 1, 489, 1, 0), + (2167, 'Valentine Stewardess', 'desc', '1', 'val_sticker_stewardess', 2, 1, 489, 1, 0), + (2168, 'Valentine Stewardess 2', 'desc', '1', 'val_sticker_stewardess2', 2, 1, 489, 1, 0), + (2169, 'Valentine Storm Costume', 'desc', '1', 'val_sticker_storm-costume', 2, 1, 489, 1, 0), + (2171, 'Valentine Voodoo Suit', 'desc', '1', 'val_sticker_voodoo_suit', 2, 1, 489, 1, 0), + (2172, 'Valentine Captain', 'desc', '1', 'valcaptain', 2, 1, 489, 1, 0), + (2174, 'Valentine Welcome Sticker', 'desc', '1', 'valentine_welcome_sticker', 2, 1, 489, 1, 0), + (2177, 'Valvenis', 'desc', '1', 'valvenis', 2, 1, 460, 1, 0), + (2178, 'Vanilja Tarra', 'desc', '1', 'vanilja_tarra', 2, 1, 470, 1, 0), + (2179, 'Venezuela', 'desc', '1', 'venezuela', 2, 1, 456, 1, 0), + (2180, 'Venti', 'desc', '1', 'venti', 2, 1, 130, 1, 0), + (2181, 'Veronicas', 'desc', '1', 'veronicas', 2, 1, 453, 1, 0), + (2182, 'Vertical Ink', 'desc', '1', 'verticalink', 2, 1, 469, 1, 0), + (2184, 'Victoria', 'desc', '1', 'victoria', 2, 1, 460, 1, 0), + (2185, 'Vincent Viga', 'desc', '1', 'vincentviga', 2, 1, 453, 1, 0), + (2188, 'VIP Pin', 'desc', '1', 'vip_pin', 2, 1, 472, 1, 0), + (2193, 'Wood A', 'desc', '1', 'wood_a', 2, 1, 486, 1, 0), + (2194, 'Wood Acircle', 'desc', '1', 'wood_acircle', 2, 1, 486, 1, 0), + (2195, 'Wood Acsent', 'desc', '1', 'wood_acsent', 2, 1, 486, 1, 0), + (2196, 'Wood Acsent 2', 'desc', '1', 'wood_acsent2', 2, 1, 486, 1, 0), + (2197, 'Wood Adots', 'desc', '1', 'wood_adots', 2, 1, 486, 1, 0), + (2198, 'Wood B', 'desc', '1', 'wood_b', 2, 1, 486, 1, 0), + (2199, 'Wood C', 'desc', '1', 'wood_c', 2, 1, 486, 1, 0), + (2200, 'Wood Comma', 'desc', '1', 'wood_comma', 2, 1, 486, 1, 0), + (2201, 'Wood D', 'desc', '1', 'wood_d', 2, 1, 486, 1, 0), + (2202, 'Wood Dot', 'desc', '1', 'wood_dot', 2, 1, 486, 1, 0), + (2203, 'Wood E', 'desc', '1', 'wood_e', 2, 1, 486, 1, 0), + (2204, 'Wood Exclamation', 'desc', '1', 'wood_exclamation', 2, 1, 486, 1, 0), + (2205, 'Wood F', 'desc', '1', 'wood_f', 2, 1, 486, 1, 0), + (2206, 'Wood G', 'desc', '1', 'wood_g', 2, 1, 486, 1, 0), + (2207, 'Wood H', 'desc', '1', 'wood_h', 2, 1, 486, 1, 0), + (2208, 'Wood I', 'desc', '1', 'wood_i', 2, 1, 486, 1, 0), + (2209, 'Wood J', 'desc', '1', 'wood_j', 2, 1, 486, 1, 0), + (2210, 'Wood K', 'desc', '1', 'wood_k', 2, 1, 486, 1, 0), + (2211, 'Wood L', 'desc', '1', 'wood_l', 2, 1, 486, 1, 0), + (2212, 'Wood M', 'desc', '1', 'wood_m', 2, 1, 486, 1, 0), + (2213, 'Wood N', 'desc', '1', 'wood_n', 2, 1, 486, 1, 0), + (2214, 'Wood O', 'desc', '1', 'wood_o', 2, 1, 486, 1, 0), + (2215, 'Wood Odots', 'desc', '1', 'wood_odots', 2, 1, 486, 1, 0), + (2216, 'Wood P', 'desc', '1', 'wood_p', 2, 1, 486, 1, 0), + (2217, 'Wood Q', 'desc', '1', 'wood_q', 2, 1, 486, 1, 0), + (2218, 'Wood Question', 'desc', '1', 'wood_question', 2, 1, 486, 1, 0), + (2219, 'Wood R', 'desc', '1', 'wood_r', 2, 1, 486, 1, 0), + (2220, 'Wood S', 'desc', '1', 'wood_s', 2, 1, 486, 1, 0), + (2221, 'Wood T', 'desc', '1', 'wood_t', 2, 1, 486, 1, 0), + (2222, 'Wood U', 'desc', '1', 'wood_u', 2, 1, 486, 1, 0), + (2223, 'Wood Undermark', 'desc', '1', 'wood_undermark', 2, 1, 486, 1, 0), + (2224, 'Wood V', 'desc', '1', 'wood_v', 2, 1, 486, 1, 0), + (2225, 'Wood W', 'desc', '1', 'wood_w', 2, 1, 486, 1, 0), + (2226, 'Wood X', 'desc', '1', 'wood_x', 2, 1, 486, 1, 0), + (2227, 'Wood Y', 'desc', '1', 'wood_y', 2, 1, 486, 1, 0), + (2228, 'Wood Z', 'desc', '1', 'wood_z', 2, 1, 486, 1, 0), + (2231, 'Wordwrestling', 'desc', '1', 'wwemvp', 2, 1, 460, 1, 0), + (2286, 'Xmas 3000 Animated Sticker', 'desc', '1', 'xmassticker_anim_3000', 2, 1, 445, 1, 0), + (2288, 'Yearbook Ribbon Sticker', 'desc', '1', 'yearbook_ribbon_sticker', 2, 1, 472, 1, 0), + (2289, 'Yellow Starfish', 'desc', '1', 'yellowstarfish', 2, 1, 130, 1, 0), + (2291, 'Zack Ryder', 'desc', '1', 'zackryder', 2, 1, 460, 1, 0), + (2294, 'Kaatissakki Tausta', 'desc', '4', '27368_kaatissakki_tausta', 2, 1, 104, 1, 0), + (2295, 'Appart. 723 Scene', 'desc', '4', '27419_appart732_scene', 2, 1, 104, 1, 0), + (2296, 'Get it Card Background', 'desc', '4', '27835_getitcard_bg', 2, 1, 104, 1, 0), + (2297, 'GSOK', 'desc', '4', '27857_gsok_928x1360', 2, 1, 104, 1, 0), + (2302, 'Productboard', 'desc', '4', '928x1360_productboard', 2, 1, 104, 1, 0), + (2304, 'Abrinq Infobus G', 'desc', '4', 'abrinq_infobusg', 2, 1, 104, 1, 0), + (2305, 'Acma Cork Background', 'desc', '4', 'acma_cork_bg', 2, 1, 104, 1, 0), + (2595, 'Scifi Space Background', 'desc', '4', 'groupbg_scifi_space2', 2, 1, 104, 1, 0), + (2308, 'Amango Background', 'desc', '4', 'amango_bg', 2, 1, 104, 1, 0), + (2310, 'Armin van Buren Background', 'desc', '4', 'arminvanbuuren_928x1360', 2, 1, 104, 1, 0), + (2312, 'AU Rock The Schools Background', 'desc', '4', 'au_rocktheschools_bg', 2, 1, 104, 1, 0), + (2313, 'AU Rock The Schools Background 2', 'desc', '4', 'au_rocktheschools_bg_v2', 2, 1, 104, 1, 0), + (2314, 'Background Tour', 'desc', '4', 'background_tour', 2, 1, 104, 1, 0), + (2316, 'Beachbunny Wallpaper', 'desc', '4', 'beachbunny_wallpaper', 2, 1, 104, 1, 0), + (2317, 'SPI Japaneese Petit', 'desc', '4', 'bg_27372_spi_jap_petit_03', 2, 1, 104, 1, 0), + (2318, 'Comic Style Orange Background', 'desc', '4', 'bg_28221_comic_style_orange_001', 2, 1, 104, 1, 0), + (2320, 'Background EF', 'desc', '4', 'bg_background_ef', 2, 1, 104, 1, 0), + (2330, 'Colour 01 Background', 'desc', '4', 'bg_colour_01', 2, 1, 104, 1, 0), + (2345, 'Colour 16 Background', 'desc', '4', 'bg_colour_16', 2, 1, 104, 1, 0), + (2348, 'Comic Sisters Background', 'desc', '4', 'bg_comic_sisters', 2, 1, 104, 1, 0), + (2350, 'Dark Floors Background', 'desc', '4', 'bg_dark_floors', 2, 1, 104, 1, 0), + (2598, 'Hotel background', 'desc', '4', 'hotel', 2, 1, 104, 1, 0), + (2353, 'Fansites Background', 'desc', '4', 'bg_fansites', 2, 1, 104, 1, 0), + (2354, 'Goth Pattern Background', 'desc', '4', 'bg_goth_pattern', 2, 1, 104, 1, 0), + (2356, 'Habbo Lido Background', 'desc', '4', 'bg_habbolido', 2, 1, 104, 1, 0), + (2364, 'Kerrang', 'desc', '4', 'bg_kerrang2', 2, 1, 104, 1, 0), + (2370, 'Lido Flat Background', 'desc', '4', 'bg_lido_flat', 2, 1, 104, 1, 0), + (2371, 'Lido Background', 'desc', '4', 'bg_lidoo', 2, 1, 104, 1, 0), + (2374, 'Natasha Bedingfield Background', 'desc', '4', 'bg_natashabedingfield', 2, 1, 104, 1, 0), + (2377, 'Official Fansites Background', 'desc', '4', 'bg_official_fansites2', 2, 1, 104, 1, 0), + (2379, 'Pattern Abstract Background 2', 'desc', '4', 'bg_pattern_abstract2', 2, 1, 104, 1, 0), + (2382, 'Pattern Bulb Background', 'desc', '4', 'bg_pattern_bulb', 2, 1, 104, 1, 0), + (2383, 'Pattern Carpants Background', 'desc', '4', 'bg_pattern_carpants', 2, 1, 104, 1, 0), + (11300, 'Traxplayer', 'Play Trax on your homepage.', '5', 'traxplayerwidget', 0, 1, 100, 1, -1), + (2391, 'Pattern Floral Background', 'desc', '4', 'bg_pattern_floral_test', 2, 1, 104, 1, 0), + (10600, 'My groups widget', 'Displays all your groups', '2', 'groupswidget', 0, 1, 100, 1, 1), + (10400, 'My Badges', 'Show your badges on your page.', '2', 'badgeswidget', 0, 1, 100, 1, 1), + (10300, 'High scores widget', 'Display your high scores', '2', 'highscoreswidget', 0, 1, 100, 1, 1), + (2396, 'Poptarts CV Background', 'desc', '4', 'bg_poptarts_cv', 2, 1, 104, 1, 0), + (2397, 'Poptarts SB Background', 'desc', '4', 'bg_poptarts_sb', 2, 1, 104, 1, 0), + (11100, 'Guestbook', 'Guestbook Widget', '5', 'guestbookwidget', 0, 1, 100, 1, -1), + (11000, 'Groups Info widget', 'Displays infomation about the group.', '5', 'groupinfowidget', 0, 1, 100, 1, -1), + (10900, 'Rating widget', 'Allows members to vote on your page. You cannot vote for yourself.', '2', 'ratingwidget', 0, 1, 100, 2, 1), + (10500, 'My friends widget', 'Displays all your friends', '2', 'friendswidget', 0, 1, 100, 1, 1), + (2406, 'Sexy Dance Background', 'desc', '4', 'bg_sexy_dance_2_group_opt2', 2, 1, 104, 1, 0), + (2408, 'Solid Black Background', 'desc', '4', 'bg_solid_black', 2, 1, 104, 1, 0), + (2409, 'Solid White Background', 'desc', '4', 'bg_solid_white', 2, 1, 104, 1, 0), + (2410, 'Bobbaheart', 'desc', '4', 'bg_bobbaheart', 2, 1, 104, 1, 0), + (2414, 'Unofficial Fansites Background', 'desc', '4', 'bg_unofficial_fansites', 2, 1, 104, 1, 0), + (2423, 'Bionicle 2', 'desc', '4', 'bionicle2', 2, 1, 104, 1, 0), + (2424, 'Bubblejuice Background', 'desc', '4', 'bubblejuice_bg', 2, 1, 104, 1, 0), + (2601, 'Wallpaper Inked', 'desc', '4', 'wallpaper_inked', 2, 1, 104, 1, 0), + (2427, 'Cheesewedge Background', 'desc', '4', 'cheesewedge_wallpaper', 2, 1, 104, 1, 0), + (2429, 'Christmas Background 2 ', 'desc', '4', 'christmas2007bg_001', 2, 1, 104, 1, 0), + (2430, 'CN Background', 'desc', '4', 'cn_mgpam_bg', 2, 1, 104, 1, 0), + (2431, 'CN Background 2', 'desc', '4', 'cn_mgpam_bg_v2', 2, 1, 104, 1, 0), + (2432, 'CN Background 3', 'desc', '4', 'cn_mgpam_bg_v3', 2, 1, 104, 1, 0), + (2434, 'Comic Style', 'desc', '4', 'comic_style', 2, 1, 104, 1, 0), + (2435, 'Dia de Internet 2008', 'desc', '4', 'diadeinternet2008', 2, 1, 104, 1, 0), + (2437, 'Donnas Background', 'desc', '4', 'donnas_wallpaper', 2, 1, 104, 1, 0), + (2438, 'Earthday Background', 'desc', '4', 'earthday_bk', 2, 1, 104, 1, 0), + (2448, 'ES Calandar Background', 'desc', '4', 'es_calendarbg', 2, 1, 104, 1, 0), + (2449, 'ES Italia Background', 'desc', '4', 'es_wallpaper_italia', 2, 1, 104, 1, 0), + (2450, 'ES Obrero Background', 'desc', '4', 'es_wallpaper_obrero', 2, 1, 104, 1, 0), + (2451, 'ES Sralim Background', 'desc', '4', 'es_wallpaper_sralim', 2, 1, 104, 1, 0), + (2452, 'Executive Background', 'desc', '4', 'exe_background', 2, 1, 104, 1, 0), + (2453, 'Executive Wood Background', 'desc', '4', 'exe_wood_background', 2, 1, 104, 1, 0), + (2604, 'Xmas Starsky ', 'desc', '4', 'xmas_bgpattern_starsky', 2, 1, 104, 1, 0), + (2457, 'Fantastic Four 1', 'desc', '4', 'fantastic42', 2, 1, 104, 1, 0), + (2459, 'Fantastic Four', 'desc', '4', 'fantasticfour', 2, 1, 104, 1, 0), + (2462, 'Felix Ryhmasivutaustakuva', 'desc', '4', 'felix_ryhmasivutaustakuva', 2, 1, 104, 1, 0), + (2464, 'FI Linnamaki Background', 'desc', '4', 'fi_linnanmaki_bg', 2, 1, 104, 1, 0), + (2465, 'FI Puffet Background', 'desc', '4', 'fi_puffet_bg', 2, 1, 104, 1, 0), + (2466, 'Fondo Habbo Cibervoluntarios', 'desc', '4', 'fondo_habbo_cibervoluntarios', 2, 1, 104, 1, 0), + (2467, 'FR Spiderwick', 'desc', '4', 'fr_spiderwick', 2, 1, 104, 1, 0), + (2468, 'Global World Background', 'desc', '4', 'globalw_background', 2, 1, 104, 1, 0), + (2599, 'Tiki Firehead Background', 'desc', '4', 'tiki_firehead', 3, 1, 104, 1, 0), + (2600, 'Wallpaper 4th', 'desc', '4', 'wallpaper_4th', 2, 1, 104, 1, 0), + (2471, 'Grandi Habbo Ryhma', 'desc', '4', 'grandi_habbo_ryhma', 2, 1, 104, 1, 0), + (2472, 'Snowbattle Background 2', 'desc', '4', 'grouppage_snowbattle2', 2, 1, 104, 1, 0), + (2594, 'Cheetos Background 2', 'desc', '4', 'fondo_habbo_02', 2, 1, 104, 1, 0), + (2475, 'Guidesgroup Background', 'desc', '4', 'guidesgroup_bg', 2, 1, 104, 1, 0), + (2478, 'Habbo Ryhmatausta', 'desc', '4', 'habbo_ryhmatausta', 2, 1, 104, 1, 0), + (2479, 'Habbo Social Game', 'desc', '4', 'habbo_social_game_001_opt', 2, 1, 104, 1, 0), + (2480, 'Habbo Social Game 2', 'desc', '4', 'habbo_social_game_002', 2, 1, 104, 1, 0), + (2482, 'Habbo Classifieds Background', 'desc', '4', 'habboclassifieds', 2, 1, 104, 1, 0), + (2483, 'Habbo Fest 2008 Background', 'desc', '4', 'habbofest2008_bg', 2, 1, 104, 1, 0), + (2485, 'Habboguide Background', 'desc', '4', 'habboguide', 2, 1, 104, 1, 0), + (2486, 'Habborella Sea Background', 'desc', '4', 'habborella_sea_bg', 2, 1, 104, 1, 0), + (2487, 'Habborella Background', 'desc', '4', 'habborellabg', 2, 1, 104, 1, 0), + (2488, 'Habbos Background', 'desc', '4', 'habbos_group', 2, 1, 104, 1, 0), + (2491, 'Habbox Background', 'desc', '4', 'habbox', 2, 1, 104, 1, 0), + (2493, 'Hanna Montana Background', 'desc', '4', 'hannamontanawp', 2, 1, 104, 1, 0), + (2494, 'HC Machine Background', 'desc', '4', 'hc_bg_machine', 2, 1, 104, 1, 0), + (2495, 'HC Pillow Background', 'desc', '4', 'hc_bg_pillow', 2, 1, 104, 1, 0), + (2496, 'HC Royal Background', 'desc', '4', 'hc_bg_royal', 2, 1, 104, 1, 0), + (2497, 'Dediee', 'desc', '4', 'hmf_928x1360_dediee', 2, 1, 104, 1, 0), + (2498, 'Principale', 'desc', '4', 'hmf_928x1360_principale', 2, 1, 104, 1, 0), + (2499, 'Principale 2', 'desc', '4', 'hmf_928x1360_principale_b', 2, 1, 104, 1, 0), + (2501, 'Hundredmillion Background', 'desc', '4', 'hundredmillion_bg', 2, 1, 104, 1, 0), + (2508, 'Infobus SEM Logo', 'desc', '4', 'infobus_abrinq_sem_logo', 2, 1, 104, 1, 0), + (2511, 'Jordin Parks', 'desc', '4', 'jordinparks', 2, 1, 104, 1, 0), + (2513, 'Japaneese Background', 'desc', '4', 'jp_prom_bg', 2, 1, 104, 1, 0), + (2514, 'Japaneese Valentine', 'desc', '4', 'jp_valentine', 2, 1, 104, 1, 0), + (2515, 'July Wallpaper', 'desc', '4', 'july408_wallpaper', 2, 1, 104, 1, 0), + (2516, 'Kerrang', 'desc', '4', 'kerrang2', 2, 1, 104, 1, 0), + (2517, 'KFP Background', 'desc', '4', 'kfp_grouppage_bg', 2, 1, 104, 1, 0), + (2603, 'Xmas 2009 Snowing', 'desc', '4', 'xmas2009_bg_snowing', 2, 1, 104, 1, 0), + (2520, 'Kir Background', 'desc', '4', 'kir_grouppage_bg', 2, 1, 104, 1, 0), + (2522, 'Kungfu Background', 'desc', '4', 'kungfu_bg', 2, 1, 104, 1, 0), + (2525, 'Makeover Background', 'desc', '4', 'makeover', 2, 1, 104, 1, 0), + (2526, 'Manteli Background', 'desc', '4', 'manteli_bg', 2, 1, 104, 1, 0), + (2527, 'Meet Dave Background', 'desc', '4', 'meet_dave_groupbg_01', 2, 1, 104, 1, 0), + (2528, 'Meet Dave Background 2', 'desc', '4', 'meet_dave_groupbg_02', 2, 1, 104, 1, 0), + (2529, 'Misshabbo Scene', 'desc', '4', 'misshabbo_scene', 2, 1, 104, 1, 0), + (2530, 'Mmoore Wallpaper', 'desc', '4', 'mmoorewallpaper', 2, 1, 104, 1, 0), + (2531, 'MMS', 'desc', '4', 'mms', 2, 1, 104, 1, 0), + (2532, 'Netari Background', 'desc', '4', 'netaribg', 2, 1, 104, 1, 0), + (2536, 'Newyear Fireworks Background 2', 'desc', '4', 'newyear_bg_fireworks2', 2, 1, 104, 1, 0), + (2537, 'Green Background', 'desc', '4', 'nl_green_bg', 2, 1, 104, 1, 0), + (2538, 'NS France', 'desc', '4', 'nsfrance', 2, 1, 104, 1, 0), + (2539, 'NS France 2', 'desc', '4', 'nsfrance2', 2, 1, 104, 1, 0), + (2540, 'OB', 'desc', '4', 'ob1', 2, 1, 104, 1, 0), + (2541, 'OB 2', 'desc', '4', 'ob2', 2, 1, 104, 1, 0), + (2542, 'Orca', 'desc', '4', 'orca', 2, 1, 104, 1, 0), + (2544, 'Poptarts CV', 'desc', '4', 'poptarts_cv', 2, 1, 104, 1, 0), + (2546, 'Promofthedead Wallpaper', 'desc', '4', 'promofthedead_wallpaper', 2, 1, 104, 1, 0), + (2547, 'Random Habbos', 'desc', '4', 'random_habbos', 2, 1, 104, 1, 0), + (2548, 'Robojam Wallpaper', 'desc', '4', 'robojam_wallpaper', 2, 1, 104, 1, 0), + (2549, 'Room of the Week Background', 'desc', '4', 'wallpaper_rotw', 2, 1, 104, 1, 0), + (2552, 'Safetyweek Background 3', 'desc', '4', 'safetyweek2008_bg', 2, 1, 104, 1, 0), + (2553, 'Samsungclouds', 'desc', '4', 'samsungclouds', 2, 1, 104, 1, 0), + (2554, 'Samsunlight', 'desc', '4', 'samsungnight', 2, 1, 104, 1, 0), + (2555, 'Sasquatch Background', 'desc', '4', 'sasquatch_hhbg3', 2, 1, 104, 1, 0), + (2556, 'Scarecrow Background', 'desc', '4', 'scarecrowbg', 2, 1, 104, 1, 0), + (2557, 'Animax Keroro', 'desc', '4', 'animax_keroro', 2, 1, 104, 1, 0), + (2558, 'MTV Background', 'desc', '4', 'sg_mtv_grouppage_bg_v1', 2, 1, 104, 1, 0), + (2559, 'MTV Background 2', 'desc', '4', 'sg_mtv_grouppage_bg_v2', 2, 1, 104, 1, 0), + (2560, 'Shabbo Line', 'desc', '4', 'shabboline', 2, 1, 104, 1, 0), + (2564, 'Simpleplan Background', 'desc', '4', 'simpleplan_bg', 2, 1, 104, 1, 0), + (2566, 'Slamdunk', 'desc', '4', 'slamdunk', 2, 1, 104, 1, 0), + (2567, 'Snowstorm Background', 'desc', '4', 'snowstorm_bg', 2, 1, 104, 1, 0), + (2568, 'Sofresh Background', 'desc', '4', 'sofresh_bg', 2, 1, 104, 1, 0), + (2569, 'Solid Background Black', 'desc', '4', 'solid_bg_black', 2, 1, 104, 1, 0), + (2570, 'Solid Background White', 'desc', '4', 'solid_bg_white', 2, 1, 104, 1, 0), + (2571, 'Spiderwick Beware', 'desc', '4', 'spiderwick_beware', 2, 1, 104, 1, 0), + (2572, 'Spiderwick Fairy', 'desc', '4', 'spiderwick_fairy', 2, 1, 104, 1, 0), + (2573, 'Spiderwick Goblin', 'desc', '4', 'spiderwick_goblin', 2, 1, 104, 1, 0), + (2574, 'Battleball Background', 'desc', '4', 'BB_Group2', 2, 1, 104, 1, 0), + (2583, 'Stray Pixel Background', 'desc', '4', 'straypixelsbg', 2, 1, 104, 1, 0), + (2584, 'Streaming 1', 'desc', '4', 'streaming001', 2, 1, 104, 1, 0), + (2585, 'Streaming 2', 'desc', '4', 'streaming002', 2, 1, 104, 1, 0), + (2586, 'Streaming 3', 'desc', '4', 'streaming003', 2, 1, 104, 1, 0), + (2587, 'Sttrinians Blackboard', 'desc', '4', 'sttriniansblackboard', 2, 1, 104, 1, 0), + (2588, 'Sttrinians Group', 'desc', '4', 'sttriniansgroup', 2, 1, 104, 1, 0), + (2590, 'Summer Background Optimal', 'desc', '4', 'summer_bg_optimal', 2, 1, 104, 1, 0), + (2592, 'Fisica o Quimica Background', 'desc', '4', 'bg_Fondo_FoQB', 2, 1, 104, 1, 0), + (2593, 'Cheetos Background 1', 'desc', '4', 'Cheetos_ES_bg_v1', 2, 1, 104, 1, 0), + (1985, 'Surf', 'desc', '1', 'sticker_tiki_flamesboard', 2, 1, 487, 1, 0), + (2596, 'Tokiohotel Wallpaper', 'desc', '4', 'tokiohotel2', 2, 1, 104, 1, 0), + (2597, 'Tokiohotel Scream Wallpaper', 'desc', '4', 'tokiohotel_scream_wallpaper', 2, 1, 104, 1, 0), + (2609, 'VIP Group', 'desc', '4', 'vip_group', 2, 1, 104, 1, 0), + (2612, 'Wallepixar Background', 'desc', '4', 'wallepixar_bg', 2, 1, 104, 1, 0), + (2613, 'Wallpaper 1', 'desc', '4', 'wallpaper1', 2, 1, 104, 1, 0), + (2618, 'Wallpaper Bonsai', 'desc', '4', 'wallpaper_bonsai', 2, 1, 104, 1, 0), + (2619, 'Wallpaper Cais', 'desc', '4', 'wallpaper_cais4', 2, 1, 104, 1, 0), + (2602, 'Wobble squabble Background', 'desc', '4', 'WS_Group2', 3, 1, 104, 1, 0), + (2621, 'Wallpaper Mshepard', 'desc', '4', 'wallpaper_mshepard', 2, 1, 104, 1, 0), + (2622, 'Wallpaper Newsiesca', 'desc', '4', 'wallpaper_newsiesca', 2, 1, 104, 1, 0), + (2623, 'Wallpaper Veronicas', 'desc', '4', 'wallpaper_veronicas', 2, 1, 104, 1, 0), + (2624, 'Wallpaper Victoriaday', 'desc', '4', 'wallpaper_victoriaday', 2, 1, 104, 1, 0), + (2625, 'Welcoming Party', 'desc', '4', 'welcoming_party', 2, 1, 104, 1, 0), + (2626, 'Wrestlemania Nowayout Wallpaper', 'desc', '4', 'wwe_nowayout_wallpaper', 2, 1, 104, 1, 0), + (2627, 'Wrestlemania Wallpaper', 'desc', '4', 'wwe_wallpaper', 2, 1, 104, 1, 0), + (2628, 'Wrestlemania Big Battle', 'desc', '4', 'wwe_wrestlemania_big_battle', 2, 1, 104, 1, 0), + (2629, 'Wrestlemania Bunnymania', 'desc', '4', 'wwe_wrestlemania_bunnymania', 2, 1, 104, 1, 0), + (2630, 'Wrestlemania Ladder Match', 'desc', '4', 'wwe_wrestlemania_ladder_match', 2, 1, 104, 1, 0), + (2631, 'Wrestlemania Main', 'desc', '4', 'wwe_wrestlemania_main', 2, 1, 104, 1, 0), + (2632, 'Wrestlemania Triple Champ', 'desc', '4', 'wwe_wrestlemania_triple_champ', 2, 1, 104, 1, 0), + (2633, 'Wrestlemania World Champ', 'desc', '4', 'wwe_wrestlemania_world_champ', 2, 1, 104, 1, 0), + (2645, 'Xmas Gifts Background 2', 'desc', '4', 'xmas_gifts_gb', 2, 1, 104, 1, 0), + (2649, 'Yearbook Wallpaper', 'desc', '4', 'yearbook_wallpaper', 2, 1, 104, 1, 0), + (1, 'Genie Fire Head', 'desc', '1', 'geniefirehead', 2, 1, 459, 1, 0), + (2781, 'blue_diner_a', 'desc', '1', 'blue_diner_a', 2, 1, 480, 1, 0), + (2782, 'blue_diner_a_umlaut', 'desc', '1', 'blue_diner_a_umlaut', 2, 1, 480, 1, 0), + (2783, 'blue_diner_ae', 'desc', '1', 'blue_diner_ae', 2, 1, 480, 1, 0), + (2784, 'blue_diner_b', 'desc', '1', 'blue_diner_b', 2, 1, 480, 1, 0), + (2785, 'blue_diner_c', 'desc', '1', 'blue_diner_c', 2, 1, 480, 1, 0), + (2786, 'blue_diner_c_cedilla', 'desc', '1', 'blue_diner_c_cedilla', 2, 1, 480, 1, 0), + (2787, 'blue_diner_d', 'desc', '1', 'blue_diner_d', 2, 1, 480, 1, 0), + (2788, 'blue_diner_e', 'desc', '1', 'blue_diner_e', 2, 1, 480, 1, 0), + (2789, 'blue_diner_e_acc', 'desc', '1', 'blue_diner_e_acc', 2, 1, 480, 1, 0), + (2790, 'blue_diner_e_acc_grave', 'desc', '1', 'blue_diner_e_acc_grave', 2, 1, 480, 1, 0), + (2791, 'blue_diner_eight', 'desc', '1', 'blue_diner_eight', 2, 1, 480, 1, 0), + (2792, 'blue_diner_exclamation', 'desc', '1', 'blue_diner_exclamation', 2, 1, 480, 1, 0), + (2793, 'blue_diner_f', 'desc', '1', 'blue_diner_f', 2, 1, 480, 1, 0), + (2794, 'blue_diner_five', 'desc', '1', 'blue_diner_five', 2, 1, 480, 1, 0), + (2795, 'blue_diner_four', 'desc', '1', 'blue_diner_four', 2, 1, 480, 1, 0), + (2796, 'blue_diner_g', 'desc', '1', 'blue_diner_g', 2, 1, 480, 1, 0), + (2797, 'blue_diner_h', 'desc', '1', 'blue_diner_h', 2, 1, 480, 1, 0), + (2798, 'blue_diner_i', 'desc', '1', 'blue_diner_i', 2, 1, 480, 1, 0), + (2799, 'blue_diner_j', 'desc', '1', 'blue_diner_j', 2, 1, 480, 1, 0), + (2800, 'blue_diner_k', 'desc', '1', 'blue_diner_k', 2, 1, 480, 1, 0), + (2801, 'blue_diner_l', 'desc', '1', 'blue_diner_l', 2, 1, 480, 1, 0), + (2802, 'blue_diner_m', 'desc', '1', 'blue_diner_m', 2, 1, 480, 1, 0), + (2803, 'blue_diner_n', 'desc', '1', 'blue_diner_n', 2, 1, 480, 1, 0), + (2804, 'blue_diner_nine', 'desc', '1', 'blue_diner_nine', 2, 1, 480, 1, 0), + (2805, 'blue_diner_o', 'desc', '1', 'blue_diner_o', 2, 1, 480, 1, 0), + (2806, 'blue_diner_o_accute', 'desc', '1', 'blue_diner_o_accute', 2, 1, 480, 1, 0), + (2807, 'blue_diner_o_cc_grave', 'desc', '1', 'blue_diner_o_cc_grave', 2, 1, 480, 1, 0), + (2808, 'blue_diner_o_umlaut', 'desc', '1', 'blue_diner_o_umlaut', 2, 1, 480, 1, 0), + (2809, 'blue_diner_one', 'desc', '1', 'blue_diner_one', 2, 1, 480, 1, 0), + (2810, 'blue_diner_p', 'desc', '1', 'blue_diner_p', 2, 1, 480, 1, 0), + (2811, 'blue_diner_q', 'desc', '1', 'blue_diner_q', 2, 1, 480, 1, 0), + (2812, 'blue_diner_question', 'desc', '1', 'blue_diner_question', 2, 1, 480, 1, 0), + (2813, 'blue_diner_r', 'desc', '1', 'blue_diner_r', 2, 1, 480, 1, 0), + (2814, 'blue_diner_s', 'desc', '1', 'blue_diner_s', 2, 1, 480, 1, 0), + (2815, 'blue_diner_seven', 'desc', '1', 'blue_diner_seven', 2, 1, 480, 1, 0), + (2816, 'blue_diner_six', 'desc', '1', 'blue_diner_six', 2, 1, 480, 1, 0), + (2817, 'blue_diner_t', 'desc', '1', 'blue_diner_t', 2, 1, 480, 1, 0), + (2818, 'blue_diner_three', 'desc', '1', 'blue_diner_three', 2, 1, 480, 1, 0), + (2819, 'blue_diner_two', 'desc', '1', 'blue_diner_two', 2, 1, 480, 1, 0), + (2820, 'blue_diner_u', 'desc', '1', 'blue_diner_u', 2, 1, 480, 1, 0), + (2821, 'blue_diner_u_acc', 'desc', '1', 'blue_diner_u_acc', 2, 1, 480, 1, 0), + (2822, 'blue_diner_u_acc_grave', 'desc', '1', 'blue_diner_u_acc_grave', 2, 1, 480, 1, 0), + (2823, 'blue_diner_u_umlaut', 'desc', '1', 'blue_diner_u_umlaut', 2, 1, 480, 1, 0), + (2824, 'blue_diner_upsidedown', 'desc', '1', 'blue_diner_upsidedown', 2, 1, 480, 1, 0), + (2825, 'blue_diner_v', 'desc', '1', 'blue_diner_v', 2, 1, 480, 1, 0), + (2826, 'blue_diner_w', 'desc', '1', 'blue_diner_w', 2, 1, 480, 1, 0), + (2827, 'blue_diner_x', 'desc', '1', 'blue_diner_x', 2, 1, 480, 1, 0), + (2828, 'blue_diner_y', 'desc', '1', 'blue_diner_y', 2, 1, 480, 1, 0), + (2829, 'blue_diner_z', 'desc', '1', 'blue_diner_z', 2, 1, 480, 1, 0), + (2830, 'blue_diner_zero', 'desc', '1', 'blue_diner_zero', 2, 1, 480, 1, 0), + (2930, 'diner_belair', 'desc', '1', 'diner_belair', 2, 1, 482, 1, 0), + (2933, 'diner_gaspump_blue', 'desc', '1', 'diner_gaspump_blue', 2, 1, 482, 1, 0), + (2934, 'diner_gaspump_green', 'desc', '1', 'diner_gaspump_green', 2, 1, 482, 1, 0), + (2935, 'diner_gaspump_red', 'desc', '1', 'diner_gaspump_red', 2, 1, 482, 1, 0), + (2941, 'diner_hotrod', 'desc', '1', 'diner_hotrod', 2, 1, 482, 1, 0), + (2943, 'diner_plymouth', 'desc', '1', 'diner_plymouth', 2, 1, 482, 1, 0), + (2944, 'diner_poster', 'desc', '1', 'diner_poster', 2, 1, 482, 1, 0), + (2945, 'diner_sign', 'desc', '1', 'diner_sign', 2, 1, 482, 1, 0), + (2947, 'diner_trophy_bronze', 'desc', '1', 'diner_trophy_bronze', 2, 1, 482, 1, 0), + (2948, 'diner_trophy_gold', 'desc', '1', 'diner_trophy_gold', 2, 1, 482, 1, 0), + (2949, 'diner_trophy_silver', 'desc', '1', 'diner_trophy_silver', 2, 1, 482, 1, 0), + (3080, 'green_diner_a', 'desc', '1', 'green_diner_a', 2, 1, 483, 1, 0), + (3081, 'green_diner_a_umlaut', 'desc', '1', 'green_diner_a_umlaut', 2, 1, 483, 1, 0), + (3082, 'green_diner_ae', 'desc', '1', 'green_diner_ae', 2, 1, 483, 1, 0), + (3083, 'green_diner_b', 'desc', '1', 'green_diner_b', 2, 1, 483, 1, 0), + (3084, 'green_diner_c', 'desc', '1', 'green_diner_c', 2, 1, 483, 1, 0), + (3085, 'green_diner_c_cedilla', 'desc', '1', 'green_diner_c_cedilla', 2, 1, 483, 1, 0), + (3086, 'green_diner_d', 'desc', '1', 'green_diner_d', 2, 1, 483, 1, 0), + (3087, 'green_diner_e', 'desc', '1', 'green_diner_e', 2, 1, 483, 1, 0), + (3088, 'green_diner_e_acc', 'desc', '1', 'green_diner_e_acc', 2, 1, 483, 1, 0), + (3089, 'green_diner_e_cc_grave', 'desc', '1', 'green_diner_e_cc_grave', 2, 1, 483, 1, 0), + (3090, 'green_diner_eight', 'desc', '1', 'green_diner_eight', 2, 1, 483, 1, 0), + (3091, 'green_diner_exclamation', 'desc', '1', 'green_diner_exclamation', 2, 1, 483, 1, 0), + (3092, 'green_diner_f', 'desc', '1', 'green_diner_f', 2, 1, 483, 1, 0), + (3093, 'green_diner_five', 'desc', '1', 'green_diner_five', 2, 1, 483, 1, 0), + (3094, 'green_diner_four', 'desc', '1', 'green_diner_four', 2, 1, 483, 1, 0), + (3095, 'green_diner_g', 'desc', '1', 'green_diner_g', 2, 1, 483, 1, 0), + (3096, 'green_diner_h', 'desc', '1', 'green_diner_h', 2, 1, 483, 1, 0), + (3097, 'green_diner_i', 'desc', '1', 'green_diner_i', 2, 1, 483, 1, 0), + (3098, 'green_diner_j', 'desc', '1', 'green_diner_j', 2, 1, 483, 1, 0), + (3099, 'green_diner_k', 'desc', '1', 'green_diner_k', 2, 1, 483, 1, 0), + (3100, 'green_diner_l', 'desc', '1', 'green_diner_l', 2, 1, 483, 1, 0), + (3101, 'green_diner_m', 'desc', '1', 'green_diner_m', 2, 1, 483, 1, 0), + (3102, 'green_diner_n', 'desc', '1', 'green_diner_n', 2, 1, 483, 1, 0), + (3103, 'green_diner_nine', 'desc', '1', 'green_diner_nine', 2, 1, 483, 1, 0), + (3104, 'green_diner_o', 'desc', '1', 'green_diner_o', 2, 1, 483, 1, 0), + (3105, 'green_diner_o_accute', 'desc', '1', 'green_diner_o_accute', 2, 1, 483, 1, 0), + (3106, 'green_diner_o_cc_grave', 'desc', '1', 'green_diner_o_cc_grave', 2, 1, 483, 1, 0), + (3107, 'green_diner_o_umlaut', 'desc', '1', 'green_diner_o_umlaut', 2, 1, 483, 1, 0), + (3108, 'green_diner_one', 'desc', '1', 'green_diner_one', 2, 1, 483, 1, 0), + (3109, 'green_diner_p', 'desc', '1', 'green_diner_p', 2, 1, 483, 1, 0), + (3110, 'green_diner_q', 'desc', '1', 'green_diner_q', 2, 1, 483, 1, 0), + (3111, 'green_diner_question', 'desc', '1', 'green_diner_question', 2, 1, 483, 1, 0), + (3112, 'green_diner_r', 'desc', '1', 'green_diner_r', 2, 1, 483, 1, 0), + (3113, 'green_diner_s', 'desc', '1', 'green_diner_s', 2, 1, 483, 1, 0), + (3114, 'green_diner_seven', 'desc', '1', 'green_diner_seven', 2, 1, 483, 1, 0), + (3115, 'green_diner_six', 'desc', '1', 'green_diner_six', 2, 1, 483, 1, 0), + (3116, 'green_diner_t', 'desc', '1', 'green_diner_t', 2, 1, 483, 1, 0), + (3117, 'green_diner_three', 'desc', '1', 'green_diner_three', 2, 1, 483, 1, 0), + (3118, 'green_diner_two', 'desc', '1', 'green_diner_two', 2, 1, 483, 1, 0), + (3119, 'green_diner_u', 'desc', '1', 'green_diner_u', 2, 1, 483, 1, 0), + (3120, 'green_diner_u_acc', 'desc', '1', 'green_diner_u_acc', 2, 1, 483, 1, 0), + (3121, 'green_diner_u_acc_grave', 'desc', '1', 'green_diner_u_acc_grave', 2, 1, 483, 1, 0), + (3122, 'green_diner_u_umlaut', 'desc', '1', 'green_diner_u_umlaut', 2, 1, 483, 1, 0), + (3123, 'green_diner_upsidedown', 'desc', '1', 'green_diner_upsidedown', 2, 1, 483, 1, 0), + (3124, 'green_diner_v', 'desc', '1', 'green_diner_v', 2, 1, 483, 1, 0), + (3125, 'green_diner_w', 'desc', '1', 'green_diner_w', 2, 1, 483, 1, 0), + (3126, 'green_diner_x', 'desc', '1', 'green_diner_x', 2, 1, 483, 1, 0), + (3127, 'green_diner_y', 'desc', '1', 'green_diner_y', 2, 1, 483, 1, 0), + (3128, 'green_diner_z', 'desc', '1', 'green_diner_z', 2, 1, 483, 1, 0), + (2911, 'darkknight_batman_suit', 'desc', '1', 'darkknight_batman_suit', 2, 1, 481, 1, 0), + (2912, 'darkknight_clownface', 'desc', '1', 'darkknight_clownface', 2, 1, 481, 1, 0), + (2913, 'darkknight_dentbutton', 'desc', '1', 'darkknight_dentbutton', 2, 1, 481, 1, 0), + (2914, 'darkknight_jokercard', 'desc', '1', 'darkknight_jokercard', 2, 1, 481, 1, 0), + (2915, 'darkknight_jokerface', 'desc', '1', 'darkknight_jokerface', 2, 1, 481, 1, 0), + (2916, 'darkknight_logo', 'desc', '1', 'darkknight_logo', 2, 1, 481, 1, 0), + (4324, 'darkknight_wallpaper', 'desc', '4', 'darkknight_wallpaper', 2, 1, 104, 1, 0), + (3530, 'red_diner_a', 'desc', '1', 'red_diner_a', 2, 1, 485, 1, 0), + (3531, 'red_diner_a_umlaut', 'desc', '1', 'red_diner_a_umlaut', 2, 1, 485, 1, 0), + (3532, 'red_diner_ae', 'desc', '1', 'red_diner_ae', 2, 1, 485, 1, 0), + (3533, 'red_diner_b', 'desc', '1', 'red_diner_b', 2, 1, 485, 1, 0), + (3534, 'red_diner_c', 'desc', '1', 'red_diner_c', 2, 1, 485, 1, 0), + (3535, 'red_diner_c_cedilla', 'desc', '1', 'red_diner_c_cedilla', 2, 1, 485, 1, 0), + (3536, 'red_diner_d', 'desc', '1', 'red_diner_d', 2, 1, 485, 1, 0), + (3537, 'red_diner_e', 'desc', '1', 'red_diner_e', 2, 1, 485, 1, 0), + (3538, 'red_diner_e_acc', 'desc', '1', 'red_diner_e_acc', 2, 1, 485, 1, 0), + (3539, 'red_diner_e_cc_grave', 'desc', '1', 'red_diner_e_cc_grave', 2, 1, 485, 1, 0), + (3540, 'red_diner_eight', 'desc', '1', 'red_diner_eight', 2, 1, 485, 1, 0), + (3541, 'red_diner_exclamation', 'desc', '1', 'red_diner_exclamation', 2, 1, 485, 1, 0), + (3542, 'red_diner_f', 'desc', '1', 'red_diner_f', 2, 1, 485, 1, 0), + (3543, 'red_diner_five', 'desc', '1', 'red_diner_five', 2, 1, 485, 1, 0), + (3544, 'red_diner_four', 'desc', '1', 'red_diner_four', 2, 1, 485, 1, 0), + (3545, 'red_diner_g', 'desc', '1', 'red_diner_g', 2, 1, 485, 1, 0), + (3546, 'red_diner_h', 'desc', '1', 'red_diner_h', 2, 1, 485, 1, 0), + (3547, 'red_diner_i', 'desc', '1', 'red_diner_i', 2, 1, 485, 1, 0), + (3548, 'red_diner_j', 'desc', '1', 'red_diner_j', 2, 1, 485, 1, 0), + (3549, 'red_diner_k', 'desc', '1', 'red_diner_k', 2, 1, 485, 1, 0), + (3550, 'red_diner_l', 'desc', '1', 'red_diner_l', 2, 1, 485, 1, 0), + (3551, 'red_diner_m', 'desc', '1', 'red_diner_m', 2, 1, 485, 1, 0), + (3552, 'red_diner_n', 'desc', '1', 'red_diner_n', 2, 1, 485, 1, 0), + (3553, 'red_diner_nine', 'desc', '1', 'red_diner_nine', 2, 1, 485, 1, 0), + (3554, 'red_diner_o', 'desc', '1', 'red_diner_o', 2, 1, 485, 1, 0), + (3555, 'red_diner_o_accute', 'desc', '1', 'red_diner_o_accute', 2, 1, 485, 1, 0), + (3556, 'red_diner_o_cc_grave', 'desc', '1', 'red_diner_o_cc_grave', 2, 1, 485, 1, 0), + (3557, 'red_diner_o_umlaut', 'desc', '1', 'red_diner_o_umlaut', 2, 1, 485, 1, 0), + (3558, 'red_diner_one', 'desc', '1', 'red_diner_one', 2, 1, 485, 1, 0), + (3559, 'red_diner_p', 'desc', '1', 'red_diner_p', 2, 1, 485, 1, 0), + (3560, 'red_diner_q', 'desc', '1', 'red_diner_q', 2, 1, 485, 1, 0), + (3561, 'red_diner_question', 'desc', '1', 'red_diner_question', 2, 1, 485, 1, 0), + (3562, 'red_diner_r', 'desc', '1', 'red_diner_r', 2, 1, 485, 1, 0), + (3563, 'red_diner_s', 'desc', '1', 'red_diner_s', 2, 1, 485, 1, 0), + (3564, 'red_diner_seven', 'desc', '1', 'red_diner_seven', 2, 1, 485, 1, 0), + (3565, 'red_diner_six', 'desc', '1', 'red_diner_six', 2, 1, 485, 1, 0), + (3566, 'red_diner_t', 'desc', '1', 'red_diner_t', 2, 1, 485, 1, 0), + (3567, 'red_diner_three', 'desc', '1', 'red_diner_three', 2, 1, 485, 1, 0), + (3568, 'red_diner_two', 'desc', '1', 'red_diner_two', 2, 1, 485, 1, 0), + (3569, 'red_diner_u', 'desc', '1', 'red_diner_u', 2, 1, 485, 1, 0), + (3570, 'red_diner_u_acc', 'desc', '1', 'red_diner_u_acc', 2, 1, 485, 1, 0), + (3571, 'red_diner_u_acc_grave', 'desc', '1', 'red_diner_u_acc_grave', 2, 1, 485, 1, 0), + (3572, 'red_diner_u_umlaut', 'desc', '1', 'red_diner_u_umlaut', 2, 1, 485, 1, 0), + (3573, 'red_diner_upsidedown', 'desc', '1', 'red_diner_upsidedown', 2, 1, 485, 1, 0), + (3574, 'red_diner_v', 'desc', '1', 'red_diner_v', 2, 1, 485, 1, 0), + (3575, 'red_diner_w', 'desc', '1', 'red_diner_w', 2, 1, 485, 1, 0), + (3576, 'red_diner_x', 'desc', '1', 'red_diner_x', 2, 1, 485, 1, 0), + (3577, 'red_diner_y', 'desc', '1', 'red_diner_y', 2, 1, 485, 1, 0), + (3578, 'red_diner_z', 'desc', '1', 'red_diner_z', 2, 1, 485, 1, 0), + (3464, 'olym_carson', 'desc', '1', 'olym_carson', 2, 1, 453, 1, 0), + (3465, 'olym_cresthawk', 'desc', '1', 'olym_cresthawk', 2, 1, 453, 1, 0), + (3466, 'olym_inari', 'desc', '1', 'olym_inari', 2, 1, 453, 1, 0), + (3467, 'olym_jandelee', 'desc', '1', 'olym_jandelee', 2, 1, 453, 1, 0), + (3468, 'olym_lady', 'desc', '1', 'olym_lady', 2, 1, 453, 1, 0), + (3469, 'olym_loderse', 'desc', '1', 'olym_loderse', 2, 1, 453, 1, 0), + (3470, 'olym_moiraine', 'desc', '1', 'olym_moiraine', 2, 1, 453, 1, 0), + (3471, 'olym_nme', 'desc', '1', 'olym_nme', 2, 1, 453, 1, 0), + (3472, 'olym_smoothcriminal', 'desc', '1', 'olym_smoothcriminal', 2, 1, 453, 1, 0), + (3473, 'olym_spartan', 'desc', '1', 'olym_spartan', 2, 1, 453, 1, 0), + (3474, 'olym_squib', 'desc', '1', 'olym_squib', 2, 1, 453, 1, 0), + (3475, 'olym_thegirls', 'desc', '1', 'olym_thegirls', 2, 1, 453, 1, 0), + (2655, '25_146x146_habbo_sticker_fi', 'desc', '1', '25_146x146_habbo_sticker_fi', 2, 1, 470, 1, 0), + (2713, 'backtoschool_badapple', 'desc', '1', 'backtoschool_badapple', 2, 1, 488, 1, 0), + (2715, 'backtoschool_trophy', 'desc', '1', 'backtoschool_trophy', 2, 1, 130, 1, 0), + (2873, 'checker_border_h', 'desc', '1', 'checker_border_h', 2, 1, 482, 1, 0), + (2874, 'checker_border_v', 'desc', '1', 'checker_border_v', 2, 1, 482, 1, 0), + (3148, 'habbo_x_home_sticker', 'desc', '1', 'habbo_x_home_sticker', 2, 1, 130, 1, 0), + (3180, 'hw_bassplayer_girl2', 'desc', '1', 'hw_bassplayer_girl2', 2, 1, 459, 1, 0), + (3210, 'hw_keyboards1', 'desc', '1', 'hw_keyboards1', 2, 1, 467, 1, 0), + (3211, 'hw_keyboards2', 'desc', '1', 'hw_keyboards2', 2, 1, 467, 1, 0), + (3512, 'pretzel', 'desc', '1', 'pretzel', 2, 1, 453, 1, 0), + (3927, 'teensbear', 'desc', '1', 'teensbear', 2, 1, 445, 1, 0), + (3945, 'tiki_volcano', 'desc', '1', 'tiki_volcano', 2, 1, 473, 1, 0), + (4160, '10kbc_habbo_grouppage_bg_2b', 'desc', '4', '10kbc_habbo_grouppage_bg_2b', 2, 1, 104, 1, 0), + (4161, '10kbc_habbo_grouppage_bg_3b', 'desc', '4', '10kbc_habbo_grouppage_bg_3b', 2, 1, 104, 1, 0), + (4162, '26_habbo_background_fi', 'desc', '4', '26_habbo_background_fi', 2, 1, 104, 1, 0), + (4182, 'au_iflyvampwasp_bg_v1', 'desc', '4', 'au_iflyvampwasp_bg_v1', 2, 1, 104, 1, 0), + (4183, 'au_iflyvampwasp_bg_v2', 'desc', '4', 'au_iflyvampwasp_bg_v2', 2, 1, 104, 1, 0), + (4186, 'au_spiderwick_bg', 'desc', '4', 'au_spiderwick_bg', 2, 1, 104, 1, 0), + (4187, 'background_momie3_928x1360', 'desc', '4', 'background_momie3_928x1360', 2, 1, 104, 1, 0), + (4189, 'backtoschool_wallpaper', 'desc', '4', 'backtoschool_wallpaper', 2, 1, 104, 1, 0), + (4194, 'bg_alhambra', 'desc', '4', 'bg_alhambra', 2, 1, 104, 1, 0), + (4195, 'bg_animegroup', 'desc', '4', 'bg_animegroup', 2, 1, 104, 1, 0), + (4251, 'bg_moviesgroup', 'desc', '4', 'bg_moviesgroup', 2, 1, 104, 1, 0), + (4252, 'bg_musicgroup', 'desc', '4', 'bg_musicgroup', 2, 1, 104, 1, 0), + (4296, 'bg_videogamesgroup', 'desc', '4', 'bg_videogamesgroup', 2, 1, 104, 1, 0), + (4309, 'camocheese_wallpaper', 'desc', '4', 'camocheese_wallpaper', 2, 1, 104, 1, 0), + (4319, 'cw_group_1', 'desc', '4', 'cw_group_1', 2, 1, 104, 1, 0), + (4321, 'cw_group_2', 'desc', '4', 'cw_group_2', 2, 1, 104, 1, 0), + (4323, 'cw_poster', 'desc', '4', 'cw_poster', 2, 1, 104, 1, 0), + (4328, 'diner_global', 'desc', '4', 'diner_global', 2, 1, 104, 1, 0), + (4337, 'easter_eggs_wallpaper', 'desc', '4', 'easter_eggs_wallpaper', 2, 1, 104, 1, 0), + (4371, 'guitarhero', 'desc', '4', 'guitarhero', 2, 1, 104, 1, 0), + (4372, 'gyroscope_grouppage_bg_v1', 'desc', '4', 'gyroscope_grouppage_bg_v1', 2, 1, 104, 1, 0), + (4374, 'habbo_bmx_foot_jam_tailwhip_bg', 'desc', '4', 'habbo_bmx_foot_jam_tailwhip_bg', 2, 1, 104, 1, 0), + (4376, 'habbo_group_tutorial_bg', 'desc', '4', 'habbo_group_tutorial_bg', 2, 1, 104, 1, 0), + (4385, 'habbolympics_bg_final', 'desc', '4', 'habbolympics_bg_final', 2, 1, 104, 1, 0), + (4392, 'hannah_montana_background', 'desc', '4', 'hannah_montana_background', 2, 1, 104, 1, 0), + (4397, 'head_guides_germany', 'desc', '4', 'head_guides_germany', 2, 1, 104, 1, 0), + (4398, 'head_guides_switserland', 'desc', '4', 'head_guides_switserland', 2, 1, 104, 1, 0), + (4419, 'kerli_wallpaper', 'desc', '4', 'kerli_wallpaper', 2, 1, 104, 1, 0), + (4427, 'landing_page_comp', 'desc', '4', 'landing_page_comp', 2, 1, 104, 1, 0), + (4429, 'madball_2008_bg_001', 'desc', '4', 'madball_2008_bg_001', 2, 1, 104, 1, 0), + (4438, 'myspy_group', 'desc', '4', 'myspy_group', 2, 1, 104, 1, 0), + (4444, 'nicolajrasted_vip', 'desc', '4', 'nicolajrasted_vip', 2, 1, 104, 1, 0), + (4456, 'rexona_bg', 'desc', '4', 'rexona_bg', 2, 1, 104, 1, 0), + (4471, 'silversurfer', 'desc', '4', 'silversurfer', 2, 1, 104, 1, 0), + (4472, 'silversurfer 2', 'desc', '4', 'silversurfer2', 2, 1, 104, 1, 0), + (4477, 'skulls_wallpaper', 'desc', '4', 'skulls_wallpaper', 2, 1, 104, 1, 0), + (4513, 'toolbar_bg2', 'desc', '4', 'toolbar_bg2', 2, 1, 104, 1, 0), + (4514, 'top_gamers_bg', 'desc', '4', 'top_gamers_bg', 2, 1, 104, 1, 0), + (4517, 'tutorial_bg', 'desc', '4', 'tutorial_bg', 2, 1, 104, 1, 0), + (4519, 'val_bgpattern_love', 'desc', '4', 'val_bgpattern_love', 2, 1, 104, 1, 0), + (4520, 'val_bgpattern_skull', 'desc', '4', 'val_bgpattern_skull', 2, 1, 104, 1, 0), + (4529, 'wallpaper_alkalinetrio', 'desc', '4', 'wallpaper_alkalinetrio', 2, 1, 104, 1, 0), + (4532, 'wallpaper_dinerduck', 'desc', '4', 'wallpaper_dinerduck', 2, 1, 104, 1, 0), + (4533, 'wallpaper_dinergeeks', 'desc', '4', 'wallpaper_dinergeeks', 2, 1, 104, 1, 0), + (4534, 'wallpaper_dinergreasers', 'desc', '4', 'wallpaper_dinergreasers', 2, 1, 104, 1, 0), + (4535, 'wallpaper_dinerjocks', 'desc', '4', 'wallpaper_dinerjocks', 2, 1, 104, 1, 0), + (4536, 'wallpaper_dinerglobal', 'desc', '4', 'diner_global', 2, 1, 104, 1, 0), + (4538, 'wallpaper_dinerus', 'desc', '4', 'wallpaper_dinerus', 2, 1, 104, 1, 0), + (4539, 'wallpaper_droney', 'desc', '4', 'wallpaper_droney', 2, 1, 104, 1, 0), + (4541, 'wallpaper_katiestill', 'desc', '4', 'wallpaper_katiestill', 2, 1, 104, 1, 0), + (4542, 'wallpaper_lauraduncan', 'desc', '4', 'wallpaper_lauraduncan', 2, 1, 104, 1, 0), + (4543, 'wallpaper_lenka', 'desc', '4', 'wallpaper_lenka', 2, 1, 104, 1, 0), + (4544, 'wallpaper_monet', 'desc', '4', 'wallpaper_monet', 2, 1, 104, 1, 0), + (4547, 'wallpaper_sprousebrothers', 'desc', '4', 'wallpaper_sprousebrothers', 2, 1, 104, 1, 0), + (4548, 'wallpaper_submarines', 'desc', '4', 'wallpaper_submarines', 2, 1, 104, 1, 0), + (4549, 'wallpaper_tmobile', 'desc', '4', 'wallpaper_tmobile', 2, 1, 104, 1, 0), + (4574, 'Xmas 2009 xmasfun', 'desc', '4', 'xmas2009_bg_xmasfun', 2, 1, 104, 1, 0), + (10200, 'Guestbook widget', 'Guestbook', '2', 'guestbookwidget', 0, 1, 100, 1, 1), + (11200, 'Member List', 'Member List', '5', 'memberwidget', 0, 1, 100, 1, -1), + (10800, 'Traxplayer', 'Play Trax on your homepage.', '2', 'traxplayerwidget', 0, 1, 100, 1, 1), + (10700, 'Rooms Widget', 'Show your rooms in your page', '2', 'roomswidget', 0, 1, 100, 1, 1), + (10100, 'Profile widget', 'Displays infomation about yourself.', '2', 'profilewidget', 0, 1, 100, 1, 1), + (1395, 'SnowShake', 'desc', '1', 'xmas2009_snowshake', 2, 1, 105, 1, 0), + (1396, 'Bubbledrink', 'desc', '1', 'xmas2009_bubbledrink', 2, 1, 105, 1, 0), + (1397, 'Bauble', 'desc', '1', 'xmas2009_bauble', 2, 1, 105, 1, 0), + (1398, 'Cakes', 'desc', '1', 'xmas2009_cakes', 2, 1, 105, 1, 0), + (1399, 'Reindeerpin', 'desc', '1', 'xmas2009_reindeerpin', 2, 1, 105, 1, 0), + (1400, 'Elfbadge', 'desc', '1', 'xmas2009_elfbadge', 2, 1, 105, 1, 0), + (1403, 'Chile', 'desc', '1', 'stickers_chile', 2, 1, 106, 1, 0), + (1412, 'Panama', 'desc', '1', 'stickers_panama', 2, 1, 106, 1, 0), + (1401, 'Argentina', 'desc', '1', 'stickers_argentina', 2, 1, 106, 1, 0), + (1404, 'Colombia', 'desc', '1', 'stickers_colombia', 2, 1, 106, 1, 0), + (1405, 'Costa Rica', 'desc', '1', 'stickers_costarica', 2, 1, 106, 1, 0), + (1406, 'Ecuador', 'desc', '1', 'stickers_ecuador', 2, 1, 106, 1, 0), + (1407, 'ElSalvador', 'desc', '1', 'stickers_elsalvador', 2, 1, 106, 1, 0), + (1408, 'Spain', 'desc', '1', 'stickers_espain', 2, 1, 106, 1, 0), + (1409, 'Honduras', 'desc', '1', 'stickers_honduras', 2, 1, 106, 1, 0), + (1410, 'Mexico', 'desc', '1', 'stickers_mexico', 2, 1, 106, 1, 0), + (1411, 'Nicaragua', 'desc', '1', 'stickers_nicaragua', 2, 1, 106, 1, 0), + (1402, 'Bolivia', 'desc', '1', 'stickers_bolivia', 2, 1, 106, 1, 0), + (1414, 'Peru', 'desc', '1', 'stickers_peru', 2, 1, 106, 1, 0), + (1413, 'Paraguay', 'desc', '1', 'stickers_paraguay', 2, 1, 106, 1, 0), + (1415, 'Uruguay', 'desc', '1', 'stickers_uruguay', 2, 1, 106, 1, 0), + (1416, 'Venezuela', 'desc', '1', 'stickers_venezuela', 2, 1, 106, 1, 0), + (1418, 'Cheetos Rizo', 'desc', '1', 'Cheetos_Rizo_sticker_v1', 2, 1, 107, 1, 0), + (1417, 'Cheetos Pandilla', 'desc', '1', 'Cheetos_Pandilla_sticker_v1_002', 2, 1, 107, 1, 0), + (1419, 'Cheetos HotDog', 'desc', '1', 'Cheetos_HotDog_sticker_v2', 2, 1, 107, 1, 0), + (1420, 'Cheetos AfroDJ', 'desc', '1', 'Cheetos_AfroDJ_sticker_v1', 2, 1, 107, 1, 0), + (1421, 'Cheetos Tshirt', 'desc', '1', 'Cheetos_Tshirt_sticker_v1', 2, 1, 107, 1, 0), + (1422, 'Cheetos Hat', 'desc', '1', 'Cheetos_Hat_sticker_v1', 2, 1, 107, 1, 0), + (1423, 'Cheetos Chester 1', 'desc', '1', 'Cheetos_Chester1_sticker_v1', 2, 1, 107, 1, 0), + (1424, 'Cheetos Chester 2', 'desc', '1', 'Cheetos_Chester2_sticker_v1', 2, 1, 107, 1, 0), + (1425, 'Cheetos Chester 3', 'desc', '1', 'Cheetos_Chester3_sticker_v1', 2, 1, 107, 1, 0), + (1426, 'Cheetos Chester 4', 'desc', '1', 'Cheetos_Chester4_sticker_v1', 2, 1, 107, 1, 0), + (1427, 'Cheetos Orange', 'desc', '1', 'Cheetos_orange_v1', 2, 1, 107, 1, 0), + (1428, 'Cheetos Purple', 'desc', '1', 'Cheetos_purple_v1', 2, 1, 107, 1, 0), + (2013, 'Minion 1', 'desc', '1', 'sticker_despme_1', 1, 1, 107, 1, 0), + (2014, 'Minion 2', 'desc', '1', 'sticker_despme_2', 1, 1, 107, 1, 0), + (2015, 'Minion 3', 'desc', '1', 'sticker_despMe_3', 1, 1, 107, 1, 0), + (2016, 'Minion 4', 'desc', '1', 'sticker_despMe_4', 1, 1, 107, 1, 0), + (2017, 'Minion 5', 'desc', '1', 'sticker_despMe_5', 1, 1, 107, 1, 0), + (2018, 'Fins', 'desc', '1', 'sticker_bw_fins', 2, 1, 458, 1, 0), + (2019, 'Shark', 'desc', '1', 'sticker_bw_sharkOver', 2, 1, 458, 1, 0), + (2020, 'Rock in Rio', 'desc', '1', 'pins_rockinrio', 2, 1, 451, 1, 0), + (2021, 'Crepusculo Cheetos Eclipse', 'desc', '1', 'stick_crepusculo_v03', 2, 1, 107, 1, 0), + (2093, 'Hw Card Back', 'desc', '1', 'hween10_card_back', 2, 1, 488, 1, 0), + (2094, 'Hw Card 1', 'desc', '1', 'hween10card1', 2, 1, 488, 1, 0), + (2095, 'Hw Card 2', 'desc', '1', 'hween10card2', 2, 1, 488, 1, 0), + (2096, 'Hw Card 3', 'desc', '1', 'hween10card3', 2, 1, 488, 1, 0), + (2097, 'Hw Card 4', 'desc', '1', 'hween10card4', 2, 1, 488, 1, 0), + (2098, 'Hw Card 5', 'desc', '1', 'hween10card5', 2, 1, 488, 1, 0), + (2099, 'Hw Card 6', 'desc', '1', 'hween10card6', 2, 1, 488, 1, 0), + (2115, 'Snow Lantern', 'desc', '1', 'xmas_snowlantern_anim', 5, 1, 445, 1, 0), + (2100, 'Chauves Souris', 'desc', '1', 'sticker_chauves_souris', 2, 1, 488, 1, 0), + (2101, 'Zombie', 'desc', '1', 'zombie', 2, 1, 488, 1, 0), + (2102, 'Zombie 2', 'desc', '1', 'zombie_violet', 2, 1, 488, 1, 0), + (2103, 'Zombie 3', 'desc', '1', 'zombieBoy2', 2, 1, 488, 1, 0), + (2104, 'War Child', 'desc', '1', 'warchild', 2, 1, 451, 1, 0), + (2105, 'Stick Telepizza', 'desc', '1', 'stick_telepizza_scooter', 2, 1, 107, 1, 0), + (2106, 'Grefusa', 'desc', '1', 'sticker_es_grefusa_1', 1, 1, 107, 1, 0), + (2107, 'Grefusa 2', 'desc', '1', 'sticker_es_grefusa_2', 1, 1, 107, 1, 0), + (2109, 'Easter eggs horizontal', 'desc', '1', 'easter_eggs_horizontal', 2, 1, 462, 1, 0), + (2110, 'Easter eggs vertical', 'desc', '1', 'easter_eggs_vertical_001', 2, 1, 462, 1, 0), + (2111, 'H4D 1', 'desc', '1', 'H4D_Sticker_01', 2, 1, 107, 1, 0), + (2112, 'H4D 2', 'desc', '1', 'H4D_Sticker_02', 2, 1, 107, 1, 0), + (2113, 'H4D 3', 'desc', '1', 'H4D_Sticker_04', 2, 1, 107, 1, 0), + (2114, 'Videocam', 'desc', '1', 'stick_hween09_videocam2', 5, 1, 488, 1, 0), + (2716, 'Candle', 'desc', '1', 'sticker_littleCandle', 2, 1, 130, 1, 0), + (2717, 'Plate Border', 'desc', '1', 'sticker_plateBorder_v1', 3, 1, 130, 1, 0), + (2718, 'Lumihiutale', 'desc', '1', 'ss_snowflake1', 1, 1, 445, 1, 0), + (2719, 'Spain Winner 2010', 'desc', '1', 'HW_sticker_football_win_2010_2', 2, 1, 456, 1, 0), + (2720, 'Penalty', 'desc', '1', 'chossy_maal', 2, 1, 456, 1, 0), + (2721, 'Football 1', 'desc', '1', 'Chossy', 2, 1, 456, 1, 0), + (2722, '1GOAL Sticker', 'desc', '1', '1goal_sticker', 2, 1, 456, 1, 0), + (2723, 'St 1', 'desc', '1', 'st_day1', 2, 1, 109, 1, 0), + (2724, 'St 2', 'desc', '1', 'st_day2', 2, 1, 109, 1, 0), + (2725, 'St 3', 'desc', '1', 'st_day3', 2, 1, 109, 1, 0), + (2726, 'St 4', 'desc', '1', 'st_day4', 2, 1, 109, 1, 0), + (2727, 'St 5', 'desc', '1', 'st_day5', 2, 1, 109, 1, 0), + (2728, 'Safer Internet 2008', 'desc', '1', 'SaferInternet2008', 2, 1, 109, 1, 0), + (2729, 'Sheep', 'desc', '1', 'stick_country_sheep1', 2, 1, 130, 1, 0), + (2730, 'Trophy Award', 'desc', '1', 'sticker_trophy_award', 2, 1, 130, 1, 0), + (2731, 'Dragon Sticker', 'desc', '1', 'suosikki_sticker_dragon', 3, 1, 130, 1, 0), + (2732, 'Habbolympics', 'desc', '1', 'habbolympics_teamsticker', 3, 1, 130, 1, 0), + (2733, 'Earth Our', 'desc', '1', 'earthhour_wwf_sticker', 2, 1, 130, 1, 0), + (2734, 'Trax Record Sticker', 'desc', '1', 'traxRecord_sticker', 4, 1, 130, 1, 0), + (2735, 'sticker Superheroes Cape', 'desc', '1', 'superheroes_sticker_capa_me', 2, 1, 459, 1, 0), + (2736, 'sticker Superheroes laser eye', 'desc', '1', 'superheroes_sticker_laser_eye', 2, 1, 459, 1, 0), + (2737, 'Sticker ArgHook', 'desc', '1', 'sticker_argHook', 2, 1, 459, 1, 0), + (2738, 'Sticker Piratehat ', 'desc', '1', 'sticker_pirateHat_1', 2, 1, 459, 1, 0), + (2739, 'Sticker Piratehat 2', 'desc', '1', 'sticker_pirateHat_2', 2, 1, 459, 1, 0), + (2108, 'Grefusa 3', 'desc', '1', 'stick_grefusa_remarca', 1, 1, 107, 1, 0), + (3147, 'Twilight Wolf', 'desc', '1', 'stick_twil_ww', 2, 1, 130, 1, 0), + (61, 'Y', 'desc', '1', 'y', 1, 1, 394, 1, 0), + (11301, 'Angelwings Anim', 'desc', '1', 'custom_angelwings_anim', 2, 1, 493, 1, 0), + (11302, 'Jeff Donkey', 'desc', '1', 'custom_jeff_donkey', 2, 1, 493, 1, 0), + (11303, 'Xmaslights Anim', 'desc', '1', 'custom_xmaslights_anim', 2, 1, 493, 1, 0), + (11304, 'Xmas Boxs', 'desc', '1', 'custom_xmas_boxs', 2, 1, 493, 1, 0), + (11305, 'Xmas Box Darkred2', 'desc', '1', 'custom_xmas_box_darkred2', 2, 1, 493, 1, 0), + (11306, 'Xmas Box Green', 'desc', '1', 'custom_xmas_box_green', 2, 1, 493, 1, 0), + (11307, 'Xmas Box Lime', 'desc', '1', 'custom_xmas_box_lime', 2, 1, 493, 1, 0), + (11308, 'Xmas Box Orange', 'desc', '1', 'custom_xmas_box_orange', 2, 1, 493, 1, 0), + (11309, 'Xmas Box Red', 'desc', '1', 'custom_xmas_box_red', 2, 1, 493, 1, 0), + (11310, 'Xmas Box Suit Blue', 'desc', '1', 'custom_xmas_box_suit_blue', 2, 1, 493, 1, 0), + (11311, 'Xmas Box Suit Mint', 'desc', '1', 'custom_xmas_box_suit_mint', 2, 1, 493, 1, 0), + (11312, 'Xmas Box Suit Orange', 'desc', '1', 'custom_xmas_box_suit_orange', 2, 1, 493, 1, 0), + (11313, 'Xmas Box Suit Pink', 'desc', '1', 'custom_xmas_box_suit_pink', 2, 1, 493, 1, 0), + (11314, 'Xmas Box Violet', 'desc', '1', 'custom_xmas_box_violet', 2, 1, 493, 1, 0), + (11315, 'Xmas Dogi Animated', 'desc', '1', 'custom_xmas_dogi_animated', 2, 1, 493, 1, 0), + (11316, 'Xmas Dograindeer Sticker', 'desc', '1', 'custom_xmas_dograindeer_sticker', 2, 1, 493, 1, 0), + (11317, 'Xmas Gift Afro', 'desc', '1', 'custom_xmas_gift_afro', 2, 1, 493, 1, 0), + (11318, 'Xmas Gift Strap Corner L', 'desc', '1', 'custom_xmas_gift_strap_corner_l', 2, 1, 493, 1, 0), + (11319, 'Xmas Gift Strap Corner R', 'desc', '1', 'custom_xmas_gift_strap_corner_r', 2, 1, 493, 1, 0), + (11320, 'Xmas Gift Strap H', 'desc', '1', 'custom_xmas_gift_strap_h', 2, 1, 493, 1, 0), + (11321, 'Xmas Gift Strap V', 'desc', '1', 'custom_xmas_gift_strap_v', 2, 1, 493, 1, 0), + (11322, 'Xmas Icicles', 'desc', '1', 'custom_xmas_icicles', 2, 1, 493, 1, 0), + (11323, 'Xmas Rastasanta', 'desc', '1', 'custom_xmas_rastasanta', 2, 1, 493, 1, 0), + (11324, 'Xmas Santa Typical', 'desc', '1', 'custom_xmas_santa_typical', 2, 1, 493, 1, 0), + (11325, 'Xmas Skater Costume', 'desc', '1', 'custom_xmas_skater_costume', 2, 1, 493, 1, 0), + (11326, 'Xmas Smilla Snowboard', 'desc', '1', 'custom_xmas_smilla_snowboard', 2, 1, 493, 1, 0), + (11327, 'Xmas Snowcone Costume', 'desc', '1', 'custom_xmas_snowcone_costume', 2, 1, 493, 1, 0), + (11328, 'Xmas Strap Horiz Gold', 'desc', '1', 'custom_xmas_strap_horiz_gold', 2, 1, 493, 1, 0), + (11329, 'Xmas Strap Vertical Gold', 'desc', '1', 'custom_xmas_strap_vertical_gold', 2, 1, 493, 1, 0), + (11330, 'Xmas Strap Vertical Silver', 'desc', '1', 'custom_xmas_strap_vertical_silver', 2, 1, 493, 1, 0), + (11331, 'Xmas Tree01 Animated', 'desc', '1', 'custom_xmas_tree01_animated', 2, 1, 493, 1, 0), + (11332, 'Xmas Tree Costume', 'desc', '1', 'custom_xmas_tree_costume', 2, 1, 493, 1, 0), + (11333, 'Xmas Xtree Sticker', 'desc', '1', 'custom_xmas_xtree_sticker', 2, 1, 493, 1, 0), + (11334, 'Childline Background 1', 'desc', '4', 'bg_NSPCC_parkscene_bg', 3, 1, 104, 1, 0), + (11335, 'Childline Background 2', 'desc', '4', 'bg_NSPCC_num2_bg', 3, 1, 104, 1, 0), + (11336, 'Childline Background 3', 'desc', '4', 'group_nspcc2_928x136_bg', 3, 1, 104, 1, 0), + (11337, 'Childline Background 4', 'desc', '4', 'bg_nspcc_birthday_bg', 3, 1, 104, 1, 0); +/*!40000 ALTER TABLE `cms_stickers_catalogue` ENABLE KEYS */; + +-- Dumping structure for table havana.cms_stickers_categories +CREATE TABLE IF NOT EXISTS `cms_stickers_categories` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL, + `min_rank` int(11) DEFAULT 1, + `category_type` tinyint(4) DEFAULT 1, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.cms_stickers_categories: ~56 rows (approximately) +DELETE FROM `cms_stickers_categories`; +/*!40000 ALTER TABLE `cms_stickers_categories` DISABLE KEYS */; +INSERT INTO `cms_stickers_categories` (`id`, `name`, `min_rank`, `category_type`) VALUES + (101, 'Notes', 1, 3), + (102, 'Trax', 1, 1), + (104, 'Backgrounds', 1, 2), + (105, 'Christmas 09', 1, 1), + (106, 'Flags', 1, 1), + (107, 'Promos', 1, 1), + (109, 'Safe Internet Day', 1, 1), + (130, 'Others', 1, 1), + (138, 'Borders', 1, 1), + (171, 'Cute', 1, 1), + (182, 'Alphabet Bling', 1, 1), + (270, 'Pointers', 1, 1), + (394, 'Alphabet Plastic', 1, 1), + (442, 'Spring', 1, 1), + (443, 'Special Effects', 1, 1), + (444, 'Deals', 1, 1), + (445, 'Winter', 1, 1), + (446, 'Battle Ball', 1, 1), + (449, 'OB', 1, 1), + (451, 'Buttons', 1, 1), + (452, 'Alhambra', 1, 1), + (453, 'Avatars', 1, 1), + (454, 'Apartment 732', 1, 1), + (456, 'Football', 1, 1), + (457, 'Banks', 1, 1), + (458, 'Summer', 1, 1), + (459, 'Costume', 1, 1), + (460, 'WWE', 1, 1), + (461, 'Beach', 1, 1), + (462, 'Easter', 1, 1), + (465, 'Paper Mario', 1, 1), + (466, 'China', 1, 1), + (467, 'Habbowood', 1, 1), + (468, 'Celebration', 1, 1), + (469, 'Highlighter', 1, 1), + (470, 'Advertisments', 1, 1), + (471, 'Inked', 1, 1), + (472, 'Prices', 1, 1), + (473, 'Tiki', 1, 1), + (475, 'Keep It Real (NOT!)', 1, 1), + (476, 'Japanese', 1, 1), + (479, 'Sparkle', 1, 1), + (480, 'Alphabet Diner Blue', 1, 1), + (481, 'Batman Darknight', 1, 1), + (482, 'Diner', 1, 1), + (483, 'Alphabet Diner Green', 1, 1), + (484, 'St Patrick', 1, 1), + (485, 'Alphabet Diner Red', 1, 1), + (486, 'Alphabet Wood', 1, 1), + (487, 'Sea', 1, 1), + (488, 'Halloween', 1, 1), + (489, 'Valentine', 1, 1), + (490, 'Money', 1, 1), + (491, 'Hockey', 1, 1), + (492, 'Rock', 1, 1), + (493, 'Christmas 07', 1, 1); +/*!40000 ALTER TABLE `cms_stickers_categories` ENABLE KEYS */; + +-- Dumping structure for table havana.external_texts +CREATE TABLE IF NOT EXISTS `external_texts` ( + `entry` varchar(255) NOT NULL, + `text` text NOT NULL, + KEY `entry` (`entry`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.external_texts: ~45,662 rows (approximately) +DELETE FROM `external_texts`; +/*!40000 ALTER TABLE `external_texts` DISABLE KEYS */; +INSERT INTO `external_texts` (`entry`, `text`) VALUES + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'); +INSERT INTO `external_texts` (`entry`, `text`) VALUES + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'); +INSERT INTO `external_texts` (`entry`, `text`) VALUES + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'), + ('furni_sound_machine_desc', 'Creating fancy sounds'), + ('cancel', 'Cancel'), + ('furni_hyacinth2_desc', 'Beautiful bulb'), + ('nav_venue_library/0_name', 'Habbo Library'), + ('furni_waterbowl*1_desc', 'Aqua unlimited'), + ('furni_grand_piano*5_desc', 'Why is that key green?'), + ('furni_table_plasto_bigsquare*8_name', 'Square Dining Table'), + ('furni_nouvelle_trax_name', 'nouvelle_trax'), + ('help_choise_header', 'What do you need help with?'), + ('furni_bardeskcorner_polyfon*7_name', 'Green Mode Bardesk Corner'), + ('furni_pillar*4_name', 'Dark Ages Pillar'), + ('furni_queue_tile1*6_desc', 'The power of movement'), + ('club_intro_link', 'Learn more about Habbo Club!'), + ('furni_sandrug_desc', 'Your own paradise island'), + ('poster_10_desc', 'Beautiful sunset'), + ('furni_divider_nor1_name', 'Ice Corner'), + ('nav_venue_bb_lobby_tournament_6_name', 'Competitie Battle Ball 7'), + ('furni_redhologram_desc', 'You\'re her only hope...'), + ('poster_38_name', 'Smiling Headbangerz'), + ('furni_hc_crtn_name', 'Antique Drapery'), + ('furni_barchair_silo*9_name', 'Red Bar Stool'), + ('room_badge_visible', 'Visible'), + ('furni_sleepingbag*8_name', 'Golden Sleeping Bag'), + ('roomevent_invalid_input', 'You must give your event a name and a description.'), + ('furni_chair_plasto*14_name', 'HC chair'), + ('poster_522_desc', 'The flag of Japan'), + ('furni_shelves_norja*2_name', 'Black Bookcase'), + ('nav_venue_dusty_lounge_name', 'Dusty Lounge'), + ('furni_sound_set_53_desc', 'Break the icy silence'), + ('nav_venue_ice_cafe_name', 'Ice Cafe'), + ('click', 'OK to continue to the hotel.'), + ('nav_venue_sw_lobby_free_2/0_desc', ''), + ('furni_rare_dragonlamp*9_name', 'Purple Dragon Lamp'), + ('furni_statue_desc', 'Watch out for those arrows!'), + ('game_battles_turn', 'TURN'), + ('wallitem_jp_sheet3_desc', 'jp_sheet3'), + ('furni_edicehc_desc', 'Click and roll!'), + ('furni_bed_budget*6_name', 'Blue Pura Double Bed'), + ('furni_gothic_sofa*5_desc', 'The dark side of Habbo'), + ('furni_scifirocket*5_desc', 'From the unknown depths of space'), + ('game_poker_ready', 'READY'), + ('furni_queue_tile1*2_name', 'Red Habbo Roller'), + ('furni_rare_parasol_desc', 'Zon! Zon! Zon!'), + ('transaction_system_sms_dna', 'DNA'), + ('furni_bar_polyfon_name', 'Mini-Bar'), + ('furni_grand_piano*1_name', 'Turquoise Grand Piano'), + ('nav_venue_bb_lobby_expert_4_name', 'Experts Battle Ball 5'), + ('bb_link_highscores', 'Highscores'), + ('summer_chair_8_desc', 'The summer winds are creeping in'), + ('reg_parentemail_title2', 'Email address of parent/guardian:'), + ('error_report_explain', 'An error has occurred, please see the error code above.'), + ('console_noprofile', 'Habbo Profile Not Found'), + ('furni_glass_sofa*3_desc', 'Translucent beauty'), + ('furni_romantique_smalltabl*4_desc', 'Why is one leg different?'), + ('furni_table_plasto_4leg*14_name', 'HC table'), + ('nav_venue_bb_lobby_intermediate_2_name', 'Semi-profs Battle Ball 3'), + ('NUF_playing_games_gamerooms_tutor', 'Click the \'Go\' button to go to the Game Lounge.'), + ('habboclub_require_parent_permission', 'You need to tick the box to say that you are over 14 years or age, \\ror under 14 and have your parent/guardian\'s permission to join Habbo Club. \\rPlease go back and tick the box.'), + ('furni_wooden_screen*1_desc', 'Add an exotic touch to your room'), + ('nav_venue_bb_lobby_intermediate_4/0_desc', ''), + ('furni_glass_sofa*6_name', 'Blue Glass Sofa'), + ('furni_bench_armas_desc', 'To complete the dining set'), + ('furni_barchair_silo*2_name', 'Black Bar Stool'), + ('nav_venue_bb_lobby_expert_6/0_desc', ''), + ('furni_jp_tray2_desc', 'jp_tray2'), + ('furni_val_teddy*3_desc', 'The green bear of friendship'), + ('transaction_system_sms_win_vodafone', 'Vodafone SMS'), + ('furni_glass_sofa_name', 'Glass sofa'), + ('console_online', 'online:'), + ('poster_2004_desc', 'irie!'), + ('x', 'X'), + ('nav_venue_habbo_lido/0_desc', 'Pool is open for swimming and diving!'), + ('furni_soft_sofachair_norja_name', 'iced sofachair'), + ('furni_xmas_cstl_twr_name', 'Ice Castle Tower'), + ('nav_venue_park_name', 'Habbo Gardens'), + ('recycler_info_open', 'Ecotron is the place to visit if you want to recycle your old Furniture. Simply drag the old Furni from your hand to the empty slots below. Recyclable items display the green recyclable tag in your hand. Please note that you must own the Furniture for at least %quarantine_hours% hour before they can be recycled. Recycling takes a total of %total_hours% hours.'), + ('group_window_title', 'Habbo Groups'), + ('pet.saying.eat.dog.4', 'Mmmmm..'), + ('game_chess', 'Chess'), + ('pet.saying.eat.dog.2', 'slurp, slurp, slurp'), + ('roomatic_roomdesc', 'Room description:'), + ('furni_sofa_polyfon*7_desc', 'Green Mode Sofa'), + ('pet.saying.eat.dog.3', 'hrum, umm, umm grrr'), + ('pet.saying.eat.dog.0', 'hrum, hrum, crunch!'), + ('preview_downloading', 'Preview downloading...'), + ('sound_machine_confirm_close_long', 'Are you sure you want to leave the editor without saving the song?'), + ('partner_registration_title', 'Hey, I forgot to mention one thing..'), + ('pet.saying.eat.dog.1', 'crunch, crunch mmmm'), + ('nav_venue_bb_lobby_tournament_12/0_desc', ''), + ('furni_carpet_soft*3_name', 'Soft Wool Rug'), + ('furni_sound_set_56_name', 'RnB Grooves 2'), + ('reg_termslink', 'Terms and Conditions'), + ('wallitem_sw_swords_desc', 'Z for Zorro'), + ('furni_sleepingbag*10_name', 'Khaki Sleeping Bag'), + ('furni_hc_dsk_name', 'Study Desk'), + ('furni_chair_silo*8_desc', 'Keep it simple'), + ('furni_glass_chair*8_name', 'Glass chair'), + ('nav_venue_cafe_ole_name', 'Cafe ole'), + ('furni_sleepingbag*5_desc', 'Ultimate coziness'), + ('opening_hours_text_closed', 'The Hotel has been closed and will be open to the public again at %h%:%m%.'), + ('furni_grunge_bench_desc', 'Laid back seating'), + ('BuddyNotHere', 'Offline'), + ('furni_noob_lamp*5_desc', 'Get the light right where you want it (pink)'), + ('NUH_navigator', 'Use the Navigator to move around. There are literally thousands of rooms to explore!'), + ('poster_1338_name', 'Pedobear Seal of Approval'), + ('furni_queue_tile1*9_name', 'Green Habbo Roller'), + ('furni_habboween_crypt_desc', 'What lurks inside?'), + ('furni_sofachair_silo*9_name', 'Red Area Armchair'), + ('furni_exe_chair_name', 'Executive Sofa Chair'), + ('furni_rare_dragonlamp*6_desc', 'Scary and scorching!'), + ('furni_divider_nor2*3_desc', 'Strong, yet soft looking'), + ('furni_tile_yell_name', 'Floor Tiles'), + ('furni_plant_yukka_name', 'Yukka Plant'), + ('furni_wooden_screen*8_desc', 'Add an exotic touch to your room'), + ('furni_pillar*8_desc', 'All roads lead to Rome'), + ('trading_youoffer', 'You offer:'), + ('furni_marquee*8_desc', 'It\'s both door and a shade!'), + ('furni_pura_mdl4*9_name', 'Red Pura Module 4'), + ('roomatic_congrats', 'Congratulations! You\'re now the proud owner of your own Habbo Hotel room.'), + ('furni_tile_marble_name', 'Marble Tile'), + ('furni_bed_budget*3_desc', 'King sized comfort!'), + ('furni_sound_machine*3_desc', 'Top the Habbo Charts!'), + ('nav_venue_bb_lobby_beginner_10_name', 'Beginners Battle Ball 11'), + ('nav_venue_bb_lobby_tournament_1/0_desc', ''), + ('poster_2000_name', 'Suomen kartta'), + ('furni_solarium_norja*3_name', 'Urban Solarium'), + ('furni_present_gen3_desc', 'What\'s inside?'), + ('furni_glass_stool*4_desc', 'Translucent beauty'), + ('int_update_id', 'Update My Habbo ID >>'), + ('nav_venue_bb_lobby_beginner_8/0_desc', ''), + ('furni_carpet_standard*8_desc', 'Available in a variety of colours'), + ('furni_pillar*1_desc', 'Ancient and stately'), + ('receive_invitation_text', 'invites you his/her room. Accept invitation?'), + ('poll_offer_window', 'Welcome to our poll'), + ('furni_table_plasto_bigsquare*5_desc', 'Hip plastic furniture'), + ('furni_carpet_standard*1_desc', 'Available in a variety of colours'), + ('furni_hologram_name', 'Holopod'), + ('nav_venue_bb_lobby_amateur_desc', 'Amateur battle ball!'), + ('furni_barchair_silo*6_desc', 'Practical and convenient'), + ('furni_divider_nor5_desc', 'Cool cornering for your crib y0!'), + ('purse_vouchers_helpbutton', 'More about vouchers >>'), + ('furni_shelves_norja*6_desc', 'For nic naks and art deco books'), + ('nav_venue_sw_lobby_tournament_5/0_desc', ''), + ('furni_chair_basic*4_desc', 'It\'s a cracking design!'), + ('nav_hidefull', 'Hide Full Rooms'), + ('modtool_ban_computer', 'Ban Computer Also'), + ('furni_gothic_sofa*1_name', 'Gothic Sofa Pink'), + ('furni_carpet_standard*b_name', 'Floor Rug'), + ('queue_line', 'You are queueing right now...'), + ('furni_divider_nor1*6_desc', 'Blue Ice corner'), + ('nav_search_helptext', 'Looking for something? Here you can search other Habbo\'s rooms. Type the room name or the name of the Habbo to search for a room.'), + ('furni_marquee*1_desc', 'It\'s both door and a shade!'), + ('furni_rcandleset_desc', 'Simple but stylish'), + ('nav_room_banned', 'You are banned from this room.'), + ('furni_lamp_armas_name', 'Table Lamp'), + ('catalog_costs', '\\x1 costs \\x2 Credits'), + ('furni_drinks_desc', 'Are you a slob too?'), + ('furni_pura_mdl5*6_name', 'Blue Pura Module 5'), + ('summer_chair_1_desc', 'Gotta get up early to get one!'), + ('furni_prize3_desc', 'A weighty award'), + ('furni_soft_sofa_norja*7_name', 'Rural Iced Sofa'), + ('poster_518_name', 'The Welsh flag'), + ('furni_sofachair_polyfon*8_name', 'Yellow Mode Armchair'), + ('furni_prizetrophy3*3_desc', 'Breathtaking bronze'), + ('nav_venue_sw_lobby_amateur_6_name', 'Snow Slingers Lobby'), + ('furni_stand_polyfon_z_desc', 'Tidy up'), + ('furni_carpet_soft_tut_name', 'Welcome Mat'), + ('console_reject_all', 'Reject All'), + ('month12', 'December'), + ('month11', 'November'), + ('help_topics', 'Help Topics:'), + ('nav_venue_sw_lobby_beginner_8/0_desc', ''), + ('nav_rooms_own', 'Own Room(s)'), + ('reg_pwd_note', 'Choose a password that\'s hard to guess! So, don\'t use ANYONES name, or your favorite colour!'), + ('furni_wooden_screen*4_name', 'Golden Oriental Screen'), + ('nav_venue_sw_lobby_beginner_2/0_desc', ''), + ('furni_pillow*6_desc', 'Puffy, soft and huge'), + ('furni_bed_polyfon_one*4_desc', 'Beige Mode Single Bed'), + ('reg_email_note', 'Please enter your e-mail address, this is important! You\'ll only get customer support and special offers via email, if you enter a valid email address and verify it.'), + ('group_admin', 'Administrator'), + ('furni_scifirocket*8_name', 'Pluto Smoke Machine'), + ('furni_chair_plasto*11_desc', 'Hip plastic furniture'), + ('month10', 'October'), + ('furni_goth_table_name', 'Gothic table'), + ('month05', 'May'), + ('month04', 'April'), + ('nav_modify_maxvisitors', 'Choose maximum number of visitors'), + ('nav_venue_bb_lobby_amateur_2_name', 'Gevorderden Battle Ball 3'), + ('month07', 'July'), + ('habboclub_price1', '30'), + ('month06', 'June'), + ('month01', 'January'), + ('month03', 'March'), + ('month02', 'February'), + ('furni_summer_chair*2_desc', 'Pink'), + ('month09', 'September'), + ('month08', 'August'), + ('furni_bardeskcorner_polyfon*4_desc', 'Beige Mode Bardesk Corner'), + ('furni_tree6_name', 'Flashy Christmas Tree'), + ('furni_arabian_snake_name', 'Ornamental Urn'), + ('reg_verification_incorrectPassword', 'Your password was incorrect'), + ('NUF_visting_rooms_hotelview_tutor', 'Here we go again. This time we are learning how to visit another Habbos room.'), + ('furni_summer_chair*9_desc', 'Got your sunglasses?'), + ('furni_safe_silo_name', 'Safe Minibar'), + ('furni_throne_name', 'Throne'), + ('furni_soft_sofachair_norja*8_desc', 'Yellow Iced Sofachair'), + ('NUF_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('nav_venue_picnic/0_desc', 'Don\'t forget to grab a carrot or two!'), + ('furni_bardeskcorner_polyfon_name', 'Corner Cabinet/Desk'), + ('game_placeship', 'Place your ships:'), + ('furni_glass_table*7_desc', 'Habbo Club'), + ('poster_13_name', 'BW Skyline Poster'), + ('furni_jp_bamboo_name', 'Bamboo Forest'), + ('furni_plant_bulrush_name', 'Bulrush'), + ('furni_deadduck3_desc', 'With added ectoplasm'), + ('win_purse', 'Habbo Purse'), + ('furni_jp_tray5_name', 'jp_tray5'), + ('furni_hc_tbl_desc', 'Perfect for banquets'), + ('furni_shelves_norja_desc', 'For nic naks and art deco books'), + ('club_desc_3_period', '6 Months (186 days) = 105 Credits'), + ('furni_bed_budget_one*3_name', 'Black Pura Bed'), + ('poster_2_name', 'Carrot Plaque'), + ('furni_solarium_norja*7_desc', 'Fun in the sun!'), + ('poster_2007_name', 'The Father Of Habbo'), + ('gs_header_teams', 'Teams'), + ('furni_divider_poly3*9_desc', 'Border Control!'), + ('gs_button_creategame', 'Create A New Game'), + ('furni_sound_set_42_name', 'Haunted Mansion'), + ('poll_alert_invalid_selection', 'Please select fewer alternatives'), + ('furni_scifirocket*1_name', 'Saturn Smoke Machine'), + ('furni_scifidoor*10_name', 'Violet Spaceship Door'), + ('furni_sound_set_5_desc', 'The dark side of Habbo'), + ('club_confirm_gift_title', 'You have received a Habbo club gift!'), + ('bb_info_gamePrice', 'Play now for just 2 tickets.'), + ('furni_sound_machine*6_name', 'Purple Traxmachine'), + ('wallitem_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_nor2*6_name', 'Blue Iced bar desk'), + ('nav_venue_sw_lobby_expert_0/0_desc', ''), + ('furni_noob_chair*1_name', 'My first Habbo chair'), + ('group_room_link', 'Group\'s room: %room_name% >>>'), + ('sound_machine_playlist', 'Playlist'), + ('nav_venue_bb_arena_2_name', 'Battle Ball Amatöörit'), + ('roomatic_create_error', 'Error in room creation process. Please try again!'), + ('furni_couch_norja*7_desc', 'Two can perch comfortably'), + ('gs_button_spectate', 'Watch Game!'), + ('furni_sofachair_silo*6_desc', 'Blue Area Armchair'), + ('credit_redeem_button', 'Redeem'), + ('furni_valentinescreen_desc', 'Peep through and smile!'), + ('poster_511_name', 'The Dutch flag'), + ('furni_shelves_armas_name', 'Bookcase'), + ('nav_venue_habbo_lido_name', 'Habbo Lido'), + ('furni_bed_polyfon*9_name', 'Red Double Bed'), + ('furni_sofa_silo*9_name', 'Red Area Sofa'), + ('furni_pura_mdl4*6_desc', 'Any way you like it!'), + ('console_mainhelptext', 'You can use the Habbo Console to keep in constant contact with your friends using instant messages.'), + ('wallitem_jp_ninjastars_name', 'Ninja Stars'), + ('ad_note', 'Clicking this advertisement will open a new window'), + ('ph_tickets_choise2', 'Buy 20 Tickets for 6 Credits.'), + ('ph_tickets_choise1', 'Buy 2 Tickets for 1 Credit.'), + ('reg_day', 'Day'), + ('nav_venue_cunning_fox_gamehall/2_name', 'Noughts&Crosses'), + ('nav_venue_sw_lobby_tournament_6_name', 'Tournament Lobby'), + ('furni_noob_lamp*1_name', 'My first Habbo lamp'), + ('furni_petfood1_name', 'Bones Mega Multipack'), + ('furni_table_silo_med*3_name', 'White Coffee Table'), + ('pet.hotwords.jump', 'jump'), + ('furni_sleepingbag*1_name', 'Red Sleeping Bag'), + ('nav_venue_main_lobby/0_desc', 'The heart of Habbo Hotel'), + ('pet_hungry', 'Hunger:'), + ('furni_rare_fan*4_name', 'SUPERLOVE Fan'), + ('furni_sw_table_name', 'sw_table'), + ('furni_CFC_200_moneybag_name', 'Sack of Credits (China)'), + ('room_ask_friend', 'Ask to be a Friend'), + ('furni_bed_polyfon*2_name', 'Black Mode Double Bed'), + ('furni_table_norja_med_desc', 'Elegance embodied'), + ('nav_removerights', 'Reset'), + ('wallitem_hrella_poster_1_name', 'Porthole'), + ('NUF_getting_items_purse_', 'Click this link to open the Habbo Credits page in the website window.'), + ('poster_31_name', 'System of a Ban'), + ('furni_sound_set_24_name', 'Habbo Sounds 4'), + ('furni_chair_basic*7_name', 'chair_basic'), + ('poster_56_name', 'Disco Sign'), + ('furni_rare_dragonlamp*2_name', 'Jade Dragon Lamp'), + ('furni_gothic_stool*4_desc', 'Witches and Warlocks'), + ('furni_sofa_silo*2_name', 'Black Two-Seater Sofa'), + ('furni_grunge_radiator_name', 'Radiator'), + ('nav_venue_bb_lobby_amateur_9_name', 'Gevorderden Battle Ball 10'), + ('summer_chair_4_name', 'White Deck Chair'), + ('furni_sound_set_49_name', 'Club 4'), + ('messenger.email.subject', ''), + ('furni_romantique_chair*3_name', 'Turquoise Romantique Chair'), + ('furni_s_sound_machine*7_desc', 'Sound Machine Red'), + ('furni_table_plasto_round*9_desc', 'Hip plastic furniture'), + ('furni_table_plasto_4leg*7_name', 'Occasional table'), + ('club_confirm_title', 'You are about to subscribe to Habbo Club. Wise choice!'), + ('furni_romantique_pianochair*1_desc', 'Here sat the legend of 1900'), + ('furni_sofa_silo*6_desc', 'Blue Area Sofa'), + ('nav_venue_bb_lobby_tournament_11_name', 'Competitie Battle Ball 12'), + ('furni_rare_icecream*9_desc', 'Virtual bubblegum rocks!'), + ('furni_romantique_divider*1_name', 'Rose Quartz Screen'), + ('NUF_playing_games_room_ruleslink', 'Click me! But only if you want to read the game FAQs in the website.'), + ('furni_chair_silo_name', 'Dining Chair'), + ('furni_sound_set_17_desc', 'Jive\'s Alive!'), + ('dance_choose', 'Choose Dance'), + ('wallitem_industrialfan_name', 'Industrial Turbine'), + ('sound_machine_alert_invalid_song_length', 'Can\'t burn an empty song!'), + ('furni_pura_mdl1*4_desc', 'Any way you like it!'), + ('wallitem_post.it.vd_desc', 'Heart Stickies'), + ('catalog_give_petname', 'Type your pet\'s name in the grey box.'), + ('furni_pura_mdl2*1_name', 'Aqua Pura Module 2'), + ('poster_24_name', 'Hole In The Wall'), + ('win_error', 'Notice!'), + ('furni_chair_plasto*2_desc', 'Hip plastic furniture'), + ('wallitem_xmas_light_desc', 'Xmas light'), + ('furni_rubberchair*1_name', 'Blue Inflatable Chair'), + ('NUF_getting_room_roommatic_details_tutor', 'Give a name to your room, choose a category and add a description. Don\'t worry, you can change it all later.'), + ('furni_divider_poly3*2_desc', 'Black Mode Bardesk Gate'), + ('furni_plant_valentinerose*2_desc', 'Your secret love'), + ('furni_table_norja_med*7_desc', 'For larger gatherings'), + ('furni_carpet_polar_desc', 'For cuddling up on'), + ('nav_venue_sw_lobby_free_8/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_summer_grill*1_name', 'Blue Barbeque Grill'), + ('furni_chair_norja*7_desc', 'Sleek and chic for each cheek'), + ('furni_joulutahti_name', 'Poinsetta'), + ('furni_exe_table_name', 'Executive Desk'), + ('furni_divider_silo3*8_desc', 'Form following function'), + ('furni_gothiccandelabra_name', 'Gothic Candelabra'), + ('transaction_system_bibit', 'Credit card'), + ('nav_venue_tv_studio/0_desc', 'Sponsored by Bobbanet.com'), + ('furni_noob_table*4_desc', 'Lightweight, practical and light blue'), + ('furni_bardesk_polyfon*3_desc', 'Perfect for work or play'), + ('room_info_rated', 'Room rating:'), + ('nav_venue_bb_lobby_beginner_2/0_desc', ''), + ('help_emergency_explanation', 'If you are experiencing a situation which is making you feel uncomfortable or unsafe, please give details below and a member of community staff will reply as soon as possible.'), + ('furni_divider_nor5*8_desc', 'Cool cornering for your crib y0!'), + ('poster_507_name', 'The French Tricolore'), + ('nav_privateRooms', 'Rooms'), + ('furni_pura_mdl2*5_desc', ''), + ('furni_sporttrack3*3_name', 'Sport goal grass'), + ('furni_sound_set_10_desc', 'Made from real Boy Bands!'), + ('furni_chair_plasto*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja*4_desc', 'Sit back and relax'), + ('furni_s_sound_machine*3_name', 'Sound Machine Green'), + ('reg_spam', 'Yes, I want to get the occasional email from the Hotel Manager.'), + ('shout', 'Shout'), + ('NUF_mini_use_console_read_link', 'Click here to view the message.'), + ('furni_scifidoor*2_desc', 'There out of this world!'), + ('furni_divider_nor3*3_name', 'White Iced Gate'), + ('pet_hung_0', 'Empty'), + ('furni_table_plasto_square*1_name', 'Occasional Table'), + ('pet_hung_6', 'Stuffed'), + ('pet_hung_5', 'Full'), + ('bb_user_skill', 'Skill Level: \\x\\rScore: \\y'), + ('login_welcome', 'Welcome'), + ('pet_hung_2', 'Rumbling'), + ('pet_hung_1', 'Hungry'), + ('poster_20_name', 'Bars'), + ('pet_hung_4', 'Satisfied'), + ('pet_hung_3', 'Peckish'), + ('Alert_WrongNameOrPassword', 'Wrong name or password - please try again!'), + ('furni_romantique_pianochair*5_desc', 'I can feel air coming through...'), + ('furni_carpet_armas_desc', 'Adds instant warmth'), + ('console_removefriend_2', 'from your Friends List?'), + ('console_removefriend_1', 'Are you sure you want to remove'), + ('furni_rare_parasol*0_name', 'Green Parasol'), + ('furni_sound_set_38_name', 'Rock 6'), + ('NUF_mini_meet_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('gs_skill_changed_header', 'Congratulations!'), + ('furni_chair_plasty*7_name', 'Plastic Pod Chair'), + ('furni_safe_silo*5_desc', 'Totally shatter-proof!'), + ('furni_divider_silo1*3_name', 'White Corner Shelf'), + ('nav_venue_hallway_ii_name', 'Hallway II'), + ('cam_release.help', 'Cancel Photo'), + ('nav_venue_bb_lobby_amateur_14/0_desc', ''), + ('habbo_tv_title', 'Widescreen Habbovision'), + ('purse_noevents', 'You haven\'t made any transactions yet. Click the button below to find out how to get Habbo Credits.\\rRemember: you must ask your parents permission before you buy Habbo Credits.'), + ('furni_pura_mdl2*8_name', 'yellow pura module 2'), + ('furni_CFC_10_coin_bronze_name', 'Bronze Coin (China)'), + ('sound_machine_song_remove', 'Remove song'), + ('modtool_choose_length', 'Choose Length:'), + ('sound_machine_turn_off', 'Switch Off'), + ('furni_pura_mdl1*8_desc', ''), + ('furni_spyro_desc', 'The stuff of legend'), + ('furni_pillow*2_name', 'Red Silk Pillow'), + ('furni_table_armas_desc', 'For informal dining'), + ('furni_tree3_desc', 'Any presents under it yet?'), + ('object_displayer_link_looks', 'Change avatar looks'), + ('furni_barrier*2_name', 'White Road Barrier'), + ('furni_gothic_chair*5_desc', 'The dark side of Habbo'), + ('furni_divider_nor4*4_name', 'Urban Iced Shutter'), + ('furni_camera_name', 'Camera'), + ('next_arrows', 'Next >>'), + ('furni_sound_set_60_desc', 'Love and affection!'), + ('furni_bed_polyfon_girl_one_name', 'Single Bed'), + ('NUF_mini_meet_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('successfully_purchase_gift_for', 'Successfully purchased gift for user %user%!'), + ('poster_49_desc', 'All that glitters...'), + ('furni_glass_table*3_name', 'Glass table'), + ('furni_divider_silo3*5_desc', 'Pink Area Gate'), + ('furni_divider_arm3_name', 'Gate (lockable)'), + ('furni_table_plasto_4leg*3_name', 'Round Dining Table'), + ('roomatic_roomnumber', 'Room number:'), + ('nav_venue_bb_lobby_beginner_5_name', 'Beginners Battle Ball 6'), + ('reg_nameAndPassTooSimilar', 'Your name and password are too similar'), + ('nav_venue_theatredrome_easter_name', 'Theatredrome Easter'), + ('nav_venue_bb_lobby_beginner_11/0_desc', ''), + ('furni_fireplace_polyfon_name', 'Fireplace'), + ('queue_set.e1.info', 'There are %e1% Habbos in front of you in the queue.'), + ('more_info_link', 'Redeem Now'), + ('furni_bed_polyfon*6_desc', 'Blue Mode Double Bed'), + ('furni_rare_icecream*5_name', 'Vanilla Ice Cream Machine'), + ('poster_500_name', 'Union Jack'), + ('furni_chair_norja*3_name', 'White Iced Chair'), + ('furni_sound_set_31_name', 'Dance 3'), + ('furni_pura_mdl3*5_name', 'beige pura module 3'), + ('furni_sporttrack2*3_desc', 'null'), + ('furni_sound_set_46_desc', 'De bada bada bo!'), + ('poster_9_name', 'Rainforest Poster'), + ('furni_romantique_pianochair*4_name', 'Amber Piano Stool'), + ('poster_515_desc', 'Waved by Swedes everywhere'), + ('furni_scifidoor*9_desc', 'There out of this world!'), + ('furni_chair_plasty*3_name', 'Plastic Pod Chair'), + ('furni_table_plasto_round*5_name', 'Round Dining Table'), + ('furni_one_way_door*9_desc', 'One at a time!'), + ('furni_calippo_desc', 'Basic model'), + ('furni_footylamp_desc', 'Can you kick it?'), + ('furni_one_way_door*2_desc', 'One way! The HC way!'), + ('furni_arabian_tray4_desc', 'Sweet, juicy and ripe'), + ('furni_divider_nor3*7_name', 'Rural Iced gate'), + ('furni_couch_norja*3_name', 'White Iced Bench'), + ('furni_pillow*9_name', 'Green Wooly Pillow'), + ('game_chooseside', 'Choose your side'), + ('start', 'Start'), + ('furni_toy1*4_desc', 'it\'s bouncy-tastic'), + ('roomevent_host', 'Host:'), + ('nav_venue_rooftop_rumble_name', 'Rooftop Rumble'), + ('nav_venue_bb_lobby_expert_0/0_desc', ''), + ('nav_venue_rooftop_rumble_ii/0_desc', 'Are you ready?'), + ('error_report_trigger_message', 'Last message ID'), + ('furni_sofachair_silo*2_name', 'Black Armchair'), + ('furni_noob_chair*5_desc', 'Lightweight, practical, with pink stripes'), + ('pet_frnd_0', 'Hostile'), + ('furni_noob_rug*3_name', 'My first Habbo rug'), + ('pet_frnd_2', 'Suspicious'), + ('pet_frnd_1', 'Angry'), + ('furni_scifiport*6_desc', 'Energy beams. No trespassers!'), + ('pet_frnd_4', 'Calm'), + ('pet_frnd_3', 'Cool'), + ('pet_frnd_6', 'Warm'), + ('pet_frnd_5', 'Friendly'), + ('pet_frnd_8', 'Loving'), + ('credit_trade_value', 'Includes credit furnis worth %value% credits.'), + ('pet_frnd_7', 'Affectionate'), + ('pet_frnd_9', 'Loyal'), + ('NUF_getting_items_purse_tutor', 'Your Purse tells you how many Habbo Credits you have. If you have a voucher code you can redeem it here by clicking the \'Vouchers\' button.'), + ('furni_chair_norja*6_name', 'Blue Chair'), + ('sound_machine_alert_machine_full', 'You already have 4 Traxpacks loaded. Eject one before adding a new Traxpack.'), + ('nav_venue_club_mammoth/0_desc', 'Monumental and magnificent. For Habbo Club members only.'), + ('NUF_getting_room_hand_tutor', 'This is your hand. It contains all your furniture. I have given you a rug so that you can place it in your room- click and drag it to set it down.'), + ('reg_check_name', 'Name'), + ('furni_glass_stool*7_name', 'Green Glass Stool'), + ('poster_504_name', 'The Bundesflagge'), + ('poster_42_desc', 'Not something you want to run into'), + ('pet.saying.sleep.dog.6', '*dreaming*'), + ('pet.saying.sleep.dog.5', 'Zzzzz wuff! zzzzz'), + ('pet.saying.sleep.dog.4', 'hrrrrr...murrmm..'), + ('furni_pura_mdl4*2_desc', 'Any way you like it!'), + ('pet.saying.sleep.dog.3', 'bzz.. oof oof'), + ('furni_sofa_silo*5_name', 'Pink Area Sofa'), + ('pet.saying.sleep.dog.2', 'hrrr.. hrrr'), + ('pet.saying.sleep.dog.1', 'bzz.. bzzzzz'), + ('furni_petfood4_name', 'T-Bones Mega Multipack'), + ('nav_venue_club_mammoth_name', 'Club Mammoth'), + ('ph_keys_dive', 'Diving moves:'), + ('furni_noob_table*3_name', 'My first Habbo table'), + ('furni_romantique_divan*5_desc', 'Is that a cape hanging there?'), + ('furni_table_plasto_round*8_name', 'Round Dining Table'), + ('furni_rare_fan*1_name', 'Blue Powered Fan'), + ('reg_forcedupdate2', 'Update your Habbo info'), + ('furni_table_plasto_square*4_name', 'Square Dining Table'), + ('NUF_playing_games', 'Playing games'), + ('furni_prizetrophy2*2_name', 'Duck trophy'), + ('reg_forcedupdate3', 'The Habbo Hotel management requires all Habbos to read and agree to the service Terms and Conditions. It won\'t take long.\\rJust go through the registration, check your info and agree to the new terms. Thank you!'), + ('nav_venue_sw_lobby_tournament_2_name', 'Tournament Lobby'), + ('furni_carpet_standard*4_name', 'Floor Rug'), + ('furni_s_sound_machine*6_name', 'Sound Machine Purple'), + ('furni_prizetrophy5*1_desc', 'Glittery gold'), + ('furni_table_plasto_square_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_beginner_2_name', 'Beginners Battle Ball 3'), + ('furni_rubberchair*4_name', 'Ocean Inflatable Chair'), + ('furni_divider_poly3*5_desc', 'Keep the Pink in!'), + ('furni_arabian_teamk_name', 'Tea Maker'), + ('room_name', 'Room:'), + ('nav_venue_chill/0_desc', 'Come chill in the Zen Garden!'), + ('furni_summer_grill*4_name', 'Green Barbeque Grill'), + ('poster_1001_desc', 'even walls have ears'), + ('furni_rare_icecream*8_name', 'Peppermint Ice Cream Machine'), + ('furni_safe_silo*9_desc', 'Totally shatter-proof!'), + ('sound_machine_song_save', 'Save song'), + ('NUF_getting_room_navigator_ownrooms', 'Click the \'Own Room(s)\' tab to see your rooms.'), + ('furni_gothic_chair*1_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*8_name', 'Square Dining Table'), + ('furni_safe_silo*2_desc', 'Totally shatter-proof!'), + ('roomevent_create_description', 'Describe your event'), + ('purse_vouchers_success', 'Voucher was successfully redeemed. You have the Credits.'), + ('furni_gothic_carpet2_name', 'Dungeon Floor'), + ('furni_sofa_polyfon*3_name', 'White Two-seater Sofa'), + ('furni_romantique_tray2_name', 'Treats Tray'), + ('nav_modify_doorstatus_locked', 'Locked (visitors have to ring the bell)'), + ('NUF_visiting_rooms_categorylist_open', 'Click the \'Open\' button to open a category.'), + ('room_doorbell', 'Rings the doorbell - Open the door?'), + ('furni_sound_set_45_name', 'Lost_Beatness'), + ('nav_deleteroom', 'Delete'), + ('furni_barchair_silo_name', 'Bar Stool'), + ('furni_chair_plasto*5_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_14_name', 'Competitie Battle Ball 15'), + ('furni_pura_mdl1*1_desc', 'Any way you like it!'), + ('furni_rare_snowrug_desc', 'Chilled Elegance'), + ('poster_35_desc', 'The Hotel\'s girlband. Dream on!'), + ('furni_glass_stool_desc', 'Translucent beauty'), + ('furni_rare_fan*8_name', 'Habbo Wind Turbine'), + ('furni_menorah_desc', 'Light up your room'), + ('furni_table_silo_small*7_desc', 'Green Area Occasional Table'), + ('furni_divider_silo1*7_name', 'Green Area Corner Shelf'), + ('furni_romantique_divan*1_desc', 'null'), + ('furni_table_plasto_round*1_name', 'Round Dining Table'), + ('reg_changeEmail', 'Change your email'), + ('hobba_mark_normal', 'Send To Helpers'), + ('nav_venue_bb_lobby_tournament_8/0_desc', ''), + ('ph_tickets_have2', 'Tickets'), + ('nav_venue_sw_lobby_intermediate_0/0_desc', ''), + ('ph_tickets_have1', 'You Have'), + ('furni_bardesk_polyfon*7_desc', 'Green Mode Bardesk'), + ('console_inprivateroom', 'In A Guest Room'), + ('furni_sound_set_35_name', 'Dance 6'), + ('GoAway', 'Leave The Room'), + ('room_kick', 'Kick'), + ('furni_rubberchair*8_name', 'Black Inflatable Chair'), + ('poster_6_name', 'Abstract Poster'), + ('hubu_t1_3', ''), + ('NUF_meeting_people', 'Meeting people'), + ('nav_venue_bb_lobby_amateur_4/0_desc', ''), + ('nav_venue_bb_game/0_name', 'Battle Ball Arena'), + ('furni_pudding_name', 'Christmas Pudding'), + ('furni_tile_red_name', 'Floor Tiles'), + ('catalog_typeurname', 'Type your greetings here\\r(don\'t forget to put your name!):'), + ('furni_house2_name', 'Gingerbread House'), + ('hubu_t1_1', 'Kaupunkien pu_t2_2=Katso onko kotisi l_1=Tietoa Hubusta'), + ('furni_glass_table*4_desc', 'Translucent beauty'), + ('hubu_t1_2', ''), + ('nav_venue_club_massiva/1_name', 'Chill-out Room'), + ('furni_scifiport*2_desc', 'Get in the ring!'), + ('furni_traffic_light*4_name', 'Yellow Traffic Light'), + ('furni_tree2_name', 'Old Christmas Tree'), + ('furni_noob_stool*4_name', 'My first Habbo stool'), + ('done', 'Done'), + ('furni_goodie1*1_name', 'Marzipan Man'), + ('nav_venue_bb_lobby_tournament_18/0_desc', ''), + ('poster_17_name', 'Butterfly Cabinet 1'), + ('furni_summer_chair*5_name', 'Deck Chair'), + ('furni_prizetrophy*1_name', 'Classic trophy'), + ('furni_easterduck_desc', 'Can you tell what it is yet?'), + ('furni_barrier*3_desc', 'No trespassing, please!'), + ('furni_table_plasto_bigsquare*1_name', 'Square Dining Table'), + ('club_general_infolink', 'More Info About Habbo Club >>'), + ('furni_chair_silo*4_name', 'Beige Silo Dining Chair'), + ('roomatic_givename', 'Give your room a name!'), + ('furni_rare_icecream*1_name', 'Blueberry Ice Cream Machine'), + ('roomatic_open', 'Door open'), + ('NUF_getting_items_catalogue_tutor', 'Big! You can browse the products by clicking on the categories. There are loads of different types of furniture to decorate your room.'), + ('furni_marquee*4_name', 'Yellow Marquee'), + ('furni_bed_polyfon_one*7_name', 'Green Mode Single Bed'), + ('gs_button_go_started', 'Watch'), + ('poster_27_name', 'Holly Bundle 3'), + ('furni_divider_nor2*7_desc', 'No way through'), + ('furni_glass_chair*5_desc', 'Translucent beauty'), + ('nav_venue_basement_lobby_name', 'Basement Lobby'), + ('pick_furniture', 'Put Furni In Hand'), + ('nav_venue_bb_lobby_beginner_18/0_desc', ''), + ('furni_pura_mdl2*4_name', 'White Pura Module 2'), + ('club_status_title', 'You are currently a member of Habbo Club.'), + ('furni_rare_elephant_statue_name', 'Golden Elephant'), + ('furni_toy1*1_desc', 'it\'s bouncy-tastic'), + ('reg_doneheader', 'Congratulations!\\rYou\'re a Habbo!'), + ('furni_present_gen6_name', 'Gift'), + ('furni_noob_chair*2_desc', 'Lightweight, practical, with dark blue stripes'), + ('furni_sofachair_silo*5_name', 'Pink Area Armchair'), + ('BuddyNow', 'now:'), + ('furni_pura_mdl5*3_desc', 'Any way you like it!'), + ('furni_prizetrophy6*1_name', 'Champion trophy'), + ('BuddyEntry', 'On Hotel View'), + ('furni_scifiport*9_desc', 'Energy beams. No trespassers!'), + ('furni_table_polyfon_small_desc', 'For serving a stylish latte'), + ('furni_exe_rug_name', 'Executive Rug'), + ('nav_venue_the_dirty_duck_pub_name', 'The Dirty Duck Pub'), + ('nav_venue_bb_lobby_beginner_9_name', 'Beginners Battle Ball 10'), + ('nav_venue_sw_lobby_beginner_5_name', 'Snow Rookies Lobby'), + ('furni_pura_mdl5*2_name', 'Pink Pura Module 5'), + ('furni_bardeskcorner_polyfon*7_desc', 'Green Mode Bardesk Corner'), + ('alert_donate_content', 'The other Habbo has not put anything into the trade. Are you sure you want to give away your furni?'), + ('furni_hc_rllr_name', 'HC Rollers Set'), + ('furni_divider_nor1_desc', 'Looks squishy, but isn\'t'), + ('furni_nouvelle_trax_desc', ''), + ('wallitem_jp_sheet3_name', 'jp_sheet3'), + ('furni_hyacinth2_name', 'Blue Hyacinth'), + ('furni_sound_machine_name', 'Sound Machine'), + ('console_getmessage_sender', 'Sender:'), + ('furni_sandrug_name', 'Tropical Beach Rug'), + ('nav_updatenote_header', 'Note!'), + ('furni_pillar*4_desc', 'From the time of the Kick Warz'), + ('furni_waterbowl*1_name', 'Red Water Bowl'), + ('furni_grand_piano*5_name', 'Onyx Grand Piano'), + ('furni_redhologram_name', 'Holo-girl'), + ('sound_machine_alert_playlist_full', 'Could not save playlist! Playlists can have only %count% songs.'), + ('nav_rooms_search', 'Search'), + ('nav_venue_cunning_fox_gamehall/5_name', 'Poker'), + ('nav_venue_habbo_lido_ii_name', 'Habbo Lido II'), + ('furni_barchair_silo*9_desc', 'Practical and convenient'), + ('pet_nature', 'Nature:'), + ('furni_wood_tv_name', 'Large TV'), + ('poster_2008_desc', 'Once every four Habbo years!'), + ('poster_38_desc', 'For really TOUGH Habbos!'), + ('nav_venue_bb_lobby_expert_0_name', 'Expert'), + ('furni_chair_plasto*14_desc', 'Aqua chair'), + ('furni_queue_tile1*6_name', 'Blue Habbo Roller'), + ('poster_522_name', 'The flag of Japan'), + ('furni_chair_basic*3_name', 'Black Pura Egg Chair'), + ('nav_venue_pizza_desc', 'Tunnelmallinen pizzapaikka kiireettömään nautiskeluun.'), + ('furni_jp_tray6_desc', 'jp_tray6'), + ('furni_hc_btlr_desc', 'Your personal caretaker'), + ('furni_song_disk_desc', 'Burn, baby burn'), + ('furni_deadduck2_name', 'Dead Duck 2'), + ('furni_statue_name', 'Cupid Statue'), + ('furni_scifirocket*5_name', 'Uranus Smoke Machine'), + ('nav_gobutton', 'Go'), + ('recycler_furni_not_recyclable', 'This Furniture cannot be recycled. Please only use Furniture that has the recyclable tag in your hand.'), + ('furni_gothic_sofa*5_name', 'Green Gothic Sofa'), + ('furni_sound_set_32_desc', 'Piano concert set'), + ('furni_chair_plasto*10_name', 'Chair'), + ('nav_venue_bb_lobby_tournament_2_name', 'Competitie Battle Ball 3'), + ('furni_grand_piano*1_desc', 'Turquoise Grand Piano'), + ('buddyremove_windowheader', 'Your friends list is full.'), + ('furni_pillar*0_name', 'Greek Pillar'), + ('gs_title_countdown', 'Game Is About To Begin'), + ('furni_glass_sofa*3_name', 'Glass sofa'), + ('furni_hc_crtn_desc', 'Topnotch privacy protection'), + ('furni_waterbowl*5_desc', 'Aqua unlimited'), + ('furni_table_silo_small*4_desc', 'Beige Area Occasional Table'), + ('furni_jp_tray2_name', 'jp_tray2'), + ('furni_rare_moonrug_desc', 'Desolation rocks!'), + ('furni_val_teddy*3_name', 'Green Share Bear'), + ('furni_sleepingbag*10_desc', 'Ultimate coziness'), + ('furni_bar_polyfon_desc', 'You naughty Habbo!'), + ('furni_sofachair_polyfon*2_desc', 'Black Mode Armchair'), + ('furni_exe_sofa_name', 'Executive 3-Seater Sofa'), + ('furni_divider_silo1*4_desc', 'Beige Area Corner Shelf'), + ('poster_2004_name', 'Rasta Poster'), + ('furni_bench_armas_name', 'Bench'), + ('furni_soft_sofachair_norja_desc', 'Soft iced sofachair'), + ('nav_venue_bb_lobby_beginner_14_name', 'Beginners Battle Ball 15'), + ('gs_button_rejoin', 'Play again!'), + ('furni_marquee*8_name', 'Ultramarine Marquee'), + ('furni_tile_marble_desc', 'Slick sophistication; now 10% off!'), + ('hubu_info_url_1', 'http://www.habbohotel.co.uk/habbo/en/help/12'), + ('console_requests', 'Friend Request(s)'), + ('furni_sleepingbag*4_name', 'Army Sleeping Bag'), + ('furni_plant_yukka_desc', 'Easy to care for'), + ('NUF_getting_room_own_rooms_createroom', 'Empty? That\'s because you don\'t have any rooms yet. If it isn\'t empty then you already have made a room, which makes me wonder...'), + ('furni_glass_sofa*6_desc', 'Translucent beauty'), + ('ph_exit', 'Exit In Normal Clothes'), + ('pet_race_0_024', 'Black-eyed Boxer'), + ('furni_marquee*7_name', 'Purple Marquee'), + ('pet_race_0_023', 'Dotty Dalmatian'), + ('recycler_info_timeout', 'Your recycling was completed, but you did not accept it in time. Please press the cancel button below to have your recyclable items restored to your hand. To recycle these items you will need to begin the process again.'), + ('pet_race_0_022', 'Schnitzel Snatcher'), + ('hubu_info_url_2', 'http://www.talktofrank.com/'), + ('pet_race_0_021', 'Loyal Labrador'), + ('nav_venue_snowwar_lobby/0_desc', 'Snow Storm LobbyCome and be a Snow Stormer!'), + ('pet_race_0_020', 'Patchy Pup'), + ('furni_chair_plasto*8_name', 'Chair'), + ('furni_sofachair_silo*9_desc', 'Red Area Armchair'), + ('nav_venue_bb_lobby_beginner_17/0_desc', ''), + ('furni_hc_dsk_desc', 'For Habbo scholars'), + ('furni_wooden_screen*8_name', 'Night Blue Oriental Screen'), + ('gs_lounge_skill_no_min', 'No minimum'), + ('summer_chair_8_name', 'Yellow Deck Chair'), + ('gs_score_tie', 'The game ended in a tie!'), + ('nav_people', 'Who\'s in here?'), + ('furni_gothic_sofa*2_desc', 'Stylish seating for two'), + ('furni_summer_chair*8_name', 'Yellow Deck Chair'), + ('roomatic_roomname', 'Room name:'), + ('furni_ham_desc', 'Tuck in'), + ('nav_venue_star_lounge_desc', 'Is there a VIP visitor in the hotel?'), + ('furni_bardeskcorner_polyfon*3_name', 'White Corner Desk'), + ('gs_specnum', 'Number of spectators: \\x'), + ('furni_bed_budget*3_name', 'Black Pura Double Bed'), + ('furni_shelves_norja*6_name', 'Blue Bookcase'), + ('partner_registration_link', 'Finish registration'), + ('furni_pillar*1_name', 'Pink Marble Pillar'), + ('reg_olderage', 'I am 11 or older'), + ('furni_glass_stool*4_name', 'Glass stool'), + ('back', 'Back'), + ('furni_tile_yell_desc', 'In a choice of colours'), + ('club_confirm_text3', 'Buy more and pay less: 6 Months (186 days) of Habbo Club cost only 105 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_sofa_silo_desc', 'Cushioned, understated comfort'), + ('club_confirm_text1', '1 Habbo Club Month (31 days) costs 25 Credits. You have %credits% Credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('club_confirm_text2', 'Buy more and pay less: 3 Months (93 days) of Habbo Club cost only 60 Credits. You have %credits% credits in your Purse.\\r\\r After buying the membership, you will immediately be part of the Habbo VIP Community.'), + ('furni_carpet_legocourt_name', 'Basketball Court'), + ('furni_present_gen3_name', 'Gift'), + ('furni_sound_set_2_desc', 'Get the party started!'), + ('furni_barchair_silo*6_name', 'Blue Bar Stool'), + ('furni_arabian_bigtb_name', 'Amanjena Table'), + ('interface_icon_catalog', 'Catalogue, furnishing your room'), + ('furni_hologram_desc', 'As if by magic...'), + ('nav_venue_sw_lobby_expert_1/0_desc', ''), + ('furni_carpet_standard*1_name', 'Floor Rug'), + ('nav_owner', 'Owner'), + ('furni_glass_chair*2_desc', 'Translucent beauty'), + ('furni_rcandleset_name', 'Red Candle Plate'), + ('furni_divider_nor1*6_name', 'Blue Ice corner'), + ('nav_private_helptext_hd', 'Rooms'), + ('furni_sound_set_27_name', 'Groove 2'), + ('furni_drinks_name', 'Empty Cans'), + ('pet.saying.eat.cat.0', 'mmm...thumm, thumm'), + ('gs_title_nextround', 'Next game...'), + ('pet.saying.eat.cat.1', 'lap, lap, lap, lap'), + ('furni_scifirocket*9_desc', 'Something fishy is going on...'), + ('pet.saying.eat.cat.2', '*munch, munch*'), + ('pet.saying.sleep.dog.0', 'zzZZZzzz'), + ('furni_noob_lamp*4_name', 'My first Habbo lamp'), + ('nav_venue_sw_lobby_beginner_8_name', 'Snow Rookies Lobby'), + ('nav_venue_library/0_desc', 'Time to catch up on some studying'), + ('camera_dialog_open', 'Shoot'), + ('furni_lamp_armas_desc', 'Ambient lighting is essential'), + ('buddyremove_pleasewait', 'Please wait a second...'), + ('friend_request_options', 'Advanced options.'), + ('transaction_system_web_internal', 'Housekeeping purchase'), + ('furni_rare_dragonlamp*5_name', 'Elf Green Dragon Lamp'), + ('furni_bar_chair_armas_desc', 'The ultimate recycled furniture'), + ('room_ignore', 'Shutup'), + ('poster_518_desc', 'A fiery dragon for your wall'), + ('furni_soft_sofa_norja*7_desc', 'Sit back and relax'), + ('object_displayer_show_tags', 'Show tags'), + ('furni_goth_table_desc', 'The dark side of Habbo'), + ('club_txt_changesubscr', 'Change subscription'), + ('Alert_RememberSetYourPassword', 'Please check your password'), + ('reg_verification_checking', 'Checking...'), + ('furni_silo_studydesk_desc', 'For the true Habbo Scholars'), + ('room_give_rights', 'Give rights'), + ('furni_CF_50_goldbar_name', 'Gold Bar'), + ('furni_rom_lamp_name', 'Crystal Lamp'), + ('furni_sofachair_polyfon*8_desc', 'Yellow Mode Armchair'), + ('furni_deadduck3_name', 'Dead Duck 3'), + ('furni_bed_polyfon_one*4_name', 'Beige Mode Single Bed'), + ('furni_noob_stool*1_desc', 'Unfold me and take the weight off (orange)'), + ('furni_stand_polyfon_z_name', 'Shelf'), + ('furni_prize3_name', 'Bronze Trophy'), + ('club_status_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_table_plasto_bigsquare*9_desc', 'Hip plastic furniture'), + ('furni_wooden_screen*4_desc', 'Add an exotic touch to your room'), + ('furni_sound_set_52_name', 'Christmas Party'), + ('furni_CF_1_coin_bronze_name', 'Bronze Coin'), + ('furni_tile_brown_name', 'Red Tile'), + ('nav_venue_bb_lobby_intermediate_5/0_desc', ''), + ('nav_venue_picnic/0_name', 'Picnic Garden'), + ('furni_sound_set_50_desc', 'The harder generation'), + ('furni_lamp2_armas_name', 'Lodge Candle'), + ('registration_disabled_text', 'You can\'t create new Habbos at the moment. Please try again [some date]..'), + ('catalog_selectproduct', 'Select product:'), + ('transaction_system_sms_telia', 'Telia'), + ('nav_venue_bb_lobby_intermediate_5_name', 'Semi-profs Battle Ball 6'), + ('furni_christmas_sleigh_name', 'Winter Sleigh'), + ('furni_scifirocket*8_desc', 'From a space far, far away!'), + ('furni_bed_budget*9_name', 'Red Pura Double Bed'), + ('poster_2000_desc', 'Suomen kartta'), + ('help_emergency_whathappens', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('purse_coins', 'Habbo Credits'), + ('furni_marquee*5_desc', 'It\'s both door and a shade!'), + ('club_txt_whatis', 'What is Habbo Club?'), + ('furni_present_gen2_name', 'Gift'), + ('trading', 'Trading'), + ('furni_sofa_silo*9_desc', 'Red Area Sofa'), + ('furni_summer_chair*9_name', 'Red Deck Chair'), + ('furni_shelves_armas_desc', 'For all those fire-side stories'), + ('purse_buy_coins', 'Buy Credits'), + ('room_confirmPlace', 'Are you sure?'), + ('furni_queue_tile1*3_desc', 'The power of movement'), + ('furni_soft_sofachair_norja*8_name', 'Yellow Iced Sofachair'), + ('furni_arabian_snake_desc', 'Beware the snake!'), + ('nav_venue_sw_lobby_tournament_6/0_desc', ''), + ('NUF_about_hotel', 'What\'s Habbo about?'), + ('furni_bardeskcorner_polyfon_desc', 'Tuck it away'), + ('furni_bardeskcorner_polyfon*4_name', 'Beige Mode Bardesk Corner'), + ('poster_13_desc', 'Arty black and white'), + ('nav_venue_bb_lobby_beginner_9/0_desc', ''), + ('nav_modify_nameshow', 'Show your name in the room info'), + ('NUF_mini_use_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_1005_desc', 'The muscly movie hero'), + ('wallitem_jp_sheet2_name', 'jp_sheet2'), + ('furni_xmas_cstl_gate_desc', 'Let that icy draft out!'), + ('NUF_groups_url', 'http://d16-1.web.varoke.net/home/group-tutorial'), + ('furni_jp_irori_name', 'Irori'), + ('furni_jp_bamboo_desc', 'Watch out for pandas!'), + ('furni_christmas_reindeer_name', 'Reindeer'), + ('furni_glass_chair*4_name', 'Glass chair'), + ('furni_jp_tray5_desc', 'jp_tray5'), + ('furni_table_plasto_4leg*4_desc', 'Hip plastic furniture'), + ('NUF_getting_items_catalogue_purse', 'Click to open your Purse and find out how to get some Habbo Credits . You can use these to buy stuff!'), + ('furni_hc_tbl_name', 'Nordic Table'), + ('furni_bed_budget_one*6_name', 'Blue Pura Bed'), + ('furni_solarium_norja*7_name', 'Rural Solarium'), + ('console_newmessages', 'New Message(s)'), + ('poster_2_desc', 'Take pride in your veg!'), + ('furni_xmas_cstl_twr_desc', 'All I see from up here is snow!'), + ('hubu_info', 'Welcome to the FRANK Infobus! For the next three months FRANK advisors who know a lot about drugs, their effects and the risks involved, will be stepping aboard the Infobus to offer advice and support to any Habbo that wants to visit the bus. For more information click the link below:'), + ('furni_bardesk_polyfon*6_name', 'Blue Mode Bardesk'), + ('furni_summer_pool*3_name', 'Green Summer Pool'), + ('furni_pura_mdl3*8_name', 'yellow pura module 3'), + ('furni_valentinescreen_name', 'Holiday Romance'), + ('furni_rare_beehive_bulb*1_desc', 'A honey-hued glow'), + ('gs_link_gamerules', 'Game Rules'), + ('nav_venue_bb_lobby_tournament_11/0_desc', ''), + ('sound_machine_song_info', 'Song Info'), + ('wallitem_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_one_way_door*6_desc', 'One way! The HC way!'), + ('furni_table_plasto_round*2_desc', 'Hip plastic furniture'), + ('credit', 'Credit'), + ('gs_lounge_skill_no_max', 'Infinite'), + ('furni_wall_china_desc', 'For your great wall'), + ('NUF_visiting_rooms_roomlist_add to fav', 'After clicking on a room you can click this button here to add it to favourites.'), + ('furni_carpet_polar*3_name', 'Yellow Bear Rug'), + ('poster_46_desc', 'Twinkle, twinkle'), + ('furni_petfood1_desc', 'Fantastic 20% Saving!'), + ('url_nobalance', 'http://%predefined%/credits?'), + ('furni_sofachair_silo*6_name', 'Blue Area Armchair'), + ('furni_noob_chair*1_desc', 'Lightweight, practical and yellow'), + ('nav_venue_bb_lobby_expert_7/0_desc', ''), + ('furni_pura_mdl1*7_name', 'Green Pura Module 1'), + ('furni_table_silo_small*6_name', 'Blue Area Occasional Table'), + ('club_thanks_title', 'Congratulations! You are now a member of Habbo Club.'), + ('furni_legotrophy_name', 'Basketball Trophy'), + ('roomatic_createyrown', 'Create Your Own Room'), + ('console_report_remove', 'Remove'), + ('furni_sound_set_42_desc', 'Bumps and Chills'), + ('furni_divider_nor5*5_desc', 'Cool cornering for your crib y0!'), + ('furni_rare_icecream*2_desc', 'Virtual pistachio rocks!'), + ('furni_pura_mdl4*6_name', 'Blue Pura Module 4'), + ('club_button_close', 'Close Window'), + ('wallitem_md_can_name', 'Bubble Juice Can'), + ('furni_prizetrophy7_desc', 'Palkinto'), + ('nav_venue_cunning_fox_gamehall/2_desc', 'Keep your head down, it\'s bombs away'), + ('poster_28_desc', '10 x Silver Tinsel'), + ('furni_rare_dragonlamp*2_desc', 'Oriental beast of legends'), + ('furni_glass_sofa*2_name', 'Glass sofa'), + ('modtool_hours', 'Hours'), + ('nav_venue_emperors_name', 'Emperor\'s hall'), + ('catalog_buyingSuccesfull', 'Buying Successful!'), + ('console_concurrency_error', 'There was a concurrency error while modifying friend list'), + ('furni_table_silo_med*3_desc', 'Wipe clean and unobtrusive'), + ('furni_sleepingbag*8_desc', 'Ultimate coziness for SnowStorm winners'), + ('poster_508_desc', 'The flag of Spain'), + ('furni_goodie1*2_desc', 'Crunchy Dog Treat'), + ('nav_venue_sw_lobby_free_3/0_desc', ''), + ('furni_chair_basic*7_desc', ''), + ('room_take_rights', 'Remove Rights'), + ('furni_hc_bkshlf_desc', 'For the scholarly ones'), + ('furni_bed_polyfon*2_desc', 'Black Mode Double Bed'), + ('furni_table_plasto_4leg_name', 'Occasional Table'), + ('furni_bed_budget*7_desc', 'King sized comfort!'), + ('win_partner_registration', 'Partner registration'), + ('summer_chair_4_desc', 'Please tan responsably'), + ('furni_table_norja_med_name', 'Coffee Table'), + ('nav_venue_club_massiva/2_desc', 'Make all the right moves'), + ('furni_divider_silo1_desc', 'Neat and natty'), + ('hobba_send_reply', 'Send Alert'), + ('shopping_nocash', 'You don\'t have enough Credits in your Purse.\\r Click \'OK\' to see the different ways of\\rgetting Habbo Credits.'), + ('furni_divider_poly3*9_name', 'Red Hatch'), + ('furni_rare_fountain*1_desc', 'For our feathered friends'), + ('poster_56_desc', 'Serious partying going on!'), + ('furni_scifiport*6_name', 'White Sci-Fi Port'), + ('furni_rclr_garden_desc', 'Self watering'), + ('furni_arabian_tray1_desc', 'Tea for every occasion'), + ('furni_rare_fountain*3_name', 'Bird Bath (blue)'), + ('furni_romantique_pianochair*1_name', 'Rose Quartz Piano Stool'), + ('furni_romantique_divider*1_desc', 'Beauty lies within'), + ('wallitem_post.it.vd_name', 'Heart Stickies'), + ('wallitem_torch_desc', 'The dark side of Habbo'), + ('roomatic_namedisplayed', 'Do you want your name to be displayed with the room?'), + ('furni_grunge_candle_name', 'Candle Box'), + ('furni_sound_set_17_name', 'Groove 3'), + ('furni_prizetrophy3*2_name', 'Globe trophy'), + ('furni_chair_silo_desc', 'Keep it simple'), + ('nav_venue_sw_lobby_beginner_7/0_desc', ''), + ('nav_venue_sw_lobby_beginner_3/0_desc', ''), + ('furni_hc_trll_name', 'Drinks Trolley'), + ('furni_bed_polyfon_one*7_desc', 'Green Mode Single Bed'), + ('furni_chair_plasto*2_name', 'Chair'), + ('furni_pura_mdl1*4_name', 'White Pura Module 1'), + ('furni_gothiccandelabra_desc', 'The dark side of Habbo'), + ('NUH_chat', 'Click here and type to chat to other Habbos.'), + ('furni_plant_valentinerose*2_name', 'White Valentine Rose'), + ('reg_privacypledge', 'Privacy Pledge'), + ('furni_exe_table_desc', 'Take a memo, Featherstone'), + ('hubu_info_link2', 'FRANK Website'), + ('furni_prizetrophy4*3_name', 'Fish trophy'), + ('furni_hc_chr_desc', 'Royal comfort'), + ('hubu_info_link1', 'FRANK Infobus Information'), + ('sound_machine_your_songs', 'Traxmachine Songs'), + ('furni_active_placeholder_name', 'This furniture is downloading...'), + ('furni_divider_silo3*8_name', 'Yellow Area Gate'), + ('NUF_visiting_rooms_categorylist_tutor', 'There are so many Guest Rooms we thought it would be a "hoot" to divide them into categories. Select a category to view its contents.'), + ('furni_sofa_silo*6_name', 'Blue Area Sofa'), + ('club_extend_failed', 'Sorry, we were unable to process the purchase. No Credits were charged!'), + ('furni_soft_sofa_norja*4_name', 'Urban Iced Sofa'), + ('furni_sporttrack3*3_desc', 'null'), + ('furni_sound_set_1_name', 'Habbo Sounds 1'), + ('furni_pura_mdl2*5_name', 'beige pura module 2'), + ('nav_venue_sw_lobby_intermediate_1/0_desc', ''), + ('furni_safe_silo*8_name', 'Yellow Safe Minibar'), + ('trading_agrees', 'agrees'), + ('alert_needpermission', 'You need your parent or guardian\'s permission to spend time in Habbo Hotel.'), + ('nav_modify', 'Modify'), + ('furni_noob_stool*4_desc', 'Unfold me and take the weight off (light blue)'), + ('catalog_length_trophymsg', 'Oops, your inscription is too long, so it won\'t fit on the trophy. \\rPlease type something shorter.'), + ('furni_s_sound_machine*3_desc', 'Sound Machine Green Desc'), + ('club_member', 'Member'), + ('modtool_ban_ip', 'Ban IP Also'), + ('bb_link_gamerules', 'Spelregels'), + ('furni_carpet_armas_name', 'Hand-Woven Rug'), + ('furni_rubberchair*5_desc', 'Soft and tearproof!'), + ('furni_table_plasto_square*1_desc', 'Hip plastic furniture'), + ('furni_divider_nor3*3_desc', 'Do go through...'), + ('nav_venue_habburger\'s/0_desc', 'Get food here!'), + ('reg_linkstitle', 'Full version of the documents:'), + ('roomevent_browser_title', 'Events'), + ('roomatic_security', 'Security'), + ('furni_table_plasto_4leg*7_desc', 'Hip plastic furniture'), + ('furni_table_plasto_round*14_desc', 'Hip plastic furniture'), + ('furni_sound_set_38_desc', 'Rock and Roses!'), + ('furni_rare_parasol*0_desc', 'Block those rays!'), + ('furni_pura_mdl3*6_desc', 'Any way you like it!'), + ('NUF_console', 'Learn about messaging'), + ('poster_45_name', 'Skeleton'), + ('furni_pura_mdl3*9_desc', 'Any way you like it!'), + ('pet_age', 'Age:'), + ('poster_48_name', 'Large gold star'), + ('open', 'Open'), + ('gs_3min', '3min'), + ('wallitem_habw_mirror_name', 'Habbowood Mirror'), + ('furni_carpet_polar*4_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_table_armas_name', 'Dining Table'), + ('sw_gameprice', 'Play now for just 2 tickets!'), + ('furni_divider_nor5*4_name', 'Urban Iced Angle'), + ('navigator', 'Hotel Navigator'), + ('furni_pillow*2_desc', 'Puffy, soft and huge'), + ('purse_vouchers_checking', 'Checking code, please wait...'), + ('furni_noob_rug*4_desc', 'Nice and neat sisal rug with light blue edging'), + ('furni_safe_silo*5_name', 'Pink Safe Minibar'), + ('nav_venue_the_dirty_duck_pub/0_desc', 'The perfect place to chill!'), + ('furni_CFC_10_coin_bronze_desc', 'Worth 10 Credits'), + ('furni_teleport_door_desc', 'Magic doorway to anywhere!'), + ('furni_bardesk_polyfon_name', 'Bar/desk'), + ('login_password', 'Password'), + ('furni_pura_mdl2*8_desc', ''), + ('furni_divider_nor4*4_desc', 'Habbos, roll out!'), + ('furni_rare_fan*7_name', 'Brown Powered Fan'), + ('furni_bed_polyfon_girl_one_desc', 'Snuggle down in princess pink'), + ('club_general_elapsed', 'Elapsed Months'), + ('nav_venue_sw_lobby_free_1_name', 'Free Game Lobby'), + ('furni_gothic_chair*5_name', 'Green Gothic Chair'), + ('furni_sink_name', 'Sink'), + ('furni_bed_budget_one*4_desc', 'Prince sized comfort!'), + ('Alert_ForgotSetPassword', 'Please check your password'), + ('furni_chair_plasto*6_desc', 'Hip plastic furniture'), + ('furni_carpet_standard_desc', 'Available in a variety of colours'), + ('reg_update_text2', 'Only change them when you want to make sure that nobody can know or guess your password.'), + ('furni_arabian_swords_desc', 'Not for yielding'), + ('furni_divider_silo3*5_name', 'Pink Area Gate'), + ('furni_fireplace_polyfon_desc', 'Comfort in stainless steel'), + ('furni_glass_table*3_desc', 'Translucent beauty'), + ('furni_summer_pool*4_desc', 'Fancy a dip?'), + ('poster_500_desc', 'The UK flag'), + ('poster_1004_name', 'Eid Mubarak Poster'), + ('furni_rare_icecream*5_desc', 'Virtual vanilla rocks!'), + ('furni_one_way_door*2_name', 'Black HC Gate'), + ('furni_chair_plasty*3_desc', 'Hip plastic furniture'), + ('club_end_title', 'Your Habbo Club membership has now expired.'), + ('furni_table_polyfon_desc', 'For larger gatherings'), + ('furni_romantique_pianochair*4_desc', 'I can feel air coming through...'), + ('furni_bardesk_polyfon*3_name', 'White Bardesk'), + ('predefined_room_description', '%user_name% has entered the building'), + ('poster_53_desc', 'whack that ball!'), + ('poster_515_name', 'The Swedish flag'), + ('furni_rope_divider_desc', 'Rope Divider'), + ('furni_chair_norja*3_desc', 'Sleek and chic for each cheek'), + ('furni_scifidoor*9_name', 'Blue Spaceship Door'), + ('furni_goodie2_name', 'Chocolate Mouse'), + ('game_poker_logoff', 'Left the game'), + ('furni_bed_polyfon_desc', 'Give yourself space to stretch out'), + ('furni_table_plasto_round*5_desc', 'Hip plastic furniture'), + ('furni_couch_norja*3_desc', 'Two can perch comfortably'), + ('pet.saying.sleep.cat.2', 'Purrr... rrrr'), + ('pet.saying.sleep.cat.1', 'mrrrr..rrrr..'), + ('pet.saying.sleep.cat.0', 'hrrrrr....Mrrrrr'), + ('login_ok', 'OK'), + ('gs_button_expand', 'Expand Window'), + ('pet.saying.sleep.cat.4', 'mrrrr...muew..mrr'), + ('tutorial_next', 'Next:'), + ('pet.saying.sleep.cat.3', 'hurrr..hurrr'), + ('furni_jp_tatami_desc', 'Shoes off please'), + ('hobba_sent_to_moderators', 'Call re-assigned non-emergency, still visible to moderators'), + ('roomatic_choosecategory', ''), + ('wallitem_guitar_v_desc', 'tilulilulii'), + ('NUF_groups', 'Groups'), + ('bb_link_gameRules_url', 'http://%predefined%/groups/56552/id'), + ('nav_venue_theatredrome_halloween_name', 'Theatredrome Habboween'), + ('bb_buyTicketsButton', 'Buy tickets'), + ('furni_gothgate_desc', 'The dark side of Habbo'), + ('game_poker_waiting', 'Change done.\\rWaiting for the other players'), + ('furni_glass_stool*7_desc', 'Habbo Club'), + ('club_end_text', 'BUT, don\'t worry, you can still buy another month of Habbo Club and keep all your Habbo Club benefits,special Furni gifts and the shiny badge!'), + ('furni_sound_set_18_desc', 'Listen while you tan'), + ('furni_sound_set_35_desc', 'Groovelicious'), + ('furni_prizetrophy2*2_desc', 'Shiny silver'), + ('furni_plant_valentinerose*3_desc', 'Relight your passions'), + ('furni_romantique_divan*5_name', 'Onyx Chaise-Longue'), + ('furni_chair_norja*6_desc', 'Sleek and chic for each cheek'), + ('wallitem_hrella_poster_2_desc', 'For those scary Lido moments'), + ('furni_s_sound_machine*6_desc', 'Sound Machine Purple'), + ('game_bs_miss', 'Miss:'), + ('furni_carpet_standard*4_desc', 'Available in a variety of colours'), + ('furni_pura_mdl1*1_name', 'Aqua Pura Module 1'), + ('furni_rare_icecream*8_desc', 'Virtual peppermint rocks!'), + ('furni_petfood4_desc', 'Fantastic 20% Saving!'), + ('furni_table_silo_small*3_name', 'White Occasional Table'), + ('furni_table_plasto_round*8_desc', 'Hip plastic furniture'), + ('furni_chair_polyfon_desc', 'Metallic seating experience'), + ('furni_exe_drinks_desc', 'Give a warm welcome'), + ('nav_createroom', 'Create Own Room'), + ('furni_table_plasto_bigsquare*14_desc', 'Hip plastic furniture'), + ('poster_1001_name', 'Prince Charles Poster'), + ('furni_CF_20_moneybag_name', 'Sack of Credits'), + ('furni_prizetrophy5*1_name', 'Duo trophy'), + ('alert_reg_email', 'Email'), + ('pet_thirsty', 'Thirst:'), + ('nav_error_passwordtooshort', 'The password is too short.'), + ('nav_venue_sw_lobby_free_7_name', 'Free Game Lobby'), + ('furni_plant_valentinerose*5_name', 'Purple Valentine Rose'), + ('recycler_status_info', 'You have Furniture in recycling. The icon will blink when recycling is complete.'), + ('poster_52_name', 'Hockey Stick'), + ('win_doorbell', 'Doorbell'), + ('Unreadmessages', 'New Message(s)'), + ('furni_queue_tile1*9_desc', 'The power of movement'), + ('furni_rare_snowrug_name', 'Snow Rug'), + ('console_approve_selected', 'Accept selected'), + ('pet_race_0_009', 'Hound of Hull'), + ('poster_35_name', 'The Habbo Babes 1'), + ('pet_race_0_008', 'Springy Spaniel'), + ('furni_sofa_polyfon*3_desc', 'Comfort for stylish couples'), + ('furni_basket_name', 'Basket Of Eggs'), + ('pet_race_0_007', 'Slobber Don'), + ('pet_race_0_006', 'Stripy Setter'), + ('pet_race_0_005', 'Paws Forethought'), + ('pet_race_0_004', 'Droopy of Pawford'), + ('furni_barchair_silo_desc', 'Practical and convenient'), + ('furni_noob_lamp*2_desc', 'Get the light right where you want it (dark blue)'), + ('pet_race_0_003', 'Rescue Bernard'), + ('furni_glass_stool_name', 'Glass stool'), + ('pet_race_0_002', 'Joe Cocker Spaniel'), + ('pet_race_0_001', 'Habbo Husky'), + ('pet_race_0_000', 'Yappy Yorkie'), + ('NUF_mini_endtopic_step1_questionmark', 'Click to see our help menu and find our FAQs!'), + ('furni_sound_set_28_desc', 'Head for the pit!'), + ('nav_private_norooms', 'You dont have any rooms - create one?'), + ('furni_table_plasto_square*4_desc', 'Hip plastic furniture'), + ('furni_val_teddy*6_name', 'Blue Share Bear'), + ('furni_noob_table*3_desc', 'Lightweight, practical and aubergine'), + ('gs_state_finished', 'This Game is already over!'), + ('furni_rare_fan*8_desc', 'Stylish, Eco-Energy!'), + ('reg_parentemail_link_url1', 'http://%predefined%//help/parents_guide.html'), + ('furni_gothic_carpet2_desc', 'What lies beneath?'), + ('furni_rare_fan*5_desc', 'It\'ll blow you away!'), + ('modtool_kickuser', 'Kick User'), + ('furni_divider_silo1*7_desc', 'Green Area Corner Shelf'), + ('reg_parentemail_link_url2', 'http://%predefined%//footer_pages/privacy_policy.html'), + ('pet_race_0_019', 'Tiny Terrier'), + ('pet_race_0_018', 'Bushy Woofer'), + ('pet_race_0_017', 'Speckled Sheepdog'), + ('furni_rubberchair*8_desc', 'Soft and tearproof for HC!'), + ('pet_race_0_016', 'Murmurin\' Minimastiff'), + ('poster_42_name', 'Spiderweb'), + ('pet_race_0_015', 'Pixie Poodle'), + ('furni_safe_silo*2_name', 'Black Safe Minibar'), + ('pet_race_0_014', 'Whiffy Woofy'), + ('pet_race_0_013', 'Mangy Mutt'), + ('nav_publicRooms', 'Public Spaces'), + ('pet_race_0_012', 'Tawny Bleugh'), + ('pet_race_0_011', 'Lappy Lassie'), + ('pet_race_0_010', 'Furry McScottie'), + ('game_bs_toast', 'Toast!'), + ('furni_prizetrophy6_name', 'Pokaali'), + ('furni_pudding_desc', 'Will you get the lucky sixpence?'), + ('furni_tile_red_desc', 'In a choice of colours'), + ('nav_venue_sw_arena_expert_name', 'Playing expert game'), + ('pet.saying.sleep.croco.0', 'Zzzz... zzzzz...'), + ('poster_50_desc', 'flap, flap, screech, screech...'), + ('furni_shelves_norja*9_name', 'Red Bookcase'), + ('furni_sound_set_4_name', 'Ambient 1'), + ('furni_exe_s_table_desc', 'Get a clear reflection!'), + ('furni_present_gen6_desc', 'What\'s inside?'), + ('furni_one_way_door*5_name', 'Pink One Way Gate'), + ('nav_search_hd', 'Search rooms by Habbo name or room name.'), + ('poster_20_desc', 'high security for your room'), + ('buddyremove_messenger_updating', 'The console is updating, try again in a minute... Everything else is working fine!'), + ('pet.saying.sleep.croco.3', ':)'), + ('furni_house2_desc', 'Good enough to eat'), + ('pet.saying.sleep.croco.4', '*Snuh snuh*'), + ('tutorial_offtopic', 'Oops! You got off the topic. Please restart or select a new topic.'), + ('pet.saying.sleep.croco.1', 'Yrgh... Yrgh...'), + ('jukebox_now_playing', 'Now playing:'), + ('pet.saying.sleep.croco.2', 'Frgh... Frgh...'), + ('furni_sound_set_25_desc', 'Actually, it\'s Partay!'), + ('club_intro_header', 'Welcome to Habbo Club, the members-only club that all VIP Habbos belong to!'), + ('nav_venue_sw_lobby_amateur_3/0_desc', 'Astetta rankempaa lumisotaa.'), + ('pet.saying.sleep.croco.5', 'Rawwwwwwwwrrrm...'), + ('pet.saying.sleep.croco.6', 'Mmmm... Hooks...'), + ('furni_table_plasto_bigsquare*1_desc', 'Hip plastic furniture'), + ('nav_venue_sw_lobby_free_4_name', 'Free Game Lobby'), + ('alert_warning', 'Moderator says:'), + ('furni_barrier*3_name', 'Red Road Barrier'), + ('nav_venue_floatinggarden_name', 'Floating Garden'), + ('gs_error_nocredits', 'You need Habbo Credits to play a Game!'), + ('furni_chair_plasto*5_name', 'Chair'), + ('furni_tree2_desc', 'Old Christmas Tree'), + ('furni_bed_budget_one*7_desc', 'Prince sized comfort!'), + ('furni_romantique_clock_name', 'romantique_clock'), + ('room_banner_text', ''), + ('furni_sleepingbag*2_desc', 'Ultimate coziness'), + ('furni_divider_nor4*3_name', 'White Iced Auto Shutter'), + ('jukebox_song_remaining', 'Remaining time: %time%'), + ('reg_note_text', 'Never change your password or email\\rif someone else asks you to - they will\\rsteal your furni and Credits!'), + ('habbo_hand_next', '>>>'), + ('nav_venue_orient/0_desc', 'Tres chic with an Eastern twist. For Habbo Club members only.'), + ('furni_easterduck_name', 'Wannabe bunny'), + ('login_forgottenPassword', 'Forgotten your password?'), + ('furni_prizetrophy*1_desc', 'Glittery gold'), + ('hubu_t2_2', ''), + ('hubu_t2_3', 'Vapaa-ajan linkkejä'), + ('decision_cancel', 'Cancel'), + ('nav_venue_bb_lobby_tournament_2/0_desc', ''), + ('furni_samovar_desc', 'Click for a refreshing cuppa'), + ('furni_rcandle_name', 'Red Candle'), + ('furni_waterbowl*4_name', 'Blue Water Bowl'), + ('furni_table_norja_med*7_name', 'Rural Iced Coffee Table'), + ('NUF_playing_games_room_tutor', 'See some people wandering around? They are psyching themselves up for a game. Game Tickets are usually 2 Habbo Credits, but in this room the games are free.'), + ('furni_doormat_love_name', 'Doormat'), + ('bb_link_tournament_highScores_url', 'http://%predefined%//groups/56552/id'), + ('furni_sofachair_polyfon*4_name', 'Beige Mode Armchair'), + ('error_room_full', 'Huone on täynnä.'), + ('furni_chair_silo*4_desc', 'Beige Silo Dining Chair'), + ('furni_divider_nor2*7_name', 'Rural Iced Bar'), + ('hubu_t2_1', ''), + ('furni_divider_nor1*9_name', 'Red Ice corner'), + ('furni_wooden_screen*0_name', 'White Oriental Screen'), + ('furni_chair_basic*1_desc', ''), + ('gs_choose_gamename', 'Enter A Name For Your Game:'), + ('poll_question_number', 'Question %number%/%count%'), + ('furni_hc_rllr_desc', 'Highest class transportation'), + ('furni_table_plasto_4leg*15_desc', 'Hip plastic furniture'), + ('furni_scifiport*9_name', 'Violet Sci-Fi Port'), + ('furni_jukebox*1_desc', 'For your Happy Days!'), + ('furni_red_tv_desc', 'Don?t miss those soaps'), + ('furni_song_disk_name', 'Traxdisc'), + ('reg_agree_alert', 'You have to agree to the terms of service\\r(tick the box).'), + ('furni_summer_chair*1_desc', 'Got your swimming trunks?'), + ('poster_2008_name', 'Habbo Leap Day Poster'), + ('poster_505_desc', 'The Canadian flag'), + ('group_homepage', 'Groups\' Homepage >>>'), + ('furni_table_silo_med*6_desc', 'Blue Area Coffee Table'), + ('nav_venue_tearoom/0_name', 'Chinese Tea Room'), + ('dimmer_use_bg_only', 'Background only'), + ('furni_divider_poly3*4_name', 'Beige Mode Bardesk Gate'), + ('nav_venue_hotel_kitchen/0_desc', 'Beware the flying knives!'), + ('furni_divider_silo1*8_desc', 'Neat and natty'), + ('furni_hc_btlr_name', 'Electric Butler'), + ('furni_wooden_screen*5_name', 'Gray Oriental Screen'), + ('furni_scifiport*8_name', 'Purple Sci-Fi Port'), + ('furni_carpet_standard*5_name', 'Floor Rug'), + ('trading_offers', 'offers:'), + ('furni_prizetrophy2*3_name', 'Duck trophy'), + ('transaction_system_club_habbo', 'Habbo Club payment'), + ('nav_venue_bb_lobby_tournament_9/0_desc', ''), + ('poster_517_name', 'The Scottish flag'), + ('furni_wood_tv_desc', 'For family viewing'), + ('furni_deadduck2_desc', 'Someone forgot to feed me...'), + ('furni_sound_set_20_desc', 'Musical heaven'), + ('sound_machine_new', 'Create a New Song'), + ('nav_venue_the_chromide_club/0_desc', 'Ghetto Fabulous'), + ('nav_modify_doorstatus_pwagain', 'pw again:'), + ('furni_chair_plasto*10_desc', 'Hip plastic furniture'), + ('gs_idlewarning', 'You will be replaced if you don\'t start or join a Game soon!'), + ('purse_vouchers_entercode', 'Enter code here:'), + ('sound_machine_song_name', 'Untitled Trax'), + ('furni_sofa_polyfon*4_name', 'Beige Mode Sofa'), + ('furni_carpet_standard*a_name', 'Floor Rug'), + ('poster_510_name', 'The Italian flag'), + ('furni_table_plasto_square*7_name', 'Square Dining Table'), + ('furni_noob_chair*6_desc', 'Lightweight, practical with dark yellow stripes'), + ('forgottenpw_whatyou', 'What\'s your Habbo called?'), + ('nav_venue_bb_lobby_amateur_1_name', 'Gevorderden Battle Ball 2'), + ('furni_noob_table*6_name', 'My first Habbo table'), + ('furni_pillar*0_desc', 'Classy architect, for holding up ceilings!'), + ('poster_1002_desc', 'aw, bless...'), + ('furni_divider_arm1_desc', 'Good solid wood'), + ('furni_glass_stool*8_name', 'Glass stool'), + ('furni_rare_moonrug_name', 'Moon Patch'), + ('nav_venue_rooftop_rumble/0_desc', 'Are you ready?'), + ('transaction_system_sms_sonera', 'Sonera'), + ('furni_waterbowl*5_name', 'Brown Water Bowl'), + ('furni_sound_set_32_name', 'Instrumental 2'), + ('furni_table_silo_small*4_name', 'Beige Area Occasional Table'), + ('furni_prizetrophy8*1_name', 'Duo trophy'), + ('tutorial_menu', 'Get help with...'), + ('gs_2teams', '2 Teams Game'), + ('furni_sound_machine*4_desc', 'For Funky, Funky Fridays!'), + ('furni_romantique_divan*4_desc', 'Is that a cape hanging there?'), + ('furni_couch_norja*8_desc', 'Two can perch comfortably'), + ('console_usersnotfound', 'Habbo Not Found'), + ('nav_venue_bb_lobby_amateur_2/0_desc', ''), + ('furni_sleepingbag*4_desc', 'Ultimate coziness'), + ('furni_bed_budget_one*6_desc', 'Prince sized comfort!'), + ('furni_sw_chest_desc', ''), + ('nav_venue_bb_lobby_amateur_5/0_desc', ''), + ('NUF_visiting_rooms_room_tutor', 'This is a Guest Room. You can either quit the tutorial and start meeting people, or select the next topic.'), + ('furni_jp_pillow_name', 'Pillow Chair'), + ('url_logged_out', 'http://%predefined%/account/disconnected?reason=logout&origin=popup'), + ('furni_romantique_smalltabl*1_name', 'Rose Quartz Tray Table'), + ('friend_request_declined', 'Declined!'), + ('furni_grunge_shelf_desc', 'Scrap books and photo albums'), + ('furni_gothic_stool*6_name', 'Gothic Stool Blue'), + ('wallitem_gothicfountain_desc', 'Not suitable for drinking!'), + ('furni_scifiport*1_name', 'Gold Laser Gate'), + ('furni_sound_set_41_name', 'Rock 8'), + ('furni_toilet_yell_name', 'Loo Seat'), + ('console_fr_limit_exceeded_error', 'Too many friends selected. Please remove some first.'), + ('console_asktobecomeafriend', 'Ask To Become A Friend'), + ('console_friends', 'Friends'), + ('furni_table_plasto_bigsquare*4_desc', 'Hip plastic furniture'), + ('poster_2005_desc', 'The Special Infobus Poster'), + ('furni_summer_chair*8_desc', 'Got your sun cream?'), + ('furni_s_sound_machine*2_name', 'Sound Machine Ocean'), + ('nav_ringbell', 'The door is locked. Ringing the bell, and waiting...'), + ('console_profilematch', 'Habbo Profile match -'), + ('poster_14_name', 'Fox Poster'), + ('furni_bardeskcorner_polyfon*3_desc', 'Tuck it away'), + ('furni_carpet_soft*2_name', 'Soft Wool Rug'), + ('furni_ham_name', 'Joint of Ham'), + ('nav_venue_star_lounge_name', 'Star Lounge'), + ('nav_venue_bb_lobby_beginner_desc', 'Beginner battle ball'), + ('furni_doormat_plain*3_desc', 'Available in a variety of colours'), + ('furni_habbowood_chair_desc', 'Exclusively for Directors'), + ('nav_venue_bb_lobby_beginner_3/0_desc', ''), + ('furni_CF_20_moneybag_desc', 'Worth 20 Credits'), + ('furni_edice_desc', 'What\'s your lucky number?'), + ('furni_scifirocket*9_name', 'Neptune Smoke Machine'), + ('furni_bardesk_polyfon*9_name', 'Red Bardesk'), + ('furni_glass_table*8_desc', 'Translucent beauty'), + ('NUF_mini_endtopic', 'Find out more'), + ('pending_cfh_title', 'Your old message'), + ('nav_venue_sw_arena_tournament_name', 'Playing a tournament game!'), + ('furni_arabian_bigtb_desc', 'It must be Jinn-er time!'), + ('nav_venue_bb_lobby_beginner_0/0_desc', ''), + ('furni_pillow*3_name', 'Turquoise Satin Pillow'), + ('interface_icon_help', 'Help, need help?'), + ('nav_roomnfo_hd_src', 'Search Rooms'), + ('pet.saying.generic.dog.0', 'woof..woof'), + ('furni_chair_norja*9_name', 'Red Chair'), + ('NUF_getting_room_roommatic_start_tutor', 'This is the Room-O-Matic! Green! You use this to make your room.'), + ('furni_sound_set_2_name', 'Habbo Sounds 3'), + ('nav_venue_netcafe_name', 'My Habbo Home Netcafe'), + ('purse_voucherbutton', 'Vouchers'), + ('console_console', 'Console'), + ('game_poker_changed', 'changed'), + ('transaction_system_splashplastic', 'SplashPlastic'), + ('nav_venue_sw_lobby_free_7/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_sporttrack3*1_desc', 'null'), + ('buddyremove_prev', '< Previous'), + ('roomatic_chooselayout', 'Choose the layout of your room'), + ('wallitem_item_placeholder_desc', 'This furniture is downloading...'), + ('purse_note', 'NOTE : The transactions are updated at 6 am every day.'), + ('poster_34_desc', 'Habbo-punk for the never-agreeing'), + ('furni_sound_set_27_desc', 'Jingle Bells will never be the same...'), + ('game_chess_start', 'Start Over'), + ('summer_chair_7_desc', 'A green deck chair'), + ('nav_venue_bb_lobby_beginner_6_name', 'Beginners Battle Ball 7'), + ('purse_link', 'Click here to see how to get Credits.'), + ('poster_59_desc', 'Torch - it gives you some light'), + ('room_info_rate_req', 'Rate this room'), + ('furni_rare_dragonlamp*5_desc', 'Roast your chestnuts here!'), + ('furni_divider_silo3*9_desc', 'Red Area Gate'), + ('more_roomlayouts', 'Extra room layouts for Habbo Club members >>'), + ('furni_grunge_chair_desc', 'Alternative chair for alternative people'), + ('furni_bed_budget*9_desc', 'King sized comfort!'), + ('furni_christmas_sleigh_desc', 'Ready for your Xmas cheer'), + ('furni_table_plasto_4leg*8_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_5_name', 'Competitie Battle Ball 6'), + ('furni_table_norja_med*4_name', 'Urban Iced Coffee Table'), + ('instant_friend_request_header', 'Friend Request'), + ('furni_marquee*3_name', 'Aqua Marquee'), + ('furni_noob_stool*1_name', 'My first Habbo stool'), + ('furni_rare_mnstr_desc', 'Don\'t get too close...'), + ('furni_safe_silo_pb_desc', 'Totally shatter-proof!'), + ('NUF_meeting_people_user_chatfield', 'Start typing here and press \'Enter\' to chat with others.'), + ('furni_prizetrophy6*2_desc', 'Shiny silver'), + ('furni_table_plasto_bigsquare*9_name', 'Square Dining Table'), + ('club_habbo.window.title', 'Habbo Club'), + ('recycler_info_ready', 'Recycling is complete. You have made a great environmentally friendly decision. All the recycled items you receive have been made from old items which helps to save natural resources and reduce pollution.'), + ('furni_shelves_norja*5_desc', 'For nic naks and art deco books'), + ('furni_table_silo_med_name', 'Coffee Table'), + ('furni_grunge_sign_desc', 'Bought legitimately from an M1 cafe.'), + ('roomevent_type_9', 'Group Events'), + ('roomevent_type_7', 'Dating'), + ('pet.saying.generic.dog.1', 'woof woof woof!!!'), + ('roomevent_type_8', 'Jobs'), + ('pet.saying.generic.dog.2', 'wooooof!'), + ('roomevent_type_5', 'Debates & Discussion'), + ('pet.saying.generic.dog.3', 'hooooowl'), + ('roomevent_type_6', 'Grand Openings'), + ('furni_solarium_norja*2_name', 'Beige Solarium'), + ('nav_venue_bb_lobby_intermediate_3_name', 'Semi-profs Battle Ball 4'), + ('console_searchfor', 'Search:'), + ('wallitem_arabian_wndw_desc', 'Arabian days and nights'), + ('furni_queue_tile1*3_name', 'Ice Habbo Roller'), + ('furni_lamp2_armas_desc', 'Wax lyrical with some old-world charm'), + ('furni_jp_tray3_desc', 'jp_tray3'), + ('wallitem_guitar_skull_name', 'skull guitar'), + ('roomevent_type_3', 'Games'), + ('furni_romantique_divider*2_desc', 'Keeping things separated'), + ('roomatic_owner', 'Owner:'), + ('url_helpterms', 'http://%predefined%//help/68'), + ('roomevent_type_4', 'Welcoming Party Events'), + ('furni_glass_chair*6_desc', 'Translucent beauty'), + ('furni_pillar*5_name', 'Pagan Pillar'), + ('roomevent_type_1', 'Parties & Music'), + ('roomevent_type_2', 'Trading'), + ('furni_present_gen2_desc', 'What\'s inside?'), + ('ph_tickets_title', 'Tickets'), + ('furni_table_norja_med*8_desc', 'For larger gatherings'), + ('furni_sound_set_54_desc', 'Tune into Christmas'), + ('poster_61_desc', 'The Auspicious One'), + ('furni_divider_silo3_name', 'Gate (lockable)'), + ('furni_scifirocket*4_desc', 'Welcome... to planet love'), + ('furni_plant_valentinerose*1_name', 'Red Valentine\'s Rose'), + ('furni_exe_chair2_name', 'Executive Boss Chair'), + ('alert_donate_ok', 'Give away my furni'), + ('furni_bardesk_polyfon*4_desc', 'Beige Mode Bardesk'), + ('furni_pura_mdl1*5_desc', ''), + ('hubu_close', 'Sulje kioski'), + ('gs_deathmatch', 'Every Habbo for himself!'), + ('summer_chair_9_desc', 'Sunbathing, why not?'), + ('furni_barchair_silo*8_name', 'Yellow Bar Stool'), + ('console_differentmessagemodes', 'Different Messages'), + ('furni_chair_silo*5_name', 'Pink Silo Dining Chair'), + ('callhelp_explanation', 'Thanks for reporting the problem'), + ('furni_chair_plasty*1_desc', 'Hip plastic furniture'), + ('furni_bed_budget*2_desc', 'Queen sized comfort!'), + ('furni_summer_grill*2_desc', 'Plenty of shrimp on that barbie'), + ('furni_heart_desc', 'Full of love'), + ('reg_donetext', 'Soon you\'ll see the Hotel Navigator, it shows you all the rooms you can go to -the guest rooms, clubs, caf�s, swimming pools and more!'), + ('poster_523_desc', 'The flag of India'), + ('furni_one_way_door*1_name', 'Aqua One Way Gate'), + ('furni_bardeskcorner_polyfon*13_desc', 'Tuck it away'), + ('nav_venue_sw_lobby_amateur_5/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_gothic_chair*4_desc', 'Vampires and Wizards'), + ('furni_bardesk_polyfon*6_desc', 'Blue Mode Bardesk'), + ('transaction_system_sms_sra', 'Sonera'), + ('dimmer_turn_off', 'Turn OFF'), + ('furni_fireplace_armas_desc', 'Authentic, real flame fire'), + ('furni_chair_plasty*6_name', 'Plastic Pod Chair'), + ('furni_scifidoor*6_name', 'Black Monolith'), + ('furni_summer_pool*3_desc', 'Fancy a dip?'), + ('furni_christmas_reindeer_desc', 'Prancer becomes Rudolph in a click!'), + ('furni_chair_norja_name', 'Chair'), + ('furni_barchair_silo*3_name', 'White Bar Stool'), + ('nav_venue_bb_lobby_tournament_desc', 'Play battle ball tournament!'), + ('transaction_system_bank_sampo', 'Sampo'), + ('furni_sound_set_39_name', 'Rock 7'), + ('furni_pura_mdl3*8_desc', ''), + ('console_follow_prevented', 'Your friend has prevented others from following him/her.'), + ('poster_46_name', 'Small gold star'), + ('furni_sofa_polyfon_girl_name', 'Two-seater Sofa'), + ('furni_carpet_polar*3_desc', 'Snuggle up on a Funky bear rug...'), + ('modtool_rankerror', 'You do not have the rights for this action on this user!'), + ('furni_divider_nor3*4_name', 'Urban Iced Gate'), + ('nav_venue_theatredrome_valentine/0_desc', 'Hug A Friend, Its Valentines! Home Of Ralph (Wannabe Panda In Training)'), + ('furni_one_way_door*6_name', 'Blue HC Gate'), + ('poster_7_desc', 'For emergencies only'), + ('wallitem_hc_wall_lamp_name', 'Retro Wall Lamp'), + ('poster_508_name', 'The Spanish flag'), + ('help_emergency_example', 'Example: A Habbo wants to see me on webcam.'), + ('nav_venue_bb_lobby_expert_1/0_desc', ''), + ('furni_pura_mdl1*7_desc', 'Any way you like it!'), + ('wallitem_post.it_desc', 'Pad of stickies'), + ('nav_modify_doorstatus_passwordprotected', 'Let other people move and leave furniture in the room.'), + ('queue_set.queue_full.alert', 'The queue for this room is full. Please try again later.'), + ('nav_venue_bb_lobby_beginner_8_name', 'Beginners Battle Ball 9'), + ('nav_venue_sw_arena_amateur_name(0)', 'Playing amateur game'), + ('url_figure_editor', 'http://%predefined%//profile/profile.action'), + ('furni_noob_lamp*6_desc', 'Get the light right where you want it (canary yellow)'), + ('furni_divider_nor5*5_name', 'Pink Iced Angle'), + ('nav_venue_sw_lobby_free_desc', 'Come and play. It\'s free!'), + ('furni_table_silo_small*6_desc', 'Blue Area Occasional Table'), + ('NUF_getting_items_navigator_tutor', 'You need to be in a Habbo\'s room to access the Catalogue.'), + ('furni_safe_silo*6_desc', 'Totally shatter-proof!'), + ('furni_glass_sofa*7_name', 'Green Glass Sofa'), + ('wallitem_md_can_desc', 'Enough bubbling juice for one evening'), + ('furni_rare_fan*9_desc', 'It\'ll blow you away!'), + ('furni_prizetrophy7_name', 'Pokaali'), + ('furni_noob_stool*3_name', 'My first Habbo stool'), + ('furni_glass_sofa*2_desc', 'Translucent beauty'), + ('pet_frnd_10', 'Adoring'), + ('furni_turkey_desc', 'Where\'s the cranberry sauce?'), + ('pet_frnd_11', 'Devoted'), + ('Alert_ConnectionNotReady', 'Could not connect to the server'), + ('console_search_habbo_profilematch', 'Habbo Profile match -'), + ('furni_sound_set_59_desc', 'Urban break beats'), + ('poster_21_name', 'Butterfly Cabinet'), + ('credits', 'Credits'), + ('furni_sound_set_14_name', 'Hip Hop Beats 2'), + ('NUH_hand', 'Click here to open your inventory (aka the Big Hand). Drag and drop furniture to and from here to move it.'), + ('furni_pura_mdl3*1_desc', 'Any way you like it!'), + ('nav_modify_doorstatus_pwprotected', 'Password protected:'), + ('shopping_costs', 'XX costs XX Credit(s).\\rJust click \'buy\' once, it\'ll appear shortly.'), + ('NUF_mini_meet_people', 'Meet some people'), + ('furni_divider_nor1*3_name', 'White Iced Corner'), + ('furni_bed_budget*7_name', 'Green Pura Double Bed'), + ('furni_pura_mdl5*9_desc', 'Any way you like it!'), + ('nav_venue_club_massiva/2_name', 'Dancefloor'), + ('furni_scifiport*3_desc', 'Energy beams. No trespassers!'), + ('whisper', 'Whisper'), + ('furni_chair_plasto*4_name', 'Chair'), + ('furni_hc_bkshlf_name', 'Medieval Bookcase'), + ('furni_goodie1*2_name', 'Marzipan Man'), + ('furni_rare_fountain*1_name', 'Bird Bath (grey)'), + ('bb_text_hostInfo', 'Please choose a name for your Game and select the number of Teams.'), + ('hubu_t3_1', ''), + ('hubu_t3_2', 'Hubun kiertuekalenteri 2002'), + ('furni_sound_set_34_name', 'Rock 5'), + ('furni_rare_fountain*3_desc', 'For our feathered friends'), + ('nav_venue_sw_lobby_amateur_5_name', 'Snow Slingers Lobby'), + ('furni_pura_mdl3*2_name', 'Pink Pura Module 3'), + ('furni_xmas_cstl_wall_desc', 'Solid blocks of ice and snow'), + ('furni_arabian_tray1_name', 'Mint Tea Tray'), + ('furni_jp_tray4_name', 'jp_tray4'), + ('furni_grunge_candle_desc', 'Late night debate'), + ('furni_rclr_garden_name', 'Water Garden'), + ('furni_CFC_100_coin_gold_name', 'Gold Coin (China)'), + ('nav_venue_gate_park_name', 'Imperial Park'), + ('shopping_asagift', 'Buy As A Gift'), + ('furni_soft_sofachair_norja*7_desc', 'Sit back and relax'), + ('dance', 'Dance'), + ('roomatic_wrongpw', 'Oops! Sorry, your passwords don\'t match. Please enter them again.'), + ('furni_hc_trll_desc', 'For swanky dinners only'), + ('furni_prizetrophy3*2_desc', 'Shiny silver'), + ('modtool_roomkick', 'Room Kick'), + ('roomatic_letmove', 'Let other people move your furniture and place their own. (Furniture cannot be stolen.)'), + ('roomevent_default_description', ''), + ('nav_venue_sw_lobby_free_4/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('console_invalid_message', 'There was a message from a user that was probably removed your friend list. Note, user is removed from your friend list if you report a message to moderators.'), + ('poster_503_name', 'The Swiss flag'), + ('nav_venue_sw_arena_expert_name(0)', 'Playing expert game'), + ('poster_41_desc', 'For the best music-makers'), + ('furni_tile_name', 'Floor Tiles'), + ('furni_val_randomizer_name', 'Love Randomiser'), + ('nav_modify_doorstatus_open', 'Open'), + ('furni_plant_big_cactus_desc', 'Habbo Dreams monster in hiding! Shhhh'), + ('furni_safe_silo*8_desc', 'Totally shatter-proof!'), + ('wallitem_sw_hole_name', 'sw_hole'), + ('play_preview', 'Play preview of sounds'), + ('furni_table_plasto_round*14_name', 'Occasional Table'), + ('poll_thanks_window', 'Thanks!'), + ('wallitem_habbowheel_desc', 'So you gotta ask yourself "Do I feel lucky?"'), + ('furni_carpet_standard_name', 'Floor rug'), + ('furni_divider_nor1*8_name', 'Yellow Ice corner'), + ('nav_venue_bb_lobby_tournament_3/0_desc', ''), + ('buddyremove_ok_text', 'You have chosen enough friends to remove.'), + ('nav_venue_sw_lobby_intermediate_5/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_divider_nor4*7_desc', 'Habbos, roll out!'), + ('furni_summer_chair*3_desc', 'Black'), + ('furni_table_plasto_bigsquare*6_desc', 'Hip plastic furniture'), + ('gs_link_highscores', 'High Scores'), + ('Alert_purchasingerror', 'Buying unsuccessful'), + ('poster_5_desc', 'Quacking good design!'), + ('help_emergency_sent', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('room_user_page', 'Home Page'), + ('room_badge_window_title', 'Badge'), + ('login_name', 'Name of your Habbo'), + ('furni_divider_nor2*5_name', 'Pink Iced bar desk'), + ('nav_venue_habbo_lido_ii/0_desc', 'Dive right in!'), + ('furni_sporttrack2*2_name', 'Sport corner asphalt'), + ('roommatic_modify_size', 'Room size: %tileCount% tiles'), + ('pet.saying.sniff.croco.2', '*Sighs*'), + ('furni_prize2_name', 'Silver Trophy'), + ('Now you can find out how to get more cool Furniture for your room, or select another topic.', ''), + ('pet.saying.sniff.croco.0', 'Ewwwww....'), + ('pet.saying.sniff.croco.1', '*Sniff sniff*'), + ('furni_pura_mdl3*6_name', 'Blue Pura Module 3'), + ('poster_48_desc', 'All that glitters...'), + ('furni_wcandle_desc', 'Xmas tea light'), + ('nav_venue_bb_arena_3_name', 'Battle Ball Keskitaso'), + ('sound_machine_confirm_save_long', 'Are you sure you want to overwrite the current saved song?'), + ('purse_vouchers_helpurl', 'http://%predefined%/help/4'), + ('nav_venue_bouncer_room_2_name', 'Gevorderden Battle Ball Arena'), + ('furni_sand_cstl_gate_desc', 'sand_cstl_gate desc'), + ('furni_barrier*1_name', 'Yellow Maze Barrier'), + ('nav_venue_bb_lobby_tournament_0_name', 'Tournament'), + ('NUF_getting_room_roommatic_layout_tutor', 'Select what you want your room to look like. Use the arrows to cycle through different room layouts. Almost there, almost there...'), + ('poll_confirm_cancel', 'Stop answering?'), + ('furni_carpet_soft*4_desc', 'Soft Wool Rug'), + ('furni_rare_icecream_campaign_desc', 'Basic model'), + ('club_habbo.bottombar.text.notmember', 'Habbo Club'), + ('recycler_info_closed', 'Recycler is closed at the moment. Please check back later to recycle your Furniture.'), + ('furni_solarium_norja*8_desc', 'Rejuvenate your pixels!'), + ('callhelp_example', 'Example: How do I move my Furni?'), + ('furni_bed_budget_one*4_name', 'White Pura Bed'), + ('roomatic_givepwd', 'Password:'), + ('furni_teleport_door_name', 'Teleport Door'), + ('furni_table_silo_small*9_name', 'Red Area Occasional Table'), + ('furni_noob_chair*4_name', 'My first Habbo chair'), + ('furni_table_plasto_square*2_desc', 'Hip plastic furniture'), + ('room_waiting', 'Waiting to go in...'), + ('furni_sink_desc', 'Hot and cold thrown in for no charge'), + ('furni_doormat_plain_name', 'Doormat'), + ('nav_venue_eric\'s_eaterie_name', 'Eric\'s Eaterie'), + ('nav_venue_pizzeria_name', 'Slice of Life'), + ('poster_1004_desc', 'Celebrate with us'), + ('next', 'Next'), + ('furni_solarium_norja*9_name', 'Red Solarium'), + ('tutorial_quit_confirmation', 'You want to leave? Well I hope you learned something... something useful!'), + ('furni_val_teddy*2_desc', 'The pink bear of passion'), + ('poster_1003_name', 'UK Map'), + ('furni_glass_table*2_name', 'Glass table'), + ('NUF_habbo_home_url', 'http://d15-1.web.varoke.net/home/home-tutorial'), + ('furni_bed_silo_one_name', 'Single Bed'), + ('transaction_system_sms_win_btcellnet', 'O2 SMS'), + ('pet.hotwords.go_away', 'go away'), + ('furni_table_plasto_square*9_desc', 'Hip plastic furniture'), + ('furni_doormat_plain*4_name', 'Doormat'), + ('nav_venue_cunning_fox_gamehall_name', 'Cunning Fox Gamehall'), + ('furni_sound_machine*2_name', 'Ocean Traxmachine'), + ('furni_table_polyfon_name', 'Large Coffee Table'), + ('furni_hc_frplc_desc', 'Pixel-powered for maximum heating'), + ('console_request_massoperation_instruction', 'Use the options below to accept or decline ALL friend requests you have waiting.'), + ('nav_venue_bb_lobby_tournament_6/0_desc', ''), + ('furni_table_plasto_round*6_desc', 'Hip plastic furniture'), + ('trading_cancel', 'Cancel Trading'), + ('furni_glass_stool*3_name', 'Glass stool'), + ('furni_plant_mazegate_snow_name', 'Snowy Maze Gate'), + ('nav_venue_tv_studio_name', 'MuchMusic HQ'), + ('furni_table_norja_med*3_desc', 'For larger gatherings'), + ('furni_chair_plasty*8_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_name', 'Double Bed'), + ('gs_4teams', '4 Team Game'), + ('furni_sound_set_8_desc', 'Mellow electric grooves'), + ('ph_keys_jump', 'Jump:'), + ('reg_welcome', 'Welcome To Habbo Hotel!'), + ('purse_head', 'HABBO ACCOUNT ACTIVITY'), + ('nav_venue_bb_lobby_tournament_7_name', 'Competitie Battle Ball 8'), + ('reg_verification_newPasswordAgain', 'Retype new password:'), + ('furni_bardeskcorner_polyfon*8_desc', 'Yellow Mode Bardesk Corner'), + ('furni_sound_set_21_name', 'Rock 1'), + ('furni_gothic_stool*1_desc', 'The dark side of Habbo'), + ('furni_rope_divider_name', 'Rope Divider'), + ('poster_53_name', 'Hockey Stick'), + ('roomevent_default_desc', 'Event description..'), + ('nav_refresh_recoms', 'Refresh recommendations'), + ('nav_venue_sw_lobby_beginner_2_name', 'Snow Rookies Lobby'), + ('furni_divider_silo3*4_desc', 'Beige Area Gate'), + ('furni_divider_poly3*6_name', 'Blue Mode Bardesk Gate'), + ('reg_parentemail_title', 'Informing your parents'), + ('furni_gothgate_name', 'Gothic Portcullis'), + ('furni_mocchamaster_name', 'Mochamaster'), + ('modtool_message', 'Message:'), + ('furni_tree4_desc', 'Any presents under it yet?'), + ('furni_marquee*a_name', 'White Marquee'), + ('furni_queue_tile1*5_name', 'Knight Roller'), + ('furni_chair_polyfon_name', 'Dining Chair'), + ('furni_sleepingbag*9_name', 'Blue Sleeping Bag'), + ('furni_sound_set_9_name', 'Electronic 2'), + ('poster_39_desc', 'The rock masters of virtual music'), + ('furni_arabian_tetbl_desc', 'Serve up a treat'), + ('nav_venue_sw_lobby_free_9_name', 'Free Game Lobby'), + ('nav_venue_sw_arena_free_name(0)', 'Playing free for all game'), + ('furni_grand_piano*4_desc', 'Why is that key green?'), + ('furni_doorD_desc', 'Let\'s go over tzar!'), + ('purse_date', 'DATE'), + ('nav_venue_sw_lobby_beginner_6/0_desc', ''), + ('nav_venue_sw_lobby_beginner_4/0_desc', ''), + ('nav_venue_sw_lobby_intermediate_1_name', 'Snow Bombardiers Lobby'), + ('alert_reg_age', 'You are under 11 years old. Children under 11 can\'t enter Habbo Hotel.'), + ('nav_venue_bb_lobby_intermediate_9/0_desc', ''), + ('queue_set.c.alert', 'This room is for Habbo Club members only. In order to enter, you need to subscribe to Habbo Club.'), + ('sound_machine_confirm_clear_long', 'Are you sure you want to clear the current song?'), + ('furni_exe_drinks_name', 'Executive Drinks Tray'), + ('reg_bday_note', 'Please enter your correct date of birth, this is important! You\'ll need this information later on, if you want to change your password or e-mail.'), + ('modtool_roomalert', 'Room Alert'), + ('furni_rare_parasol*1_name', 'Yellow Parasol'), + ('furni_sound_set_18_name', 'Groove 4'), + ('sound_machine_window', 'Sound Machine Editor'), + ('furni_traffic_light*1_name', 'Classic Traffic Light'), + ('furni_chair_norja*4_desc', 'Sleek and chic for each cheek'), + ('furni_divider_nor1*2_desc', 'Black Ice corner'), + ('nav_venue_median_lobby_name', 'Median Lobby'), + ('furni_sofa_silo*3_desc', 'Cushioned, understated comfort'), + ('furni_bed_budget_desc', 'Comfortable, affordable!'), + ('furni_divider_nor4_name', 'Plain Iced Auto Shutter'), + ('furni_rare_icecream*6_desc', 'Virtual toffee rocks!'), + ('habboclub_txt1', 'You can buy Habbo Club one month at a time using Habbo Credits.'), + ('habboclub_txt3', 'Yes, I\'m over 14 years of age\\rOR\\rI\'m under 14 years of age and I have a permission from my parent/guardian to join Habbo Club.'), + ('furni_rare_dragonlamp*3_desc', 'Scary and scorching!'), + ('furni_noob_lamp*5_name', 'My first Habbo lamp'), + ('club_bottombar_text2', '(....)'), + ('furni_CFC_500_goldbar_name', 'Gold Bar (China)'), + ('club_bottombar_text1', 'Loading'), + ('furni_rare_elephant_statue*1_desc', 'Say hello to Nelly'), + ('furni_table_silo_med*7_name', 'Green Area Coffee Table'), + ('nav_venue_sw_lobby_free_1/0_desc', ''), + ('furni_bottle_desc', 'For interesting games!'), + ('furni_romantique_pianochair*2_desc', 'Let the music begin'), + ('furni_table_norja_med*2_name', 'Large Coffee Table Black'), + ('queue_set.e2.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_solarium_norja_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_square*14_desc', 'Hip plastic furniture'), + ('cam_save.help', 'Save & Print Photo'), + ('furni_sound_set_4_desc', 'Chilled out beats'), + ('furni_couch_norja*6_name', 'Blue Bench'), + ('poster_2003_desc', 'Would you trust this man?'), + ('hobba_cryforhelp', 'Call For Help:'), + ('furni_marquee*9_desc', 'It\'s both door and a shade!'), + ('nav_venue_bb_lobby_tournament_13/0_desc', ''), + ('poster_512_desc', 'The flag of Ireland'), + ('handitem12', 'Macchiato'), + ('object_displayer_hide_actions', 'Hide actions'), + ('furni_sound_set_25_name', 'Dance 1'), + ('handitem11', 'Mocha'), + ('handitem10', 'Latte'), + ('furni_sound_set_13_desc', 'Let Music be the food of Habbo'), + ('handitem16', 'Cappuccino'), + ('handitem15', 'Iced'), + ('handitem14', 'Filter'), + ('handitem13', 'Espresso'), + ('nav_venue_sw_lobby_free_2_name', 'Free Game Lobby'), + ('handitem19', 'Habbo Cola'), + ('nav_venue_sw_lobby_amateur_2/0_desc', ''), + ('handitem18', 'Tap'), + ('handitem17', 'Java'), + ('console_next_msg', 'Delete'), + ('furni_bardesk_polyfon*5_name', 'Candy Bar'), + ('furni_scifidoor*5_desc', 'There out of this world!'), + ('nav_roomispwprotected', 'The room is password protected.'), + ('furni_sleepingbag*2_name', 'Lime Sleeping Bag'), + ('furni_glass_table*6_name', 'Blue Glass Table'), + ('furni_divider_nor4*3_desc', 'Habbos, roll out!'), + ('furni_sound_set_61_name', 'Latin Love 3'), + ('nav_venue_pizza/0_desc', 'Pizza Palace'), + ('furni_romantique_clock_desc', ''), + ('furni_queue_tile1*0_desc', 'The power of movement'), + ('furni_pura_mdl2*9_desc', 'Any way you like it!'), + ('nav_venue_orient/0_name', 'Club Golden Dragon'), + ('furni_noob_table*1_desc', 'Lightweight, practical and orange'), + ('poster_22_desc', 'beautiful reproduction butterfly'), + ('furni_carpet_soft_name', 'Soft Wool Rug'), + ('Message', 'Message'), + ('furni_bed_trad_one_desc', 'All you need for a good night\'s kip'), + ('console_report_help', 'If the message you received was abusive or harassing, you can report it to the Moderators by clicking the Report button below. The Habbo will be removed from your Friends\' List automatically when you report. If you want to remove a Habbo from your Friends\' List without reporting their message, simply use the Remove button below.'), + ('furni_rcandle_desc', 'Xmas tea light'), + ('furni_sofa_silo*8_name', 'Yellow Two-Seater Sofa'), + ('furni_pura_mdl4*5_desc', ''), + ('NUF_mini_use_console_ready_tutor', 'You can now use the Console to find some of your friends, or you can continue the tutorial.'), + ('log_problem_link', 'Read FAQ\'s'), + ('furni_shelves_silo_name', 'Bookcase'), + ('gs_timetojoin', '\\x seconds to join'), + ('nav_venue_cunning_fox_gamehall/1_name', 'Gamehall Lobby'), + ('furni_safe_silo*7_name', 'Green Safe Minibar'), + ('NUF_mini_meet_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel. Open it up to get started!'), + ('purse_vouchers_sendbutton', 'Get Credits!'), + ('furni_gothic_sofa*4_name', 'Black Gothic Sofa'), + ('furni_wooden_screen*0_desc', 'Add an exotic touch to your room'), + ('catalog_give_trophymsg', 'You haven\'t engraved the trophy. Type \\ryour inscription in the grey box.'), + ('furni_prizetrophy5*3_name', 'Duo trophy'), + ('handitem23', 'Beetroot Habbo Soda'), + ('furni_rare_dragonlamp*8_name', 'Bronze Dragon Lamp'), + ('furni_divider_nor4*8_name', 'Yellow Iced Auto Shutter'), + ('handitem22', 'Lime Habbo Soda'), + ('furni_soft_sofa_norja*6_name', 'Blue Iced Sofa'), + ('handitem21', 'Hamburger'), + ('handitem20', 'Camera'), + ('furni_divider_nor1*9_desc', 'Red Ice corner'), + ('help_trouble', 'In Trouble?'), + ('handitem25', 'Love potion'), + ('handitem24', 'Bubble juice from 1999'), + ('furni_ham2_desc', 'Looks like you\'re too late!'), + ('nav_venue_bb_lobby_amateur_3_name', 'Gevorderden Battle Ball 4'), + ('furni_chair_plasto*15_name', 'Chair'), + ('furni_hyacinth1_desc', 'Beautiful bulb'), + ('furni_shelves_basic_desc', 'Pura series 404 shelves'), + ('furni_pura_mdl1*6_name', 'Blue Pura Module 1'), + ('nav_venue_cafe_gold/0_desc', 'Get the latest safety tips and tricks from Safety eXperts.'), + ('nav_venue_snowwar_lobby_name', 'Snow Storm Lobby'), + ('transaction_system_sms_slahti', 'Saunalahti'), + ('alert_tooLongPW', 'Your password is too long'), + ('furni_carpet_standard*5_desc', 'Available in a variety of colours'), + ('furni_deadduck_desc', 'Blood, but no guts'), + ('password.email.subject', 'Forgotten password'), + ('furni_prizetrophy2*3_desc', 'Breathtaking bronze'), + ('NUF_playing_games_hotelview_nav', 'Just click me to open the Navigator and get it over with...'), + ('furni_summer_chair*1_name', 'Aqua Deck Chair'), + ('furni_rubberchair*3_name', 'Orange Inflatable Chair'), + ('furni_exe_plant_desc', ''), + ('nav_venue_tearoom/0_desc', 'Chat with the people of Aoralia and meet a sprite or two!'), + ('nav_venue_sw_lobby_beginner_9/0_desc', ''), + ('furni_table_silo_med*6_name', 'Blue Area Coffee Table'), + ('nav_venue_sw_lobby_beginner_1/0_desc', ''), + ('furni_noob_stool*2_desc', 'Unfold me and take the weight off (dark blue)'), + ('camera_dialog_place', 'Move'), + ('furni_scifiport*8_desc', 'Energy beams. No trespassers!'), + ('url_peeloscore', 'http://%predefined%///groups/56555/id'), + ('console_follow_friend', 'Go to same room'), + ('sound_machine_alert_jukebox_list_full', 'The play list is full. Please wait until the current song has finished playing and try again.'), + ('poster_517_desc', 'Where\'s your kilt?'), + ('roomevent_type_11', 'Helpdesk'), + ('roomevent_type_10', 'Performance'), + ('furni_rare_dragonlamp*9_desc', 'Scary and scorching!'), + ('furni_pura_mdl2*3_name', 'Black Pura Module 2'), + ('url_help_1', 'http://%predefined%//credits'), + ('furni_edicehc_name', 'Dicemaster'), + ('furni_divider_silo1*8_name', 'Yellow Corner Shelf'), + ('furni_wooden_screen*5_desc', 'Add an exotic touch to your room'), + ('url_help_5', 'http://%predefined%/help/75'), + ('roomatic_intro2', 'Here\'s what one Habbo says about her room:'), + ('url_help_4', 'http://%predefined%//help/22'), + ('roomatic_intro1', 'You can decorate and furnish your room however you like and no one can tell you to tidy up or turn the music down. It\'s up to you if you let everyone in or just a chosen few, or lock the door and chill by yourself. Get creating and in a couple of minutes you\'ll have your own Habbo Hotel space.'), + ('url_help_3', 'http://%predefined%//help/'), + ('roomatic_intro3', 'My mates live miles away, but we can meet up in my room every Friday night and we don\'t have to worry about getting home afterwards.'), + ('url_help_2', 'http://%predefined%//profile?tab=4'), + ('furni_romantique_chair*5_name', 'Onyx Chair'), + ('url_help_6', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_sound_set_20_name', 'SFX 2'), + ('furni_sofa_polyfon*4_desc', 'Beige Mode Sofa'), + ('sound_machine_alert_no_more_songs', 'Can\'t create new song! Traxmachine can have only %count% songs.'), + ('search', 'Search'), + ('room_preparing', '...Preparing room'), + ('nav_venue_bb_lobby_intermediate_0/0_desc', ''), + ('club_txt_renew2', 'You are Habbo Club member. If you want to change your subscription or leave the club, use the link below.'), + ('poster_1002_name', 'Queen Mum Poster'), + ('furni_barchair_silo*2_desc', 'Practical and convenient'), + ('reg_month', 'Month'), + ('club_txt_renew1', 'Your Habbo Club membership will be active for another %days% days. You can extend your membership by paying with Habbo Credits.'), + ('furni_rare_icecream*0_name', 'Cherry Ice Cream Machine'), + ('furni_sound_set_41_desc', 'Burning Riffs'), + ('nav_venue_beauty_salon_loreal_name', 'Beauty salon'), + ('poster_26_name', 'Angel Poster'), + ('furni_sound_set_19_name', 'Hip Hop Beats 4'), + ('furni_romantique_divan*4_name', 'Amber Chaise-Longue'), + ('furni_one_way_door*7_desc', 'One at a time!'), + ('sound_machine_confirm_eject_long', 'Are you sure you want to remove the Traxpack and it\'s samples from the song?'), + ('furni_glass_stool*8_desc', 'Translucent beauty'), + ('buddyremove_not_now', 'Cancel'), + ('no_user_for_gift', 'No user named %user% found. Gift not purchased.'), + ('buddyremove_lessoptions', 'Less Options <<'), + ('reg_legal_header1', 'Now you need to ask your parents/guardian to come to the computer. Read through the text (below) with your parents.'), + ('furni_carpet_soft*3_desc', 'Soft Wool Rug'), + ('reg_legal_header2', 'Read through the below text carefully. You must agree to the following terms before entering Habbo Hotel.'), + ('furni_sw_chest_name', 'sw_chest'), + ('nav_venue_sw_lobby_tournament_9_name', 'Tournament Lobby'), + ('messenger.email.footer', ''), + ('nav_venue_bb_arena_4_name', 'Battle Ball Expertit'), + ('club_change_url', 'http://%predefined%//credits/habboclub'), + ('furni_table_plasto_4leg*2_name', 'Occasional Table'), + ('ph_choosecolour', 'Choose Costume Colour'), + ('buddyremove_hc_more_info', 'More Info About Habbo Club >>'), + ('furni_romantique_smalltabl*1_desc', 'Every tray needs a table...'), + ('nav_venue_sw_lobby_tournament_8_name', 'Tournament Lobby'), + ('furni_divider_nor5_name', 'Plain Iced Angle'), + ('wallitem_roomdimmer_name', 'Mood Light'), + ('furni_bed_budget_one*5_name', 'Beige Pura Bed'), + ('furni_table_norja_med*9_name', 'Large Coffee Table Red'), + ('furni_pillow*3_desc', 'Puffy, soft and huge'), + ('furni_noob_rug*2_name', 'My first Habbo rug'), + ('nav_venue_sw_lobby_beginner_7_name', 'Snow Rookies Lobby'), + ('furni_exe_chair_desc', 'Relaxing leather comfort'), + ('furni_s_sound_machine*2_desc', 'Sound Machine Ocean Desc'), + ('nav_venue_dusty_lounge/0_desc', 'A dignified lounge for sitting back and enjoying a licorice pipe'), + ('game_bs_ship4', 'Destroyer(s)'), + ('game_bs_ship3', 'Cruiser(s)'), + ('game_bs_ship2', 'Battle Ship(s)'), + ('game_bs_ship1', 'An aircraft carrier'), + ('furni_table_plasto_bigsquare*4_name', 'Square Dining Table'), + ('openhrs_title', 'We are closing the hotel'), + ('furni_habbowood_chair_name', 'Director\'s Chair'), + ('roomatic_confirm', 'Confirm password:'), + ('poster_14_desc', 'A cunning painting'), + ('furni_doormat_plain*3_name', 'Doormat'), + ('furni_sound_set_3_desc', 'Chilled grooves'), + ('win_messenger', 'Habbo Console'), + ('summer_chair_7_name', 'Green Deck Chair'), + ('notickets_window_header', 'Tickets needed!'), + ('nav_updatenote', 'Updating your room properties may take a while. The changes have been made, but it\'ll take a few minutes until all Habbos can see them.'), + ('furni_table_plasto_bigsquare*5_name', 'Square Dining Table'), + ('url_purselink', 'http://%predefined%//credits?'), + ('console_follow_hotelview', 'Your friend is on the hotel view.'), + ('furni_solarium_norja*3_desc', 'Get the city look!'), + ('sound_machine_alert_song_name_missing', 'Please give your song a name.'), + ('furni_sound_machine*3_name', 'Green Traxmachine'), + ('jukebox_next_up', 'Next up:'), + ('trading_additems', 'Put items in boxes'), + ('furni_sporttrack3*1_name', 'Sport goal tartan'), + ('club_button_3_period', 'Buy 6 >>>'), + ('nav_delroom3', 'Room deleted!'), + ('nav_delroom2', 'Are you sure you want to delete this room? All the furniture left in it will also be deleted.'), + ('poster_34_name', 'Scamme\'d'), + ('go', 'Go >>'), + ('nav_delroom1', 'If you want to save the furniture in this room, move it to the giant hand before you continue.'), + ('console_habboprofile_arrowed', 'Habbo Profile >>'), + ('furni_chair_plasty*10_desc', 'Hip plastic furniture'), + ('cam_txtscreen.help', 'Caption'), + ('wallitem_item_placeholder_name', 'This furniture is downloading...'), + ('furni_carpet_standard*b_desc', 'Available in a variety of colours'), + ('poster_59_name', 'Torch'), + ('furni_chair_basic*4_name', 'White Pura Egg Chair'), + ('summer_chair_1_name', 'Aquamarine Deck Chair'), + ('nav_venue_space_cafe_name', 'Ten Forward'), + ('log_problem_url', 'http://%predefined%//help/faqs?faq_1_categoryId=14'), + ('group_homepage_url', 'http://%predefined%/groups/%groupid%/id'), + ('furni_heart_name', 'Giant Heart'), + ('nav_venue_sw_arena_beginner_name', 'Playing beginner game'), + ('furni_grunge_chair_name', 'Grunge Chair'), + ('nav_dooropens', 'Door opens! Go on in...'), + ('modtool_banuser', 'Ban User'), + ('furni_carpet_soft_tut_desc', 'Welcome, enjoy your stay!'), + ('furni_rare_mnstr_name', 'Venomus Habbolus'), + ('furni_divider_silo3*9_name', 'Red Area Gate'), + ('furni_pura_mdl3*1_name', 'Aqua Pura Module 3'), + ('Messages', 'Message(s)'), + ('wallitem_arabian_wndw_name', 'Arabian Window Frame'), + ('furni_prizetrophy3*1_desc', 'Glittery gold'), + ('furni_sound_set_47_desc', 'Storm the UKCharts!'), + ('poster_54_desc', 'whack that ball!'), + ('url_logout_concurrent', 'http://%predefined%//account/disconnected?reason=concurrentlogin&origin=popup'), + ('nav_venue_sw_lobby_beginner_1_name', 'Snow Rookies Lobby'), + ('furni_table_plasto_4leg*8_name', 'Occasional Table'), + ('sound_machine_turn_on', 'Switch On'), + ('furni_table_norja_med*4_desc', 'For larger gatherings'), + ('buddyremove_hc_info_url', 'http://www.habbo.co.uk/credits/habboclub'), + ('furni_romantique_divider*2_name', 'Green Screen'), + ('furni_pillar*5_desc', 'Find your natural roots'), + ('furni_table_silo_med_desc', 'Wipe clean and unobtrusive'), + ('furni_pillow*8_name', 'Navy Cord Pillow'), + ('room_owner', 'Owner:'), + ('furni_shelves_norja*5_name', 'Pink Bookcase'), + ('queue_set.d.info', 'There are %d% Habbos in front of you in the queue.'), + ('reg_retypepass', 'Retype Password:'), + ('furni_jp_tray3_name', 'jp_tray3'), + ('dance_stop', 'Stop Dancing'), + ('buddyremove_remove_text', 'You are about to remove %removeamount% friends from your friendlist.\\r\\r After removal, you\'ll have %amountleft% friends on your list:'), + ('nav_venue_bb_lobby_tournament_12_name', 'Competitie Battle Ball 13'), + ('furni_summer_chair*2_name', 'Deck Chair'), + ('furni_plant_valentinerose*1_desc', 'Secret admirer!'), + ('furni_sofachair_silo*4_name', 'Beige Area Armchair'), + ('poster_523_name', 'The flag of India'), + ('furni_scifirocket*4_name', 'Venus Smoke Machine'), + ('nav_venue_tearoom_name', 'Chinese Tea Room'), + ('furni_pura_mdl1*5_name', 'beige pura module 1'), + ('nav_venue_bb_lobby_tournament_0/0_desc', ''), + ('furni_chair_silo*5_desc', 'Pink Silo Dining Chair'), + ('club_txt_expired', 'Your Habbo Club membership has run out. You can join the club again by clicking the HC logo on the hotel view.\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('furni_glass_table*7_name', 'Green Glass Table'), + ('nav_prvrooms_notfound', 'Your search did not match any rooms'), + ('bb_title_BBscores2', 'Game over!'), + ('wallitem_gothicfountain_name', 'Gothic Ectoplasm Fountain'), + ('furni_one_way_door*1_desc', 'One at a time!'), + ('furni_chair_plasty*1_name', 'Plastic Pod Chair'), + ('furni_divider_nor3*9_name', 'Red Iced gate'), + ('sound_machine_time_2', '%min%:%sec%min'), + ('sound_machine_time_1', '%min%:%sec%min'), + ('furni_bardesk_polyfon*4_name', 'Beige Mode Bardesk'), + ('queue_set.queue_reset.alert', 'The queue for this room has been reset, please try again.'), + ('furni_jp_pillow_desc', 'Comfy and classical'), + ('nav_venue_sw_lobby_free_9/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_barchair_silo*8_desc', 'Practical and convenient'), + ('delete_furniture', 'Delete Furniture (permanently)'), + ('furni_plant_bulrush_desc', 'Ideal for the riverside'), + ('poster_61_name', 'Siva Poster'), + ('furni_bed_silo_two_name', 'Double Bed'), + ('furni_plant_pineapple_desc', 'Needs loving glances'), + ('furni_bed_polyfon_girl_desc', 'Snuggle down in princess pink'), + ('furni_pillow*4_desc', 'Puffy, soft and huge'), + ('furni_table_norja_med*8_name', 'Large Coffee Table Yellow'), + ('transaction_system_tsms_win_tmobile', 'T-Mobile SMS'), + ('furni_scifidoor*10_desc', 'There out of this world!'), + ('furni_bed_polyfon*7_desc', 'Green Mode Double Bed'), + ('furni_toy1*2_desc', 'it\'s bouncy-tastic'), + ('transaction_system_sms_radiolinja', 'Elisa'), + ('furni_gothic_chair*4_name', 'Black Gothic Chair'), + ('furni_scifidoor*6_desc', 'Monolith goes up! Monolith goes down!'), + ('nav_venue_sw_lobby_free_3_name', 'Free Game Lobby'), + ('console_friend_request_not_found', 'There was an error finding the user for the friend request'), + ('furni_romantique_smalltabl*2_desc', 'Every tray needs a table...'), + ('furni_bed_budget*2_name', 'Pink Pura Double Bed'), + ('wallitem_post.it_name', 'Pad of stickies'), + ('gs_state_created', 'Waiting for players..'), + ('furni_divider_nor3*4_desc', 'Entrance or exit?'), + ('furni_sofa_polyfon_girl_desc', 'Romantic pink for two'), + ('locked', 'Locked (visitors have to ring bell)'), + ('alert_reg_birthday', 'Birthday'), + ('club_thanks_text', 'Here you can see your Habbo Club membership status, number of elapsed months, pre-ordered months and status of the ongoing month.'), + ('furni_sound_set_39_desc', 'Rock with a roll'), + ('nav_venue_old_skool/0_desc', 'A set of rooms inspired by the original and legendary Mobiles Disco, the progenitor of Habbo'), + ('poster_511_desc', 'The flag of The Netherlands'), + ('furni_couch_norja*7_name', 'Rural Iced Bench'), + ('furni_safe_silo*6_name', 'Blue Safe Minibar'), + ('furni_table_plasto_4leg*14_desc', 'Aqua table'), + ('room_sound_furni_limit', 'You can only place one sound furni per room'), + ('nav_venue_bb_lobby_beginner_15/0_desc', ''), + ('furni_glass_shelf_name', 'Glass shelf'), + ('furni_divider_nor2*6_desc', 'Blue Iced bar desk'), + ('furni_turkey_name', 'Roast Turkey'), + ('nav_venue_bb_lobby_tournament_16/0_desc', ''), + ('sw_timeleft', 'Time:'), + ('furni_rare_parasol_name', 'Parasol'), + ('furni_glass_sofa*7_desc', 'Habbo Club'), + ('furni_bardeskcorner_polyfon*13_name', 'Corner Cabinet/Desk'), + ('furni_rare_fan*9_name', 'Fucsia Powered Fan'), + ('furni_chair_plasto*4_desc', 'Hip plastic furniture'), + ('no', 'No'), + ('furni_rare_fan*4_desc', 'Fanning the fires of SUPERLOVE...'), + ('nav_venue_median_lobby/0_desc', 'A Mean place to hang'), + ('nav_venue_sw_lobby_intermediate_2/0_desc', ''), + ('furni_md_sofa_name', 'MD Sofa'), + ('furni_noob_lamp*1_desc', 'Get the light right where you want it (yellow)'), + ('login_connecting', 'Connecting...'), + ('furni_divider_nor1*3_desc', 'Looks squishy, but isn\'t!'), + ('furni_sound_set_14_desc', 'Rock them bodies'), + ('furni_sound_set_59_name', 'RnB Grooves 5'), + ('poster_21_desc', 'beautiful reproduction butterfly'), + ('wallitem_hc_wall_lamp_desc', 'Tres chic!'), + ('ok', 'OK'), + ('nav_venue_sw_lobby_tournament_1/0_desc', ''), + ('pet_happy', 'Happiness:'), + ('sound_machine_edit', 'Edit Song'), + ('furni_rare_elephant_statue*2_desc', 'Say hello to Nelly'), + ('furni_CFC_200_moneybag_desc', 'Worth 200 Credits'), + ('nav_venue_bb_lobby_intermediate_6/0_desc', ''), + ('console_buddylimit_requester', 'Friend could not be added. The request sender can not have anymore friends.'), + ('furni_sofa_silo*2_desc', 'Cushioned, understated comfort'), + ('sound_machine_alert_invalid_song_name', 'You have already burned another song with the same name. Please change the song name before trying again.'), + ('furni_fireplace_armas_name', 'Fireplace'), + ('furni_barchair_silo*3_desc', 'Practical and convenient'), + ('ph_ticket', 'Ticket'), + ('furni_arabian_divdr_desc', 'Carved Cedar Divider'), + ('wallitem_jp_ninjastars_desc', 'Not a frisbee'), + ('wallitem_hrella_poster_1_desc', 'Brighten up your cabin'), + ('furni_noob_stool*3_desc', 'Unfold me and take the weight off (aubergine)'), + ('furni_pura_mdl5*9_name', 'Red Pura Module 5'), + ('furni_divider_nor4*2_desc', 'Habbos, roll out!'), + ('NUF_mini_meet_people_roomlist_tutor', 'Click \'Open\' to open up a category and see what rooms are within. When you have found an interesting room, press \'Go\' to visit it.'), + ('poster_41_name', 'Habbo Golden Record'), + ('furni_jp_tray4_desc', 'jp_tray4'), + ('buddyremove_confirm', 'Yeah, it is done...'), + ('tutorial_topic_list_F', 'Choose a topic from the list below:'), + ('purse_time', 'TIME'), + ('nav_venue_sw_lobby_free_8_name', 'Free Game Lobby'), + ('tutorial_topic_list_M', 'Choose a topic from the list below:'), + ('furni_s_sound_machine*7_name', 'Sound Machine Red'), + ('interface_icon_navigator', 'Navigator, navigate around'), + ('furni_xmas_cstl_wall_name', 'Ice Castle Wall'), + ('nav_own_hd', 'Your Rooms.'), + ('modtool_aa_checkbox_text', 'Audio alert'), + ('wallitem_industrialfan_desc', 'Powerful and resilient'), + ('furni_bed_budget*8_desc', 'King sized comfort!'), + ('sound_machine_burn', 'Burn Song'), + ('nav_venue_sw_lobby_intermediate_0_name', 'Snow Bombardiers Lobby'), + ('nav_venue_bb_lobby_beginner_1_name', 'Beginners Battle Ball 2'), + ('furni_chair_basic*5_desc', ''), + ('password.email.prefix', 'Your password is:'), + ('furni_pura_mdl5*4_desc', 'Any way you like it!'), + ('furni_table_norja_med*3_name', 'White Iced Table'), + ('furni_pura_mdl3*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_tournament_3_name', 'Tournament Lobby'), + ('furni_sound_set_34_desc', 'For guitar heroes'), + ('furni_summer_grill*1_desc', 'Plenty of ribs on that barbie'), + ('hubu_t4_1', 'Anna palautetta Hubusta'), + ('furni_divider_nor1*8_desc', 'Yellow Ice corner'), + ('hubu_t4_2', 'Tsekkaa heebelin jorinat'), + ('poll_offer_title', 'Poll'), + ('summer_chair_2_desc', 'Leave your towel early'), + ('wallitem_habbowheel_name', 'The Wheel of Destiny!'), + ('reg_mission', 'Your Mission:'), + ('furni_sofa_polyfon*9_name', 'Red Two-seater Sofa'), + ('furni_bed_budget_one_desc', 'aquamarine'), + ('nav_venue_sw_lobby_tournament_7/0_desc', ''), + ('furni_gothic_sofa*3_name', 'Gothic Sofa Red'), + ('furni_chair_plasto*9_name', 'Chair'), + ('nav_venue_sw_arena_beginner_name(0)', 'Playing beginner game'), + ('notickets_text_2', 'Buy more tickets now and get a discount. You can also buy tickets as a present.'), + ('wallitem_sw_hole_desc', 'sw_hole'), + ('furni_plant_big_cactus_name', 'Mature Cactus'), + ('notickets_text_1', 'Game price is 1 credit. For that you get 2 tickets.'), + ('poster_19_name', 'Hole In The Wall'), + ('furni_divider_nor4*7_name', 'Rural Iced Shutter'), + ('email', ''), + ('furni_sound_set_13_name', 'Dance 5'), + ('furni_present_gen1_name', 'Gift'), + ('nav_venue_bb_lobby_tournament_19/0_desc', ''), + ('furni_chair_norja_desc', 'Sleek and chic for each cheek'), + ('furni_marquee*9_name', 'Green Marquee'), + ('sound_machine_alert_song_locked', 'The song you\'re editing can\'t be modified. Please save the song under another name to create a new copy.'), + ('furni_glass_stool*2_name', 'Glass stool'), + ('nav_venue_theatredrome_xmas/0_desc', ''), + ('poster_5_name', 'Duck Poster'), + ('furni_prize2_desc', 'Nice and shiny'), + ('furni_valeduck_desc', 'He\'s lovestruck'), + ('furni_chair_plasty*7_desc', 'Hip plastic furniture'), + ('closed', 'Closed'), + ('furni_wcandleset_name', 'White Candle Plate'), + ('furni_sleepingbag*3_name', 'Ocean Sleeping Bag'), + ('furni_tree3_name', 'Christmas Tree 1'), + ('furni_sound_set_26_name', 'Groove 1'), + ('furni_barrier*2_desc', 'No trespassing, please!'), + ('game_bs_turn1', 'Your Turn'), + ('nav_venue_bb_lobby_expert_desc', 'Expert battle ball!'), + ('alert_donate_topic', 'SCAM ALERT!'), + ('game_bs_turn2', 'The Enemy\'s Turn'), + ('furni_sand_cstl_gate_name', 'sand castle gate'), + ('furni_rare_dragonlamp*4_desc', 'Scary and scorching!'), + ('furni_camera_desc', 'Smile!'), + ('pet.hotwords.lie', 'lie down'), + ('furni_sound_set_60_name', 'Latin Love 2'), + ('console_accept_selected', 'Accept'), + ('furni_divider_silo1*3_desc', 'Neat and natty'), + ('furni_summer_chair*7_name', 'Green Deck Chair'), + ('furni_pumpkin_desc', 'Cast a spooky glow'), + ('reg_habboname_note', 'Now it\'s time to make your own Habbo character! To make your own Habbo, please start by choosing your Habbo Name.'), + ('furni_rare_icecream_campaign_name', 'Rare icecream white'), + ('furni_doormat_plain_desc', 'Available in a variety of colours'), + ('room_areYouSure', 'Are you sure you want to delete this item forever?'), + ('sound_machine_confirm_burn', 'Burn this song?'), + ('predefined_room_name', '%user_name%\'s room'), + ('furni_divider_silo1*2_name', 'Black Corner Shelf'), + ('furni_table_plasto_4leg*3_desc', 'Hip plastic furniture'), + ('furni_solarium_norja*8_name', 'Yellow Solarium'), + ('furni_exe_globe_desc', 'The power is yours!'), + ('furni_bed_polyfon*6_name', 'Blue Mode Double Bed'), + ('notickets_store_link', 'Go to ticket store >>>'), + ('NUF_habbo_home', 'Habbo Home'), + ('nav_venue_the_den_name', 'The Den'), + ('furni_table_plasto_square*2_name', 'Round Dining Table'), + ('modtool_header', 'The Tool'), + ('pet_enrg_7', 'Energetic'), + ('nav_noanswer', 'No answer'), + ('roommatic_hc_members_only', 'This Room Is For HC Members Only'), + ('furni_xmasduck_desc', 'A right Christmas quacker!'), + ('pet_enrg_8', 'Lively'), + ('NUF_getting_room_own_rooms_tutor', 'Click the \'Create own room\' button to start building your room. Don\'t worry, making your room is completely free.'), + ('pet_enrg_5', 'Sprightly'), + ('pet_enrg_6', 'Active'), + ('furni_doormat_plain*4_desc', 'Available in a variety of colours'), + ('pet_enrg_3', 'Lazy'), + ('pet_enrg_4', 'Relaxed'), + ('furni_divider_poly3*6_desc', 'Blue Mode Bardesk Gate'), + ('pet_enrg_1', 'Slow'), + ('furni_glass_table*2_desc', 'Translucent beauty'), + ('pet_enrg_2', 'Sluggish'), + ('poster_1003_desc', 'get the lovely isles on your walls'), + ('furni_hc_djset_name', 'The Grammophon'), + ('pet_enrg_9', 'Tireless'), + ('furni_table_plasto_round*6_name', 'Round Dining Table'), + ('furni_sporttrack2*3_name', 'Sport corner grass'), + ('furni_footylamp_name', 'Football Lamp'), + ('furni_bed_silo_one_desc', 'Plain and simple'), + ('pet_enrg_0', 'Tired'), + ('furni_soft_sofachair_norja*7_name', 'Rural Iced Sofachair'), + ('furni_solarium_norja*9_desc', 'Rejuvenate your pixels!'), + ('furni_pillow*9_desc', 'Puffy, soft and VERY fluffy!'), + ('furni_plant_mazegate_snow_desc', 'There\'s snow way through!'), + ('furni_sound_set_8_name', 'Ambient 2'), + ('furni_divider_silo3*4_name', 'Beige Area Gate'), + ('previous', 'Previous'), + ('furni_glass_stool*3_desc', 'Translucent beauty'), + ('furni_bardeskcorner_polyfon*8_name', 'Yellow Mode Bardesk Corner'), + ('next_onearrowed', 'Next >'), + ('nav_venue_sw_lobby_expert_desc', 'For the William Tells and Robin Hoods of Snow Storming.'), + ('furni_bardeskcorner_polyfon*2_name', 'Black Mode Bardesk Corner'), + ('catalog_pet_unacceptable', 'Sorry, that name is unacceptable to Hotel Management'), + ('furni_sound_set_46_name', 'Club 1'), + ('nav_error_room_full', 'The room is full.'), + ('furni_queue_tile1*4_name', 'Gold Habbo Roller'), + ('furni_mocchamaster_desc', 'Wake up and smell it!'), + ('furni_gothic_stool*1_name', 'Gothic Stool Pink'), + ('furni_noob_chair*5_name', 'My first Habbo chair'), + ('furni_noob_rug*3_desc', 'Nice and neat sisal rug with aubergine edging'), + ('nav_venue_club_mammoth/0_name', 'Club Mammoth'), + ('pet_race_1_024', 'Cat Burglar'), + ('pet_race_1_022', 'Matted Moggy'), + ('poster_39_name', 'Screaming Furnies'), + ('pet_race_1_023', 'Indoor Alley Cat'), + ('furni_prizetrophy5*3_desc', 'Breathtaking bronze'), + ('pet_race_1_020', 'Caterwaul Kitty'), + ('NUF_mini_meet_people_room_tutor', 'The people wandering around are Habbos just like you.\\nClick on one of them to learn more about them- or on yourself to look in the mirror.'), + ('pet_race_1_021', 'Fabulous Feline'), + ('furni_arabian_tetbl_name', 'Hexagonal Tea Table'), + ('furni_grand_piano*4_name', 'Amber Grand Piano'), + ('poster_504_desc', 'The German flag'), + ('roomatic_name', 'Room name:'), + ('furni_sound_set_21_desc', 'Headbanging riffs'), + ('credit_redeem_info', 'More info about credit furni >>'), + ('furni_marquee*a_desc', 'It\'s both door and a shade!'), + ('furni_sound_set_33_name', 'Rock 3'), + ('furni_queue_tile1*5_desc', 'The power of movement'), + ('furni_doorD_name', 'Imperial Teleport'), + ('furni_rare_parasol*1_desc', 'Block those rays!'), + ('purse_youhave', 'You Have'), + ('nav_fullbutton', 'Full'), + ('furni_rare_fountain*2_desc', 'For our feathered friends'), + ('friend_request_accepted', 'Accepted!'), + ('tutorial_help_button_bubble', 'Click the blue question mark to open up the help menu to restart the tutorial.'), + ('furni_rubberchair*4_desc', 'Soft and tearproof!'), + ('furni_sound_set_9_desc', 'Mystical ambient soundscapes'), + ('furni_rare_fan*3_name', 'Purple Dragon Skin Fan'), + ('furni_table_plasto_square*8_desc', 'Hip plastic furniture'), + ('gs_choose_gametime', 'Choose Game duration:'), + ('furni_traffic_light*1_desc', 'Chill and wait your turn!'), + ('furni_sofachair_polyfon*6_desc', 'Blue Mode Armchair'), + ('furni_chair_norja*4_name', 'Urban Iced Chair'), + ('furni_val_teddy*2_name', 'Pink Share Bear'), + ('nav_venue_chill/0_name', 'Zen Garden'), + ('furni_table_plasto_square_name', 'Occasional Table'), + ('furni_bed_budget_name', 'Pura Bed'), + ('furni_solarium_norja_name', 'White Solarium'), + ('furni_noob_table*1_name', 'My first Habbo table'), + ('gs_5min', '5min'), + ('purse_credits', 'You have \\x1 Habbo Credit(s) in your purse.'), + ('furni_divider_poly3*5_name', 'Candy Hatch (Lockable)'), + ('furni_rare_icecream*6_name', 'Toffee Ice Cream Machine'), + ('furni_table_polyfon_med_name', 'Large Coffee Table'), + ('console_deselect_all', 'Deselect all'), + ('nav_venue_bb_lobby_amateur_8_name', 'Gevorderden Battle Ball 9'), + ('transaction_system_sms_win_kpn', 'KPN SMS'), + ('nav_venue_bb_lobby_intermediate_3/0_desc', ''), + ('furni_CFC_500_goldbar_desc', 'Worth 500 Credits'), + ('NUF_visiting_rooms', 'Visiting other players\' rooms'), + ('url_logout_timeout', 'http://%predefined%//account/disconnected?reason=logout'), + ('furni_table_silo_med*7_desc', 'Green Area Coffee Table'), + ('player_commands_no_args', 'You have not supplied any arguments!'), + ('furni_romantique_pianochair*2_name', 'Lime Romantique Piano Chair'), + ('pickup', 'Pick up'), + ('reg_tutorial_url', ''), + ('habboclub_confirm_body', 'You have %credits% credits'), + ('nav_venue_bb_lobby_beginner_12/0_desc', ''), + ('furni_rare_elephant_statue*1_name', 'Silver Elephant'), + ('help', 'Habbo Help'), + ('furni_soft_sofachair_norja*2_desc', 'Black Iced Sofachair'), + ('furni_table_plasto_round*1_desc', 'Hip plastic furniture'), + ('furni_sleepingbag*9_desc', 'Ultimate coziness'), + ('furni_arabian_tray2_desc', 'For those Arabian nights'), + ('NUF_visiting_rooms_hotelview_tutor', 'Hello. This time we are learning how to visit another user\'s room.'), + ('furni_traffic_light*6_name', 'Red Traffic Light'), + ('Alert_ChooseWhoToSentMessage', 'Please choose who to\\rsend your message to'), + ('poster_47_desc', 'Twinkle, twinkle'), + ('bb_title_finalScores', 'Final standings:'), + ('jukebox_song_author', 'by: %author%'), + ('poster_2003_name', 'Dodgy Geezer'), + ('poster_509_name', 'The Jamaican flag'), + ('poster_6_desc', 'But is it the right way up?'), + ('furni_toy1*1_name', 'Rubber Ball'), + ('nav_venue_bb_lobby_beginner_13_name', 'Beginners Battle Ball 14'), + ('furni_scifidoor*5_name', 'White Spaceship Door'), + ('credit_redeem_text', 'You are going to change Furni to %value% credits.'), + ('nav_venue_sw_lobby_amateur_0_name', 'Snow Slingers Lobby'), + ('club_txt_intro', 'Welcome to Habbo Club - the members only club that all the best Habbos belong to!\\r\\rMembers of Habbo Club get priority access to the hotel (so you can always get in), exclusive clothes, hair colours, rare furni and special guest room layouts. To see exactly what you\'ll be able to get your hands on as a Habbo Club member, take a look in the Catalogue.'), + ('nav_venue_bouncer_room_1_name', 'Beginners Battle Ball Arena'), + ('update_email_suggest', 'Habbo Hotel security supervisor requests you to update your email'), + ('furni_rare_dragonlamp*3_name', 'Silver Dragon Lamp'), + ('furni_scifiport*2_name', 'Blue Laser Gate'), + ('club_button_extend', 'Extend Membership'), + ('wallitem_val_heart_name', 'Heart Light'), + ('furni_pura_mdl3*7_name', 'Green Pura Module 3'), + ('furni_sound_set_61_desc', 'Straight from the heart'), + ('nav_venue_bb_lobby_expert_9/0_desc', ''), + ('furni_pura_mdl2*9_name', 'Red Pura Module 2'), + ('furni_hal_cauldron_name', 'Habboween Cauldron'), + ('furni_divider_nor1*2_name', 'Black Ice corner'), + ('send', 'Send'), + ('furni_couch_norja_desc', 'Two can perch comfortably'), + ('furni_pura_mdl4*5_name', 'beige pura module 4'), + ('pet_race_1_008', 'Mad Mouser'), + ('pet_race_1_009', 'Scaredy Kat'), + ('pet_race_1_006', 'Titchy Tiger'), + ('pet_race_1_007', 'Burmese Buddy'), + ('pet_race_1_004', 'Soft-Toed Sneaker'), + ('furni_divider_nor4*8_desc', 'Habbos, roll out!'), + ('furni_tile_desc', 'In a choice of colours'), + ('pet_race_1_005', 'Cat Astroflea'), + ('pet_race_1_002', 'Lesser Spotted Longhair'), + ('pet_race_1_003', 'Hidden Clause'), + ('pet_race_1_000', 'Sleepy Siamese'), + ('pet_race_1_001', 'Purr-Sian'), + ('furni_sound_set_53_name', 'Snowy Surprise'), + ('furni_rare_icecream*1_desc', 'Virtual blueberry rocks!'), + ('furni_table_plasto_round*15_name', 'Occasional Table'), + ('security', 'Security'), + ('furni_glass_chair*5_name', 'Glass chair'), + ('nav_venue_cunning_fox_gamehall/1_desc', 'It\'s one-on-one for five in a row'), + ('nav_venue_sw_lobby_tournament_4/0_desc', ''), + ('furni_carpet_soft_desc', 'Soft Wool Rug'), + ('poster_27_desc', 'Deck the halls!'), + ('furni_safe_silo*7_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small*5_desc', 'Pink Area Occasional Table'), + ('furni_marquee*4_desc', 'It\'s both door and a shade!'), + ('furni_gothic_sofa*4_desc', 'Ghosts and Ghouls'), + ('furni_prizetrophy6*1_desc', 'Glittery gold'), + ('pet_race_1_019', 'Bobcat Wailer'), + ('furni_bardesk_polyfon*5_desc', 'For cute constructions'), + ('furni_carpet_polar*2_name', 'Blue Bear Rug'), + ('pet_race_1_017', 'Furry Friend'), + ('furni_soft_sofa_norja*6_desc', 'Blue Iced Sofa'), + ('furni_pura_mdl2*4_desc', 'Any way you like it!'), + ('pet_race_1_018', 'Trusting Tabby'), + ('pet_race_1_015', 'Haughty House Pet'), + ('chatlog.url', 'https://theallseeingeye.sulake.com/ase/habbo/uk/housekeeping/extra/hobba/chatlog.action?chatId='), + ('furni_ham2_name', 'Eaten Ham'), + ('pet_race_1_016', 'Curiousity - The Return!'), + ('pet_race_1_013', 'Felis Catus Allergicus'), + ('pet_race_1_014', 'Bushy Bobtail'), + ('pet_race_1_011', 'Egyptian Angora'), + ('pet_race_1_012', 'Freckled Feral'), + ('gs_choose_gamefield', 'Choose Game Arena:'), + ('furni_divider_nor5*6_desc', 'Cool cornering for your crib y0!'), + ('furni_summer_pool*2_name', 'Red Summer Pool'), + ('pet_race_1_010', 'Wannabe Wildcat'), + ('furni_rare_elephant_statue_desc', 'Say hello to Nelly'), + ('furni_sofa_silo*8_desc', 'Cushioned, understated comfort'), + ('furni_exe_rug_desc', 'Please remove your shoes!'), + ('NUF_meeting_people_roomlist_tutor', 'Let\'s visit one of the rooms and find out how to meet other users.'), + ('furni_chair_plasto*15_desc', 'Hip plastic furniture'), + ('nav_venue_habburger\'s_name', 'Habburgers'), + ('queue_current_2', 'You are in queue for the room.'), + ('queue_current_1', 'You are in Habbo Live queue...'), + ('furni_pura_mdl5*3_name', 'Black Pura Module 5'), + ('furni_hockey_score_name', 'Scoreboard'), + ('furni_sofachair_silo*5_desc', 'Pink Area Armchair'), + ('furni_hyacinth1_name', 'Pink Hyacinth'), + ('furni_pura_mdl1*6_desc', 'Any way you like it!'), + ('camera_open_dialog_heading', 'Camera'), + ('furni_prizetrophy5*2_name', 'Duo trophy'), + ('furni_glass_chair_desc', 'Translucent beauty'), + ('furni_rubberchair*3_desc', 'Soft and tearproof!'), + ('furni_exe_plant_name', 'Executive Plant'), + ('furni_pura_mdl2*3_desc', 'Any way you like it!'), + ('furni_pura_mdl1*2_name', 'Pink Pura Module 1'), + ('furni_plant_bonsai_desc', 'You can be sure it lives'), + ('furni_plant_valentinerose*4_desc', 'Be mine!'), + ('wallitem_hrella_poster_3_desc', 'Don\'t drift away!'), + ('furni_deadduck_name', 'Dead Duck'), + ('furni_summer_grill*3_desc', 'Plenty of steak on that barbie'), + ('modtool_extrainfo', 'Extra Info:'), + ('sound_machine_jukebox_window', 'Jukebox'), + ('gs_button_start', 'Start Game!'), + ('nav_venue_sw_lobby_beginner_5/0_desc', ''), + ('furni_romantique_chair*5_desc', 'What does this button do?'), + ('furni_table_plasto_4leg*9_desc', 'Hip plastic furniture'), + ('furni_soft_sofa_norja_desc', 'A soft iced sofa'), + ('furni_divider_nor4*9_name', 'Red Iced Auto Shutter'), + ('login_haventGotHabbo', 'Haven\'t got a Habbo yet?'), + ('furni_noob_stool*2_name', 'My first Habbo stool'), + ('furni_s_sound_machine*5_desc', 'Sound Machine Brown Desc'), + ('credit_redeem_window', 'Redeem credit furni'), + ('send_invitation_text', 'Want to meet someone from our Welcoming Party?'), + ('purse_vouchers_exitbutton', 'Cancel'), + ('furni_prizetrophy6*3_desc', 'Breathtaking bronze'), + ('nav_venue_cafe_gold/0_name', 'Kultakahvila'), + ('furni_fortune_name', 'Crystal Ball'), + ('poster_22_name', 'Butterfly Cabinet (blue)'), + ('object_displayer_link_badge', 'Edit Badge'), + ('furni_sound_set_15_name', 'RnB Grooves 6'), + ('Alert_NoNameSet', 'Check your Habbo name.'), + ('furni_hc_crpt_name', 'Persian Carpet'), + ('error_ok', 'OK->'), + ('game_chess_email', 'Receive game via email'), + ('sound_machine_confirm_save_list', 'Save playlist?'), + ('furni_noob_rug*2_desc', 'Nice and neat sisal rug with blue edging'), + ('queue_set.e1.alert', 'This room is currently available only to Habbos participating to the event.'), + ('furni_rare_icecream*0_desc', 'Virtual cherry rocks!'), + ('furni_arabian_chair_name', 'Green Blossom Chair'), + ('furni_divider_silo3*6_name', 'Blue Area Gate'), + ('furni_scifiport*4_desc', 'Energy beams. No trespassers!'), + ('furni_sofa_silo*4_desc', 'Beige Area Sofa'), + ('furni_one_way_door*4_desc', 'One at a time!'), + ('furni_chair_norja*5_desc', 'Sleek and chic for each cheek'), + ('furni_sound_set_19_desc', 'Shake your body!'), + ('poster_26_desc', 'See that halo gleam!'), + ('furni_doormat_plain*2_desc', 'Available in a variety of colours'), + ('furni_romantique_chair*1_name', 'Rose Quartz Chair'), + ('furni_hc_tv_name', 'Mega TV Set'), + ('pet.hotwords.follow_me', 'heel'), + ('furni_petfood3_desc', 'Fantastic 20% Saving!'), + ('furni_couch_norja*5_name', 'Pink Bench'), + ('furni_table_plasto_round*7_desc', 'Hip plastic furniture'), + ('furni_bed_armas_two_desc', 'King-sized pine comfort'), + ('modtool_days', 'Days'), + ('furni_one_way_door*7_name', 'Green One Way Gate'), + ('furni_table_norja_med*5_name', 'Large Coffee Table Pink'), + ('furni_sand_cstl_wall_name', 'sand_cstl_wall'), + ('nav_modify_doorstatus_givepw', 'Password for the room'), + ('NUF_getting_items_room_tutor', 'Nice room. Reminds me of a chic Parisian cafe in Slough. Open the Catalogue.'), + ('habbo_hand_prev', '<<<'), + ('pet.saying.generic.croco.3', 'Tick tock tick....'), + ('invitation_follow_failed', 'Sorry, your attempt to follow an invitation failed.'), + ('furni_sound_set_12_desc', 'Unusual as Standard'), + ('pet.saying.generic.croco.1', '*Mellow*'), + ('error_text', 'Error occured, press \'OK\' to restart program.\\r\\rPlease report bugs to:\\rwww.habbohotel.com/habbo/en/help/contact/bugs/ \\rSorry for the inconvenience.'), + ('pet.saying.generic.croco.2', 'I\'m so hungry I could eat you!'), + ('furni_divider_silo3*3_desc', 'Form following function'), + ('furni_table_plasto_4leg*2_desc', 'Hip plastic furniture'), + ('int_newmessages', 'New Message(s)'), + ('furni_rare_icecream*3_name', 'Blackcurrant Ice Cream Machine'), + ('bb_header_gameinfo', 'Game info'), + ('furni_scifiport*0_name', 'Red Laser Door'), + ('nav_venue_bb_lobby_beginner_7_name', 'Beginners Battle Ball 8'), + ('tx_history.description.bank_wallie', 'Wallie-card'), + ('nav_venue_hallway_name', 'Hallway'), + ('nav_venue_bb_lobby_amateur_11/0_desc', ''), + ('furni_bed_budget_one*5_desc', 'Prince sized comfort!'), + ('pet.saying.generic.croco.0', 'Rrrr....Grrrrrg....'), + ('nav_popup_go', '>>'), + ('furni_safe_silo*3_name', 'White Safe Minibar'), + ('furni_table_silo_small_name', 'Occasional Table'), + ('poll_confirm_window', 'Leave our poll'), + ('furni_table_norja_med*9_desc', 'For larger gatherings'), + ('furni_divider_nor4*6_desc', 'Habbos, roll out!'), + ('gs_3teams', '3 Teams Game'), + ('wallitem_post.it.limit', 'Only 50 stickies per room are allowed!'), + ('furni_scifidoor*4_desc', 'Protect your pot of gold!'), + ('furni_bed_polyfon_one*9_name', 'Red Single Bed'), + ('furni_soft_sofa_norja*2_desc', 'Black Iced Sofa'), + ('furni_corner_china_desc', 'Firm, fireproof foundation'), + ('hobba_pickup_go', 'Pick Up & Go!'), + ('furni_sporttrack3*2_desc', 'null'), + ('furni_rare_fan*6_name', 'Ochre Powered Fan'), + ('furni_sound_set_3_name', 'Electronic 1'), + ('NUF_mini_meet_people_user_tutor', 'Here you can chat to users directly. Ask a Habbo to be your friend by clicking on their Habbo and the button.\\nIf this is your first time, check your Hand to see a present to decorate your own room with, later.'), + ('furni_pura_mdl2*6_name', 'Blue Pura Module 2'), + ('furni_couch_norja*9_desc', 'Two can perch comfortably'), + ('furni_chair_plasty*9_desc', 'Hip plastic furniture'), + ('game_chess_white', 'White:'), + ('nav_venue_sw_lobby_intermediate_3/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('furni_table_plasto_square*3_desc', 'Hip plastic furniture'), + ('nav_venue_theatredrome/0_desc', 'Perform your latest masterpiece!'), + ('nav_venue_the_den/0_desc', 'Has anyone seen my map?'), + ('furni_sound_set_40_name', 'Rock 4'), + ('remove', 'Remove'), + ('friend_request_decline_all', 'Decline all requests.'), + ('furni_rare_globe_name', 'Snow Globe'), + ('furni_bardesk_polyfon*8_name', 'Yellow Mode Bardesk'), + ('nav_venue_sw_lobby_free_6_name', 'Free Game Lobby'), + ('queue_change', 'Change queue'), + ('reg_parentemail_link_text2', 'Privacy Pledge'), + ('furni_rare_parasol*2_desc', 'Block those rays!'), + ('furni_romantique_pianochair*3_desc', 'null'), + ('reg_parentemail_link_text1', 'See the letter'), + ('sound_machine_list_save', 'Save Playlist'), + ('nav_public_helptext_hd', 'Public Spaces'), + ('furni_chair_plasty*2_desc', 'Hip plastic furniture'), + ('spectator_count', 'spectators %cnt%/%max%'), + ('reg_welcome2', 'Create Your Own Habbo'), + ('wallitem_roomdimmer_desc', 'Superior lighting for your room'), + ('furni_prizetrophy*3_name', 'Classic trophy'), + ('furni_plant_rose_name', 'Cut Roses'), + ('reg_welcome3', 'Now the fun begins! All you need to do is register and you\'re ready to start. It won\'t take long!\\rYou can change everything except your name and date of birth later. Come on!'), + ('furni_noob_table*5_name', 'My first Habbo table'), + ('nav_error_room_closed', 'The room is closed.'), + ('reg_changePassword', 'Change your password'), + ('furni_divider_nor5*3_desc', 'Cool cornering for your crib y0!'), + ('furni_doorC_name', 'Portaloo'), + ('furni_chair_plasty*10_name', 'Plastic Pod Chair'), + ('furni_pura_mdl1*9_name', 'Red Pura Module 1'), + ('furni_rare_stand_name', 'Speaker\'s Corner'), + ('furni_grunge_table_name', 'Grunge Table'), + ('furni_traffic_light*2_name', 'Blue Traffic Light'), + ('pet.saying.angry.croco.2', 'You have displeased me.'), + ('human_trading', 'Trading'), + ('furni_noob_stool*6_desc', 'Unfold me and take the weight off (green)'), + ('pet.saying.angry.croco.1', 'Rawwwr...rrr'), + ('nav_venue_sw_lobby_intermediate_5_name', 'Snow Bombardiers Lobby'), + ('gs_button_leavegame', 'Leave Game'), + ('pet.saying.angry.croco.0', 'Grrrrr...rrr'), + ('furni_s_sound_machine*1_name', 'Sound Machine Grey'), + ('pet.saying.angry.croco.4', 'Buuuuurrr..rrrrr'), + ('furni_chair_plasto*7_desc', 'Hip plastic furniture'), + ('pet.saying.angry.croco.3', 'Rowrrrr...rrrr'), + ('furni_soft_sofa_norja*9_desc', 'Red Iced Sofa'), + ('nav_venue_skylight_lobby_name', 'Skylight Lobby'), + ('furni_bed_polyfon_one*6_desc', 'Blue Mode Single Bed'), + ('furni_pillow*8_desc', 'Puffy, soft and huge'), + ('furni_hc_rntgn_name', 'X-Ray Divider'), + ('furni_table_silo_med*5_desc', 'Pink Area Coffee Table'), + ('furni_gothic_stool*2_desc', 'Be seated please..'), + ('furni_typingmachine_desc', 'Write that bestseller'), + ('furni_fridge_desc', 'Keep cool with a chilled snack or drink'), + ('nav_venue_cunning_fox_gamehall/4_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('doorbell_rings', 'Rings the doorbell - Open the door?'), + ('furni_divider_silo1*9_desc', 'Red Area Small Table'), + ('nav_venue_bb_lobby_intermediate_7/0_desc', ''), + ('furni_prize1_name', 'Gold Trophy'), + ('poster_54_name', 'Hockey Stick'), + ('furni_sound_set_47_name', 'Club 2'), + ('furni_prizetrophy3*1_name', 'Globe trophy'), + ('purse_head2', 'ACCOUNT TRANSACTIONS'), + ('furni_soft_sofa_norja*5_name', 'Pink Iced Sofa'), + ('furni_prizetrophy9*1_desc', 'Glittery gold'), + ('buddyremove_next', 'Next >'), + ('reg_girl', 'Girl'), + ('furni_bed_budget_one*1_name', 'Aqua Pura Bed'), + ('NUF_visiting_rooms_roomlist_go', 'Click \'Go\' to go to a room.'), + ('poster_506_desc', 'To \'Finnish\' your decor...'), + ('furni_toy1_name', 'Rubber Ball'), + ('furni_sound_set_7_desc', 'Sound effects for Furni'), + ('sw_fieldname_6', 'Riverbank Siege'), + ('sw_fieldname_5', 'Polar Labyrinth'), + ('furni_bed_polyfon*4_desc', 'Beige Mode Double Bed'), + ('furni_pillow*4_name', 'Gold Feather Pillow'), + ('alert_duplicatesession', 'You are already logged in on another hotel! Log out before trying again.'), + ('sw_fieldname_7', 'Skull Falls Assault'), + ('sound_machine_alert_song_not_ready', 'Can\'t save song! Song not ready yet.'), + ('nav_venue_bb_lobby_beginner_5/0_desc', ''), + ('nav_venue_bb_lobby_tournament_4/0_desc', ''), + ('pet.saying.play.dog.1', 'woofWOOFwoofWOOFwoof'), + ('pet.saying.play.dog.0', 'rrr.. WOOF .rrr..'), + ('furni_cn_lamp_name', 'Lantern'), + ('furni_arabian_rug_name', 'Berber Kilim Rug'), + ('NUF_groups_hotelview_tutor', 'You have now opened the Group tutorial in the website window. Special!'), + ('gs_error_start_9', 'Team sizes can only differ by one player. This Game cannot start!'), + ('furni_divider_poly3*7_desc', 'Green Mode Bardesk Gate'), + ('furni_sofachair_silo*4_desc', 'Beige Area Armchair'), + ('poster_58_desc', 'whish you luck'), + ('furni_chair_basic*2_desc', 'It\'s a cracking design!'), + ('poster_516_name', 'The English flag'), + ('nav_venue_sw_lobby_tournament_2/0_desc', ''), + ('furni_gothic_carpet_name', 'Cobbled Path'), + ('sw_title', 'Snow Storm'), + ('furni_doormat_plain*5_name', 'Doormat'), + ('furni_pura_mdl4*4_desc', 'Any way you like it!'), + ('furni_sound_machine*1_name', 'Sound Machine'), + ('furni_sofa_silo*7_name', 'Green Area Sofa'), + ('nav_venue_sw_lobby_tournament_4_name', 'Tournament Lobby'), + ('gs_title_gamecreation', 'Game creation'), + ('furni_couch_norja*2_desc', 'Two can perch comfortably'), + ('furni_prizetrophy5_desc', 'Palkinto'), + ('furni_divider_nor3*9_desc', 'Red Iced gate'), + ('furni_present_gen_name', 'Gift'), + ('furni_prizetrophy7*3_name', 'Bronze Habbo trophy'), + ('alert_reg_parent_email', 'The email address you provided is unacceptable.'), + ('furni_bed_polyfon_girl_name', 'Double Bed'), + ('furni_rare_fountain_name', 'Bird Bath (red)'), + ('furni_pura_mdl3*3_name', 'Black Pura Module 3'), + ('furni_plant_pineapple_name', 'Pineapple Plant'), + ('furni_divider_nor2*8_name', 'Yellow Iced bar desk'), + ('messenger', 'Messenger'), + ('nav_venue_bb_arena_0_name', 'Battle Ball kaikille'), + ('sw_fieldname_2', 'Algid River'), + ('furni_bed_silo_two_desc', 'Plain and simple x2'), + ('sw_fieldname_1', 'Arctic Island'), + ('furni_pillow*1_desc', 'Puffy, soft and huge'), + ('sw_fieldname_4', 'Frosty Forest'), + ('sw_fieldname_3', 'Glacial Fort'), + ('furni_bar_basic_desc', 'A pura series 300 minibar'), + ('tutorial_welcome_M', 'Hi! I am your guide to Habbo Hotel. Please pick a topic to start.'), + ('tutorial_welcome_F', 'Hi there! I\'m your guide to Habbo Hotel. What would you like to learn today?'), + ('Alert_NoNameSetForLogo', 'Please give a name to your logo'), + ('furni_glass_table*5_name', 'Glass table'), + ('group_owner', 'Owner'), + ('console_target_friend_list_full', 'This user\'s friend list is full'), + ('furni_romantique_smalltabl*2_name', 'Lime Tray Table'), + ('ph_keys_spacebar', 'Spacebar'), + ('furni_noob_chair*3_name', 'My first Habbo chair'), + ('NUF_meeting_people_roomlist_publicTab', 'Click the Public Spaces tab to see the list of public rooms. To go to the room click the \'Go\' button.'), + ('furni_bed_polyfon*7_name', 'Green Mode Double Bed'), + ('furni_jukebox_ptv*1_name', 'Jukebox Pacha TV'), + ('poster_513_desc', 'Aussies rule!'), + ('poster_51_desc', '2 points for every basket'), + ('furni_toy1*2_name', 'Rubber Ball'), + ('furni_bartable_armas_name', 'Bardesk'), + ('nav_venue_sw_lobby_amateur_0/0_desc', ''), + ('NUF_mini_use_console_read_tutor', 'The Habbo Console lets you message with people you have added to your friends list.'), + ('nav_venue_bb_lobby_beginner_12_name', 'Beginners Battle Ball 13'), + ('poster_2002_name', 'Urho Kaleva Kekkonen'), + ('furni_sound_set_44_desc', 'Haunted Dimension'), + ('pet.saying.beg.dog.1', 'Oouh..oouh..snuh..ooo'), + ('furni_sporttrack2*1_name', 'Sport corner tartan'), + ('pet.saying.beg.dog.0', 'Oooo...Ouuu...oo...OUUU'), + ('furni_solarium_norja*5_desc', 'Rejuvenate your pixels!'), + ('pet.saying.beg.dog.2', '*whimpers *'), + ('reg_pledgelink', 'Hotel rules'), + ('habboclub_price1.days', '30'), + ('furni_glass_shelf_desc', 'Translucent beauty'), + ('furni_sofachair_polyfon*3_name', 'White Armchair'), + ('reg_verification_info', 'You must know the correct birthday and password before you\'re allowed to make these changes.'), + ('furni_carpet_soft*5_desc', 'Soft Wool Rug'), + ('furni_grunge_mattress_name', 'Grunge Mattress'), + ('furni_bed_polyfon_one_name', 'Single Bed'), + ('furni_sound_machine_pro_name', 'Sound Machine Pro'), + ('furni_chair_china_desc', 'The elegant beauty of tradition'), + ('furni_rare_icecream*7_desc', 'Virtual chocolate rocks!'), + ('furni_table_silo_med*8_name', 'Yellow Coffee Table'), + ('club_gift.message', 'Happy Habbo Club! Love Callie :)'), + ('furni_sw_raven_desc', 'My name is Otter'), + ('furni_noob_table*2_desc', 'Lightweight, practical and dark blue'), + ('furni_soft_sofachair_norja*3_desc', 'Soft Iced sofachair'), + ('sound_machine_confirm_delete', 'Delete song?'), + ('furni_plant_fruittree_name', 'Fruit Tree'), + ('nav_venue_bb_lobby_intermediate_1/0_desc', ''), + ('furni_heartsofa_name', 'Heart Sofa'), + ('furni_bed_budget_one*8_name', 'Yellow Pura Bed'), + ('NUF_getting_room', 'Making your own room'), + ('furni_rare_elephant_statue*2_name', 'Bronze Elephant'), + ('nav_venue_ballroom/0_desc', 'Come play ball!'), + ('nav_venue_sw_lobby_amateur_1_name', 'Snow Slingers Lobby'), + ('console_lasttime', 'Last Time'), + ('furni_md_sofa_desc', 'A decent recliner'), + ('furni_wooden_screen*6_name', 'Blue Oriental Screen'), + ('partner_registration_text', 'Click the link to finish your registration. When you have finished the registration click OK to continue to the hotel.'), + ('furni_sound_set_62_desc', 'Music of the Arabian night!'), + ('furni_arabian_divdr_name', 'Soft wooden screen'), + ('furni_tree1_desc', 'Dead christmas tree'), + ('furni_grand_piano*3_name', 'Pink Grand Piano'), + ('console_select_requests', 'Following users have asked to be your friend. Please accept or decline.'), + ('furni_divider_nor4*2_name', 'Black Iced Auto Shutter'), + ('furni_glass_chair*3_name', 'Glass chair'), + ('reg_passwordContainsNoNumber', 'Password must contain at least one number'), + ('buddyremove_invert', 'Invert Selection'), + ('furni_val_teddy*5_desc', 'The yellow bear of understanding'), + ('furni_sound_set_51_name', 'Club 6'), + ('poster_1_desc', 'The Noble and Silver Show'), + ('roomevent_create_name', 'Type the name of your event'), + ('Alert_unacceptableName', 'Sorry, that name is unacceptable to the Hotel Management'), + ('NUF_getting_room_go_tutor', 'Your room is now ready. Let\'s go see! I hope you have a bed...'), + ('poster_520_name', 'The Rainbow Flag'), + ('password', 'Password:'), + ('furni_bed_budget*8_name', 'Yellow Pura Double Bed'), + ('gs_header_gamelist', 'Game List'), + ('furni_chair_plasty_desc', 'Hip plastic furniture'), + ('url_purse_subscribe', 'http://%predefined%//credits?'), + ('furni_table_plasto_bigsquare*15_desc', 'Hip plastic furniture'), + ('furni_glass_stool*6_desc', 'Translucent beauty'), + ('error_report', 'Error Report'), + ('summer_chair_6_desc', 'Get decked'), + ('furni_chair_basic*5_name', 'chair_basic'), + ('room_remove_specs', 'Sorry! Now it\'s someone else\'s turn to watch this event.'), + ('furni_bunny_desc', 'Yours to cuddle up to'), + ('invitation_exists', 'You have already invited members of the Welcoming Party to your room.'), + ('purse_vouchers_furni_success', 'Voucher was successfully redeemed. You have been given the following furniture:'), + ('nav_rooms_popular', 'Popular rooms'), + ('nav_cancel', 'Cancel'), + ('alert_cross_domain_download', 'Cross domain content download prevented'), + ('furni_table_plasto_4leg*16_desc', 'Hip plastic furniture'), + ('url_pets', 'http://%predefined%//hotel/pets'), + ('furni_bardeskcorner_polyfon*9_desc', 'Tuck it away'), + ('gs_button_cancel', 'Cancel'), + ('furni_barchair_silo*7_name', 'Green Bar Stool'), + ('catalog_credits', 'You have \\x Credits in your purse.'), + ('furni_divider_nor3_name', 'Door (Lockable)'), + ('nav_modify_name', 'Name of the room'), + ('nav_venue_bb_lobby_amateur_7_name', 'Gevorderden Battle Ball 8'), + ('nav_venue_club_massiva/0_desc', 'Rest your dancing feet!'), + ('furni_gothrailing_desc', 'The dark side of Habbo'), + ('queue_set.na.alert', 'This Room is for Staff only.'), + ('nav_venue_bb_lobby_tournament_8_name', 'Competitie Battle Ball 9'), + ('furni_sound_set_29_name', 'Dance 2'), + ('console_msgs', 'msgs'), + ('furni_noob_lamp*6_name', 'My first Habbo lamp'), + ('furni_marquee*6_desc', 'It\'s both door and a shade!'), + ('furni_chair_plasto*16_desc', 'Hip plastic furniture'), + ('furni_chair_basic*9_desc', 'It\'s a cracking design!'), + ('summer_chair_2_name', 'Pink Deck Chair'), + ('alert_too_much_furnitures', 'Furni limit for room is exceeded. Not all furnitures are shown. Please remove some.'), + ('furni_pura_mdl5*4_name', 'White Pura Module 5'), + ('bus.full_msg', 'The FRANK bus is full at the moment, please come back later or visit the FRANK page below for more information.'), + ('furni_sound_set_22_name', 'SFX 3'), + ('furni_gothic_sofa*3_desc', 'The dark side of Habbo'), + ('furni_md_limukaappi_name', 'Habbo Cola Machine'), + ('poster_19_desc', 'Trying to get in or out?'), + ('gs_2min', '2min'), + ('poster_8_desc', 'Habbos come in all colours'), + ('furni_pillar*6_desc', 'Ancient and stately'), + ('furni_carpet_standard*3_desc', 'Available in a variety of colours'), + ('purse_vouchers_info', 'When you buy Habbo Credits with a mobile phone, you will receive a special voucher code. Enter the code in the box above, click \'Get Credits!\' and they\'ll be added to your purse.'), + ('furni_valeduck_name', 'Valentine\'s Duck'), + ('Alert_MessageFromAdmin', 'Message from Hotel Management:'), + ('furni_present_gen1_desc', 'What\'s inside?'), + ('reg_tutorial_txt', ''), + ('furni_tile_stella_name', 'Star Tile'), + ('furni_shelves_norja*4_name', 'Urban Iced Bookcase'), + ('transaction_system_creditcards_is', 'Creditcard'), + ('furni_shelves_polyfon_desc', 'For the arty pad'), + ('furni_tv_luxus_name', 'Digital TV'), + ('recycler_status_window_title', 'Recycling Status'), + ('furni_sleepingbag*6_name', 'Purple Sleeping Bag'), + ('gs_button_shrink', 'Minimize Window'), + ('furni_wcandleset_desc', 'Simple but stylish'), + ('furni_sleepingbag*3_desc', 'Ultimate coziness'), + ('object_displayer_show_actions', 'Show actions'), + ('hubu_t5_1', 'Lisetoa huumeista'), + ('song_disk_text_template', '%name%'), + ('hubu_t5_2', 'Huumeista-esite'), + ('queue_other_1', 'Habbo Live queue status'), + ('poster_33_name', 'Save the Panda'), + ('hubu_t5_3', 'Yleistietoa EOPH ry:st--------------'), + ('queue_other_2', 'Room queue status'), + ('furni_hcsohva_name', 'Throne Sofa'), + ('furni_sound_set_26_desc', 'Bollywood Beats!'), + ('furni_christmas_poop_name', 'Reindeer Droppings'), + ('furni_rare_dragonlamp*4_name', 'Serpent of Doom'), + ('nav_venue_bb_lobby_amateur_7/0_desc', ''), + ('purse_value', 'VALUE'), + ('furni_glass_sofa*5_desc', 'Translucent beauty'), + ('nav_venue_bb_lobby_tournament_15/0_desc', ''), + ('furni_glass_stool*2_desc', 'Translucent beauty'), + ('pet.saying.play.cat.1', 'Purrrr.. oo..Purrr'), + ('furni_pura_mdl4*7_name', 'Green Pura Module 4'), + ('nav_venue_cafe_ole/0_desc', 'Relax with friends over one of Marias specialty coffees'), + ('pet.saying.play.cat.0', 'Mew..MEOW..meow'), + ('furni_pumpkin_name', 'Pumpkin Lamp'), + ('furni_summer_chair*7_desc', 'Reserved!'), + ('ph_tickets_txt', 'Tickets can be used for BattleBall: Rebound!, SnowStorm, the Lido Diving and Wobble Squabble games. Tickets never expire.\\r\\rCurrently you have \\x1 ticket(s).'), + ('roomatic_onemoment', 'Please wait, we are going to your room...'), + ('furni_small_table_armas_name', 'Occasional Table'), + ('furni_table_polyfon_med_desc', 'For larger gatherings'), + ('nav_venue_bb_lobby_expert_3/0_desc', ''), + ('furni_chair_silo*6_desc', 'Blue Silo Dining Chair'), + ('furni_exe_globe_name', 'Power Globe'), + ('furni_bed_budget_one_name', 'bed_budget_one'), + ('furni_divider_silo1*2_desc', 'Neat and natty'), + ('nav_venue_bb_lobby_intermediate_0_name', 'Intermediate'), + ('furni_sofa_polyfon*9_desc', 'Comfort for stylish couples'), + ('furni_noob_lamp*3_desc', 'Get the light right where you want it (aubergine)'), + ('nav_showfull', 'Show Full Rooms'), + ('furni_divider_nor3*2_desc', 'Black Iced gate'), + ('reg_note_title', 'Warning!'), + ('hubu_answ_count', 'Replies'), + ('nav_recommended_rooms', 'Recommended Rooms'), + ('transaction_system_bank_nordea', 'Nordea'), + ('furni_sound_set_37_desc', ''), + ('poster_2006_desc', 'He is the magic Habbo'), + ('sw_link_gameRules_url', 'http://%predefined%//groups/56553/id'), + ('wave', 'Wave'), + ('furni_hc_djset_desc', 'Very old skool scratch\'n\'spin'), + ('furni_plant_maze_name', 'Maze Shrubbery'), + ('furni_scifirocket*3_name', 'Endor Smoke Machine'), + ('furni_val_teddy*1_name', 'Grey Share Bear'), + ('recycler_ready_outcome', 'Recycling reward: %outcome%'), + ('poster_4_desc', 'Fake of course!'), + ('poster_62_desc', 'We can\'t bear to lose them!'), + ('furni_glass_stool*9_desc', 'Translucent beauty'), + ('furni_goodie1_name', 'Marzipan Man'), + ('nav_modify_choosecategory', 'Choose a category for your room'), + ('object_displayer_link_home', 'User\'s home page'), + ('nav_venue_sw_lobby_tournament_8/0_desc', ''), + ('furni_xmasduck_name', 'Christmas Rubber Duck'), + ('help_txt_2', 'Password Reset'), + ('pet_mood_2', 'Blue'), + ('furni_queue_tile1*4_desc', 'The power of movement'), + ('help_txt_1', 'How do I get Credits?'), + ('pet_mood_3', 'Contented'), + ('nav_venue_bb_lobby_tournament_1_name', 'Competitie Battle Ball 2'), + ('furni_rare_daffodil_rug_name', 'Petal Patch'), + ('help_txt_4', 'The Habbo Way'), + ('pet_mood_0', 'Miserable'), + ('help_txt_3', 'Help with Habbo Hotel'), + ('pet_mood_1', 'Depressed'), + ('pet_mood_6', 'Ecstatic'), + ('furni_bed_budget*4_name', 'White Pura Double Bed'), + ('nav_venue_bb_lobby_amateur_0_name', 'Amateur'), + ('furni_sofachair_polyfon*7_desc', 'Green Mode Armchair'), + ('yes', 'Yes'), + ('pet_mood_4', 'Happy'), + ('pet_mood_5', 'Joyful'), + ('furni_sound_set_30_desc', 'Moments in love'), + ('furni_prizetrophy2*1_desc', 'Glittery gold'), + ('furni_wooden_screen*3_desc', 'Add an exotic touch to your room'), + ('transaction_system_bank_op', 'Osuuspankki'), + ('help_txt_6', 'Contact Us'), + ('help_txt_5', 'Safety Tips'), + ('furni_bardeskcorner_polyfon*2_desc', 'Black Mode Bardesk Corner'), + ('poster_15_desc', 'Marvellous mountains'), + ('room_areYouSurePlace', 'Warning! If you put something down in this room you will not be able to pick it up again.'), + ('nav_venue_bouncer_room_3_name', 'Semi-profs Battle Ball Arena'), + ('furni_chair_plasto*12_name', 'Chair'), + ('furni_gothic_chair*6_name', 'Gothic Chair Blue'), + ('furni_sofa_polyfon*2_desc', 'Black Mode Sofa'), + ('modtool_alertuser', 'Alert User'), + ('furni_toilet_desc', 'Loo Seat'), + ('furni_plant_cruddy_name', 'Aloe Vera'), + ('nav_venue_space_cafe/0_desc', 'In this space noone can see you ask for a soda!'), + ('nav_incorrectflatpw', 'Incorrect, try again.'), + ('furni_chair_plasto*13_desc', 'Hip plastic furniture'), + ('login_firstTimeHere', 'First time here?'), + ('furni_skullcandle_desc', 'Alas poor Yorrick...'), + ('NUF_mini_endtopic_step1_tutor', 'Well that\'s all from me. If you have any problems just click the little blue question mark to restart the tutorial and find our FAQs.\\nTo start exploring by yourself, click Close guide from the upper left corner.'), + ('furni_divider_poly3*3_name', 'White Hatch'), + ('help_callforhelp', 'Get Live Help'), + ('furni_rare_fountain*2_name', 'Bird Bath (green)'), + ('nav_venue_rooftop_name', 'Rooftop Cafe'), + ('furni_scifiport*7_name', 'Turquoise Sci-Fi Port'), + ('purse_back_to_credits', 'Back To Purse'), + ('room_ban', 'Kick & ban'), + ('furni_pura_mdl5*1_name', 'Aqua Pura Module 5'), + ('furni_val_teddy*4_name', 'Brown Share Bear'), + ('poster_40_name', 'Bonnie Blonde'), + ('NUF_getting_room_navigator_tutor', 'You want to click it real good. The \'Own room(s)\' tab I mean. Don\'t click yourself. It\'s unhygienic.'), + ('summer_chair_3_desc', 'Relax and enjoy the sun'), + ('furni_wooden_screen*2_name', 'RosewoodScreen'), + ('nav_venue_sun_terrace_name', 'Sun Terrace'), + ('furni_rare_fan*3_desc', 'Keeps the heat off St George!'), + ('nav_venue_sport_name', 'Power Gym'), + ('furni_toilet_red_desc', 'Loo Seat'), + ('retype_password', 'Retype Password:'), + ('furni_chair_basic*6_desc', 'It\'s a cracking design!'), + ('console_friends_helptext', 'This screen shows a list of all your Habbo Friends. It tells you where they are in the hotel, or, if they\'re not checked in, when their last visit was.'), + ('NUF_getting_items_room_', 'This is the Catalogue icon. Click to open it.'), + ('furni_grunge_barrel_desc', 'Beacon of light!'), + ('furni_soft_sofachair_norja*6_name', 'Blue Iced Sofachair'), + ('int_howtoget', 'How To get?'), + ('furni_sound_set_23_desc', 'Don\'t be afraid of the dark'), + ('nav_ok', 'OK'), + ('furni_sofachair_polyfon*6_name', 'Blue Mode Armchair'), + ('nav_venue_theatredrome_valentine_name', 'Theatredrome Valentine'), + ('furni_sofachair_polyfon_desc', 'Loft-style comfort'), + ('poster_83_name', 'Pöllö huhuilee'), + ('furni_soft_sofachair_norja*2_name', 'Black Iced Sofachair'), + ('roomdimmer_furni_limit', 'You can only have one roomdimmer per room'), + ('recycler_progress_timeleft', 'Time left: %hours% h and %minutes% min'), + ('furni_chair_plasto*3_name', 'Chair'), + ('NUF_getting_room_hotelview_tutor', 'Now you will learn how to make your own room. First go to the Guest Rooms area of the Navigator.'), + ('roomevent_create', 'Create'), + ('reg_year', 'Year'), + ('furni_divider_poly3_name', 'Hatch (Lockable)'), + ('furni_divider_nor1*7_name', 'Rural Iced Corner'), + ('furni_rare_beehive_bulb_name', 'Blue Amber Lamp'), + ('furni_waterbowl*2_name', 'Green Water Bowl'), + ('NUF_getting_room_room_hand', 'Open your hand!'), + ('furni_carpet_standard*6_desc', 'Available in a variety of colours'), + ('furni_CF_5_coin_silver_name', 'Silver Coin'), + ('furni_shelves_norja*7_name', 'Rural Iced Bookcase'), + ('opening_hours_text_disabled', 'The Hotel is shutting down really soon. To avoid confusion, purchasing of furniture, Habbo Club and game tickets have been disabled, as well as playing games and furniture trading. Try again tomorrow when the hotel is open!'), + ('nav_venue_bb_lobby_5_name', 'Battle Ball Kaikille'), + ('game_bs_congrat', 'Congratulations!'), + ('furni_arabian_tray2_name', 'Candle Tray'), + ('furni_giftflowers_desc', 'Guaranteed to stay fresh'), + ('club_button_1_period', 'Buy 1 >>>'), + ('furni_bed_polyfon_one*2_desc', 'Black Mode Single Bed'), + ('poster_47_name', 'Small silver star'), + ('furni_divider_nor3*5_desc', 'Pink Iced gate'), + ('furni_sofachair_polyfon_girl_desc', 'Think pink'), + ('furni_pura_mdl5*8_name', 'Yellow Pura Module 5'), + ('furni_hal_cauldron_desc', 'Eye of Habbo and toe of Mod!'), + ('poster_1006_name', 'Hoot Poster'), + ('furni_carpet_valentine_name', 'Red carpet'), + ('furni_floortile_name', 'Floor Tile'), + ('furni_divider_nor1*4_name', 'Urban Iced Corner'), + ('furni_bardeskcorner_polyfon*12_desc', 'Tuck it away'), + ('furni_table_plasto_bigsquare*3_desc', 'Hip plastic furniture'), + ('furni_traffic_light*6_desc', 'Chill and wait your turn!'), + ('club_general_prepaid', 'Prepaid Months'), + ('wallitem_val_heart_desc', 'Heartbroken... without your love!'), + ('furni_pura_mdl3*7_desc', 'Any way you like it!'), + ('furni_sound_set_58_name', 'RnB Grooves 4'), + ('furni_china_shelve_name', 'Chinese Lacquer Bookshelf'), + ('furni_divider_silo1*5_desc', 'Pink Area Corner Shelf'), + ('nav_venue_sw_lobby_tournament_desc', 'For stand-alone Tournaments.'), + ('furni_divider_silo2_name', 'Screen'), + ('furni_plant_mazegate_name', 'Maze Shrubbery Gate'), + ('poster_509_desc', 'The flag of Jamaica'), + ('furni_soft_sofachair_norja*9_name', 'Red Iced Sofachair'), + ('nav_venue_sw_arena_intermediate_name(0)', 'Playing intermediate game'), + ('furni_barchair_silo*4_name', 'Beige Bar Stool'), + ('furni_scifidoor*7_name', 'Aqua Spaceship Door'), + ('furni_CF_10_coin_gold_desc', 'Worth 10 Credits'), + ('furni_glass_sofa*8_desc', 'Translucent beauty'), + ('jukebox_reset', 'Reset Jukebox'), + ('nav_venue_sw_lobby_intermediate_desc', 'For the accomplished Snow Stormers.'), + ('furni_spotlight_desc', 'For the star of the show'), + ('furni_couch_norja_name', 'Bench'), + ('furni_romantique_divan*3_name', 'Turquoise Romantique Divan'), + ('furni_sleepingbag*7_desc', 'Ultimate coziness'), + ('roomatic_pws2', '24 hour access:'), + ('wallitem_jp_sheet1_desc', 'jp_sheet1'), + ('furni_table_silo_med*2_desc', 'Wipe clean and unobtrusive'), + ('furni_glass_table_desc', 'Translucent beauty'), + ('poster_502_desc', 'The US flag'), + ('pet_enrg_10', 'Mad'), + ('gs_scores_team_2', 'Blue Team:'), + ('pet_enrg_11', 'Nutcase'), + ('gs_scores_team_1', 'Red Team:'), + ('furni_cn_sofa_desc', 'Seating,Oriental style!'), + ('gs_scores_team_4', 'Green Team:'), + ('gs_scores_team_3', 'Yellow Team:'), + ('furni_table_silo_med*9_desc', 'Red Area Coffee Table'), + ('furni_hc_machine_name', 'Weird Science Machine'), + ('callhelp_writeyour', 'Write your question about Habbo Hotel here:'), + ('furni_table_silo_small*5_name', 'Pink Area Occasional Table'), + ('nav_addtofavourites', 'Add to favourites'), + ('furni_table_plasto_round*15_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_4_name', 'Competitie Battle Ball 5'), + ('furni_birdie_name', 'Pop-up Egg'), + ('furni_table_plasto_bigsquare_desc', 'Hip plastic furniture'), + ('furni_sound_set_33_desc', 'Guitar solo set'), + ('furni_romantique_divider*3_desc', 'Keeping things separated'), + ('furni_bed_budget*1_name', 'Aqua Pura Double Bed'), + ('furni_rare_beehive_bulb*2_desc', 'A honey-hued glow'), + ('furni_theatre_seat_desc', 'For Lazy boys and girls!'), + ('furni_hc_lmpst_desc', 'Somber and atmospheric'), + ('furni_divider_nor5*6_name', 'Blue Iced Angle'), + ('furni_summer_pool*2_desc', 'Fancy a dip?'), + ('poster_12_desc', 'a beautiful sunset'), + ('furni_carpet_polar*2_desc', 'Snuggle up on a Funky bear rug...'), + ('furni_md_rug_desc', 'Bubbles under your steps'), + ('Alert_InviteFriend', 'Invite your friends'), + ('nav_venue_bb_lobby_intermediate_4_name', 'Semi-profs Battle Ball 5'), + ('furni_hockey_score_desc', '...for keeping your score'), + ('furni_gothic_chair*3_name', 'Red Gothic Chair'), + ('wallitem_sw_stone_name', 'sw_stone'), + ('furni_pillow*7_name', 'Purple Velvet Pillow'), + ('nav_popup_header', 'Recommended rooms'), + ('nav_venue_sw_lobby_beginner_0_name', 'Snow Rookies Lobby'), + ('furni_table_norja_med*5_desc', 'For larger gatherings'), + ('furni_red_tv_name', 'Portable TV'), + ('reg_promise', '*Any personal information you supply will only be used by Habbo Ltd in accordance with the Habbo Pledge and will not be shared with third parties.'), + ('room_badge_choose', 'Modify Badge:'), + ('furni_table_plasto_square*15_desc', 'Hip plastic furniture'), + ('furni_sound_set_48_desc', 'Sweet party beat'), + ('nav_venue_ballroom_name', 'Ballroom'), + ('pet.hotwords.bad', 'bad'), + ('poster_55_desc', 'Save our trees!'), + ('furni_glass_chair_name', 'Glass chair'), + ('furni_prizetrophy5*2_desc', 'Shiny silver'), + ('furni_divider_poly3*4_desc', 'Beige Mode Bardesk Gate'), + ('tutorial_console_sample_message', 'Hello! This is a message sent to you from the Habbo Tutorial. To close and delete this message click delete. Sadly you cannot reply to this message as it is automated. Normally you can reply to messages by clicking the reply button.'), + ('furni_s_sound_machine*5_name', 'Sound Machine Brown'), + ('furni_divider_nor4*9_desc', 'Habbos, roll out!'), + ('furni_pura_mdl3*4_desc', 'Any way you like it!'), + ('NUF_getting_room_room_tutor', 'Tada! Nice room, although it\'s a little empty. Hey! Let\'s furnish it with something./nOpen your hand to check what you have, (if you have done this step before then you won\'t receive anything).'), + ('furni_fortune_desc', 'Gaze into the future'), + ('furni_soft_sofa_norja_name', 'iced sofa'), + ('furni_pura_mdl1*2_desc', 'Any way you like it!'), + ('nav_venue_sw_lobby_free_6/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('furni_divider_nor3*8_name', 'Yellow Iced gate'), + ('gs_title_finalscores', 'Final Standings:'), + ('gs_error_10', 'The hotel is closed or about to close. We look forward to welcoming you back tomorrow at (ADD LOCAL OPENING TIME).'), + ('furni_plant_bonsai_name', 'Bonsai Tree'), + ('furni_jukebox*1_name', 'Jukebox'), + ('room_loading', 'Loading room...'), + ('furni_hc_crpt_desc', 'Ultimate craftsmanship'), + ('furni_rare_hammock_desc', 'Eco bed'), + ('NUF_mini_use_console', 'Learn about messaging'), + ('furni_romantique_chair*1_desc', 'Elegant seating for elegant Habbos'), + ('transaction_system_bank_digiraha', 'Digiraha'), + ('NUH_messenger', 'Open your Console here - you might have messages or friend requests waiting.'), + ('furni_arabian_chair_desc', 'Exotic, soft seating'), + ('furni_noob_chair*6_name', 'My first Habbo chair'), + ('poster_510_desc', 'The flag of Italy'), + ('furni_carpet_standard*a_desc', 'Available in a variety of colours'), + ('queue_set.c.info', 'There are %c% Habbo Club member(s) in front of you. Be patient :)'), + ('furni_scifiport*4_name', 'Pink Sci-Fi Port'), + ('furni_sound_set_44_name', 'Graveyard Portal'), + ('furni_pura_mdl4*1_desc', 'Any way you like it!'), + ('furni_divider_silo3*6_desc', 'Blue Area Gate'), + ('furni_sound_machine*4_name', 'Blue Traxmachine'), + ('send_invitation_header', 'Get a warm welcome'), + ('game_TicTacToe', 'Boter kaas en eieren'), + ('nav_venue_sw_lobby_tournament_1_name', 'Tournament Lobby'), + ('furni_rare_fan*2_name', 'Green Powered Fan'), + ('furni_doormat_plain*2_name', 'Doormat'), + ('furni_table_plasto_square*7_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_intermediate_8/0_desc', ''), + ('furni_noob_table*6_desc', 'Lightweight, practical and green'), + ('win_callforhelp', 'Alert a Moderator'), + ('furni_prizetrophy8*1_desc', 'Glittery gold'), + ('furni_chair_norja*5_name', 'Pink Chair'), + ('furni_hc_tv_desc', 'Forget plasma, go HC!'), + ('furni_divider_arm1_name', 'Corner plinth'), + ('furni_table_plasto_round*7_name', 'Round Dining Table'), + ('furni_petfood3_name', 'Cabbage Mega Multipack'), + ('furni_carpet_standard*9_name', 'Floor Rug'), + ('opening_hours_title', 'Hotel Maintenance'), + ('console_noemail', 'Sorry,'), + ('furni_couch_norja*8_name', 'Yellow Bench'), + ('furni_s_sound_machine*1_desc', 'Sound Machine Grey Desc'), + ('furni_noob_stool*6_name', 'My first Habbo stool'), + ('purse_event', 'ACTIVITY'), + ('reg_readterms_alert', 'You have to read the Terms and Conditions\\r(scroll to the bottom of the text).'), + ('pet.hotwords.beg', 'beg'), + ('furni_jp_drawer_name', 'Japanese Drawer'), + ('gs_state_started', 'This Game has already started...'), + ('furni_sound_set_11_name', 'Dance 4'), + ('furni_divider_nor2*4_name', 'Urban Iced Bar'), + ('queue_set.e2.info', 'There are %e2% Habbos in front of you in the queue.'), + ('furni_bath_name', 'Bubble Bath'), + ('furni_rare_icecream*3_desc', 'Virtual blackcurrant rocks!'), + ('nav_modify_nameoftheroom', 'Name Of The Room'), + ('furni_scifiport*1_desc', 'Energy beams. No trespassers!'), + ('nav_venue_bb_lobby_amateur_12/0_desc', ''), + ('furni_table_silo_small*8_name', 'Yellow Occasional Table'), + ('furni_divider_silo3*3_name', 'White Area Gate'), + ('nav_venue_sw_lobby_amateur_7/0_desc', 'Astetta rankempaa lumisotaa.'), + ('reply', 'Reply'), + ('furni_toilet_yell_desc', 'Loo Seat'), + ('hobba_alert', 'Moderator Alert'), + ('You can play a bunch of exciting games, visit your friends\' rooms or even make your own place and decorate it to your heart\'s delight.', ''), + ('pet.saying.eat.croco.4', '*Buurrrrp*'), + ('furni_tree5_desc', 'Any presents under it yet?'), + ('pet.saying.eat.croco.2', '*Chomp chomp*'), + ('pet.saying.eat.croco.3', 'Mmmm mmmmm....'), + ('furni_divider_poly3*7_name', 'Green Mode Bardesk Gate'), + ('pet.saying.eat.croco.0', 'Mmmm yum yum'), + ('pet.saying.eat.croco.1', 'Ruff ruff ruff'), + ('furni_scifidoor*4_name', 'Emerald Spaceship Door'), + ('furni_edice_name', 'Holo-dice'), + ('furni_divider_nor4*6_name', 'Blue Iced Auto Shutter'), + ('furni_safe_silo*3_desc', 'Totally shatter-proof!'), + ('furni_table_silo_small_desc', 'For those random moments'), + ('gs_header_page', 'Page'), + ('furni_sporttrack3*2_name', 'Sport goal asphalt'), + ('furni_pura_mdl2*6_desc', 'Any way you like it!'), + ('furni_hcamme_name', 'Tubmaster'), + ('furni_carpet_soft*2_desc', 'Soft Wool Rug'), + ('furni_sound_set_12_name', 'Habbo Sounds 2'), + ('forgottenpw_done', 'If the email you gave during registration was correct, your password will be sent to you now.'), + ('navigator.no_category', 'No Category'), + ('login_whatsHabboCalled', 'What\'s your Habbo called?'), + ('furni_scifidoor*3_name', 'Lightblue Spaceship Door'), + ('game_poker', 'POKER'), + ('roomatic_pws', 'Password for selected'), + ('furni_glass_table*8_name', 'Glass table'), + ('furni_one_way_door*8_desc', 'One at a time!'), + ('furni_bardesk_polyfon*9_desc', 'Perfect for work or play'), + ('nav_venue_bb_lobby_tournament_13_name', 'Competitie Battle Ball 14'), + ('pet.hotwords.sit', 'sit'), + ('furni_arabian_tray3_desc', 'Indulge yourself!'), + ('furni_sound_set_40_desc', 'Dude? Cheese!'), + ('console_compose', 'Compose A Message'), + ('furni_table_plasto_square*3_name', 'Square Dining Table'), + ('furni_rclr_sofa_name', 'Polar Sofa'), + ('poster_2005_name', 'Infobus'), + ('furni_table_plasto_4leg*9_name', 'Occasional Table'), + ('furni_chair_norja*9_desc', 'Sleek and chic for each cheek'), + ('Room', 'Room:'), + ('furni_chair_plasty*2_name', 'Plastic Pod Chair'), + ('furni_romantique_pianochair*3_name', 'Turquoise Romantique Piano Chair'), + ('furni_rare_parasol*2_name', 'Orange Parasol'), + ('loading_project', 'Loading Habbo Hotel...'), + ('poster_505_name', 'The Maple Leaf'), + ('furni_traffic_light*2_desc', 'Chill and wait your turn!'), + ('nav_venue_sw_lobby_amateur_4_name', 'Snow Slingers Lobby'), + ('furni_grunge_shelf_name', 'Grunge Bookshelf'), + ('furni_sofa_polyfon*8_name', 'Yellow Mode Sofa'), + ('furni_doorC_desc', 'In a hurry?'), + ('roomatic_nomatch', 'Sorry. Your passwords don\'t match. Please enter them again.'), + ('furni_soft_sofa_norja*9_name', 'Red Iced Sofa'), + ('nav_venue_tv_studio_general/0_desc', 'Suosikki rules! Musaa, leffoja ja staroja!'), + ('nav_venue_sw_arena_amateur_name', 'Playing amateur game'), + ('interface_icon_events', 'Open the room event browser'), + ('furni_grunge_table_desc', 'Students of the round table!'), + ('furni_wooden_screen*9_name', 'Green Oriental Screen'), + ('NUF_getting_room_hotelview_nav', 'Click to open the Navigator.'), + ('furni_table_silo_med*5_name', 'Pink Area Coffee Table'), + ('furni_divider_silo1*9_name', 'Red Area Small Table'), + ('nav_venue_bb_lobby_amateur_4_name', 'Gevorderden Battle Ball 5'), + ('room_badge_hidden', 'Hidden'), + ('pet.saying.generic.cat.0', 'meow'), + ('furni_marquee*3_desc', 'It\'s both door and a shade!'), + ('pet.saying.generic.cat.1', 'meow...meOW'), + ('nav_venue_cunning_fox_gamehall/4_name', 'Chess'), + ('furni_present_gen_desc', 'What\'s inside?'), + ('pet.saying.generic.cat.2', 'muew..muew'), + ('pet.saying.generic.cat.3', 'Purrrrrrrrrr'), + ('furni_scifidoor*1_desc', 'There out of this world!'), + ('pet.saying.generic.cat.4', 'Purrrrr oow'), + ('furni_fridge_name', 'Pura Refridgerator'), + ('furni_rubberchair*2_name', 'Pink Inflatable Chair'), + ('furni_romantique_chair*4_name', 'Amber Chair'), + ('bb_fieldname_5', 'Barebones Classic'), + ('furni_sofa_silo*7_desc', 'Green Area Sofa'), + ('bb_fieldname_4', 'Gothic Hallway'), + ('furni_prizetrophy6*2_name', 'Champion trophy'), + ('bb_fieldname_3', 'Maze Park'), + ('bb_fieldname_2', 'Coral Beach'), + ('bb_fieldname_1', 'Sky Peak'), + ('furni_safe_silo_pb_name', 'postbank Safe'), + ('furni_solarium_norja*2_desc', 'Rejuvenate your pixels!'), + ('furni_table_plasto_bigsquare*7_desc', 'Hip plastic furniture'), + ('reg_check_age', 'Age'), + ('furni_exe_chair2_desc', 'You\'re fired!'), + ('furni_typingmachine_name', 'Typewriter'), + ('human_carrying', 'Carrying:'), + ('furni_grunge_sign_name', 'Road Sign'), + ('loading', 'Loading...'), + ('furni_bed_polyfon_one*6_name', 'Blue Mode Single Bed'), + ('furni_bed_budget_one*1_desc', 'Prince sized comfort!'), + ('furni_sofa_polyfon_name', 'Two-seater Sofa'), + ('furni_jp_lantern_desc', 'For a mellow Eastern glow'), + ('furni_gothic_stool*2_name', 'Golden Gothic Stool'), + ('roomevent_starttime', 'Started at:'), + ('furni_prize1_desc', 'Gorgeously glittery'), + ('furni_prizetrophy9*1_name', 'Champion trophy'), + ('wallitem_guitar_skull_desc', 'tilulilulaa'), + ('gs_title_bestplayer', 'Best player:'), + ('nav_removefavourites', 'Remove from favourites'), + ('furni_toy1_desc', 'it\'s bouncy-tastic'), + ('alert_shortenPW', 'Your password cannot be longer than 9 characters'), + ('normal_roomlayouts', '<< Back to normal room layouts'), + ('furni_noob_rug*1_name', 'My first Habbo rug'), + ('poster_58_name', 'Red knots poster'), + ('furni_divider_nor2*8_desc', 'Yellow Iced bar desk'), + ('furni_carpet_polar*1_name', 'Pink Faux-Fur Bear Rug'), + ('habboclub_continue_button', 'Buy one month'), + ('furni_divider_silo3_desc', 'Form following function'), + ('furni_sound_set_7_name', 'SFX 5'), + ('furni_soft_sofa_norja*5_desc', 'Pink Iced Sofa'), + ('furni_arabian_rug_desc', 'Green blossom design'), + ('restart_tutorial', 'Restart tutorial'), + ('gs_choose_numteams', 'Choose number of Teams:'), + ('hubu_info_t', 'The big FRANK Infobus'), + ('furni_divider_nor5*7_desc', 'Cool cornering for your crib!'), + ('furni_bed_polyfon*4_name', 'Beige Mode Double Bed'), + ('callhelp_allwillreceive', 'A member of community staff will investigate the situation and take appropriate action. This may include sending you a response with advice on dealing with your issue.'), + ('furni_pura_mdl4*4_name', 'White Pura Module 4'), + ('hubu_odotetaan', 'Waiting for replies from others...'), + ('furni_door_name', 'Telephone Box'), + ('furni_doormat_plain*5_desc', 'Available in a variety of colours'), + ('furni_gothic_carpet_desc', 'The path less travelled'), + ('poster_516_desc', 'Eng-er-land'), + ('furni_gothic_stool*6_desc', 'The dark side of Habbo'), + ('furni_traffic_light*3_desc', 'Chill and wait your turn!'), + ('furni_bartable_armas_desc', 'Bar-Style Table - essential for extra guests'), + ('club_isp_change', 'Change your subscription'), + ('furni_summer_grill*2_name', 'Red Barbeque Grill'), + ('poster_23_desc', 'flap, flap, screech, screech...'), + ('furni_prizetrophy7*3_desc', 'Bronze Habbo trophy'), + ('furni_couch_norja*2_name', 'Black Bench'), + ('nav_venue_cunning_fox_gamehall/0_desc', 'Pit your wits on the battlefield, the board or the baize - choose what to play here'), + ('furni_jp_tatami2_name', 'Large Tatami Mat'), + ('furni_pura_mdl3*3_desc', 'Any way you like it!'), + ('furni_house_name', 'Gingerbread House'), + ('furni_sound_set_54_name', 'Oh Blinging Tree'), + ('furni_table_plasto_4leg*1_name', 'Square Dining Table'), + ('furni_pillow*1_name', 'Pink Fluffy Pillow'), + ('NUF_console_hotelview_tutor', 'Oh! You have a message on your Habbo Console. Let\'s see who it is.'), + ('LoadingRoom', 'Loading room...'), + ('rotate', 'Rotate'), + ('nav_venue_sw_lobby_beginner_6_name', 'Snow Rookies Lobby'), + ('nav_venue_bb_lobby_amateur_1/0_desc', ''), + ('furni_jukebox_ptv*1_desc', 'Jukebox Pacha TV'), + ('nav_venue_star_lounge/0_desc', 'Chat with Sean Kingston here!'), + ('furni_chair_plasty*6_desc', 'Hip plastic furniture'), + ('nav_venue_bb_lobby_tournament_10/0_desc', ''), + ('NUF_mini_use_console_hotelview_tutor', 'Ah! You have a message on your Habbo Console. Let\'s see who it is.'), + ('furni_rare_xmas_screen_name', 'Lappland Greetings'), + ('summer_chair_9_name', 'Red Deck Chair'), + ('club_timefull', 'Sorry, you can only buy up to three months of Habbo Club subscription in advance.'), + ('poster_2002_desc', 'Presidentin muotokuva'), + ('poster_7_name', 'Hammer Cabinet'), + ('furni_gothic_chair*2_name', 'Golden Gothic Chair'), + ('bb_header_powerups', 'Powerups in game:'), + ('credit_redeem_url', 'http://%predefined%//help/19'), + ('furni_divider_silo3*2_name', 'Black Area Gate'), + ('furni_chair_plasto*16_name', 'Chair'), + ('catalog_itsurs', 'Yay! It\'s being delivered now..'), + ('hobba_pickandreply', 'Pick & Reply'), + ('reg_terms', 'Welcome to Habbo Hotel. If you are under 16, please check the Terms and Conditions with your parents/guardian before you agree to them. Get them to explain anything that you don\'t understand.\\rIn order to use the service you have to give valid information about yourself when registering. Please email us if any of your user information changes.\\rAs a user of Habbo Hotel - www.habbohotel.co.uk , you have to behave according to the Habbo Way (hotel rules) and the Terms and Conditions. Click the links below to read about them.\\rNever give your password or email address to anyone. If you do, your Habbo may get stolen.\\rRegistering with the hotel, making your own empty room and chatting is free of charge. For a small fee you can decorate your room with virtual furniture, play games and join the Habbo Club. If you wish to buy, you will need your parent\'s permission to do so.'), + ('furni_summer_pool*1_name', 'Blue Summer Pool'), + ('furni_heartsofa_desc', 'Perfect for snuggling up on'), + ('furni_scifiport*3_name', 'Jade Sci-Fi Port'), + ('furni_glass_chair*6_name', 'Blue Glass Chair'), + ('furni_sound_set_62_name', 'Alhambra Trax 1'), + ('win_voucher', 'Habbo Credit Code'), + ('furni_summer_chair*4_desc', 'White'), + ('furni_bed_polyfon_one_desc', 'Cot of the artistic'), + ('nav_venue_bb_lobby_tournament_5/0_desc', ''), + ('nav_venue_bb_lobby_beginner_3_name', 'Beginners Battle Ball 4'), + ('console_follow_not_friend', 'The user you tried to follow is not your friend anymore.'), + ('delete', 'Delete'), + ('furni_grunge_mattress_desc', 'Beats sleeping on the floor!'), + ('furni_rare_icecream*7_name', 'Chocolate Ice Cream Machine'), + ('sound_machine_alert_no_disks', 'You don\'t have any more discs!'), + ('furni_sofachair_silo_name', 'Armchair'), + ('nav_venue_sw_lobby_expert_0_name', 'Snow Marksmen Lobby'), + ('game_waitop', 'WAITING FOR THE OPPONENT'), + ('Alert_NameAlreadyUse', 'That name is already being used'), + ('furni_queue_tile1*1_desc', 'The power of movement'), + ('poster_18_name', 'Butterfly Cabinet 2'), + ('furni_wooden_screen*6_desc', 'Add an exotic touch to your room'), + ('furni_noob_table*2_name', 'My first Habbo table'), + ('furni_tree1_name', 'Dead tree'), + ('nav_venue_bouncer_room_0_name', 'Battle Ball Competitie Arena'), + ('furni_traffic_light*5_name', 'White Traffic Light'), + ('furni_sw_raven_name', 'Mrs Raven'), + ('cam_shoot.help', 'Shutter Release'), + ('furni_grand_piano*3_desc', 'Make sure you play in key!'), + ('nav_venue_sw_lobby_intermediate_2_name', 'Snow Bombardiers Lobby'), + ('interface_icon_purse', 'Purse, manage your coins'), + ('poll_alert_server_error', 'The poll isn\'t available anymore. Polls are only available at a certain public space for a certain duration.'), + ('sound_machine_confirm_delete_long', 'Are you sure you want to delete the selected song?'), + ('reg_check_confirm', 'Please check that your information is correct, especially your birthdate and Habbo name. You CANNOT change these later. If you want make any changes now, press the back button.'), + ('Alert_CheckBirthday', 'Please check your birthday'), + ('furni_shelves_norja*4_desc', 'For nic naks and tech books'), + ('club_expired_link', 'Click here to join Habbo Club'), + ('poster_520_desc', 'Every colour for everyone'), + ('nav_venue_bb_lobby_intermediate_desc', 'Intermediate battle ball!'), + ('tutorial_restart_button_bubble', 'Remember! Anytime you want to relive the fun click here to restart the tutorial!'), + ('poster_1_name', 'Comedy Poster'), + ('reg_verification_incorrectBirthday', 'Your birthday was incorrect'), + ('furni_glass_stool*6_name', 'Blue Glass Stool'), + ('furni_CFC_100_coin_gold_desc', 'Worth 100 Credits'), + ('buddyremove_list_full', 'Your friends list is full, you can\'t add new friends until you delete some. \\r\\The maximum number of friends you can have, is %mylimit% Habbos. Members of Habbo Club can have up to %clublimit% friends on their list.'), + ('furni_bunny_name', 'Squidgy Bunny'), + ('furni_small_chair_armas_name', 'Stool'), + ('nav_venue_sw_lobby_free_0/0_desc', ''), + ('furni_sofachair_silo*3_name', 'White Armchair'), + ('furni_sound_machine*2_desc', 'Dance to the Habbo Club beat!'), + ('nav_venue_gate_park/0_desc', 'Follow your path...'), + ('NUF_mini_use_console_hotelview_icon', 'Click the icon to open your Habbo Console.'), + ('nav_venue_eric\'s_eaterie/0_desc', 'Join Eric for a bite to eat'), + ('furni_table_silo_med*8_desc', 'Wipe clean and unobtrusive'), + ('poster_503_desc', 'There\'s no holes in this...'), + ('furni_bardeskcorner_polyfon*9_name', 'Red Corner Desk'), + ('furni_val_randomizer_desc', 'Surprise surprise! (Cilla Black not included)'), + ('furni_marquee*2_name', 'Red Dragon Marquee'), + ('furni_table_plasto_round_name', 'Round Dining Table'), + ('furni_summer_chair*3_name', 'Deck Chair'), + ('club_paycoins', 'Buy subscription'), + ('nav_venue_beauty_salon_general/0_desc', 'Join in the fun of Fashion Week! Check the homepage now for details.'), + ('furni_rare_dragonlamp*7_name', 'Sky Dragon Lamp'), + ('nav_venue_bb_lobby_beginner_6/0_desc', ''), + ('roomevent_quit', 'End event'), + ('console_search_habbo_lasthere', 'Last time'), + ('trading_title', 'Safe Trading'), + ('furni_glass_chair*7_desc', 'Habbo Club'), + ('gs_error_game_deleted', 'The Game has been deleted.'), + ('recycler_info_link_url', 'http://%predefined%/help/36'), + ('furni_pillar*6_name', 'Terracotta Pillar'), + ('furni_tile_stella_desc', '10% off the walk of fame!'), + ('transaction_system_sms_win_tmobile', 'T-Mobile SMS'), + ('buddyremove_names_ordered', 'Names Ordered By:'), + ('pet_race_2_010', 'Giggly Go-go'), + ('furni_table_plasto_bigsquare*6_name', 'Square Dining Table'), + ('pet_race_2_011', 'Petty Petsuchos'), + ('summer_chair_6_name', 'Blue Deck Chair'), + ('console_now', 'now:'), + ('gs_skill_changed', 'You have advanced to the next skill level. Your level is now %1!'), + ('roomatic_goyourroom', 'Go to your room'), + ('furni_carpet_soft*4_name', 'Soft Wool Rug'), + ('sound_machine_confirm_close_list', 'Close playlist editor?'), + ('pet.hotwords.good', 'good'), + ('furni_pura_mdl4*7_desc', 'Any way you like it!'), + ('furni_carpet_soft*1_name', 'Soft Wool Rug'), + ('furni_sound_set_22_desc', 'With a hamper full of sounds, not sarnies'), + ('nav_venue_sw_lobby_tournament_7_name', 'Tournament Lobby'), + ('furni_divider_nor3*6_desc', 'Blue Iced gate'), + ('furni_carpet_standard*3_name', 'Floor Rug'), + ('people', 'People'), + ('pet_race_2_007', 'Pretty Pui Pui'), + ('pet_race_2_008', 'Indifferent'), + ('pet_race_2_009', 'Swampy Siamese'), + ('furni_wcandle_name', 'White Candle'), + ('furni_sporttrack1*1_desc', 'null'), + ('furni_solarium_norja*1_name', 'Black Solarium'), + ('NUF_playing_games_gamecategories_tutor', 'Click the Beginner category to open it wide open. Like a melon!'), + ('pet_race_2_003', 'Silly Sobek'), + ('pet_race_2_004', 'Dirty Dundee'), + ('pet_race_2_005', 'Galled Gator'), + ('int_credits', 'Credits'), + ('furni_gothrailing_name', 'Gothic Railing'), + ('furni_sporttrack2*2_desc', 'null'), + ('pet_race_2_006', 'Confused Croc'), + ('furni_shelves_polyfon_name', 'Bookcase'), + ('pet_race_2_000', 'Endangered Albino'), + ('pet_race_2_001', 'Krazy Krokodilos'), + ('pet_race_2_002', 'Nile Dile'), + ('furni_divider_nor2*2_desc', 'Black Iced bar desk'), + ('log_problem_text', 'Oops.. Cannot connect to Habbo Hotel'), + ('furni_divider_nor2*5_desc', 'Pink Iced bar desk'), + ('nav_venue_sw_lobby_amateur_6/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_rare_fountain_desc', 'For our feathered friends'), + ('furni_glass_sofa*5_name', 'Glass sofa'), + ('poster_33_desc', 'We can\'t bear to lose them'), + ('nav_venue_bb_lobby_tournament_14/0_desc', ''), + ('furni_summer_chair*6_name', 'Deck Chair'), + ('furni_hcsohva_desc', 'For royal bottoms...'), + ('furni_bed_budget*4_desc', 'King sized comfort!'), + ('furni_christmas_poop_desc', 'Bob?s magical fertilizer'), + ('furni_pura_mdl5*7_name', 'Green Pura Module 5'), + ('furni_barrier*1_desc', 'No escape this way!'), + ('nav_venue_bb_lobby_amateur_8/0_desc', ''), + ('furni_divider_arm2_desc', 'I wooden go there'), + ('furni_chair_plasty*11_desc', 'Hip plastic furniture'), + ('furni_small_table_armas_desc', 'Practical and beautiful'), + ('nav_venue_theatredrome_xmas_name', 'Theatredrome Xmas'), + ('poster_62_name', 'Save The Panda'), + ('reg_verification_currentPassword', 'Current password:'), + ('game_poker_change', 'Choose cards to change'), + ('NUF_getting_items_hotelview_nav', 'Click here to open the Navigator'), + ('furni_chair_basic*9_name', 'Red Pura Egg Chair'), + ('friend_request_failed', 'Failed!'), + ('furni_noob_chair*4_desc', 'Lightweight, practical, with light blue stripes'), + ('furni_table_silo_small*9_desc', 'Red Area Occasional Table'), + ('nav_hotelview', 'Hotel view'), + ('furni_toy1*3_desc', 'it\'s bouncy-tastic'), + ('furni_divider_nor3*2_name', 'Black Iced gate'), + ('furni_chair_silo*6_name', 'Blue Silo Dining Chair'), + ('update_password_suggest', 'Habbo Hotel security supervisor requests you to update your password'), + ('nav_venue_orient_name', 'Club Orient'), + ('Alert_NameTooLong', 'Sorry, that username is too long!'), + ('furni_sound_set_37_name', 'Sound set 37'), + ('furni_barchair_silo*7_desc', 'Practical and convenient'), + ('wallitem_wallmirror_name', 'Wallmirror'), + ('furni_chair_plasty*8_name', 'Plastic Pod Chair'), + ('sound_machine_confirm_close_list_long', 'Are you sure you want to exit playlist editor without saving?'), + ('furni_hc_frplc_name', 'Heavy Duty Fireplace'), + ('dance4', 'The Rollie'), + ('dance3', 'Duck Funk'), + ('furni_glass_stool*9_name', 'Glass stool'), + ('furni_sound_set_55_desc', 'Can you fill me in?'), + ('furni_carpet_standard*7_desc', 'Available in a variety of colours'), + ('poster_4_name', 'Bear Plaque'), + ('cam_zoom_out.help', 'Zoom Out'), + ('furni_sofa_polyfon*2_name', 'Black Mode Sofa'), + ('furni_prizetrophy2*1_name', 'Duck trophy'), + ('furni_scifirocket*3_desc', 'Caution! Unknown Location!'), + ('NUF_getting_items', 'Getting items'), + ('furni_val_teddy*1_desc', 'The grey bear of affection'), + ('furni_sofachair_polyfon*7_name', 'Green Mode Armchair'), + ('club_habbo.bottombar.link.member', '%days% days'), + ('habboclub_confirm_header', 'Subscription costs %price% credits'), + ('furni_rare_daffodil_rug_desc', 'A little bit of outdoors indoors..'), + ('poster_15_name', 'Himalayas Poster'), + ('furni_smooth_table_polyfon_desc', 'For larger gatherings'), + ('dance2', 'Pogo Mogo'), + ('furni_wooden_screen*3_name', 'Aqua Oriental Screen'), + ('furni_plant_cruddy_desc', 'Goodbye Bert...'), + ('dance1', 'Hab-Hop'), + ('furni_gothic_chair*6_desc', 'The dark side of Habbo'), + ('furni_table_plasto_square*9_name', 'Square Dining Table'), + ('nav_venue_bb_lobby_beginner_14/0_desc', ''), + ('furni_club_sofa_desc', 'Club sofa'), + ('roomevent_default_name', 'Event name..'), + ('game_poker_ok', 'Change cards'), + ('nav_venue_picnic_dudesons/0_desc', 'Duudsoneiden sponssaama oma Ranchi - www.extremeduudsonit.com'), + ('nav_venue_hallway/0_desc', 'Beware the ghosts and ghouls!'), + ('nav_venue_park/0_desc', 'Go for a stroll outdoors'), + ('console_fr_declined_count', 'Amount to be declined'), + ('furni_tree4_name', 'Christmas Tree 2'), + ('NUF_console_read_link', 'Click the link to open the message.'), + ('win_figurecreator', 'Habbo Details'), + ('furni_table_plasto_square*14_name', 'Occasional Table'), + ('furni_soft_sofachair_norja*6_desc', 'Blue Iced Sofachair'), + ('nav_venue_bb_lobby_beginner_0_name', 'Beginner'), + ('Alert_LogoNameAlreadyUse', 'That name is already being used'), + ('poster_25_name', 'Snowman Poster'), + ('furni_pura_mdl2*2_name', 'Pink Pura Module 2'), + ('furni_chair_plasto*13_name', 'Chair'), + ('furni_ticket_name', 'Small Ticket Bundle'), + ('furni_hc_lmpst_name', 'Victorian Street Light'), + ('furni_scifiport*7_desc', 'Energy beams. No trespassers!'), + ('jukebox_load_trax', 'Load Trax'), + ('furni_val_teddy*4_desc', 'The brown bear of naughtiness'), + ('reg_birthdayformat_update', 'Birthday (dd.mm.yyyy)'), + ('nav_venue_the_chromide_club_name', 'The Chromide Club'), + ('roomevent_not_available', 'Sorry, no events available'), + ('nav_venue_sw_lobby_beginner_0/0_desc', ''), + ('summer_chair_3_name', 'Black Deck Chair'), + ('int_newrequests', 'Friend Request(s)'), + ('console_profile_helptext', 'The Habbo Profile is a snapshot of your interests and hobbies - simply tick the things you like.'), + ('nav_roomnfo_hd_fav', 'Favourite Rooms'), + ('furni_chair_plasto*3_desc', 'Hip plastic furniture'), + ('furni_chair_basic*6_name', 'Blue Pura Egg Chair'), + ('number_4', '4'), + ('number_3', '3'), + ('number_2', '2'), + ('room_open_package', 'Open The Present'), + ('furni_grunge_barrel_name', 'Flaming Barrel'), + ('wallitem_photo_desc', 'Photo from Habbo'), + ('poster_30_desc', 'Pucker up'), + ('furni_glass_table*9_desc', 'Translucent beauty'), + ('nav_venue_sw_lobby_beginner_3_name', 'Snow Rookies Lobby'), + ('Alert_YouAreBanned', 'You have been banned for breaking the Habbo Way. This is why (if no ban reason is shown use the Contact Us form):'), + ('furni_gothic_sofa*2_name', 'Golden Gothic Sofa'), + ('NUF_getting_items_hotelview_tutor', 'Let us find out how to purchase items from the Hotel Catalogue. The Catalogue contains loads of cool stuff to decorate your Habbo room with. To begin open the Navigator.'), + ('furni_table_norja_med*2_desc', 'For larger gatherings'), + ('furni_sofa_silo*3_name', 'White Two-Seater Sofa'), + ('furni_pura_mdl5*5_desc', ''), + ('nav_venue_sw_lobby_beginner_desc', 'Yes, take a load of snowballs and hit the enemy Teams. Easy, isn\'t it?'), + ('furni_romantique_smalltabl*5_name', 'Onyx Tray Table'), + ('furni_divider_nor4_desc', 'Habbos, roll out!'), + ('furni_shelves_norja*7_desc', 'For nic naks and cookery books'), + ('nav_venue_sw_lobby_intermediate_4/0_desc', 'Lumisota sen kuin vain kovenee.'), + ('gs_text_spectate', 'You can watch this game'), + ('recycler_info_link', 'More information about Furni Recycler'), + ('furni_sofachair_polyfon_name', 'Armchair'), + ('club_intro_text', 'Members of Habbo Club get LOTS of cool stuff!\\rWith Habbo Club you get cool dances, access to Club Mammoth and The Blue Dragon Tavern, and a 500 limit on your friends list!'), + ('furni_divider_nor1*7_desc', 'The missing piece'), + ('url_helppledge', 'http://%predefined%//help/22'), + ('jukebox_song_name', '%name%'), + ('game_bs_won', 'WON!'), + ('furni_soft_jaggara_norja_name', 'Iced Sofachair'), + ('furni_rare_beehive_bulb_desc', 'A honey-hued glow'), + ('furni_chair_norja*8_name', 'Yellow Chair'), + ('poster_83_desc', 'Pöllö huhuilee, huhuu!'), + ('floodblocking', 'You are typing too fast - don\'t flood the room.'), + ('furni_CF_5_coin_silver_desc', 'Worth 5 Credits'), + ('sound_machine_confirm_clear', 'Clear the song?'), + ('furni_carpet_standard*6_name', 'Floor Rug'), + ('furni_waterbowl*2_desc', 'Aqua unlimited'), + ('sw_link_tournament_highScores_url', 'http://%predefined%//groups/56553/id'), + ('NUF_meeting_people_room_tutor', 'This is a Public Room. Your Habbo is in the doorway beneath the orange arrow. Click on another user to find out more about them.'), + ('furni_bottle_name', 'Empty Spinning Bottle'), + ('poster_512_name', 'The Irish flag'), + ('club_info_url', 'http://%predefined%//credits/habboclub'), + ('nav_venue_tv_studio_nike/0_desc', ''), + ('furni_couch_norja*6_desc', 'Two can perch comfortably'), + ('furni_pura_mdl5*8_desc', 'Any way you like it!'), + ('furni_carpet_valentine_desc', 'For making an appearance'), + ('furni_floortile_desc', 'In Variety of Colours'), + ('furni_pillar*9_name', 'Rock Pillar'), + ('furni_table_plasto_bigsquare*3_name', 'Square Dining Table'), + ('furni_bardeskcorner_polyfon*12_name', 'Corner Cabinet/Desk'), + ('furni_divider_nor1*4_desc', 'The missing piece'), + ('furni_chair_plasty*5_name', 'Plastic Pod Chair'), + ('furni_scifirocket*0_desc', 'See in 2007 with a bang!'), + ('poster_32_name', 'Siva Poster'), + ('club_button_2_period', 'Buy 3 >>>'), + ('furni_sound_set_58_desc', 'Sh-shake it!'), + ('furni_china_shelve_desc', 'To hold the mind\'s treasures'), + ('furni_scifidoor*7_desc', 'There out of this world!'), + ('furni_chair_silo*9_name', 'Red Silo Dining Chair'), + ('furni_gothic_stool*5_name', 'Green Gothic Stool'), + ('friend_request_massoperation_cancel', 'Back to request list.'), + ('furni_queue_tile1*0_name', 'White Quest Roller'), + ('furni_divider_nor3*5_name', 'Pink Iced gate'), + ('furni_sound_machine*5_desc', 'Heard the Habbo Bands new singles?'), + ('furni_glass_table*6_desc', 'Translucent beauty'), + ('furni_soft_sofachair_norja*9_desc', 'Red Iced Sofachair'), + ('furni_plant_mazegate_desc', 'Did we make it?'), + ('tickets_info_1', 'With 2 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_barchair_silo*4_desc', 'Practical and convenient'), + ('furni_CF_10_coin_gold_name', 'Gold Coin'), + ('tickets_info_2', 'With 20 tickets you can play the following Games:\\r10 BattleBall:Rebound!\\r10 SnowStorm\\r20 Wobble Squabble or\\r20 Lido Diving'), + ('furni_sound_set_15_desc', 'Unadulterated essentials'), + ('handitem1', 'Tea'), + ('furni_romantique_divan*3_desc', 'null'), + ('furni_glass_sofa*8_name', 'Glass sofa'), + ('epsnotify_1001', 'The hotel is full at the moment. Please try again in a few minutes.'), + ('furni_table_silo_med*2_name', 'Black Coffee Table'), + ('furni_sleepingbag*7_name', 'Orange Sleeping Bag'), + ('furni_pillow*5_desc', 'Puffy, soft and huge'), + ('furni_bed_budget*1_desc', 'King sized comfort!'), + ('furni_bed_trad_one_name', 'Plain Single Bed'), + ('catalog_giftfor', 'This is a gift for:'), + ('furni_theatre_seat_name', 'Deluxe Theatre Chair'), + ('furni_romantique_divider*3_name', 'Turquoise Screen'), + ('furni_shelves_silo_desc', 'For nic naks and art deco books'), + ('handitem9', 'Decaff'), + ('handitem8', 'Regular'), + ('handitem7', 'Water'), + ('furni_glass_table_name', 'Glass table'), + ('console_selection_invert', 'Invert selection'), + ('handitem6', 'Blackcurrant'), + ('furni_hc_machine_desc', 'By and for mad inventors'), + ('handitem5', 'Milk'), + ('handitem4', 'Ice-cream'), + ('poster_40_desc', 'The one and only. Adore her!'), + ('nav_venue_sw_lobby_tournament_9/0_desc', ''), + ('handitem3', 'Carrot'), + ('handitem2', 'Juice'), + ('furni_cn_sofa_name', 'Chinese Sofa'), + ('nav_venue_bb_lobby_expert_4/0_desc', ''), + ('poster_502_name', 'The Stars and Stripes'), + ('furni_md_rug_name', 'Bubble Juice Floor'), + ('furni_table_plasto_bigsquare_name', 'Square Dining Table'), + ('furni_bed_polyfon*8_desc', 'Yellow Mode Double Bed'), + ('nav_venue_sw_lobby_amateur_7_name', 'Snow Slingers Lobby'), + ('furni_birdie_desc', 'Cheep (!) and cheerful'), + ('poster_12_name', 'Lapland Poster'), + ('club_desc_1_period', '1 Month (31 days) = 25 Credits'), + ('hobba_emergency_help', 'Call For Emergency Help:'), + ('reg_age_check_note', 'Enter your birthday. You will need your birthday information when changing your password or email.'), + ('furni_table_plasto_square*6_name', 'Square Dining Table'), + ('trade', 'Trade'), + ('furni_romantique_smalltabl*3_desc', 'Every tray needs a table...'), + ('reg_back', 'Back'), + ('furni_tree7_name', 'Snowy Christmas Tree'), + ('recycler_trader_open_alert', 'Recycling cannot begin while you are trading. Please close the safe trading box before recycling.'), + ('furni_rare_dragonlamp*8_desc', 'Scary and scorching!'), + ('furni_gothic_chair*3_desc', 'The head of the table'), + ('Alert_YourNameIstooShort', 'Habbo names must be at least 3 characters long.'), + ('furni_bed_budgetb_desc', 'Sweet dreams for two'), + ('furni_shelves_basic_name', 'Pura Shelves'), + ('console_messagemode_helptext', 'You can send an instant message to your Habbo Friends.'), + ('nav_venue_cunning_fox_gamehall/5_desc', 'Get a hand like a foot? Keep a straight face and bluff it out'), + ('furni_table_polyfon_small_name', 'Small Coffee Table'), + ('move_furniture', 'Move Furni'), + ('nav_searchbutton', 'Search'), + ('furni_habboween_grass_desc', 'Autumnal chills with each rotation!'), + ('furni_pura_mdl5*2_desc', 'Any way you like it!'), + ('NUF_meeting_people_user_tutor', 'The user you clicked on is shown in the corner of your screen. The buttons beneath the Habbo let you visit their Habbo Home, send them a Friend Request or ignore them if they look or act like a moron.'), + ('poster_55_name', 'Tree of Time'), + ('furni_soft_sofachair_norja*5_name', 'Pink Iced Sofachair'), + ('furni_sound_set_48_name', 'Club 3'), + ('furni_table_plasto_4leg_desc', 'Hip plastic furniture'), + ('furni_pura_mdl4*1_name', 'Aqua Pura Module 4'), + ('login_forgottenPassword_url', 'https://www.habbo.co.uk/account/password/forgot'), + ('nav_venue_floatinggarden/0_desc', 'Peace, tranquility and still waters'), + ('furni_sound_set_36_desc', 'For adult minded'), + ('poster_43_desc', 'Shake, rattle and roll'), + ('furni_gothic_stool*3_desc', 'The dark side of Habbo'), + ('room_alert_furni_limit', 'This room has the maximum amount of Furni.'), + ('furni_table_plasto_square*15_name', 'Occasional Table'), + ('furni_rare_hammock_name', 'Hammock'), + ('sound_machine_confirm_burn_long', 'Are you sure you want to burn this song to disc? Burning costs one credit.'), + ('furni_rclr_chair_desc', 'Watch out for coconuts'), + ('furni_chair_basic*3_desc', 'It\'s a cracking design!'), + ('furni_doormat_plain*6_name', 'Doormat'), + ('furni_sofachair_polyfon*9_name', 'Red Armchair'), + ('furni_jp_tray6_name', 'jp_tray6'), + ('furni_habbocake_name', 'Cake'), + ('poster_501_name', 'Jolly Roger'), + ('nav_goingprivate', 'Going to Guest room'), + ('furni_bed_budget_one*9_name', 'Red Pura Bed'), + ('alert_no_category', 'Your room has no category. Select one from the list.'), + ('nav_venue_theatredrome_easter/0_desc', ''), + ('gs_button_buytickets', 'Buy Tickets'), + ('nav_venue_bouncer_room_4_name', 'Experts Battle Ball Arena'), + ('close', 'Close'), + ('furni_carpet_standard*9_desc', 'Available in a variety of colours'), + ('furni_prizetrophy4*1_desc', 'Glittery gold'), + ('help_pointer_1', 'http://www.habbo.co.uk/help/'), + ('help_pointer_3', 'emergency_help'), + ('furni_rclr_lamp_name', 'Moon Lamp'), + ('help_pointer_2', 'http://www.habbohotel.co.uk/iot/go?lang=en&country=uk'), + ('furni_exe_sofa_desc', 'Relaxing leather comfort'), + ('furni_divider_silo1*4_name', 'Beige Area Corner Shelf'), + ('poster_2001_name', 'SeinNightitititititdiskotappaja'), + ('interface_icon_tv_close', 'Leave the Room and close the Habbovision mode.'), + ('furni_sound_machine*7_name', 'Red Traxmachine'), + ('game_bs_hit', 'A Hit!:'), + ('furni_rare_fan*2_desc', 'It\'ll blow you away!'), + ('win_place', 'Note!'), + ('nav_venue_bb_lobby_beginner_11_name', 'Beginners Battle Ball 12'), + ('furni_pillow*7_desc', 'Bonnie\'s pillow of choice!'), + ('furni_table_silo_small*8_desc', 'For those random moments'), + ('furni_divider_nor4*5_desc', 'Habbos, roll out!'), + ('hubu_vastaa', 'Answer the question'), + ('furni_pura_mdl4*8_name', 'yellow pura module 4'), + ('furni_glass_chair*9_name', 'Glass chair'), + ('furni_chair_silo*7_desc', 'Green Silo Dining Chair'), + ('furni_jp_drawer_desc', 'Spiritual home for odds and ends'), + ('tutorial_select_another_topic', 'Select another topic'), + ('furni_noob_lamp*4_desc', 'Get the light right where you want it (light blue)'), + ('nav_venue_beauty_salon_general_name', 'Beauty salon'), + ('furni_sofachair_polyfon*2_name', 'Black Mode Armchair'), + ('console_report_header', 'Report Abusive Message'), + ('club_buy_url', 'http://%predefined%//credits/habboclub'), + ('furni_prizetrophy*2_name', 'Classic trophy'), + ('furni_rare_icecream*4_name', 'Strawberry Ice Cream Machine'), + ('furni_barchair_silo*5_desc', 'Practical and convenient'), + ('furni_divider_nor2*4_desc', 'No way through'), + ('furni_xmas_cstl_gate_name', 'Ice Castle Gate'), + ('furni_noob_stool*5_desc', 'Unfold me and take the weight off (pink)'), + ('furni_bed_budgetb_one_name', 'Plain Single Bed'), + ('friend_request_accept_all', 'Accept all requests.'), + ('furni_val_choco_name', 'Heart Shaped Box'), + ('poster_514_desc', 'Be proud to be in the Union!'), + ('furni_carpet_legocourt_desc', 'Line up your slam dunk'), + ('furni_sofa_silo_name', 'Two-Seater Sofa'), + ('furni_chair_plasto*8_desc', 'Hip plastic furniture'), + ('furni_tree5_name', 'Christmas Tree 3'), + ('nav_venue_habbo_cinema/0_desc', 'Now showing: Kick Warz II - The revenge of Donnie Santini!'), + ('furni_couch_norja*4_name', 'Urban Iced Bench'), + ('poster_52_desc', 'whack that ball!'), + ('furni_sound_set_45_desc', 'The Bass? is the rhythm!'), + ('nav_venue_sun_terrace/0_name', 'Sun Terrace'), + ('queue_tile_limit', 'You can\'t fit more Habbo Rollers in this room!'), + ('BuddyRequesta', 'Friend Request(s)'), + ('transaction_system_sms_rl', 'Elisa'), + ('furni_prizetrophy4_desc', 'Palkinto'), + ('furni_hcamme_desc', 'Time for a soak'), + ('furni_scifirocket*2_name', 'Earth Smoke Machine'), + ('furni_divider_nor5*2_desc', 'Cool cornering for your crib y0!'), + ('forgottenpw', 'Forgotten your password?'), + ('furni_rclr_sofa_desc', 'Snuggle up together'), + ('furni_val_cauldron_desc', 'Cast a loving spell!'), + ('poster_3_name', 'Fish Plaque'), + ('furni_one_way_door*8_name', 'Yellow One Way Gate'), + ('furni_divider_nor3*8_desc', 'Yellow Iced gate'), + ('sw_link_highScores_url', 'http://%predefined%//groups/56553/id'), + ('furni_carpet_standard*2_desc', 'Available in a variety of colours'), + ('nav_venue_sport/0_name', 'The Power Gym'), + ('furni_scifidoor*3_desc', 'There out of this world!'), + ('furni_pillar*7_desc', 'Recovered from Habblantis'), + ('furni_arabian_tray3_name', 'Sweets Tray'), + ('furni_chair_plasto_name', 'Chair'), + ('nav_venue_pizza_name', 'Slice of Life'), + ('url_privacypledge', 'http://%predefined%//help/69'), + ('furni_one_way_door*3_desc', 'One way! The HC way!'), + ('catalog_purchase_not_allowed_hc', 'In order to buy this item you must be a Habbo Club member!'), + ('furni_pura_mdl3*4_name', 'White Pura Module 3'), + ('room_confirmDelete', 'Confirm'), + ('BuddyPrivateRoom', 'In A Guest Room'), + ('furni_marquee*7_desc', 'It\'s both door and a shade!'), + ('furni_bath_desc', 'The ultimate in pampering'), + ('furni_soft_sofa_norja*3_desc', 'Pristine white, keep it clean!'), + ('game_BattleShip', 'Battleships'), + ('furni_sound_set_11_desc', 'Music you can really sink your teeth into'), + ('furni_glass_chair*2_name', 'Glass chair'), + ('furni_sofa_silo*5_desc', 'Pink Area Sofa'), + ('furni_pura_mdl2*7_name', 'Green Pura Module 2'), + ('cam_film.help', 'Number Of Photos Left'), + ('nav_venue_bb_lobby_tournament_17/0_desc', ''), + ('roomatic_hway', 'Hotel guests are expected to follow the Habbo Way even if word filtering is switched off.'), + ('modify', 'Modify'), + ('furni_sofachair_silo*8_name', 'Yellow Armchair'), + ('alert_reg_blocked', 'A person under 11 years of age has tried to register from this machine recently.\\rRegistration is not possible for a while.'), + ('furni_sofa_polyfon*8_desc', 'Yellow Mode Sofa'), + ('furni_wooden_screen*9_desc', 'Add an exotic touch to your room'), + ('hobba_message_from', 'Your call has been responded to as follows:'), + ('win_help', 'Habbo Help'), + ('pet.saying.sniff.dog.1', 'snuh...SNUUUUUH'), + ('pet.saying.sniff.dog.0', 'snuuh..snuuh'), + ('sw_user_skill', 'Snow Storm Skill Level: \\x \\r (\\y points)'), + ('furni_rom_lamp_desc', 'Light up your life'), + ('console_profile_create', 'Create your Habbo Profile.'), + ('furni_CF_50_goldbar_desc', 'Worth 50 Credits'), + ('furni_romantique_chair*4_desc', 'What does this button do?'), + ('reg_use_allowed_chars', 'Use only these characters:'), + ('furni_bar_chair_armas_name', 'Barrel Stool'), + ('pet.saying.sniff.dog.2', '*sighs*'), + ('furni_sound_set_64_name', 'Alhambra Trax 3'), + ('furni_pillar*3_name', 'blue pillar'), + ('furni_glass_chair*4_desc', 'Translucent beauty'), + ('furni_pizza_desc', 'You dirty Habbo'), + ('opening_hours_text_shutdown', 'The Hotel will shut down in %d% minutes. To avoid confusion, purchasing of furniture, Habbo Club and game tickets will be disabled during that time, as well as playing Games and furniture trading. Thank you for visiting and welcome back tomorrow!'), + ('nav_venue_bb_lobby_tournament_10_name', 'Competitie Battle Ball 11'), + ('poster_521_desc', 'Ordem e progresso'), + ('furni_sound_set_52_desc', 'Under the mistletoe!'), + ('furni_shelves_norja*3_name', 'White Iced Bookcase'), + ('furni_scifiport*5_desc', 'Recovered from Roswell'), + ('help_emergency_writeyour', 'Give details of your emergency here:'), + ('furni_table_norja_med*6_name', 'Large Coffee Table Blue'), + ('nav_venue_bb_lobby_expert_3_name', 'Experts Battle Ball 4'), + ('photo_legend', 'Caption'), + ('furni_sofachair_silo_desc', 'Large, but worth it'), + ('console_youdonthavebuddies', 'You have no Friends on your list.\\rYou can send Friend Requests using\\rthe \'search\' button.'), + ('furni_table_plasto_4leg*6_name', 'Occasional table Table'), + ('furni_scifidoor*1_name', 'Pink Spaceship Door'), + ('furni_tile_brown_desc', '10% off downtown promenades & piazzas!'), + ('NUF_getting_room_go_button', 'Click here to go to your just created room!'), + ('dimmer_turn_on', 'Turn ON'), + ('furni_sofa_polyfon_desc', 'Comfort for stylish couples'), + ('furni_sound_set_50_name', 'Club 5'), + ('furni_doorB_name', 'Wardrobe'), + ('reg_agree1', 'Yes, my parents and I agree to the above terms. I am allowed to use Habbo Hotel.'), + ('furni_chair_silo*3_name', 'White Dining Chair'), + ('furni_CF_1_coin_bronze_desc', 'Worth 1 Credits'), + ('reg_agree2', 'Yes, I have read the Habbo Hotel Terms of Service and I accept them'), + ('you_have_pending_cfh', 'Your previous call for help has not been answered yet. To make a new one you must delete the old message.'), + ('furni_table_plasto_bigsquare*7_name', 'Square Dining Table'), + ('console_accept', 'Accept'), + ('furni_lamp_basic_name', 'Pura Lamp'), + ('console_friend_request_error', 'There was an error with friend requests'), + ('poster_11_desc', 'I obey the Habbo way!'), + ('furni_bardeskcorner_polyfon*6_name', 'Blue Mode Bardesk Corner'), + ('furni_plant_sunflower_name', 'Cut Sunflower'), + ('furni_traffic_light*3_name', 'Purple Traffic Light'), + ('furni_bed_polyfon_one*8_name', 'Yellow Mode Single Bed'), + ('furni_carpet_polar*1_desc', 'Cute'), + ('furni_noob_rug*1_desc', 'Nice and neat sisal rug with orange edging'), + ('furni_exe_bardesk_desc', 'Divide the profits!'), + ('furni_romantique_divider*4_desc', 'Keeping things separated'), + ('pet_status_dialog', '%name%'), + ('furni_jp_lantern_name', 'Japanese Lantern'), + ('furni_chair_norja*2_name', 'Black Chair'), + ('furni_jp_irori_desc', 'Traditional heating and eating'), + ('furni_bed_budget*5_name', 'Beige Pura Double Bed'), + ('furni_scifidoor*8_name', 'Purple Spaceship Door'), + ('nav_venue_sw_lobby_free_5_name', 'Free Game Lobby'), + ('wallitem_jp_sheet2_desc', 'jp_sheet2'), + ('furni_glass_sofa*9_desc', 'Translucent beauty'), + ('furni_divider_nor5*7_name', 'Rural Iced Angle'), + ('sound_machine_open_editor', 'Trax Editor'), + ('furni_jp_tatami2_desc', 'Shoes off please'), + ('furni_sound_set_16_name', 'Hip Hop Beats 3'), + ('console_recipients', 'Recipient(s)'), + ('catalog_page', 'page'), + ('poster_23_name', 'Bat Poster'), + ('furni_table_plasto_round*4_name', 'Square Dining Table'), + ('furni_rubberchair*2_desc', 'Soft and tearproof!'), + ('nav_venue_bb_lobby_beginner_16/0_desc', ''), + ('poster_1005_name', 'Johnny Squabble'), + ('furni_silo_studydesk_name', 'Area Quest Desk'), + ('furni_table_plasto_4leg*1_desc', 'Hip plastic furniture'), + ('nav_venue_basement_lobby/0_desc', 'For low level hanging'), + ('furni_rare_parasol*3_desc', 'Block those rays!'), + ('furni_arabian_wndw_name', 'Arabian Window Frame'), + ('Alert_ConnectionFailure', 'Disconnected'), + ('furni_house_desc', 'Good enough to eat'), + ('console_confirm_selected', 'Confirm the selections. Below are the amount of friend requests that will be accepted and declined. If you want, you can still modify the selections.'), + ('furni_table_plasto_4leg*4_name', 'Square Dining Table'), + ('furni_sound_set_57_name', 'RnB Grooves 3'), + ('hubu_h3', 'Huumetietobussi'), + ('furni_table_plasto_bigsquare*2_name', 'Square Dining Table'), + ('hubu_h4', 'Anna palautetta'), + ('hubu_h1', 'Puhelintuki'), + ('roomatic_bobbafilter', 'Bobba filter (filters out bad language)'), + ('hubu_h2', 'Harrastamaan!'), + ('furni_tv_luxus_desc', 'Bang up to date'), + ('hubu_h5', 'Huumetietoa'), + ('NUF_console_hotelview_icon', 'Click the button to open your Habbo Console.'), + ('modtool_banlength', 'Ban Length:'), + ('NUF_visiting_rooms_roomlist_tutor', 'Just pick any room you like. Click on the room to see a description of the room. ROOM!'), + ('reg_verification_newPassword', 'New password:'), + ('furni_wall_china_name', 'Dragon Screen'), + ('nav_venue_hallway_ii/0_desc', 'Beware witches and warlocks'), + ('jukebox_disk_add', 'Add Disc'), + ('furni_rare_xmas_screen_desc', 'Ho Ho Ho!'), + ('furni_table_plasto_round*2_name', 'Round Dining Table'), + ('furni_rubberchair*7_name', 'White Inflatable Chair'), + ('nav_favourites_helptext', 'These are your favourite rooms. Nice selection you have here...'), + ('nav_venue_sw_lobby_beginner_4_name', 'Snow Rookies Lobby'), + ('furni_gothic_chair*2_desc', 'The prince of Habbo'), + ('cam_save_nofilm', 'You have run out of film.\\rGet a roll (5 photos) from\\rthe Catalogue for 6 Credits.'), + ('furni_sofa_polyfon*6_desc', 'Blue Mode Sofa'), + ('furni_divider_silo3*2_desc', 'Form following function'), + ('furni_rare_beehive_bulb*1_name', 'Red Amber Lamp'), + ('furni_plant_small_cactus_desc', 'Even less watering than the real world'), + ('furni_triplecandle_name', 'Electric Candles'), + ('help_option_1', 'Playing Habbo'), + ('help_option_3', 'A serious issue (harassment, sexual behaviour)'), + ('furni_present_gen5_name', 'Gift'), + ('help_option_2', 'My Habbo account.'), + ('furni_shelves_norja*8_name', 'Yellow Bookcase'), + ('furni_legotrophy_desc', 'For the winning team'), + ('furni_rare_icecream*2_name', 'Pistachio Ice Cream Machine'), + ('furni_summer_pool*1_desc', 'Fancy a dip?'), + ('nav_venue_theatredrome_deli/0_desc', 'Join in all the fun of the fair!'), + ('game_newgame', 'New game'), + ('help_tour', 'Guided Tour'), + ('purse_vouchers_error3_url', 'http://%predefined%//credits'), + ('furni_marquee*5_name', 'Graphite Marquee'), + ('forgottenpw_explanation', 'If you have forgotten your password and you gave your correct email address when you registered, we can send your password to you.'), + ('furni_waterbowl*3_name', 'Yellow Water Bowl'), + ('roomatic_namedisp', 'Do you want your name to be displayed with the room?'), + ('poster_28_name', 'Silver Tinsel Bundle'), + ('Alert_BuyingOK', 'Buying Successful!'), + ('furni_summer_chair*4_name', 'Deck Chair'), + ('nav_venue_welcome_lounge_ii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('bb_title_gameCreation', 'Aloita uusi peli!'), + ('furni_sporttrack1*3_name', 'Sport track straight grass'), + ('furni_romantique_divan*2_name', 'Emerald Chaise-Longue'), + ('furni_divider_silo1*6_name', 'Blue Area Corner Shelf'), + ('NUF_about_hotel_about_tutor', 'Habbo is both a virtual world and an online community.'), + ('url_helpparents', 'http://%predefined%//help/73'), + ('furni_divider_silo3*7_name', 'Green Area Gate'), + ('poster_18_desc', 'Beautiful reproduction butterfly'), + ('furni_traffic_light*5_desc', 'Chill and wait your turn!'), + ('furni_scifirocket*6_desc', 'Too hot to handle!'), + ('pet.saying.angry.cat.0', 'Sssppp!'), + ('furni_bed_armas_one_desc', 'Rustic charm for one'), + ('pet.saying.angry.cat.3', '*hiss*'), + ('pet.saying.angry.cat.1', 'MrrRRRR'), + ('pet.saying.angry.cat.2', 'Tssssss!'), + ('furni_noob_rug*6_name', 'My first Habbo rug'), + ('club_habbo.bottombar.text.member', 'Habbo Club'), + ('furni_divider_silo1_name', 'Corner Shelf'), + ('nav_venue_bb_lobby_beginner_10/0_desc', ''), + ('recycler_info_progress', 'Recycling is currently in progress. The recycling process takes a total of %recyclinghours% hour. You can leave the catalogue and recycling will continue in the background.'), + ('furni_queue_tile1*1_name', 'Pink Habbo Roller'), + ('notickets_header', 'Buy game tickets to play this game'), + ('reg_underage', 'I am under 11 years old'), + ('nav_venue_sw_arena_intermediate_name', 'Playing intermediate game'), + ('furni_table_plasto_square*5_name', 'Square Dining Table'), + ('Alert_YouAreBanned_T', 'A Moderator kicked you out of the room.'), + ('buddyremove_moreoptions', 'More Options >>'), + ('furni_prizetrophy4*3_desc', 'Breathtaking bronze'), + ('furni_chair_silo*2_desc', 'Keep it simple'), + ('club_habbo.bottombar.link.notmember', 'Join!'), + ('poster_1000_name', 'Comedy Poster'), + ('room_badge_button', 'Badge'), + ('furni_soft_sofa_norja*8_desc', 'Yellow Iced Sofa'), + ('wallitem_torch_name', 'Gothic Torch'), + ('furni_scifirocket*7_name', 'Jupiter Smoke Machine'), + ('furni_romantique_tray1_desc', 'For a fast break'), + ('furni_rare_dragonlamp*0_desc', 'George and the...'), + ('furni_nest_desc', 'Night, night'), + ('furni_table_silo_small*2_name', 'Black Occasional Table'), + ('furni_prizetrophy7*2_name', 'Silver Habbo trophy'), + ('furni_sofachair_silo*3_desc', 'Large, but worth it'), + ('furni_divider_nor2*9_name', 'Red Iced bar desk'), + ('club_extend_title', 'Habbo Club membership can be extended VERY easily.'), + ('furni_rare_fan*0_desc', 'As red as Rudolph\'s nose'), + ('club_paybycash_url', '(leave this empty if you don\'t want to have this link displayed)'), + ('poster_57_name', 'Calligraphy poster'), + ('furni_CFC_50_coin_silver_desc', 'Worth 50 Credits'), + ('furni_pillow*5_name', 'Black Leather Pillow'), + ('furni_hc_chr_name', 'Majestic Chair'), + ('nav_venue_sw_arena_free_name', 'Playing free for all game'), + ('furni_active_placeholder_desc', 'This furniture is downloading...'), + ('nav_venue_welcome_lounge_name', 'Welcome Lounge'), + ('furni_soft_sofachair_norja*3_name', 'White Iced Sofachair'), + ('furni_bed_polyfon*3_desc', 'Give yourself space to stretch out'), + ('furni_pura_mdl4*3_name', 'Black Pura Module 4'), + ('furni_pillar*2_desc', 'Ancient and stately'), + ('furni_small_chair_armas_desc', 'Rustic charm at it\'s best'), + ('furni_table_plasto_round_desc', 'Hip plastic furniture'), + ('furni_marquee*2_desc', 'Dragons out and Davids in!'), + ('furni_wooden_screen*7_desc', 'Add an exotic touch to your room'), + ('furni_queue_tile1*8_name', 'Navy Habbo Roller'), + ('furni_arabian_pllw_desc', 'Exotic comfort'), + ('furni_sound_set_1_desc', 'Get the party started!'), + ('furni_gothic_stool*5_desc', 'The dark side of Habbo'), + ('furni_china_table_desc', 'Exotic and classy'), + ('song_disk_trade_info', '%name%'), + ('nav_venue_sw_lobby_beginner_9_name', 'Snow Rookies Lobby'), + ('console_modify', 'Modify'), + ('poster_36_desc', 'The Hotels girlband. Dream on!'), + ('furni_rare_dragonlamp*7_desc', 'Scary and scorching!'), + ('furni_sound_set_63_desc', 'Desert hits by the oasis!'), + ('nav_venue_cafe_gold_name', 'The Oasis'), + ('nav_venue_sw_lobby_tournament_3/0_desc', ''), + ('nav_venue_habbo_cinema_name', 'Habbo Cinema'), + ('furni_chair_plasty*4_name', 'Plastic Pod Chair'), + ('nav_venue_welcome_lounge_iii/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_carpet_soft*1_desc', 'Soft Wool Rug'), + ('furni_sporttrack1*1_name', 'Sport track straight'), + ('furni_divider_nor3*6_name', 'Blue Iced gate'), + ('furni_glass_chair*7_name', 'Green Glass Chair'), + ('club_confirm_gift_text', 'A new club gift has arrived. Please push OK if you want to receive it now. If you click cancel you will be asked again next time you log in to the Hotel.'), + ('furni_rubberchair*5_name', 'Lime Inflatable Chair'), + ('furni_plant_maze_snow_name', 'Snowy Maze Bundle 2'), + ('furni_table_silo_med*4_name', 'Beige Area Coffee Table'), + ('furni_solarium_norja*1_desc', 'Rejuvenate your pixels!'), + ('furni_divider_nor2*2_name', 'Black Iced bar desk'), + ('poster_45_desc', 'Needs a few more Habburgers'), + ('wallitem_habw_mirror_desc', 'Star of the show!'), + ('furni_pura_mdl3*9_name', 'Red Pura Module 3'), + ('furni_exe_corner_name', 'Executive Corner Desk'), + ('nav_venue_cunning_fox_gamehall/3_desc', 'Are you the new Deep Blue?'), + ('furni_rare_fan*7_desc', 'It\'ll blow you away!'), + ('furni_divider_nor1*5_desc', 'Pink Ice corner'), + ('wallitem_md_logo_wall_name', 'Bubble Juice Logo'), + ('furni_bardesk_polyfon_desc', 'Perfect for work or play'), + ('console_target_does_not_accept', 'This user does not accept friend requests at the moment'), + ('pet.saying.beg.croco.0', 'Mmmmmrrr'), + ('pet.saying.beg.croco.1', '*Emo tear*'), + ('messenger.email.header', ''), + ('pet.saying.beg.croco.2', 'Waarrrr...rrr'), + ('furni_carpet_polar*4_name', 'Green Bear Rug'), + ('furni_chair_plasto*6_name', 'Chair'), + ('furni_noob_rug*4_name', 'My first Habbo rug'), + ('furni_summer_chair*6_desc', 'Blue'), + ('rotate_furniture', 'Rotate Furni'), + ('poster_16_desc', 'Added security'), + ('furni_sofachair_silo*7_desc', 'Green Area Armchair'), + ('furni_divider_nor5*4_desc', 'Cool cornering for your crib!'), + ('furni_sand_cstl_twr_name', 'sand_cstl_twr'), + ('furni_safe_silo*4_name', 'Beige Safe Minibar'), + ('furni_chair_plasty*11_name', 'Plastic Pod Chair'), + ('furni_divider_arm2_name', 'Room divider'), + ('furni_sound_set_55_name', 'RnB Grooves 1'), + ('nav_venue_sw_lobby_intermediate_4_name', 'Snow Bombardiers Lobby'), + ('roomatic_canmodifysettings', '(You can change these settings later)'), + ('furni_pura_mdl5*7_desc', 'Any way you like it!'), + ('catalog_pet_name_length', 'Oops, pet\'s name is too long (max 15 characters)'), + ('furni_toy1*3_name', 'Rubber Ball'), + ('nav_venue_beauty_salon_loreal/0_desc', 'No Pixel Surgery, only natural make-ups!'), + ('furni_arabian_swords_name', 'Ancestral Scimitars'), + ('furni_summer_pool*4_name', 'Yellow Summer Pool'), + ('gs_error_create_0', 'This Lobby is full, please create a Game in another Lobby!'), + ('nav_venue_pizzeria/0_desc', 'Pizza; food of the hungry!'), + ('nav_roomnfo_hd_own', 'Own Rooms'), + ('furni_glass_sofa*4_desc', 'Translucent beauty'), + ('buddyremove_accept', 'Remove Friends'), + ('transaction_system_sms_win_orange', 'Orange SMS'), + ('gs_error_create_3', 'Your skill level isn\'t high enough for creating Games in this Lobby.'), + ('furni_goodie2_desc', 'For gourmet kittens'), + ('trading_youagree', 'You agree'), + ('furni_bench_lego_name', 'Team Bench'), + ('reg_verification_updateOK', 'Update successful'), + ('transaction_system_refunds', 'Refund'), + ('furni_carpet_standard*7_name', 'Floor Rug'), + ('poster_44_name', 'Mummy'), + ('furni_bed_polyfon_one*3_name', 'White Single Bed'), + ('furni_jp_tray1_name', 'jp_tray1'), + ('furni_jp_tatami_name', 'Small Tatami Mat'), + ('furni_bardesk_polyfon*2_name', 'Black Mode Bardesk'), + ('furni_hockey_light_desc', 'Set it off.'), + ('nav_venue_bb_lobby_intermediate_2/0_desc', ''), + ('wallitem_guitar_v_name', 'v guitar'), + ('reg_email', 'Email:'), + ('nav_venue_sw_lobby_tournament_0/0_desc', ''), + ('furni_club_sofa_name', 'Club sofa'), + ('furni_duck_name', 'Rubber Duck'), + ('furni_divider_nor5*9_name', 'Red Iced Angle'), + ('furni_smooth_table_polyfon_name', 'Large Dining Table'), + ('reg_forcedupdate', 'Please update your Habbo details!'), + ('transaction_system_stuff_store', 'Catalogue purchase'), + ('console_request_massoperation_title', 'You have %messageCount% friend requests waiting.'), + ('nav_venue_bb_lobby_expert_8/0_desc', ''), + ('roomatic_roomdescription', 'Room description:'), + ('reg_verification_invalidEmail', 'Check email address'), + ('furni_xmas_icelamp_desc', '20 lanterns for the price of 6!'), + ('wallitem_wallmirror_desc', 'Mirror, mirror on the wall...'), + ('furni_pura_mdl1*3_name', 'Black Pura Module 1'), + ('pet.saying.play.croco.1', 'Squeh Squeeeeh...'), + ('pet.saying.play.croco.0', ':)'), + ('nav_venue_theatredrome_halloween/0_desc', 'Warm welcome to Bullet For My Valentine!'), + ('nav_venue_bb_lobby_amateur_6_name', 'Gevorderden Battle Ball 7'), + ('cam_savetxt', 'Saving Photo...'), + ('nav_venue_bb_lobby_intermediate_1_name', 'Semi-profs Battle Ball 2'), + ('nav_modify_doorstatus', 'Door status'), + ('callhelp_sent', 'If you have questions about Habbo Hotel or your Habbo account, please write the details below and a member of community staff will respond as soon as possible.'), + ('wallitem_photo_name', 'Photo'), + ('poster_25_desc', 'A new use for carrots!'), + ('furni_chair_plasto*1_desc', 'Hip plastic furniture'), + ('furni_prizetrophy4*2_name', 'Fish trophy'), + ('furni_bar_armas_name', 'Barrel Minibar'), + ('nav_rooms_favourite', 'Favourites'), + ('furni_table_plasto_square*6_desc', 'Hip plastic furniture'), + ('furni_gothic_sofa*6_desc', 'The dark side of Habbo'), + ('jukebox_song_length', 'Song length: %time%'), + ('buddyremove_header', 'Choose %amount% friends to remove'), + ('furni_romantique_mirrortabl_desc', 'Get ready for your big date'), + ('wallitem_hrella_poster_2_name', 'Life Buoy'), + ('reg_boy', 'Boy'), + ('sound_machine_trax_name', 'Trax name:'), + ('purse_vouchers_error0', 'Technical error! Cannot redeem voucher.'), + ('furni_plant_valentinerose*3_name', 'Yellow Valentine Rose'), + ('purse_vouchers_error1', 'Invalid voucher code.'), + ('nav_venue_bb_lobby_expert_1_name', 'Experts Battle Ball 2'), + ('purse_vouchers_error2', 'Product delivery failed, please contact Customer Service'), + ('purse_vouchers_error3', 'This voucher must be redeemed on the Habbo website'), + ('furni_romantique_chair*2_desc', 'null'), + ('furni_prizetrophy7*1_desc', 'Gold Habbo trophy'), + ('furni_table_plasto_bigsquare*14_name', 'Occasional Table'), + ('furni_ticket_desc', 'A bundle of 5 gaming tickets'), + ('nav_venue_club_massiva_name', 'Club Massiva'), + ('roomatic_locked', 'Door locked - visitors have to ring doorbell'), + ('furni_table_silo_small*3_desc', 'For those random moments'), + ('furni_bed_trad_name', 'Plain Double Bed'), + ('summer_chair_5_name', 'Beige Deck Chair'), + ('buddyremove_select_all', 'Select All Friends'), + ('furni_plant_valentinerose*5_desc', 'For that special pixel'), + ('furni_glass_table*9_name', 'Glass table'), + ('furni_romantique_smalltabl*5_desc', 'Why is one leg different?'), + ('furni_pura_mdl5*5_name', 'beige pura module 5'), + ('poster_30_name', 'Mistletoe'), + ('furni_chair_basic*8_name', 'chair_basic'), + ('nav_venue_sw_lobby_amateur_2_name', 'Snow Slingers Lobby'), + ('Alert_ConnectionDisconnected', 'Please reload Habbo Hotel!\\r\\rIf this happens again, please wait a moment before reloading.'), + ('Alert_WrongPassword', 'Check password!'), + ('nav_modify_letothersmove', 'Let other people move and leave furniture in the room.'), + ('furni_rare_dragonlamp*1_name', 'Sea Dragon Lamp'), + ('furni_table_plasto_4leg*10_desc', 'Hip plastic furniture'), + ('furni_sound_set_28_name', 'Rock 2'), + ('furni_grand_piano*2_name', 'Black Grand Piano'), + ('furni_basket_desc', 'Eggs-actly what you want for Easter'), + ('furni_rare_fan*5_name', 'Yellow Powered Fan'), + ('furni_noob_lamp*2_name', 'My first Habbo lamp'), + ('furni_present_gen4_desc', 'What\'s inside?'), + ('furni_pillar*9_desc', 'Ancient and stately'), + ('furni_chair_norja*8_desc', 'Sleek and chic for each cheek'), + ('furni_pura_mdl2*2_desc', 'Any way you like it!'), + ('furni_glass_stool*5_desc', 'Translucent beauty'), + ('furni_hc_lmp_name', 'Oil Lamp'), + ('console_myinterests', 'My interests:'), + ('furni_val_teddy*6_desc', 'The blue bear of happiness'), + ('room_cant_set_item', 'You cannot place this in someone else\'s room!'), + ('poster_29_desc', '10 x Gold Tinsel'), + ('club_general_daysleft', 'Number of HC days left'), + ('nav_popup_nav_link', 'Open the Navigator'), + ('furni_sound_set_43_desc', 'Beware zombies!'), + ('furni_solarium_norja*6_name', 'Blue Solarium'), + ('furni_doormat_plain*1_name', 'Doormat'), + ('nav_venue_chill_name', 'Zen Garden'), + ('furni_one_way_door*5_desc', 'One at a time!'), + ('furni_table_plasto_round*3_desc', 'Hip plastic furniture?'), + ('furni_prizetrophy6_desc', 'Palkinto'), + ('furni_exe_s_table_name', 'Executive Glass Table'), + ('furni_noob_rug*5_desc', 'Nice and neat sisal rug with pink edging'), + ('furni_scifirocket*0_name', 'Mars Smoke Machine'), + ('furni_soft_jaggara_norja_desc', 'Soft Iced sofachair'), + ('nav_venue_bb_lobby_amateur_9/0_desc', ''), + ('furni_chair_plasty*5_desc', 'Hip plastic furniture'), + ('hobba_mark_emergency', 'Emergency Help'), + ('furni_djesko_turntable_name', 'Habbo Turntable'), + ('furni_shelves_norja*9_desc', 'For nic naks and art deco books'), + ('poll_confirm_cancel_long', 'Are you sure you want to stop answering the poll? You can\'t continue later.'), + ('poster_32_desc', 'The Auspicious One'), + ('opening_hours_text_opening_time', 'The Hotel will open again at %h%:%m%. We look forward to welcoming you back!'), + ('furni_bed_budget_one*7_name', 'Green Pura Bed'), + ('furni_pillow*0_desc', 'Minimalist comfort!'), + ('furni_divider_poly3*8_desc', 'Yellow Mode Bardesk Gate'), + ('nav_venue_bb_lobby_beginner_13/0_desc', ''), + ('furni_sound_set_6_name', 'Ambient 3'), + ('hubu_win', 'Bus - Info'), + ('furni_sound_machine*5_name', 'Brown Traxmachine'), + ('furni_sporttrack1*2_desc', 'null'), + ('bb_title_bouncingBall', 'Battle Ball'), + ('nav_venue_rooftop/0_desc', 'Hang out on the very rooftop of Habbo Hotel!'), + ('modtool_banreason', 'Ban Reason:'), + ('furni_chair_silo*9_desc', 'Red Silo Dining Chair'), + ('furni_bed_budget*6_desc', 'King sized comfort!'), + ('furni_s_sound_machine*4_desc', 'Sound Machine Blue Desc'), + ('furni_rubberchair*6_desc', 'Soft and tearproof!'), + ('nav_venue_sw_lobby_expert_1_name', 'Snow Marksmen Lobby'), + ('nav_venue_bb_lobby_beginner_7/0_desc', ''), + ('furni_table_plasto_4leg*5_desc', 'Hip plastic furniture'), + ('gen_youhave', 'You Have'), + ('furni_carpet_soft*6_name', 'Soft Wool Rug'), + ('furni_petfood2_desc', 'Fantastic 20% Saving!'), + ('group_privileges', 'Priviliges:'), + ('furni_samovar_name', 'Russian Samovar'), + ('furni_hal_grave_name', 'Haunted Grave'), + ('furni_bed_budget_one*2_desc', 'Princess sized comfort!'), + ('gs_error_1', 'You have entered invalid data!'), + ('reject', 'Reject'), + ('gs_error_4', 'You have reached your maximum number of daily Games!'), + ('nav_venue_sw_lobby_tournament_5_name', 'Tournament Lobby'), + ('gs_error_5', 'Tournament is only available for users living in the UK.'), + ('gs_error_2', 'You don\'t have enough Tickets!'), + ('gs_error_8', 'To start a Game, there must be at least two Teams of one player each!'), + ('sound_machine_alert_no_sound_sets', 'You don\'t have any sound sets available for song editing. \\rNote that the sets need to be in your inventory (hand).'), + ('furni_waterbowl*4_desc', 'Aqua unlimited'), + ('furni_doormat_love_desc', 'Welcome Habbos in style'), + ('gs_error_6', 'You have been removed from the Game!'), + ('furni_soft_sofachair_norja*4_desc', 'Sit back and relax'), + ('bb_powerup_desc_8', 'By using a vacuum cleaner, you can clear any tile in the field.'), + ('move', 'Move'), + ('furni_romantique_smalltabl*3_name', 'Turquoise Tray Table'), + ('furni_bed_polyfon*8_name', 'Yellow Mode Double Bed'), + ('furni_sofachair_polyfon*4_desc', 'Beige Mode Armchair'), + ('forgottenpw_email', 'Your email address'), + ('console_email', 'Email'), + ('bb_powerup_desc_1', 'Light bulb colours an area around it.'), + ('furni_divider_nor2_desc', 'Strong, yet soft looking'), + ('furni_bardeskcorner_polyfon*5_desc', 'For sweet corners!'), + ('say', 'Say'), + ('bb_powerup_desc_3', 'Flashlight colours a straight line ahead of you.'), + ('bb_powerup_desc_2', 'Bouncing on a spring locks tiles in a single jump.'), + ('bb_powerup_desc_5', 'Bouncing on a box of pins will burst your Battle Ball!'), + ('bb_powerup_desc_4', 'A shot with a cannon locks tiles on a straight line.'), + ('furni_chair_basic*1_name', 'chair_basic'), + ('bb_powerup_desc_7', 'A bomb will clear all tiles around it.'), + ('bb_powerup_desc_6', 'Harlequin effect makes everybody colour tiles for your team!'), + ('NUF_console_read_next', 'Click \'OK\' to mark message as read.'), + ('poster_50_name', 'Bat Poster'), + ('furni_table_plasto_4leg*15_name', 'Occasional Table'), + ('furni_tree7_desc', 'Walking in a winter wonderland!'), + ('poster_37_name', 'The Habbo Babes 3'), + ('furni_queue_tile1*7_desc', 'The power of movement'), + ('furni_bed_budgetb_name', 'Plain Double Bed'), + ('interface_icon_sound', 'Sound Off/On'), + ('pet.hotwords.come_here', 'come here'), + ('poster_10_name', 'Lapland Poster'), + ('win_delete_item', 'Remove Item'), + ('wallitem_hrella_poster_3_name', 'Anchor'), + ('furni_table_plasto_bigsquare*8_desc', 'Hip plastic furniture'), + ('furni_habboween_grass_name', 'Unholy Ground'), + ('furni_plant_valentinerose*4_name', 'Pink Valentine\'s Rose'), + ('nav_venue_skylight_lobby/0_desc', 'Lift your spirits on the top floor'), + ('buddyremove_alphabetical', 'Alphabetical Order'), + ('alert_win_coppa', 'You are blocked'), + ('nav_venue_bb_lobby_amateur_5_name', 'Gevorderden Battle Ball 6'), + ('reg_update_text', 'Never change your password or email just because somebody asks you to. He / she is most probably trying to steal your Habbo account and furni!'), + ('decision_ok', 'OK'), + ('furni_summer_grill*3_name', 'Yellow Barbeque Grill'), + ('nav_public_helptext', 'These are hotel\'s public rooms. What are you waiting for? Go and meet other Habbos!'), + ('tickets_button_info_2', 'Stuff you can do with these 20 tickets'), + ('furni_rclr_chair_name', 'Palm Chair'), + ('login_create1here', 'You can create one here.'), + ('tickets_button_info_1', 'Stuff you can do with these 2 tickets'), + ('furni_prizetrophy6*3_name', 'Champion trophy'), + ('furni_shelves_norja*2_desc', 'For nic naks and art deco books'), + ('purse_info', 'DESCRIPTION'), + ('bb_choose_powerups', 'Powerup select'), + ('purse_transaction', 'View Transactions'), + ('reg_birthdayformat', 'Birthday*: [dd][mm][yyyy]'), + ('Alert_YouMustAgree', 'You must accept the Terms and Conditions before proceeding.'), + ('jukebox_empty', 'Empty'), + ('purse_info_film', 'Films For Camera'), + ('furni_sofachair_polyfon*9_desc', 'Loft-style comfort'), + ('furni_habbocake_desc', 'Save me a slice!'), + ('furni_doormat_plain*6_desc', 'Available in a variety of colours'), + ('nav_venue_sun_terrace/0_desc', 'For lazy afternoons and super tan treatment!'), + ('poster_501_desc', 'For pirates everywhere'), + ('pet_thir_2', 'Thirsty'), + ('gs_error_watch_0', 'All The Spectator Seats Are Taken!'), + ('pet_thir_3', 'Not thirsty'), + ('camera_open_dialog_text', 'Would you like to take some photos\\ror put your camera in your room?'), + ('furni_bed_budget_one*9_desc', 'Prince sized comfort!'), + ('ph_goswimming', 'Go swimming!'), + ('furni_habboween_crypt_name', 'Creepy Crypt'), + ('gs_error_join_7', 'You have already joined this Game!'), + ('nav_venue_sw_lobby_amateur_3_name', 'Snow Slingers Lobby'), + ('furni_romantique_smalltabl*4_name', 'Amber Tray Table'), + ('gs_error_join_3', 'You either have too much or too little skill to join.'), + ('pet_thir_0', 'Gasping'), + ('gs_error_join_0', 'The team you selected is already full.'), + ('pet_thir_1', 'Parched'), + ('furni_gothic_stool*3_name', 'Gothic Stool Red'), + ('furni_wooden_screen*1_name', 'Pink Oriental screen'), + ('furni_sofa_silo*4_name', 'Beige Area Sofa'), + ('furni_queue_tile1*2_desc', 'The power of movement'), + ('buddyremove_continue', 'Remove Friend Now'), + ('nav_venue_bb_lobby_expert_2/0_desc', ''), + ('nav_loading', 'Loading...'), + ('furni_bed_armas_two_name', 'Double Bed'), + ('furni_prizetrophy4*1_name', 'Fish trophy'), + ('furni_sound_machine*7_desc', 'Red alert. Red alert. It\'s a party!'), + ('furni_glass_sofa_desc', 'Translucent beauty'), + ('furni_barchair_silo*5_name', 'Pink Bar Stool'), + ('furni_soft_sofachair_norja*5_desc', 'Pink Iced Sofachair'), + ('console_fr_accepted_count', 'Amount to be accepted'), + ('poster_2001_desc', 'Perinteinen ryijy,'), + ('furni_couch_norja*5_desc', 'Two can perch comfortably'), + ('furni_rclr_lamp_desc', 'Light your space'), + ('furni_sand_cstl_wall_desc', 'sand_cstl_wall'), + ('furni_one_way_door*4_name', 'Beige One Way Gate'), + ('furni_corner_china_name', 'Dragon Screen'), + ('nav_venue_sw_lobby_amateur_4/0_desc', 'Astetta rankempaa lumisotaa.'), + ('furni_chair_silo*7_name', 'Green Silo Dining Chair'), + ('transaction_system_messenger', 'Console SMS'), + ('furni_pura_mdl4*8_desc', ''), + ('console_reject_selected', 'Reject selected'), + ('furni_rare_icecream*4_desc', 'Virtual strawberry rocks!'), + ('furni_prizetrophy*2_desc', 'Shiny silver'), + ('furni_scifiport*0_desc', 'Energy beams. No trespassers!'), + ('paalu_ui2', 'Push'), + ('paalu_ui3', 'Moving'), + ('paalu_ui4', 'Stabilise'), + ('paalu_ui5', 'Balance'), + ('furni_sofa_polyfon*7_name', 'Green Mode Sofa'), + ('nav_error_toomanyfavrooms', 'You can\'t have more than 10 favourite rooms! Please remove an old favourite if you want to add a new one.'), + ('furni_noob_stool*5_name', 'My first Habbo stool'), + ('sound_machine_alert_missing_packages', 'You need the following Traxpacks to edit this song:'), + ('furni_grunge_bench_name', 'Bench'), + ('paalu_ui1', 'Balance'), + ('furni_sleepingbag*5_name', 'Graphite Sleeping Bag'), + ('furni_divider_nor2*3_name', 'White Iced Bar-Desk'), + ('bb_header_teams', 'Teams'), + ('wallitem_sw_swords_name', 'Swords'), + ('furni_val_choco_desc', 'One for them. Two for me!'), + ('nav_venue_bb_lobby_expert_5/0_desc', ''), + ('furni_soft_sofa_norja*2_name', 'Black Iced Sofa'), + ('furni_bed_budgetb_one_desc', 'All you need for a good night\'s kip'), + ('furni_carpet_standard*8_name', 'Floor Rug'), + ('furni_rare_dragonlamp*6_name', 'Gold Dragon Lamp'), + ('furni_sound_set_56_desc', 'Get down tonight!'), + ('furni_divider_nor5*2_name', 'Black Iced Angle'), + ('chat.curse_word', 'Bobba'), + ('furni_couch_norja*4_desc', 'Two can perch comfortably'), + ('furni_scifirocket*2_desc', 'A little closer to home!'), + ('furni_rare_fan*6_desc', 'It\'ll blow you away!'), + ('poster_514_name', 'The EU flag'), + ('club_desc_2_period', '3 Months (93 days) = 60 Credits'), + ('furni_glass_chair*9_desc', 'Translucent beauty'), + ('poster_1338_desc', 'If her age on the clock, she ready for the cock'), + ('nav_src_hd', 'Search Results.'), + ('console_unknown_sender', 'Unknown sender'), + ('furni_prizetrophy4_name', 'Pokaali'), + ('nav_venue_sunset_cafe/0_desc', 'Come and chat about Official Fansites and meet their staff!'), + ('furni_pura_mdl4*9_desc', 'Any way you like it!'), + ('furni_pillar*8_name', 'Roman Pillar'), + ('nav_venue_sport/0_desc', 'St Trinian\'s is out on DVD April 14th!'), + ('furni_pillar*7_name', 'Atlantean Pillar'), + ('club_extend_text', 'If you\'re subscribing again to Habbo Club, you won\'t lose any of the advantages or ongoing furni gifts. Club membership can be extended in advance.\\rRemember: one club month lasts 31 days.'), + ('sound_machine_confirm_eject', 'Remove cartridge?'), + ('shopping_got', 'You have xx in your Purse.'), + ('furni_rare_stand_desc', 'Stand and Deliver!'), + ('furni_chair_plasto_desc', 'Hip plastic furniture'), + ('furni_bed_polyfon_one*9_desc', 'Cot of the artistic'), + ('furni_couch_norja*9_name', 'Red Bench'), + ('poster_3_desc', 'Smells fishy, looks cool'), + ('paalu.winner', 'Winner:'), + ('NUF_meeting_people_room_wave', 'These buttons let you wave and dance. Click on your Habbo at anytime to see these buttons.'), + ('sound_machine_confirm_window', 'Sound Machine'), + ('furni_one_way_door*3_name', 'White HC Gate'), + ('furni_chair_plasty*9_name', 'Plastic Pod Chair'), + ('gs_timeleft', 'Time Left \\x'), + ('hobba_pickup', 'Pick Up'), + ('console_lastvisit', 'Last Visit'), + ('furni_rare_globe_desc', 'It\'s all white..'), + ('furni_val_cauldron_name', 'Valentine\'s Cauldron'), + ('poster_43_name', 'Chains'), + ('furni_bardesk_polyfon*8_desc', 'Yellow Mode Bardesk'), + ('furni_sound_set_36_name', 'Latin Love 1'), + ('dimmer_apply', 'Apply'), + ('furni_glass_chair*8_desc', 'Translucent beauty'), + ('furni_pura_mdl2*7_desc', 'Any way you like it!'), + ('furni_prizetrophy*3_desc', 'Breathtaking bronze'), + ('furni_marquee*1_name', 'Pink marquee'), + ('NUH_own_user', 'This is your Habbo. Click on the floor to move around.'), + ('furni_gothic_sofa*1_desc', 'The dark side of Habbo'), + ('furni_divider_nor5*3_name', 'White Iced Angle'), + ('furni_divider_nor4*5_name', 'Pink Iced Auto Shutter'), + ('furni_soft_sofa_norja*3_name', 'White Iced Sofa'), + ('furni_sofachair_silo*8_desc', 'Large, but worth it'), + ('furni_pura_mdl1*9_desc', 'Any way you like it!'), + ('furni_chair_plasto*7_name', 'Chair'), + ('furni_pura_mdl5*6_desc', 'Any way you like it!'), + ('emailpw', 'Send'), + ('sound_machine_playlist_window', 'Traxmachine Playlist Editor'), + ('furni_pura_mdl1*3_desc', 'Any way you like it!'), + ('furni_noob_table*5_desc', 'Lightweight, practical and pink'), + ('furni_scifirocket*6_name', 'Mercury Smoke Machine'), + ('furni_shelves_norja_name', 'Bookcase'), + ('poster_521_name', 'Flag of Brazil'), + ('sound_machine_jukebox_disk_window', 'Insert disc'), + ('furni_table_norja_med*6_desc', 'For larger gatherings'), + ('furni_pillow*6_name', 'Blue Cotton Pillow'), + ('furni_shelves_norja*3_desc', 'For nic naks and art deco books'), + ('queue_set.s.info', 'There are %d% Habbos in front of you in the queue to see the Habbo Live broadcast!'), + ('reg_parentemail_info', 'Because of your age, we need to let your parents know you are registering at Habbo Hotel. Please give the email address of one of your parents/guardians.'), + ('club_txt_paycash', 'Pay by Cash'), + ('furni_chair_plasto*11_name', 'Chair'), + ('furni_pizza_name', 'Pizza Box'), + ('furni_table_plasto_4leg*6_desc', 'Hip plastic furniture'), + ('furni_chair_silo*3_desc', 'Keep it simple'), + ('alert_reg_t', 'Please check these details:'), + ('nav_venue_theatredrome_name', 'Theatredrome'), + ('furni_hc_rntgn_desc', 'Believe it or not!'), + ('nav_venue_main_lobby_name', 'Main Lobby'), + ('furni_sound_set_64_desc', 'Make a little Jinn-gle!'), + ('nav_venue_sw_lobby_amateur_desc', 'Practice improves a Snow Stormer\'s aim... Ops, missed!'), + ('furni_scifiport*5_name', 'Security Fence'), + ('furni_lamp_basic_desc', 'Switch on the atmosphere with this sophisticated light'), + ('pet.saying.sniff.cat.0', 'snuh..snuh'), + ('poster_506_name', 'The flag of Finland'), + ('furni_bardeskcorner_polyfon*6_desc', 'Blue Mode Bardesk Corner'), + ('nav_venue_hotel_kitchen_name', 'Hotel Kitchen'), + ('furni_doorB_desc', 'Narnia this way!'), + ('poster_11_name', 'Certificate'), + ('furni_safe_silo_desc', 'Totally shatter-proof!'), + ('furni_bed_budget_one*3_desc', 'Prince sized comfort!'), + ('furni_romantique_divider*4_name', 'Ochre Screen'), + ('previous_onearrowed', '< Previous'), + ('nav_venue_bb_lobby_tournament_3_name', 'Competitie Battle Ball 4'), + ('furni_plant_sunflower_desc', 'For happy Habbos'), + ('furni_throne_desc', 'Important Habbos only'), + ('furni_exe_bardesk_name', 'Executive Bar Desk'), + ('furni_tree6_desc', 'The future\'s bright!'), + ('log_problem_title', 'Problems Connecting'), + ('furni_chair_basic*2_name', 'Pink Pura Egg Chair'), + ('game_chess_black', 'Black:'), + ('furni_glass_sofa*9_name', 'Glass sofa'), + ('furni_chair_norja*2_desc', 'Sleek and chic for each cheek'), + ('furni_pillar*3_desc', 'Ancient and stately'), + ('furni_scifidoor*8_desc', 'There out of this world!'), + ('alert_InvalidUserName', 'Don\'t use this character: \\x !'), + ('furni_rare_parasol*3_name', 'Violet Parasol'), + ('furni_bed_budget*5_desc', 'King sized comfort!'), + ('furni_chair_silo*8_name', 'Yellow Dining Chair'), + ('nav_tryingpw', 'Trying the password...'), + ('furni_cn_lamp_desc', 'Light of the East'), + ('furni_prizetrophy3*3_name', 'Globe trophy'), + ('furni_sound_set_16_desc', 'Ferry, ferry good!'), + ('furni_table_plasto_round*4_desc', 'Hip plastic furniture'), + ('poster_2007_desc', 'The legendary founder of the Hotel'), + ('sound_machine_insert', 'Add to mixer'), + ('furni_sound_machine*1_desc', 'Let the party begin!'), + ('furni_bed_polyfon_one*8_desc', 'Yellow Mode Single Bed'), + ('error_room_closed', 'Huone on suljettu.'), + ('pet.hotwords.play_dead', 'play dead'), + ('gs_button_go_finished', 'Scores'), + ('group_member', 'Member'), + ('sound_machine_confirm_save', 'Save the song?'), + ('furni_arabian_wndw_desc', 'Arabian days and nights'), + ('nav_venue_sw_lobby_expert_2_name', 'Snow Marksmen Lobby'), + ('furni_sound_set_57_desc', 'Feel the groove'), + ('furni_triplecandle_desc', 'No need to worry about wax drips'), + ('char_welcome', 'Welcome!'), + ('furni_sound_machine*6_desc', 'Add some effects to your room!'), + ('furni_sofachair_polyfon*3_desc', 'Loft-style comfort'), + ('nav_venue_bb_lobby_amateur_6/0_desc', ''), + ('group_logo_url_template', 'http://www.habbohotel.co.uk/habbo-imaging/badge-fill/%imagerdata%.gif'), + ('furni_table_plasto_bigsquare*2_desc', 'Hip plastic furniture'), + ('furni_glass_table*5_desc', 'Translucent beauty'), + ('url_purse_link', 'http://%predefined%//credits?'), + ('buddyremove_logintime', 'Last Login Time'), + ('NUF_meeting_people_hotelview_tutor', 'The Navigator lets you move between rooms in the Hotel, so open it up to get started!'), + ('furni_sofa_polyfon*6_name', 'Blue Mode Sofa'), + ('furni_scifirocket*1_desc', 'There is always space for this!'), + ('nav_venue_bb_lobby_amateur_10/0_desc', ''), + ('furni_prizetrophy5_name', 'Pokaali'), + ('purse_info_tickets', 'Gaming Tickets'), + ('poster_513_name', 'The Australian flag'), + ('furni_noob_chair*3_desc', 'Lightweight, practical, with red stripes'), + ('alert_old_client', 'You have an old version cached. Please empty your browser cache and login again.'), + ('furni_bar_basic_name', 'A Pura Minibar'), + ('furni_shelves_norja*8_desc', 'For nic naks and art deco books'), + ('sound_machine_save_window', 'Save your Trax'), + ('poster_51_name', 'Basketball Hoop'), + ('Alert_moderator_warning', ''), + ('furni_solarium_norja*5_name', 'Pink Solarium'), + ('furni_sporttrack2*1_desc', 'null'), + ('furni_rubberchair*7_desc', 'Soft and tearproof!'), + ('reg_parentemail_moreinfo', 'More information:'), + ('furni_present_gen5_desc', 'What\'s inside?'), + ('furni_bed_polyfon*9_desc', 'Give yourself space to stretch out'), + ('sound_machine_confirm_save_list_long', 'Are you sure you want to overwrite the current playlist?'), + ('cam_zoom_in.help', 'Zoom In'), + ('furni_carpet_soft*5_name', 'Soft Wool Rug'), + ('furni_plant_small_cactus_name', 'Small Cactus'), + ('console_creatingaprofile', 'Creating A Profile'), + ('console_select_all', 'Select all'), + ('hobba_reply_cfh', 'Reply to:'), + ('notickets_buygame', 'Buy a game'), + ('furni_sporttrack1*3_desc', 'null'), + ('furni_sleepingbag*1_desc', 'Ultimate coziness'), + ('furni_gothic_stool*4_name', 'Black Gothic Stool'), + ('nav_venue_bb_lobby_beginner_4/0_desc', ''), + ('nav_venue_netcafe/0_desc', 'Learn a foreign language and win Habbo Credits in our quests!'), + ('poster_31_desc', 'Pure and unbridled nu-metal'), + ('furni_sound_set_24_desc', 'It\'s all about the Pentiums, baby!'), + ('pet.saying.angry.dog.3', 'dog.1=Oouh..oouh..snuh..ooo'), + ('furni_bed_budget_one*8_desc', 'Prince sized comfort!'), + ('pet.saying.angry.dog.4', 'ARRR Grrr.. woof woof woof'), + ('pet.saying.angry.dog.1', 'Woof! Grrrr..woof woof'), + ('furni_sw_table_desc', ''), + ('pet.saying.angry.dog.2', 'grRRRRrr.r...r'), + ('pet.saying.angry.dog.0', 'Rrrr..woof.. Rrr'), + ('furni_chair_china_name', 'Chinese Lacquer Chair'), + ('furni_romantique_divan*2_desc', 'Recline in continental comfort'), + ('furni_divider_silo1*6_desc', 'Blue Area Corner Shelf'), + ('furni_sound_set_5_name', 'Ambient 4'), + ('roomevent_browser_create', 'Host an event'), + ('furni_noob_rug*6_desc', 'Nice and neat sisal rug with green edging'), + ('transaction_system_bank_luottokunta', 'Luottokortti'), + ('furni_bed_armas_one_name', 'Single Bed'), + ('furni_plant_fruittree_desc', 'Great yield and sweet fruit'), + ('furni_sound_machine_pro_desc', 'creating fancy sounds'), + ('nav_ownrooms_helptext', 'If you didn\'t know, these are your rooms. Here you can modify your rooms or create new ones if you feel like it.'), + ('furni_grunge_radiator_desc', 'Started cool but now it\'s hot!'), + ('furni_divider_silo3*7_desc', 'Green Area Gate'), + ('room_hold', 'Wait a second...\\rLoading room...'), + ('furni_sound_set_49_desc', 'You will belong'), + ('nav_venue_emperors/0_desc', 'Even the smallest of light... shines in the darkness'), + ('furni_nest_name', 'Basket'), + ('furni_noob_table*4_name', 'My first Habbo table'), + ('furni_sound_set_51_desc', 'Bop to the beat'), + ('furni_plant_maze_snow_desc', '20 x Snowy Maze Shrubbery'), + ('NUF_meeting_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('furni_scifirocket*7_desc', 'Larger than life!'), + ('furni_table_plasto_round*9_name', 'Round Dining Table'), + ('furni_val_teddy*5_name', 'Yellow Share Bear'), + ('nav_venue_bb_lobby_expert_2_name', 'Experts Battle Ball 3'), + ('console_onfrontpage', 'Online'), + ('poster_1000_desc', 'The Noble and Silver Show'), + ('furni_rare_icecream*9_name', 'Bubblegum Ice Cream Machine'), + ('furni_rare_fan*0_name', 'Festive Fan'), + ('furni_carpet_polar_name', 'Faux-Fur Bear Rug'), + ('hobba_chatlog', 'See Chat Log >>'), + ('furni_romantique_chair*3_desc', 'null'), + ('hobba_pickedby', 'Picked Up By:'), + ('poster_24_desc', 'Trying to get in or out?'), + ('furni_table_silo_small*2_desc', 'For those random moments'), + ('furni_table_plasto_bigsquare*15_name', 'Occasional Table'), + ('furni_prizetrophy7*2_desc', 'Silver Habbo trophy'), + ('ph_keys_run', 'Run:'), + ('error_title', 'Oops, error!'), + ('furni_rare_dragonlamp*0_name', 'Fire Dragon Lamp'), + ('furni_CFC_50_coin_silver_name', 'Silver Coin (China)'), + ('furni_chair_plasty_name', 'Plastic Pod Chair'), + ('nav_roomInfo', 'Room info'), + ('furni_sound_set_63_name', 'Alhambra Trax 2'), + ('furni_divider_nor2*9_desc', 'Red Iced bar desk'), + ('furni_soft_sofa_norja*8_name', 'Yellow Iced Sofa'), + ('poster_57_desc', 'chinese calligraphy'), + ('furni_table_plasto_4leg*16_name', 'Occasional Table'), + ('accept', 'Accept'), + ('pet.saying.beg.cat.2', 'MEOW, MEOW, MEOW..'), + ('furni_waterbowl*3_desc', 'Aqua unlimited'), + ('furni_divider_poly3*2_name', 'Black Mode Bardesk Gate'), + ('furni_divider_nor3_desc', 'Do go through...'), + ('furni_table_plasto_square*5_desc', 'Hip plastic furniture'), + ('furni_rubberchair*1_desc', 'Soft and stylish HC chair'), + ('furni_divider_nor5*8_name', 'Yellow Iced Angle'), + ('furni_pura_mdl4*3_desc', 'Any way you like it!'), + ('nav_removerights_desc', 'Remove all rights to this room from other users.'), + ('furni_chair_norja*7_name', 'Rural Chair'), + ('furni_pillar*2_name', 'Nordic Pillar'), + ('furni_bed_polyfon*3_name', 'White Double Bed'), + ('furni_glass_chair*3_desc', 'Translucent beauty'), + ('wallitem_xmas_light_name', 'Xmas light'), + ('pet.saying.beg.cat.0', 'MaUUU...MEOW...meow'), + ('pet.saying.beg.cat.1', '*looks up with sad eyes*'), + ('reg_verification_newEmail', 'Your new email address:'), + ('furni_sound_set_29_desc', 'Electronic house'), + ('furni_joulutahti_desc', 'Christmas in a pot'), + ('furni_china_table_name', 'Chinese Lacquer Table'), + ('poster_507_desc', 'The French flag'), + ('NUF_visiting_rooms_hotelview_nav', 'Click the icon to open the Navigator.'), + ('dimmer_preset_1', 'Preset 1'), + ('nav_private_helptext', 'These are the rooms owned by Habbos. Select a category first and then browse some rooms and meet some people!'), + ('furni_queue_tile1*8_desc', 'The power of movement'), + ('dimmer_preset_2', 'Preset 2'), + ('furni_arabian_pllw_name', 'Green Blossom Pillow'), + ('nav_venue_bb_lobby_tournament_7/0_desc', ''), + ('furni_goodie1*1_desc', 'Crunchy Dog Treat'), + ('poster_36_name', 'The Habbo Babes 2'), + ('poll_window', 'Question'), + ('furni_md_limukaappi_desc', 'A sparkling and refreshing pixel drink!'), + ('nav_venue_rooftop_rumble_ii_name', 'Rooftop Rumble II'), + ('furni_wooden_screen*7_name', 'Purple Oriental Screen'), + ('furni_scifidoor*2_name', 'Yellow Spaceship Door'), + ('room_max_pet_limit', 'Too many pets in the room!'), + ('hobba_sent_to_helpers', 'Call re-assigned as emergency and sent to moderators'), + ('furni_table_silo_med*4_desc', 'Beige Area Coffee Table'), + ('furni_romantique_pianochair*5_name', 'Onyx Piano Stool'), + ('nav_modify_roomdescription', 'Room Description'), + ('furni_sound_set_10_name', 'Hip Hop Beats 1'), + ('furni_chair_silo*2_name', 'Black Dining Chair'), + ('furni_marquee*6_name', 'Blue Marquee'), + ('poster_8_name', 'Habbo Colours'), + ('transaction_system_htk_singledrop', 'Landline'), + ('furni_chair_plasty*4_desc', 'Hip plastic furniture'), + ('dimmer_preset_3', 'Preset 3'), + ('furni_exe_corner_desc', 'Tuck it away'), + ('nav_venue_welcome_lounge/0_desc', 'New? Lost? Get a warm welcome here from Habbo eXperts.'), + ('furni_sleepingbag*6_desc', 'Ultimate coziness'), + ('nav_venue_cunning_fox_gamehall/3_name', 'Batleships'), + ('console_mainhelp', 'Habbo Console Help'), + ('tickets_button_info_hide', 'Hide Ticket Info'), + ('furni_xmas_icelamp_name', 'Lantern Bundle 2'), + ('nav_venue_bb_lobby_amateur_0/0_desc', ''), + ('purse_header', 'Habbo Purse'), + ('furni_noob_lamp*3_name', 'My first Habbo lamp'), + ('nav_help_title', 'Want a room of your own?'), + ('buy', 'Buy'), + ('furni_pura_mdl1*8_name', 'yellow pura module 1'), + ('dimmer_title', 'Mood Light'), + ('NUF_mini_meet_people_hotelview_icon', 'Click the Navigator button to start visiting the rooms!'), + ('console_credits', 'Credits'), + ('bb_link_highScores_url', 'http://%predefined%/groups/56552/id'), + ('wallitem_md_logo_wall_desc', 'Bubble up your wall'), + ('furni_safe_silo*4_desc', 'Totally shatter-proof!'), + ('room_unignore', 'Listen'), + ('nav_venue_sw_lobby_amateur_1/0_desc', ''), + ('poster_16_name', 'Bars'), + ('furni_sofachair_silo*7_name', 'Green Area Armchair'), + ('furni_spyro_name', 'Dragon Egg'), + ('nav_venue_bb_lobby_beginner_19/0_desc', ''), + ('Alert_YourPasswordIsTooShort', 'Passwords must be at least 6 characters long.'), + ('room_cant_trade', 'You cannot trade this!'), + ('furni_door_desc', 'Dr Who?'), + ('gs_button_go_created', 'Join'), + ('poster_49_name', 'Large silver star'), + ('furni_glass_sofa*4_name', 'Glass sofa'), + ('furni_divider_arm3_desc', 'Knock, knock...'), + ('furni_sound_set_31_desc', 'House loops'), + ('reg_habboname', 'Habbo name:'), + ('habboclub_thanks', 'Yippee! You are now a member of Habbo Club! Your current email address is %email%. \\r\\rIf that\'s not the one you are using, please go to \'Update my Habbo ID\' and change it now. \\rThen we can contact you about your membership if need be.'), + ('console_follow_offline', 'Your friend is offline.'), + ('furni_divider_nor1*5_name', 'Pink Ice corner'), + ('nav_openbutton', 'Open'), + ('nav_venue_theatredrome_habbowood/0_desc', 'Home to the Habbowood Gala and HAFTA Awards!'), + ('nav_venue_ice_cafe/0_desc', 'Come here. And chill out.'), + ('furni_calippo_name', 'Calippo icecream machine'), + ('furni_bench_lego_desc', 'For your reserve players'), + ('poster_9_desc', 'Do your bit for the environment'), + ('furni_bed_polyfon_one*3_desc', 'Cot of the artistic'), + ('poster_44_desc', 'Beware the curse...'), + ('poster_2006_name', 'DJ Throne'), + ('furni_pura_mdl3*5_desc', ''), + ('furni_arabian_tray4_name', 'Fruit Tray'), + ('furni_divider_nor3*7_desc', 'Entrance or exit?'), + ('furni_sound_set_30_name', 'Instrumental 1'), + ('furni_romantique_tray1_name', 'Breakfast Tray'), + ('furni_jp_tray1_desc', 'jp_tray1'), + ('furni_plant_maze_desc', 'Build your maze!'), + ('console_getfriendrequest_2', 'If you accept this invitation (s)he will be added to your Friends List. Then you can send messages to each other.'), + ('furni_hockey_light_name', 'Lert'), + ('furni_goodie1_desc', 'Crunchy Dog Treat'), + ('console_getfriendrequest_1', 'has asked you to become his/her Friend.'), + ('furni_pura_mdl2*1_desc', 'Any way you like it!'), + ('score_board.text', 'POINTS'), + ('furni_one_way_door*9_name', 'Red One Way Gate'), + ('furni_sand_cstl_twr_desc', 'sand_cstl_twr desc'), + ('furni_divider_nor5*9_desc', 'Cool cornering for your crib y0!'), + ('furni_duck_desc', 'Every bather needs one'), + ('furni_bardesk_polyfon*2_desc', 'Black Mode Bardesk'), + ('console_request_2', '(S)he will be added into your Friends List if (s)he accepts it.'), + ('bb_link_join', 'Join Team'), + ('nav_createroom_hd', 'Here you can create your own room!'), + ('console_request_1', 'has been sent your Friend Request.'), + ('reg_check_info', 'CHECK YOUR INFO'), + ('furni_toy1*4_name', 'Rubber Ball'), + ('nav_venue_sw_lobby_free_0_name', 'Free Game Lobby'), + ('furni_chair_plasto*1_name', 'Chair'), + ('furni_toilet_name', 'Loo Seat'), + ('queue_set.dc.info', 'Number of Habbos in default queue is %d% and in Habbo Club queue %c%'), + ('furni_sofachair_silo*2_desc', 'Large, but worth it'), + ('furni_chair_plasto*12_desc', 'Hip plastic furniture'), + ('ph_tickets_buyfor', 'Buy Tickets for:'), + ('sound_machine_confirm_close', 'Close the editor?'), + ('furni_rare_fan*1_desc', 'It\'ll blow you away!'), + ('furni_divider_poly3*3_desc', 'Border control!'), + ('nav_venue_kattoterassi/0_desc', 'When push comes to shove...'), + ('furni_summer_grill*4_desc', 'Plenty of burgers on that barbie'), + ('furni_bar_armas_desc', 'It\'s a barrel of laughs and a great talking point'), + ('furni_toilet_red_name', 'Loo Seat'), + ('furni_hc_lmp_desc', 'Be enlightened'), + ('furni_romantique_mirrortabl_name', 'Dressing Table'), + ('furni_pura_mdl4*2_name', 'Pink Pura Module 4'), + ('summer_chair_5_desc', 'Enjoy the summer air'), + ('furni_plant_rose_desc', 'Sleek and chic'), + ('furni_skullcandle_name', 'Skull Candle Holder'), + ('Alert_no_credits', 'You don�t have enough Credits for this.'), + ('pet.hotwords.voice', 'speak'), + ('furni_prizetrophy4*2_desc', 'Shiny silver'), + ('furni_soft_sofachair_norja*4_name', 'Urban Iced Sofachair'), + ('furni_pura_mdl5*1_desc', 'Any way you like it!'), + ('furni_safe_silo*9_name', 'Red Safe Minibar'), + ('furni_bed_trad_desc', 'Sweet dreams for two'), + ('nav_venue_club_massiva_desc', 'Strut your funky stuff!'), + ('furni_rare_dragonlamp*1_desc', 'Out of the deep blue!'), + ('furni_wooden_screen*2_desc', 'Add an exotic touch to your room'), + ('furni_prizetrophy7*1_name', 'Gold Habbo trophy'), + ('furni_carpet_standard*2_name', 'Floor Rug'), + ('furni_arabian_teamk_desc', 'Quench that desert thirst'), + ('furni_romantique_chair*2_name', 'Lime Romantique Chair'), + ('nav_venue_sw_lobby_tournament_0_name', 'Tournament Lobby'), + ('invitation_expired', 'Sorry, all Welcoming Party members were busy.'), + ('gs_error_game_checkname', 'Please check the Game\'s name!'), + ('furni_sound_set_23_name', 'SFX 4'), + ('furni_grand_piano*2_desc', 'Black Grand Piano'), + ('tutorial_quit', 'Close guide'), + ('furni_chair_basic*8_desc', ''), + ('NUF_getting_room_roommatic_security_tutor', 'Finally you can choose the security settings to your room and whether other users can move your furniture.'), + ('nav_venue_bb_lobby_beginner_1/0_desc', ''), + ('nav_private_helptext_hd_main', 'Habbo Guest Rooms'), + ('club_price', 'One month costs 25 Habbo Credits.'), + ('NUF_playing_games_navigator_tutor', 'Click either SnowStorm or BattleBall to open up a list of the game lounges.'), + ('nav_venue_old_skool_name', 'Old Skool Habbo'), + ('nav_venue_bb_lobby_beginner_4_name', 'Beginners Battle Ball 5'), + ('nav_venue_bb_lobby_tournament_9_name', 'Competitie Battle Ball 10'), + ('sound_machine_alert_song_saved', 'Song "%name%" successfully saved.'), + ('nav_venue_sw_lobby_intermediate_3_name', 'Snow Bombardiers Lobby'), + ('nav_venue_club_massiva/1_desc', 'Strut your funky stuff'), + ('furni_gothic_chair*1_name', 'Gothic Chair Pink'), + ('furni_divider_poly3_desc', 'All bars should have one'), + ('furni_romantique_divan*1_name', 'Pink Romantique Divan'), + ('NUF_playing_games_hotelview_tutor', 'Now we find out where to locate the Habbo Games!'), + ('poster_29_name', 'Gold Tinsel Bundle'), + ('furni_present_gen4_name', 'Gift'), + ('furni_bardesk_polyfon*7_name', 'Green Mode Bardesk'), + ('furni_gothic_sofa*6_name', 'Gothic Sofa Blue'), + ('furni_glass_stool*5_name', 'Glass stool'), + ('nav_venue_sw_lobby_free_5/0_desc', 'Kaikki eritasoiset pelaajat voivat pelata toisiaan vastaan.'), + ('nav_fav_hd', 'Your Favourite Rooms.'), + ('NUF_console_read_tutor', 'The Habbo Console lets you message your Habbo friends, and check whether they are online.'), + ('furni_romantique_tray2_desc', 'Spoil Yourself'), + ('Alert_ModeratorWarning', 'Message from a Moderator:'), + ('furni_giftflowers_name', 'Vase of Flowers'), + ('furni_table_silo_small*7_name', 'Green Area Occasional Table'), + ('furni_menorah_name', 'Menorah'), + ('furni_bed_polyfon_one*2_name', 'Black Mode Single Bed'), + ('console_offline', 'Offline'), + ('gs_mouseover_player', '\\x\\r\\yp'), + ('nav_venue_bb_lobby_amateur_3/0_desc', ''), + ('nav_venue_bb_lobby_amateur_13/0_desc', ''), + ('furni_noob_chair*2_name', 'My first Habbo chair'), + ('furni_doormat_plain*1_desc', 'Available in a variety of colours'), + ('object_displayer_hide_tags', 'Hide tags'), + ('poster_17_desc', 'Beautiful reproduction butterfly'), + ('gs_joinedplayers', 'Players Who Joined: \\x'), + ('furni_table_plasto_round*3_name', 'Round Dining Table'), + ('furni_divider_poly3*8_name', 'Yellow Mode Bardesk Gate'), + ('furni_glass_table*4_name', 'Glass table'), + ('furni_solarium_norja*6_desc', 'Rejuvenate your pixels!'), + ('poster_1006_desc', 'The eyes follow you...'), + ('furni_noob_rug*5_name', 'My first Habbo rug'), + ('buddyremove_pagecounter', 'Page'), + ('poll_alert_answer_missing', 'Please give an answer'), + ('furni_summer_chair*5_desc', 'Beige'), + ('furni_table_plasto_4leg*10_name', 'Occasional Table'), + ('furni_divider_silo2_desc', 'Stylish sectioning'), + ('furni_djesko_turntable_desc', 'For the music-lovers'), + ('nav_remrightsconf', 'You are about to remove all rights from your room. This means that only you will have rights to move and place furni in the room.'), + ('furni_pillow*0_name', 'White Lace Pillow'), + ('sound_machine_eject', 'Eject'), + ('gs_button_ready', 'Ready'), + ('furni_divider_silo1*5_name', 'Pink Area Corner Shelf'), + ('NUF_habbo_home_hotelview_tutor', 'You have now opened a page on the Habbo Website that will give you plenty of information about how to make yourself a Habbo Home.'), + ('furni_traffic_light*4_desc', 'Chill and wait your turn!'), + ('nav_venue_$unit.name$/0_desc', 'Roam more of the hotel\'s corridors'), + ('furni_sporttrack1*2_name', 'Sport track straight asphalt'), + ('furni_sofachair_polyfon_girl_name', 'Armchair'), + ('furni_sound_set_6_desc', 'Background ambience loops'), + ('furni_hal_grave_desc', 'We\'re raising the dead!'), + ('recycler_ready_info', 'Your recycled Furniture is ready. Please either accept or cancel. If you accept, you will receive your recycling reward, detailed below. If you cancel, all your old Furniture will be restored to your hand.'), + ('wallitem_jp_sheet1_name', 'jp_sheet1'), + ('furni_petfood2_name', 'Sardines Mega Multipack'), + ('furni_spotlight_name', 'Habbowood Spotlight'), + ('furni_carpet_soft*6_desc', 'Soft Wool Rug'), + ('gs_lounge_skill', 'Level in this Lounge: \\x \\r (\\y-\\z points)'), + ('nav_help_text', 'Click the Public Spaces tab on the top left of this navigator to find gaming rooms!'), + ('furni_table_plasto_4leg*5_name', 'Occasional Table'), + ('nav_venue_bb_arena_1_name', 'Battle Ball Aloittelijat'), + ('furni_table_silo_med*9_name', 'Red Area Coffee Table'), + ('furni_bed_budget_one*2_name', 'Pink Pura Bed'), + ('nav_venue_sw_lobby_expert_2/0_desc', 'Todellisille lumisotureille.'), + ('furni_rubberchair*6_name', 'Violet Inflatable Chair'), + ('furni_bardeskcorner_polyfon*5_name', 'Candy Corner'), + ('bb_powerup_8', 'Vacuum cleaner'), + ('bb_powerup_6', 'Harlequin'), + ('furni_rare_beehive_bulb*2_name', 'Yellow Amber Lamp'), + ('bb_powerup_7', 'Bomb'), + ('furni_divider_nor2_name', 'Ice Bar-Desk'), + ('bb_powerup_4', 'Cannon'), + ('bb_powerup_5', 'Box of pins'), + ('bb_powerup_2', 'Spring'), + ('bb_powerup_3', 'Flashlight'), + ('console_report', 'Report'), + ('bb_powerup_1', 'Light bulb'), + ('furni_sound_set_43_name', 'SFX 1'), + ('poster_37_desc', 'The Hotels girlband. Dream on!'), + ('interface_icon_messenger', 'Messenger, friends & messages on here'), + ('interface_icon_hand', 'Hand, your inventory'), + ('furni_s_sound_machine*4_name', 'Sound Machine Blue'), + ('nav_venue_sunset_cafe_name', 'Sunset Cafe'), + ('wallitem_sw_stone_desc', 'sw_stone'), + ('reg_check_mail', 'Email'), + ('furni_queue_tile1*7_name', 'Purple Habbo Roller'), + ('pet.hotwords.nest', 'sleep'); +/*!40000 ALTER TABLE `external_texts` ENABLE KEYS */; + +-- Dumping structure for table havana.furniture_versions +CREATE TABLE IF NOT EXISTS `furniture_versions` ( + `asset_name` varchar(255) NOT NULL DEFAULT '', + `version_id` int(11) NOT NULL, + PRIMARY KEY (`asset_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table havana.furniture_versions: ~0 rows (approximately) +DELETE FROM `furniture_versions`; +/*!40000 ALTER TABLE `furniture_versions` DISABLE KEYS */; +/*!40000 ALTER TABLE `furniture_versions` ENABLE KEYS */; + +-- Dumping structure for table havana.games_maps +CREATE TABLE IF NOT EXISTS `games_maps` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `game_type` enum('battleball','snowstorm') NOT NULL DEFAULT 'battleball', + `map_id` enum('6','5','4','3','2','1') NOT NULL DEFAULT '1', + `heightmap` mediumtext NOT NULL, + `tile_map` mediumtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.games_maps: ~5 rows (approximately) +DELETE FROM `games_maps`; +/*!40000 ALTER TABLE `games_maps` DISABLE KEYS */; +INSERT INTO `games_maps` (`id`, `game_type`, `map_id`, `heightmap`, `tile_map`) VALUES + (1, 'battleball', '5', 'xxxx000000000000000xxxx|xxxx000000000000000xxxx|xxxx000000000000000xxxx|xxxx000000000000000xxxx|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|00000000000000000000000|xxxx000000000000000xxxx|xxxx000000000000000xxxx|xxxx000000000000000xxxx|xxxx000000000000000xxxx|', '00001111111111111110000|00001111111111111110000|00001111111111111110000|00001111111111111110000|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|11111111111111111111111|00001111111111111110000|00001111111111111110000|00001111111111111110000|00001111111111111110000|'), + (2, 'battleball', '3', '0000000x000x0000xxxxxxxxxxxxxxxxx|0xx00x0x0x0000000111000xxxxxxxxxx|0xx00x0x0x00000001110000xxxxxxxxx|0000xx000xxx0000xxxxxx000xxxxxxxx|000xxxxxxxxxxxxxxxxxxxx000xxxxxxx|0xxxxxxxxxxxxxxxxxxxxxxx000xxxxxx|0000xxxxxxxxxxxxxxxxxxxxx000xxxxx|xxx0xxx111111111111111xxx0x0xxxxx|0000xxx111111111111111xxx0x0x0xxx|0xxxxxx111111111111111xxx0x0x0xxx|000xxxx1111111111111111000x00000x|x00xxxx1111111111111111000x0x0xxx|0000xxx111112222211111xxxxxxx0000|0000xxx111112222211111xxx000xxxx0|0000xxx111112222211111xxx000000x0|0000xxx111112222211111xxx000xx0x0|x00xxxx111112222211111xxxxxxx0000|x11xxxx11111111111111110000000xxx|x11xxxx11111111111111110000000xxx|x11xxxx111111111111111xxx0xxxxxxx|x00xxxx111111111111111xxx000xxxxx|x00xxxx111111111111111xxxxxxxxxxx|x000xxxxxx11xxxxx11xxxxxxxxxxxxxx|xx000xxxxx00xxxxx00xxxxxxxxxxxxxx|xxx000xxxx00xxxxx00xxxxxxxxxxxxxx|xxxx00000000x000x0000xxxxxxxxxxxx|xxxxx00xxxxxx000x00x0xxxxxxxxxxxx|xxxxxx000000x000x00x0xxxxxxxxxxxx|xxxxxxxxxx0xxx0xx00xxxxxxxxxxxxxx|xxxxxxxx00000x0x000xxxxxxxxxxxxxx|xxxxxxxxxx0x0x000xxxxxxxxxxxxxxxx|xxxxxxxxxx0x0xxx0xxxxxxxxxxxxxxxx|xxxxxxxxxxxx00000xxxxxxxxxxxxxxxx|', '111100000000111100000000000000000|100100000000111100000000000000000|100100000000111100000000000000000|111100000000111100000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000011110000000111100000000000|111100011110000000111100000000000|111100011110011100111100011100000|111100000000011100000000011100000|111100011110011100111100011100000|000000011110000000111100000000000|000000011110000000111100000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000011111110111111100000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000011100000000000000000|000000000000011100000000000000000|000000000000011100000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|000000000000000000000000000000000|'), + (3, 'battleball', '1', 'xxxxxxxxxxxxx444444xxxxxxxxx|xxxxxxxxxxxxx444444xxxxxxxxx|xxxxxxxxxxxxx444444xxxxxxxxx|xxx22222222xx444444xxxxxxxxx|xxx22222222xx444444xxxxxxxxx|xxx22222222xx333333xxxxxxxxx|xxx22222222xx222222xxxxxxxxx|xxx222222222222222222xxxxxxx|xxx222222222222222222xxxxxxx|xxx2222222222222222222100000|xxx2222222222222222222100000|xxxxxxx222222222222222100000|xxxxxxx222222222222222100000|4444432222222222222222100000|4444432222222222222222100000|444443222222222222222xxxxxxx|444443222222222222222xxxxxxx|4444432222222222222222222xxx|4444432222222222222222222xxx|xxxxxxx222222222222222222xxx|xxxxxxx222222222222222222xxx|xxxxxxxxx222222xx22222222xxx|xxxxxxxxx111111xx22222222xxx|xxxxxxxxx000000xx22222222xxx|xxxxxxxxx000000xx22222222xxx|xxxxxxxxx000000xxxxxxxxxxxxx|xxxxxxxxx000000xxxxxxxxxxxxx|xxxxxxxxx000000xxxxxxxxxxxxx|', '0000000000000111111000000000|0000000000000111111000000000|0000000000000111111000000000|0001111111100111111000000000|0001111111100000000000000000|0001111111100000000000000000|0001111111100000000000000000|0001111111111111111110000000|0001111111111111111110000000|0001111111111111111110001111|0001111111111111111110001111|0000000111111111111110001111|0000000111111111111110001111|1111000111111111111110001111|1111000111111111111110001111|1111000111111111111110000000|1111000111111111111110000000|1111000111111111111111110000|1111000111111111111111110000|0000000111111111111111111000|0000000111111111111111111000|0000000000000000011111111000|0000000000000000011111111000|0000000000000000011111111000|0000000001111110011111111000|0000000001111110000000000000|0000000001111110000000000000|0000000001111110000000000000|'), + (4, 'battleball', '2', 'xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|2222xxx00000000xxx00000000xxx2222|2222xxx00000000xxx00000000xxx2222|222221000000000xxx000000000122222|222221000000000xxx000000000122222|2222xxx00000000xxx00000000xxx2222|2222xxx00000000xxx00000000xxx2222|xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx0000000000000000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|xxxxxxx00000000xxx00000000xxxxxxx|', '000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|111100011111111000111111110001111|111100011111111000111111110001111|111100011111111000111111110001111|111100011111111000111111110001111|111100011111111000111111110001111|111100011111111000111111110001111|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|000000011111111000111111110000000|'), + (5, 'battleball', '4', 'xxxxxxx222222222222222xxxxxxxx|xxxxxxx222222222222222xxxxxxxx|xxxxxxx222222222222222xxxxxxxx|xxxxxxx222222222222222xxxxxxxx|xxxxxxx222222222222222xxxxxxxx|00012222222222222222222211111x|00012222222222222222222211111x|00012222222222222222222211111x|00012222222222222222222211111x|00xxxxx222222222222222xxx1111x|000xxxx222222222222222xxx0000x|0000xxx222222222222222x0000000|0000xxx22222222222222210000000|0000xxx22222222222222210000000|0000xxx222222222222222x0000000|0000xxx222222222222222xxxxxxxx|00000xx222222222222222xxxxxxxx|000000xxxx11xx11xx11xxxxxxxxxx|x0000000000000000000000xxxxxxx|xx000000000000000000000xxxxxxx|xxx00000000000000000000xxxxxxx|xxxx0000000000000000000xxxxxxx|', '000000011111111111111100000000|000000011111111111111100000000|000000011111111111111100000000|000000011111111111111100000000|000000011111111111111100000000|000000011111111111111100011110|000000011111111111111100011110|000000011111111111111100011110|000000011111111111111100011110|110000011111111111111100000000|111000011111111111111100000000|111100011111111111111101111111|111100011111111111111101111111|111100011111111111111101111111|111100011111111111111101111111|111100011111111111111100000000|111110011111111111111100000000|111111000000000000000000000000|011111111111111111111110000000|001111111111111111111110000000|000111111111111111111110000000|000011111111111111111110000000|'); +/*!40000 ALTER TABLE `games_maps` ENABLE KEYS */; + +-- Dumping structure for table havana.games_played_history +CREATE TABLE IF NOT EXISTS `games_played_history` ( + `id` varchar(255) NOT NULL, + `game_name` text NOT NULL DEFAULT '', + `game_creator` int(11) NOT NULL, + `game_type` varchar(50) NOT NULL DEFAULT '', + `map_id` int(11) NOT NULL, + `winning_team` int(11) NOT NULL, + `winning_team_score` int(11) NOT NULL, + `extra_data` text NOT NULL, + `team_data` text NOT NULL, + `played_at` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.games_played_history: ~0 rows (approximately) +DELETE FROM `games_played_history`; +/*!40000 ALTER TABLE `games_played_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `games_played_history` ENABLE KEYS */; + +-- Dumping structure for table havana.games_player_spawns +CREATE TABLE IF NOT EXISTS `games_player_spawns` ( + `type` enum('battleball','snowstorm') NOT NULL DEFAULT 'battleball', + `map_id` int(11) NOT NULL, + `team_id` int(11) NOT NULL, + `x` int(11) NOT NULL, + `y` int(11) NOT NULL, + `rotation` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.games_player_spawns: ~120 rows (approximately) +DELETE FROM `games_player_spawns`; +/*!40000 ALTER TABLE `games_player_spawns` DISABLE KEYS */; +INSERT INTO `games_player_spawns` (`type`, `map_id`, `team_id`, `x`, `y`, `rotation`) VALUES + ('battleball', 5, 0, 22, 14, 6), + ('battleball', 5, 0, 22, 13, 6), + ('battleball', 5, 0, 22, 12, 6), + ('battleball', 5, 0, 22, 11, 6), + ('battleball', 5, 0, 22, 10, 6), + ('battleball', 5, 0, 22, 9, 6), + ('battleball', 5, 3, 9, 0, 4), + ('battleball', 5, 3, 10, 0, 4), + ('battleball', 5, 3, 11, 0, 4), + ('battleball', 5, 3, 12, 0, 4), + ('battleball', 5, 3, 13, 0, 4), + ('battleball', 5, 3, 14, 0, 4), + ('battleball', 5, 2, 9, 22, 0), + ('battleball', 5, 2, 10, 22, 0), + ('battleball', 5, 2, 11, 22, 0), + ('battleball', 5, 2, 12, 22, 0), + ('battleball', 5, 2, 13, 22, 0), + ('battleball', 5, 2, 14, 22, 0), + ('battleball', 5, 1, 0, 14, 2), + ('battleball', 5, 1, 0, 13, 2), + ('battleball', 5, 1, 0, 12, 2), + ('battleball', 5, 1, 0, 11, 2), + ('battleball', 5, 1, 0, 10, 2), + ('battleball', 5, 1, 0, 9, 2), + ('battleball', 3, 0, 21, 11, 6), + ('battleball', 3, 0, 21, 12, 6), + ('battleball', 3, 0, 21, 13, 6), + ('battleball', 3, 0, 21, 14, 6), + ('battleball', 3, 0, 21, 15, 6), + ('battleball', 3, 0, 21, 16, 6), + ('battleball', 3, 1, 7, 16, 2), + ('battleball', 3, 1, 7, 15, 2), + ('battleball', 3, 1, 7, 14, 2), + ('battleball', 3, 1, 7, 13, 2), + ('battleball', 3, 1, 7, 12, 2), + ('battleball', 3, 1, 7, 11, 2), + ('battleball', 3, 2, 11, 7, 4), + ('battleball', 3, 2, 12, 7, 4), + ('battleball', 3, 2, 13, 7, 4), + ('battleball', 3, 2, 14, 7, 4), + ('battleball', 3, 2, 15, 7, 4), + ('battleball', 3, 2, 16, 7, 4), + ('battleball', 3, 3, 16, 21, 0), + ('battleball', 3, 3, 15, 21, 0), + ('battleball', 3, 3, 14, 21, 0), + ('battleball', 3, 3, 13, 21, 0), + ('battleball', 3, 3, 12, 21, 0), + ('battleball', 3, 3, 11, 21, 0), + ('battleball', 1, 0, 0, 13, 2), + ('battleball', 1, 0, 0, 14, 2), + ('battleball', 1, 0, 0, 15, 2), + ('battleball', 1, 0, 0, 16, 2), + ('battleball', 1, 0, 0, 17, 2), + ('battleball', 1, 0, 0, 18, 2), + ('battleball', 1, 1, 27, 9, 6), + ('battleball', 1, 1, 27, 10, 6), + ('battleball', 1, 1, 27, 11, 6), + ('battleball', 1, 1, 27, 12, 6), + ('battleball', 1, 1, 27, 13, 6), + ('battleball', 1, 1, 27, 14, 6), + ('battleball', 1, 3, 13, 0, 4), + ('battleball', 1, 3, 14, 0, 4), + ('battleball', 1, 3, 15, 0, 4), + ('battleball', 1, 3, 16, 0, 4), + ('battleball', 1, 3, 17, 0, 4), + ('battleball', 1, 3, 18, 0, 4), + ('battleball', 1, 2, 14, 27, 0), + ('battleball', 1, 2, 13, 27, 0), + ('battleball', 1, 2, 12, 27, 0), + ('battleball', 1, 2, 11, 27, 0), + ('battleball', 1, 2, 10, 27, 0), + ('battleball', 1, 2, 9, 27, 0), + ('battleball', 2, 0, 0, 7, 2), + ('battleball', 2, 0, 0, 8, 2), + ('battleball', 2, 0, 0, 9, 2), + ('battleball', 2, 0, 0, 10, 2), + ('battleball', 2, 0, 0, 11, 2), + ('battleball', 2, 0, 0, 12, 2), + ('battleball', 2, 2, 14, 12, 6), + ('battleball', 2, 2, 14, 11, 6), + ('battleball', 2, 2, 14, 10, 6), + ('battleball', 2, 2, 14, 9, 6), + ('battleball', 2, 2, 14, 8, 6), + ('battleball', 2, 2, 14, 7, 6), + ('battleball', 2, 3, 18, 8, 2), + ('battleball', 2, 3, 18, 9, 2), + ('battleball', 2, 3, 18, 10, 2), + ('battleball', 2, 3, 18, 11, 2), + ('battleball', 2, 3, 18, 12, 2), + ('battleball', 2, 3, 18, 13, 2), + ('battleball', 2, 1, 32, 7, 6), + ('battleball', 2, 1, 32, 8, 6), + ('battleball', 2, 1, 32, 9, 6), + ('battleball', 2, 1, 32, 10, 6), + ('battleball', 2, 1, 32, 11, 6), + ('battleball', 2, 1, 32, 12, 6), + ('battleball', 4, 0, 12, 16, 0), + ('battleball', 4, 0, 13, 16, 0), + ('battleball', 4, 0, 14, 16, 0), + ('battleball', 4, 0, 15, 16, 0), + ('battleball', 4, 0, 16, 16, 0), + ('battleball', 4, 0, 17, 16, 0), + ('battleball', 4, 1, 17, 0, 4), + ('battleball', 4, 1, 16, 0, 4), + ('battleball', 4, 1, 15, 0, 4), + ('battleball', 4, 1, 14, 0, 4), + ('battleball', 4, 1, 13, 0, 4), + ('battleball', 4, 1, 12, 0, 4), + ('battleball', 4, 2, 7, 5, 2), + ('battleball', 4, 2, 7, 6, 2), + ('battleball', 4, 2, 7, 7, 2), + ('battleball', 4, 2, 7, 8, 2), + ('battleball', 4, 2, 7, 9, 2), + ('battleball', 4, 2, 7, 10, 2), + ('battleball', 4, 3, 21, 5, 6), + ('battleball', 4, 3, 21, 6, 6), + ('battleball', 4, 3, 21, 7, 6), + ('battleball', 4, 3, 21, 8, 6), + ('battleball', 4, 3, 21, 9, 6), + ('battleball', 4, 3, 21, 10, 6); +/*!40000 ALTER TABLE `games_player_spawns` ENABLE KEYS */; + +-- Dumping structure for table havana.games_ranks +CREATE TABLE IF NOT EXISTS `games_ranks` ( + `id` int(5) NOT NULL AUTO_INCREMENT, + `type` enum('battleball','snowstorm') NOT NULL DEFAULT 'battleball', + `title` varchar(50) NOT NULL, + `min_points` int(10) NOT NULL, + `max_points` int(10) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.games_ranks: 8 rows +DELETE FROM `games_ranks`; +/*!40000 ALTER TABLE `games_ranks` DISABLE KEYS */; +INSERT INTO `games_ranks` (`id`, `type`, `title`, `min_points`, `max_points`) VALUES + (1, 'battleball', 'Beginner', 0, 10000), + (2, 'battleball', 'Amateur', 10001, 100000), + (3, 'battleball', 'Intermediate', 100001, 500000), + (4, 'battleball', 'Expert', 500001, 0), + (5, 'snowstorm', 'Beginner', 0, 10000), + (6, 'snowstorm', 'Amateur', 10001, 100000), + (7, 'snowstorm', 'Intermediate', 100001, 500000), + (8, 'snowstorm', 'Expert', 500001, 0); +/*!40000 ALTER TABLE `games_ranks` ENABLE KEYS */; + +-- Dumping structure for table havana.groups_details +CREATE TABLE IF NOT EXISTS `groups_details` ( + `id` int(10) NOT NULL AUTO_INCREMENT, + `name` varchar(45) NOT NULL, + `description` mediumtext NOT NULL, + `owner_id` int(10) NOT NULL, + `room_id` int(10) NOT NULL DEFAULT 0, + `badge` mediumtext NOT NULL DEFAULT 'b0503Xs09114s05013s05015', + `recommended` int(1) NOT NULL DEFAULT 0, + `background` varchar(255) NOT NULL DEFAULT 'bg_colour_08', + `views` int(15) NOT NULL DEFAULT 0, + `topics` smallint(1) NOT NULL DEFAULT 0, + `group_type` tinyint(3) unsigned NOT NULL DEFAULT 0, + `forum_type` tinyint(1) unsigned NOT NULL DEFAULT 0, + `forum_premission` tinyint(1) unsigned NOT NULL DEFAULT 0, + `alias` varchar(30) DEFAULT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `alias` (`alias`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.groups_details: ~0 rows (approximately) +DELETE FROM `groups_details`; +/*!40000 ALTER TABLE `groups_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `groups_details` ENABLE KEYS */; + +-- Dumping structure for table havana.groups_edit_sessions +CREATE TABLE IF NOT EXISTS `groups_edit_sessions` ( + `user_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + `expire` bigint(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.groups_edit_sessions: ~0 rows (approximately) +DELETE FROM `groups_edit_sessions`; +/*!40000 ALTER TABLE `groups_edit_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `groups_edit_sessions` ENABLE KEYS */; + +-- Dumping structure for table havana.groups_memberships +CREATE TABLE IF NOT EXISTS `groups_memberships` ( + `user_id` int(10) NOT NULL, + `group_id` int(10) NOT NULL, + `member_rank` enum('3','2','1') NOT NULL DEFAULT '1', + `is_pending` tinyint(11) NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + KEY `userid` (`user_id`), + KEY `groupid` (`group_id`), + KEY `group_id` (`group_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.groups_memberships: ~0 rows (approximately) +DELETE FROM `groups_memberships`; +/*!40000 ALTER TABLE `groups_memberships` DISABLE KEYS */; +/*!40000 ALTER TABLE `groups_memberships` ENABLE KEYS */; + +-- Dumping structure for table havana.homes_details +CREATE TABLE IF NOT EXISTS `homes_details` ( + `user_id` int(10) NOT NULL, + `background` varchar(255) NOT NULL DEFAULT 'bg_pattern_abstract2', + UNIQUE KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.homes_details: ~0 rows (approximately) +DELETE FROM `homes_details`; +/*!40000 ALTER TABLE `homes_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `homes_details` ENABLE KEYS */; + +-- Dumping structure for table havana.homes_edit_sessions +CREATE TABLE IF NOT EXISTS `homes_edit_sessions` ( + `user_id` int(11) NOT NULL, + `expire` bigint(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.homes_edit_sessions: ~0 rows (approximately) +DELETE FROM `homes_edit_sessions`; +/*!40000 ALTER TABLE `homes_edit_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `homes_edit_sessions` ENABLE KEYS */; + +-- Dumping structure for table havana.homes_ratings +CREATE TABLE IF NOT EXISTS `homes_ratings` ( + `user_id` int(11) NOT NULL, + `home_id` int(11) NOT NULL, + `rating` int(11) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.homes_ratings: ~0 rows (approximately) +DELETE FROM `homes_ratings`; +/*!40000 ALTER TABLE `homes_ratings` DISABLE KEYS */; +/*!40000 ALTER TABLE `homes_ratings` ENABLE KEYS */; + +-- Dumping structure for table havana.housekeeping_audit_log +CREATE TABLE IF NOT EXISTS `housekeeping_audit_log` ( + `action` enum('alert_user','kick_user','ban_user','room_alert','room_kick') NOT NULL, + `user_id` int(11) NOT NULL, + `target_id` int(11) NOT NULL DEFAULT -1, + `message` varchar(255) NOT NULL DEFAULT '', + `extra_notes` varchar(255) NOT NULL DEFAULT '', + `created_at` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.housekeeping_audit_log: ~0 rows (approximately) +DELETE FROM `housekeeping_audit_log`; +/*!40000 ALTER TABLE `housekeeping_audit_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `housekeeping_audit_log` ENABLE KEYS */; + +-- Dumping structure for table havana.infobus_polls +CREATE TABLE IF NOT EXISTS `infobus_polls` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `initiated_by` int(11) NOT NULL, + `poll_data` text NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.infobus_polls: ~0 rows (approximately) +DELETE FROM `infobus_polls`; +/*!40000 ALTER TABLE `infobus_polls` DISABLE KEYS */; +/*!40000 ALTER TABLE `infobus_polls` ENABLE KEYS */; + +-- Dumping structure for table havana.infobus_polls_answers +CREATE TABLE IF NOT EXISTS `infobus_polls_answers` ( + `poll_id` int(11) NOT NULL, + `answer` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + KEY `poll_id` (`poll_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.infobus_polls_answers: ~0 rows (approximately) +DELETE FROM `infobus_polls_answers`; +/*!40000 ALTER TABLE `infobus_polls_answers` DISABLE KEYS */; +/*!40000 ALTER TABLE `infobus_polls_answers` ENABLE KEYS */; + +-- Dumping structure for table havana.items +CREATE TABLE IF NOT EXISTS `items` ( + `id` bigint(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) NOT NULL DEFAULT -1, + `user_id` int(11) DEFAULT NULL, + `room_id` int(11) DEFAULT 0, + `definition_id` int(11) NOT NULL, + `x` varchar(255) DEFAULT '0', + `y` varchar(255) DEFAULT '0', + `z` varchar(255) DEFAULT '0', + `wall_position` varchar(255) NOT NULL DEFAULT '', + `rotation` int(11) DEFAULT 0, + `custom_data` longtext NOT NULL, + `is_hidden` tinyint(1) NOT NULL DEFAULT 0, + `is_trading` tinyint(1) NOT NULL DEFAULT 0, + `expire_time` bigint(11) NOT NULL DEFAULT -1, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`), + KEY `room_id` (`room_id`), + KEY `user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.items: ~0 rows (approximately) +DELETE FROM `items`; +/*!40000 ALTER TABLE `items` DISABLE KEYS */; +/*!40000 ALTER TABLE `items` ENABLE KEYS */; + +-- Dumping structure for table havana.items_definitions +CREATE TABLE IF NOT EXISTS `items_definitions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sprite` varchar(50) DEFAULT NULL, + `name` varchar(100) DEFAULT NULL, + `description` varchar(100) DEFAULT NULL, + `sprite_id` int(11) NOT NULL, + `length` int(11) NOT NULL DEFAULT 0, + `width` int(11) NOT NULL DEFAULT 0, + `top_height` double NOT NULL DEFAULT 0, + `max_status` varchar(11) NOT NULL DEFAULT '0', + `behaviour` varchar(150) NOT NULL DEFAULT '', + `interactor` varchar(150) NOT NULL DEFAULT 'default', + `is_tradable` tinyint(1) NOT NULL DEFAULT 1, + `is_recyclable` tinyint(1) NOT NULL DEFAULT 1, + `drink_ids` text DEFAULT NULL, + `rental_time` int(11) NOT NULL DEFAULT -1, + `allowed_rotations` tinytext NOT NULL DEFAULT '', + `heights` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1909 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT; + +-- Dumping data for table havana.items_definitions: ~1,938 rows (approximately) +DELETE FROM `items_definitions`; +/*!40000 ALTER TABLE `items_definitions` DISABLE KEYS */; +INSERT INTO `items_definitions` (`id`, `sprite`, `name`, `description`, `sprite_id`, `length`, `width`, `top_height`, `max_status`, `behaviour`, `interactor`, `is_tradable`, `is_recyclable`, `drink_ids`, `rental_time`, `allowed_rotations`, `heights`) VALUES + (1, 'shelves_norja', 'Bookcase', 'For nic naks and art deco books', 293, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (2, 'shelves_polyfon', 'Bookcase', 'For the arty pad', 349, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (3, 'shelves_silo', 'Bookcase', 'For nic naks and art deco books', 82, 2, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (4, 'table_polyfon_small', 'Small Coffee Table', 'For serving a stylish latte', 346, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (5, 'chair_polyfon', 'Dining Chair', 'Dining Chair', 343, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (6, 'table_silo_med', 'Coffee Table', 'Wipe clean and unobtrusive', 92, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (7, 'stand_polyfon_z', 'Shelf', 'Tidy up', 348, 1, 1, 0.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (8, 'chair_silo', 'Dining Chair', 'Keep it simple', 89, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (9, 'sofa_silo', 'Two-Seater Sofa', 'Cushioned, understated comfort', 83, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (10, 'couch_norja', 'Bench', 'Two can perch comfortably', 291, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (11, 'chair_norja', 'Chair', 'Sleek and chic for each cheek', 290, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (12, 'table_polyfon_med', 'Large Coffee Table', 'For larger gatherings', 345, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (13, 'doormat_love', 'Doormat', 'Welcome Habbos in style', 504, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (14, 'doormat_plain', 'Doormat', 'Available in a variety of colours', 505, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (15, 'sofachair_polyfon', 'Armchair', 'Soft and comfortable', 338, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (16, 'sofachair_silo', 'Armchair', 'Large, but worth it', 84, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (17, 'bed_polyfon', 'Double Bed', 'Give yourself space to stretch out', 334, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (18, 'bed_polyfon_one', 'Single Bed', 'Cot of the artistic', 335, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (19, 'bed_silo_one', 'Single Bed', 'Plain and simple', 81, 1, 3, 1.7, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (20, 'bed_silo_two', 'Double Bed', 'Plain and simple x2', 80, 2, 3, 1.7, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (21, 'table_silo_small', 'Occasional Table', 'For those random moments', 85, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (22, 'bed_armas_two', 'Double Bed', 'King-sized pine comfort', 318, 2, 3, 1.7, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (23, 'shelves_armas', 'Bookcase', 'For all those fire-side stories', 327, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (24, 'bench_armas', 'Bench', 'To complete the dining set', 323, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (25, 'table_armas', 'Dining Table', 'For informal dining', 322, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (26, 'small_table_armas', 'Occasional Table', 'Practical and beautiful', 332, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (27, 'small_chair_armas', 'Stool', 'Rustic charm at it\'s best', 333, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (28, 'fireplace_armas', 'Fireplace', 'Authentic, real flame fire', 320, 2, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (29, 'lamp_armas', 'Table Lamp', 'Ambient lighting is essential', 330, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (30, 'bed_armas_one', 'Single Bed', 'Rustic charm for one', 319, 1, 3, 1.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (31, 'carpet_standard', 'Floor rug', 'Available in a variety of colours', 486, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (32, 'carpet_armas', 'Hand-Woven Rug', 'Adds instant warmth', 512, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (33, 'carpet_polar', 'Faux-Fur Bear Rug', 'For cuddling up on', 513, 2, 3, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (34, 'fireplace_polyfon', 'Fireplace', 'Comfort in stainless steel', 336, 2, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (35, 'carpet_standard*1', 'Floor Rug', 'Available in a variety of colours', 489, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (36, 'doormat_plain*1', 'Doormat', 'Available in a variety of colours', 506, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (37, 'carpet_standard*2', 'Floor Rug', 'Available in a variety of colours', 490, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (38, 'carpet_standard*3', 'Floor Rug', 'Available in a variety of colours', 491, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (39, 'carpet_standard*4', 'Floor Rug', 'Available in a variety of colours', 492, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (40, 'doormat_plain*6', 'Doormat', 'Available in a variety of colours', 511, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (41, 'carpet_standard*5', 'Floor Rug', 'Available in a variety of colours', 493, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (42, 'carpet_standard*6', 'Floor Rug', 'Available in a variety of colours', 494, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (43, 'pizza', 'Pizza Box', 'You dirty Habbo', 98, 1, 1, 0.1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (44, 'drinks', 'Empty Cans', 'Are you a slob too?', 99, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (45, 'bar_polyfon', 'Mini-Bar', 'You naughty Habbo!', 339, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '1,2', -1, '2,4', NULL), + (46, 'plant_cruddy', 'Aloe Vera', 'Goodbye Bert...', 1127, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (47, 'bottle', 'Empty Spinning Bottle', 'For interesting games!', 100, 1, 1, 0, '21', 'solid,requires_touching_for_interaction,dice', 'default', 1, 1, '', -1, '0', NULL), + (48, 'bardesk_polyfon', 'Bar/desk', 'Perfect for work or play', 341, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (49, 'bardeskcorner_polyfon', 'Corner Cabinet/Desk', 'Tuck it away', 342, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (50, 'bar_armas', 'Barrel Minibar', 'It\'s a barrel of laughs and a great talking point', 328, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '1,2', -1, '2,4', NULL), + (51, 'bartable_armas', 'Bardesk', 'Bar-Style Table - essential for extra guests', 321, 1, 3, 1.4, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (52, 'bar_chair_armas', 'Barrel Stool', 'The ultimate recycled furniture', 329, 1, 1, 1.3, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (53, 'carpet_soft', 'Soft Wool Rug', 'Soft Wool Rug', 497, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (54, 'carpet_soft*1', 'Soft Wool Rug', 'Soft Wool Rug', 498, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (55, 'carpet_soft*2', 'Soft Wool Rug', 'Soft Wool Rug', 499, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (56, 'carpet_soft*3', 'Soft Wool Rug', 'Soft Wool Rug', 500, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (57, 'carpet_soft*4', 'Soft Wool Rug', 'Soft Wool Rug', 501, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (58, 'carpet_soft*5', 'Soft Wool Rug', 'Soft Wool Rug', 502, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (59, 'carpet_soft*6', 'Soft Wool Rug', 'Soft Wool Rug', 503, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (60, 'red_tv', 'Portable TV', 'Don?t miss those soaps', 96, 1, 1, 0, '2', 'solid,custom_data_on_off', 'default', 1, 1, '', -1, '2,4', NULL), + (61, 'wood_tv', 'Large TV', 'HNN weatherman Kiazie', 95, 1, 2, 0, '4', 'solid,custom_data_numeric_state', 'default', 1, 1, '', -1, '0,2', NULL), + (62, 'carpet_polar*1', 'Pink Faux-Fur Bear Rug', 'Cute', 142, 2, 3, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (63, 'smooth_table_polyfon', 'Large Dining Table', 'For larger gatherings', 347, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (64, 'sofachair_polyfon_girl', 'Armchair', 'Think pink', 140, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (65, 'bed_polyfon_girl_one', 'Single Bed', 'Snuggle down in princess pink', 143, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (66, 'bed_polyfon_girl', 'Double Bed', 'Snuggle down in princess pink', 144, 2, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (67, 'sofa_polyfon_girl', 'Two-seater Sofa', 'Romantic pink for two', 141, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (68, 'bed_budgetb_one', 'Plain Single Bed', 'All you need for a good night\'s kip', 461, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (69, 'bed_budgetb', 'Plain Double Bed', 'Sweet dreams for two', 460, 2, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (70, 'plant_pineapple', 'Pineapple Plant', 'Needs loving glances', 360, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (71, 'plant_fruittree', 'Fruit Tree', 'Great yield and sweet fruit', 363, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (72, 'plant_small_cactus', 'Small Cactus', 'Even less watering than the real world', 364, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (73, 'plant_bonsai', 'Bonsai Tree', 'You can be sure it lives', 361, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (74, 'plant_big_cactus', 'Mature Cactus', 'Habbo Dreams monster in hiding! Shhhh', 362, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (75, 'plant_yukka', 'Yukka Plant', 'Easy to care for', 359, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (76, 'carpet_standard*7', 'Floor Rug', 'Available in a variety of colours', 495, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (77, 'carpet_standard*8', 'Floor Rug', 'Available in a variety of colours', 496, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (78, 'carpet_standard*9', NULL, NULL, 11219, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (79, 'carpet_standard*a', 'Floor Rug', 'Available in a variety of colours', 487, 3, 5, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (80, 'carpet_standard*b', 'Floor Rug', 'Available in a variety of colours', 488, 3, 5, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (81, 'plant_sunflower', 'Cut Sunflower', 'For happy Habbos', 358, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (82, 'plant_rose', 'Cut Roses', 'Sleek and chic', 357, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (83, 'tv_luxus', 'Digital TV', 'Bang up to date', 94, 1, 3, 0, '2', 'solid,custom_data_on_off', 'default', 1, 1, '', -1, '0,2', NULL), + (84, 'bath', 'Bubble Bath', 'The ultimate in pampering', 128, 1, 2, 1, '2', 'can_sit_on_top,custom_data_numeric_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (85, 'sink', 'Sink', 'Hot and cold thrown in for no charge', 129, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '18', -1, '2,4', NULL), + (86, 'toilet', 'Loo Seat', 'Loo Seat', 131, 1, 1, 1.1, '2', 'can_sit_on_top,custom_data_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (87, 'duck', 'Rubber Duck', 'Every bather needs one', 130, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (88, 'tile', 'Floor Tiles', 'In a choice of colours', 134, 4, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (89, 'toilet_red', 'Loo Seat', 'Loo Seat', 132, 1, 1, 1.1, '2', 'can_sit_on_top,custom_data_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (90, 'toilet_yell', 'Loo Seat', 'Loo Seat', 133, 1, 1, 1.1, '2', 'can_sit_on_top,custom_data_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (91, 'tile_red', 'Floor Tiles', 'In a choice of colours', 135, 4, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (92, 'tile_yell', 'Floor Tiles', 'In a choice of colours', 136, 4, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (93, 'bar_basic', 'A Pura Minibar', 'A pura series 300 minibar', 441, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '1,2', -1, '2,4', NULL), + (94, 'shelves_basic', 'Pura Shelves', 'Pura series 404 shelves', 440, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (95, 'soft_sofachair_norja', 'iced sofachair', 'Soft iced sofachair', 294, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (96, 'soft_sofa_norja', 'iced sofa', 'A soft iced sofa', 295, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (97, 'lamp_basic', 'Pura Lamp', 'Switch on the atmosphere with this sophisticated light', 443, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (98, 'lamp2_armas', 'Lodge Candle', 'Wax lyrical with some old-world charm', 331, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (99, 'fridge', 'Pura Refridgerator', 'Keep cool with a chilled snack or drink', 442, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '3,4,5,6', -1, '2,4', NULL), + (100, 'door', 'Telephone Box', 'Dr Who?', 535, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (101, 'doorB', 'Wardrobe', 'Narnia this way!', 537, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (102, 'doorC', 'Portaloo', 'In a hurry?', 536, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (103, 'menorah', 'Menorah', 'Light up your room', 103, 1, 1, 0, '2', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (104, 'ham', 'Joint of Ham', 'Tuck in', 108, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (105, 'wcandleset', 'White Candle Plate', 'Simple but stylish', 106, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (106, 'rcandleset', 'Red Candle Plate', 'Simple but stylish', 107, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (107, 'throne', 'Throne', 'Important Habbos only', 1152, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (108, 'giftflowers', 'Vase of Flowers', 'Guaranteed to stay fresh', 356, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (109, 'habbocake', 'Cake', 'Save me a slice!', 102, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (110, 'bunny', 'Squidgy Bunny', 'Yours to cuddle up to', 655, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (111, 'edice', 'Holo-dice', 'What\'s your lucky number?', 101, 1, 1, 0, '101', 'solid,requires_touching_for_interaction,dice', 'default', 1, 1, '', -1, '0', NULL), + (112, 'club_sofa', 'Club sofa', 'Club sofa', 977, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (113, 'divider_poly3', 'Hatch (Lockable)', 'All bars should have one', 340, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (114, 'divider_arm1', 'Corner plinth', 'Good solid wood', 325, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (115, 'divider_arm2', 'Room divider', 'I wooden go there', 326, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (116, 'divider_arm3', 'Gate (lockable)', 'Knock, knock...', 324, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (117, 'divider_nor1', 'Ice Corner', 'Looks squishy, but isn\'t', 297, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (118, 'divider_silo1', 'Corner Shelf', 'Neat and natty', 88, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (119, 'divider_nor2', 'Ice Bar-Desk', 'Strong, yet soft looking', 296, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (120, 'divider_silo2', 'Screen', 'Stylish sectioning', 87, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (121, 'divider_nor3', 'Door (Lockable)', 'Do go through...', 298, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (122, 'divider_silo3', 'Gate (lockable)', 'Form following function', 86, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (123, 'mocchamaster', 'Mochamaster', 'Wake up and smell it!', 980, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_on_off', 'vending_machine', 1, 1, '8,9,10,11,12,13,14,15,16,17', -1, '2,4', NULL), + (124, 'carpet_legocourt', 'Basketball Court', 'Line up your slam dunk', 523, 3, 3, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (125, 'bench_lego', 'Team Bench', 'For your reserve players', 524, 4, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (126, 'legotrophy', 'Basketball Trophy', 'For the winning team', 521, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (127, 'edicehc', 'Dicemaster', 'Click and roll!', 981, 1, 1, 0, '101', 'solid,requires_touching_for_interaction,dice', 'default', 1, 1, '', -1, '0', NULL), + (128, 'hcsohva', 'Throne Sofa', 'For royal bottoms...', 984, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (129, 'hcamme', 'Tubmaster', 'Time for a soak', 982, 1, 2, 0.9, '2', 'can_sit_on_top,custom_data_numeric_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (130, 'hockey_score', 'Scoreboard', '...for keeping your score', 520, 1, 1, 0, '100', 'solid,requires_touching_for_interaction,custom_data_numeric_state', 'scoreboard', 1, 1, '', -1, '2,4', NULL), + (131, 'hockey_light', 'Lert', 'Set it off.', 109, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'lert', 1, 1, '', -1, '0,2,4,6', NULL), + (132, 'doorD', 'Imperial Teleport', 'Let\'s go over tzar!', 983, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (133, 'prizetrophy2*3', 'Duck trophy', 'Breathtaking bronze', 605, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (134, 'prizetrophy3*3', 'Globe trophy', 'Breathtaking bronze', 1155, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (135, 'prizetrophy4*3', 'Fish trophy', 'Breathtaking bronze', 1154, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (136, 'prizetrophy5*3', 'Duo trophy', 'Breathtaking bronze', 614, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (137, 'prizetrophy6*3', 'Champion trophy', 'Breathtaking bronze', 1156, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (138, 'prizetrophy2*1', 'Duck trophy', 'Glittery gold', 603, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (139, 'prizetrophy3*1', 'Globe trophy', 'Glittery gold', 1162, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (140, 'prizetrophy4*1', 'Fish trophy', 'Glittery gold', 1161, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (141, 'prizetrophy5*1', 'Duo trophy', 'Glittery gold', 612, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (142, 'prizetrophy6*1', 'Champion trophy', 'Glittery gold', 1164, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (143, 'prizetrophy*2', 'Classic trophy', 'Shiny silver', 601, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (144, 'prizetrophy2*2', 'Duck trophy', 'Shiny silver', 604, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (145, 'prizetrophy3*2', 'Globe trophy', 'Shiny silver', 1159, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (146, 'prizetrophy4*2', 'Fish trophy', 'Shiny silver', 1157, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (147, 'prizetrophy5*2', 'Duo trophy', 'Shiny silver', 613, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (148, 'prizetrophy6*2', 'Champion trophy', 'Shiny silver', 1160, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (149, 'prizetrophy*3', 'Classic trophy', 'Breathtaking bronze', 602, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (150, 'hc_lmp', 'Oil Lamp', 'Be enlightened', 985, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (151, 'hc_tbl', 'Nordic Table', 'Perfect for banquets', 986, 1, 3, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (152, 'hc_chr', 'Majestic Chair', 'Royal comfort', 987, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (153, 'hc_dsk', 'Study Desk', 'For Habbo scholars', 988, 1, 2, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (154, 'pets0', NULL, NULL, 36, 1, 1, 0, '2', 'requires_rights_for_interaction,redirect_rotation_4,can_stand_on_top', 'pet_nest', 1, 1, '', -1, '0,2,4,6', NULL), + (155, 'petfood1', 'Bones Mega Multipack', 'Fantastic 20% Saving!', 41, 1, 1, 0, '6', 'requires_rights_for_interaction,pet_dog_food,can_stand_on_top,solid', 'default', 1, 1, '', -1, '2', NULL), + (156, 'petfood2', 'Sardines Mega Multipack', 'Fantastic 20% Saving!', 42, 1, 1, 0, '6', 'requires_rights_for_interaction,pet_cat_food,can_stand_on_top,solid', 'default', 1, 1, '', -1, '2', NULL), + (157, 'petfood3', 'Cabbage Mega Multipack', 'Fantastic 20% Saving!', 43, 1, 1, 0, '6', 'requires_rights_for_interaction,pet_food,can_stand_on_top,solid', 'default', 1, 1, '', -1, '2', NULL), + (158, 'waterbowl*4', 'Blue Water Bowl', 'Aqua unlimited', 48, 1, 1, 0, '6', 'can_stand_on_top,requires_rights_for_interaction,pet_water_bowl', 'default', 1, 1, '', -1, '2', NULL), + (159, 'waterbowl*5', 'Brown Water Bowl', 'Aqua unlimited', 49, 1, 1, 0, '6', 'can_stand_on_top,requires_rights_for_interaction,pet_water_bowl', 'default', 1, 1, '', -1, '2', NULL), + (160, 'waterbowl*2', 'Green Water Bowl', 'Aqua unlimited', 46, 1, 1, 0, '6', 'can_stand_on_top,requires_rights_for_interaction,pet_water_bowl', 'default', 1, 1, '', -1, '2', NULL), + (161, 'waterbowl*1', 'Red Water Bowl', 'Aqua unlimited', 45, 1, 1, 0, '6', 'can_stand_on_top,requires_rights_for_interaction,pet_water_bowl', 'default', 1, 1, '', -1, '2', NULL), + (162, 'waterbowl*3', 'Yellow Water Bowl', 'Aqua unlimited', 47, 1, 1, 0, '6', 'can_stand_on_top,requires_rights_for_interaction,pet_water_bowl', 'default', 1, 1, '', -1, '2', NULL), + (163, 'toy1', 'Rubber Ball', 'it\'s bouncy-tastic', 54, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (164, 'toy1*1', 'Rubber Ball', 'it\'s bouncy-tastic', 55, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (165, 'toy1*2', 'Rubber Ball', 'it\'s bouncy-tastic', 56, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (166, 'toy1*3', 'Rubber Ball', 'it\'s bouncy-tastic', 57, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (167, 'toy1*4', 'Rubber Ball', 'it\'s bouncy-tastic', 58, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (168, 'goodie1', 'Marzipan Man', 'Crunchy Dog Treat', 51, 1, 1, 0, '0', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (169, 'goodie2', 'Chocolate Mouse', 'For gourmet kittens', 50, 1, 1, 0, '0', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (170, 'rare_dragonlamp*4', 'Black Dragon Lamp', 'Scary and scorching!', 1007, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (171, 'rare_dragonlamp*0', 'Fire Dragon Lamp', 'George and the...', 1003, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (172, 'rare_dragonlamp*5', 'Elf Green Dragon Lamp', 'Roast your chestnuts here!', 1008, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (173, 'rare_dragonlamp*2', 'Jade Dragon Lamp', 'Oriental beast of legends', 1005, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (174, 'rare_dragonlamp*8', 'Bronze Dragon Lamp', 'Scary and scorching!', 1011, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (175, 'rare_dragonlamp*9', 'Purple Dragon Lamp', 'Scary and scorching!', 1012, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (176, 'rare_dragonlamp*7', 'Sky Dragon Lamp', 'Scary and scorching!', 1010, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (177, 'rare_dragonlamp*6', 'Gold Dragon Lamp', 'Scary and scorching!', 1009, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (178, 'rare_dragonlamp*1', 'Sea Dragon Lamp', 'Out of the deep blue!', 1004, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (179, 'rare_dragonlamp*3', 'Silver Dragon Lamp', 'Scary and scorching!', 1006, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (180, 'queue_tile1*6', 'Blue Habbo Roller', 'The power of movement', 471, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (181, 'queue_tile1*9', 'Green Habbo Roller', 'The power of movement', 474, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (182, 'queue_tile1*8', 'Navy Habbo Roller', 'The power of movement', 473, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (183, 'queue_tile1*7', 'Purple Habbo Roller', 'The power of movement', 472, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (184, 'queue_tile1*2', 'Red Habbo Roller', 'The power of movement', 467, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (185, 'cn_lamp', 'Lantern', 'Light of the East', 127, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (186, 'cn_sofa', 'Chinese Sofa', 'Seats three with ease!', 126, 3, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (187, 'sporttrack1*1', 'Sport track straight', 'Let\'s get sporty!', 526, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (188, 'sporttrack1*3', 'Sport track straight grass', 'Let\'s get sporty!', 528, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (189, 'sporttrack1*2', 'Sport track straight asphalt', 'Let\'s get sporty!', 527, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (190, 'sporttrack2*1', 'Sport corner tartan', 'Let\'s get sporty!', 529, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (191, 'sporttrack2*2', 'Sport corner asphalt', 'Let\'s get sporty!', 530, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (192, 'sporttrack2*3', 'Sport corner grass', 'Let\'s get sporty!', 531, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (193, 'sporttrack3*1', 'Sport goal tartan', 'Let\'s get sporty!', 532, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (194, 'sporttrack3*2', 'Sport goal asphalt', 'Let\'s get sporty!', 533, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (195, 'sporttrack3*3', 'Sport goal grass', 'Let\'s get sporty!', 534, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (196, 'footylamp', 'Football Lamp', 'Can you kick it?', 525, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (197, 'barchair_silo', 'Bar Stool', 'Practical and convenient', 91, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (198, 'bardesk_polyfon*5', 'Candy Bar', 'For cute constructions', 137, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (199, 'bardeskcorner_polyfon*5', 'Candy Corner', 'For sweet corners!', 138, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (200, 'divider_poly3*5', 'Candy Hatch (Lockable)', 'Keep the Pink in!', 139, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (201, 'chair_china', 'Chinese Lacquer Chair', 'The elegant beauty of tradition', 123, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (202, 'china_table', 'Chinese Lacquer Table', 'Exotic and classy', 122, 1, 1, 0.9, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (203, 'safe_silo', 'Safe Minibar', 'Totally shatter-proof!', 90, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (204, 'china_shelve', 'Chinese Bookshelf', 'To hold the mind\'s treasures', 121, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (205, 'divider_nor5', 'Plain Iced Angle', 'Cool cornering for your crib y0!', 300, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (206, 'divider_nor4', 'Plain Iced Auto Shutter', 'Habbos, roll out!', 299, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (207, 'wall_china', 'Dragon Screen', 'For your great wall', 119, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (208, 'corner_china', 'Dragon Screen Corner', 'Firm, fireproof foundation', 120, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (209, 'CF_10_coin_gold', 'Gold Coin', 'Worth 10 Credits', 275, 1, 1, 0.1, '0', 'solid,can_stack_on_top,redeemable,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (210, 'CF_1_coin_bronze', 'Bronze Coin', 'Worth 1 Credits', 273, 1, 1, 0.1, '0', 'solid,can_stack_on_top,redeemable,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (211, 'CF_20_moneybag', 'Sack of Credits', 'Worth 20 Credits', 276, 1, 1, 1, '0', 'solid,can_stack_on_top,redeemable,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (212, 'CF_50_goldbar', 'Gold Bar', 'Worth 50 Credits', 277, 1, 1, 0.4, '0', 'solid,can_stack_on_top,redeemable,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (213, 'CF_5_coin_silver', 'Silver Coin', 'Worth 5 Credits', 274, 1, 1, 0.1, '0', 'solid,can_stack_on_top,redeemable,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (214, 'hc_tv', 'Mega TV Set', 'Forget plasma, go HC!', 993, 2, 1, 1.3, '2', 'can_sit_on_top,custom_data_numeric_on_off,redirect_rotation_2', 'chair', 1, 1, '', -1, '2,4', NULL), + (215, 'gothgate', 'Gothic Portcullis', 'The dark side of Habbo', 262, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (216, 'gothiccandelabra', 'Gothic Candelabra', 'The dark side of Habbo', 261, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (217, 'gothrailing', 'Gothic Railing', 'The dark side of Habbo', 258, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (218, 'goth_table', 'Gothic table', 'The dark side of Habbo', 257, 1, 5, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (219, 'hc_bkshlf', 'Medieval Bookcase', 'For the scholarly ones', 995, 1, 4, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (220, 'hc_btlr', 'Electric Butler', 'Your personal caretaker', 994, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '24', -1, '2,4', NULL), + (221, 'hc_crtn', 'Antique Drapery', 'Topnotch privacy protection', 992, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (222, 'hc_djset', 'The Grammophon', 'Very old skool scratch\'n\'spin', 999, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (223, 'hc_frplc', 'Heavy Duty Fireplace', 'Pixel-powered for maximum heating', 998, 1, 3, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (224, 'hc_lmpst', 'Victorian Street Light', 'Somber and atmospheric', 991, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (225, 'hc_machine', 'Weird Science Machine', 'By and for mad inventors', 997, 1, 3, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (226, 'hc_rllr', 'HC Rollers Set', 'Highest class transportation', 1000, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (227, 'hc_rntgn', 'X-Ray Divider', 'Believe it or not!', 996, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (228, 'hc_trll', 'Drinks Trolley', 'For swanky dinners only', 989, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (229, 'gothic_chair*3', 'Gothic Chair Red', 'The dark side of Habbo', 2090, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (230, 'gothic_sofa*3', 'Gothic Sofa Red', 'The dark side of Habbo', 2091, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (231, 'gothic_stool*3', 'Gothic Stool Red', 'The dark side of Habbo', 2092, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (232, 'sound_machine', 'Sound Machine', 'Creating fancy sounds', 539, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,custom_data_numeric_on_off,sound_machine', 'default', 1, 1, '', -1, '0,2', NULL), + (233, 'plant_mazegate', 'Maze Shrubbery Gate', 'Did we make it?', 366, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (234, 'plant_maze', 'Maze Shrubbery', 'Build your maze!', 365, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (235, 'plant_bulrush', 'Bulrush', 'Ideal for the riverside', 367, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (236, 'petfood4', 'T-Bones Mega Multipack', 'Fantastic 20% Saving!', 44, 1, 1, 0, '5', 'requires_rights_for_interaction,pet_croc_food,can_stand_on_top,solid', 'default', 1, 1, '', -1, '2', NULL), + (237, 'gothic_carpet', 'Cobbled Path', 'The path less travelled', 255, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (238, 'gothic_carpet2', 'Dungeon Floor', 'What lies beneath?', 256, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (239, 'sound_set_1', 'Habbo Sounds 1', 'Get the party started!', 576, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (240, 'sound_set_3', 'Electronic 1', 'Chilled grooves', 548, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (241, 'sound_set_6', 'Ambient 3', 'Background ambience loops', 542, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (242, 'sound_set_7', 'SFX 5', 'Sound effects for Furni', 584, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (243, 'sound_set_8', 'Ambient 2', 'Mellow electric grooves', 541, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (244, 'post.it', 'Pad of stickies', 'Pad of stickies', 97, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction,post_it', 'default', 1, 0, '', -1, '', NULL), + (245, 'gothicfountain', 'Gothic Ectoplasm Fountain', 'Not suitable for drinking!', 260, 0, 0, 0, '2', 'wall_item,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (246, 'hc_wall_lamp', 'Retro Wall Lamp', 'Tres chic!', 1001, 0, 0, 0, '2', 'wall_item,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (247, 'industrialfan', 'Industrial Turbine', 'Powerful and resilient', 263, 0, 0, 0, '2', 'wall_item,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (248, 'torch', 'Gothic Torch', 'The dark side of Habbo', 259, 0, 0, 0, '2', 'wall_item,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (249, 'floor', '', '', 2, 0, 0, 0, '0', 'wall_item,decoration,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (250, 'wallpaper', '', '', 33, 0, 0, 0, '0', 'wall_item,decoration,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (251, 'poster', '', '', 1145, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '', NULL), + (252, 'table_norja_med', 'Coffee Table', 'Elegance embodied', 292, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (253, 'doormat_plain*4', 'Doormat', 'Available in a variety of colours', 509, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (254, 'doormat_plain*2', 'Doormat', 'Available in a variety of colours', 507, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (255, 'doormat_plain*3', 'Doormat', 'Available in a variety of colours', 508, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (256, 'doormat_plain*5', 'Doormat', 'Available in a variety of colours', 510, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (257, 'rare_parasol*1', 'Yellow Parasol', 'Block those rays!', 1147, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (258, 'rare_parasol*2', 'Orange Parasol', 'Block those rays!', 1148, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (259, 'rare_parasol*3', 'Violet Parasol', 'Block those rays!', 1149, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (260, 'rare_parasol*0', 'Green Parasol', 'Block those rays!', 1, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (261, 'scifidoor*10', 'Violet Spaceship Door', 'There out of this world!', 1069, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (262, 'scifidoor*9', 'Blue Spaceship Door', 'There out of this world!', 1068, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (263, 'scifidoor*8', 'Purple Spaceship Door', 'There out of this world!', 1067, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (264, 'scifidoor*7', 'Aqua Spaceship Door', 'There out of this world!', 1066, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (265, 'scifidoor*6', 'Black Monolith', 'Monolith goes up! Monolith goes down!', 1065, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (266, 'scifidoor*5', 'White Spaceship Door', 'There out of this world!', 1064, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (267, 'scifidoor*4', 'Emerald Spaceship Door', 'Protect your pot of gold!', 1063, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (268, 'scifidoor*3', 'Lightblue Spaceship Door', 'There out of this world!', 1062, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (269, 'scifidoor*2', 'Yellow Spaceship Door', 'There out of this world!', 1061, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (270, 'scifidoor*1', 'Pink Spaceship Door', 'There out of this world!', 1060, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (271, 'rare_beehive_bulb', 'Blue Amber Lamp', 'A honey-hued glow', 1132, 1, 1, 1, '2', 'solid,can_stack_on_top,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (272, 'rare_beehive_bulb*1', 'Red Amber Lamp', 'A honey-hued glow', 1133, 1, 1, 1, '2', 'solid,can_stack_on_top,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (273, 'rare_beehive_bulb*2', 'Yellow Amber Lamp', 'A honey-hued glow', 1134, 1, 1, 1, '2', 'solid,can_stack_on_top,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (274, 'scifiport*0', 'Red Laser Door', 'Energy beams. No trespassers!', 1041, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (275, 'scifiport*9', 'Violet Sci-Fi Port', 'Energy beams. No trespassers!', 1050, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (276, 'scifiport*8', 'Purple Sci-Fi Port', 'Energy beams. No trespassers!', 1049, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (277, 'scifiport*7', 'Turquoise Sci-Fi Port', 'Energy beams. No trespassers!', 1048, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (278, 'scifiport*6', 'White Sci-Fi Port', 'Energy beams. No trespassers!', 1047, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (279, 'scifiport*5', 'Security Fence', 'Recovered from Roswell', 1046, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (280, 'scifiport*4', 'Pink Sci-Fi Port', 'Energy beams. No trespassers!', 1045, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (281, 'scifiport*3', 'Jade Sci-Fi Port', 'Energy beams. No trespassers!', 1044, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (282, 'scifiport*2', 'Blue Laser Gate', 'Get in the ring!', 1043, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (283, 'scifiport*1', 'Gold Laser Gate', 'Energy beams. No trespassers!', 1042, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (284, 'scifirocket*9', 'Neptune Smoke Machine', 'Something fishy is going on...', 1109, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (285, 'scifirocket*8', 'Pluto Smoke Machine', 'From a space far, far away!', 1108, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (286, 'scifirocket*7', 'Jupiter Smoke Machine', 'Larger than life!', 1107, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (287, 'scifirocket*6', 'Mercury Smoke Machine', 'Too hot to handle!', 1106, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (288, 'scifirocket*5', 'Uranus Smoke Machine', 'From the unknown depths of space', 1105, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (289, 'scifirocket*4', 'Venus Smoke Machine', 'Welcome... to planet love', 1104, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (290, 'scifirocket*3', 'Endor Smoke Machine', 'Caution! Unknown Location!', 1103, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (291, 'scifirocket*2', 'Earth Smoke Machine', 'A little closer to home!', 1102, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (292, 'scifirocket*1', 'Saturn Smoke Machine', 'There is always space for this!', 1101, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (293, 'scifirocket*0', 'Mars Smoke Machine', 'See in 2007 with a bang!', 1100, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (294, 'pillow*5', 'Black Leather Pillow', 'Puffy, soft and huge', 1095, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (295, 'pillow*8', 'Navy Cord Pillow', 'Puffy, soft and huge', 1098, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (296, 'pillow*0', 'White Lace Pillow', 'Minimalist comfort!', 1090, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (297, 'pillow*1', 'Pink Fluffy Pillow', 'Puffy, soft and huge', 1091, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (298, 'pillow*2', 'Red Silk Pillow', 'Puffy, soft and huge', 1092, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (299, 'pillow*7', 'Purple Velvet Pillow', 'Bonnie\'s pillow of choice!', 1097, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (300, 'pillow*9', 'Green Wooly Pillow', 'Puffy, soft and VERY fluffy!', 1099, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (301, 'pillow*4', 'Gold Feather Pillow', 'Puffy, soft and huge', 1094, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (302, 'pillow*6', 'Blue Cotton Pillow', 'Puffy, soft and huge', 1096, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (303, 'pillow*3', 'Turquoise Satin Pillow', 'Puffy, soft and huge', 1093, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (304, 'marquee*1', 'Pink marquee', 'It\'s both door and a shade!', 1051, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (305, 'marquee*2', 'Red Dragon Marquee', 'Dragons out and Davids in!', 1052, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (306, 'marquee*7', 'Purple Marquee', 'It\'s both door and a shade!', 1057, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (307, 'marquee*8', 'Ultramarine Marquee', 'It\'s both door and a shade!', 1058, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (308, 'marquee*9', 'Green Marquee', 'It\'s both door and a shade!', 1059, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (309, 'marquee*5', 'Graphite Marquee', 'It\'s both door and a shade!', 1055, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (310, 'marquee*4', 'Yellow Marquee', 'It\'s both door and a shade!', 1054, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (311, 'marquee*6', 'Blue Marquee', 'It\'s both door and a shade!', 1056, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (312, 'marquee*3', 'Aqua Marquee', 'It\'s both door and a shade!', 1053, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (313, 'wooden_screen*1', 'Pink Oriental screen', 'Add an exotic touch to your room', 1071, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (314, 'wooden_screen*2', 'RosewoodScreen', 'Add an exotic touch to your room', 1072, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (315, 'wooden_screen*7', 'Purple Oriental Screen', 'Add an exotic touch to your room', 1077, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (316, 'wooden_screen*0', 'White Oriental Screen', 'Add an exotic touch to your room', 1070, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (317, 'wooden_screen*8', 'Night Blue Oriental Screen', 'Add an exotic touch to your room', 1078, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (318, 'wooden_screen*5', 'Gray Oriental Screen', 'Add an exotic touch to your room', 1075, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (319, 'wooden_screen*9', 'Green Oriental Screen', 'Add an exotic touch to your room', 1079, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (320, 'wooden_screen*4', 'Golden Oriental Screen', 'Add an exotic touch to your room', 1074, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (321, 'wooden_screen*6', 'Blue Oriental Screen', 'Add an exotic touch to your room', 1076, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (322, 'wooden_screen*3', 'Aqua Oriental Screen', 'Add an exotic touch to your room', 1073, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (323, 'rare_icecream*1', 'Blueberry Ice Cream Machine', 'Virtual blueberry rocks!', 1024, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (324, 'rare_icecream*7', 'Chocolate Ice Cream Machine', 'Virtual chocolate rocks!', 1030, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (325, 'rare_icecream*8', 'Peppermint Ice Cream Machine', 'Virtual peppermint rocks!', 1031, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (326, 'rare_icecream*2', 'Pistachio Ice Cream Machine', 'Virtual pistachio rocks!', 1025, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (327, 'rare_icecream*6', 'Toffee Ice Cream Machine', 'Virtual toffee rocks!', 1029, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (328, 'rare_icecream*9', 'Bubblegum Ice Cream Machine', 'Virtual bubblegum rocks!', 1032, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (329, 'rare_icecream*3', 'Blackcurrant Ice Cream Machine', 'Virtual blackcurrant rocks!', 1026, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (330, 'rare_icecream*0', 'Cherry Ice Cream Machine', 'Virtual cherry rocks!', 1023, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (331, 'rare_icecream*4', 'Strawberry Ice Cream Machine', 'Virtual strawberry rocks!', 1027, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (332, 'rare_icecream*5', 'Vanilla Ice Cream Machine', 'Virtual vanilla rocks!', 1028, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (333, 'rare_fountain', 'Bird Bath (red)', 'For our feathered friends', 1138, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (334, 'rare_fountain*1', 'Bird Bath (grey)', 'For our feathered friends', 1139, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (335, 'rare_fountain*2', 'Bird Bath (green)', 'For our feathered friends', 1140, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (336, 'rare_fountain*3', 'Bird Bath (blue)', 'For our feathered friends', 1141, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (337, 'rare_elephant_statue', 'Golden Elephant', 'Say hello to Nelly', 1135, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (338, 'rare_elephant_statue*1', 'Silver Elephant', 'Say hello to Nelly', 1136, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (339, 'rare_elephant_statue*2', 'Bronze Elephant', 'Say hello to Nelly', 1137, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (340, 'rare_fan*7', 'Brown Powered Fan', '...it\'s really hit the fan!', 1020, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (341, 'rare_fan*6', 'Ochre Powered Fan', 'It\'ll blow you away!', 1019, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (342, 'rare_fan*9', 'Fucsia Powered Fan', 'It\'ll blow you away!', 1022, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (343, 'rare_fan*3', 'Purple Dragon Skin Fan', 'Keeps the heat off St George!', 1016, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (344, 'rare_fan*0', 'Festive Fan', 'As red as Rudolph\'s nose', 1013, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (345, 'rare_fan*4', 'SUPERLOVE Fan', 'Fanning the fires of SUPERLOVE...', 1017, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (346, 'rare_fan*5', 'Yellow Powered Fan', 'It\'ll blow you away!', 1018, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (347, 'rare_fan*1', 'Birthday Fan', 'It\'ll blow your candles out!', 1014, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (348, 'rare_fan*8', 'Habbo Wind Turbine', 'Stylish, Eco-Energy!', 1021, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (349, 'rare_fan*2', 'Green Powered Fan', 'It\'ll blow you away!', 1015, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (350, 'habbowheel', 'The Wheel of Destiny!', 'So you gotta ask yourself, \'Do I feel lucky?\'', 93, 1, 1, 0, '33', 'wall_item,wheel_of_fortune,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (351, 'roomdimmer', 'Mood Light', 'Superior lighting for your room', 1002, 1, 1, 0, '2', 'wall_item,roomdimmer,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (352, 'jukebox*1', 'Jukebox', 'For your Happy Days!', 575, 1, 1, 0, '2', 'solid,jukebox,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (353, 'jukebox_ptv*1', 'Jukebox Pacha TV', 'Jukebox Pacha TV', 1273, 1, 1, 0, '2', 'solid,jukebox,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (354, 'carpet_soft_tut', 'Welcome Mat', 'Welcome, enjoy your stay!', 1195, 1, 1, 0.2, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (355, 'sound_set_9', 'Electronic 2', 'Mystical ambient soundscapes', 549, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (356, 'sound_set_10', 'Hip Hop Beats 1', 'Made from real Boy Bands!', 596, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (357, 'sound_set_2', 'Habbo Sounds 3', 'Get the party started!', 578, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (358, 'sound_set_4', 'Ambient 1', 'Chilled out beats', 540, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (359, 'sound_set_5', 'Ambient 4', 'The dark side of Habbo', 543, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (360, 'sound_set_11', 'Dance 4', 'Music you can really sink your teeth into', 561, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (361, 'sound_set_12', 'Habbo Sounds 2', 'Unusual as Standard', 577, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (362, 'sound_set_13', 'Dance 5', 'Let Music be the food of Habbo', 562, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (363, 'sound_set_14', 'Hip Hop Beats 2', 'Rock them bodies', 597, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (364, 'sound_set_15', 'RnB Grooves 6', 'Unadulterated essentials', 595, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (365, 'sound_set_16', 'Hip Hop Beats 3', 'Ferry, ferry good!', 598, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (366, 'sound_set_17', 'Groove 3', 'Jive\'s Alive!', 546, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (367, 'sound_set_18', 'Groove 4', 'Listen while you tan', 547, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (368, 'sound_set_19', 'Hip Hop Beats 4', 'Shake your body!', 599, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (369, 'sound_set_20', 'SFX 2', 'Musical heaven', 581, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (370, 'sound_set_21', 'Rock 1', 'Headbanging riffs', 567, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (371, 'sound_set_22', 'SFX 3', 'With a hamper full of sounds, not sarnies', 582, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (372, 'sound_set_23', 'SFX 4', 'Don\'t be afraid of the dark', 583, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (373, 'sound_set_24', 'Habbo Sounds 4', 'It\'s all about the Pentiums, baby!', 579, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (374, 'sound_set_25', 'Dance 1', 'Actually, it\'s Partay!', 558, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (375, 'sound_set_26', 'Groove 1', 'Bollywood Beats!', 544, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (376, 'sound_set_27', 'Groove 2', 'Jingle Bells will never be the same...', 545, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (377, 'sound_set_28', 'Rock 2', 'Head for the pit!', 568, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (378, 'sound_set_29', 'Dance 2', 'Electronic house', 559, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (379, 'sound_set_30', 'Instrumental 1', 'Moments in love', 585, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (380, 'sound_set_31', 'Dance 3', 'House loops', 560, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (381, 'sound_set_32', 'Instrumental 2', 'Piano concert set', 586, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (382, 'sound_set_33', 'Rock 3', 'Guitar solo set', 569, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (383, 'sound_set_34', 'Rock 5', 'For guitar heroes', 571, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (384, 'sound_set_35', 'Dance 6', 'Groovelicious', 563, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (385, 'sound_set_36', 'Latin Love 1', 'For adult minded', 587, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (386, 'sound_set_37', 'Habbowood Traxpack', 'Blockbuster hits!', 11215, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (387, 'sound_set_38', 'Rock 6', 'Rock and Roses!', 572, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (388, 'sound_set_39', 'Rock 7', 'Rock with a roll', 573, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (389, 'sound_set_40', 'Rock 4', 'Dude? Cheese!', 570, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (390, 'sound_set_41', 'Rock 8', 'Burning Riffs', 574, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (391, 'sound_set_42', 'Haunted Mansion', 'Bumps and Chills', 11216, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (392, 'sound_set_43', 'SFX 1', 'Beware zombies!', 580, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (393, 'sound_set_44', 'Graveyard Portal', 'Haunted Dimension', 11217, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (394, 'sound_set_45', 'Berlin Connection', 'The Bass? is the rhythm!', 11218, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (395, 'sound_set_46', 'Club 1', 'De bada bada bo!', 552, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (396, 'sound_set_47', 'Club 2', 'Storm the UKCharts!', 553, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (397, 'sound_set_48', 'Club 3', 'Sweet party beat', 554, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (398, 'sound_set_49', 'Club 4', 'You will belong', 555, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (399, 'sound_set_50', 'Club 5', 'The harder generation', 556, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (400, 'sound_set_51', 'Club 6', 'Bop to the beat', 557, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (401, 'sound_set_52', 'Club 7', 'State of Trancehouse', 2633, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (402, 'sound_set_53', 'Snowy Surprise', 'Break the icy silence', 1280, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (403, 'sound_set_54', 'Oh Blinging Tree', 'Tune into Christmas', 1281, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (404, 'sound_set_55', 'RnB Grooves 1', 'Can you fill me in?', 590, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (405, 'sound_set_56', 'RnB Grooves 2', 'Get down tonight!', 591, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (406, 'sound_set_57', 'RnB Grooves 3', 'Feel the groove', 592, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (407, 'sound_set_58', 'RnB Grooves 4', 'Sh-shake it!', 593, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (408, 'sound_set_59', 'RnB Grooves 5', 'Urban break beats', 594, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (409, 'sound_set_60', 'Latin Love 2', 'Love and affection!', 588, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (410, 'sound_set_61', 'Latin Love 3', 'Straight from the heart', 589, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (411, 'sound_set_62', 'Alhambra Trax 1', 'Music of the Arabian night!', 74, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (412, 'sound_set_63', 'Alhambra Trax 2', 'Desert hits by the oasis!', 75, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (413, 'sound_set_64', 'Alhambra Trax 3', 'Make a little Jinn-gle!', 76, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (414, 'present_gen1', 'Gift', 'What\'s inside?', 1372, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (415, 'present_gen2', 'Gift', 'What\'s inside?', 1373, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (416, 'present_gen3', 'Gift', 'What\'s inside?', 1374, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (417, 'present_gen4', 'Gift', 'What\'s inside?', 1375, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (418, 'present_gen5', 'Gift', 'What\'s inside?', 1376, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (419, 'present_gen6', 'Gift', 'What\'s inside?', 1377, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0', NULL), + (420, 'camera', 'Camera', 'Smile!', 145, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (421, 'photo', 'Photo', 'Photo from Habbo', 11221, 0, 0, 0, '0', 'photo,wall_item', 'default', 1, 0, '', -1, '2,4', NULL), + (422, 'film', NULL, NULL, 0, 0, 0, 0, '0', '', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (423, 'table_plasto_4leg*6', 'Occasional table Table', 'Hip plastic furniture', 415, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (424, 'table_plasto_round', 'Round Dining Table', 'Hip plastic furniture', 400, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (425, 'table_plasto_bigsquare', 'Square Dining Table', 'Hip plastic furniture', 408, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (426, 'chair_plasty', 'Plastic Pod Chair', 'Hip plastic furniture', 427, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (427, 'chair_plasto*16', 'Chair', 'Hip plastic furniture', 368, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (428, 'table_plasto_square*15', 'Occasional Table', 'Hip plastic furniture', 379, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (429, 'table_plasto_4leg*1', 'Square Dining Table', 'Hip plastic furniture', 416, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (430, 'table_plasto_bigsquare*1', 'Square Dining Table', 'Hip plastic furniture', 406, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (431, 'table_plasto_round*1', 'Round Dining Table', 'Hip plastic furniture', 394, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (432, 'table_plasto_square*14', 'Occasional Table', 'Hip plastic furniture', 380, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (433, 'chair_plasto*15', 'Chair', 'Hip plastic furniture', 369, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (434, 'table_plasto_4leg', 'Occasional Table', 'Hip plastic furniture', 419, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (435, 'table_plasto_bigsquare*2', 'Square Dining Table', 'Hip plastic furniture', 407, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (436, 'table_plasto_round*2', 'Round Dining Table', 'Hip plastic furniture', 395, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (437, 'table_plasto_square*1', 'Occasional Table', 'Hip plastic furniture', 381, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (438, 'chair_plasto*5', 'Chair', 'Hip plastic furniture', 370, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (439, 'table_plasto_4leg*5', 'Occasional Table', 'Hip plastic furniture', 420, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (440, 'table_plasto_bigsquare*3', 'Square Dining Table', 'Hip plastic furniture', 412, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (441, 'table_plasto_round*3', 'Round Dining Table', 'Hip plastic furniture?', 398, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (442, 'table_plasto_square*7', 'Square Dining Table', 'Hip plastic furniture', 382, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (443, 'chair_plasto', 'Chair', 'Hip plastic furniture', 371, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (444, 'table_plasto_4leg*8', 'Occasional Table', 'Hip plastic furniture', 422, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (445, 'table_plasto_bigsquare*4', 'Square Dining Table', 'Hip plastic furniture', 414, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (446, 'table_plasto_round*4', 'Square Dining Table', 'Hip plastic furniture', 396, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (447, 'table_plasto_square', 'Occasional Table', 'Hip plastic furniture', 383, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (448, 'chair_plasto*8', 'Chair', 'Hip plastic furniture', 372, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (449, 'table_plasto_4leg*7', 'Occasional table', 'Hip plastic furniture', 423, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (450, 'table_plasto_bigsquare*5', 'Square Dining Table', 'Hip plastic furniture', 410, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (451, 'table_plasto_round*5', 'Round Dining Table', 'Hip plastic furniture', 401, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (452, 'table_plasto_square*2', 'Round Dining Table', 'Hip plastic furniture', 384, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (453, 'chair_plasto*7', 'Chair', 'Hip plastic furniture', 373, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (454, 'table_plasto_4leg*10', 'Occasional Table', 'Hip plastic furniture', 424, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (455, 'table_plasto_bigsquare*6', 'Square Dining Table', 'Hip plastic furniture', 413, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (456, 'table_plasto_round*6', 'Round Dining Table', 'Hip plastic furniture', 397, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (457, 'table_plasto_square*4', 'Square Dining Table', 'Hip plastic furniture', 385, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (458, 'chair_plasto*1', 'Chair', 'Hip plastic furniture', 374, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (459, 'table_plasto_4leg*15', 'Occasional Table', 'Hip plastic furniture', 425, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (460, 'table_plasto_bigsquare*7', 'Square Dining Table', 'Hip plastic furniture', 405, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (461, 'table_plasto_round*7', 'Round Dining Table', 'Hip plastic furniture', 393, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (462, 'table_plasto_square*6', 'Square Dining Table', 'Hip plastic furniture', 386, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (463, 'chair_plasto*4', 'Chair', 'Hip plastic furniture', 375, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (464, 'table_plasto_4leg*16', 'Occasional Table', 'Hip plastic furniture', 426, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (465, 'table_plasto_bigsquare*8', 'Square Dining Table', 'Hip plastic furniture', 409, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (466, 'table_plasto_round*8', 'Round Dining Table', 'Hip plastic furniture', 402, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (467, 'table_plasto_square*3', 'Square Dining Table', 'Hip plastic furniture', 387, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (468, 'chair_plasto*6', 'Chair', 'Hip plastic furniture', 376, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (469, 'table_plasto_4leg*14', 'HC table', 'Aqua table', 979, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (470, 'table_plasto_bigsquare*9', 'Square Dining Table', 'Hip plastic furniture', 411, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (471, 'table_plasto_round*9', 'Round Dining Table', 'Hip plastic furniture', 399, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (472, 'table_plasto_square*9', 'Square Dining Table', 'Hip plastic furniture', 388, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (473, 'chair_plasto*3', 'Chair', 'Hip plastic furniture', 377, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (474, 'landscape', '', '', 11078, 1, 1, 0, '0', 'wall_item,decoration,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (475, 'chair_plasty*1', 'Plastic Pod Chair', 'Hip plastic furniture', 428, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (476, 'chair_plasty*2', 'Plastic Pod Chair', 'Hip plastic furniture', 429, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (477, 'chair_plasty*3', 'Plastic Pod Chair', 'Hip plastic furniture', 430, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (478, 'chair_plasty*4', 'Plastic Pod Chair', 'Hip plastic furniture', 431, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (479, 'chair_plasty*5', 'Plastic Pod Chair', 'Hip plastic furniture', 432, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (480, 'chair_plasty*6', 'Plastic Pod Chair', 'Hip plastic furniture', 433, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (481, 'chair_plasto*2', 'Chair', 'Hip plastic furniture', 378, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (482, 'chair_plasto*9', 'Chair', 'Hip plastic furniture', 439, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (483, 'table_plasto_4leg*9', 'Occasional Table', 'Hip plastic furniture', 418, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (484, 'table_plasto_4leg*3', 'Round Dining Table', 'Hip plastic furniture', 417, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (485, 'table_plasto_bigsquare*14', 'Occasional Table', 'Hip plastic furniture', 404, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (486, 'table_plasto_bigsquare*15', 'Occasional Table', 'Hip plastic furniture', 403, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (487, 'table_plasto_round*14', 'Occasional Table', 'Hip plastic furniture', 392, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (488, 'table_plasto_round*15', 'Occasional Table', 'Hip plastic furniture', 391, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (489, 'table_plasto_square*5', 'Square Dining Table', 'Hip plastic furniture', 389, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (490, 'table_plasto_square*8', 'Square Dining Table', 'Hip plastic furniture', 390, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (491, 'chair_plasty*7', 'Plastic Pod Chair', 'Hip plastic furniture', 434, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (492, 'chair_plasty*8', 'Plastic Pod Chair', 'Hip plastic furniture', 435, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (493, 'chair_plasty*9', 'Plastic Pod Chair', 'Hip plastic furniture', 436, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (494, 'chair_plasty*10', 'Plastic Pod Chair', 'Hip plastic furniture', 437, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (495, 'chair_plasty*11', 'Plastic Pod Chair', 'Hip plastic furniture', 438, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (496, 'rubberchair*1', 'Blue Inflatable Chair', 'Soft and stylish HC chair', 1033, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (497, 'rubberchair*2', 'Pink Inflatable Chair', 'Soft and tearproof!', 1034, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (498, 'rubberchair*3', 'Orange Inflatable Chair', 'Soft and tearproof!', 1035, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (499, 'rubberchair*4', 'Ocean Inflatable Chair', 'Soft and tearproof!', 1036, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (500, 'rubberchair*5', 'Lime Inflatable Chair', 'Soft and tearproof!', 1037, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (501, 'rubberchair*6', 'Violet Inflatable Chair', 'Soft and tearproof!', 1038, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (502, 'rubberchair*7', 'White Inflatable Chair', 'Soft and tearproof!', 1039, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (503, 'rubberchair*8', 'Black Inflatable Chair', 'Soft and tearproof for HC!', 1040, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (504, 'spyro', 'Dragon Egg', 'The stuff of legend', 11119, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (505, 'rare_daffodil_rug', 'Petal Patch', 'A little bit of outdoors indoors..', 1126, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,place_roller_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (506, 'md_limukaappi', 'Habbo Cola Machine', 'A sparkling and refreshing pixel drink!', 1143, 1, 1, 0, '0', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (507, 'samovar', 'Russian Samovar', 'Click for a refreshing cuppa', 1142, 1, 1, 0, '0', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '1', -1, '2,4', NULL), + (508, 'redhologram', 'Holo-girl', 'You\'re her only hope...', 1116, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (509, 'typingmachine', 'Typewriter', 'Write that bestseller', 1117, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (510, 'hologram', 'Holopod', 'As if by magic...', 1115, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (511, 'prize1', 'Gold Trophy', 'Gorgeously glittery', 1129, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (512, 'prize2', 'Silver Trophy', 'Nice and shiny', 1130, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (513, 'prize3', 'Bronze Trophy', 'A weighty award', 1131, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (514, 'rare_snowrug', 'Snow Rug', 'Chilled Elegance', 1124, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (515, 'exe_rug', 'Executive Rug', 'Please remove your shoes!', 1230, 3, 3, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (516, 'exe_s_table', 'Executive Glass Table', 'Get a clear reflection!', 1231, 2, 2, 1, '2', 'solid,can_stack_on_top,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (517, 'exe_bardesk', 'Executive Bar Desk', 'Divide the profits!', 1223, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (518, 'exe_chair', 'Executive Sofa Chair', 'Relaxing leather comfort', 1225, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (519, 'exe_chair2', 'Executive Boss Chair', 'You\'re fired!', 1226, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (520, 'exe_corner', 'Executive Corner Desk', 'Tuck it away', 1224, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (521, 'exe_drinks', 'Executive Drinks Tray', 'Give a warm welcome', 1227, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (522, 'exe_sofa', '3-Seater Sofa', 'Relaxing leather comfort', 1228, 3, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (523, 'exe_table', 'Executive Desk', 'Take a memo, Featherstone', 1229, 3, 2, 0, '2', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (524, 'exe_plant', 'Executive Plant', 'Shimmering hedge trimming!', 1233, 1, 1, 0, '2', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (525, 'exe_light', 'Executive Light', 'Glow your business', 10068, 1, 1, 0, '4', 'can_stand_on_top,can_stack_on_top,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (526, 'exe_gate', 'Executive Gate', 'Keeps the tax man away', 10067, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (527, 'exe_cubelight', 'Cubist Light', 'Lights up a square', 10066, 1, 1, 0, '3', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (528, 'exe_artlamp', 'Sphere Lamp', 'Suitable for budding entrepreneurs', 10065, 1, 1, 0, '2', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (529, 'exe_map', 'World Map', 'World domination imminent', 10069, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (530, 'exe_wfall', 'Wall Fall', 'Improve your cash flow', 10070, 1, 1, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (531, 'exe_globe', 'Power Globe', 'The power is yours!', 1232, 1, 1, 0, '9', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (532, 'exe_elevator', 'Elevator Teleport', 'Going up or down in style!', 11220, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (533, 'arabian_bigtb', 'Amanjena Table', 'It must be Jinn-er time!', 59, 3, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (534, 'arabian_chair', 'Green Blossom Chair', 'Exotic, soft seating', 60, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (535, 'arabian_divdr', 'Soft wooden screen', 'Carved Cedar Divider', 61, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (536, 'arabian_pllw', 'Green Blossom Pillow', 'Exotic comfort', 62, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (537, 'arabian_rug', 'Berber Kilim Rug', 'Green blossom design', 63, 3, 5, 0, '0', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (538, 'arabian_snake', 'Ornamental Urn', 'Beware the snake!', 64, 1, 1, 0, '2', 'solid,custom_data_numeric_state,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (539, 'arabian_swords', 'Ancestral Scimitars', 'Not for yielding', 65, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (540, 'arabian_teamk', 'Tea Maker', 'Quench that desert thirst', 66, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '27', -1, '2,4', NULL), + (541, 'arabian_tetbl', 'Hexagonal Tea Table', 'Serve up a treat', 67, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (542, 'arabian_tray1', 'Mint Tea Tray', 'Tea for every occasion', 68, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (543, 'arabian_tray2', 'Candle Tray', 'For those Arabian nights', 73, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (544, 'arabian_tray3', 'Sweets Tray', 'Indulge yourself!', 70, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (545, 'arabian_tray4', 'Fruit Tray', 'Sweet, juicy and ripe', 71, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (546, 'arabian_wndw', 'Arabian Window Frame', 'Arabian days and nights', 72, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (547, 'arabian_wall', 'Arabian Wall', 'A wall built with class.', 4287, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (548, 'arabian_tile', 'Arabian Tile', 'Step in style...', 3312, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (549, 'noob_window_double', 'Window', 'Room with a view', 1196, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 0, 0, '', -1, '2,4', NULL), + (550, 'window_70s_narrow', 'Small 70s Window', 'Takes you back', 1197, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (551, 'window_70s_wide', 'Large 70s Window', 'A view of the past', 1198, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (552, 'window_basic', 'Basic Window', 'Plain and simple', 1199, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (553, 'window_chinese_narrow', 'Small Oriental Window', 'Narrow wood carved frame', 1200, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (554, 'window_chinese_wide', 'Large Oriental Window', 'Dreaming of a Chinese summer', 1201, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (555, 'window_double_default', 'Double Window', 'Twice as good a view', 1202, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (556, 'window_golden', 'Golden Window', 'An expensive view', 1203, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (557, 'window_grunge', 'Grunge Window', 'Don\'t get too close!', 1204, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (558, 'window_romantic_narrow', 'Small Romantic Window', 'A beautiful view', 1205, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (559, 'window_romantic_wide', 'Large Romantic Window', 'Heavenly scent of flowers', 1206, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (560, 'window_single_default', 'Single Window', 'A simple view', 1207, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (561, 'window_square', 'Glass Square Window', 'Let\'s get creative!', 1208, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (562, 'window_triple', 'Bay Window', 'Now THAT\'S a view!', 1209, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (563, 'window_skyscraper', 'Skyscraper Window', 'Dizzy heights!', 1391, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (564, 'pets1', NULL, NULL, 34, 1, 1, 0, '2', 'requires_rights_for_interaction,redirect_rotation_4,can_stand_on_top', 'pet_nest', 1, 1, '', -1, '0,2,4,6', NULL), + (565, 'pets2', NULL, NULL, 35, 1, 1, 0, '2', 'requires_rights_for_interaction,redirect_rotation_4,can_stand_on_top', 'pet_nest', 1, 1, '', -1, '0,2,4,6', NULL), + (566, 'teleport_door', 'Teleport Door', 'Magic doorway to anywhere!', 538, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_0,door_teleporter', 'teleport', 1, 1, '', -1, '0,2,4,6', NULL), + (567, 'noob_plant', 'Lucky Bamboo', 'Starter Furni', 1288, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (568, 'noob_table*1', 'My first Habbo table', 'Lightweight, practical and orange', 1189, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (569, 'noob_table*2', 'My first Habbo table', 'Lightweight, practical and dark blue', 1190, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (570, 'noob_table*3', 'My first Habbo table', 'Lightweight, practical and aubergine', 1191, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (571, 'noob_table*4', 'My first Habbo table', 'Lightweight, practical and light blue', 1192, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (572, 'noob_table*5', 'My first Habbo table', 'Lightweight, practical and pink', 1193, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (573, 'noob_table*6', 'My first Habbo table', 'Lightweight, practical and green', 1194, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (574, 'noob_stool*1', 'My first Habbo stool', 'Unfold me and take the weight off (orange)', 1183, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (575, 'noob_stool*2', 'My first Habbo stool', 'Unfold me and take the weight off (dark blue)', 1184, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (576, 'noob_stool*3', 'My first Habbo stool', 'Unfold me and take the weight off (aubergine)', 1185, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (577, 'noob_stool*4', 'My first Habbo stool', 'Unfold me and take the weight off (light blue)', 1186, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (578, 'noob_stool*5', 'My first Habbo stool', 'Unfold me and take the weight off (pink)', 1187, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (579, 'noob_stool*6', 'My first Habbo stool', 'Unfold me and take the weight off (green)', 1188, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (580, 'noob_rug*1', 'My first Habbo rug', 'Nice and neat sisal rug with orange edging', 1177, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (581, 'noob_rug*2', 'My first Habbo rug', 'Nice and neat sisal rug with blue edging', 1178, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (582, 'noob_rug*3', 'My first Habbo rug', 'Nice and neat sisal rug with aubergine edging', 1179, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (583, 'noob_rug*4', 'My first Habbo rug', 'Nice and neat sisal rug with light blue edging', 1180, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (584, 'noob_rug*5', 'My first Habbo rug', 'Nice and neat sisal rug with pink edging', 1181, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (585, 'noob_rug*6', 'My first Habbo rug', 'Nice and neat sisal rug with green edging', 1182, 2, 2, 0.1, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (586, 'noob_lamp*1', 'My first Habbo lamp', 'Get the light right where you want it (yellow)', 1171, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (587, 'noob_lamp*2', 'My first Habbo lamp', 'Get the light right where you want it (dark blue)', 1172, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (588, 'noob_lamp*3', 'My first Habbo lamp', 'Get the light right where you want it (aubergine)', 1173, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (589, 'noob_lamp*4', 'My first Habbo lamp', 'Get the light right where you want it (light blue)', 1174, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (590, 'noob_lamp*5', 'My first Habbo lamp', 'Get the light right where you want it (pink)', 1175, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (591, 'noob_lamp*6', 'My first Habbo lamp', 'Get the light right where you want it (canary yellow)', 1176, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 0, 0, '', -1, '0,2', NULL), + (592, 'noob_chair*1', 'My first Habbo chair', 'Lightweight, practical and yellow', 1165, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (593, 'noob_chair*2', 'My first Habbo chair', 'Lightweight, practical, with dark blue stripes', 1166, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (594, 'noob_chair*3', 'My first Habbo chair', 'Lightweight, practical, with red stripes', 1167, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (595, 'noob_chair*4', 'My first Habbo chair', 'Lightweight, practical, with light blue stripes', 1168, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (596, 'noob_chair*5', 'My first Habbo chair', 'Lightweight, practical, with pink stripes', 1169, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (597, 'noob_chair*6', 'My first Habbo chair ', 'Lightweight, practical with dark yellow stripes', 1170, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 0, 0, '', -1, '0,2,4,6', NULL), + (598, 'country_rain', 'Rain Shower', 'Made in Britain', 11139, 1, 1, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (599, 'country_scarecrow', 'Country Scarecrow', 'Looks strangely similar', 11134, 0, 0, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (600, 'country_soil', 'Crop Field', 'Grow your own!', 11138, 2, 2, 0, '6', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (601, 'country_grass', 'Field Grass', 'Herding and grazing', 11144, 2, 2, 0, '3', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (602, 'country_trctr', 'Tractor', 'Don\'t run over the bunny!', 11125, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (603, 'country_fnc2', 'Stone Wall', 'Keep your livestock safe', 11131, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (604, 'country_fnc1', 'Stick Fence', 'Wooden fence', 11129, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (605, 'country_well', 'Wishing Well', 'Come spend a penny', 11132, 1, 1, 0, '2', 'solid', 'vending_machine', 1, 1, '7', -1, '2,4', NULL), + (606, 'country_rbw', 'Rainbow', 'Is there a pot of gold at the end?', 11130, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (607, 'country_wheat', 'Golden Wheat', 'Right on the brink of harvest', 11135, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (608, 'country_gate', 'Farm Gate', 'Livestock: Close gate behind you', 11140, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (609, 'country_stage', 'Wooden Stage', 'Time for a barn dance', 11142, 2, 2, 0.8, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (610, 'country_log', 'Log bench', 'Stop and perch', 11143, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (611, 'country_fnc3', 'Stone Pile', 'The work of a witch?', 11128, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (612, 'country_patio', 'Wooden Patio Tile', 'Build the great outdoors', 11178, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (613, 'country_corner', 'Country Ditch Corner', 'Channel your irrigation', 11177, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (614, 'country_ditch', 'Country Ditch Corner', 'Irrigation to irritation in one wrong step', 11176, 1, 2, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (615, 'country_forestwall', 'Forest Wall Poster', 'Give your walls a woodland touch', 11086, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (616, 'country_fp', 'Marble Fireplace', 'Keep the home fires burning', 11136, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (617, 'country_wall', 'Country Wall', 'Tudor Style', 11127, 0, 0, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (618, 'country_lantern', 'Ye Olde Lantern', 'Light of your Country life', 11124, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (619, 'env_bushes', 'Eco Hedgerow', 'Block out your nosey neighbours', 10058, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (620, 'env_bushes_gate', 'Eco Hedgerows Gate', 'Get ready for Mother Nature\'s world and wait your turn', 10059, 1, 2, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (621, 'env_grass', 'Grass patch', 'Lush green grass to lay on your Earth', 10060, 2, 2, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (622, 'env_telep', 'The Outhouse', 'A place for privacy', 11148, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (623, 'env_tree1', 'Forest Tree Chair', 'Take seat and breathe in the fresh air!', 10061, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (624, 'env_tree2', 'Forest Tree Americana', 'Earth\'s Green Haven - ROOM 997 by EarthBoyJim', 10062, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (625, 'env_tree3', 'Forest Trunk Seat', 'Earth\'s Green Haven - ROOM 629 by EarthBoyJim', 10063, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (626, 'env_tree4', 'The Four Seasons Tree', 'Crank up some Vivaldi & give your mate a gift.', 10064, 2, 2, 0, '4', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (627, 'avatar_effect1', NULL, NULL, 0, 0, 0, 0, '0', 'effect,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (628, 'bump_road', 'Road', 'Get in the fast lane', 1702, 2, 2, 0, '4', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (629, 'bump_lights', 'Traffic Lights', 'Ready. Steady. Go!', 1701, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (630, 'bump_signs', 'Road Signs', '7 in 1 road sign.', 1703, 1, 1, 0, '7', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (631, 'bump_tires', 'Bumper Tyres', 'Gets you back on track', 1704, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (632, 'bump_tottero', 'Safety Cone', 'Not a road bump!', 1705, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (633, 'chair_norja*2', 'Black Iced Chair', 'Sleek and chic for each cheek', 756, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (634, 'chair_norja*3', 'White Iced Chair', 'Sleek and chic for each cheek', 767, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (635, 'chair_norja*4', 'Urban Iced Chair', 'Sleek and chic for each cheek', 778, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (636, 'chair_norja*5', 'Pink Chair', 'Sleek and chic for each cheek', 789, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (637, 'chair_norja*6', 'Blue Chair', 'Sleek and chic for each cheek', 800, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (638, 'chair_norja*7', 'Rural Chair', 'Sleek and chic for each cheek', 811, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (639, 'chair_norja*8', 'Yellow Chair', 'Sleek and chic for each cheek', 822, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (640, 'chair_norja*9', 'Red Chair', 'Sleek and chic for each cheek', 833, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (641, 'couch_norja*2', 'Black Iced Bench', 'Two can perch comfortably', 757, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (642, 'couch_norja*3', 'White Iced Bench', 'Two can perch comfortably', 768, 2, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (643, 'couch_norja*4', 'Urban Iced Bench', 'Two can perch comfortably', 779, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (644, 'couch_norja*5', 'Pink Bench', 'Two can perch comfortably', 790, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (645, 'couch_norja*6', 'Blue Bench', 'Two can perch comfortably', 801, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (646, 'couch_norja*7', 'Rural Iced Bench', 'Two can perch comfortably', 812, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (647, 'couch_norja*8', 'Yellow Bench', 'Two can perch comfortably', 823, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (648, 'couch_norja*9', 'Red Bench', 'Two can perch comfortably', 834, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (649, 'table_norja_med*2', 'Black Iced Table', 'For larger gatherings', 758, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (650, 'table_norja_med*3', 'White Iced Table', 'For larger gatherings', 769, 2, 2, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (651, 'table_norja_med*4', 'Urban Iced Coffee Table', 'For larger gatherings', 780, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (652, 'table_norja_med*5', 'Large Coffee Table Pink', 'For larger gatherings', 791, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (653, 'table_norja_med*6', 'Large Coffee Table Blue', 'For larger gatherings', 802, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (654, 'table_norja_med*7', 'Rural Iced Coffee Table', 'For larger gatherings', 813, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (655, 'table_norja_med*8', 'Large Coffee Table Yellow', 'For larger gatherings', 824, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (656, 'table_norja_med*9', 'Large Coffee Table Red', 'For larger gatherings', 835, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (657, 'shelves_norja*2', 'Black Iced Bookcase', 'For nic naks and art deco books', 759, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (658, 'shelves_norja*3', 'White Iced Bookcase', 'For nic naks and art deco books', 770, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (659, 'shelves_norja*4', 'Urban Iced Bookcase', 'For nic naks and tech books', 781, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (660, 'shelves_norja*5', 'Pink Bookcase', 'For nic naks and art deco books', 792, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (661, 'shelves_norja*6', 'Blue Bookcase', 'For nic naks and art deco books', 803, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (662, 'shelves_norja*7', 'Rural Iced Bookcase', 'For nic naks and cookery books', 814, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (663, 'shelves_norja*8', 'Yellow Bookcase', 'For nic naks and art deco books', 825, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (664, 'shelves_norja*9', 'Red Bookcase', 'For nic naks and art deco books', 836, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (665, 'soft_sofachair_norja*2', 'Black Iced Sofachair', 'Black Iced Sofachair', 760, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (666, 'soft_sofachair_norja*3', 'White Iced Sofachair', 'Soft Iced sofachair', 771, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (667, 'soft_sofachair_norja*4', 'Urban Iced Sofachair', 'Sit back and relax', 782, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (668, 'soft_sofachair_norja*5', 'Pink Iced Sofachair', 'Pink Iced Sofachair', 793, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (669, 'soft_sofachair_norja*6', 'Blue Iced Sofachair', 'Blue Iced Sofachair', 804, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (670, 'soft_sofachair_norja*7', 'Rural Iced Sofachair', 'Sit back and relax', 815, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (671, 'soft_sofachair_norja*8', 'Yellow Iced Sofachair', 'Yellow Iced Sofachair', 826, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (672, 'soft_sofachair_norja*9', 'Red Iced Sofachair', 'Red Iced Sofachair', 837, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (673, 'soft_sofa_norja*2', 'Black Iced Sofa', 'Black Iced Sofa', 761, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (674, 'soft_sofa_norja*3', 'White Iced Sofa', 'Pristine white, keep it clean!', 772, 2, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (675, 'soft_sofa_norja*4', 'Urban Iced Sofa', 'Sit back and relax', 783, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (676, 'soft_sofa_norja*5', 'Pink Iced Sofa', 'Pink Iced Sofa', 794, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (677, 'soft_sofa_norja*6', 'Blue Iced Sofa', 'A soft leather sofa', 805, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (678, 'soft_sofa_norja*7', 'Rural Iced Sofa', 'Sit back and relax', 816, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (679, 'soft_sofa_norja*8', 'Yellow Iced Sofa', 'Yellow Iced Sofa', 827, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (680, 'soft_sofa_norja*9', 'Red Iced Sofa', 'Red Iced Sofa', 838, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (681, 'divider_nor2*2', 'Black Iced Bar-Desk', 'Soft but sturdy', 762, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (682, 'divider_nor2*3', 'White Iced Bar-Desk', 'Strong, yet soft looking', 773, 2, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (683, 'divider_nor2*4', 'Urban Iced Bar', 'No way through', 784, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (684, 'divider_nor2*5', 'Pink Iced bar desk', 'Pink Iced bar desk', 795, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (685, 'divider_nor2*6', 'Blue Iced bar desk', 'Blue Iced bar desk', 806, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (686, 'divider_nor2*7', 'Rural Iced Bar', 'No way through', 817, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (687, 'divider_nor2*8', 'Yellow Iced bar desk', 'Yellow Iced bar desk', 828, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (688, 'divider_nor2*9', 'Red Iced bar desk', 'Red Iced bar desk', 839, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (689, 'divider_nor1*2', 'Black Iced Corner', 'Tuck it away', 763, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (690, 'divider_nor1*3', 'White Iced Corner', 'Looks squishy, but isn\'t!', 774, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (691, 'divider_nor1*4', 'Urban Iced Corner', 'The missing piece', 785, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (692, 'divider_nor1*5', 'Pink Ice corner', 'Pink Ice corner', 796, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (693, 'divider_nor1*6', 'Blue Ice corner', 'Blue Ice corner', 807, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (694, 'divider_nor1*7', 'Rural Iced Corner', 'The missing piece', 818, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (695, 'divider_nor1*8', 'Yellow Ice corner', 'Yellow Ice corner', 829, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (696, 'divider_nor1*9', 'Red Ice corner', 'Red Ice corner', 840, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (697, 'divider_nor3*2', 'Black Iced Gate', 'No way through, or is there?', 764, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (698, 'divider_nor3*3', 'White Iced Gate', 'Do go through...', 775, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (699, 'divider_nor3*4', 'Urban Iced Gate', 'Entrance or exit?', 786, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (700, 'divider_nor3*5', 'Pink Iced gate', 'Pink Iced gate', 797, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (701, 'divider_nor3*6', 'Blue Iced gate', 'Blue Iced gate', 808, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (702, 'divider_nor3*7', 'Rural Iced gate', 'Entrance or exit?', 819, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (703, 'divider_nor3*8', 'Yellow Iced gate', 'Yellow Iced gate', 830, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (704, 'divider_nor3*9', 'Red Iced gate', 'Red Iced gate', 841, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (705, 'divider_nor4*2', 'Black Iced Auto Shutter', 'Habbos, roll out!', 765, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (706, 'divider_nor4*3', 'White Iced Auto Shutter', 'Habbos, roll out!', 776, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (707, 'divider_nor4*4', 'Urban Iced Shutter', 'Habbos, roll out!', 787, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (708, 'divider_nor4*5', 'Pink Iced Auto Shutter', 'Habbos, roll out!', 798, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (709, 'divider_nor4*6', 'Blue Iced Auto Shutter', 'Habbos, roll out!', 809, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (710, 'divider_nor4*7', 'Rural Iced Shutter', 'Habbos, roll out!', 820, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (711, 'divider_nor4*8', 'Yellow Iced Auto Shutter', 'Habbos, roll out!', 831, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (712, 'divider_nor4*9', 'Red Iced Auto Shutter', 'Habbos, roll out!', 842, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (713, 'divider_nor5*2', 'Black Iced Angle', 'Cool cornering for your crib y0!', 766, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (714, 'divider_nor5*3', 'White Iced Angle', 'Cool cornering for your crib y0!', 777, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (715, 'divider_nor5*4', 'Urban Iced Angle', 'Cool cornering for your crib!', 788, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (716, 'divider_nor5*5', 'Pink Iced Angle', 'Cool cornering for your crib y0!', 799, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (717, 'divider_nor5*6', 'Blue Iced Angle', 'Cool cornering for your crib y0!', 810, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (718, 'divider_nor5*7', 'Rural Iced Angle', 'Cool cornering for your crib!', 821, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (719, 'divider_nor5*8', 'Yellow Iced Angle', 'Cool cornering for your crib y0!', 832, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (720, 'divider_nor5*9', 'Red Iced Angle', 'Cool cornering for your crib y0!', 843, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (721, 'sofa_silo*2', 'Black Two-Seater Sofa', 'Cushioned, understated comfort', 684, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (722, 'sofa_silo*3', 'White Two-Seater Sofa', 'Cushioned, understated comfort', 693, 2, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (723, 'sofa_silo*4', 'Beige Area Sofa', 'Beige Area Sofa', 702, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (724, 'sofa_silo*5', 'Pink Area Sofa', 'Cushioned, understated comfort', 711, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (725, 'sofa_silo*6', 'Blue Area Sofa', 'Cushioned, understated comfort', 720, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (726, 'sofa_silo*7', 'Green Area Sofa', 'Cushioned, understated comfort', 729, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (727, 'sofa_silo*8', 'Yellow Two-Seater Sofa', 'Cushioned, understated comfort', 738, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (728, 'sofa_silo*9', 'Red Area Sofa', 'Cushioned, understated comfort', 747, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (729, 'sofachair_silo*2', 'Black Armchair', 'Large, but worth it', 685, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (730, 'sofachair_silo*3', 'White Armchair', 'Large, but worth it', 694, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (731, 'sofachair_silo*4', 'Beige Area Armchair', 'Large, but worth it', 703, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (732, 'sofachair_silo*5', 'Pink Area Armchair', 'Large, but worth it', 712, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (733, 'sofachair_silo*6', 'Blue Area Armchair', 'Large, but worth it', 721, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (734, 'sofachair_silo*7', 'Green Area Armchair', 'Large, but worth it', 730, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (735, 'sofachair_silo*8', 'Yellow Armchair', 'Large, but worth it', 739, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (736, 'sofachair_silo*9', 'Red Area Armchair', 'Large, but worth it', 748, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (737, 'table_silo_small*2', 'Black Occasional Table', 'For those random moments', 686, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (738, 'table_silo_small*3', 'White Occasional Table', 'For those random moments', 695, 1, 1, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (739, 'table_silo_small*4', 'Beige Area Occasional Table', 'Beige Area Occasional Table', 704, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (740, 'table_silo_small*5', 'Pink Area Occasional Table', 'Pink Area Occasional Table', 713, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (741, 'table_silo_small*6', 'Blue Area Occasional Table', 'Small and elegant', 722, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (742, 'table_silo_small*7', 'Green Area Occasional Table', 'Small and elegant', 731, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (743, 'table_silo_small*8', 'Yellow Occasional Table', 'For those random moments', 740, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (744, 'table_silo_small*9', 'Red Area Occasional Table', 'Red Area Occasional Table', 749, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (745, 'divider_silo3*2', 'Black Area Gate', 'Form following function', 687, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (746, 'divider_silo3*3', 'White Area Gate', 'Form following function', 696, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (747, 'divider_silo3*4', 'Beige Area Gate', 'Beige Area Gate', 705, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (748, 'divider_silo3*5', 'Pink Area Gate', 'Pink Area Gate', 714, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (749, 'divider_silo3*6', 'Blue Area Gate', 'Door (lockable)', 723, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (750, 'divider_silo3*7', 'Green Area Gate', 'Door (lockable)', 732, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (751, 'divider_silo3*8', 'Yellow Area Gate', 'Form following function', 741, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (752, 'divider_silo3*9', 'Red Area Gate', 'Red Area Gate', 750, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (753, 'divider_silo1*2', 'Black Corner Shelf', 'Neat and natty', 688, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (754, 'divider_silo1*3', 'White Corner Shelf', 'Neat and natty', 697, 1, 1, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (755, 'divider_silo1*4', 'Beige Area Corner Shelf', 'Beige Area Corner Shelf', 706, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (756, 'divider_silo1*5', 'Pink Area Corner Shelf', 'Pink Area Corner Shelf', 715, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (757, 'divider_silo1*6', 'Blue Area Corner Shelf', 'Tuck it away!', 724, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (758, 'divider_silo1*7', 'Green Area Corner Shelf', 'Tuck it away!', 733, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (759, 'divider_silo1*8', 'Yellow Corner Shelf', 'Neat and natty', 742, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (760, 'divider_silo1*9', 'Red Area Corner Shelf', 'Tuck it away', 751, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (761, 'chair_silo*2', 'Black Dining Chair', 'Keep it simple', 689, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (762, 'chair_silo*3', 'White Dining Chair', 'Keep it simple', 698, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (763, 'chair_silo*4', 'Beige Silo Dining Chair', 'Beige Silo Dining Chair', 707, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (764, 'chair_silo*5', 'Pink Silo Dining Chair', 'Pink Silo Dining Chair', 716, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (765, 'chair_silo*6', 'Blue Area Dining Chair', 'Wooden dining chair', 725, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (766, 'chair_silo*7', 'Green Area Dining Chair', 'Wooden dining chair', 734, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (767, 'chair_silo*8', 'Yellow Dining Chair', 'Keep it simple', 743, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (768, 'chair_silo*9', 'Red Area Dining Chair', 'Wooden dining chair', 752, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (769, 'safe_silo*2', 'Black Safe Minibar', 'Totally shatter-proof!', 690, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (770, 'safe_silo*3', 'White Safe Minibar', 'Totally shatter-proof!', 699, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (771, 'safe_silo*4', 'Beige Safe Minibar', 'Totally shatter-proof!', 708, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (772, 'safe_silo*5', 'Pink Safe Minibar', 'Totally shatter-proof!', 717, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (773, 'safe_silo*6', 'Blue Safe Minibar', 'Totally shatter-proof!', 726, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (774, 'safe_silo*7', 'Green Safe Minibar', 'Totally shatter-proof!', 735, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (775, 'safe_silo*8', 'Yellow Safe Minibar', 'Totally shatter-proof!', 744, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (776, 'safe_silo*9', 'Red Safe Minibar', 'Totally shatter-proof!', 753, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (777, 'barchair_silo*2', 'Black Bar Stool', 'Practical and convenient', 691, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (778, 'barchair_silo*3', 'White Bar Stool', 'Practical and convenient', 700, 1, 1, 1.5, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (779, 'barchair_silo*4', 'Beige Bar Stool', 'Practical and convenient', 709, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (780, 'barchair_silo*5', 'Pink Bar Stool', 'Practical and convenient', 718, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (781, 'barchair_silo*6', 'Blue Bar Stool', 'Take a perch!', 727, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (782, 'barchair_silo*7', 'Green Bar Stool', 'Take a perch!', 736, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (783, 'barchair_silo*8', 'Yellow Bar Stool', 'Practical and convenient', 745, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (784, 'barchair_silo*9', 'Red Bar Stool', 'Practical and convenient', 754, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (785, 'table_silo_med*2', 'Black Coffee Table', 'Wipe clean and unobtrusive', 692, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (786, 'table_silo_med*3', 'White Coffee Table', 'Wipe clean and unobtrusive', 701, 2, 2, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (787, 'table_silo_med*4', 'Beige Area Coffee Table', 'Beige Area Coffee Table', 710, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (788, 'table_silo_med*5', 'Pink Area Coffee Table', 'Pink Area Coffee Table', 719, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (789, 'table_silo_med*6', 'Blue Area Coffee Table', 'Gather everyone round', 728, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (790, 'table_silo_med*7', 'Green Area Coffee Table', 'Gather everyone round', 737, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (791, 'table_silo_med*8', 'Yellow Coffee Table', 'Wipe clean and unobtrusive', 746, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (792, 'table_silo_med*9', 'Red Area Coffee Table', 'Red Area Coffee Table', 755, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (793, 'pura_mdl1*1', 'Aqua Pura Module 1', 'Any way you like it!', 893, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (794, 'pura_mdl2*1', 'Aqua Pura Module 2', 'Any way you like it!', 894, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (795, 'pura_mdl3*1', 'Aqua Pura Module 3', 'Any way you like it!', 895, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (796, 'pura_mdl4*1', 'Aqua Pura Module 4', 'Any way you like it!', 896, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (797, 'pura_mdl5*1', 'Aqua Pura Module 5', 'Any way you like it!', 897, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (798, 'chair_basic*1', 'Aqua Pura Egg Chair', 'It\'s a cracking design!', 938, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (799, 'pura_mdl1*2', 'Pink Pura Module 1', 'Any way you like it!', 898, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (800, 'pura_mdl1*3', 'Black Pura Module 1', 'Any way you like it!', 903, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (801, 'pura_mdl1*4', 'White Pura Module 1', 'Any way you like it!', 908, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (802, 'pura_mdl1*5', 'Beige pura module 1', '', 913, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (803, 'pura_mdl1*6', 'Blue Pura Module 1', 'Any way you like it!', 918, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (804, 'pura_mdl1*7', 'Green Pura Module 1', 'Any way you like it!', 923, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (805, 'pura_mdl1*8', 'Yellow pura module 1', '', 928, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (806, 'pura_mdl1*9', 'Red Pura Module 1', 'Any way you like it!', 933, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (807, 'pura_mdl2*2', 'Pink Pura Module 2', 'Any way you like it!', 899, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (808, 'pura_mdl2*3', 'Black Pura Module 2', 'Any way you like it!', 904, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (809, 'pura_mdl2*4', 'White Pura Module 2', 'Any way you like it!', 909, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (810, 'pura_mdl2*5', 'Beige pura module 2', '', 914, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (811, 'pura_mdl2*6', 'Blue Pura Module 2', 'Any way you like it!', 919, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (812, 'pura_mdl2*7', 'Green Pura Module 2', 'Any way you like it!', 924, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (813, 'pura_mdl2*8', 'Yellow pura module 2', '', 929, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (814, 'pura_mdl2*9', 'Red Pura Module 2', 'Any way you like it!', 934, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (815, 'pura_mdl3*2', 'Pink Pura Module 3', 'Any way you like it!', 900, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (816, 'pura_mdl3*3', 'Black Pura Module 3', 'Any way you like it!', 905, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (817, 'pura_mdl3*4', 'White Pura Module 3', 'Any way you like it!', 910, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (818, 'pura_mdl3*5', 'Beige pura module 3', '', 915, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (819, 'pura_mdl3*6', 'Blue Pura Module 3', 'Any way you like it!', 920, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (820, 'pura_mdl3*7', 'Green Pura Module 3', 'Any way you like it!', 925, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (821, 'pura_mdl3*8', 'Yellow pura module 3', '', 930, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (822, 'pura_mdl3*9', 'Red Pura Module 3', 'Any way you like it!', 935, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (823, 'pura_mdl4*2', 'Pink Pura Module 4', 'Any way you like it!', 901, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (824, 'pura_mdl4*3', 'Black Pura Module 4', 'Any way you like it!', 906, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (825, 'pura_mdl4*4', 'White Pura Module 4', 'Any way you like it!', 911, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (826, 'pura_mdl4*5', 'Beige pura module 4', '', 916, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (827, 'pura_mdl4*6', 'Blue Pura Module 4', 'Any way you like it!', 921, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (828, 'pura_mdl4*7', 'Green Pura Module 4', 'Any way you like it!', 926, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (829, 'pura_mdl4*8', 'Yellow pura module 4', '', 931, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (830, 'pura_mdl4*9', 'Red Pura Module 4', 'Any way you like it!', 936, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (831, 'pura_mdl5*2', 'Pink Pura Module 5', 'Any way you like it!', 902, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (832, 'pura_mdl5*3', 'Black Pura Module 5', 'Any way you like it!', 907, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (833, 'pura_mdl5*4', 'White Pura Module 5', 'Any way you like it!', 912, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (834, 'pura_mdl5*5', 'Beige pura module 5', '', 917, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (835, 'pura_mdl5*6', 'Blue Pura Module 5', 'Any way you like it!', 922, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (836, 'pura_mdl5*7', 'Green Pura Module 5', 'Any way you like it!', 927, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (837, 'pura_mdl5*8', 'Yellow Pura Module 5', 'Any way you like it!', 932, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (838, 'pura_mdl5*9', 'Red Pura Module 5', 'Any way you like it!', 937, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (839, 'chair_basic*2', 'Pink Pura Egg Chair', 'It\'s a cracking design!', 939, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (840, 'chair_basic*3', 'Black Pura Egg Chair', 'It\'s a cracking design!', 940, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (841, 'chair_basic*4', 'White Pura Egg Chair', 'It\'s a cracking design!', 941, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (842, 'chair_basic*5', 'Beige Pura Egg Chair', 'It\'s a cracking design!', 942, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (843, 'chair_basic*6', 'Blue Pura Egg Chair', 'It\'s a cracking design!', 943, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (844, 'chair_basic*7', 'Green Pura Egg Chair', 'It\'s a cracking design!', 944, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (845, 'chair_basic*8', 'Yellow Pura Egg Chair', 'It\'s a cracking design!', 945, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (846, 'chair_basic*9', 'Red Pura Egg Chair', 'It\'s a cracking design!', 946, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (847, 'hcc_sofachair', 'Reclining Chair', 'Put your feet up!', 1407, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (848, 'hcc_chair', 'Trendy Stool', 'Shiny varnished finish', 1403, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (849, 'hcc_shelf', 'Bookshelf', 'Your own Habbo archives', 1405, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (850, 'hcc_stool', 'Antique Stool', 'For larger gatherings', 1408, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (851, 'hcc_dvdr', 'Glass Divider', 'It won\'t cramp your style', 11112, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (852, 'hcc_sofachair', 'Reclining Chair', 'Put your feet up!', 1407, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (853, 'hcc_crnr', 'Glass Corner', 'Adds the finishing touch', 11113, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (854, 'hcc_table', 'Glass Table', 'Elegant centre piece', 11115, 1, 2, 0.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (855, 'hcc_minibar', 'Minibar', 'Cool look, cool drinks!', 1404, 1, 1, 0, '2', 'solid,custom_data_true_false', 'vending_machine', 1, 1, '3,4,5,6', -1, '2,4', NULL), + (856, 'hcc_sofa', 'Low Back Sofa', 'Get your friends over!', 1406, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (857, 'glass_shelf', 'Glass shelf', 'Translucent beauty', 215, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (858, 'glass_sofa', 'Glass sofa', 'Translucent beauty', 216, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (859, 'glass_table', 'Glass table', 'Translucent beauty', 217, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (860, 'glass_chair', 'Glass chair', 'Translucent beauty', 218, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (861, 'glass_stool', 'Glass stool', 'Translucent beauty', 219, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (862, 'glass_sofa*2', 'Glass sofa', 'Translucent beauty', 220, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (863, 'glass_sofa*3', 'White Glass Sofa', 'Translucent beauty', 224, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (864, 'glass_sofa*4', 'Glass sofa', 'Translucent beauty', 228, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (865, 'glass_sofa*5', 'Candy Glass Sofa', 'Double glazed', 232, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (866, 'glass_table*2', 'Glass table', 'Translucent beauty', 221, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (867, 'glass_table*3', 'White Glass Table', 'Translucent beauty', 225, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (868, 'glass_table*4', 'Glass table', 'Translucent beauty', 229, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (869, 'glass_table*5', 'Candy Glass Table', 'Translucent beauty', 233, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (870, 'glass_chair*2', 'Glass chair', 'Translucent beauty', 222, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (871, 'glass_chair*3', 'Glass chair', 'Translucent beauty', 226, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (872, 'glass_chair*4', 'Glass chair', 'Translucent beauty', 230, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (873, 'glass_chair*5', 'Candy Glass Chair', 'A pane that you\'re used to', 234, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (874, 'glass_stool*2', 'Glass stool', 'Translucent beauty', 223, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (875, 'glass_stool*3', 'White Glass Stool', 'Translucent beauty', 227, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (876, 'glass_stool*4', 'Glass stool', 'Translucent beauty', 231, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (877, 'glass_stool*5', 'Candy Glass Stool', 'Clear a seat', 235, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (878, 'glass_sofa*6', 'Blue Glass Sofa', 'Translucent beauty', 236, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (879, 'glass_sofa*7', 'Green Glass Sofa', 'Habbo Club', 240, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (880, 'glass_sofa*8', 'Yellow Glass Sofa', 'Double glazed', 244, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (881, 'glass_sofa*9', 'Glass sofa', 'Translucent beauty', 248, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (882, 'glass_table*6', 'Blue Glass Table', 'Translucent beauty', 237, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (883, 'glass_table*7', 'Green Glass Table', 'Habbo Club', 241, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (884, 'glass_table*8', 'Yellow Glass Table', 'Translucent beauty', 245, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (885, 'glass_table*9', 'Glass table', 'Translucent beauty', 249, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (886, 'glass_chair*6', 'Blue Glass Chair', 'Translucent beauty', 238, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (887, 'glass_chair*7', 'Green Glass Chair', 'Habbo Club', 242, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (888, 'glass_chair*8', 'Yellow Glass Chair', 'A pane that you\'re used to', 246, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (889, 'glass_chair*9', 'Glass chair', 'Translucent beauty', 250, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (890, 'glass_stool*6', 'Blue Glass Stool', 'Translucent beauty', 239, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (891, 'glass_stool*7', 'Green Glass Stool', 'Habbo Club', 243, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (892, 'glass_stool*8', 'Yellow Glass Stool', 'Clear a seat', 247, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (893, 'glass_stool*9', 'Glass stool', 'Translucent beauty', 251, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (894, 'greek_gate', 'Greek Gate', 'Enter mortal, exit immortal!', 1379, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (895, 'greek_seat', 'Greek Seat', 'Park your bot on this stone slab!', 1381, 1, 1, 0.7, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (896, 'greek_pillars', 'Greek Pillars', 'Architectural splendor!', 1380, 2, 1, 3.2, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (897, 'greek_corner', 'Greek Corner', 'Tuck it away!', 1378, 1, 1, 3.2, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (898, 'greek_block', 'Greek Block', 'A nice stone block', 2195, 2, 1, 0.5, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (899, 'romantique_pianochair*1', 'Rose Quartz Piano Chair', 'Elegant seating for elegant Habbos', 948, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (900, 'romantique_divan*1', 'Chaise-Longue', 'Recline in continental Rose Quartz comfort', 950, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (901, 'romantique_chair*1', 'Rose Quartz Chair', 'Elegant seating for elegant Habbos', 949, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (902, 'romantique_divider*1', 'Rose Quartz Screen', 'Beauty lies within', 951, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (903, 'romantique_smalltabl*1', 'Rose Quartz Tray Table', 'Every tray needs a table...', 952, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (904, 'romantique_mirrortabl', 'Dressing Table', 'Get ready for your big date', 484, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (905, 'wallmirror', 'Wallmirror', 'Mirror, mirror on the wall...', 481, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (906, 'romantique_tray1', 'Romantique Tray', 'Breakfast is served!', 2145, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (907, 'romantique_tray2', 'Romantique Treats Tray', 'Time to celebrate!', 482, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (908, 'rom_lamp', 'Crystal Lamp', 'Light up your life', 483, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (909, 'romantique_clock', 'Grandfather\'s Clock', 'The most Romantic tick-tock ever!', 485, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (910, 'romantique_pianochair*2', 'Lime Romantique Piano Chair', 'Sit in traditional style', 954, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (911, 'romantique_divan*2', 'Emerald Chaise-Longue', 'Recline in continental comfort', 956, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (912, 'romantique_chair*2', 'Lime Romantique Chair', 'null', 955, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (913, 'romantique_divider*2', 'Green Screen', 'Keeping things separated', 957, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (914, 'romantique_smalltabl*2', 'Lime Tray Table', 'Every tray needs a table...', 958, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (915, 'romantique_pianochair*3', 'Sapphire Chair', 'For stately seating experiences', 960, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (916, 'romantique_divan*3', 'Turquoise Romantique Divan', 'null', 962, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (917, 'romantique_chair*3', 'Turquoise Romantique Chair', 'null', 961, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (918, 'romantique_divider*3', 'Turquoise Screen', 'Keeping things separated', 963, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (919, 'romantique_smalltabl*3', 'Turquoise Tray Table', 'Every tray needs a table...', 964, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (920, 'romantique_pianochair*4', 'Amber Piano Stool', 'I can feel air coming through...', 966, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (921, 'romantique_divan*4', 'Amber Chaise-Longue', 'Is that a cape hanging there?', 968, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (922, 'romantique_chair*4', 'Amber Chair', 'What does this button do?', 967, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (923, 'romantique_divider*4', 'Ochre Screen', 'Keeping things separated', 969, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (924, 'romantique_smalltabl*4', 'Amber Tray Table', 'Why is one leg different?', 970, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (925, 'romantique_pianochair*5', 'Onyx Piano Stool', 'I can feel air coming through...', 972, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (926, 'romantique_divan*5', 'Onyx Chaise-Longue', 'Is that a cape hanging there?', 974, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (927, 'romantique_chair*5', 'Onyx Chair', 'What does this button do?', 973, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (928, 'romantique_divider*5', 'Romantique Screen Gray', 'Keeping Things Separated', 4488, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (929, 'romantique_smalltabl*5', 'Onyx Tray Table', 'Why is one leg different?', 976, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (930, 'grand_piano*1', 'Turquoise Grand Piano', 'Turquoise Grand Piano', 947, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (931, 'grand_piano*2', 'Esmerald Piano Stool', 'Let the music begin', 953, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (932, 'grand_piano*3', 'Sapphire Piano Stool', 'Make sure you play in key!', 959, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (933, 'grand_piano*4', 'Amber Grand Piano', 'Why is that key green?', 965, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (934, 'grand_piano*5', 'Onyx Grand Piano', 'Why is that key green?', 971, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (935, 'xmas08_chair', 'Ice chair', 'Make sure you wear trousers!', 1493, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (936, 'xmas08_cubetree', 'Cube Tree', 'So ice Cubes DO grow on trees...', 1494, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (937, 'xmas08_dvdr1', 'Ice divider', 'Stone and ice in one snowy wall!', 1495, 2, 1, 1.2, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (938, 'xmas08_dvdr2', 'Icy Divider Corner', 'What\'s a dividing wall without a corner?', 1496, 1, 1, 1.6, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (939, 'xmas08_geysir', 'Geyser', 'Nothing quite like a warm exploding water hole!', 1497, 2, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (940, 'xmas08_hole', 'Ice Fish Hole', 'What can you catch?', 1498, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '34', -1, '2,4', NULL), + (941, 'xmas08_hottub', 'Hot Tub', 'Party time in the Arctic people!', 1499, 2, 2, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (942, 'xmas08_icerug', 'Ice Patch', 'Ice, Snow or Wet Slush? All is possible with this.', 1500, 2, 2, 0, '4', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (943, 'xmas08_icetree', 'Icy Christmas Tree', 'It can\'t be Christmas without it!', 1501, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (944, 'xmas08_icewall', 'Icy Wall', 'The stuff Ice Palace\'s are made of!', 1502, 0, 0, 0, '4', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (945, 'xmas08_lantern', 'Snowball Lantern Pile', 'No dodging this pile!', 1503, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (946, 'xmas08_snowpl', 'Snow Seat', 'Take a rest and warm by a fire perhaps?', 1504, 1, 1, 1, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (947, 'xmas08_table', 'Icy table', 'Keeps your ice cream chilled - guaranteed!', 1505, 2, 2, 0.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (948, 'xmas08_telep', 'Icy Teleport', 'Travel space and time in this freeze block!', 1506, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (949, 'xmas08_trph1', 'Arctic Penguin Trophy', 'Given to those who have adopted ALL 26 penguins!', 1507, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (950, 'xmas08_wallpaper', 'Snowy Posters', 'The Arctic scenery on your walls!', 1508, 0, 0, 0, '6', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (951, 'campfire', 'Camp fire', 'Keep warm on those Arctic nights!', 1509, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (952, 'xmas_snow', 'Snow Storm', 'Get lost in your own blizzard!', 1511, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (953, 'lc_coral_divider_hi', 'Large Coral Divider', 'Keep those pesky sharks out', 1554, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (954, 'lc_coral_divider_low', 'Small Coral Divider', 'Perhaps you could swim over?', 1555, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (955, 'lc_wall1', 'Rock Wall', 'Depths of the ocean', 1556, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (956, 'lc_wall2', 'Coral Wall', 'There\'s life in the deep blue', 1557, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (957, 'lc_window1', 'Wooden Window', 'The deep blue', 1558, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (958, 'lc_window2', 'Aquarium Window', 'Creates a stunning scene', 1559, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (959, 'lc_anemone', 'Anemone', 'In glorious water colour!', 1560, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (960, 'lc_chair', 'Wooden Chair', 'No rusty nails, in sight', 1561, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (961, 'lc_corner', 'Wooden Corner', 'Tuck it away', 1562, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (962, 'lc_desk', 'Wooden Bar Desk', 'Not for sitting', 1563, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (963, 'lc_stool', 'Wooden Stool', 'Watch out for splinters', 1564, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (964, 'lc_table', 'Captain\'s Table', 'Treasure map not included', 1565, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (965, 'lc_tile1', 'Marble Floor Tile', 'Elegant underwater flooring', 1566, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (966, 'lc_tile2', 'Cobbled Stones', 'Rocky room foundations', 1567, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (967, 'lc_tubes_corners', 'Water Tube Corner', 'Sends you round the bend', 1568, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (968, 'lc_tubes_straight', 'Water Tube Straight', 'Just go with the flow', 1569, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (969, 'lostc_teleport', 'Architeuthis', 'March Collectable 2009, 3/6', 1570, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (970, 'lc_crab1', 'Crab Patch', 'Careful where you put your feet!', 1571, 2, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (971, 'lc_crab2', 'Sally Lightfoot', 'Careful! She\'ll give it \'all that\'', 1572, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (972, 'lc_glass_floor', 'Ocean Window Rug', 'Under the sea!', 1573, 2, 3, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (973, 'lc_medusa1', 'Large Jellyfish Lamp', 'There\'s no sting in this tail', 1574, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (974, 'lc_medusa2', 'Small Jellyfish Lamp', 'There\'s no sting in this tail', 1575, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (975, 'party_ball', 'Glitter Ball', 'Every party MUST have one!', 1440, 1, 1, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (976, 'party_barcorn', 'Bar Corner', 'Every party needs one!', 1441, 1, 1, 0.98, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (977, 'party_bardesk', 'Bar Centre', 'Keep the punters at bay', 1442, 1, 1, 0.98, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (978, 'party_beamer', 'Dance Floor Beamer', 'Get some lights to match your dancing shapes!', 1443, 1, 1, 0, '7', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (979, 'party_block', 'Small Stage', 'Build yourself a stage to host events!', 1444, 1, 1, 0.8, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (980, 'party_block2', 'Stage Block Large', 'Make mine a large!', 1445, 2, 2, 0.8, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (981, 'party_chair', 'High Class Bar Stool', 'Sit high and people watch on this!', 1446, 1, 1, 1.4, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (982, 'party_discol', 'Spotlight', 'Focus your attention or dance within its glow!', 1447, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (983, 'party_djtable', 'DJ Table', 'Scratch it, spin it and play some banging tracks!', 1448, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (984, 'party_floor', 'Disco Floor', 'The perfect place to throw some shapes', 1449, 2, 2, 0, '11', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (985, 'party_led', 'Big Wall Lights', 'Flashing Neon lights on the wall!', 1450, 0, 0, 0, '4', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (986, 'party_mic', 'Microphone', 'Sing, MC, shout out to your friends!', 1451, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (987, 'party_neon1', 'Neon Right Arrows', 'Find your way right in the dark!', 1452, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (988, 'party_neon2', 'Neon Left Arrows', 'Find your way left in the dark!', 1453, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (989, 'party_neon3', 'Neon Pink Flamingo', 'Celebrate the Eighties with this!', 1454, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (990, 'party_neon4', 'Neon Skull Light', 'A dull wall be gone!', 1455, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (991, 'party_neon5', 'Neon Heart Light', 'I heart Neon!', 1456, 0, 0, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (992, 'party_ravel', 'Dance Floor Laser', 'Meet the 22nd Century\'s dance floor lighting!', 1457, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (993, 'party_seat', 'Club seat', 'Rest your dancing feet on this!', 1458, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (994, 'party_shelf', 'Bar Shelf', 'Line up your beverages!', 1459, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (995, 'party_table', 'Glass High Bar Table', 'Chat with your friends over this!', 1460, 1, 1, 0.98, '3', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (996, 'party_tray', 'Club Tray', 'Rest your drinks on this!', 1461, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '31', -1, '2,4', NULL), + (997, 'party_tube_bubble', 'Bubbles Machine', 'Bubbles! Bubbles! Lovely bubbles!', 1462, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (998, 'party_tube_lava', 'Lava Lamp', 'Despite being made a lava, it is very cool.', 1463, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (999, 'party_wc_boy', 'Boys Toilets', 'Stand up or sitting down, this is for the Boys only!', 1464, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1000, 'party_wc_girl', 'Girls Toilets', 'Girls only please.', 1465, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1001, 'LT_throne', 'Lost Tribe Throne', 'Important for Tribe', 11156, 1, 1, 1.6, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1002, 'lt_jngl_wall', 'Jungle Wall', 'Jungle Wall', 11157, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1003, 'lt_patch', 'Lost Tribe Patch', 'Attention!', 11158, 2, 2, 0, '3', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1004, 'lt_lavac', 'Lost Tribe Lava Corner', 'Very dangerous!', 11159, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1005, 'LT_pillar', 'Lost Tribe Pillar', 'Lost Tribe Pillar', 11160, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1006, 'LT_pillar2', 'Lost Tribe Pillar 2', 'Attention!', 11161, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1007, 'LT_skull', 'Lost Tribe Skull', 'Very scary!', 11162, 1, 1, 0.4, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1008, 'lt_spider', 'Lost Tribe Spider', 'Attention!', 11163, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1009, 'lt_stage1', 'Lost Tribe Stage', 'Make mine a large!', 11164, 1, 1, 0.8, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1010, 'lt_stage2', 'Lost Tribe Stage', 'Make mine a large!', 11165, 2, 2, 0.8, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1011, 'lt_statue', 'Lost Tribe Statue', 'Attention!', 11166, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1012, 'lt_stone2', 'Lost Tribe Stone 2', 'Mysterious Stone', 11167, 2, 1, 1.04, '3', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1013, 'lt_lava', 'Lost Tribe Lava', 'Very dangerous!', 11168, 1, 2, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1014, 'lt_bughill', 'Lost Tribe Hill', 'Attention!', 11169, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1015, 'lt_gate', 'Lost Tribe Gate', 'Knock, knock...', 11170, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1016, 'lt_wall', 'Lost Tribe Stone Wall', 'I wonder if this wall is safe to climb?', 11210, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1017, 'lt_stone1', 'Stone Corner', 'I wonder how old this is???', 11211, 1, 1, 1.3, '2', 'can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1018, 'hween08_bath', 'Blood Bath', 'Should have chosen the shower!', 1726, 1, 2, 1, '2', 'can_sit_on_top,custom_data_numeric_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1019, 'hween08_wndwb', 'Broken Window (small)', 'Was it a rock or a dictionary?', 1422, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1020, 'hween08_wndw', 'Broken Window (large)', 'Was it a bird or a parsnip?', 1423, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1021, 'hween08_rad', 'Nuclear Radiation Sign', 'Warning! Smelly cheese ahead!', 1424, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1022, 'hween08_bio', 'Biohazard Sign', 'Every sock bin needs one!', 1425, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1023, 'hween08_bath2', 'Ooze Bath', 'Relax. Take it oozey!', 1427, 1, 2, 1, '2', 'can_sit_on_top,custom_data_numeric_on_off', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1024, 'hween08_bbag', 'Body Bag', 'Not a nice place to catch some Zzz\'s', 1428, 1, 3, 1.2, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1025, 'hween08_bed', 'Hospital Bed (blood)', 'You\'re in safe hands...', 1429, 1, 3, 1.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1026, 'hween08_bed2', 'Hospital Bed (ooze)', 'I\'m wicked and I\'m oozey!', 1430, 1, 3, 1.8, '0', 'can_lay_on_top,requires_rights_for_interaction', 'bed', 1, 1, '', -1, '0,2', NULL), + (1027, 'hween08_curtain', 'Hospital Curtain (blood)', 'Doctors at work', 1431, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1028, 'hween08_curtain2', 'Hospital Curtain (ooze)', 'Nurses at work', 1432, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1029, 'hween08_defibs', 'Life Support (blood)', 'Brought back to Earth with a shock!', 1433, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1030, 'hween08_defibs2', 'Life Support (ooze)', 'Brought back to Earth with a shock!', 1434, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1031, 'hween08_manhole', 'Manhole', 'Watch your step...', 1435, 1, 1, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1032, 'hween08_sink', 'Blood Sink', 'Nasty shaving accident?', 1436, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '29', -1, '2,4', NULL), + (1033, 'hween08_sink2', 'Ooze Sink', 'Who picked a spot?', 1437, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '30', -1, '2,4', NULL), + (1034, 'hween08_trll', 'Surgeon\'s Trolley', 'Chop, poke, ouch!', 1438, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1035, 'hw08_xray', 'X-Ray Poster', 'For viewing your bruises', 1439, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1036, 'eco_chair1', 'Eco Stool 1', 'Green leaf design', 1607, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1037, 'eco_chair2', 'Eco Stool 2', 'Brown floral design', 1608, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1038, 'eco_chair3', 'Eco Stool 3', 'Black and white skull design', 1609, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1039, 'eco_catcus1', NULL, NULL, 1439, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1040, 'eco_catcus2', NULL, NULL, 1439, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1041, 'eco_catcus3', NULL, NULL, 1439, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1042, 'eco_fruits1', 'Fruit Bowl 1', 'From tree to hand in 3 pixels!', 1610, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '38,37,39,36', -1, '2,4', NULL), + (1043, 'eco_fruits2', 'Fruit Bowl 2', 'From tree to hand in 3 pixels!', 1611, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '38,37,39,36', -1, '2,4', NULL), + (1044, 'eco_fruits3', 'Fruit Bowl 3', 'From tree to hand in 3 pixels!', 1612, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '38,37,39,36', -1, '2,4', NULL), + (1045, 'eco_lamp1', 'Eco Lamp 1', 'Energy saving bulb fitted', 1613, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1046, 'eco_lamp2', 'Eco Lamp 2', 'Energy saving bulb fitted', 1614, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1047, 'eco_lamp3', 'Eco Lamp 3', 'Energy saving bulb fitted', 1615, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1048, 'eco_light1', 'Eco Light 1', 'Energy saving bulb fitted', 1616, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1049, 'eco_light2', 'Eco Light 2', 'Energy saving bulb fitted', 1617, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1050, 'eco_light3', 'Eco Light 3', 'Energy saving bulb fitted', 1618, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1051, 'eco_table1', 'Eco Coffee Table 1', 'Recycled wood as standard', 1622, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1052, 'eco_table2', 'Eco Coffee Table 2', 'Recycled wood as standard', 1623, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1053, 'eco_table3', 'Eco Coffee Table 3', 'Recycled wood as standard', 1624, 2, 2, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1054, 'eco_tree1', 'Orange Tree', 'Actually, the tree is green...', 1625, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '38', -1, '2,4', NULL), + (1055, 'eco_tree2', 'Pear Tree', 'You\'ll want a pair of these...', 1626, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '36', -1, '2,4', NULL), + (1056, 'eco_tree3', NULL, NULL, 1439, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1057, 'eco_mush1', 'Witch Mushroom', 'Poisonous in the wrong hands', 11122, 1, 1, 0.7, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1058, 'eco_mush2', 'Fairy Mushroom', 'Sweet and nutty.', 11123, 1, 1, 1.5, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1059, 'eco_sofa1', 'Eco Armchair 1', 'Relax! You\'ve done your bit', 1619, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1060, 'eco_sofa2', 'Eco Armchair 2', 'Relax! You\'ve done your bit', 1620, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1061, 'eco_sofa3', 'Eco Armchair 3', 'Relax! You\'ve done your bit', 1621, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1062, 'eco_curtains1', 'Eco Curtain 1', 'Help keep the heat in', 1601, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1063, 'eco_curtains2', 'Eco Curtain 2', 'Help keep the heat in', 1602, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1064, 'eco_curtains3', 'Eco Curtain 3', 'Help keep the heat in', 1603, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1065, 'ecotron_box', 'Ecotron prize', 'This item is 100 % recycled.', 1627, 1, 1, 1, '0', 'can_stack_on_top,solid,eco_box,requires_rights_for_interaction', 'default', 1, 0, '', -1, '0,2,4,6', NULL), + (1066, 'eco_cactus1', 'Potted Cactus 1', 'Find a place in the sun', 1604, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1067, 'eco_cactus2', 'Potted Cactus 2', 'Find a place in the sun', 1605, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1068, 'eco_cactus3', 'Potted Cactus 3', 'Find a place in the sun', 1606, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1069, 'ktchn_pots', 'Hanging Pot Rack', 'Watch your head!', 1706, 2, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1070, 'ktchn_dvdr', 'Kitchel Wall Divider', 'A contemporary backsplash for any kitchen', 1707, 2, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1071, 'ktchn_light', 'Kitchen Light', 'The perfect lighting fixture to prep your food', 1708, 2, 1, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1072, 'ktchn_countr_2', 'Kitchen Counter Large', 'Vibrant and shiny.', 1709, 2, 1, 0.99, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1073, 'ktchn_cornr', 'Kitchen Wall Divider Corner', 'A contemporary backsplash for any kitchen', 1710, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1074, 'ktchn_gate', 'Kitchen Swinging Door', 'Easy to open and close during a bustling service.', 1711, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1075, 'ktchn_knives', 'Magnetic Knife Holder', 'Keeps your knives organized.', 1712, 0, 0, 0, '4', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1076, 'ktchn_plates', 'Dinner Plates', 'Who didn\'t finish their dinner?', 1713, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1077, 'ktchn_oven', 'Kitchen Oven', 'Bake me a pie!', 1714, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1078, 'ktchn_wall', 'Kitchen Wall', 'A contemporary backsplash for any kitchen', 1715, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1079, 'ktchn_countr_1', 'Kitchen Counter Small', 'Vibrant and shiny', 1716, 1, 1, 0.99, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1080, 'ktchn_sink', 'Industrial Sink', 'Always full of dirty dishes', 1717, 2, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1081, 'ktchn_desk', 'Kitchen Work Table', 'Sanitary for prepping those delicate deserts.', 1718, 2, 1, 0.99, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1082, 'ktchn_fridge', 'Kitchen Fridge', 'Keeps it all cold.', 1719, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '36,37,38,39,3', -1, '2,4', NULL), + (1083, 'ktchn_inspctr', 'Kitchen Inspector', 'This kitchen needs a serious inspection', 1720, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '34', -1, '2,4', NULL), + (1084, 'ktchn_hlthNut', 'The Health Nut', 'Run...run.....RUN! I\'m running!!!', 1721, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '3', -1, '2,4', NULL), + (1085, 'ktchn_stove', 'Industrial Stove', 'Keeps it simmering', 1722, 2, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1086, 'ktchn_bBlock', 'Butcher\'s Block', 'Sanitary for chopping any kind of food', 1723, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1087, 'ktchn_trash', 'Trash Can', 'Smelly if you don\'t empty it.', 1724, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1088, 'xm09_man_a', 'Snowman legs', 'What can you build?', 1661, 1, 1, 1, '5', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1089, 'xm09_man_b', 'Snowman middle', 'What can you build?', 1662, 1, 1, 1, '9', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1090, 'xm09_man_c', 'Snowman head', 'What can you build?', 1663, 1, 1, 0, '8', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1091, 'xm09_table', 'Holiday Table', 'Enough room for an entire family', 1664, 2, 6, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1092, 'xm09_bench', 'Holiday Bench', 'Will everyone fit?', 1665, 6, 1, 1.2, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1093, 'xm09_firwall', 'Xmas Tree Wall', 'Don\'t you just love snow...', 1666, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1094, 'xm09_forestwall', 'Snow Forest Wall', 'Covered in snow...', 1667, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1095, 'xm09_lodgewall', 'Lodge Wall', 'Keep the heat in and the cold out', 1668, 0, 0, 0, '8', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1096, 'xm09_bauble_1', 'Red Bauble', 'Perfect for a tree', 1669, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1097, 'xm09_bauble_2', 'Blue Bauble', 'Perfect for a tree', 1670, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1098, 'xm09_bauble_3', 'Green Bauble', 'Perfect for a tree', 1671, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1099, 'xm09_bauble_4', 'Yellow Bauble', 'Perfect for a tree', 1672, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1100, 'xm09_bauble_5', 'White Bauble', 'Perfect for a tree', 1673, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1101, 'xm09_bauble_6', 'Red Striped Bauble', 'Perfect for the tree', 1674, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1102, 'xm09_bauble_7', 'Blue Striped Bauble', 'Perfect for the tree', 1675, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1103, 'xm09_bauble_8', 'Green Striped Bauble', 'Perfect for the tree', 1676, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1104, 'xm09_bauble_9', 'Yellow Striped Bauble', 'Perfect for the tree', 1677, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1105, 'xm09_bauble_10', 'White Striped Bauble', 'Perfect for the tree', 1678, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1106, 'xm09_bauble_11', 'Tall Red Bauble', 'Perfect for the tree', 1679, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1107, 'xm09_bauble_12', 'Tall Blue Bauble', 'Perfect for the tree', 1680, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1108, 'xm09_bauble_13', 'Tall Green Bauble', 'Perfect for the tree', 1681, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1109, 'xm09_bauble_14', 'Tall Yellow Bauble', 'Perfect for the tree', 1682, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1110, 'xm09_bauble_15', 'Tall White Bauble', 'Perfect for the tree', 1683, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1111, 'xm09_bauble_16', 'Purple Green Bauble', 'Perfect for the tree', 1684, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1112, 'xm09_bauble_17', 'Tall Red Striped Bauble', 'Perfect for the tree', 1685, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1113, 'xm09_bauble_18', 'White Dot Bauble', 'Perfect for the tree', 1686, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1114, 'xm09_bauble_19', 'Tall Blue Striped Bauble', 'Perfect for the tree', 1687, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1115, 'xm09_bauble_20', 'Tall Yellow Striped Bauble', 'Perfect for the tree', 1688, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1116, 'xm09_bauble_21', 'Green White Bauble', 'Perfect for the tree', 1689, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1117, 'xm09_bauble_22', 'Red Heart Bauble', 'To hang on your tree', 1690, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1118, 'xm09_bauble_23', 'Blue Heart Bauble', 'To hang on your tree', 1691, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1119, 'xm09_bauble_24', 'Green Heart Bauble', 'To hang on your tree', 1692, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1120, 'xm09_bauble_25', 'Yellow Heart Bauble', 'To hang on your tree', 1693, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1121, 'xm09_bauble_26', 'White Heart Bauble', 'To hang on your tree', 1694, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1122, 'xm09_bauble_27', 'Pink Heart Bauble', 'To hang on your tree', 1695, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1123, 'xm09_candyCane', 'Candy Canes', 'Got Candy?', 1696, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1124, 'xm09_stocking', 'Holiday Stocking', 'Are they filled with coal?', 1697, 0, 0, 0, '7', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1125, 'xm09_infotv', 'Flatscreen TV', 'Catch the latest news of the pre-Holiday season!', 1698, 0, 0, 0, '2', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1126, 'xm09_cocoa', 'Hot Chocolate Maker', 'Cocoa and Christmas. Excellent!', 1699, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '8', -1, '2,4', NULL), + (1127, 'xm09_lrgBauble', 'Large Bauble', 'Isn\'t it pretty!', 1700, 1, 1, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1128, 'xm09_frplc', 'Christmas Fireplace', 'Warm and cozy!', 4312, 1, 1, 0, '9', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1129, 'urban_sidewalk', 'Sidewalk', 'Don\'t step on a crack.', 2978, 2, 2, 0.2, '4', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1130, 'urban_lamp', 'Street Lamp', 'Keeps a dark street brightly lit.', 2979, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1131, 'urban_bin', 'Urban Trash Can', 'Street trash.', 2980, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1132, 'urban_bench', 'Urban Bench', 'Watch out for gum before you sit.', 2981, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1133, 'urban_carsofa', 'Taxi Sofa', 'Seats comfortably for crazy cab drives.', 2982, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1134, 'urban_bsktbll', 'Urban Basketball Hoop', 'Slam dunk!', 2983, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1135, 'urban_fence', 'Urban Fence', 'Keeps trouble in our out.', 2984, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1136, 'urban_wpost', 'Fire Hydrant', 'Sometimes used for putting out fires.', 2986, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1137, 'urban_fence_corner', 'Urban Fence Corner', 'Keeps trouble in or out.', 2987, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1138, 'urban_blocker', 'Road Block', 'Don\'t go any further.', 2988, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1139, 'urban_bench_plain', 'Clean Bench', 'Nothing feels better than sitting on a clean bench.', 2989, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1140, 'urban_wall', 'Urban Wall', 'Great for graffiti art.', 2990, 2, 1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1141, 'grunge_barrel', 'Flaming Barrel', 'Beacon of light!', 264, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1142, 'grunge_bench', 'Bench', 'Laid back seating', 265, 3, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1143, 'grunge_candle', 'Candle Box', 'Late night debate', 266, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1144, 'grunge_chair', 'Grunge Chair', 'Alternative chair for alternative people', 267, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1145, 'grunge_mattress', 'Grunge Mattress', 'Beats sleeping on the floor!', 268, 3, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1146, 'grunge_radiator', 'Radiator', 'Started cool but now it\'s hot!', 269, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1147, 'grunge_shelf', 'Grunge Bookshelf', 'Scrap books and photo albums', 270, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1148, 'grunge_sign', 'Road Sign', 'Bought legitimately from an M1 cafe.', 271, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1149, 'grunge_table', 'Grunge Table', 'Students of the round table!', 272, 2, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1150, 'hc_crpt', 'Persian Carpet', 'Ultimate craftsmanship', 990, 3, 5, 0, '0', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1151, 'bolly_lotus_pool', 'Lotus Pool', 'Giant passionate flower', 1534, 2, 2, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1152, 'bolly_corner', 'Bollywood Corner', 'Tuck it away', 1535, 1, 1, 0.8, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1153, 'bolly_desk', 'Bollywood Desk', 'To build and divide', 1536, 2, 1, 0.8, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1154, 'bolly_drapea', 'Pink Curtain', 'Made with the finest materials', 1537, 3, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (1155, 'bolly_drapeb', 'Green Curtain', 'Made with the finest materials', 1538, 3, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (1156, 'bolly_drapec', 'Yellow Curtain', 'Made with the finest materials', 1539, 3, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (1157, 'bolly_pillow', 'Star Pillow', 'Don\'t forget to make a wish!', 1540, 1, 1, 0.8, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1158, 'bolly_fountain', 'Extravagant Fountain', 'Now that\'s refreshing!', 1541, 2, 2, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1159, 'bolly_lamp', 'Chandelier', 'Turn the lights down low', 1542, 1, 1, 0, '2', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1160, 'bolly_monkey_lamp', 'Monkey Lamp', 'Cast a cheeky glow', 1543, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1161, 'bolly_phant', 'Elephant MiniBar', 'For he\'s a \'bolly\' good fellow!', 1544, 1, 1, 0, '2', 'solid', 'vending_machine', 1, 1, '35', -1, '2,4', NULL), + (1162, 'bolly_petals', 'Petal Flurry', 'Lay down a bed of roses', 1545, 2, 2, 0, '3', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1163, 'bolly_palm', 'Palm Tree', 'Watch for falling coconuts!', 1546, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1164, 'bolly_swing', 'Swing', 'Swing low, my sweet.', 1547, 2, 1, 1.8, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1165, 'bolly_table', 'Large Ornamental Table', 'Decorative granite finish', 1548, 2, 2, 0.8, '0', 'can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1166, 'bolly_tile1', 'Ornamental Tile', 'The floor is your canvas', 1549, 2, 2, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1167, 'bolly_tile2', 'Standard Tile', 'The floor is your canvas', 1550, 2, 2, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1168, 'bolly_vase', 'Vase of Flowers', 'Let off a heavenly scent', 1551, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '1019', -1, '0,6', NULL), + (1169, 'bolly_wdw_wd', 'Bolly Window', 'Sets the scene', 1553, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '1', -1, '2,4', NULL), + (1170, 'svnr_de', 'German Gnome', 'October 2008, 4/6', 1333, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1171, 'svnr_uk', 'Big Ben', 'September 2008, 3/6', 1334, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1172, 'svnr_it', 'Venetian Gondola', 'July 2008, 1/6', 1335, 2, 1, 1.2, '0', 'can_sit_on_top,redirect_rotation_2', 'chair', 1, 1, '', -1, '2,4', NULL), + (1173, 'svnr_nl', 'Dutch Clog', 'August 2008, 2/6', 1336, 1, 2, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1174, 'svnr_aus', 'Aussie Outback', 'November 2008, 5/6', 1360, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1175, 'svnr_fi', 'Finnish Sauna', 'December 2008, 6/6', 1846, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1176, 'lostc_merdragon', 'Leviathan', '1/6 - January 2009', 1519, 1, 3, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1177, 'lostc_octopus', 'Kraken', '2/6 - February 2009', 10002, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '4,6', NULL), + (1178, 'totem_leg', 'Totem Leg', '1/3 of Totem', 10009, 1, 1, 1.3, '12', 'solid,can_stack_on_top', 'totem_leg', 1, 1, '', -1, '2,4', NULL), + (1179, 'totem_head', 'Totem Spirit Head', 'Which animal are you? 2/3 of Totem', 11171, 1, 1, 1.8, '15', 'solid,can_stack_on_top', 'totem_head', 1, 1, '', -1, '2,4', NULL), + (1180, 'totem_planet', 'Totem Planet', '3/3 of Totem', 11214, 1, 1, 0, '3', 'solid,redirect_rotation_0', 'totem_planet', 1, 1, '', -1, '0', NULL), + (1181, 'fortune', 'Crystal Ball', 'Gaze into the future', 1234, 1, 1, 0, '9', 'solid', 'fortune', 1, 1, '', -1, '0', NULL), + (1182, 'sound_set_65', 'Sound set 65', '', 1348, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1183, 'sound_set_66', 'Sound set 66', '', 1354, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1184, 'sound_set_67', 'Sound set 67', '', 1349, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1185, 'sound_set_68', 'Sound set 68', '', 1351, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1186, 'sound_set_69', 'Sound set 69', '', 1352, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1187, 'sound_set_70', 'Sound set 70', '', 1353, 1, 1, 0.2, '0', 'solid,can_stack_on_top,sound_machine_sample_set,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1188, 'party_lights', 'Party lights', 'Dance dance dance!', 1467, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1189, 'bolly_tree', 'Palm Tree', 'Bollywood meets Hollywood', 1552, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1190, 'song_disk', 'Traxdisc', 'Burn, baby burn', 1355, 1, 1, 0.1, '0', 'solid,song_disk,can_stack_on_top', 'default', 1, 0, '', -1, '0,2', NULL), + (1191, 'sf_roof', 'Starship Roof', 'But it doen\'t rain in space...', 11184, 2, 4, 0, '2', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1192, 'SF_crate_2', 'Large Crate', 'Weightless in Space', 11185, 2, 1, 0.99, '2', 'can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1193, 'SF_crate_1', 'Small Crate', 'Weightless in Space', 11186, 1, 1, 0.99, '2', 'can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1194, 'sf_stick', 'Light Pole', 'Attracts space critters.', 11187, 1, 1, 0, '5', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1195, 'SF_chair_blue', 'Medium Chair', 'Space captain\'s side kick.', 11188, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1196, 'sf_roller', 'SciFi Roller', 'Moving through space.', 11189, 1, 1, 0.45, '0', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1197, 'SF_alien', 'K-nick-4', 'Alien Collectible', 11190, 1, 1, 0, '102', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1198, 'SF_floor_2', 'Spaceship Floor Dark', 'Space walk', 11191, 2, 2, 0, '2', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1199, 'SF_panel3', 'Navigation Console', 'Steer clear of Black Holes', 11192, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1200, 'sf_floor', 'Transparent Floor', 'Don\'t fall through!', 11193, 2, 4, 0, '2', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1201, 'sf_tele', 'Space Teleporter', 'Turn into millions of atoms', 11194, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_2', 'teleport', 1, 1, '', -1, '2,4', NULL), + (1202, 'SF_reactor', 'Warp Reactor', 'Fusion reactor to heat plasma', 11195, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1203, 'SF_chair_green', 'Small Chair', 'Buckle up for a space ride.', 11196, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1204, 'SF_panel1', 'Command Console', 'Blinking Lights but what to do', 11198, 1, 1, 0, '102', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1205, 'SF_panel2', 'Engineering Console', 'All systems checked', 11199, 2, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1206, 'sf_pod', 'Cryogenic Bed', 'For those who like to sleep a long time.', 11200, 1, 3, 1.36, '2', 'can_lay_on_top,requires_rights_for_interaction', 'bed', 1, 1, '', -1, '0,2', NULL), + (1207, 'SF_table', 'Space Table', 'Supplied with gravity', 11201, 2, 2, 1.1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1208, 'sf_gate', 'Display-Gate', 'Can you see me now?', 11202, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1209, 'SF_floor_1', 'Spaceship Floor Light', 'Space walk', 11203, 2, 2, 0, '2', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1210, 'SF_chair_red', 'Captain\'s Chair', 'Master of Space', 11204, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1211, 'SF_lamp', 'Sci fi Lamp', 'Bright lights in a dark space', 11209, 1, 1, 0, '102', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1212, 'ads_idol_floor1', 'American Idol Floor Tile 1', 'Create a custom floor in your American Idol room', 1577, 2, 2, 0, '4', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1213, 'ads_idol_desk', 'American Idol Judge Desk', 'No audition room is complete with out one of these!', 1578, 1, 4, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1214, 'ads_idol_ch', 'American Idol Judge Chair', 'Sit comfortably in this American Idol Judge Chair', 1579, 1, 1, 1.2, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1215, 'ads_idol_floor2', 'American Idol Floor Tile 2', 'Make your American Idol room more unique with these tiles', 1580, 2, 2, 0, '4', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1216, 'ads_idol_piano', 'American Idol Piano', 'Write a beautiful ballad for the performance of your life!', 1581, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1217, 'ads_idol_wall', 'American Idol Poster', 'Set the stage with this poster. Feels like you\'re really there, right?', 1582, -1, -1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1218, 'ads_idol_tv', 'American Idol TV', 'TBD Click it away', 1583, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1219, 'ads_idol_mic', 'American Idol Microphone', 'Sing your heart out! Well, not literally...', 1584, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1220, 'ads_idol_drape', 'American Idol Curtain', 'Create the perfect American Idol set with these curtains', 1585, 3, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (1221, 'ads_idol_audChr', 'American Idol Audience Chair', 'Fancy seating for your audience!', 1586, 1, 1, 1, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1222, 'ads_idol_pchair', 'American Idol Piano Chair', 'Sit comfortably in this chair with your Idol piano', 1587, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1223, 'ads_idol_trax', 'American Idol Trax Machine', 'Everything sounds sweeter with this custom American Idol Trax Machine!', 1588, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,custom_data_numeric_on_off,sound_machine', 'default', 1, 1, '', -1, '2,4', NULL), + (1224, 'ads_idol_tele', 'American Idol Star Teleport', 'This could be the doorway to your dreams!', 1589, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,redirect_rotation_0,door_teleporter', 'teleport', 1, 1, '', -1, '0,2,4,6', NULL), + (1225, 'ads_idol_jukebox*1', 'American Idol Jukebox', 'I sound better already!', 1590, 1, 1, 0, '2', 'solid,jukebox', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1226, 'ads_idol_clRack', 'Clothes Rack', 'Finally! Somewhere to hang up your clothes', 1591, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1227, 'ads_idol_mirror', 'Makeup Mirror', 'Pass the lipstick please!', 1592, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1228, 'ads_idol_voting_ch', 'Voting Chair', 'Do you have a good ear for music?', 1593, 1, 1, 1.2, '3', 'can_sit_on_top,requires_rights_for_interaction', 'idol_vote_chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1229, 'ads_idol_hotspot', 'Hot Spot Scoreboard', 'Stand here and await the verdict!', 1600, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction,can_not_stack_on_top', 'idol_scoreboard', 1, 1, '', -1, '2,4', NULL), + (1230, 'ads_idol_cork', 'Cubicle Partition', 'Need privacy so you can write that story? Get this!', 10051, 3, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1231, 'ads_idol_ichair', 'Interview Chair', 'Next question please.', 10052, 1, 1, 1.3, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1232, 'ads_idol_logo', 'Idol Logo', 'Idol logo wall', 10053, -1, -1, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1233, 'ads_idol_newsDsk', 'News Reporter Desk', 'Report all the gossip in Habbo at this desk!', 10054, 2, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1234, 'ads_idol_tube', 'Tube Light', 'Set the mood with this beautv!', 10055, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1235, 'ads_idol_tblCloth', 'ads_idol_tblCloth name', 'ads_idol_tbleCloth desc', 11133, 2, 2, 1.2, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1236, 'ads_idol_lamp', 'ads_idol_lamp name', 'ads_idol_lamp desc', 11137, 1, 1, 0, '2', 'can_stand_on_top,can_stack_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1237, 'ads_idol_carpet', 'Idol Carpet', 'With glamour and style', 11149, 2, 7, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1238, 'ads_idol_l_carpet', 'Idol Carpet', 'With glamour and style', 9908, 2, 7, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1239, 'ads_idol_l_logo', 'Idol Logo', 'Idol logo wall', 9909, -1, -1, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1240, 'ads_idol_l_tv', 'American Idol Tv', 'TBD Click it away', 9910, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1241, 'ads_idol_trophy', 'American Idol Trophy', 'For the winner of American Idol', 11172, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1242, 'flag_algeria', 'The Algerian Flag', 'Wave it proudly!', 4270, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1243, 'flag_argentina', 'The Argentinian Flag', 'Wave it proudly!', 4261, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1244, 'flag_belgium', 'The Belgian Flag', 'Wave it proudly!', 4229, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1245, 'flag_chile', 'The Chilean Flag', 'Wave it proudly!', 4256, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1246, 'flag_columbia', 'The Colombian Flag', 'Wave it proudly!', 4258, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1247, 'flag_dominicanrepublic', 'The Dominican Republic Flag', 'Wave it proudly!', 4265, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1248, 'flag_ecuador', 'The Ecuadorian Flag', 'Wave it proudly!', 4268, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1249, 'flag_greece', 'The Greek Flag', 'Wave it proudly!', 4253, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1250, 'flag_malaysia', 'The Malaysian Flag', 'Wave it proudly!', 4252, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1251, 'flag_mexico', 'The Mexican Flag', 'Wave it proudly!', 4250, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1252, 'flag_morocco', 'The Moroccan Flag', 'Wave it proudly!', 4264, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1253, 'flag_newzealand', 'The New Zealand Flag', 'Wave it proudly!', 4260, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1254, 'flag_norway', 'Norwegian Flag', 'Land of the fjord', 11173, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1255, 'flag_panama', 'The Panama Flag', 'Wave it proudly!', 4262, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1256, 'flag_peru', 'The Peruvian Flag', 'Wave it proudly!', 4246, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1257, 'flag_philippines', 'The Philippines Flag', 'Wave it proudly!', 4251, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1258, 'flag_portugal', 'The Portuguese Flag', 'Wave it proudly!', 4231, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1259, 'flag_singapore', 'The Singapore Flag', 'Wave it proudly!', 4249, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1260, 'flag_tunisia', 'The Tunisian Flag', 'Wave it proudly!', 4248, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1261, 'flag_turkey', 'The Turkish Flag', 'Wave it proudly!', 4255, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1262, 'flag_venezl', 'The Venezuelan Flag', 'Wave it proudly!', 4254, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1263, 'marsrug', 'Mars Patch', 'Discover the red planet', 11180, 2, 2, 0, '5', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1264, 'sf_wall2', 'Starship Wall', 'Keeping space out since 1969', 11181, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1265, 'sf_wall3', 'Starship Corner', 'Streamlined for speed', 11182, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1266, 'sf_window', 'Starship Window', 'It\'ll put stars in your eyes', 11183, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1267, 'fx_explosion', 'The Kaboomer', 'Blow it up, baby!', 1521, 0, 0, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', 3600, '0', NULL), + (1268, 'fx_bubble', 'Bubbles', 'Forever blowing bubbles!', 1522, 0, 0, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', 3600, '0', NULL), + (1269, 'fx_flare', 'Firestarter', 'Light it up!', 1523, 0, 0, 0, '2', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 0, 0, '', 3600, '0', NULL), + (1270, 'planet_of_love', 'Planet of Love', 'All you need is world LOVE!', 11213, 1, 1, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1271, 'saturn', 'Planet of Eternity', 'How many rings are there??', 11154, 1, 1, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1272, 'pix_asteroid', 'The Asteroid', 'A smashing rock in space!', 11212, 1, 1, 0, '2', 'can_stand_on_top', 'default', 1, 1, '', -1, '0,6', NULL), + (1273, 'one_way_door*1', 'Aqua One Way Gate', 'One at a time!', 9800, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1274, 'one_way_door*2', 'Black HC Gate', 'One way! The HC way!', 9801, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1275, 'one_way_door*3', 'White HC Gate', 'One way! The HC way!', 9802, 1, 1, 0, '0', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1276, 'one_way_door*4', 'Beige One Way Gate', 'One at a time!', 9803, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1277, 'one_way_door*5', 'Pink One Way Gate', 'One at a time!', 9804, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1278, 'one_way_door*6', 'Blue HC Gate', 'One way! The HC way!', 9805, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1279, 'one_way_door*7', 'Green One Way Gate', 'One at a time!', 9806, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1280, 'one_way_door*8', 'Yellow One Way Gate', 'One at a time!', 9807, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1281, 'one_way_door*9', 'Red One Way Gate', 'One at a time!', 9808, 1, 1, 0, '2', 'one_way_gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1282, 'tiki_tray0', 'Empty Tray', 'That was tasty!', 1283, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1283, 'tiki_tray1', 'Tiki Fruit Tray', 'Refreshing!', 1284, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1284, 'tiki_tray2', 'Tiki Pineapple Plate', 'Fresh and juicy!', 1285, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1285, 'tiki_tray3', 'Tiki Fish Tray', 'Freshly caught and BBQ\'d!', 1286, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1286, 'tiki_tray4', 'Tiki Pig Tray', 'Slow roastet pig head', 1287, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1287, 'tiki_wallplnt', 'Jungle Wallplant', 'Dense jungle ahead!', 1291, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1288, 'tiki_bardesk', 'Tiki Bar Desk', 'Serving up Summer', 1292, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1289, 'tiki_bench', 'Tiki Bar Stool', 'Sit back and relax!', 1293, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1290, 'tiki_bflies', 'Butterflies', 'Get your island beauties', 1294, 1, 1, 0, '3', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1291, 'tiki_junglerug', 'Jungle Patch', 'Bring your machete', 1295, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1292, 'tiki_parasol', 'Tiki Parasol', 'Funky party lighting', 1296, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1293, 'tiki_sand', 'Island Sand Patch', 'Life\'s a beach!', 1297, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1294, 'tiki_statue', 'Tribal Statue', 'Burn baby burn.. tiki inferno', 1298, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1295, 'tiki_torch', 'Beach Torch', 'Lighting the way', 1299, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1296, 'tiki_toucan', 'Toucan', 'Ermm... *pecks*', 1300, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1297, 'tiki_waterfall', 'Tiki Waterfall', 'Fresh mountain water', 1301, 3, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1298, 'tiki_surfboard', 'Surfboard', 'Ride the waves dude!', 1302, 0, 0, 0, '9', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1299, 'tiki_corner', 'Tiki Bar Corner', 'Nothing says a bar like a corner?', 1303, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1300, 'ads_twi_paint', 'Painting', 'Stare deep into the painting...', 4272, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1301, 'ads_twi_dreamc', 'Dream Catcher', 'Will it catch them?', 4273, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1302, 'ads_twi_bwall1', 'Barn Wall', 'Keeps the cold out..', 4274, -1, -1, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1303, 'ads_twi_crest', 'Volturi Crest', 'A Royal Crest.', 4275, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1304, 'ads_twi_toolbx', 'Toolbox', 'Good spot for some tools...', 3296, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1305, 'ads_twi_table', 'Cake on Table with Presents', 'Whose name is on that present?', 3297, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1306, 'ads_twi_tower', 'Clock Tower', 'What time is it?', 3298, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1307, 'ads_twi_piano', 'Broken Piano', 'I wonder if it\'s still in tune.', 3299, 2, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1308, 'ads_twi_chair', 'Volturi Royal Chair', 'A chair fit for royalty', 3300, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1309, 'ads_twi_fountn', 'Fountain', 'Simply breathtaking...', 3301, 2, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1310, 'ads_twi_dvdr2', 'Clock Tower wall', 'Repel all attacks...', 3302, 2, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1311, 'ads_twi_dvdr1', 'Half wall', 'Where is the other half?', 3303, 2, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1312, 'ads_twi_bwall2', 'Truck and Motorcycles', 'Nice motorcycle', 4276, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1313, 'ads_twi_roses', 'Standing Rose Bouquet', 'You shouldn\'t have...', 3304, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1314, 'ads_twi_windw', 'Window with Candles', 'Watch the candle flicker', 4277, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1315, 'ads_twi_trophy', 'Twilight Trophy', 'Fitting for the biggest Twilight fan!', 3311, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1316, 'ads_twi_mist', 'Fog', 'Sure is foggy out here...', 3308, 1, 1, 0, '2', 'can_stand_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1317, 'theatre_seat', 'Deluxe Theatre Chair', 'For Lazy boys and girls!', 286, 1, 1, 1.2, '6', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1318, 'spotlight', 'Habbowood Spotlight', 'For the star of the show', 285, 1, 1, 0, '6', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1319, 'rope_divider', 'Rope Divider', 'Rope Divider', 284, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1320, 'tile_brown', 'Red Tile', '10% off downtown promenades & piazzas!', 78, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1321, 'tile_marble', 'Marble Tile', 'Slick sophistication; now 10% off!', 77, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1322, 'tile_stella', 'Star Tile', '10% off the walk of fame!', 289, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1323, 'habw_mirror', 'Habbowood Mirror', 'Star of the show!', 288, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1324, 'carpet_valentine', 'Red carpet', 'For making an appearance', 677, 2, 7, 0, '0', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1325, 'habbowood_chair', 'Director\'s Chair', 'Exclusively for Directors', 283, 1, 1, 1.2, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1326, 'gothic_chair*1', 'Gothic Chair Pink', 'The dark side of Habbo', 2084, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1327, 'gothic_sofa*1', 'Gothic Sofa Pink', 'The dark side of Habbo', 2085, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1328, 'gothic_stool*1', 'Gothic Stool Pink', 'The dark side of Habbo', 2086, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1329, 'gothic_chair*2', 'Gothic Chair Saffron', 'The dark side of Habbo', 2087, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1330, 'gothic_sofa*2', 'Gothic Sofa Saffron', 'The dark side of Habbo', 2088, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1331, 'gothic_stool*2', 'Gothic Stool Saffron', 'The dark side of Habbo', 2089, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1332, 'gothic_chair*4', 'Black Gothic Chair', 'The dark side of Habbo', 2093, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1333, 'gothic_sofa*4', 'Black Gothic Sofa', 'The dark side of Habbo', 2094, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1334, 'gothic_stool*4', 'Black Gothic Stool', 'The dark side of Habbo', 2095, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1335, 'gothic_chair*5', 'Gothic Chair Green', 'The dark side of Habbo', 2096, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1336, 'gothic_sofa*5', 'Gothic Sofa Green', 'The dark side of Habbo', 2097, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1337, 'gothic_stool*5', 'Gothic Stool Green', 'The dark side of Habbo', 2098, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1338, 'gothic_chair*6', 'Gothic Chair Blue', 'The dark side of Habbo', 2099, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1339, 'gothic_sofa*6', 'Gothic Sofa Blue', 'The dark side of Habbo', 2100, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1340, 'gothic_stool*6', 'Gothic Stool Blue', 'The dark side of Habbo', 2101, 1, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1341, 'sofachair_polyfon*2', 'Black Mode Armchair', 'Black Mode Armchair', 847, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1342, 'bed_polyfon*2', 'Black Mode Double Bed', 'Black Mode Double Bed', 844, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1343, 'bed_polyfon_one*2', 'Black Mode Single Bed', 'Black Mode Single Bed', 845, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1344, 'bardesk_polyfon*2', 'Black Mode Bardesk', 'Black Mode Bardesk', 849, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1345, 'bardeskcorner_polyfon*2', 'Black Mode Bardesk Corner', 'Black Mode Bardesk Corner', 850, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1346, 'sofachair_polyfon*3', 'White Armchair', 'Loft-style comfort', 854, 1, 1, 1, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1347, 'bed_polyfon*3', 'White Double Bed', 'Give yourself space to stretch out', 851, 2, 3, 1, '2', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2,4,6', NULL), + (1348, 'bed_polyfon_one*3', 'White Single Bed', 'Cot of the artistic', 852, 1, 3, 1.6, '2', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2,4,6', NULL), + (1349, 'bardesk_polyfon*3', 'White Bardesk', 'Perfect for work or play', 856, 2, 1, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1350, 'bardeskcorner_polyfon*3', 'White Corner Desk', 'Tuck it away', 857, 1, 1, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1351, 'sofachair_polyfon*4', 'Beige Mode Armchair', 'Beige Mode Armchair', 861, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1352, 'bed_polyfon*4', 'Beige Mode Double Bed', 'Beige Mode Double Bed', 858, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1353, 'bed_polyfon_one*4', 'Beige Mode Single Bed', 'Beige Mode Single Bed', 859, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1354, 'bardesk_polyfon*4', 'Beige Mode Bardesk', 'Beige Mode Bardesk', 863, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1355, 'bardeskcorner_polyfon*4', 'Beige Mode Bardesk Corner', 'Beige Mode Bardesk Corner', 864, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1356, 'sofachair_polyfon*6', 'Blue Mode Armchair', 'Blue Mode Armchair', 868, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1357, 'bed_polyfon*6', 'Blue Mode Double Bed', 'Blue Mode Double Bed', 865, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1358, 'bed_polyfon_one*6', 'Blue Mode Single Bed', 'Blue Mode Single Bed', 866, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1359, 'bardesk_polyfon*6', 'Blue Mode Bardesk', 'Blue Mode Bardesk', 870, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1360, 'bardeskcorner_polyfon*6', 'Blue Mode Bardesk Corner', 'Blue Mode Bardesk Corner', 871, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1361, 'sofachair_polyfon*7', 'Green Armchair', 'Loft-style comfort', 875, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1362, 'bed_polyfon*7', 'Green Double Bed', 'Give yourself space to stretch out', 872, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1363, 'bed_polyfon_one*7', 'Green Single Bed', 'Cot of the artistic', 873, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1364, 'bardesk_polyfon*7', 'Green Bardesk', 'Perfect for work or play', 877, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1365, 'bardeskcorner_polyfon*7', 'Green Corner Desk', 'Tuck it away', 878, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1366, 'sofachair_polyfon*8', 'Yellow Mode Armchair', 'Yellow Mode Armchair', 882, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1367, 'bed_polyfon*8', 'Yellow Mode Double Bed', 'Yellow Mode Double Bed', 879, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1368, 'bed_polyfon_one*8', 'Yellow Mode Single Bed', 'Yellow Mode Single Bed', 880, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1369, 'bardesk_polyfon*8', 'Yellow Mode Bardesk', 'Yellow Mode Bardesk', 884, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1370, 'bardeskcorner_polyfon*8', 'Yellow Mode Bardesk Corner', 'Yellow Mode Bardesk Corner', 885, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1371, 'sofachair_polyfon*9', 'Red Armchair', 'Loft-style comfort', 889, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1372, 'bed_polyfon*9', 'Red Double Bed', 'Give yourself space to stretch out', 886, 2, 3, 1, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1373, 'bed_polyfon_one*9', 'Red Single Bed', 'Cot of the artistic', 887, 1, 3, 1.6, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1374, 'bardesk_polyfon*9', 'Red Bardesk', 'Perfect for work or play', 891, 2, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1375, 'bardeskcorner_polyfon*9', 'Red Corner Desk', 'Tuck it away', 892, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1376, 'divider_poly3*2', 'Black Mode Bardesk Gate', 'Black Mode Bardesk Gate', 848, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1377, 'divider_poly3*3', 'White Hatch', 'Border control!', 855, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1378, 'divider_poly3*4', 'Beige Mode Bardesk Gate', 'Beige Mode Bardesk Gate', 862, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1379, 'divider_poly3*6', 'Blue Mode Bardesk Gate', 'Blue Mode Bardesk Gate', 869, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1380, 'divider_poly3*7', 'Green Hatch', 'Border control', 876, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1381, 'divider_poly3*8', 'Yellow Mode Bardesk Gate', 'Yellow Mode Bardesk Gate', 883, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1382, 'divider_poly3*9', 'Red Hatch', 'Border Control!', 890, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1383, 'prizetrophy*1', 'Classic trophy', 'Glittery gold', 600, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1384, 'post.it.vd', 'Heart Stickies', 'Spread your love!', 676, 1, 1, 0, '0', 'wall_item,post_it', 'default', 1, 1, '', -1, '', NULL), + (1385, 'heartsofa', 'Heart Sofa', 'Perfect for snuggling up on', 672, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1386, 'heart', 'Giant Heart', 'Full of love', 674, 2, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1387, 'statue', 'Cupid Statue', 'Watch out for those arrows!', 673, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1388, 'valeduck', 'Valentine\'s Duck', 'He\'s lovestruck', 675, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1389, 'val_cauldron', 'Valentine\'s cauldron', 'Cast a loving spell', 2103, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '25', -1, '0', NULL), + (1390, 'val_choco', 'Heart Shaped Chocs', 'One for them. Two for me!', 1235, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1391, 'val_teddy*1', 'Grey Share Bear', 'The grey bear of affection', 1240, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1392, 'val_teddy*2', 'Pink Share Bear', 'The pink bear of passion', 1241, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1393, 'val_teddy*3', 'Green Share Bear', 'The green bear of friendship', 1242, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1394, 'val_teddy*4', 'Brown Share Bear', 'The brown bear of naughtiness', 1243, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1395, 'val_teddy*5', 'Yellow Share Bear', 'The yellow bear of understanding', 1244, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1396, 'val_teddy*6', 'Blue Share Bear', 'The blue bear of happiness', 1245, 1, 1, 0.9, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1397, 'val_heart', 'Heart Light', 'Heartbroken... without your love!', 678, 1, 1, 0, '2', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1398, 'plant_valentinerose*1', 'Red Valentine\'s Rose', 'Secret admirer!', 679, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1399, 'plant_valentinerose*2', 'White Valentine\'s Rose', 'For the purest love', 680, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1400, 'plant_valentinerose*3', 'Yellow Valentine\'s Rose', 'Relight your passions', 681, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1401, 'plant_valentinerose*4', 'Pink Valentine\'s Rose', 'Be mine!', 682, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1402, 'plant_valentinerose*5', 'Purple Valentine\'s Rose', 'Requires purple rain to flourish', 683, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1403, 'pumpkin', 'Pumpkin Lamp', 'Cast a spooky glow', 656, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1404, 'habboween_grass', 'Unholy Ground', 'Autumnal chills with each rotation!', 669, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1405, 'deadduck', 'Dead Duck', 'Blood, but no guts', 662, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1406, 'deadduck2', 'Dead Duck 2', 'Someone forgot to feed me...', 663, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1407, 'deadduck3', 'Dead Duck 3', 'With added ectoplasm', 664, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1408, 'skullcandle', 'Skull Candle Holder', 'Alas poor Yorrick...', 659, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1409, 'habboween_crypt', 'Creepy Crypt', 'What lurks inside?', 668, 1, 3, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1410, 'hal_cauldron', 'Habboween Cauldron', 'Eye of Habbo and toe of Mod!', 670, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '3', -1, '0,6', NULL), + (1411, 'hal_grave', 'Haunted Grave', 'We\'re raising the dead!', 671, 1, 2, 0, '2', 'solid_single_tile,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1412, 'rela_candles1', 'White Candles', 'Calming Relaxation...', 3234, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1413, 'rela_candles2', 'Red Candles', 'Calming Relaxation...', 3245, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1414, 'rela_candles3', 'Violet Candles', 'Calming Relaxation...', 3236, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1415, 'rela_candle1', 'White Candle', 'Calming Relaxation...', 3238, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1416, 'rela_candle2', 'Red Candle', 'Calming Relaxation...', 3244, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1417, 'rela_candle3', 'Violet Candle', 'Calming Relaxation...', 3235, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1418, 'rela_hchair', 'Comfort Cradle', 'Calming Comfort...', 3247, 1, 1, 1.4, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1419, 'rela_orchid', 'Orchid', 'Calming Fragrance...', 3239, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1420, 'rela_plant', 'Relaxation Plant', 'Calming Greenery...', 3246, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1421, 'rela_stick', 'Stick in Jar', 'Calming Tranquility...', 3240, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1422, 'rela_stone', 'Relaxation Stones', 'Calming Stability...', 3233, 1, 1, 1, '3', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2', NULL), + (1423, 'rela_rock', 'Rock Seat', 'Calming Comfort...', 3248, 1, 1, 1, '3', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1424, 'rela_wall', 'Relaxation Wall', 'Calming Serenity...', 4232, 1, 1, 0, '6', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1425, 'jp_lantern', 'Japanese Lantern', 'For a mellow Eastern glow', 306, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1426, 'jp_pillow', 'Pillow Chair', 'Comfy and classical', 302, 1, 1, 0.8, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1427, 'jp_irori', 'Irori', 'Traditional heating and eating', 303, 2, 2, 0, '2', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1428, 'jp_ninjastars', 'Ninja Stars', 'Not a frisbee', 308, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1429, 'jp_tatami', 'Small Tatami Mat', 'Shoes off please', 304, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1430, 'jp_tatami2', 'Large Tatami Mat', 'Shoes off please', 305, 2, 4, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1431, 'jp_drawer', 'Japanese Drawer', 'Spiritual home for odds and ends', 307, 1, 1, 1, '2', 'solid,requires_rights_for_interaction,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1432, 'jp_bamboo', 'Bamboo Forest', 'Watch out for pandas!', 301, 2, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1433, 'jp_rare', 'Shishi Odishi', 'Traditional Japanese water ornament', 1272, 2, 2, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1434, 'jp_sheet1', 'Kakejiku Ziritsu', 'Japanese Kakejiku', 309, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1435, 'jp_sheet2', 'Kakejiku Ninjya', 'Japanese Kakejiku', 310, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1436, 'jp_sheet3', 'Kakejiku Hokusai', 'Japanese Kakejiku', 311, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1437, 'jp_tray1', 'Sushi Maguro', 'Sushi made with tuna', 312, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1438, 'jp_tray2', 'Sushi Ika', 'Sushi made with squid', 313, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1439, 'jp_tray3', 'Sushi Ikura', 'Sushi made with caviar', 314, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1440, 'jp_tray4', 'Sushi Uni', 'Sushi made with sea urchin', 315, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1441, 'jp_tray5', 'Sushi Tamago', 'Sushi made with egg', 316, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1442, 'jp_tray6', 'Sushi Kohada', 'Sushi made with mackerel', 317, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1443, 'jp_katana1', 'HC Katana Red', 'Essential chopping!', 1268, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1444, 'jp_katana2', 'Katana Blue', 'Let\'s get chopping!', 1269, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1445, 'jp_katana3', 'Katana Green', 'Hurry! Chop chop!', 1270, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1446, 'jp_table', 'Chabu Dai', 'Japanese coffee table', 1271, 2, 2, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1447, 'jp_teamaker', 'Japanese Teamaker', 'Makes a steaming brew!', 1282, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '28', -1, '2,4', NULL), + (1448, 'hween09_organ', 'Ghostly Organ', 'Play a ghastly tune on the bones...', 3282, 2, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1449, 'sf_mbar', 'Astro-Bar', 'Deep space refreshment.', 3273, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '44', -1, '0,2,4,6', NULL), + (1450, 'beanstalk', 'Gigantic Beanstalk', 'A majestic rare... but who\'s gonna fix my floor?!', 3401, 1, 1, 0, '6', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1451, 'djesko_turntable', 'Habbo Turntable', 'For the music-lovers', 11120, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1452, 'rare_globe', 'Snow Globe', 'It\'s all white..', 1119, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1453, 'rare_hammock', 'Hammock', 'Eco bed', 1122, 1, 3, 1.5, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1454, 'rare_ironmaiden', 'Rare Iron Maiden', 'So good it\'s torturous!', 3399, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '4,2', NULL), + (1455, 'rare_mmmth', 'Sofa Mammut', 'Pre Historic Sofa', 1304, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '4,2', NULL), + (1456, 'rare_stand', 'Speaker\'s Corner', 'Stand and Deliver!', 1144, 1, 1, 1.7, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1457, 'rare_vdoll', 'Rare Voodoo Doll', 'Choose your punishment!', 3403, 1, 1, 0, '10', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '4,2', NULL), + (1458, 'rare_xmas_screen', 'Lappland Greetings', 'Ho Ho Ho!', 1120, 2, 1, 0.7, '0', 'can_sit_on_top,no_head_turn', 'chair', 1, 1, '', -1, '2,4', NULL), + (1459, 'valentinescreen', 'Holiday Romance', 'Peep through and smile!', 1121, 2, 1, 1.1, '0', 'can_sit_on_top,no_head_turn', 'chair', 1, 1, '', -1, '2,4', NULL), + (1460, 'hween09_chair', 'Haunted Chair', 'Was something just sitting in this??', 3295, 1, 1, 1.3, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1461, 'hween09_chandelier', 'Haunted Chandelier', 'Flickering in the night...', 3294, 1, 1, 0, '3', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1462, 'hween09_crnr1', 'Creaky Corner', 'Perfect corner for a haunted house...', 4247, 1, 1, 0, '4', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1463, 'hween09_curt', 'Floating Curtain', 'Is someone hiding behind??', 4266, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1464, 'hween09_floor', 'Creaky Floor', 'Watch your step!', 3288, 2, 2, 0, '4', 'can_stand_on_top,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1465, 'hween09_ghost', 'Ghost-in-the-Box', 'Ohh haunting...', 3290, 1, 1, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1466, 'hween09_hatch', 'Creepy Trap Door', 'I wonder where this goes?', 3285, 2, 2, 0, '2', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1467, 'hween09_jar', 'Strange Jar', 'Would you like a Duck or a Head?', 3287, 1, 1, 0, '2', 'solid,solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1468, 'hween09_mirror', 'Ghostly Mirror', 'Is that a Habbo in there?', 3293, 1, 1, 1.2, '2', 'can_sit_on_top,requires_rights_for_interaction,no_head_turn', 'chair', 1, 1, '', -1, '2,4', NULL), + (1469, 'hween09_paint', 'Haunted Painting', 'Is that cat watching me?', 4263, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1470, 'hween09_stonewall', 'Old Stone Wall', 'Looks strong enough.', 4259, 1, 1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1471, 'hween09_table', 'Creepy Table', 'Hope there is not a head on the platter...', 3286, 1, 3, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1472, 'hween09_treewall', 'Haunted Forest', 'Don\'t enter alone...', 4269, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1473, 'hween09_tv', 'Haunted TV', 'Whats on Haunted TV tonight?', 3292, 2, 1, 0, '3', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1474, 'hween09_wall1', 'Creaky Wall', 'I wonder if there is a hidden passage here?', 4257, 1, 1, 0, '4', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1475, 'hween09_win', 'Haunted Window', 'What is really outside?', 4271, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1476, 'igor_seat', 'Hump Massaging Chair', 'My Hump, My Hump, My Hump', 1418, 1, 1, 1.2, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1477, 'ads_igorbrain', 'The Brain', 'Mwahhahahahaha brains...', 1419, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1478, 'ads_igorraygun', 'Igor Ray Gun', 'Shoot down your foes!', 1420, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1479, 'ads_igorswitch', 'Igor Switch', 'Nothing will work without this being on!', 1421, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1480, 'ads_igor_flask', 'Glass Flask', 'Down the hatch!', 1524, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1481, 'ads_igor_dsk', 'Inventor\'s Desk', 'Draw your evil plans', 1525, 2, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1482, 'ads_igorevilb', 'Evil Bone', 'It\'s not a funny bone', 1526, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1483, 'ads_igor_wall', 'Monster Plan Poster', 'The latest model!', 1527, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1484, 'sw_table', 'Adventure Desk', 'Where will you go today?', 1262, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1485, 'sw_swords', 'Swords', 'The other kind of fencing...', 1263, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1486, 'sw_stone', 'Mysterious Necklace', 'Why does the stone glow at night?', 1264, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1487, 'sw_raven', 'Raven', 'Lurking... with intent', 1265, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1488, 'sw_hole', 'Ventilation Duct', 'Full of creepy crawlies', 1266, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1489, 'sw_chest', 'Ye Olde Chest', 'One size fits all', 1267, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1490, 'silo_studydesk', 'Area Quest Desk', 'For the true Habbo Scholars', 79, 2, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1491, 'summer_chair*1', 'Aqua Deck Chair', 'Got your swimming trunks?', 1249, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1492, 'summer_chair*2', 'Pink Deck Chair', 'Waterproof!', 1250, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1493, 'summer_chair*3', 'Black Deck Chair', 'Rest from castle building!', 1251, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1494, 'summer_chair*4', 'White Deck Chair', 'Sit back and enjoy!', 1252, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1495, 'summer_chair*5', 'Deck Chair', 'Beige', 1253, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1496, 'summer_chair*6', 'Deck Chair', 'Blue', 1254, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1497, 'summer_chair*7', 'Green Deck Chair', 'Reserved!', 1255, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1498, 'summer_chair*8', 'Yellow Deck Chair', 'Got your sun cream?', 1256, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1499, 'summer_chair*9', 'Red Deck Chair', 'Got your sunglasses?', 1257, 1, 1, 0.99, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1500, 'summer_grill*1', 'Blue Barbeque Grill', 'Plenty of ribs on that barbie', 1258, 2, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1501, 'summer_grill*2', 'Red Barbeque Grill', 'Plenty of shrimp on that barbie', 1259, 2, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1502, 'summer_grill*3', 'Green Barbeque Grill', 'Plenty of steak on that barbie', 1260, 2, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1503, 'summer_grill*4', 'Green Barbeque Grill', 'Plenty of burgers on that barbie', 1261, 2, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1504, 'summer_pool*1', 'Blue Summer Pool', 'Fancy a dip?', 1110, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1505, 'summer_pool*2', 'Red Summer Pool', 'Fancy a dip?', 1111, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1506, 'summer_pool*3', 'Green Summer Pool', 'Fancy a dip?', 1112, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1507, 'summer_pool*4', 'Yellow Summer Pool', 'Fancy a dip?', 1113, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1508, 'sand_cstl_gate', 'Sand Castle Gate', 'Keep the sand out!', 1246, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1509, 'sand_cstl_twr', 'Sand Castle Tower', 'Look out for sand storms!', 1247, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1510, 'sand_cstl_wall', 'Sand Castle Wall', 'Not entirely water proof!', 1248, 2, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1511, 'bw_croc', 'Inflatable Croc', 'Never smile at a Crocodile.', 1305, 1, 3, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1512, 'summer_icebox', 'Ice Box', 'Chilled surprises', 3231, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '43', -1, '2,4', NULL), + (1513, 'summer_raft1', 'Pink Raft', 'Float down a lazy river.', 3228, 1, 1, 1, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1514, 'summer_raft2', 'Blue Raft', 'Float down a lazy river.', 3227, 1, 1, 1, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1515, 'dimmer_buttn', 'Small Mood Switch', 'Set the right MOOD!!!', 11206, 1, 1, 0, '2', 'wall_item,roomdimmer,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1516, 'dimmer_fuse2', 'Small Mood Controller', 'Set the right MOOD!!!', 11207, 1, 1, 0, '2', 'wall_item,roomdimmer,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1517, 'dimmer_fuse6', 'Large Mood Controller', 'Set the right MOOD!', 11208, 1, 1, 0, '2', 'wall_item,roomdimmer,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1518, 'dimmer_swtch', 'Large Mood Switch', 'Set the right MOOD!', 11205, 1, 1, 0, '2', 'wall_item,roomdimmer,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1519, 'ads_1800tele', 'ads_1800tele', '', 3251, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '2,4', NULL), + (1520, 'ads_campguitar', 'Red V Guitar', 'Awarded to some Camp Rock entrants', 11114, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1521, 'ads_chups', 'ads_chups name', 'ads_chups desc', 3367, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1522, 'ads_cmusic', 'TBD Central Musical TV', 'TBD Click it away', 1466, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1523, 'ads_dave_cns', 'Dave cns', 'ads Dave cns', 1365, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1524, 'ads_dave_wall', 'Dave Wall', 'ads dave wall', 1366, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1525, 'ads_droetker_paula', 'ads_droetker_paula name', 'ads_droetker_paula desc', 3365, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1526, 'ads_goldtabl', 'The Golden Tablet', 'What every Museum resident craves', 3151, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1527, 'ads_grefusa_cactus', 'Grefusa Cactus', 'Grefusa Cactus promotion', 10001, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1528, 'ads_gsArcade_1', 'Arcade Machine', 'Game over', 2985, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1529, 'ads_gsArcade_2', 'Arcade Cabinet', 'Must...get....high....score!', 3278, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1530, 'ads_lin_wh_c', 'ads_lin_wh_c name', 'ads_lin_wh_c text', 11079, -1, -1, 0, '33', 'wall_item,wheel_of_fortune,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1531, 'ads_mirror', 'Dress Up Mirror', 'Look the part!', 4122, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1532, 'ads_nokia_logo', 'Nokia Phone', 'Connecting People', 1388, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1533, 'ads_nokia_phone', 'ads_nokia_phone name', 'ads_nokia_phone desc', 1389, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1534, 'ads_oc_soda', 'Orange Soda Machine', 'Who loves Orange Soda?!', 3230, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1535, 'ads_oc_soda_cmp', 'Orange Soda Machine', 'Who loves Orange Soda?!', 432233, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1536, 'ads_percyw', 'ads_percyw name', 'ads_percyw desc', 4322, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1537, 'ads_puffet_tv', 'ads_puffet_tv name', 'ads_puffet_tv text', 11081, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1538, 'ads_reebok_block2', 'ads_reebok_block2', '', 3132, 2, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1539, 'ads_reebok_block2cmp', 'ads_reebok_block2cmp', '', 313222, 2, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1540, 'ads_reebok_tv', 'ads_reebok_tv name', 'ads_reebok_tv text', 11082, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1541, 'ads_spang_sleep', 'ads_spang_sleep', 'ads_spang_sleep text', 3280, 1, 3, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1542, 'ads_sunnyd', 'Sunny Delight', 'Sunny Delight', 1346, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1543, 'ads_veet', 'ads_veet name', 'ads_veet desc', 4222, -1, -1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1544, 'ads_wwe_poster', 'WWE', 'Bigger, Badder, Better', 4226, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1545, 'det_bhole', 'Bullet Hole', 'That was close!', 1402, 1, 1, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1546, 'det_body', 'Chalk Outline', 'They were a great Habbo...', 1400, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1547, 'det_divider', 'Police Divider', 'Crime scene, stay out!', 1401, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1548, 'easy_bowl2', 'Easy bowl2', 'old campaign product desc', 1385, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1549, 'easy_carpet', 'Easy carpet', 'Easy carpet', 1386, 1, 1, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1550, 'easy_poster', 'Easy poster', 'Easy mac promotion', 1387, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1551, 'md_can', 'Bubble Juice Can', 'Enough bubbling juice for one evening', 1276, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1552, 'md_logo_wall', 'Bubble Juice Logo', 'Bubble up your wall', 1277, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1553, 'md_rug', 'Bubble Juice Floor', 'Bubbles under your steps', 1278, 1, 1, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1554, 'netari_carpet', 'Netari carpet', 'Netari branded skull', 11116, 1, 1, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1555, 'netari_poster', 'Netari poster', 'Netari promotion', 11117, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1556, 'nouvelle_trax', 'Nouvelle Trax', '', 1275, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1557, 'safe_silo_pb', 'postbank Safe', 'Totally shatter-proof!', 1222, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1558, 'tampax_rug', 'Tampax rug', 'Tampax rug', 1290, 1, 1, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1559, 'tampax_wall', 'Tampax wall', 'Tampax wall', 1289, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1560, 'window_hole', 'Window', 'Window', 1390, 1, 1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1561, 'ads_lin_wh_c2', 'ads_lin_wh_c2 name', 'ads_lin_wh_c2 text', 11279, -1, -1, 0, '33', 'wall_item,wheel_of_fortune,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1562, 'footylamp_campaign_ing', 'ING Trophy', 'We are the champions', 45598, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1563, 'byesw_loadscreen', 'Loading screen memorial', 'The old Habbo loading screen.', 4267, 0, 0, 0, '3', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1564, 'byesw_hotel', 'Hotel view memorial', '3 different miniature Hotels.', 3289, 1, 1, 0, '6', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1565, 'byesw_hand', 'Big Hand seat memorial', 'We\'ll miss you Big Hand!', 3291, 1, 1, 1.3, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1566, 'queue_tile1', 'White Quest Roller', 'The power of movement', 465, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1567, 'queue_tile1*1', 'Pink Habbo Roller', 'The power of movement', 466, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1568, 'queue_tile1*3', 'Aqua Habbo Roller', 'The power of movement', 468, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1569, 'queue_tile1*4', 'Gold Habbo Roller', 'The power of movement', 469, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1570, 'queue_tile1*5', 'Black Habbo Roller', 'The power of movement', 470, 1, 1, 0.45, '3', 'can_stand_on_top,can_stack_on_top,roller', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1571, 'guitar_v', 'V Guitar', '', 565, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1572, 'guitar_skull', 'Skull Guitar', '', 566, 1, 1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1573, 'diner_shaker', 'Diner Shaker', 'So cool it\'s shaking!', 1329, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1574, 'diner_rug', 'Diner Floor', 'Shiny polished finish', 1332, 2, 2, 0, '0', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1575, 'diner_tray_0', 'Empty Plate', 'Had your fill, or running on empty?', 1337, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1576, 'diner_tray_1', 'Burger and Chips', '99% British beef!', 1338, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1577, 'diner_tray_2', 'Steak and Mash', 'Juicy sirloin with onion gravy', 1339, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1578, 'diner_tray_3', 'Spaghetti Meatballs', 'Juicy tomato sauce included!', 1340, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1579, 'diner_tray_4', 'Pancakes', 'Smothered in syrup and butter!', 1341, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1580, 'diner_tray_5', 'Bacon and Eggs', 'Smoky bacon and free range eggs!', 1342, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1581, 'diner_tray_6', 'Ice Cream Sundae', 'Vanilla, chocolate and strawberry!', 1343, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1582, 'diner_tray_7', 'Accompaniments', 'Tommy and Mustard', 1344, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1583, 'window_diner', 'Large Diner Window', 'Panoramic view of America', 1358, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1584, 'window_diner2', 'Small Diner Window', 'Good grub, good view!', 1359, 0, 0, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1585, 'diner_walltable', 'Diner Side Table', 'Attaches to the wall', 1367, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1586, 'diner_bardesk_gate*1', 'Aquamarine Gate', 'Smothered in syrup and butter!', 2842, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1587, 'diner_bardesk_gate*2', 'Pink Gate', 'Smothered in syrup and butter!', 2843, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1588, 'diner_bardesk_gate*3', 'Black Gate', 'Smothered in syrup and butter!', 2844, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1589, 'diner_bardesk_gate*4', 'White Gate', 'Smothered in syrup and butter!', 2845, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1590, 'diner_bardesk_gate*5', 'Beige Gate', 'Smothered in syrup and butter!', 2846, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1591, 'diner_bardesk_gate*6', 'Blue Gate', 'Smothered in syrup and butter!', 2847, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1592, 'diner_bardesk_gate*7', 'Green Gate', 'Smothered in syrup and butter!', 2848, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1593, 'diner_bardesk_gate*8', 'Yellow Gate', 'Smothered in syrup and butter!', 2849, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1594, 'diner_bardesk_gate*9', 'Red Gate', 'Smothered in syrup and butter!', 2850, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1595, 'diner_bardesk_gate*10', 'Mint Gate', 'Smothered in syrup and butter!', 5109, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,2', NULL), + (1596, 'diner_bardesk*1', 'Aquamarine Bar', 'Pull up a stool.', 2851, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1597, 'diner_bardesk*2', 'Pink Bar', 'Pull up a stool.', 2852, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1598, 'diner_bardesk*3', 'Black Bar', 'Pull up a stool.', 2853, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1599, 'diner_bardesk*4', 'White Bar', 'Pull up a stool.', 2854, 1, 1, 0.98, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1600, 'diner_bardesk*5', 'Beige Bar', 'Pull up a stool.', 2855, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1601, 'diner_bardesk*6', 'Blue Bar', 'Pull up a stool.', 2856, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1602, 'diner_bardesk*7', 'Green Bar', 'Pull up a stool.', 2857, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1603, 'diner_bardesk*8', 'Yellow Bar', 'Pull up a stool.', 2858, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1604, 'diner_bardesk*9', 'Red Bar', 'Pull up a stool.', 2859, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1605, 'diner_bardesk*10', 'Mint Bar', 'Pull up a stool.', 5111, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1606, 'diner_bardesk_corner*1', 'Aquamarine Corner', 'Now that\'s smooth.', 2870, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1607, 'diner_bardesk_corner*2', 'Pink Corner', 'Now that\'s smooth.', 2871, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1608, 'diner_bardesk_corner*3', 'Black Corner', 'Now that\'s smooth.', 2872, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1609, 'diner_bardesk_corner*4', 'White Corner', 'Now that\'s smooth.', 2873, 1, 1, 0.98, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1610, 'diner_bardesk_corner*5', 'Beige Corner', 'Now that\'s smooth.', 2874, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1611, 'diner_bardesk_corner*6', 'Blue Corner', 'Now that\'s smooth.', 2875, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1612, 'diner_bardesk_corner*7', 'Green Corner', 'Now that\'s smooth.', 2876, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1613, 'diner_bardesk_corner*8', 'Yellow Corner', 'Now that\'s smooth.', 2877, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1614, 'diner_bardesk_corner*9', 'Red Corner', 'Now that\'s smooth.', 2878, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1615, 'diner_bardesk_corner*10', 'Mint Corner', 'Now that\'s smooth.', 5108, 1, 1, 0.98, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1616, 'diner_cashreg*1', 'Aquamarine Register', 'Roll up roll up!', 2816, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1617, 'diner_cashreg*2', 'Pink Register', 'Roll up roll up!', 2817, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1618, 'diner_cashreg*3', 'Black Register', 'Roll up roll up!', 2818, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1619, 'diner_cashreg*4', 'White Register', 'Roll up roll up!', 2819, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1620, 'diner_cashreg*5', 'Beige Register', 'Roll up roll up!', 2820, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1621, 'diner_cashreg*6', 'Blue Register', 'Roll up roll up!', 2821, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1622, 'diner_cashreg*7', 'Green Register', 'Roll up roll up!', 2822, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1623, 'diner_cashreg*8', 'Yellow Register', 'Roll up roll up!', 2823, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1624, 'diner_cashreg*9', 'Red Register', 'Roll up roll up!', 2824, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1625, 'diner_cashreg*10', 'Mint Register', 'Roll up roll up!', 5117, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1626, 'diner_chair*1', 'Aquamarine Stool', 'Perch in comfort.', 2861, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1627, 'diner_chair*2', 'Pink Stool', 'Perch in comfort.', 2862, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1628, 'diner_chair*3', 'Black Stool', 'Perch in comfort.', 2863, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1629, 'diner_chair*4', 'White Stool', 'Perch in comfort.', 2864, 1, 1, 1.5, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1630, 'diner_chair*5', 'Beige Stool', 'Perch in comfort.', 2865, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1631, 'diner_chair*6', 'Blue Stool', 'Perch in comfort.', 2866, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1632, 'diner_chair*7', 'Green Stool', 'Perch in comfort.', 2867, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1633, 'diner_chair*8', 'Yellow Stool', 'Perch in comfort.', 2868, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1634, 'diner_chair*9', 'Red Stool', 'Perch in comfort.', 2869, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1635, 'diner_chair*10', 'Mint Stool', 'Perch in comfort.', 5116, 1, 1, 1.5, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1636, 'diner_gumvendor*1', 'Aquamarine Gum Machine', 'A chewy mouthful.', 2827, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1637, 'diner_gumvendor*2', 'Pink Gum Machine', 'A chewy mouthful.', 2828, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1638, 'diner_gumvendor*3', 'Black Gum Machine', 'A chewy mouthful.', 2829, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1639, 'diner_gumvendor*4', 'White Gum Machine', 'A chewy mouthful.', 2830, 1, 1, 0, '2', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2,4,6', NULL), + (1640, 'diner_gumvendor*5', 'Beige Gum Machine', 'A chewy mouthful.', 2831, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1641, 'diner_gumvendor*6', 'Blue Gum Machine', 'A chewy mouthful.', 2832, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1642, 'diner_gumvendor*7', 'Green Gum Machine', 'A chewy mouthful.', 2833, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1643, 'diner_gumvendor*8', 'Yellow Gum Machine', 'A chewy mouthful.', 2834, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1644, 'diner_gumvendor*9', 'Red Gum Machine', 'A chewy mouthful.', 2835, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1645, 'diner_gumvendor*10', 'Mint Gum Machine', 'A chewy mouthful.', 5113, 1, 1, 0, '0', 'solid', 'vending_machine', 1, 1, '67,68,69', -1, '0,2', NULL), + (1646, 'diner_sofa_1*1', 'Aquamarine Sofa 1', 'Soft leather in 50s design.', 2888, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1647, 'diner_sofa_1*2', 'Pink Sofa 1', 'Soft leather in 50s design.', 2889, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1648, 'diner_sofa_1*3', 'Black Sofa 1', 'Soft leather in 50s design.', 2890, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1649, 'diner_sofa_1*4', 'White Sofa 1', 'Soft leather in 50s design.', 2891, 1, 1, 1, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1650, 'diner_sofa_1*5', 'Beige Sofa 1', 'Soft leather in 50s design.', 2892, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1651, 'diner_sofa_1*6', 'Blue Sofa 1', 'Soft leather in 50s design.', 2893, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1652, 'diner_sofa_1*7', 'Green Sofa 1', 'Soft leather in 50s design.', 2894, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1653, 'diner_sofa_1*8', 'Yellow Sofa 1', 'Soft leather in 50s design.', 2895, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1654, 'diner_sofa_1*9', 'Red Sofa 1', 'Soft leather in 50s design.', 2896, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1655, 'diner_sofa_1*10', 'Mint Sofa 1', 'Soft leather in 50s design.', 5110, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1656, 'diner_sofa_2*1', 'Aquamarine Sofa 2', 'Soft leather in 50s design.', 2804, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1657, 'diner_sofa_2*2', 'Pink Sofa 2', 'Soft leather in 50s design.', 2805, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1658, 'diner_sofa_2*3', 'Black Sofa 2', 'Soft leather in 50s design.', 2806, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1659, 'diner_sofa_2*4', 'White Sofa 2', 'Soft leather in 50s design.', 2807, 1, 1, 1, '2', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1660, 'diner_sofa_2*5', 'Beige Sofa 2', 'Soft leather in 50s design.', 2808, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1661, 'diner_sofa_2*6', 'Blue Sofa 2', 'Soft leather in 50s design.', 2809, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1662, 'diner_sofa_2*7', 'Green Sofa 2', 'Soft leather in 50s design.', 2810, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1663, 'diner_sofa_2*8', 'Yellow Sofa 2', 'Soft leather in 50s design.', 2811, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1664, 'diner_sofa_2*9', 'Red Sofa 2', 'Soft leather in 50s design.', 2812, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1665, 'diner_sofa_2*10', 'Mint Sofa 2', 'Soft leather in 50s design.', 5114, 1, 1, 1, '0', 'can_sit_on_top,requires_rights_for_interaction', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1666, 'diner_table_1*1', 'Aquamarine Booth Table', 'Ready to order?', 2897, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1667, 'diner_table_1*2', 'Pink Booth Table', 'Ready to order?', 2898, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1668, 'diner_table_1*3', 'Black Booth Table', 'Ready to order?', 2899, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1669, 'diner_table_1*4', 'White Booth Table', 'Ready to order?', 2900, 2, 2, 1.7, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1670, 'diner_table_1*5', 'Beige Booth Table', 'Ready to order?', 2901, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1671, 'diner_table_1*6', 'Blue Booth Table', 'Ready to order?', 2902, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1672, 'diner_table_1*7', 'Green Booth Table', 'Ready to order?', 2903, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1673, 'diner_table_1*8', 'Yellow Booth Table', 'Ready to order?', 2904, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1674, 'diner_table_1*9', 'Red Booth Table', 'Ready to order?', 2905, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1675, 'diner_table_1*10', 'Mint Booth Table', 'Ready to order?', 5112, 2, 2, 1.7, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1676, 'diner_table_2*1', 'Aquamarine Table', 'Enjoy your meal.', 2879, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1677, 'diner_table_2*2', 'Pink Table', 'Enjoy your meal.', 2880, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1678, 'diner_table_2*3', 'Black Table', 'Enjoy your meal.', 2881, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1679, 'diner_table_2*4', 'White Table', 'Enjoy your meal.', 2882, 3, 2, 1.5, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1680, 'diner_table_2*5', 'Beige Table', 'Enjoy your meal.', 2883, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1681, 'diner_table_2*6', 'Blue Table', 'Enjoy your meal.', 2884, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1682, 'diner_table_2*7', 'Green Table', 'Enjoy your meal.', 2885, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1683, 'diner_table_2*8', 'Yellow Table', 'Enjoy your meal.', 2886, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1684, 'diner_table_2*9', 'Red Table', 'Enjoy your meal.', 2887, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1685, 'diner_table_2*10', 'Mint Table', 'Enjoy your meal.', 5115, 3, 2, 1.5, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1686, 'diner_poster', 'Diner Poster', 'Have a diner!', 11155, 0, 0, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1687, 'sleepingbag*1', 'Red Sleeping Bag', 'Ultimate coziness', 1150, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1688, 'sleepingbag*2', 'Lime Sleeping Bag', 'Ultimate coziness', 9900, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1689, 'sleepingbag*3', 'Ocean Sleeping Bag', 'Ultimate coziness', 9901, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1690, 'sleepingbag*4', 'Safety Sleeping Bag', 'Ultimate coziness in SafeSid\'s sleeping bag!', 9902, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1691, 'sleepingbag*5', 'Graphite Sleeping Bag', 'Ultimate coziness', 9903, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1692, 'sleepingbag*6', 'Purple Sleeping Bag', 'Ultimate coziness', 9905, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1693, 'sleepingbag*7', 'Orange Sleeping Bag', 'Ultimate coziness', 9990, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1694, 'sleepingbag*8', 'Golden Sleeping Bag', 'Ultimate coziness for SnowStorm winners', 9906, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1695, 'sleepingbag*9', 'eXceptional Sleeping Bag', 'For eXceptional comfort!', 9907, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1696, 'pillar*1', 'Pink Marble Pillar', 'Ancient and stately', 1081, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1697, 'pillar*2', 'Nordic Pillar', 'Ancient and stately', 1082, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1698, 'pillar*3', 'blue pillar', 'Ancient and stately', 1083, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1699, 'pillar*4', 'Dark Ages Pillar', 'From the time of the Kick Warz', 1084, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1700, 'pillar*5', 'Pagan Pillar', 'Find your natural roots', 1085, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1701, 'pillar*6', 'Terracotta Pillar', 'Ancient and stately', 1086, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1702, 'pillar*7', 'Atlantean Pillar', 'Recovered from Habblantis', 1087, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1703, 'pillar*8', 'Roman Pillar', 'All roads lead to Rome', 1088, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1704, 'pillar*9', 'Rock Pillar', 'Ancient and stately', 1089, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1705, 'penguin_ballet', 'Ballerina Penguin', 'Aptenodytes Vaganova', 1820, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1706, 'penguin_basic', 'Emperor Penguin', 'Aptenodytes Forsteri', 1821, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1707, 'penguin_boxer', 'Boxer Penguin', 'Aptenodytes Ali', 1822, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1708, 'penguin_bunny', 'Bunny Penguin', 'Aptenodytes Euripides', 1823, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1709, 'penguin_clown', 'Clown Penguin', 'Aptenodytes Pennywise', 1824, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1710, 'penguin_elf', 'Christmas Penguin', 'Aptenodytes Jolly', 1826, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1711, 'penguin_glow', 'Fluorescent Penguin', 'Aptenodytes Gamma', 1827, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1712, 'penguin_hunchback', 'Beautiful Penguin', 'Aptenodytes Narcissus', 1828, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1713, 'penguin_icehockey', 'Hockey Penguin', 'Aptenodytes Gretzsky', 1829, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1714, 'penguin_infected', 'Infected Penguin', 'Aptenodytes Bacterium', 1830, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1715, 'penguin_magician', 'Magic Penguin', 'Aptenodytes Houdini', 1831, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1716, 'penguin_musketeer', 'Musketeer Penguin', 'Aptenodytes Aramis', 1832, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1717, 'penguin_ninja', 'Ninja Penguin', 'Aptenodytes Hamburger', 1833, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1718, 'penguin_pilot', 'Pilot Penguin', 'Aptenodytes Biggles', 1834, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1719, 'penguin_pirate', 'Pirate Penguin', 'Aptenodytes Silver', 1835, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1720, 'penguin_punk', 'Punk Penguin', 'Aptenodytes Rotter', 1836, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1721, 'penguin_robot', 'Robot Penguin', 'Aptenodytes Asimov', 1837, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1722, 'penguin_rock', 'Disco Penguin', 'Aptenodytes Foxy', 1838, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1723, 'penguin_skater', 'Skater Penguin', 'Aptenodytes Arto', 1839, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1724, 'penguin_ski', 'XC Penguin', 'Aptenodytes Swish', 1840, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1725, 'penguin_suit', 'Executive Penguin', 'Aptenodytes Loman', 1841, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1726, 'penguin_sumo', 'Sumo Penguin', 'Aptenodytes Musashimaru', 1842, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1727, 'penguin_super', 'Superhero Penguin', 'Aptenodytes Kirby', 1843, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1728, 'penguin_swim', 'Summer Penguin', 'Aptenodytes Buubar', 1844, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1729, 'penguin_wrestler', 'Luchador Penguin', 'Aptenodytes Mysterioso', 1845, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1730, 'penguin_cowboy', 'Cowboy Penguin', 'Aptenodytes Hickok', 1894, 1, 1, 0, '0', 'solid', 'default', 0, 1, '', -1, '2,4', NULL), + (1731, 'sandrug', 'Tropical Beach Rug', 'Your own paradise island', 1123, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1732, 'rare_moonrug', 'Moon Rug', 'Desolation rocks!', 1125, 1, 1, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1733, 'tree1', 'Dead tree', 'Dead christmas tree', 635, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1734, 'tree2', 'Dead tree', 'Creates a spooky scene!', 636, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1735, 'tree3', 'Christmas Tree 1', 'Any presents under it yet?', 637, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1736, 'tree4', 'Christmas Tree 2', 'Any presents under it yet?', 638, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1737, 'tree5', 'Christmas Tree 3', 'Any presents under it yet?', 639, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1738, 'tree6', 'Flashy Christmas Tree', 'The future\'s bright!', 640, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1739, 'triplecandle', 'Electric Candles', 'No need to worry about wax drips', 641, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1740, 'turkey', 'Roast Turkey', 'Where\'s the cranberry sauce?', 642, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1741, 'house', 'Gingerbread House', 'Good enough to eat', 643, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1742, 'house2', 'Gingerbread House', 'Good enough to eat', 644, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1743, 'pudding', 'Christmas Pudding', 'Will you get the lucky sixpence?', 645, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1744, 'xmasduck', 'Christmas Rubber Duck', 'A right Christmas quacker!', 646, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1745, 'hyacinth1', 'Pink Hyacinth', 'Beautiful bulb', 647, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (1746, 'hyacinth2', 'Blue Hyacinth', 'Beautiful bulb', 648, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (1747, 'joulutahti', 'Poinsetta', 'Christmas in a pot', 649, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2', NULL), + (1748, 'rcandle', 'Red Candle', 'Xmas tea light', 650, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1749, 'wcandle', 'White Candle', 'Xmas tea light', 651, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1750, 'sofa_polyfon', 'Two-seater Sofa', 'Comfort for stylish couples', 337, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1751, 'sofa_polyfon*2', 'Black Mode Sofa', 'Black Mode Sofa', 846, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1752, 'sofa_polyfon*3', 'White Two-seater Sofa', 'Comfort for stylish couples', 853, 2, 1, 1.2, '1', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1753, 'sofa_polyfon*4', 'Beige Mode Sofa', 'Beige Mode Sofa', 860, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1754, 'sofa_polyfon*6', 'Blue Mode Sofa', 'Blue Mode Sofa', 867, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1755, 'sofa_polyfon*7', 'Green Two-seater Sofa', 'Comfort for stylish couples', 874, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1756, 'sofa_polyfon*8', 'Yellow Mode Sofa', 'Yellow Mode Sofa', 881, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1757, 'sofa_polyfon*9', 'Red Two-seater Sofa', 'Comfort for stylish couples', 888, 2, 1, 1.2, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1758, 'present_gen', 'Gift', 'What\'s inside?', 1371, 1, 1, 1, '0', 'solid,present,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1759, 'tree7', 'Snowy Christmas Tree', 'Walking in a winter wonderland!', 1215, 1, 0, 0, '0', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1760, 'christmas_poop', 'Reindeer Droppings', 'Bob?s magical fertilizer', 1211, 1, 0, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1761, 'xmas_icelamp', 'Ice Block Lantern', 'Light up the winter nights', 1219, 1, 1, 1, '2', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1762, 'plant_mazegate_snow', 'Snowy Maze Gate', 'There\'s snow way through!', 1221, 2, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (1763, 'plant_maze_snow', 'Snowy Maze Shrubbery', 'Labyrinths galore!', 1220, 2, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1764, 'xmas_cstl_gate', 'Ice Castle Gate', 'Let that icy draft out!', 1216, 2, 1, 0, '2', 'gate,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1765, 'xmas_cstl_twr', 'Ice Castle Tower', 'All I see from up here is snow!', 1217, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1766, 'xmas_cstl_wall', 'Ice Castle Wall', 'Solid blocks of ice and snow', 1218, 2, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1767, 'christmas_sleigh', 'Winter Sleigh', 'Ready for your Xmas cheer', 1213, 2, 2, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1768, 'christmas_reindeer', 'Reindeer', 'Prancer becomes Rudolph in a click!', 1212, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1769, 'rclr_chair', 'Palm Chair', 'Watch out for coconuts', 463, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1770, 'rclr_garden', 'Water Garden', 'Self watering', 464, 1, 3, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1771, 'rclr_sofa', 'Polar Sofa', 'Snuggle up together', 462, 2, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1772, 'rclr_lamp', 'Moon Lamp', 'Light up your space', 1279, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1773, 'flag_denmark', 'The Denmark Flag', 'Wave it proudly!', 4278, 1, 1, 0, '0', 'solid,wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1774, 'transparent_floor', 'Transparent Floor', 'Watch your step!', 3199, 2, 2, 0, '4', 'can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1775, 'ads_clcake', 'Idea Agency Super Cake', 'Have your cake and eat it with Idea', 11141, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1776, 'ads_clcake2', 'Idea Agency Super Cake', 'Have your cake and eat it with Idea', 3139, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1777, 'ads_cldesk', 'Idea Agency Desk', 'Work on your latest agency brief.', 1514, 2, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1778, 'ads_clfloor', 'Childline Rug', 'Keep your feet warm with the Idea Agency rug', 1596, 3, 5, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1779, 'ads_cllava', 'Idea Agency Lava Lamp', 'It\'s better out than in!', 1597, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1780, 'ads_cllava2', 'Idea Agency Lava Lamp', 'It\'s better out than in!', 1598, 1, 1, 0, '2', 'solid', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1781, 'ads_cltele', 'Idea Agency Teleporter', 'Whatever your Idea, it\'s better out than in.', 1513, 1, 1, 0, '-1', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '0,2,4,6', NULL), + (1782, 'ads_cltele_cmp', 'Idea Agency Teleporter', 'Whatever your Idea, it\'s better out than in.', 1599, 1, 1, 0, '-1', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '0,2,4,6', NULL), + (1783, 'ads_clwall1', 'Idea Agency Plasma 1', 'ChildLine', 1515, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1784, 'ads_clwall2', 'Idea Agency Plasma 2', 'Welcome to the Idea Agency', 1516, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1785, 'ads_clwall3', 'ChildLine TV', 'Helping to raise awareness of the great advice ChildLine can offer', 10071, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1786, 'ads_cl_jukeb', 'Idea Agency Jukebox', 'Shake it like a polaroid picture in the Idea agency', 10050, 1, 1, 0, '2', 'solid,jukebox,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1787, 'ads_cl_jukeb_camp', 'Idea Agency Jukebox', 'Shake it like a polaroid picture in the Idea agency', 10073, 1, 1, 0, '2', 'solid,jukebox,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1788, 'ads_cl_sofa', 'Idea Agency Sofa', 'Take a load off - both your feet and mind!', 11145, 2, 1, 1, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1789, 'ads_cl_sofa_cmp', 'Idea Agency Sofa', 'Take a load off - both your feet and mind!', 10072, 2, 1, 1, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1790, 'sound_set_71', 'Ice cool sounds', 'Get your Winter Wonderland sounds for your Trax Machine!', 1510, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1791, 'ads_calip_chair', 'Calippo Chair', 'Calippo Inflatable Chair', 11174, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1792, 'ads_calip_chaircmp', 'ads_calip_chair name', 'ads_calip_chair text', 3169, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1793, 'ads_calip_fan', 'ads_calip_fan', 'ads_cali desc', 3198, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1794, 'ads_calip_fan_cmp', 'ads_calip_fan', 'ads_cali desc', 3201, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1795, 'ads_calip_lava', 'ads_calip_lava name', 'ads_calip_lava desc', 3197, 1, 1, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1796, 'ads_calip_parasol', 'ads_calip_parasol name', 'ads_calip_parasol desc', 3195, 1, 1, 0, '2', 'requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1797, 'ads_calip_parasol_cmp', 'ads_calip_parasol name', 'ads_calip_parasol desc', 3203, 1, 1, 0, '2', 'requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1798, 'ads_calip_pool', 'Calippo Pool', 'Fancy a dip?', 11153, 2, 2, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1799, 'ads_calip_pool_cmp', 'ads_calip_pool name', 'ads_calip_pool desc', 3183, 2, 2, 0, '0', 'can_stand_on_top', 'default', 1, 1, '', -1, '0', NULL), + (1800, 'ads_calip_tele', 'Calippo Teleporter', 'Get your swim outfit now!', 11152, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '2,4', NULL), + (1801, 'ads_calip_telecmp', 'ads_calip_tele name', 'ads_calip_tele text', 3191, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '2,4', NULL), + (1802, 'calippo', 'Calippo icecream machine', 'Basic model', 1274, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (1803, 'calippo_cmp', 'Calippo icecream machine', 'Basic model', 2738, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (1804, 'ads_calip_cola*1', 'Calippo Lima', 'Of the most refreshing!', 11126, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1805, 'ads_calip_cola*2', 'Calippo Cola', 'Of the most refreshing!', 11121, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1806, 'ads_calip_cola*3', 'Calippo Strawberry', 'Of the most refreshing!', 11150, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1807, 'ads_calip_cola*4', 'Calippo Crazy', 'Of the most refreshing!', 11151, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1808, 'ads_calip_colac*1', 'Calippo Lima', 'Of the most refreshing!', 1146, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1809, 'ads_calip_colac*2', 'Calippo Cola', 'Of the most refreshing!', 1307, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1810, 'ads_calip_colac*3', 'Calippo Strawberry', 'Of the most refreshing!', 1308, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1811, 'ads_calip_colac*4', 'Calippo Crazy', 'Of the most refreshing!', 1309, 1, 1, 0, '0', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '2,4', NULL), + (1812, 'ads_calip_lava2', 'ads_calip_lava2 name', 'ads_calip_lava2 desc', 1310, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0', NULL), + (1813, 'ads_mall_coffeem', 'Quick Coffee Stop', 'Exclusively Mall coffee and free to boot!', 3202, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '17', -1, '2,4', NULL), + (1814, 'ads_mall_elevator', 'Mall Lift', 'Up, up and away to the next shopping level', 3306, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter', 'teleport', 1, 1, '', -1, '2,4', NULL), + (1815, 'ads_mall_kiosk', 'Mall Kiosk', 'Fish, fruit, sweets, sunglasses - it is all available here.', 3216, 1, 2, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,2', NULL), + (1816, 'ads_mall_tele', 'Mall tele-door', 'Step inside the store and look around', 3020, 1, 1, 0, '3', 'solid,requires_touching_for_interaction,custom_data_true_false,teleporter,door_teleporter', 'teleport', 1, 1, '', -1, '0,2,4,6', NULL), + (1817, 'ads_mall_winbea', 'Mall Beauty Salon', 'Give yourself some red carpet glamour in the Salon', 1594, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1818, 'ads_mall_winchi', 'ads_mall_winchi', 'ads_mall_winchi', 4103, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1819, 'ads_mall_wincin', 'Mall Cinema Window', 'What movies are playing in the big silver screen?', 1595, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1820, 'ads_mall_winclo', 'ads_mall_winclo', 'ads_mall_winclo', 4236, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1821, 'ads_mall_window', 'Habbo Mall Window', 'Can you see that!', 4083, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1822, 'ads_mall_winfur', 'Habbo Mall Furni Window', 'Can you see that!', 4092, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1823, 'ads_mall_wingar', 'ads_mall_wingar', 'ads_mall_wingar', 4230, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1824, 'ads_mall_winice', 'Mall Ice Cream Parlour Window', 'Get yourself a cold rock of ice creamy goodness here.', 10056, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1825, 'ads_mall_winmus', 'Mall Music Shop Window', 'Strum, play and drum - this shop is a music lover\'s heaven', 1956, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1826, 'ads_mall_winpet', 'Habbo Mall Petshop Window', '', 4091, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1827, 'ads_mall_winspo', 'Mall Sports World Window', 'Whatever your sporting dibble, you\'ll find it here', 10057, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '', NULL), + (1828, 'ads_mall_wintra', 'ads_mall_wintra', 'ads_mall_wintra', 4225, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1829, 'easel_0', 'StrayPixels Winner x1', 'Made by our very own RollerKingdom and Fredsicle', 3582, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1830, 'easel_1', 'StrayPixels winner x3', 'Made by our very own avilaman, HankMcCoy, and ,CrystalBailey', 3594, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1831, 'easel_2', 'StrayPixels winner x5', 'Is that... cheese chasing that man!?', 3603, 1, 1, 0, '4', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1832, 'easel_3', 'StrayPixels winner x7', 'Watching paint dry... fun', 3596, 1, 1, 0, '5', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1833, 'easel_4', 'StrayPixels winner x10', 'Holy carp my watch just melted!', 3600, 1, 1, 0, '5', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1834, 'prizetrophy7*1', 'Gold Habbo trophy', 'Gold Habbo trophy', 1163, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1835, 'prizetrophy7*2', 'Silver Habbo trophy', 'Silver Habbo trophy', 1158, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1836, 'prizetrophy7*3', 'Bronze Habbo trophy', 'Bronze Habbo trophy', 1153, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1837, 'prizetrophy8*1', 'Bubble trophy', 'Glittery gold', 618, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1838, 'prizetrophy9*1', 'Champion trophy', 'Glittery gold', 619, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1839, 'prizetrophy_cool', 'Cool Trophy', 'One Cool Habbo', 3225, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1840, 'prizetrophy_hot', 'Hot Trophy', 'One Hot Habbo', 3229, 1, 1, 0, '2', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1841, 'hrella_poster_1', 'Porthole', 'Brighten up your cabin', 1237, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1842, 'hrella_poster_2', 'Life Buoy', 'For those scary Lido moments', 1238, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1843, 'hrella_poster_3', 'Anchor', 'Don\'t drift away!', 1239, -1, -1, 0, '0', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1844, 'xm09_trophy', '2009 Habbo Trophy', 'Winner of a 2009 Habbo of the Year competition.', 3351, 1, 1, 0, '0', 'solid,prize_trophy,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1845, 'computer_laptop', 'Laptop', 'For geeks on the go!', 3893, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4,6,0', NULL), + (1846, 'bw_water_1', 'Water Patch', 'Swimming in the shallow end.', 3530, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1847, 'bw_water_2', 'Deep Water Patch', 'Get thrown in the deep end!', 3541, 2, 2, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1848, 'val_randomizer', 'Love Randomiser', 'Surprise surprise! (Cilla Black not included)', 1236, 4, 1, 1.4, '33', 'can_sit_on_top,requires_rights_for_interaction', 'love_randomizer', 1, 1, '', -1, '2,4', NULL), + (1849, 'val09_floor', 'Polished Tile', 'Looks all shiny...', 3363, 2, 2, 0, '6', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1850, 'val09_floor2', 'Wooden Tile', 'Look closely at the grain', 3357, 2, 2, 0, '6', 'can_stack_on_top,can_stand_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1851, 'val09_wall1', 'Sound-proofed Wall', 'I wonder if it really works?', 4318, -1, -1, 0, '0', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1852, 'val09_wall2', 'Embroidered Wall', 'Isn\'t it pretty?', 4316, -1, -1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1853, 'val09_wdrobe_b', 'Designer Wardrobe', 'I wonder if all my clothes will fit?', 4320, -1, -1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1854, 'val09_wdrobe_g', 'Designer Wardrobe', 'I wonder if all my clothes will fit?', 4317, -1, -1, 0, '5', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1855, 'ktchn10_block', 'Kitchen Corner Block', 'Cutting this corner won\'t give you food poisoning.', 3589, 1, 1, 1.1, '3', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1856, 'ktchn10_cabnt', 'Cabinet', 'Hide all your messy bits and pieces.', 4338, -1, -1, 0, '2', 'wall_item,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1857, 'ktchn10_pot', 'Boiling Water', 'If you can\'t stand the heat.', 3580, 1, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1858, 'ktchn10_sink', 'Kitchen Sink', 'Everything but...', 3612, 2, 1, 0, '3', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1859, 'ktchn10_stove', 'Kitchen Stove', 'Cook up a storm!', 3581, 2, 1, 1.3, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1860, 'ktchn10_tea', 'Teapot', 'Short and stout.', 3592, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1861, 'md_limukaappi_cmp', 'Habbo Cola Machine', 'A sparkling and refreshing pixel drink!', 1312, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '19', -1, '0,2,4,6', NULL), + (1862, 'kinkysofa', 'Kinky Sofa', 'Don\'t look at it under UV light!', 1533, 2, 1, 1.2, '2', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1863, 'ads_cl_moodi_camp', 'The Moodi Machine', 'how u feelin? Express yourself with ChildLine', 3343, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '45,46,47', -1, '2,4', NULL), + (1864, 'hc2_armchair', 'Leather Armchair', 'Relax in style', 3436, 1, 1, 1.1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,4', NULL), + (1865, 'hc2_barchair', 'Leather Bar Stool', 'Sit up high', 3439, 1, 1, 1.8, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '2,0,4,6', NULL), + (1866, 'hc2_biglamp', 'Black Lamp', 'Sophisticated lighting', 3446, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '4', NULL), + (1867, 'hc2_carpet', 'Trendy Rug', 'Luxurious comfort', 3440, 3, 5, 0, '0', 'can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '4,2', NULL), + (1868, 'hc2_cart', 'Service Trolley', 'Butler not included', 3430, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '4,2', NULL), + (1869, 'hc2_coffee', 'Espresso Machine', 'Morning glory', 3450, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1870, 'hc2_divider', 'Black Divider', 'Divide the wealth', 3449, 1, 3, 0, '0', 'solid', 'default', 1, 1, '', -1, '4,2', NULL), + (1871, 'hc2_dvn', 'Leather Duvan', 'Stretch out', 3459, 1, 3, 1.4, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '2,0', NULL), + (1872, 'hc2_frplc', 'Suave Fireplace', 'Roaring success', 3458, 1, 2, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1873, 'hc2_sofa', 'Leather Sofa', 'Stylish seating', 3452, 2, 1, 1.1, '0', 'solid,can_sit_on_top', 'chair', 1, 1, '', -1, '4,0,2,6', NULL), + (1874, 'hc2_sofatbl', 'Glass Table', 'Make a statement', 3434, 2, 2, 0.5, '0', 'solid,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1875, 'hc2_vase', 'Black Vase', 'Elegantly shaped', 3428, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,4', NULL), + (1876, 'hc3_bard', 'HC Bar Desk', 'Set up shop', 3445, 2, 1, 1.2, '2', 'solid,can_stack_on_top,solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1877, 'hc3_dc', 'HC Duvan', 'Live the life', 3461, 1, 3, 1.4, '2', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1878, 'hc3_divider', 'HC Divider', 'Manage your space', 3431, 1, 3, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '4,2', NULL), + (1879, 'hc3_hugelamp', 'HC Lamp', 'Makes a huge statement', 3447, 1, 1, 0, '2', 'requires_rights_for_interaction,can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '4', NULL), + (1880, 'hc3_light', 'HC Light', 'Stay in the spotlight', 3465, 2, 1, 0, '2', 'requires_rights_for_interaction,can_stand_on_top,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1881, 'hc3_shelf', 'HC Shelves', 'Store your awards', 3438, 3, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1882, 'hc3_sofa', 'HC Sofa', 'Comfort in style', 3441, 2, 1, 1.1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1883, 'hc3_stereo', 'HC Stereo', 'Block rockin\' beats', 3470, 3, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1884, 'hc3_stool', 'HC Stool', 'High and mighty', 3448, 1, 1, 1.8, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1885, 'hc3_table', 'HC Coffee Table', 'For social gatherings', 3466, 2, 2, 0.7, '0', 'solid,can_stack_on_top', 'default', 1, 1, '', -1, '0,2', NULL), + (1886, 'hc3_vase', 'HC Vase', 'The ultimate floral arrangement.', 3479, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2', NULL), + (1887, 'hc3_walldeco', 'HC Wall Art', 'Cubism lives on', 4329, -1, -1, 0, '10', 'wall_item', 'default', 1, 1, '', -1, '2,4', NULL), + (1888, 'basket', 'Basket Of Eggs', 'Eggs-actly what you want for Easter', 654, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2', NULL), + (1889, 'birdie', 'Pop-up Egg', 'Cheep (!) and cheerful', 653, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1890, 'easterduck', 'Wannabe bunny', 'Can you tell what it is yet?', 652, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '2,4', NULL), + (1891, 'rare_mnstr', 'Venomus Habbolus', 'Don\'t get too close...', 1128, 1, 1, 0, '0', 'solid', 'default', 1, 1, '', -1, '0,6', NULL), + (1892, 'rare_beehive_bulb*3', 'Maroon Amber Lamp', 'Only with these on will you be able to see the truth!', 8217, 1, 1, 1, '2', 'solid,can_stack_on_top,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1893, 'rare_dragonlamp_pink', 'Pink Dragon Lamp', 'Breathes Fire', 4852, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '4,2', NULL), + (1894, 'rare_icecream*10', 'Silver Icecream Machine', 'ice cold snacks', 4859, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (1895, 'pillar*10', 'Maroon Classic Pillar', 'Ancient and stately.', 8208, 1, 1, 3.5, '0', 'can_stack_on_top,solid', 'default', 1, 1, '', -1, '0', NULL), + (1896, 'rare_parasol*4', 'Maroon Parasol', 'Zon! Zon! Zon!', 8209, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1897, 'scifidoor*11', 'Maroon Spaceship Door', 'Beam me up.', 8210, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (1898, 'sleepingbag*11', 'Maroon Sleeping Bag', 'Ultimate coziness', 8211, 1, 3, 0.8, '0', 'can_lay_on_top', 'bed', 1, 1, '', -1, '0,2', NULL), + (1899, 'rare_fountain*4', 'Maroon Fountain', 'Lounge Oasis', 8212, 1, 1, 0, '2', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL), + (1900, 'rare_dragonlamp*10', 'Maroon Dragon Lamp', 'Scary and scorching!', 8213, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '2,4', NULL), + (1901, 'rare_fan*10', 'Maroon Powered Fan', 'Turn it on and enjoy the cool breeze', 8214, 1, 1, 0, '2', 'solid,custom_data_numeric_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1902, 'rare_icecream*11', 'Maroon Ice Cream Maker', 'Virtual chocolate rocks!', 8215, 1, 1, 0, '2', 'solid,requires_touching_for_interaction,custom_data_true_false', 'vending_machine', 1, 1, '4', -1, '2,4', NULL), + (1903, 'wooden_screen*10', 'Maroon Oriental Door', 'Adds an exotic vibe to any room', 8216, 1, 2, 0, '0', 'solid,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,6', NULL), + (1904, 'pillow*10', 'Maroon Pillow', 'Rest your head after a long day of partying.', 8218, 1, 1, 1, '0', 'can_sit_on_top', 'chair', 1, 1, '', -1, '0,2,4,6', NULL), + (1905, 'scifiport*10', 'Maroon Laser Portal', 'Energy beams. No trespassers!', 8219, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '0,6', NULL), + (1906, 'rare_elephant_statue*3', 'Maroon Elephant', 'Imported Handicrafts', 8220, 1, 1, 1, '0', 'solid,can_stack_on_top,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0,2,4,6', NULL), + (1907, 'marquee*11', 'Maroon Marquee', 'A door and a sunshade in one furni!', 8221, 1, 1, 0, '2', 'solid,requires_rights_for_interaction,gate', 'default', 1, 1, '', -1, '2,4', NULL), + (1908, 'scifirocket*10', 'Maroon Smoke Machine', 'Retro-mystification', 8222, 1, 1, 0, '2', 'solid,custom_data_on_off,requires_rights_for_interaction', 'default', 1, 1, '', -1, '0', NULL); +/*!40000 ALTER TABLE `items_definitions` ENABLE KEYS */; + +-- Dumping structure for table havana.items_moodlight_presets +CREATE TABLE IF NOT EXISTS `items_moodlight_presets` ( + `item_id` bigint(11) NOT NULL, + `current_preset` int(11) NOT NULL DEFAULT 1, + `preset_1` varchar(50) NOT NULL DEFAULT '1,#000000,255', + `preset_2` varchar(50) NOT NULL DEFAULT '1,#000000,255', + `preset_3` varchar(50) NOT NULL DEFAULT '1,#000000,255', + UNIQUE KEY `item_id` (`item_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.items_moodlight_presets: ~0 rows (approximately) +DELETE FROM `items_moodlight_presets`; +/*!40000 ALTER TABLE `items_moodlight_presets` DISABLE KEYS */; +/*!40000 ALTER TABLE `items_moodlight_presets` ENABLE KEYS */; + +-- Dumping structure for table havana.items_pets +CREATE TABLE IF NOT EXISTS `items_pets` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` bigint(11) NOT NULL, + `name` varchar(15) NOT NULL, + `type` varchar(1) NOT NULL, + `race` int(3) NOT NULL, + `colour` varchar(6) NOT NULL, + `nature_positive` int(3) NOT NULL, + `nature_negative` int(3) NOT NULL, + `friendship` float NOT NULL DEFAULT 1, + `born` bigint(11) NOT NULL, + `last_kip` bigint(11) NOT NULL, + `last_eat` bigint(11) NOT NULL, + `last_drink` bigint(11) NOT NULL, + `last_playtoy` bigint(11) NOT NULL, + `last_playuser` bigint(11) NOT NULL, + `x` int(3) NOT NULL DEFAULT 0, + `y` int(3) NOT NULL DEFAULT 0, + `rotation` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.items_pets: ~0 rows (approximately) +DELETE FROM `items_pets`; +/*!40000 ALTER TABLE `items_pets` DISABLE KEYS */; +/*!40000 ALTER TABLE `items_pets` ENABLE KEYS */; + +-- Dumping structure for table havana.items_photos +CREATE TABLE IF NOT EXISTS `items_photos` ( + `photo_id` bigint(11) NOT NULL, + `photo_user_id` bigint(11) NOT NULL, + `timestamp` bigint(11) NOT NULL, + `photo_data` blob NOT NULL, + `photo_checksum` int(11) NOT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`photo_id`), + UNIQUE KEY `photo_id` (`photo_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.items_photos: ~0 rows (approximately) +DELETE FROM `items_photos`; +/*!40000 ALTER TABLE `items_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `items_photos` ENABLE KEYS */; + +-- Dumping structure for table havana.items_teleporter_links +CREATE TABLE IF NOT EXISTS `items_teleporter_links` ( + `item_id` bigint(11) NOT NULL, + `linked_id` bigint(11) NOT NULL, + UNIQUE KEY `item_id` (`item_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.items_teleporter_links: ~0 rows (approximately) +DELETE FROM `items_teleporter_links`; +/*!40000 ALTER TABLE `items_teleporter_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `items_teleporter_links` ENABLE KEYS */; + +-- Dumping structure for table havana.messenger_categories +CREATE TABLE IF NOT EXISTS `messenger_categories` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `name` varchar(50) NOT NULL, + KEY `Index 1` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.messenger_categories: ~0 rows (approximately) +DELETE FROM `messenger_categories`; +/*!40000 ALTER TABLE `messenger_categories` DISABLE KEYS */; +/*!40000 ALTER TABLE `messenger_categories` ENABLE KEYS */; + +-- Dumping structure for table havana.messenger_friends +CREATE TABLE IF NOT EXISTS `messenger_friends` ( + `from_id` int(11) NOT NULL, + `to_id` int(11) NOT NULL, + `category_id` int(11) DEFAULT 0, + KEY `to_id` (`to_id`), + KEY `from_id` (`from_id`), + KEY `category_id` (`category_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.messenger_friends: ~0 rows (approximately) +DELETE FROM `messenger_friends`; +/*!40000 ALTER TABLE `messenger_friends` DISABLE KEYS */; +/*!40000 ALTER TABLE `messenger_friends` ENABLE KEYS */; + +-- Dumping structure for table havana.messenger_messages +CREATE TABLE IF NOT EXISTS `messenger_messages` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `receiver_id` int(11) DEFAULT NULL, + `sender_id` int(11) DEFAULT NULL, + `unread` varchar(255) DEFAULT NULL, + `body` longtext NOT NULL, + `date` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.messenger_messages: ~0 rows (approximately) +DELETE FROM `messenger_messages`; +/*!40000 ALTER TABLE `messenger_messages` DISABLE KEYS */; +/*!40000 ALTER TABLE `messenger_messages` ENABLE KEYS */; + +-- Dumping structure for table havana.messenger_requests +CREATE TABLE IF NOT EXISTS `messenger_requests` ( + `from_id` int(11) DEFAULT NULL, + `to_id` int(11) DEFAULT NULL, + KEY `to_id` (`to_id`), + KEY `from_id` (`from_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.messenger_requests: ~0 rows (approximately) +DELETE FROM `messenger_requests`; +/*!40000 ALTER TABLE `messenger_requests` DISABLE KEYS */; +/*!40000 ALTER TABLE `messenger_requests` ENABLE KEYS */; + +-- Dumping structure for table havana.public_items +CREATE TABLE IF NOT EXISTS `public_items` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `room_model` varchar(255) NOT NULL, + `sprite` varchar(255) DEFAULT NULL, + `x` int(11) NOT NULL DEFAULT 0, + `y` int(11) NOT NULL DEFAULT 0, + `z` double NOT NULL DEFAULT 0, + `rotation` int(11) NOT NULL DEFAULT 0, + `top_height` double NOT NULL DEFAULT 1, + `length` int(11) NOT NULL DEFAULT 1, + `width` int(11) NOT NULL DEFAULT 1, + `behaviour` varchar(255) NOT NULL DEFAULT '', + `current_program` varchar(255) DEFAULT NULL, + `teleport_to` varchar(50) DEFAULT NULL, + `swim_to` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3464 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT; + +-- Dumping data for table havana.public_items: ~3,474 rows (approximately) +DELETE FROM `public_items`; +/*!40000 ALTER TABLE `public_items` DISABLE KEYS */; +INSERT INTO `public_items` (`id`, `room_model`, `sprite`, `x`, `y`, `z`, `rotation`, `top_height`, `length`, `width`, `behaviour`, `current_program`, `teleport_to`, `swim_to`) VALUES + (1, 'picnic', 'picnic_cloth1', 5, 16, 0.001, 0, 0.001, 0, 0, 'can_stand_on_top', '', NULL, NULL), + (2, 'newbie_lobby', 'crl_lamp', 16, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3, 'newbie_lobby', 'crl_sofa2c', 17, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (4, 'newbie_lobby', 'crl_sofa2b', 18, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (5, 'newbie_lobby', 'crl_sofa2a', 19, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (6, 'newbie_lobby', 'crl_lamp', 20, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (7, 'newbie_lobby', 'crl_chair', 16, 1, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (8, 'newbie_lobby', 'crl_lamp', 7, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (9, 'newbie_lobby', 'crl_lamp', 11, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (10, 'newbie_lobby', 'crl_chair', 16, 2, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (11, 'newbie_lobby', 'crl_pillar', 5, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (12, 'newbie_lobby', 'crl_chair', 7, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (13, 'newbie_lobby', 'crl_table1b', 9, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (14, 'newbie_lobby', 'crl_sofa1c', 11, 3, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (15, 'newbie_lobby', 'crl_chair', 16, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (16, 'newbie_lobby', 'crl_table2b', 19, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (17, 'newbie_lobby', 'crl_table2a', 20, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (18, 'newbie_lobby', 'crl_lamp', 0, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (19, 'newbie_lobby', 'crl_sofa2c', 1, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (20, 'newbie_lobby', 'crl_sofa2b', 2, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (21, 'newbie_lobby', 'crl_sofa2a', 3, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (22, 'newbie_lobby', 'crl_lamp', 4, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (23, 'newbie_lobby', 'crl_table1a', 9, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (24, 'newbie_lobby', 'crl_sofa1b', 11, 4, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (25, 'newbie_lobby', 'crl_wall2a', 15, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (26, 'newbie_lobby', 'crl_lamp', 16, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (27, 'newbie_lobby', 'crl_chair', 0, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (28, 'newbie_lobby', 'crl_chair', 7, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (29, 'newbie_lobby', 'crl_sofa1a', 11, 5, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (30, 'newbie_lobby', 'crl_table2b', 2, 6, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (31, 'newbie_lobby', 'crl_table2a', 3, 6, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (32, 'newbie_lobby', 'crl_lamp', 11, 6, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (33, 'newbie_lobby', 'crl_chair', 0, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (34, 'newbie_lobby', 'crl_lamp', 0, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (35, 'newbie_lobby', 'crl_sofa3c', 1, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (36, 'newbie_lobby', 'crl_sofa3b', 2, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (37, 'newbie_lobby', 'crl_sofa3a', 3, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (38, 'newbie_lobby', 'crl_lamp', 4, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (39, 'newbie_lobby', 'crl_barchair2', 19, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (40, 'newbie_lobby', 'crl_tablebar', 20, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (41, 'newbie_lobby', 'crl_barchair2', 21, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (42, 'newbie_lobby', 'crl_pillar2', 5, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (43, 'newbie_lobby', 'crl_pillar', 9, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (44, 'newbie_lobby', 'crl_desk1a', 8, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (45, 'newbie_lobby', 'crl_deski', 9, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (46, 'newbie_lobby', 'crl_deskh', 10, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (47, 'newbie_lobby', 'crl_deskg', 10, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (48, 'newbie_lobby', 'crl_deskf', 10, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (49, 'newbie_lobby', 'crl_deske', 10, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (50, 'newbie_lobby', 'crl_deske', 10, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (51, 'newbie_lobby', 'crl_deske', 10, 20, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (52, 'newbie_lobby', 'crl_deske', 10, 21, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (53, 'newbie_lobby', 'crl_deske', 10, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (54, 'newbie_lobby', 'crl_deske', 10, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (55, 'newbie_lobby', 'crl_wallb', 7, 24, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (56, 'newbie_lobby', 'crl_deske', 10, 24, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (57, 'newbie_lobby', 'crl_walla', 7, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (58, 'newbie_lobby', 'crl_desk1b', 8, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (59, 'newbie_lobby', 'crl_desk1c', 9, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (60, 'newbie_lobby', 'crl_desk1d', 10, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (61, 'newbie_lobby', 'crl_lamp2', 12, 27, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (62, 'newbie_lobby', 'crl_cabinet2', 13, 27, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (63, 'newbie_lobby', 'crl_cabinet1', 14, 27, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (64, 'newbie_lobby', 'crl_lamp2', 15, 27, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (65, 'theater', 'mic', 11, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (66, 'theater', 'thchair2', 2, 11, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (67, 'theater', 'thchair2', 2, 12, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (68, 'theater', 'thchair2', 2, 15, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (69, 'theater', 'thchair1', 6, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (70, 'theater', 'thchair1', 7, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (71, 'theater', 'thchair1', 8, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (72, 'theater', 'thchair1', 9, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (73, 'theater', 'thchair1', 10, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (74, 'theater', 'thchair1', 12, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (75, 'theater', 'thchair1', 13, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (76, 'theater', 'thchair1', 14, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (77, 'theater', 'thchair1', 15, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (78, 'theater', 'thchair1', 16, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (79, 'theater', 'thchair2', 2, 16, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (80, 'theater', 'thchair1', 6, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (81, 'theater', 'thchair1', 7, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (82, 'theater', 'thchair1', 8, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (83, 'theater', 'thchair1', 9, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (84, 'theater', 'thchair1', 10, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (85, 'theater', 'thchair1', 12, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (86, 'theater', 'thchair1', 13, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (87, 'theater', 'thchair1', 14, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (88, 'theater', 'thchair1', 15, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (89, 'theater', 'thchair1', 16, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (90, 'theater', 'thchair1', 6, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (91, 'theater', 'thchair1', 7, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (92, 'theater', 'thchair1', 8, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (93, 'theater', 'thchair1', 9, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (94, 'theater', 'thchair1', 10, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (95, 'theater', 'thchair1', 12, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (96, 'theater', 'thchair1', 13, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (97, 'theater', 'thchair1', 14, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (98, 'theater', 'thchair1', 15, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (99, 'theater', 'thchair1', 16, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (100, 'theater', 'thchair1', 6, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (101, 'theater', 'thchair1', 7, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (102, 'theater', 'thchair1', 8, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (103, 'theater', 'thchair1', 9, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (104, 'theater', 'thchair1', 10, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (105, 'theater', 'thchair1', 12, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (106, 'theater', 'thchair1', 13, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (107, 'theater', 'thchair1', 14, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (108, 'theater', 'thchair1', 15, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (109, 'theater', 'thchair1', 16, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (110, 'library', 'libchair', 14, 2, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (111, 'library', 'libchair', 16, 2, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (112, 'library', 'libchair', 26, 2, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (113, 'library', 'libchair', 24, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (114, 'library', 'libchair', 12, 4, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (115, 'library', 'libchair', 12, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (116, 'library', 'libstool', 13, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (117, 'library', 'libstool', 13, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (118, 'library', 'libstool', 13, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (119, 'library', 'libchair', 28, 27, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (120, 'library', 'libchair', 27, 29, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (121, 'library', 'libstool', 24, 33, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (122, 'library', 'libstool', 24, 34, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (123, 'library', 'libstool', 24, 35, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (124, 'library', 'libstool', 21, 36, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (125, 'library', 'libstool', 22, 36, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (126, 'library', 'libstool', 23, 36, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (127, 'floatinggarden', 'stone', 15, 37, 1, 4, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (128, 'floatinggarden', 'stone', 16, 37, 1, 4, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (129, 'floatinggarden', 'stone', 17, 29, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (130, 'floatinggarden', 'stone', 17, 30, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (131, 'floatinggarden', 'stone', 17, 31, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (132, 'floatinggarden', 'stone', 17, 35, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (133, 'floatinggarden', 'stone', 17, 36, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (134, 'floatinggarden', 'stone', 21, 33, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (135, 'floatinggarden', 'stone', 21, 34, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (136, 'floatinggarden', 'stone', 21, 35, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (137, 'floatinggarden', 'stone', 21, 36, 1, 2, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (138, 'floatinggarden', 'stone', 24, 9, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (139, 'floatinggarden', 'stone', 25, 9, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (140, 'floatinggarden', 'stone', 26, 33, 1, 6, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (141, 'floatinggarden', 'stone', 26, 34, 1, 6, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (142, 'floatinggarden', 'stone', 26, 35, 1, 6, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (143, 'floatinggarden', 'stone', 26, 36, 1, 6, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (144, 'floatinggarden', 'stone', 28, 13, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (145, 'floatinggarden', 'stone', 29, 13, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (146, 'floatinggarden', 'floatbench1', 17, 18, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (147, 'floatinggarden', 'floatbench1', 17, 24, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (148, 'floatinggarden', 'floatbench1', 19, 18, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (149, 'floatinggarden', 'floatbench1', 19, 24, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (150, 'floatinggarden', 'floatbench1', 21, 18, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (151, 'floatinggarden', 'floatbench1', 21, 24, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (152, 'floatinggarden', 'floatbench1', 23, 18, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (153, 'floatinggarden', 'floatbench1', 23, 24, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (154, 'floatinggarden', 'floatbench1', 28, 17, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (155, 'floatinggarden', 'floatbench1', 28, 19, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (156, 'floatinggarden', 'floatbench1', 28, 23, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (157, 'floatinggarden', 'floatbench1', 28, 25, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (158, 'floatinggarden', 'floatbench2', 17, 17, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (159, 'floatinggarden', 'floatbench2', 17, 23, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (160, 'floatinggarden', 'floatbench2', 19, 17, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (161, 'floatinggarden', 'floatbench2', 19, 23, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (162, 'floatinggarden', 'floatbench2', 21, 17, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (163, 'floatinggarden', 'floatbench2', 21, 23, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (164, 'floatinggarden', 'floatbench2', 23, 17, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (165, 'floatinggarden', 'floatbench2', 23, 23, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (166, 'floatinggarden', 'floatbench2', 27, 17, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (167, 'floatinggarden', 'floatbench2', 27, 19, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (168, 'floatinggarden', 'floatbench2', 27, 23, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (169, 'floatinggarden', 'floatbench2', 27, 25, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (170, 'sunset_cafe', 'chairup4', 32, 21, 0, 3, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (171, 'sunset_cafe', 'chairup6', 33, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (172, 'sunset_cafe', 'chairup6', 34, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (173, 'sunset_cafe', 'chairup6', 35, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (174, 'sunset_cafe', 'chairup6', 36, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (175, 'sunset_cafe', 'chairup7', 37, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (176, 'sunset_cafe', 'chairup2', 32, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (177, 'sunset_cafe', 'chairup5', 25, 23, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (178, 'sunset_cafe', 'chairup6', 26, 23, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (179, 'sunset_cafe', 'chairup6', 27, 23, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (180, 'sunset_cafe', 'chairup6', 28, 23, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (181, 'sunset_cafe', 'chairup7', 29, 23, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (182, 'sunset_cafe', 'chairup1', 32, 23, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (183, 'sunset_cafe', 'counter5', 24, 24, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (184, 'sunset_cafe', 'table2', 25, 24, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (185, 'sunset_cafe', 'table1', 26, 24, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (186, 'sunset_cafe', 'counter3', 24, 25, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (187, 'sunset_cafe', 'counter4', 24, 26, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (188, 'sunset_cafe', 'counter3', 24, 27, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (189, 'sunset_cafe', 'counter3', 24, 28, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (190, 'sunset_cafe', 'palms4', 29, 28, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (191, 'sunset_cafe', 'counter3', 24, 29, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (192, 'sunset_cafe', 'palms3', 29, 29, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (193, 'sunset_cafe', 'counter3', 24, 30, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (194, 'sunset_cafe', 'palms2', 29, 30, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (195, 'sunset_cafe', 'counter1', 22, 31, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (196, 'sunset_cafe', 'counter1', 23, 31, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (197, 'sunset_cafe', 'counter2', 24, 31, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (198, 'sunset_cafe', 'palms1', 29, 31, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (199, 'sunset_cafe', 'chairup5', 30, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (200, 'sunset_cafe', 'chairup6', 31, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (201, 'sunset_cafe', 'chairup6', 32, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (202, 'sunset_cafe', 'chairup6', 33, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (203, 'sunset_cafe', 'chairup6', 34, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (204, 'sunset_cafe', 'chairup6', 35, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (205, 'sunset_cafe', 'chairup6', 36, 31, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (206, 'sunset_cafe', 'chairright3', 37, 31, 0, 5, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (207, 'sunset_cafe', 'chairup3', 21, 32, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (208, 'sunset_cafe', 'table4', 22, 32, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (209, 'sunset_cafe', 'table2', 30, 32, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (210, 'sunset_cafe', 'table1', 31, 32, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (211, 'sunset_cafe', 'table2', 33, 32, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (212, 'sunset_cafe', 'table1', 34, 32, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (213, 'sunset_cafe', 'chairright2', 37, 32, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (214, 'sunset_cafe', 'chairup2', 21, 33, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (215, 'sunset_cafe', 'table3', 22, 33, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (216, 'sunset_cafe', 'chairright2', 37, 33, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (217, 'sunset_cafe', 'chairup2', 21, 34, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (218, 'sunset_cafe', 'table4', 36, 34, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (219, 'sunset_cafe', 'chairright2', 37, 34, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (220, 'sunset_cafe', 'chairup2', 21, 35, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (221, 'sunset_cafe', 'table2', 24, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (222, 'sunset_cafe', 'table1', 25, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (223, 'sunset_cafe', 'table2', 27, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (224, 'sunset_cafe', 'table1', 28, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (225, 'sunset_cafe', 'palm', 33, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (226, 'sunset_cafe', 'table3', 36, 35, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (227, 'sunset_cafe', 'chairright2', 37, 35, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (228, 'sunset_cafe', 'chairleft3', 21, 36, 0, 1, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (229, 'sunset_cafe', 'chairleft2', 22, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (230, 'sunset_cafe', 'chairleft2', 23, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (231, 'sunset_cafe', 'chairleft2', 24, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (232, 'sunset_cafe', 'chairleft2', 25, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (233, 'sunset_cafe', 'chairleft2', 26, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (234, 'sunset_cafe', 'chairleft2', 27, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (235, 'sunset_cafe', 'chairleft1', 28, 36, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (236, 'sunset_cafe', 'chairright2', 37, 36, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (237, 'sunset_cafe', 'table4', 36, 37, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (238, 'sunset_cafe', 'chairright2', 37, 37, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (239, 'sunset_cafe', 'table3', 36, 38, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (240, 'sunset_cafe', 'chairright1', 37, 38, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (241, 'pool_a', 'umbrella2', 18, 4, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (242, 'pool_a', 'pool_2sofa2', 18, 5, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (243, 'pool_a', 'pool_2sofa1', 18, 6, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (244, 'pool_a', 'umbrella2', 7, 20, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (245, 'pool_a', 'pool_chair2', 8, 20, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (246, 'pool_a', 'umbrella2', 24, 20, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (247, 'pool_a', 'pool_chair2', 25, 20, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (248, 'pool_a', 'pool_chair2', 7, 21, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (249, 'pool_a', 'pool_table2', 8, 21, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (250, 'pool_a', 'pool_chair2', 9, 21, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (251, 'pool_a', 'pool_chair2', 24, 21, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (252, 'pool_a', 'pool_table2', 25, 21, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (253, 'pool_a', 'pool_chair2', 8, 22, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (254, 'pool_a', 'flower2b', 2, 28, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (255, 'pool_a', 'flower2a', 2, 29, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (256, 'pool_a', 'box', 6, 32, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (257, 'pool_a', 'flower1', 13, 33, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (258, 'pool_a', 'pool_chairy', 10, 34, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (259, 'pool_a', 'umbrellay', 8, 35, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (260, 'pool_a', 'pool_chairy', 9, 35, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (261, 'pool_a', 'pool_tabley', 10, 35, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (262, 'pool_a', 'pool_chairy', 11, 35, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (263, 'pool_a', 'umbrellap', 15, 35, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (264, 'pool_a', 'umbrellao', 21, 35, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (265, 'pool_a', 'pool_chairy', 10, 36, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (266, 'pool_a', 'pool_chairp', 15, 36, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (267, 'pool_a', 'pool_chairo', 21, 36, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (268, 'pool_a', 'pool_chairo', 22, 36, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (269, 'pool_a', 'pool_chairp', 14, 37, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (270, 'pool_a', 'pool_tablep', 15, 37, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (271, 'pool_a', 'pool_chairp', 16, 37, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (272, 'pool_a', 'pool_tabo', 21, 37, 7, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (273, 'pool_a', 'pool_tabo2', 22, 37, 7, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (274, 'pool_a', 'pool_chairp', 14, 38, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (275, 'pool_a', 'pool_tablep2', 15, 38, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (276, 'pool_a', 'pool_chairp', 16, 38, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (277, 'pool_a', 'pool_chairo', 21, 38, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (278, 'pool_a', 'pool_chairo', 22, 38, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (279, 'pool_a', 'pool_chairp', 15, 39, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (280, 'pool_a', 'pool_chairg', 20, 41, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (281, 'pool_a', 'pool_chairg', 21, 41, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (282, 'pool_a', 'pool_tablg', 20, 42, 7, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (283, 'pool_a', 'pool_tablg2', 21, 42, 7, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (284, 'pool_a', 'umbrellag', 19, 43, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (285, 'pool_a', 'pool_chairg', 20, 43, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (286, 'pool_a', 'pool_chairg', 21, 43, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (287, 'pool_a', 'poolBooth', 17, 11, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'curtains1', NULL, NULL), + (288, 'pool_a', 'poolBooth', 17, 9, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'curtains2', NULL, NULL), + (289, 'pool_a', 'poolEnter', 20, 28, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '21 28 3 2', '22 28 7 6'), + (290, 'pool_a', 'poolExit', 21, 28, 3, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '20 28 7 6', '19 28 7 6'), + (291, 'pub_a', 'pub_fence', 8, 12, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (292, 'pub_a', 'pub_fence', 18, 11, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (293, 'pub_a', 'pub_fence', 8, 11, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (294, 'pub_a', 'pub_chair2', 6, 11, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (295, 'pub_a', 'pub_chair2', 5, 11, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (296, 'pub_a', 'pub_chair2', 3, 11, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (297, 'pub_a', 'pub_chair2', 2, 11, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (298, 'pub_a', 'pub_fence', 18, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (299, 'pub_a', 'pub_fence', 18, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (300, 'pub_a', 'bardesk3', 11, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (301, 'pub_a', 'bardesk4', 10, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (302, 'pub_a', 'pub_fence', 18, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (303, 'pub_a', 'pub_chair', 12, 8, 2, 6, 1.5, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (304, 'pub_a', 'bardesk1', 11, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (305, 'pub_a', 'pub_fence', 18, 7, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (306, 'pub_a', 'bardesk2', 11, 7, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (307, 'pub_a', 'pub_fence', 18, 6, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (308, 'pub_a', 'pub_chair', 12, 6, 2, 6, 1.5, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (309, 'pub_a', 'bardesk1', 11, 6, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (310, 'pub_a', 'pub_fence', 18, 5, 2, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (311, 'pub_a', 'bardesk2', 11, 5, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (312, 'pub_a', 'pub_chair', 12, 4, 2, 6, 1.5, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (313, 'pub_a', 'bardesk1', 11, 4, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (314, 'pub_a', 'bardesk2', 11, 3, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (315, 'pub_a', 'pub_chair', 12, 2, 2, 6, 1.5, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (316, 'pub_a', 'bardesk1', 11, 2, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (317, 'pub_a', 'pub_sofa', 21, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (318, 'pub_a', 'pub_sofa', 20, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (319, 'pub_a', 'pub_sofa2', 19, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (320, 'pub_a', 'pub_fence', 18, 12, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (321, 'pub_a', 'pub_fence', 8, 13, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (322, 'pub_a', 'pub_chair2', 9, 13, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (323, 'pub_a', 'pub_chair3', 14, 13, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (324, 'pub_a', 'pub_table2', 15, 13, 2, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (325, 'pub_a', 'pub_chair3', 16, 13, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (326, 'pub_a', 'pub_fence', 18, 13, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (327, 'pub_a', 'pub_fence', 8, 14, 3, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (328, 'pub_a', 'pub_chair2', 9, 14, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (329, 'pub_a', 'pub_chair3', 14, 14, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (330, 'pub_a', 'pub_table2', 15, 14, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (331, 'pub_a', 'pub_chair3', 16, 14, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (332, 'pub_a', 'pub_fence', 18, 14, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (333, 'pub_a', 'pub_table', 1, 15, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (334, 'pub_a', 'pub_fence', 5, 15, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (335, 'pub_a', 'pub_fence', 18, 15, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (336, 'pub_a', 'pub_sofa2', 1, 16, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (337, 'pub_a', 'pub_fence', 5, 16, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (338, 'pub_a', 'pub_fence', 18, 16, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (339, 'pub_a', 'pub_sofa', 1, 17, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (340, 'pub_a', 'pub_fence', 5, 17, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (341, 'pub_a', 'pub_chair3', 13, 17, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (342, 'pub_a', 'pub_chair3', 14, 17, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (343, 'pub_a', 'pub_chair3', 15, 17, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (344, 'pub_a', 'pub_chair3', 16, 17, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (345, 'pub_a', 'pub_fence', 18, 17, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (346, 'pub_a', 'pub_sofa', 1, 18, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (347, 'pub_a', 'pub_fence', 5, 18, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (348, 'pub_a', 'pub_table2', 13, 18, 2, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (349, 'pub_a', 'pub_table2', 14, 18, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (350, 'pub_a', 'pub_table2', 15, 18, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (351, 'pub_a', 'pub_table2', 16, 18, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (352, 'pub_a', 'pub_fence', 18, 18, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (353, 'pub_a', 'pub_sofa', 2, 19, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (354, 'pub_a', 'pub_sofa2', 3, 19, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (355, 'pub_a', 'pub_fence', 5, 19, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (356, 'pub_a', 'pub_chair3', 13, 19, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (357, 'pub_a', 'pub_chair3', 14, 19, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (358, 'pub_a', 'pub_chair3', 15, 19, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (359, 'pub_a', 'pub_chair3', 16, 19, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (360, 'pub_a', 'pub_fence', 18, 19, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (361, 'pub_a', 'pub_fence', 1, 20, 3, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (362, 'pub_a', 'pub_fence', 2, 20, 3, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (363, 'pub_a', 'pub_fence', 3, 20, 3, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (364, 'pub_a', 'pub_fence', 4, 20, 3, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (365, 'pub_a', 'pub_fence', 5, 20, 3, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (366, 'pub_a', 'pub_fence', 18, 20, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (367, 'pub_a', 'pub_sofa2', 7, 21, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (368, 'pub_a', 'pub_sofa', 8, 21, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (369, 'pub_a', 'pub_fence', 12, 21, 2, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (370, 'pub_a', 'pub_fence', 13, 21, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (371, 'pub_a', 'pub_fence', 14, 21, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (372, 'pub_a', 'pub_fence', 15, 21, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (373, 'pub_a', 'pub_fence', 16, 21, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (374, 'pub_a', 'pub_fence', 17, 21, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (375, 'pub_a', 'pub_fence', 18, 21, 2, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (376, 'pub_a', 'pub_sofa2', 6, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (377, 'pub_a', 'pub_table', 15, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (378, 'pub_a', 'pub_chair2', 16, 22, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (379, 'pub_a', 'pub_chair2', 17, 22, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (380, 'pub_a', 'pub_sofa', 6, 23, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (381, 'pub_a', 'pub_table2', 8, 23, 1, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (382, 'pub_a', 'pub_sofa', 6, 24, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (383, 'pub_a', 'pub_table2', 8, 24, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (384, 'pub_a', 'pub_sofa', 6, 25, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (385, 'pub_a', 'pub_table2', 8, 25, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (386, 'md_a', 'mntdwchair', 4, 3, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (387, 'md_a', 'mntdwchair', 5, 3, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (388, 'md_a', 'barmask', 2, 8, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (389, 'md_a', 'mntdwsofa2', 7, 8, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (390, 'md_a', 'mntdwtable2', 8, 8, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (391, 'md_a', 'mntdwsofa2', 9, 8, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (392, 'md_a', 'paalu5', 21, 8, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (393, 'md_a', 'barmask', 2, 9, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (394, 'md_a', 'mntdwsofa1', 7, 9, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (395, 'md_a', 'mntdwtable1', 8, 9, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (396, 'md_a', 'mntdwsofa1', 9, 9, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (397, 'md_a', 'paalu5', 21, 9, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (398, 'md_a', 'barmask', 2, 10, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (399, 'md_a', 'paalu5', 21, 10, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (400, 'md_a', 'barmask', 2, 11, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (401, 'md_a', 'paalu5', 21, 11, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (402, 'md_a', 'barmask', 2, 12, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (403, 'md_a', 'mntdwsofa2', 7, 12, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (404, 'md_a', 'mntdwsofa1', 8, 12, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (405, 'md_a', 'paalu3', 21, 12, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (406, 'md_a', 'barmask', 2, 13, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (407, 'md_a', 'mntdwtable2', 7, 13, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (408, 'md_a', 'mntdwtable1', 8, 13, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (409, 'md_a', 'paalu3', 21, 13, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (410, 'md_a', 'barmask', 2, 14, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (411, 'md_a', 'mntdwsofa2', 7, 14, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (412, 'md_a', 'mntdwsofa1', 8, 14, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (413, 'md_a', 'paalu3', 21, 14, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (414, 'md_a', 'barmask', 2, 15, 100000, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (415, 'md_a', 'paalu1', 21, 15, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (416, 'md_a', 'barmask', 2, 16, 100000, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (417, 'md_a', 'mntdwsofa2', 12, 16, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (418, 'md_a', 'mntdwsofa1', 13, 16, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (419, 'md_a', 'paalu1', 21, 16, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (420, 'md_a', 'mntdwchair', 3, 17, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (421, 'md_a', 'mntdwsofa2', 6, 17, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (422, 'md_a', 'mntdwtable2', 7, 17, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (423, 'md_a', 'mntdwsofa2', 8, 17, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (424, 'md_a', 'mntdwtable2', 12, 17, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (425, 'md_a', 'mntdwtable1', 13, 17, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (426, 'md_a', 'paalu1', 21, 17, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (427, 'md_a', 'mntdwchair', 3, 18, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (428, 'md_a', 'mntdwsofa1', 6, 18, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (429, 'md_a', 'mntdwtable1', 7, 18, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (430, 'md_a', 'mntdwsofa1', 8, 18, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (431, 'md_a', 'mntdwsofa2', 12, 18, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (432, 'md_a', 'mntdwsofa1', 13, 18, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (433, 'md_a', 'paalu1', 21, 18, 8, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (434, 'md_a', 'poolBooth', 8, 1, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'curtains1', NULL, NULL), + (435, 'md_a', 'poolBooth', 9, 1, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'curtains2', NULL, NULL), + (436, 'picnic', 'hedge7', 10, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (437, 'picnic', 'hedge7', 11, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (438, 'picnic', 'hedge7', 12, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (439, 'picnic', 'hedge7', 13, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (440, 'picnic', 'hedge8', 14, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (441, 'picnic', 'hedge2', 18, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (442, 'picnic', 'hedge7', 19, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (443, 'picnic', 'hedge7', 20, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (444, 'picnic', 'hedge7', 21, 7, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (445, 'picnic', 'hedge9', 14, 8, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (446, 'picnic', 'hedge9', 18, 8, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (447, 'picnic', 'hedge5', 3, 9, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (448, 'picnic', 'hedge9', 3, 10, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (449, 'picnic', 'picnic_ground', 21, 13, 2, 4, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (450, 'picnic', 'picnic_ground', 7, 14, 2, 4, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (451, 'picnic', 'picnic_ground', 19, 15, 2, 2, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (452, 'picnic', 'picnic_ground', 23, 15, 2, 6, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (453, 'picnic', 'picnic_ground', 5, 16, 2, 2, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (454, 'picnic', 'picnic_ground', 9, 16, 2, 6, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (455, 'picnic', 'picnic_cloth1', 19, 15, 0.001, 0, 0.001, 0, 0, 'can_stand_on_top', '', NULL, NULL), + (456, 'picnic', 'picnic_ground', 21, 17, 2, 0, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (457, 'picnic', 'picnic_ground', 7, 18, 2, 0, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (458, 'picnic', 'picnic_redbench2', 0, 19, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (459, 'picnic', 'picnic_redbench1', 0, 20, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (460, 'picnic', 'hedge6', 11, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (461, 'picnic', 'hedge7', 12, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (462, 'picnic', 'hedge7', 13, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (463, 'picnic', 'hedge3', 14, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (464, 'picnic', 'hedge4', 17, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (465, 'picnic', 'hedge7', 18, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (466, 'picnic', 'hedge7', 19, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (467, 'picnic', 'hedge8', 20, 20, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (468, 'picnic', 'hedge5', 11, 21, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (469, 'picnic', 'picnic_bench1', 12, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (470, 'picnic', 'picnic_bench2', 13, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (471, 'picnic', 'picnic_bench3', 14, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (472, 'picnic', 'picnic_bench1', 17, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (473, 'picnic', 'picnic_bench2', 18, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (474, 'picnic', 'picnic_bench3', 19, 21, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (475, 'picnic', 'hedge5', 20, 21, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (476, 'picnic', 'picnic_redbench2', 0, 22, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (477, 'picnic', 'hedge5', 11, 22, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (478, 'picnic', 'hedge5', 20, 22, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (479, 'picnic', 'picnic_ground', 25, 22, 2, 4, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (480, 'picnic', 'picnic_redbench1', 0, 23, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (481, 'picnic', 'hedge5', 11, 23, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (482, 'picnic', 'picnic_bench1', 12, 23, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (483, 'picnic', 'picnic_bench1', 19, 23, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (484, 'picnic', 'hedge5', 20, 23, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (485, 'picnic', 'picnic_dummychair1', 6, 24, 2, 4, 1, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (486, 'picnic', 'picnic_dummychair4', 7, 24, 2, 4, 4, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (487, 'picnic', 'picnic_dummychair6', 8, 24, 2, 4, 7, 1, 1, 'can_sit_on_top,invisible', '', NULL, NULL), + (488, 'picnic', 'hedge5', 11, 24, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (489, 'picnic', 'picnic_bench2', 12, 24, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (490, 'picnic', 'picnic_bench2', 19, 24, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (491, 'picnic', 'hedge5', 20, 24, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (492, 'picnic', 'picnic_ground', 23, 24, 2, 2, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (493, 'picnic', 'picnic_ground', 27, 24, 2, 6, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (494, 'picnic', 'picnic_stump', 5, 25, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (495, 'picnic', 'hedge5', 11, 25, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (496, 'picnic', 'picnic_bench2', 12, 25, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (497, 'picnic', 'picnic_bench2', 19, 25, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (498, 'picnic', 'hedge5', 20, 25, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (499, 'picnic', 'picnic_cloth2', 23, 24, 0.001, 0, 0.001, 0, 0, 'can_stand_on_top', '', NULL, NULL), + (500, 'picnic', 'picnic_stump', 7, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (501, 'picnic', 'hedge5', 11, 26, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (502, 'picnic', 'picnic_bench3', 12, 26, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (503, 'picnic', 'picnic_fireplace1', 14, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (504, 'picnic', 'picnic_fireplace2', 16, 26, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (505, 'picnic', 'picnic_bench3', 19, 26, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (506, 'picnic', 'hedge5', 20, 26, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (507, 'picnic', 'picnic_ground', 25, 26, 2, 0, 0.2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (508, 'picnic', 'hedge9', 11, 27, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (509, 'picnic', 'picnic_lemonade', 12, 27, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (510, 'picnic', 'hedge9', 20, 27, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (511, 'picnic', 'picnic_firewood2', 8, 29, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (512, 'picnic', 'picnic_redbench2', 0, 30, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (513, 'picnic', 'picnic_firewood1', 8, 30, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (514, 'picnic', 'picnic_redbench1', 0, 31, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (515, 'picnic', 'picnic_firewood1', 8, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (516, 'picnic', 'picnic_bench1', 12, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (517, 'picnic', 'picnic_bench2', 13, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (518, 'picnic', 'picnic_bench3', 14, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (519, 'picnic', 'picnic_bench1', 18, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (520, 'picnic', 'picnic_bench2', 19, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (521, 'picnic', 'picnic_bench3', 20, 31, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (522, 'picnic', 'picnic_carrot', 27, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (523, 'picnic', 'picnic_carrot', 28, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (524, 'picnic', 'picnic_carrot', 29, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (525, 'picnic', 'picnic_carrot', 30, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (526, 'picnic', 'picnic_carrot', 31, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (527, 'picnic', 'picnic_firewood1', 8, 32, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (528, 'picnic', 'picnic_table2', 12, 32, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (529, 'picnic', 'picnic_table', 14, 32, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (530, 'picnic', 'picnic_table2', 18, 32, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (531, 'picnic', 'picnic_table', 20, 32, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (532, 'picnic', 'hedge1', 3, 33, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (533, 'picnic', 'picnic_firewood1', 8, 33, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (534, 'picnic', 'picnic_bench1', 12, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (535, 'picnic', 'picnic_bench2', 13, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (536, 'picnic', 'picnic_bench3', 14, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (537, 'picnic', 'picnic_bench1', 18, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (538, 'picnic', 'picnic_bench2', 19, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (539, 'picnic', 'picnic_bench3', 20, 33, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (540, 'picnic', 'picnic_cabbage', 27, 33, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (541, 'picnic', 'picnic_cabbage', 28, 33, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (542, 'picnic', 'picnic_cabbage', 29, 33, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (543, 'picnic', 'hedge5', 3, 34, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (544, 'picnic', 'picnic_firewood1', 8, 34, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (545, 'picnic', 'hedge5', 3, 35, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (546, 'picnic', 'picnic_firewood1', 8, 35, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (547, 'picnic', 'hedge5', 3, 36, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (548, 'picnic', 'picnic_firewood1', 8, 36, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (549, 'picnic', 'picnic_firewood1', 8, 37, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (550, 'picnic', 'picnic_bench1', 12, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (551, 'picnic', 'picnic_bench2', 13, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (552, 'picnic', 'picnic_bench3', 14, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (553, 'picnic', 'picnic_bench1', 18, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (554, 'picnic', 'picnic_bench2', 19, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (555, 'picnic', 'picnic_bench3', 20, 37, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (556, 'picnic', 'picnic_firewood1', 8, 38, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (557, 'picnic', 'picnic_table2', 12, 38, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (558, 'picnic', 'picnic_table', 14, 38, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (559, 'picnic', 'picnic_table2', 18, 38, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (560, 'picnic', 'picnic_table', 20, 38, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (561, 'picnic', 'picnic_firewood3', 8, 39, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (562, 'picnic', 'picnic_bench1', 12, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (563, 'picnic', 'picnic_bench2', 13, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (564, 'picnic', 'picnic_bench3', 14, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (565, 'picnic', 'picnic_bench1', 18, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (566, 'picnic', 'picnic_bench2', 19, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (567, 'picnic', 'picnic_bench3', 20, 39, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (568, 'park_a', 'bench2', 8, 9, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (569, 'park_a', 'bench', 9, 9, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (570, 'park_a', 'bench2', 7, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (571, 'park_a', 'bench', 7, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (572, 'park_a', 'bench2', 35, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (573, 'park_a', 'bench2', 37, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (574, 'park_a', 'bench', 38, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (575, 'park_a', 'bench', 35, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (576, 'park_a', 'bench2', 27, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (577, 'park_a', 'bench', 28, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (578, 'park_a', 'bench2', 35, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (579, 'park_a', 'bench2', 25, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (580, 'park_a', 'bench', 35, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (581, 'park_a', 'bench', 25, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (582, 'park_a', 'bench2', 25, 29, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (583, 'park_a', 'bench', 26, 29, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (584, 'park_a', 'bench2', 23, 30, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (585, 'park_a', 'bench', 23, 31, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (586, 'park_b', 'cornerchair2', 0, 0, 0, 4, 1, 1, 1, 'solid', '', NULL, NULL), + (587, 'park_b', 'cornerchair1', 1, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (588, 'park_b', 'chair1', 2, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (589, 'park_b', 'chair1', 3, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (590, 'park_b', 'table1', 5, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (591, 'park_b', 'chair1line', 6, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (592, 'park_b', 'chair1', 7, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (593, 'park_b', 'chair1frontend', 8, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (594, 'park_b', 'bar_basic', 10, 0, 0, 4, 0.001, 1, 1, 'solid,private_furniture', '', NULL, NULL), + (595, 'park_b', 'cornerchair1', 0, 1, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (596, 'park_b', 'chair1', 0, 2, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (597, 'park_b', 'chair1', 0, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (598, 'park_b', 'chair1', 0, 4, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (599, 'park_b', 'chair1frontend', 0, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (600, 'park_b', 'table2', 3, 5, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (601, 'park_b', 'modchair', 5, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (602, 'park_b', 'table2', 8, 5, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (603, 'pool_b', 'umbrella2', 33, 2, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (604, 'pool_b', 'pool_2sofa2', 18, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (605, 'pool_b', 'pool_2sofa1', 19, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (606, 'pool_b', 'pool_2sofa2', 20, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (607, 'pool_b', 'pool_2sofa1', 21, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (608, 'pool_b', 'pool_2sofa2', 22, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (609, 'pool_b', 'pool_2sofa1', 23, 3, 8, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (610, 'pool_b', 'pool_chair2', 33, 3, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (611, 'pool_b', 'pool_chair2', 32, 4, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (612, 'pool_b', 'pool_table2', 33, 4, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (613, 'pool_b', 'pool_chair2', 34, 4, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (614, 'pool_b', 'pool_2sofa2', 16, 5, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (615, 'pool_b', 'pool_chair2', 33, 5, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (616, 'pool_b', 'pool_2sofa1', 16, 6, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (617, 'pool_b', 'pool_2sofa2', 16, 7, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (618, 'pool_b', 'pool_chair2', 35, 7, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (619, 'pool_b', 'flower1', 14, 8, 9, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (620, 'pool_b', 'pool_2sofa1', 16, 8, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (621, 'pool_b', 'umbrella2', 33, 8, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (622, 'pool_b', 'pool_chair2', 34, 8, 7, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (623, 'pool_b', 'pool_table2', 35, 8, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (624, 'pool_b', 'pool_chair2', 36, 8, 7, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (625, 'pool_b', 'pool_2sofa2', 14, 9, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (626, 'pool_b', 'pool_2sofa2', 16, 9, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (627, 'pool_b', 'pool_chair2', 35, 9, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (628, 'pool_b', 'pool_2sofa1', 14, 10, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (629, 'pool_b', 'pool_2sofa1', 16, 10, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (630, 'pool_b', 'pool_2sofa2', 14, 11, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (631, 'pool_b', 'pool_2sofa2', 16, 11, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (632, 'pool_b', 'pool_2sofa1', 14, 12, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (633, 'pool_b', 'pool_2sofa1', 16, 12, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (634, 'pool_b', 'flower2b', 3, 13, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (635, 'pool_b', 'flower2a', 4, 13, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (636, 'pool_b', 'pool_2sofa2', 14, 13, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (637, 'pool_b', 'pool_2sofa2', 16, 13, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (638, 'pool_b', 'pool_2sofa1', 14, 14, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (639, 'pool_b', 'pool_2sofa1', 16, 14, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (640, 'pool_b', 'poolLift', 26, 4, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'door', NULL, NULL), + (641, 'pool_b', 'poolEnter', 17, 21, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '17 22 3 4', '17 23 3 4'), + (642, 'pool_b', 'poolExit', 17, 22, 0, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '17 21 0 4', '17 20 0 4'), + (643, 'pool_b', 'poolExit', 20, 19, 0, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash1', '19 19 7 0', '18 19 7 0'), + (644, 'pool_b', 'poolEnter', 31, 10, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash2', '31 11 0 4', '31 12 0 4'), + (645, 'pool_b', 'poolExit', 31, 11, 0, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash2', '31 10 7 0', '31 9 7 0'), + (646, 'pool_b', 'queue_tile2', 21, 9, 7, 0, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (647, 'pool_b', 'queue_tile2', 21, 7, 7, 2, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (648, 'pool_b', 'queue_tile2', 23, 7, 7, 2, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (649, 'pool_b', 'queue_tile2', 26, 7, 7, 0, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (650, 'pool_b', 'queue_tile2', 25, 7, 7, 2, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (651, 'pool_b', 'queue_tile2', 22, 7, 7, 2, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (652, 'pool_b', 'queue_tile2', 26, 5, 7, 0, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (653, 'pool_b', 'queue_tile2', 21, 8, 7, 0, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (654, 'pool_b', 'queue_tile2', 26, 6, 7, 0, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (655, 'pool_b', 'queue_tile2', 24, 7, 7, 2, 0.001, 1, 1, 'extra_parameter,can_stand_on_top', '', NULL, NULL), + (656, 'ballroom', 'broom_bench1', 4, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (657, 'ballroom', 'broom_bench2', 5, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (658, 'ballroom', 'broom_bench3', 6, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (659, 'ballroom', 'broom_bench1', 7, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (660, 'ballroom', 'broom_bench2', 8, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (661, 'ballroom', 'broom_bench2', 9, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (662, 'ballroom', 'broom_bench3', 10, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (663, 'ballroom', 'broom_bench1', 11, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (664, 'ballroom', 'broom_bench2', 12, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (665, 'ballroom', 'broom_bench2', 13, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (666, 'ballroom', 'broom_bench2', 14, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (667, 'ballroom', 'broom_bench3', 15, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (668, 'ballroom', 'broom_bench1', 16, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (669, 'ballroom', 'broom_bench2', 17, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (670, 'ballroom', 'broom_bench2', 18, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (671, 'ballroom', 'broom_bench3', 19, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (672, 'ballroom', 'broom_bench1', 20, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (673, 'ballroom', 'broom_bench2', 21, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (674, 'ballroom', 'broom_bench3', 22, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (675, 'ballroom', 'broom_seatb1', 7, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (676, 'ballroom', 'broom_seatb2', 8, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (677, 'ballroom', 'broom_seatb3', 9, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (678, 'ballroom', 'broom_seatb4', 10, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (679, 'ballroom', 'broom_seat1', 16, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (680, 'ballroom', 'broom_seat2', 17, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (681, 'ballroom', 'broom_seat3', 18, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (682, 'ballroom', 'broom_seat4', 19, 3, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (683, 'ballroom', 'broom_seatb1', 7, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (684, 'ballroom', 'broom_seatb2', 8, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (685, 'ballroom', 'broom_seatb3', 9, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (686, 'ballroom', 'broom_seatb4', 10, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (687, 'ballroom', 'broom_seat1', 16, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (688, 'ballroom', 'broom_seat2', 17, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (689, 'ballroom', 'broom_seat3', 18, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (690, 'ballroom', 'broom_seat4', 19, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (691, 'ballroom', 'broom_chair', 19, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (692, 'ballroom', 'broom_chair', 20, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (693, 'ballroom', 'broom_chair', 21, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (694, 'ballroom', 'broom_table1', 19, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (695, 'ballroom', 'broom_table2', 20, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (696, 'ballroom', 'broom_table3', 21, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (697, 'ballroom', 'broom_chair', 19, 12, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (698, 'ballroom', 'broom_chair', 20, 12, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (699, 'ballroom', 'broom_chair', 21, 12, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (700, 'ballroom', 'broom_chair', 19, 15, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (701, 'ballroom', 'broom_chair', 20, 15, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (702, 'ballroom', 'broom_chair', 21, 15, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (703, 'ballroom', 'broom_table1', 19, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (704, 'ballroom', 'broom_table2', 20, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (705, 'ballroom', 'broom_table3', 21, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (706, 'ballroom', 'broom_chair', 19, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (707, 'ballroom', 'broom_chair', 20, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (708, 'ballroom', 'broom_chair', 21, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (709, 'ballroom', 'broom_stool', 9, 20, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (710, 'ballroom', 'broom_stool', 9, 21, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (711, 'ballroom', 'broom_stool', 9, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (712, 'ballroom', 'broom_stool', 9, 23, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (713, 'cafe_gold0', 'gold_chair', 5, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (714, 'cafe_gold0', 'gold_table_small1', 6, 3, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (715, 'cafe_gold0', 'gold_chair', 7, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (716, 'cafe_gold0', 'gold_bardesk5', 10, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (717, 'cafe_gold0', 'gold_bardesk4', 11, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (718, 'cafe_gold0', 'gold_bardesk3', 12, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (719, 'cafe_gold0', 'gold_bardesk2', 13, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (720, 'cafe_gold0', 'gold_bardesk1', 14, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (721, 'cafe_gold0', 'gold_chair', 5, 4, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (722, 'cafe_gold0', 'gold_table_small2', 6, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (723, 'cafe_gold0', 'gold_chair', 7, 4, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (724, 'cafe_gold0', 'gold_chair', 0, 5, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (725, 'cafe_gold0', 'gold_table_small1', 1, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (726, 'cafe_gold0', 'gold_chair', 2, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (727, 'cafe_gold0', 'gold_chair', 0, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (728, 'cafe_gold0', 'gold_table_small2', 1, 6, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (729, 'cafe_gold0', 'gold_chair', 2, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (730, 'cafe_gold0', 'gold_chair', 5, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (731, 'cafe_gold0', 'gold_table_small1', 6, 6, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (732, 'cafe_gold0', 'gold_chair', 7, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (733, 'cafe_gold0', 'gold_chair', 5, 7, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (734, 'cafe_gold0', 'gold_table_small2', 6, 7, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (735, 'cafe_gold0', 'gold_chair', 7, 7, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (736, 'cafe_gold0', 'gold_chair', 0, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (737, 'cafe_gold0', 'gold_table_small1', 1, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (738, 'cafe_gold0', 'gold_chair', 2, 8, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (739, 'cafe_gold0', 'gold_chair', 19, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (740, 'cafe_gold0', 'gold_chair', 20, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (741, 'cafe_gold0', 'gold_chair', 0, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (742, 'cafe_gold0', 'gold_table_small2', 1, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (743, 'cafe_gold0', 'gold_chair', 2, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (744, 'cafe_gold0', 'gold_chair', 14, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (745, 'cafe_gold0', 'gold_chair', 15, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (746, 'cafe_gold0', 'gold_table_small1', 19, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (747, 'cafe_gold0', 'gold_table_small2', 20, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (748, 'cafe_gold0', 'gold_table_small1', 14, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (749, 'cafe_gold0', 'gold_table_small2', 15, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (750, 'cafe_gold0', 'gold_plant', 0, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (751, 'cafe_gold0', 'gold_chair', 1, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (752, 'cafe_gold0', 'gold_chair', 2, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (753, 'cafe_gold0', 'gold_chair', 3, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (754, 'cafe_gold0', 'gold_chair', 19, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (755, 'cafe_gold0', 'gold_chair', 20, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (756, 'cafe_gold0', 'gold_plant', 0, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (757, 'cafe_gold0', 'gold_chair', 1, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (758, 'cafe_gold0', 'gold_chair', 2, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (759, 'cafe_gold0', 'gold_chair', 3, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (760, 'cafe_gold0', 'gold_chair', 14, 13, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (761, 'cafe_gold0', 'gold_chair', 15, 13, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (762, 'cafe_gold0', 'gold_chair', 0, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (763, 'cafe_gold0', 'gold_chair', 14, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (764, 'cafe_gold0', 'gold_chair', 15, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (765, 'cafe_gold0', 'gold_chair', 0, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (766, 'cafe_gold0', 'gold_table_small1', 2, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (767, 'cafe_gold0', 'gold_table_small2', 3, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (768, 'cafe_gold0', 'gold_chair', 0, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (769, 'cafe_gold0', 'gold_table_small1', 14, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (770, 'cafe_gold0', 'gold_table_small2', 15, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (771, 'cafe_gold0', 'gold_plant', 0, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (772, 'cafe_gold0', 'gold_chair', 1, 17, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (773, 'cafe_gold0', 'gold_chair', 2, 17, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (774, 'cafe_gold0', 'gold_chair', 3, 17, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (775, 'cafe_gold0', 'gold_plant', 0, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (776, 'cafe_gold0', 'gold_chair', 1, 18, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (777, 'cafe_gold0', 'gold_chair', 2, 18, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (778, 'cafe_gold0', 'gold_chair', 3, 18, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (779, 'cafe_gold0', 'gold_chair', 14, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (780, 'cafe_gold0', 'gold_chair', 15, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (781, 'cafe_gold0', 'gold_chair', 0, 19, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (782, 'cafe_gold0', 'gold_chair', 0, 20, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (783, 'cafe_gold0', 'gold_table_small1', 2, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (784, 'cafe_gold0', 'gold_table_small2', 3, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (785, 'cafe_gold0', 'gold_chair', 0, 21, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (786, 'cafe_gold0', 'gold_plant', 0, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (787, 'cafe_gold0', 'gold_chair', 1, 22, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (788, 'cafe_gold0', 'gold_chair', 2, 22, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (789, 'cafe_gold0', 'gold_chair', 3, 22, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (790, 'cafe_gold0', 'gold_plant', 0, 23, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (791, 'cafe_gold0', 'gold_chair', 1, 23, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (792, 'cafe_gold0', 'gold_chair', 2, 23, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (793, 'cafe_gold0', 'gold_chair', 3, 23, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (794, 'cafe_gold0', 'gold_chair', 0, 24, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (795, 'cafe_gold0', 'gold_chair', 0, 25, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (796, 'cafe_gold0', 'gold_table_small1', 2, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (797, 'cafe_gold0', 'gold_table_small2', 3, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (798, 'cafe_gold0', 'gold_chair', 0, 26, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (799, 'cafe_gold0', 'gold_chair', 1, 27, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (800, 'cafe_gold0', 'gold_chair', 2, 27, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (801, 'cafe_gold0', 'gold_chair', 3, 27, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (802, 'gate_park', 'gate_drumchair', 11, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (803, 'gate_park', 'gate_drumchair', 12, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (804, 'gate_park', 'gate_drumchair', 12, 16, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (805, 'gate_park', 'gate_drumchair', 16, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (806, 'gate_park', 'gate_drumchair', 17, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (807, 'gate_park', 'gate_drumchair', 17, 16, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (808, 'gate_park', 'gate_drumchair', 18, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (809, 'gate_park', 'gate_drumchair', 21, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (810, 'gate_park', 'gate_drumchair', 22, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (811, 'gate_park', 'gate_drumchair', 22, 16, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (812, 'gate_park', 'gate_drumchair', 23, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (813, 'gate_park', 'gate_drumchair', 29, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (814, 'gate_park', 'gate_drumchair', 29, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (815, 'gate_park', 'gate_drumchair', 30, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (816, 'gate_park', 'gate_drumchair', 30, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (817, 'gate_park', 'gate_lantern', 26, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (818, 'gate_park', 'gate_lantern', 8, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (819, 'gate_park', 'gate_rockchair1', 10, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (820, 'gate_park', 'gate_rockchair1', 10, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (821, 'gate_park', 'gate_rockchair1', 14, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (822, 'gate_park', 'gate_rockchair1', 20, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (823, 'gate_park', 'gate_rockchair1', 23, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (824, 'gate_park', 'gate_rockchair2', 10, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (825, 'gate_park', 'gate_rockchair2', 14, 20, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (826, 'gate_park', 'gate_rockchair2', 20, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (827, 'gate_park', 'gate_rockchair2', 22, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (828, 'gate_park', 'gate_rockchair3', 10, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (829, 'gate_park', 'gate_rockchair3', 14, 19, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (830, 'gate_park', 'gate_rockchair3', 20, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (831, 'gate_park', 'gate_rockchair3', 21, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (832, 'gate_park', 'gate_table', 12, 15, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (833, 'gate_park', 'gate_table', 17, 15, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (834, 'gate_park', 'gate_table', 22, 15, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (835, 'gate_park', 'gate_table1', 15, 5, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (836, 'gate_park', 'gate_table1', 19, 5, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (837, 'gate_park', 'gate_table1', 2, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (838, 'gate_park', 'gate_table1', 2, 11, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (839, 'gate_park', 'gate_table1', 2, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (840, 'gate_park', 'gate_table1', 2, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (841, 'gate_park', 'gate_table2', 15, 6, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (842, 'gate_park', 'gate_table2', 19, 6, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (843, 'gate_park', 'gate_table2', 3, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (844, 'gate_park', 'gate_table2', 3, 11, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (845, 'gate_park', 'gate_table2', 3, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (846, 'gate_park', 'gate_table2', 3, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (847, 'gate_park', 'gate_table3', 15, 7, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (848, 'gate_park', 'gate_table3', 19, 7, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (849, 'gate_park', 'gate_table3', 4, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (850, 'gate_park', 'gate_table3', 4, 11, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (851, 'gate_park', 'gate_table3', 4, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (852, 'gate_park', 'gate_table3', 4, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (853, 'gate_park', 'gate_talltree', 10, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (854, 'gate_park', 'gate_talltree', 10, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (855, 'gate_park', 'gate_trashcan', 20, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (856, 'gate_park_2', 'gate_table1', 12, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (857, 'gate_park_2', 'gate_table2', 13, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (858, 'gate_park_2', 'gate_table3', 14, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (859, 'gate_park_2', 'gate_table1', 16, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (860, 'gate_park_2', 'gate_table3', 17, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (861, 'gate_park_2', 'gate_table1', 19, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (862, 'gate_park_2', 'gate_table2', 20, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (863, 'gate_park_2', 'gate_table3', 21, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (864, 'gate_park_2', 'gate_talltree', 9, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (865, 'gate_park_2', 'gate_drumchair', 14, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (866, 'gate_park_2', 'gate_drumchair', 19, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (867, 'gate_park_2', 'gate_talltree', 9, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (868, 'gate_park_2', 'gate_drumchair', 13, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (869, 'gate_park_2', 'gate_table', 14, 9, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (870, 'gate_park_2', 'gate_drumchair', 15, 9, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (871, 'gate_park_2', 'gate_drumchair', 18, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (872, 'gate_park_2', 'gate_table', 19, 9, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (873, 'gate_park_2', 'gate_drumchair', 20, 9, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (874, 'gate_park_2', 'gate_talltree', 6, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (875, 'gate_park_2', 'gate_talltree', 8, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (876, 'gate_park_2', 'gate_drumchair', 14, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (877, 'gate_park_2', 'gate_drumchair', 19, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (878, 'gate_park_2', 'gate_rockchair3', 6, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (879, 'gate_park_2', 'gate_rockchair2', 8, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (880, 'gate_park_2', 'gate_drumchair', 1, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (881, 'gate_park_2', 'gate_drumchair', 2, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (882, 'gate_park_2', 'gate_rockchair1', 6, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (883, 'gate_park_2', 'gate_talltree', 27, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (884, 'gate_park_2', 'gate_talltree', 30, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (885, 'gate_park_2', 'gate_drumchair', 1, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (886, 'gate_park_2', 'gate_drumchair', 2, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (887, 'gate_park_2', 'gate_rockchair1', 6, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (888, 'gate_park_2', 'gate_trashcan', 27, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (889, 'gate_park_2', 'gate_rockchair2', 6, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (890, 'gate_park_2', 'gate_rockchair3', 8, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (891, 'gate_park_2', 'gate_table1', 31, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (892, 'gate_park_2', 'gate_table3', 32, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (893, 'gate_park_2', 'gate_drumchair', 14, 17, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (894, 'gate_park_2', 'gate_drumchair', 19, 17, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (895, 'gate_park_2', 'gate_drumchair', 13, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (896, 'gate_park_2', 'gate_table', 14, 18, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (897, 'gate_park_2', 'gate_drumchair', 15, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (898, 'gate_park_2', 'gate_drumchair', 18, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (899, 'gate_park_2', 'gate_table', 19, 18, 0, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (900, 'gate_park_2', 'gate_drumchair', 20, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (901, 'gate_park_2', 'gate_drumchair', 14, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (902, 'gate_park_2', 'gate_drumchair', 19, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (903, 'gate_park_2', 'gate_table1', 31, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (904, 'gate_park_2', 'gate_table3', 32, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (905, 'gate_park_2', 'gate_lantern', 29, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (906, 'gate_park_2', 'gate_trashcan', 8, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (907, 'gate_park_2', 'gate_table1', 23, 24, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (908, 'gate_park_2', 'gate_table1', 26, 24, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (909, 'gate_park_2', 'gate_table3', 23, 25, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (910, 'gate_park_2', 'gate_table3', 26, 25, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (911, 'sun_terrace', 'sun_chair', 16, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (912, 'sun_terrace', 'sun_chair', 20, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (913, 'sun_terrace', 'sun_chair', 16, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (914, 'sun_terrace', 'sun_chair', 20, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (915, 'sun_terrace', 'blusun_chair', 10, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (916, 'sun_terrace', 'sun_chair', 16, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (917, 'sun_terrace', 'sun_chair', 20, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (918, 'sun_terrace', 'sun_table', 10, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (919, 'sun_terrace', 'sun_chair', 20, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (920, 'sun_terrace', 'blusun_chair', 10, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (921, 'sun_terrace', 'sun_chair', 1, 18, 8, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (922, 'sun_terrace', 'sun_chair', 4, 18, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (923, 'sun_terrace', 'blusun_chair', 11, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (924, 'sun_terrace', 'blusun_chair', 10, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (925, 'sun_terrace', 'sun_table', 11, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (926, 'sun_terrace', 'blusun_chair', 12, 19, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (927, 'sun_terrace', 'sun_chair', 18, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (928, 'sun_terrace', 'sun_chair', 22, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (929, 'sun_terrace', 'blusun_chair', 11, 20, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (930, 'sun_terrace', 'sun_chair', 18, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (931, 'sun_terrace', 'sun_chair', 22, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (932, 'sun_terrace', 'sun_chair', 4, 21, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (933, 'sun_terrace', 'sun_chair', 6, 21, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (934, 'sun_terrace', 'sun_chair', 18, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (935, 'sun_terrace', 'sun_chair', 22, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (936, 'sun_terrace', 'blusun_chair', 2, 22, 9, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (937, 'sun_terrace', 'sun_chair', 22, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (938, 'sun_terrace', 'blusun_chair', 1, 23, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (939, 'sun_terrace', 'sun_table2', 2, 23, 9, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (940, 'sun_terrace', 'blusun_chair', 2, 24, 9, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (941, 'sun_terrace', 'sun_chair', 11, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (942, 'sun_terrace', 'sun_chair', 12, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (943, 'sun_terrace', 'sun_chair', 13, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (944, 'sun_terrace', 'sun_table', 14, 25, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (945, 'sun_terrace', 'sun_chair', 15, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (946, 'sun_terrace', 'sun_chair', 16, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (947, 'sun_terrace', 'sun_chair', 17, 25, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (948, 'sun_terrace', 'sun_chair', 13, 29, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (949, 'sun_terrace', 'sun_chair', 15, 29, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (950, 'sun_terrace', 'sun_chair', 17, 29, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (951, 'sun_terrace', 'sun_chair', 13, 30, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (952, 'sun_terrace', 'sun_chair', 15, 30, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (953, 'sun_terrace', 'sun_chair', 17, 30, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (954, 'space_cafe', 'bigtablea', 1, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (955, 'space_cafe', 'bigtablea', 7, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (956, 'space_cafe', 'bigtableb', 0, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (957, 'space_cafe', 'bigtableb', 6, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (958, 'space_cafe', 'bigtablec', 1, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (959, 'space_cafe', 'bigtablec', 7, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (960, 'space_cafe', 'bigtabled', 0, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (961, 'space_cafe', 'bigtabled', 6, 9, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (962, 'space_cafe', 'bluesofaa', 1, 11, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (963, 'space_cafe', 'bluesofaa', 1, 8, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (964, 'space_cafe', 'bluesofaa', 14, 22, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (965, 'space_cafe', 'bluesofaa', 14, 24, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (966, 'space_cafe', 'bluesofaa', 2, 10, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (967, 'space_cafe', 'bluesofab', 0, 11, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (968, 'space_cafe', 'bluesofab', 0, 8, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (969, 'space_cafe', 'bluesofab', 13, 22, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (970, 'space_cafe', 'bluesofab', 13, 24, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (971, 'space_cafe', 'bluesofab', 2, 9, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (972, 'space_cafe', 'midtablea', 14, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (973, 'space_cafe', 'midtablea', 19, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (974, 'space_cafe', 'midtableb', 13, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (975, 'space_cafe', 'midtableb', 19, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (976, 'space_cafe', 'redsofaa', 10, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (977, 'space_cafe', 'redsofaa', 10, 25, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (978, 'space_cafe', 'redsofaa', 18, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (979, 'space_cafe', 'redsofaa', 20, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (980, 'space_cafe', 'redsofaa', 5, 10, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (981, 'space_cafe', 'redsofaa', 7, 11, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (982, 'space_cafe', 'redsofaa', 7, 8, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (983, 'space_cafe', 'redsofab', 10, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (984, 'space_cafe', 'redsofab', 10, 24, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (985, 'space_cafe', 'redsofab', 18, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (986, 'space_cafe', 'redsofab', 20, 13, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (987, 'space_cafe', 'redsofab', 5, 9, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (988, 'space_cafe', 'redsofab', 6, 11, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (989, 'space_cafe', 'redsofab', 6, 8, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (990, 'space_cafe', 'smalltable', 10, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (991, 'space_cafe', 'smalltable', 17, 6, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (992, 'space_cafe', 'smalltable', 19, 2, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (993, 'space_cafe', 'smalltable', 21, 6, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (994, 'space_cafe', 'smalltable', 23, 2, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (995, 'space_cafe', 'smalltable', 3, 16, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (996, 'space_cafe', 'space_stool', 19, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (997, 'space_cafe', 'space_stool', 17, 5, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (998, 'space_cafe', 'space_stool', 17, 7, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (999, 'space_cafe', 'space_stool', 18, 2, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1000, 'space_cafe', 'space_stool', 18, 6, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1001, 'space_cafe', 'space_stool', 19, 3, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1002, 'space_cafe', 'space_stool', 20, 2, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1003, 'space_cafe', 'space_stool', 20, 6, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1004, 'space_cafe', 'space_stool', 21, 5, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1005, 'space_cafe', 'space_stool', 21, 7, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1006, 'space_cafe', 'space_stool', 22, 2, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1007, 'space_cafe', 'space_stool', 22, 6, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1008, 'space_cafe', 'space_stool', 23, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1009, 'space_cafe', 'space_stool', 23, 3, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1010, 'space_cafe', 'space_stool', 3, 15, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1011, 'space_cafe', 'space_stool', 3, 17, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1012, 'beauty_salon0', 'directorchair', 16, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1013, 'beauty_salon0', 'directorchair', 16, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1014, 'beauty_salon0', 'directorchair', 18, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1015, 'beauty_salon0', 'directorchair', 9, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1016, 'beauty_salon0', 'longchair1', 12, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1017, 'beauty_salon0', 'longchair1', 13, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1018, 'beauty_salon0', 'longchair1', 13, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1019, 'beauty_salon0', 'longchair1', 17, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1020, 'beauty_salon0', 'longchair2', 12, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1021, 'beauty_salon0', 'longchair2', 12, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1022, 'beauty_salon0', 'longchair2', 14, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1023, 'beauty_salon0', 'longchair2', 14, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1024, 'beauty_salon0', 'longchair2', 15, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1025, 'beauty_salon0', 'longchair2', 15, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1026, 'beauty_salon0', 'longchair2', 17, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1027, 'beauty_salon0', 'longchair2', 17, 19, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1028, 'beauty_salon0', 'longchair3', 12, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1029, 'beauty_salon0', 'longchair3', 16, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1030, 'beauty_salon0', 'longchair3', 16, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1031, 'beauty_salon0', 'longchair3', 17, 20, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1032, 'beauty_salon0', 'pinkchair', 11, 6, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1033, 'beauty_salon0', 'pinkchair', 11, 7, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1034, 'beauty_salon0', 'pinkchair', 3, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1035, 'beauty_salon0', 'pinkchair', 4, 11, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1036, 'beauty_salon0', 'pinkchair', 6, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1037, 'beauty_salon0', 'pinkchair', 7, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1038, 'beauty_salon0', 'pinkchair', 8, 10, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1039, 'beauty_salon0', 'table2', 2, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1040, 'beauty_salon0', 'table2', 2, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1041, 'beauty_salon0', 'table2', 2, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1042, 'beauty_salon0', 'table2', 2, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1043, 'beauty_salon0', 'table2', 8, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1044, 'beauty_salon0', 'table2', 8, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1045, 'beauty_salon0', 'table2', 8, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1046, 'beauty_salon0', 'table2', 8, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1047, 'chill', 'jap_chair', 3, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1048, 'chill', 'jap_chair', 3, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1049, 'chill', 'jap_chair', 3, 29, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1050, 'chill', 'jap_chair', 4, 20, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1051, 'chill', 'jap_chair', 4, 21, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1052, 'chill', 'jap_chair', 4, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1053, 'chill', 'jap_chair', 4, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1054, 'chill', 'jap_chair', 4, 29, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1055, 'chill', 'jap_chair', 5, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1056, 'chill', 'jap_chair', 5, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1057, 'chill', 'jap_chair', 5, 30, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1058, 'chill', 'jap_chair', 6, 20, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1059, 'chill', 'jap_chair', 6, 21, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1060, 'chill', 'jap_stool', 13, 19, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1061, 'chill', 'jap_stool', 16, 24, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1062, 'chill', 'jap_stool', 16, 25, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1063, 'chill', 'jap_stool', 16, 26, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1064, 'chill', 'jap_table', 3, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1065, 'chill', 'jap_table', 3, 30, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1066, 'chill', 'jap_table', 5, 20, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1067, 'chill', 'jap_table2', 4, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1068, 'chill', 'jap_table3', 4, 30, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1069, 'chill', 'jap_table3', 5, 21, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1070, 'chill', 'jap_table3', 5, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1071, 'chill', 'stone', 11, 3, 0, 4, 2, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1072, 'chill', 'stone', 13, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1073, 'chill', 'stone', 13, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1074, 'chill', 'stone', 13, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1075, 'chill', 'stone', 14, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1076, 'chill', 'stone', 15, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1077, 'chill', 'stone', 17, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1078, 'chill', 'stone', 8, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1079, 'chill', 'stone', 9, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1080, 'dusty_lounge', 'dustylamp', 11, 14, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1081, 'dusty_lounge', 'dustylamp', 11, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1082, 'dusty_lounge', 'dustylamp', 20, 6, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1083, 'dusty_lounge', 'dustylamp', 24, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1084, 'dusty_lounge', 'dustylamp', 28, 6, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1085, 'dusty_lounge', 'greenchair1', 11, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1086, 'dusty_lounge', 'greenchair1', 11, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1087, 'dusty_lounge', 'greenchair1', 12, 24, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1088, 'dusty_lounge', 'greenchair1', 14, 24, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1089, 'dusty_lounge', 'greenchair1', 4, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1090, 'dusty_lounge', 'greenchair1', 4, 15, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1091, 'dusty_lounge', 'greenchair1', 4, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1092, 'dusty_lounge', 'greenchair1', 4, 9, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1093, 'dusty_lounge', 'greenchair1', 9, 4, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1094, 'dusty_lounge', 'greenchair1', 9, 6, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1095, 'dusty_lounge', 'greenchair2', 11, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1096, 'dusty_lounge', 'greenchair2', 11, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1097, 'dusty_lounge', 'greenchair2', 12, 23, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1098, 'dusty_lounge', 'greenchair2', 14, 23, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1099, 'dusty_lounge', 'greenchair2', 3, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1100, 'dusty_lounge', 'greenchair2', 3, 15, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1101, 'dusty_lounge', 'greenchair2', 3, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1102, 'dusty_lounge', 'greenchair2', 3, 9, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1103, 'dusty_lounge', 'greenchair2', 8, 4, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1104, 'dusty_lounge', 'greenchair2', 8, 6, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1105, 'dusty_lounge', 'yellowchair', 21, 10, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1106, 'dusty_lounge', 'yellowchair', 22, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1107, 'dusty_lounge', 'yellowchair', 23, 10, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1108, 'dusty_lounge', 'yellowchair', 24, 15, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1109, 'dusty_lounge', 'yellowchair', 24, 19, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1110, 'dusty_lounge', 'yellowchair', 26, 10, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1111, 'dusty_lounge', 'yellowchair', 26, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1112, 'dusty_lounge', 'yellowchair', 28, 10, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1113, 'cr_staff', 'crs_lamptable', 7, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1114, 'cr_staff', 'tvtable', 14, 1, 0, 2, 0.001, 1, 2, 'solid', '', NULL, NULL), + (1115, 'cr_staff', 'crs_trash', 0, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1116, 'cr_staff', 'crs_sofag_start', 2, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1117, 'cr_staff', 'crs_sofag_mid', 3, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1118, 'cr_staff', 'crs_sofag_mid', 4, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1119, 'cr_staff', 'crs_sofag_end', 5, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1120, 'cr_staff', 'crs_roundwoodtable', 12, 4, 0, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1121, 'cr_staff', 'crs_woodchair', 15, 4, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1122, 'cr_staff', 'crs_woodchair', 10, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1123, 'cr_staff', 'crs_woodchair', 15, 6, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1124, 'cr_staff', 'crs_woodchair', 7, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1125, 'cr_staff', 'crs_woodchair', 13, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1126, 'cr_staff', 'crs_woodchair', 15, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1127, 'cr_staff', 'crs_woodchair', 5, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1128, 'cr_staff', 'crs_fridge', 0, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1129, 'cr_staff', 'ctable2', 7, 10, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1130, 'cr_staff', 'crs_woodtable_end', 13, 10, 0, 0, 0.001, 1, 2, 'extra_parameter', '', NULL, NULL), + (1131, 'cr_staff', 'crs_woodtable_start', 14, 10, 0, 0, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1132, 'cr_staff', 'crs_woodchair', 5, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1133, 'cr_staff', 'crs_box', 1, 12, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1134, 'cr_staff', 'crs_box', 1, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1135, 'cr_staff', 'ctable1', 7, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1136, 'cr_staff', 'crs_woodchair', 13, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1137, 'cr_staff', 'crs_woodchair', 15, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1138, 'cr_staff', 'crs_box', 1, 15, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1139, 'cr_staff', 'crs_boxopen', 1, 17, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1140, 'cr_staff', 'crs_stomp', 15, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1141, 'cr_staff', 'crs_box', 1, 18, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1142, 'cr_staff', 'crs_stomp', 15, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1143, 'cr_staff', 'crs_boxtwo', 1, 19, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1144, 'rooftop', 'rooftop_emptytable', 0, 10, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1145, 'rooftop', 'rooftop_flatcurb', 1, 13, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1146, 'rooftop', 'rooftop_flatcurb', 13, 13, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1147, 'rooftop', 'rooftop_flatcurb', 16, 1, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1148, 'rooftop', 'rooftop_flatcurb', 16, 4, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1149, 'rooftop', 'rooftop_flatcurb', 6, 13, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1150, 'rooftop', 'rooftop_flatcurb', 8, 13, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1151, 'rooftop', 'rooftop_flatcurb2', 17, 1, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1152, 'rooftop', 'rooftop_flatcurb2', 17, 4, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1153, 'rooftop', 'rooftop_flatcurb3', 1, 14, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1154, 'rooftop', 'rooftop_flatcurb3', 1, 15, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1155, 'rooftop', 'rooftop_flatcurb3', 1, 16, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1156, 'rooftop', 'rooftop_flatcurb3', 10, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1157, 'rooftop', 'rooftop_flatcurb3', 11, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1158, 'rooftop', 'rooftop_flatcurb3', 12, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1159, 'rooftop', 'rooftop_flatcurb3', 13, 14, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1160, 'rooftop', 'rooftop_flatcurb3', 13, 15, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1161, 'rooftop', 'rooftop_flatcurb3', 13, 16, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1162, 'rooftop', 'rooftop_flatcurb3', 2, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1163, 'rooftop', 'rooftop_flatcurb3', 3, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1164, 'rooftop', 'rooftop_flatcurb3', 4, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1165, 'rooftop', 'rooftop_flatcurb3', 5, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1166, 'rooftop', 'rooftop_flatcurb3', 6, 14, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1167, 'rooftop', 'rooftop_flatcurb3', 6, 15, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1168, 'rooftop', 'rooftop_flatcurb3', 6, 16, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1169, 'rooftop', 'rooftop_flatcurb3', 8, 14, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1170, 'rooftop', 'rooftop_flatcurb3', 8, 15, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1171, 'rooftop', 'rooftop_flatcurb3', 8, 16, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1172, 'rooftop', 'rooftop_flatcurb3', 9, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1173, 'rooftop', 'rooftop_flatcurb4', 1, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1174, 'rooftop', 'rooftop_flatcurb4', 8, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1175, 'rooftop', 'rooftop_flatcurb5', 13, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1176, 'rooftop', 'rooftop_flatcurb5', 6, 17, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1177, 'rooftop', 'rooftop_minichair', 0, 1, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1178, 'rooftop', 'rooftop_minichair', 0, 11, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1179, 'rooftop', 'rooftop_minichair', 0, 3, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1180, 'rooftop', 'rooftop_minichair', 0, 9, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1181, 'rooftop', 'rooftop_minichair', 1, 2, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1182, 'rooftop', 'rooftop_minichair', 1, 7, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1183, 'rooftop', 'rooftop_minichair', 2, 6, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1184, 'rooftop', 'rooftop_minichair', 2, 8, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1185, 'rooftop', 'rooftop_minichair', 3, 7, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1186, 'rooftop', 'rooftop_rodtable', 0, 2, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1187, 'rooftop', 'rooftop_rodtable', 2, 7, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1188, 'rooftop_2', 'rooftop_bigchair', 8, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1189, 'rooftop_2', 'rooftop_bigtable', 8, 1, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1190, 'rooftop_2', 'rooftop_sofab', 0, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1191, 'rooftop_2', 'rooftop_sofa', 1, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1192, 'rooftop_2', 'rooftop_bigchair', 8, 2, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1193, 'rooftop_2', 'rooftop_bigchair', 8, 3, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1194, 'rooftop_2', 'rooftop_bigtable', 8, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1195, 'rooftop_2', 'rooftop_sofab', 0, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1196, 'rooftop_2', 'rooftop_sofa', 1, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1197, 'rooftop_2', 'rooftop_bigchair', 8, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1198, 'rooftop_2', 'rooftop_sofab', 0, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1199, 'rooftop_2', 'rooftop_sofa', 1, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1200, 'rooftop_2', 'rooftop_sofab', 7, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1201, 'rooftop_2', 'rooftop_sofa', 8, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1202, 'rooftop_2', 'rooftop_sofab', 0, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1203, 'rooftop_2', 'rooftop_sofa', 1, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1204, 'rooftop_2', 'rooftop_sofab', 7, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1205, 'rooftop_2', 'rooftop_sofa', 8, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1206, 'tearoom', 'chinastoolgreen', 0, 19, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1207, 'tearoom', 'chinastoolgreen', 0, 20, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1208, 'tearoom', 'chinastoolred', 10, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1209, 'tearoom', 'chinastoolred', 11, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1210, 'tearoom', 'chinastoolred', 8, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1211, 'tearoom', 'chinastoolred', 9, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1212, 'tearoom', 'hardwoodsofa1', 13, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1213, 'tearoom', 'hardwoodsofa1', 18, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1214, 'tearoom', 'hardwoodsofa2', 14, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1215, 'tearoom', 'hardwoodsofa2', 19, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1216, 'tearoom', 'hardwoodsofa3', 15, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1217, 'tearoom', 'hardwoodsofa3', 20, 1, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1218, 'tearoom', 'teabamboo', 16, 1, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1219, 'tearoom', 'teasmalltable1', 13, 3, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1220, 'tearoom', 'teasmalltable1', 18, 3, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1221, 'tearoom', 'teasmalltable2', 15, 3, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1222, 'tearoom', 'teasmalltable2', 20, 3, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1223, 'tearoom', 'teastool', 16, 9, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1224, 'tearoom', 'teastool', 17, 9, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1225, 'tearoom', 'teastool', 2, 12, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1226, 'tearoom', 'teastool', 2, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1227, 'tearoom', 'teastool', 3, 12, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1228, 'tearoom', 'teastool', 3, 6, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1229, 'tearoom', 'teastool2', 16, 12, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1230, 'tearoom', 'teastool2', 17, 12, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1231, 'tearoom', 'teastool2', 2, 15, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1232, 'tearoom', 'teastool2', 2, 9, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1233, 'tearoom', 'teastool2', 3, 15, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1234, 'tearoom', 'teastool2', 3, 9, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1235, 'tearoom', 'teatable1', 16, 11, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1236, 'tearoom', 'teatable1', 2, 14, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1237, 'tearoom', 'teatable1', 2, 8, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1238, 'tearoom', 'teatable2', 17, 11, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1239, 'tearoom', 'teatable2', 3, 14, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1240, 'tearoom', 'teatable2', 3, 8, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1241, 'tearoom', 'teavase', 0, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1242, 'tearoom', 'teavase', 0, 21, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1243, 'cafe_ole', 'cafe_table_largeb', 15, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1244, 'cafe_ole', 'cafe_chair', 14, 1, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1245, 'cafe_ole', 'cafe_chair', 17, 1, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1246, 'cafe_ole', 'cafe_chair', 14, 2, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1247, 'cafe_ole', 'cafe_table_largea', 15, 2, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1248, 'cafe_ole', 'cafe_chair', 17, 2, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1249, 'cafe_ole', 'plant_yucca', 13, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1250, 'cafe_ole', 'cafe_desk5', 4, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1251, 'cafe_ole', 'plant_ftree', 5, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1252, 'cafe_ole', 'cafe_chair', 8, 5, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1253, 'cafe_ole', 'cafe_chair', 11, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1254, 'cafe_ole', 'cafe_desk4', 4, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1255, 'cafe_ole', 'cafe_barchair', 5, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1256, 'cafe_ole', 'cafe_chair', 8, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1257, 'cafe_ole', 'cafe_table_mid', 10, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1258, 'cafe_ole', 'cafe_chair', 11, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1259, 'cafe_ole', 'cafe_desk4', 4, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1260, 'cafe_ole', 'cafe_barchair', 5, 7, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1261, 'cafe_ole', 'cafe_desk4', 4, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1262, 'cafe_ole', 'cafe_desk4', 4, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1263, 'cafe_ole', 'cafe_desk4', 4, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1264, 'cafe_ole', 'cafe_chair', 12, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1265, 'cafe_ole', 'cafe_table_small', 13, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1266, 'cafe_ole', 'cafe_chair', 14, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1267, 'cafe_ole', 'roommatic', 0, 11, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1268, 'cafe_ole', 'roommatic', 1, 11, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1269, 'cafe_ole', 'roommatic', 2, 11, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1270, 'cafe_ole', 'cafe_desk1', 3, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1271, 'cafe_ole', 'cafe_desk3', 4, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1272, 'cafe_ole', 'cafe_fence4', 9, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1273, 'cafe_ole', 'cafe_fence3', 10, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1274, 'cafe_ole', 'cafe_fence2', 11, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1275, 'cafe_ole', 'cafe_fence3', 12, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1276, 'cafe_ole', 'cafe_fence2', 13, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1277, 'cafe_ole', 'cafe_fence3', 14, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1278, 'cafe_ole', 'cafe_fence1', 15, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1279, 'cafe_ole', 'cafe_barchair', 0, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1280, 'cafe_ole', 'cafe_barchair', 1, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1281, 'cafe_ole', 'cafe_barchair', 2, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1282, 'cafe_ole', 'cafe_chair', 8, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1283, 'cafe_ole', 'cafe_fence3', 9, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1284, 'cafe_ole', 'plant_yucca', 10, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1285, 'cafe_ole', 'cafe_table_small', 8, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1286, 'cafe_ole', 'cafe_fence2', 9, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1287, 'cafe_ole', 'cafe_chair', 8, 14, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1288, 'cafe_ole', 'cafe_fence3', 9, 14, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1289, 'cafe_ole', 'cafe_chair', 12, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1290, 'cafe_ole', 'cafe_pianoc', 0, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1291, 'cafe_ole', 'cafe_fence2', 9, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1292, 'cafe_ole', 'cafe_table_largeb', 12, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1293, 'cafe_ole', 'cafe_pianob', 0, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1294, 'cafe_ole', 'cafe_barchair', 1, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1295, 'cafe_ole', 'cafe_table_largeb', 4, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1296, 'cafe_ole', 'cafe_fence3', 9, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1297, 'cafe_ole', 'cafe_chair', 11, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1298, 'cafe_ole', 'cafe_chair', 14, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1299, 'cafe_ole', 'cafe_pianoa', 0, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1300, 'cafe_ole', 'cafe_chair', 3, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1301, 'cafe_ole', 'cafe_chair', 6, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1302, 'cafe_ole', 'cafe_fence2', 9, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1303, 'cafe_ole', 'cafe_chair', 11, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1304, 'cafe_ole', 'cafe_table_largea', 12, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1305, 'cafe_ole', 'cafe_chair', 14, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1306, 'cafe_ole', 'cafe_chair', 3, 18, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1307, 'cafe_ole', 'cafe_table_largea', 4, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1308, 'cafe_ole', 'cafe_chair', 6, 18, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1309, 'cafe_ole', 'cafe_fence3', 9, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1310, 'cafe_ole', 'plant_ftree', 0, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1311, 'cafe_ole', 'cafe_fence2', 9, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1312, 'cafe_ole', 'cafe_chair', 12, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1313, 'cafe_ole', 'plant_ftree', 0, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1314, 'cafe_ole', 'cafe_chair', 8, 20, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1315, 'cafe_ole', 'cafe_fence3', 9, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1316, 'cafe_ole', 'cafe_table_small', 8, 21, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1317, 'cafe_ole', 'cafe_fence2', 9, 21, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1318, 'cafe_ole', 'cafe_chair', 8, 22, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1319, 'cafe_ole', 'cafe_fence3', 9, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1320, 'cafe_ole', 'cafe_fence2', 9, 23, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1321, 'cafe_ole', 'cafe_chair', 12, 23, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1322, 'cafe_ole', 'cafe_table_small', 13, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1323, 'cafe_ole', 'cafe_chair', 14, 23, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1324, 'cafe_ole', 'cafe_fence1', 9, 24, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1325, 'cr_cafe', 'koc_chair', 11, 6, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1326, 'cr_cafe', 'koc_chair', 12, 2, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1327, 'cr_cafe', 'koc_chair', 13, 15, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1328, 'cr_cafe', 'koc_chair', 8, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1329, 'cr_cafe', 'koc_chair', 12, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1330, 'cr_cafe', 'koc_chair', 17, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1331, 'cr_cafe', 'koc_chair', 18, 6, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1332, 'cr_cafe', 'koc_chair', 13, 6, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1333, 'cr_cafe', 'koc_chair', 14, 2, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1334, 'cr_cafe', 'koc_chair', 14, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1335, 'cr_cafe', 'koc_chair', 9, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1336, 'cr_cafe', 'koc_chair', 9, 7, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1337, 'cr_cafe', 'koc_chair', 9, 1, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1338, 'cr_cafe', 'koc_chair', 13, 3, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1339, 'cr_cafe', 'koc_chair', 17, 7, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1340, 'cr_cafe', 'koc_chair', 12, 7, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1341, 'cr_cafe', 'koc_chair', 13, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1342, 'cr_cafe', 'koc_chair', 8, 17, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1343, 'cr_cafe', 'koc_chair', 8, 8, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1344, 'cr_cafe', 'koc_chair', 8, 2, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1345, 'cr_cafe', 'koc_stool', 7, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1346, 'cr_cafe', 'koc_stool', 7, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1347, 'cr_cafe', 'koc_stool', 7, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1348, 'cr_cafe', 'koc_bartable', 6, 13, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1349, 'cr_cafe', 'koc_bartable', 6, 12, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1350, 'cr_cafe', 'koc_bartable', 6, 11, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1351, 'cr_cafe', 'koc_bartable', 6, 10, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1352, 'cr_cafe', 'koc_bartable', 6, 9, 0, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1353, 'cr_cafe', 'koc_bartable_end', 6, 14, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1354, 'cr_cafe', 'koc_bartable_end', 5, 9, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1355, 'cr_cafe', 'drawer_end', 13, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1356, 'cr_cafe', 'drawer_end', 2, 6, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1357, 'cr_cafe', 'drawer_start', 12, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1358, 'cr_cafe', 'drawer_start', 1, 6, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1359, 'cr_cafe', 'drawer_start', 3, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1360, 'cr_cafe', 'drawer_end', 3, 12, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1361, 'cr_cafe', 'drawer_start', 6, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1362, 'cr_cafe', 'drawer_start', 4, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1363, 'cr_cafe', 'drawer_end', 5, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1364, 'cr_cafe', 'drawer_end', 3, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1365, 'cr_cafe', 'drawer_start', 2, 19, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1366, 'cr_cafe', 'drawer_end', 2, 18, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1367, 'cr_cafe', 'cupboard', 2, 17, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1368, 'cr_cafe', 'cupboard', 2, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1369, 'cr_cafe', 'koc_table', 13, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1370, 'cr_cafe', 'koc_table', 8, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1371, 'cr_cafe', 'koc_table', 8, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1372, 'cr_cafe', 'koc_table', 12, 6, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1373, 'cr_cafe', 'koc_table', 17, 6, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1374, 'cr_cafe', 'koc_table', 13, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1375, 'cr_cafe', 'koc_table', 8, 1, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1376, 'cr_cafe', 'koc_smalltable', 6, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1377, 'cr_cafe', 'koc_table', 3, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1378, 'cr_cafe', 'drawer_start', 2, 4, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1379, 'cr_cafe', 'drawer_end', 2, 3, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1380, 'cr_cafe', 'coatrack', 2, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1381, 'cr_cafe', 'drawer_end', 0, 0, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1382, 'cr_cafe', 'pillar', 16, 15, 0, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1383, 'cr_cafe', 'pillar', 6, 15, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1384, 'cr_cafe', 'pillar', 6, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1385, 'cr_cafe', 'pillar', 16, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1386, 'lobby_a', 'flower1', 9, 0, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1387, 'lobby_a', 'chairf2b', 11, 0, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1388, 'lobby_a', 'chairf2', 12, 0, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1389, 'lobby_a', 'table1', 13, 0, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1390, 'lobby_a', 'chairf2b', 14, 0, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1391, 'lobby_a', 'chairf2', 15, 0, 7, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1392, 'lobby_a', 'watermatic', 16, 0, 7, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1393, 'lobby_a', 'telkka', 9, 2, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1394, 'lobby_a', 'flower1', 9, 3, 7, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1395, 'lobby_a', 'chairf2d', 11, 3, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1396, 'lobby_a', 'chairf2', 12, 3, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1397, 'lobby_a', 'table1', 13, 3, 7, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1398, 'lobby_a', 'chairf2d', 14, 3, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1399, 'lobby_a', 'chairf2', 15, 3, 7, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1400, 'lobby_a', 'flower1', 12, 4, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1401, 'lobby_a', 'flower1', 16, 4, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1402, 'lobby_a', 'chairf2b', 0, 7, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1403, 'lobby_a', 'chairf2', 1, 7, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1404, 'lobby_a', 'chairf2d', 0, 10, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1405, 'lobby_a', 'chairf2', 1, 10, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1406, 'lobby_a', 'roommatic', 21, 12, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1407, 'lobby_a', 'roommatic', 22, 12, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1408, 'lobby_a', 'roommatic', 23, 12, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1409, 'lobby_a', 'roommatic', 24, 12, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1410, 'lobby_a', 'chairf2b', 0, 14, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1411, 'lobby_a', 'chairf2', 1, 14, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1412, 'lobby_a', 'watermatic', 13, 14, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1413, 'lobby_a', 'watermatic', 12, 15, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1414, 'lobby_a', 'chairf1', 19, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1415, 'lobby_a', 'table2c', 21, 16, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1416, 'lobby_a', 'chairf1', 23, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1417, 'lobby_a', 'chairf2d', 0, 17, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1418, 'lobby_a', 'chairf2', 1, 17, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1419, 'lobby_a', 'table2b', 21, 17, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1420, 'lobby_a', 'chairf1', 19, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1421, 'lobby_a', 'table2', 21, 18, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1422, 'lobby_a', 'chairf1', 23, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1423, 'lobby_a', 'chairf2b', 7, 21, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1424, 'lobby_a', 'chairf2c', 7, 22, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1425, 'lobby_a', 'chairf2c', 7, 23, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1426, 'lobby_a', 'chairf2c', 7, 24, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1427, 'lobby_a', 'chairf2', 7, 25, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1428, 'lobby_a', 'table1', 7, 26, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1429, 'lobby_a', 'flower2', 10, 26, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1430, 'floorlobby_c', 'moneyplant', 3, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1431, 'floorlobby_c', 'roommatic', 5, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1432, 'floorlobby_c', 'roommatic', 7, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1433, 'floorlobby_c', 'roommatic', 9, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1434, 'floorlobby_c', 'roommatic', 11, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1435, 'floorlobby_c', 'roommatic', 13, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1436, 'floorlobby_c', 'watermatic', 26, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1437, 'floorlobby_c', 'edgec1', 14, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1438, 'floorlobby_c', 'edgec1', 15, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1439, 'floorlobby_c', 'edgec1', 16, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1440, 'floorlobby_c', 'edgec1', 17, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1441, 'floorlobby_c', 'edgec1', 18, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1442, 'floorlobby_c', 'edgec1', 19, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1443, 'floorlobby_c', 'edgec1', 20, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1444, 'floorlobby_c', 'edgec1', 21, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1445, 'floorlobby_c', 'edgec1', 22, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1446, 'floorlobby_c', 'edgec1', 23, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1447, 'floorlobby_c', 'edgec1', 24, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1448, 'floorlobby_c', 'edgec1', 25, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1449, 'floorlobby_c', 'edgec1', 26, 8, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1450, 'floorlobby_c', 'chairg1', 3, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1451, 'floorlobby_c', 'chairg1', 5, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1452, 'floorlobby_c', 'moneyplant', 15, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1453, 'floorlobby_c', 'chairg2b', 16, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1454, 'floorlobby_c', 'chairg2c', 17, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1455, 'floorlobby_c', 'chairg2', 18, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1456, 'floorlobby_c', 'moneyplant', 19, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1457, 'floorlobby_c', 'moneyplant', 21, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1458, 'floorlobby_c', 'chairg2b', 22, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1459, 'floorlobby_c', 'chairg2c', 23, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1460, 'floorlobby_c', 'chairg2', 24, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1461, 'floorlobby_c', 'moneyplant', 25, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1462, 'floorlobby_c', 'chairg1', 3, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1463, 'floorlobby_c', 'chairg1', 5, 11, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1464, 'floorlobby_c', 'newtable2', 3, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1465, 'floorlobby_c', 'chairg1', 16, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1466, 'floorlobby_c', 'chairg1', 18, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1467, 'floorlobby_c', 'chairg1', 22, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1468, 'floorlobby_c', 'chairg1', 24, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1469, 'floorlobby_c', 'newtable2', 17, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1470, 'floorlobby_c', 'newtable2', 23, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1471, 'floorlobby_c', 'newtable2', 3, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1472, 'floorlobby_c', 'chairg1', 16, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1473, 'floorlobby_c', 'chairg1', 18, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1474, 'floorlobby_c', 'chairg1', 22, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1475, 'floorlobby_c', 'chairg1', 24, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1476, 'floorlobby_c', 'chairg1', 3, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1477, 'floorlobby_c', 'chairg1', 5, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1478, 'floorlobby_c', 'edgec2', 14, 18, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1479, 'floorlobby_c', 'edgec2', 15, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1480, 'floorlobby_c', 'edgec2', 16, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1481, 'floorlobby_c', 'edgec2', 17, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1482, 'floorlobby_c', 'edgec2', 18, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1483, 'floorlobby_c', 'edgec2', 19, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1484, 'floorlobby_c', 'edgec2', 20, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1485, 'floorlobby_c', 'edgec2', 21, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1486, 'floorlobby_c', 'edgec2', 22, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1487, 'floorlobby_c', 'edgec2', 23, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1488, 'floorlobby_c', 'edgec2', 24, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1489, 'floorlobby_c', 'edgec2', 25, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1490, 'floorlobby_c', 'edgec2', 26, 18, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1491, 'floorlobby_b', 'moneyplant', 3, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1492, 'floorlobby_b', 'roommatic', 5, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1493, 'floorlobby_b', 'roommatic', 7, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1494, 'floorlobby_b', 'roommatic', 9, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1495, 'floorlobby_b', 'roommatic', 11, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1496, 'floorlobby_b', 'roommatic', 13, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1497, 'floorlobby_b', 'watermatic', 26, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1498, 'floorlobby_b', 'standinglamp', 3, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1499, 'floorlobby_b', 'edgeb1', 14, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1500, 'floorlobby_b', 'edgeb1', 15, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1501, 'floorlobby_b', 'edgeb1', 16, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1502, 'floorlobby_b', 'edgeb1', 17, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1503, 'floorlobby_b', 'edgeb1', 18, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1504, 'floorlobby_b', 'edgeb1', 19, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1505, 'floorlobby_b', 'edgeb1', 20, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1506, 'floorlobby_b', 'edgeb1', 21, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1507, 'floorlobby_b', 'edgeb1', 22, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1508, 'floorlobby_b', 'edgeb1', 23, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1509, 'floorlobby_b', 'edgeb1', 24, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1510, 'floorlobby_b', 'edgeb1', 25, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1511, 'floorlobby_b', 'edgeb1', 26, 8, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1512, 'floorlobby_b', 'chairf2b', 3, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1513, 'floorlobby_b', 'chairf2c', 4, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1514, 'floorlobby_b', 'chairf2', 5, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1515, 'floorlobby_b', 'moneyplant', 15, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1516, 'floorlobby_b', 'chairf2b', 16, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1517, 'floorlobby_b', 'chairf2c', 17, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1518, 'floorlobby_b', 'chairf2', 18, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1519, 'floorlobby_b', 'moneyplant', 19, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1520, 'floorlobby_b', 'moneyplant', 21, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1521, 'floorlobby_b', 'chairf2b', 22, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1522, 'floorlobby_b', 'chairf2c', 23, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1523, 'floorlobby_b', 'chairf2', 24, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1524, 'floorlobby_b', 'moneyplant', 25, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1525, 'floorlobby_b', 'chairf1', 3, 11, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1526, 'floorlobby_b', 'newtable1', 4, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1527, 'floorlobby_b', 'chairf1', 5, 11, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1528, 'floorlobby_b', 'chairf1', 16, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1529, 'floorlobby_b', 'chairf1', 18, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1530, 'floorlobby_b', 'chairf1', 22, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1531, 'floorlobby_b', 'chairf1', 24, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1532, 'floorlobby_b', 'newtable1', 17, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1533, 'floorlobby_b', 'newtable1', 23, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1534, 'floorlobby_b', 'newtable1', 3, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1535, 'floorlobby_b', 'chairf1', 16, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1536, 'floorlobby_b', 'chairf1', 18, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1537, 'floorlobby_b', 'chairf1', 22, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1538, 'floorlobby_b', 'chairf1', 24, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1539, 'floorlobby_b', 'chairf1', 3, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1540, 'floorlobby_b', 'chairf1', 5, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1541, 'floorlobby_b', 'standinglamp', 3, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1542, 'floorlobby_b', 'edgeb2', 14, 18, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1543, 'floorlobby_b', 'edgeb2', 15, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1544, 'floorlobby_b', 'edgeb2', 16, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1545, 'floorlobby_b', 'edgeb2', 17, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1546, 'floorlobby_b', 'edgeb2', 18, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1547, 'floorlobby_b', 'edgeb2', 19, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1548, 'floorlobby_b', 'edgeb2', 20, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1549, 'floorlobby_b', 'edgeb2', 21, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1550, 'floorlobby_b', 'edgeb2', 22, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1551, 'floorlobby_b', 'edgeb2', 23, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1552, 'floorlobby_b', 'edgeb2', 24, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1553, 'floorlobby_b', 'edgeb2', 25, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1554, 'floorlobby_b', 'edgeb2', 26, 18, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1555, 'floorlobby_a', 'moneyplant', 3, 2, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1556, 'floorlobby_a', 'roommatic', 5, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1557, 'floorlobby_a', 'roommatic', 7, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1558, 'floorlobby_a', 'roommatic', 9, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1559, 'floorlobby_a', 'roommatic', 11, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1560, 'floorlobby_a', 'roommatic', 13, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1561, 'floorlobby_a', 'watermatic', 26, 2, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1562, 'floorlobby_a', 'standinglamp', 3, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1563, 'floorlobby_a', 'edge1', 14, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1564, 'floorlobby_a', 'edge1', 15, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1565, 'floorlobby_a', 'edge1', 16, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1566, 'floorlobby_a', 'edge1', 17, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1567, 'floorlobby_a', 'edge1', 18, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1568, 'floorlobby_a', 'edge1', 19, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1569, 'floorlobby_a', 'edge1', 20, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1570, 'floorlobby_a', 'edge1', 21, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1571, 'floorlobby_a', 'edge1', 22, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1572, 'floorlobby_a', 'edge1', 23, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1573, 'floorlobby_a', 'edge1', 24, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1574, 'floorlobby_a', 'edge1', 25, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1575, 'floorlobby_a', 'edge1', 26, 8, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1576, 'floorlobby_a', 'chairf1', 3, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1577, 'floorlobby_a', 'chairf1', 5, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1578, 'floorlobby_a', 'moneyplant', 15, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1579, 'floorlobby_a', 'chairf2b', 16, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1580, 'floorlobby_a', 'chairf2c', 17, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1581, 'floorlobby_a', 'chairf2', 18, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1582, 'floorlobby_a', 'moneyplant', 19, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1583, 'floorlobby_a', 'moneyplant', 21, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1584, 'floorlobby_a', 'chairf2b', 22, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1585, 'floorlobby_a', 'chairf2c', 23, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1586, 'floorlobby_a', 'chairf2', 24, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1587, 'floorlobby_a', 'moneyplant', 25, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1588, 'floorlobby_a', 'chairf1', 3, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1589, 'floorlobby_a', 'chairf1', 5, 11, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1590, 'floorlobby_a', 'newtable1', 3, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1591, 'floorlobby_a', 'chairf1', 16, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1592, 'floorlobby_a', 'chairf1', 18, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1593, 'floorlobby_a', 'chairf1', 22, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1594, 'floorlobby_a', 'chairf1', 24, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1595, 'floorlobby_a', 'newtable1', 17, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1596, 'floorlobby_a', 'newtable1', 23, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1597, 'floorlobby_a', 'chairf1', 16, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1598, 'floorlobby_a', 'chairf1', 18, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1599, 'floorlobby_a', 'chairf1', 22, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1600, 'floorlobby_a', 'chairf1', 24, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1601, 'floorlobby_a', 'chairf1', 3, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1602, 'floorlobby_a', 'chairf1', 5, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1603, 'floorlobby_a', 'edge2', 14, 18, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1604, 'floorlobby_a', 'edge2', 15, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1605, 'floorlobby_a', 'edge2', 16, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1606, 'floorlobby_a', 'edge2', 17, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1607, 'floorlobby_a', 'edge2', 18, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1608, 'floorlobby_a', 'edge2', 19, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1609, 'floorlobby_a', 'edge2', 20, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1610, 'floorlobby_a', 'edge2', 21, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1611, 'floorlobby_a', 'edge2', 22, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1612, 'floorlobby_a', 'edge2', 23, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1613, 'floorlobby_a', 'edge2', 24, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1614, 'floorlobby_a', 'edge2', 25, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1615, 'floorlobby_a', 'edge2', 26, 18, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1616, 'cinema_a', 'orange', 2, 4, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1617, 'cinema_a', 'loungey_chair', 7, 4, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1618, 'cinema_a', 'loungey_tablebigb', 8, 4, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1619, 'cinema_a', 'loungey_chair', 9, 4, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1620, 'cinema_a', 'loungey_chair', 2, 5, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1621, 'cinema_a', 'loungey_chair', 7, 5, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1622, 'cinema_a', 'loungey_tablebiga', 8, 5, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1623, 'cinema_a', 'loungey_chair', 9, 5, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1624, 'cinema_a', 'loungey_table', 2, 6, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1625, 'cinema_a', 'loungey_chair', 2, 7, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1626, 'cinema_a', 'theater_chair', 13, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1627, 'cinema_a', 'theater_chair', 14, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1628, 'cinema_a', 'theater_chair', 15, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1629, 'cinema_a', 'theater_chair', 16, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1630, 'cinema_a', 'theater_chair', 17, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1631, 'cinema_a', 'theater_chair', 18, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1632, 'cinema_a', 'stair', 21, 7, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1633, 'cinema_a', 'lightpole', 9, 8, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1634, 'cinema_a', 'pomomaski', 13, 8, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1635, 'cinema_a', 'pomomaski', 14, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1636, 'cinema_a', 'pomomaski', 15, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1637, 'cinema_a', 'pomomaski', 16, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1638, 'cinema_a', 'pomomaski', 17, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1639, 'cinema_a', 'pomomaski', 18, 8, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1640, 'cinema_a', 'pomomaski', 19, 8, 2, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1641, 'cinema_a', 'stair', 21, 8, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1642, 'cinema_a', 'orange', 2, 9, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1643, 'cinema_a', 'theater_chair', 13, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1644, 'cinema_a', 'theater_chair', 14, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1645, 'cinema_a', 'theater_chair', 15, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1646, 'cinema_a', 'theater_chair', 16, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1647, 'cinema_a', 'theater_chair', 17, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1648, 'cinema_a', 'theater_chair', 18, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1649, 'cinema_a', 'theater_chair', 19, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1650, 'cinema_a', 'theater_chair', 20, 9, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1651, 'cinema_a', 'stair', 21, 9, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1652, 'cinema_a', 'loungey_chair', 2, 10, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1653, 'cinema_a', 'loungey_chair', 9, 10, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1654, 'cinema_a', 'loungey_table', 2, 11, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1655, 'cinema_a', 'loungey_table', 9, 11, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1656, 'cinema_a', 'loungey_chair', 2, 12, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1657, 'cinema_a', 'loungey_chair', 9, 12, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1658, 'cinema_a', 'cubicb_chair', 17, 12, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1659, 'cinema_a', 'cubico_chair', 19, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1660, 'cinema_a', 'cubicb_chair', 15, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1661, 'cinema_a', 'lightpole', 19, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1662, 'cinema_a', 'cubicb_chair', 20, 13, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1663, 'cinema_a', 'lightpole', 9, 14, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1664, 'cinema_a', 'loungey_chair', 2, 15, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1665, 'cinema_a', 'cubicb_chair', 14, 15, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1666, 'cinema_a', 'cubico_chair', 19, 15, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1667, 'cinema_a', 'loungey_table', 2, 16, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1668, 'cinema_a', 'loungey_chair', 7, 16, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1669, 'cinema_a', 'loungey_table', 8, 16, 3, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1670, 'cinema_a', 'loungey_chair', 9, 16, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1671, 'cinema_a', 'cubicb_chair', 13, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1672, 'cinema_a', 'cubicb_chair', 14, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1673, 'cinema_a', 'orange', 19, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1674, 'cinema_a', 'loungey_chair', 2, 17, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1675, 'cinema_a', 'loungey_chair', 7, 17, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1676, 'cinema_a', 'loungey_table', 8, 17, 3, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1677, 'cinema_a', 'loungey_chair', 9, 17, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1678, 'cinema_a', 'cubicb_chair', 19, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1679, 'cinema_a', 'orange', 2, 18, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1680, 'cinema_a', 'cubicb_chair', 14, 18, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1681, 'cinema_a', 'bardesque', 2, 19, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1682, 'cinema_a', 'bardesque', 2, 20, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1683, 'cinema_a', 'bar_chair', 3, 20, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1684, 'cinema_a', 'lightpole', 9, 20, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1685, 'cinema_a', 'cubicb_chair', 14, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1686, 'cinema_a', 'cubicb_chair', 19, 20, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1687, 'cinema_a', 'cubico_chair', 20, 20, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1688, 'cinema_a', 'bardesque', 2, 21, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1689, 'cinema_a', 'bar_chair', 3, 21, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1690, 'cinema_a', 'cubicb_chair', 19, 21, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1691, 'cinema_a', 'bardesque', 2, 22, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1692, 'cinema_a', 'bar_chair', 3, 22, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1693, 'cinema_a', 'lightpole', 16, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1694, 'cinema_a', 'cubico_chair', 18, 22, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1695, 'cinema_a', 'bardesque', 2, 23, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1696, 'cinema_a', 'bar_chair', 3, 23, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1697, 'cinema_a', 'bardesque', 2, 24, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1698, 'cinema_a', 'bar_chair', 3, 24, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1699, 'cinema_a', 'bardesque', 2, 25, 3, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1700, 'sport', 'sporttable', 1, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1701, 'sport', 'sporttable', 1, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1702, 'sport', 'sporttable', 15, 6, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1703, 'sport', 'sporttable', 7, 6, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1704, 'sport', 'sportchair', 9, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1705, 'sport', 'sportchair', 10, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1706, 'sport', 'sportchair', 7, 5, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1707, 'sport', 'sportchair', 15, 5, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1708, 'sport', 'sportchair', 1, 5, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1709, 'sport', 'sportchair', 1, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1710, 'sport', 'sportchair', 14, 6, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1711, 'sport', 'sportchair', 6, 6, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1712, 'sport', 'sportchair3', 15, 7, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1713, 'sport', 'sportchair3', 7, 7, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1714, 'sport', 'sportchair3', 1, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1715, 'sport', 'sportchair3', 1, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1716, 'sport', 'sportchair2', 16, 6, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1717, 'sport', 'sportchair2', 8, 6, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1718, 'sport', 'sodagreen', 6, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1719, 'sport', 'sodapink', 8, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1720, 'old_skool0', 'mobiles_chair1', 0, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1721, 'old_skool0', 'mobiles_chair1', 0, 15, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1722, 'old_skool0', 'mobiles_chair1', 0, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1723, 'old_skool0', 'mobiles_chair1', 0, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1724, 'old_skool0', 'mobiles_chair1', 1, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1725, 'old_skool0', 'mobiles_chair1', 1, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1726, 'old_skool0', 'mobiles_chair1', 1, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1727, 'old_skool0', 'mobiles_chair1', 1, 24, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1728, 'old_skool0', 'mobiles_chair1', 10, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1729, 'old_skool0', 'mobiles_chair1', 11, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1730, 'old_skool0', 'mobiles_chair1', 11, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1731, 'old_skool0', 'mobiles_chair1', 12, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1732, 'old_skool0', 'mobiles_chair1', 12, 21, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1733, 'old_skool0', 'mobiles_chair1', 13, 24, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1734, 'old_skool0', 'mobiles_chair1', 14, 22, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1735, 'old_skool0', 'mobiles_chair1', 2, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1736, 'old_skool0', 'mobiles_chair1', 3, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1737, 'old_skool0', 'mobiles_chair1', 3, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1738, 'old_skool0', 'mobiles_chair1', 3, 22, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1739, 'old_skool0', 'mobiles_chair1', 5, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1740, 'old_skool0', 'mobiles_chair1', 7, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1741, 'old_skool0', 'mobiles_chair1', 8, 22, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1742, 'old_skool0', 'mobiles_chair1', 9, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1743, 'old_skool0', 'mobiles_chair3', 10, 4, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1744, 'old_skool0', 'mobiles_chair3', 11, 4, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1745, 'old_skool0', 'mobiles_chair3', 12, 4, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1746, 'old_skool0', 'mobiles_chair3', 9, 4, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1747, 'old_skool0', 'mobiles_table1', 1, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1748, 'old_skool0', 'mobiles_table1', 1, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1749, 'old_skool0', 'mobiles_table1', 1, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1750, 'old_skool0', 'mobiles_table1', 10, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1751, 'old_skool0', 'mobiles_table1', 12, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1752, 'old_skool0', 'mobiles_table1', 6, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1753, 'old_skool0', 'mobiles_table2', 1, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1754, 'old_skool0', 'mobiles_table2', 1, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1755, 'old_skool0', 'mobiles_table2', 1, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1756, 'old_skool0', 'mobiles_table2', 10, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1757, 'old_skool0', 'mobiles_table2', 12, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1758, 'old_skool0', 'mobiles_table2', 6, 21, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1759, 'old_skool0', 'mobiles_table3', 11, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1760, 'old_skool0', 'mobiles_table3', 13, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1761, 'old_skool0', 'mobiles_table3', 2, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1762, 'old_skool0', 'mobiles_table3', 2, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1763, 'old_skool0', 'mobiles_table3', 2, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1764, 'old_skool0', 'mobiles_table3', 7, 21, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1765, 'old_skool0', 'mobiles_table4', 11, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1766, 'old_skool0', 'mobiles_table4', 13, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1767, 'old_skool0', 'mobiles_table4', 2, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1768, 'old_skool0', 'mobiles_table4', 2, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1769, 'old_skool0', 'mobiles_table4', 2, 23, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1770, 'old_skool0', 'mobiles_table4', 7, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1771, 'old_skool1', 'mobiles_chair2', 3, 4, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1772, 'old_skool1', 'mobiles_chair2', 3, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1773, 'old_skool1', 'mobiles_chair2', 4, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1774, 'old_skool1', 'mobiles_chair2', 4, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1775, 'old_skool1', 'mobiles_chair2', 5, 6, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1776, 'old_skool1', 'mobiles_chair2', 7, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1777, 'old_skool1', 'mobiles_chair2', 8, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1778, 'old_skool1', 'mobiles_chair2', 9, 2, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1779, 'old_skool1', 'mobiles_table5', 4, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1780, 'old_skool1', 'mobiles_table5', 4, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1781, 'old_skool1', 'mobiles_table5', 8, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1782, 'old_skool1', 'mobiles_table6', 4, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1783, 'old_skool1', 'mobiles_table6', 4, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1784, 'old_skool1', 'mobiles_table6', 8, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1785, 'old_skool1', 'mobiles_table7', 5, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1786, 'old_skool1', 'mobiles_table7', 5, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1787, 'old_skool1', 'mobiles_table7', 9, 3, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1788, 'old_skool1', 'mobiles_table8', 5, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1789, 'old_skool1', 'mobiles_table8', 5, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1790, 'old_skool1', 'mobiles_table8', 9, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1791, 'malja_bar_a', 'bar_chair_green', 13, 1, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1792, 'malja_bar_a', 'bar_chair_green', 7, 2, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1793, 'malja_bar_a', 'bar_chair_green', 5, 3, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1794, 'malja_bar_a', 'bar_table_green', 6, 3, 4, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1795, 'malja_bar_a', 'bar_chair_green', 8, 4, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1796, 'malja_bar_a', 'bar_chair_green', 7, 5, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1797, 'malja_bar_a', 'bar_bare', 10, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1798, 'malja_bar_a', 'bar_bard', 10, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1799, 'malja_bar_a', 'bar_bara', 0, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1800, 'malja_bar_a', 'bar_barb', 1, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1801, 'malja_bar_a', 'bar_barb', 2, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1802, 'malja_bar_a', 'bar_barb', 3, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1803, 'malja_bar_a', 'bar_barb', 4, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1804, 'malja_bar_a', 'bar_barb', 5, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1805, 'malja_bar_a', 'bar_barb', 6, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1806, 'malja_bar_a', 'bar_barb', 7, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1807, 'malja_bar_a', 'bar_barb', 8, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1808, 'malja_bar_a', 'bar_barb', 9, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1809, 'malja_bar_a', 'bar_barc', 10, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1810, 'malja_bar_a', 'bar_chair_green', 7, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1811, 'malja_bar_a', 'bar_table_green', 7, 14, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1812, 'malja_bar_a', 'bar_chair_green', 13, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1813, 'malja_bar_a', 'bar_chair_green', 1, 15, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1814, 'malja_bar_a', 'bar_chair_green', 6, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1815, 'malja_bar_a', 'bar_chair_green', 9, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1816, 'malja_bar_a', 'bar_table_green', 13, 15, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1817, 'malja_bar_a', 'bar_chair_green', 0, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1818, 'malja_bar_a', 'bar_table_green', 1, 16, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1819, 'malja_bar_a', 'bar_chair_green', 7, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1820, 'malja_bar_a', 'bar_chair_green', 12, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1821, 'malja_bar_a', 'bar_chair_green', 15, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1822, 'malja_bar_a', 'bar_chair_green', 3, 17, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1823, 'malja_bar_a', 'bar_chair_green', 14, 17, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1824, 'malja_bar_a', 'bar_chair_green', 2, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1825, 'malja_bar_a', 'bar_chair_green', 0, 21, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1826, 'malja_bar_b', 'bar_chair_blue', 4, 0, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1827, 'malja_bar_b', 'bar_chair_blue', 8, 0, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1828, 'malja_bar_b', 'bar_table_small_blue', 9, 0, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1829, 'malja_bar_b', 'bar_chair_blue', 10, 0, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1830, 'malja_bar_b', 'bar_table_blue', 4, 1, 3, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1831, 'malja_bar_b', 'bar_djbooth', 13, 1, 3, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1832, 'malja_bar_b', 'bar_chair_blue', 6, 2, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1833, 'malja_bar_b', 'bar_djbooth', 13, 2, 3, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1834, 'malja_bar_b', 'bar_djbooth', 14, 2, 3, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1835, 'malja_bar_b', 'bar_djbooth', 15, 2, 3, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1836, 'malja_bar_b', 'stair', 1, 3, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1837, 'malja_bar_b', 'bar_chair_blue', 4, 3, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1838, 'malja_bar_b', 'stair', 1, 4, 7, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1839, 'malja_bar_b', 'stair', 2, 4, 5, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1840, 'malja_bar_b', 'stair', 3, 4, 5, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1841, 'malja_bar_b', 'stair', 12, 5, 2, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1842, 'malja_bar_b', 'stair', 13, 5, 2, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1843, 'malja_bar_b', 'stair', 14, 5, 2, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1844, 'malja_bar_b', 'stair', 3, 6, 4, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1845, 'malja_bar_b', 'stair', 12, 6, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1846, 'malja_bar_b', 'stair', 13, 6, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1847, 'malja_bar_b', 'stair', 14, 6, 1, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1848, 'malja_bar_b', 'stair', 3, 7, 4, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1849, 'malja_bar_b', 'stair', 2, 8, 3, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1850, 'malja_bar_b', 'stair', 3, 8, 3, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1851, 'malja_bar_b', 'bar_chair_blue', 7, 8, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1852, 'malja_bar_b', 'bar_table_small_blue', 7, 9, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1853, 'malja_bar_b', 'bar_chair_blue', 7, 10, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1854, 'malja_bar_b', 'bar_chair_blue', 2, 11, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1855, 'malja_bar_b', 'bar_table_small_blue', 2, 12, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1856, 'malja_bar_b', 'bar_chair_blue', 2, 13, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1857, 'malja_bar_b', 'bar_chair_blue', 0, 14, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1858, 'malja_bar_b', 'bar_chair_blue', 0, 15, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1859, 'malja_bar_b', 'bar_chair_blue', 0, 16, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1860, 'malja_bar_b', 'bar_chair_blue', 2, 16, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1861, 'malja_bar_b', 'bar_chair_blue', 3, 16, 3, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1862, 'malja_bar_b', 'bar_chair_blue', 0, 17, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1863, 'malja_bar_b', 'bar_table_blue', 2, 17, 3, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (1864, 'malja_bar_b', 'bar_chair_blue', 4, 17, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1865, 'malja_bar_b', 'bar_chair_blue', 0, 18, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1866, 'malja_bar_b', 'bar_chair_blue', 4, 18, 3, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1867, 'malja_bar_b', 'bar_chair_blue', 0, 19, 9, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1868, 'malja_bar_b', 'bar_chair_blue', 2, 19, 3, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1869, 'malja_bar_b', 'goldfish_bar', 0, 22, 3, 0, 0.001, 1, 1, 'invisible,solid', '', NULL, NULL), + (1870, 'bar_a', 'lounge_chair_small', 12, 3, 5, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1871, 'bar_a', 'lounge_table_one', 13, 3, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1872, 'bar_a', 'lounge_chair_small', 14, 3, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1873, 'bar_a', 'lounge_chair_small', 13, 4, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1874, 'bar_a', 'lounge_chair_small', 18, 5, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1875, 'bar_a', 'lounge_chair_small', 17, 6, 5, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1876, 'bar_a', 'lounge_table_one', 18, 6, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1877, 'bar_a', 'lounge_chair_small', 18, 7, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1878, 'bar_a', 'lounge_private_bigback', 13, 11, 5, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1879, 'bar_a', 'lounge_private_bigsofaback', 14, 11, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1880, 'bar_a', 'lounge_private_bigsofaback', 15, 11, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1881, 'bar_a', 'lounge_private_bigsofaback', 16, 11, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1882, 'bar_a', 'lounge_private_bigsofaback', 17, 11, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1883, 'bar_a', 'lounge_private_bigback', 18, 11, 5, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1884, 'bar_a', 'lounge_private_bigsofa', 18, 12, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1885, 'bar_a', 'lounge_table_threea', 14, 13, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1886, 'bar_a', 'lounge_table_threeb', 15, 13, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1887, 'bar_a', 'lounge_table_threec', 16, 13, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1888, 'bar_a', 'lounge_private_bigsofa', 18, 13, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1889, 'bar_a', 'lounge_private_bigsofa', 18, 14, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1890, 'bar_a', 'lounge_private_bigcorner', 13, 15, 5, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1891, 'bar_a', 'lounge_private_bigsofa', 14, 15, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1892, 'bar_a', 'lounge_private_bigsofa', 15, 15, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1893, 'bar_a', 'lounge_private_bigsofa', 16, 15, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1894, 'bar_a', 'lounge_private_bigsofa', 17, 15, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1895, 'bar_a', 'lounge_private_bigcorner', 18, 15, 5, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1896, 'bar_a', 'lounge_chair_small', 3, 16, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1897, 'bar_a', 'lounge_chair_small', 8, 16, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1898, 'bar_a', 'lounge_table_one', 3, 17, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1899, 'bar_a', 'lounge_chair_small', 4, 17, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1900, 'bar_a', 'lounge_chair_small', 7, 17, 5, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1901, 'bar_a', 'lounge_table_one', 8, 17, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1902, 'bar_a', 'lounge_chair_small', 9, 17, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1903, 'bar_a', 'lounge_private_bigcorner', 13, 17, 5, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1904, 'bar_a', 'lounge_private_bigsofa', 14, 17, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1905, 'bar_a', 'lounge_private_bigsofa', 15, 17, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1906, 'bar_a', 'lounge_private_bigsofa', 16, 17, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1907, 'bar_a', 'lounge_private_bigsofa', 17, 17, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1908, 'bar_a', 'lounge_private_bigcorner', 18, 17, 5, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1909, 'bar_a', 'lounge_chair_small', 3, 18, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1910, 'bar_a', 'lounge_chair_small', 8, 18, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1911, 'bar_a', 'lounge_private_bigsofa', 18, 18, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1912, 'bar_a', 'lounge_table_threea', 14, 19, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1913, 'bar_a', 'lounge_table_threeb', 15, 19, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1914, 'bar_a', 'lounge_table_threec', 16, 19, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1915, 'bar_a', 'lounge_private_bigsofa', 18, 19, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1916, 'bar_a', 'lounge_private_bigsofa', 18, 20, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1917, 'bar_a', 'lounge_private_bigcorner', 13, 21, 5, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1918, 'bar_a', 'lounge_private_bigsofa', 14, 21, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1919, 'bar_a', 'lounge_private_bigsofa', 15, 21, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1920, 'bar_a', 'lounge_private_bigsofa', 16, 21, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1921, 'bar_a', 'lounge_private_bigsofa', 17, 21, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1922, 'bar_a', 'lounge_private_bigcorner', 18, 21, 5, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1923, 'bar_a', 'lounge_bara', 4, 23, 5, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1924, 'bar_a', 'lounge_bara', 5, 23, 5, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1925, 'bar_a', 'lounge_bara', 6, 23, 5, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1926, 'bar_a', 'lounge_bara', 7, 23, 5, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1927, 'bar_a', 'lounge_private_bigcorner', 13, 23, 5, 3, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1928, 'bar_a', 'lounge_private_bigsofa', 14, 23, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1929, 'bar_a', 'lounge_private_bigsofa', 15, 23, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1930, 'bar_a', 'lounge_private_bigsofa', 16, 23, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1931, 'bar_a', 'lounge_private_bigsofa', 17, 23, 5, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1932, 'bar_a', 'lounge_private_bigcorner', 18, 23, 5, 5, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1933, 'bar_a', 'lounge_bara', 7, 24, 5, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1934, 'bar_a', 'lounge_private_bigsofa', 18, 24, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1935, 'bar_a', 'lounge_bara', 7, 25, 5, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1936, 'bar_a', 'lounge_table_threea', 14, 25, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1937, 'bar_a', 'lounge_table_threeb', 15, 25, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1938, 'bar_a', 'lounge_table_threec', 16, 25, 5, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1939, 'bar_a', 'lounge_private_bigsofa', 18, 25, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1940, 'bar_a', 'lounge_bara', 7, 26, 5, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1941, 'bar_a', 'lounge_private_bigsofa', 18, 26, 5, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1942, 'bar_a', 'lounge_bara', 7, 27, 5, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1943, 'bar_a', 'lounge_private_bigcorner', 13, 27, 5, 1, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1944, 'bar_a', 'lounge_private_bigsofa', 14, 27, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1945, 'bar_a', 'lounge_private_bigsofa', 15, 27, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1946, 'bar_a', 'lounge_private_bigsofa', 16, 27, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1947, 'bar_a', 'lounge_private_bigsofa', 17, 27, 5, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1948, 'bar_a', 'lounge_private_bigcorner', 18, 27, 5, 7, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1949, 'bar_b', 'stair', 5, 21, 2, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1950, 'bar_b', 'stair', 4, 21, 2, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1951, 'bar_b', 'stair', 5, 20, 3, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1952, 'bar_b', 'stair', 4, 20, 3, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1953, 'bar_b', 'lounge_chair_small', 14, 19, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1954, 'bar_b', 'lounge_table_one', 13, 19, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1955, 'bar_b', 'lounge_chair_small', 12, 19, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1956, 'bar_b', 'stair', 5, 19, 4, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1957, 'bar_b', 'stair', 4, 19, 4, 0, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1958, 'bar_b', 'lounge_chair_small', 8, 18, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1959, 'bar_b', 'lounge_table_one', 8, 17, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1960, 'bar_b', 'lounge_chair_small', 15, 16, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1961, 'bar_b', 'lounge_chair_small', 8, 16, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1962, 'bar_b', 'lounge_table_one', 15, 15, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1963, 'bar_b', 'lounge_chair_small', 14, 15, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1964, 'bar_b', 'lounge_chair_small', 15, 14, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1965, 'bar_b', 'lounge_chair_small', 10, 13, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1966, 'bar_b', 'lounge_chair_small', 11, 12, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1967, 'bar_b', 'lounge_table_one', 10, 12, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1968, 'bar_b', 'lounge_chair_small', 9, 12, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1969, 'bar_b', 'lounge_chair_small', 10, 11, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1970, 'bar_b', 'lounge_chair_small', 15, 10, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1971, 'bar_b', 'lounge_table_one', 15, 9, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1972, 'bar_b', 'lounge_chair_small', 14, 9, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1973, 'bar_b', 'fatsblox', 3, 9, 4, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1974, 'bar_b', 'lounge_chair_small', 15, 8, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1975, 'bar_b', 'fatsofaa', 3, 8, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1976, 'bar_b', 'lounge_chair_small', 9, 7, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1977, 'bar_b', 'fatsofaa', 3, 7, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1978, 'bar_b', 'lounge_chair_small', 10, 6, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1979, 'bar_b', 'lounge_table_one', 9, 6, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1980, 'bar_b', 'lounge_chair_small', 8, 6, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1981, 'bar_b', 'fatsofaa', 3, 6, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1982, 'bar_b', 'fatsofaa', 3, 5, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1983, 'bar_b', 'fatsblox', 3, 4, 4, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1984, 'bar_b', 'fatsblox', 17, 3, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1985, 'bar_b', 'fatsofaa', 16, 3, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1986, 'bar_b', 'fatsofaa', 15, 3, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1987, 'bar_b', 'fatsofaa', 14, 3, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1988, 'bar_b', 'fatsofaa', 13, 3, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (1989, 'bar_b', 'fatsblox', 12, 3, 4, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1990, 'bar_b', 'pub_pineapple_small', 3, 3, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (1991, 'bar_b', 'stair', 11, 2, 100000, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1992, 'bar_b', 'stair', 10, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1993, 'bar_b', 'stair', 9, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1994, 'bar_b', 'stair', 8, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1995, 'bar_b', 'stair', 7, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1996, 'bar_b', 'stair', 6, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1997, 'bar_b', 'stair', 5, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1998, 'bar_b', 'stair', 4, 2, 4, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', '', NULL, NULL), + (1999, 'habburger', 'sofa', 0, 0, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2000, 'habburger', 'table', 1, 0, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2001, 'habburger', 'sofa', 2, 0, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2002, 'habburger', 'sofa', 6, 0, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2003, 'habburger', 'tablesp', 7, 0, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2004, 'habburger', 'sofa', 8, 0, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2005, 'habburger', 'sofa', 12, 0, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2006, 'habburger', 'table', 13, 0, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2007, 'habburger', 'sofa', 14, 0, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2008, 'habburger', 'trashcan', 15, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2009, 'habburger', 'sofa2', 0, 1, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2010, 'habburger', 'table2', 1, 1, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2011, 'habburger', 'sofa2', 2, 1, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2012, 'habburger', 'sofa2', 6, 1, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2013, 'habburger', 'table2', 7, 1, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2014, 'habburger', 'sofa2', 8, 1, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2015, 'habburger', 'sofa2', 12, 1, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2016, 'habburger', 'table2', 13, 1, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2017, 'habburger', 'sofa2', 14, 1, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2018, 'habburger', 'bardesk3', 2, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2019, 'habburger', 'sofa', 7, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2020, 'habburger', 'sofa2', 8, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2021, 'habburger', 'sofa', 12, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2022, 'habburger', 'sofa2', 13, 7, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2023, 'habburger', 'bardesk4', 2, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2024, 'habburger', 'tablesp', 7, 8, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2025, 'habburger', 'table2', 8, 8, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2026, 'habburger', 'table', 12, 8, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2027, 'habburger', 'table2', 13, 8, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2028, 'habburger', 'bardesk', 2, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2029, 'habburger', 'sofa', 7, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2030, 'habburger', 'sofa2', 8, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2031, 'habburger', 'sofa', 12, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2032, 'habburger', 'sofa2', 13, 9, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2033, 'habburger', 'bardesk2', 2, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2034, 'habburger', 'bardesk', 2, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2035, 'habburger', 'bardesk', 2, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2036, 'habburger', 'sofa', 7, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2037, 'habburger', 'sofa2', 8, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2038, 'habburger', 'sofa', 12, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2039, 'habburger', 'sofa2', 13, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2040, 'habburger', 'bardesk', 2, 13, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2041, 'habburger', 'table', 7, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2042, 'habburger', 'table2', 8, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2043, 'habburger', 'tablesp', 12, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2044, 'habburger', 'table2', 13, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2045, 'habburger', 'sofa', 7, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2046, 'habburger', 'sofa2', 8, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2047, 'habburger', 'sofa', 12, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2048, 'habburger', 'sofa2', 13, 14, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2049, 'pizza', 'pizza_chair', 1, 11, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2050, 'pizza', 'pizza_chair', 1, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2051, 'pizza', 'pizza_chair', 1, 19, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2052, 'pizza', 'pizza_chair', 1, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2053, 'pizza', 'pizza_chair', 11, 21, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2054, 'pizza', 'pizza_chair', 11, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2055, 'pizza', 'pizza_chair', 14, 21, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2056, 'pizza', 'pizza_chair', 14, 22, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2057, 'pizza', 'pizza_chair', 2, 11, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2058, 'pizza', 'pizza_chair', 2, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2059, 'pizza', 'pizza_chair', 2, 19, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2060, 'pizza', 'pizza_chair', 2, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2061, 'pizza', 'pizza_plant1', 0, 25, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2062, 'pizza', 'pizza_plant1', 15, 0, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2063, 'pizza', 'pizza_plant1', 15, 25, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2064, 'pizza', 'pizza_plant2', 0, 6, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2065, 'pizza', 'pizza_sofa1', 14, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2066, 'pizza', 'pizza_sofa1', 14, 3, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2067, 'pizza', 'pizza_sofa2', 15, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2068, 'pizza', 'pizza_sofa2', 15, 3, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2069, 'pizza', 'pizza_sofa3', 14, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2070, 'pizza', 'pizza_sofa3', 14, 6, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2071, 'pizza', 'pizza_sofa4', 15, 13, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2072, 'pizza', 'pizza_sofa4', 15, 6, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2073, 'pizza', 'pizza_table', 13, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2074, 'pizza', 'pizza_table', 15, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2075, 'pizza', 'pizza_table', 15, 5, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2076, 'pizza', 'pizza_table', 2, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2077, 'pizza', 'pizza_table', 2, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2078, 'pizza', 'deska', 0, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2079, 'pizza', 'deskb', 1, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2080, 'pizza', 'deskc', 2, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2081, 'pizza', 'deskd', 2, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2082, 'pizza', 'deske', 2, 3, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2083, 'pizza', 'deskf', 2, 2, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2084, 'pizza', 'deskg', 3, 2, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2085, 'pizza', 'deskh', 4, 2, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2086, 'pizza', 'deski', 5, 2, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2087, 'pizza', 'deskj', 6, 2, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2088, 'pizza', 'deskk', 6, 1, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2089, 'pizza', 'deskl', 6, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2090, 'bb_lobby_1', 'bb_crossrd', 3, 0, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2091, 'bb_lobby_1', 'bb_bench1', 4, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2092, 'bb_lobby_1', 'bb_bench2', 5, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2093, 'bb_lobby_1', 'bb_plant1', 8, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2094, 'bb_lobby_1', 'bb_sofa1', 9, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2095, 'bb_lobby_1', 'bb_sofa2', 10, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2096, 'bb_lobby_1', 'bb_plant1', 11, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2097, 'bb_lobby_1', 'bb_sofa1', 12, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2098, 'bb_lobby_1', 'bb_sofa2', 13, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2099, 'bb_lobby_1', 'bb_plant1', 14, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2100, 'bb_lobby_1', 'bb_bench1', 16, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2101, 'bb_lobby_1', 'bb_bench2', 17, 0, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2102, 'bb_lobby_1', 'bb_corner1out', 18, 0, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2103, 'bb_lobby_1', 'bb_bench1', 3, 1, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2104, 'bb_lobby_1', 'bb_wallend1in', 18, 1, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2105, 'bb_lobby_1', 'bb_bench2', 3, 2, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2106, 'bb_lobby_1', 'bb_wallend1in', 18, 2, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2107, 'bb_lobby_1', 'bb_plant3', 3, 3, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2108, 'bb_lobby_1', 'bb_special', 7, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2109, 'bb_lobby_1', 'bb_wallend1in', 8, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2110, 'bb_lobby_1', 'bb_wallend1in', 9, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2111, 'bb_lobby_1', 'bb_wallend1in', 10, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2112, 'bb_lobby_1', 'bb_wallend1in', 11, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2113, 'bb_lobby_1', 'bb_crossrd', 12, 3, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2114, 'bb_lobby_1', 'bb_crossrd', 16, 3, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2115, 'bb_lobby_1', 'bb_wallend1in', 17, 3, 2, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2116, 'bb_lobby_1', 'bb_crossrd', 18, 3, 2, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2117, 'bb_lobby_1', 'bb_wallend2in', 3, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2118, 'bb_lobby_1', 'bb_wallend1in', 7, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2119, 'bb_lobby_1', 'bb_bench1', 8, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2120, 'bb_lobby_1', 'bb_bench2', 9, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2121, 'bb_lobby_1', 'bb_bench1', 10, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2122, 'bb_lobby_1', 'bb_bench2', 11, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2123, 'bb_lobby_1', 'bb_wallend2in', 12, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2124, 'bb_lobby_1', 'bb_wallend1in', 16, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2125, 'bb_lobby_1', 'bb_bench1', 17, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2126, 'bb_lobby_1', 'bb_bench2', 18, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2127, 'bb_lobby_1', 'bb_wallendout', 19, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2128, 'bb_lobby_1', 'bb_stool', 7, 5, 1, 3, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2129, 'bb_lobby_1', 'bb_stool', 12, 5, 1, 5, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2130, 'bb_lobby_1', 'bb_bench1', 19, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2131, 'bb_lobby_1', 'bb_stool', 3, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2132, 'bb_lobby_1', 'bb_bench2', 19, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2133, 'bb_lobby_1', 'bb_chair', 9, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2134, 'bb_lobby_1', 'bb_chair', 10, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2135, 'bb_lobby_1', 'bb_bench1', 17, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2136, 'bb_lobby_1', 'bb_bench2', 18, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2137, 'bb_lobby_1', 'bb_wallendout', 19, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2138, 'bb_lobby_1', 'bb_stool', 3, 8, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2139, 'bb_lobby_1', 'bb_extra', 17, 8, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2140, 'bb_lobby_1', 'bb_extra', 18, 8, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2141, 'bb_lobby_1', 'bb_crossrd', 19, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2142, 'bb_lobby_1', 'bb_stool', 3, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2143, 'bb_lobby_1', 'bb_chair', 9, 9, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2144, 'bb_lobby_1', 'bb_chair', 10, 9, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2145, 'bb_lobby_1', 'bb_bench1', 17, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2146, 'bb_lobby_1', 'bb_bench2', 18, 9, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2147, 'bb_lobby_1', 'bb_wallendout', 19, 9, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2148, 'bb_lobby_1', 'bb_bench1', 19, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2149, 'bb_lobby_1', 'bb_stool', 7, 11, 1, 1, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2150, 'bb_lobby_1', 'bb_stool', 12, 11, 1, 7, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2151, 'bb_lobby_1', 'bb_bench2', 19, 11, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2152, 'bb_lobby_1', 'bb_wallend1in', 7, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2153, 'bb_lobby_1', 'bb_bench1', 8, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2154, 'bb_lobby_1', 'bb_bench2', 9, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2155, 'bb_lobby_1', 'bb_bench1', 10, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2156, 'bb_lobby_1', 'bb_bench2', 11, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2157, 'bb_lobby_1', 'bb_wallend2in', 12, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2158, 'bb_lobby_1', 'bb_bench1', 17, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2159, 'bb_lobby_1', 'bb_bench2', 18, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2160, 'bb_lobby_1', 'bb_wallendout', 19, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2161, 'bb_lobby_1', 'bb_corner1out', 7, 13, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2162, 'bb_lobby_1', 'bb_wallout', 8, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2163, 'bb_lobby_1', 'bb_wallout', 9, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2164, 'bb_lobby_1', 'bb_wallout', 10, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2165, 'bb_lobby_1', 'bb_wallout', 11, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2166, 'bb_lobby_1', 'bb_special', 12, 13, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2167, 'bb_lobby_1', 'bb_wallendout', 16, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2168, 'bb_lobby_1', 'bb_wallout', 17, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2169, 'bb_lobby_1', 'bb_wallout', 18, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2170, 'bb_lobby_1', 'bb_corner1out', 19, 13, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2171, 'bb_lobby_1', 'bb_plant0', 9, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2172, 'bb_lobby_1', 'bb_sofa1', 10, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2173, 'bb_lobby_1', 'bb_sofa2', 11, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2174, 'bb_lobby_1', 'bb_plant2', 12, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2175, 'bb_lobby_1', 'bb_plant2', 16, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2176, 'bb_lobby_1', 'bb_sofa1', 17, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2177, 'bb_lobby_1', 'bb_sofa2', 18, 14, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2178, 'bb_lobby_1', 'bb_plant0', 19, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2179, 'bb_lobby_1', 'bb_sofa1', 9, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2180, 'bb_lobby_1', 'bb_sofa1', 19, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2181, 'bb_lobby_1', 'bb_sofa2', 9, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2182, 'bb_lobby_1', 'bb_sofa2', 19, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2183, 'bb_lobby_1', 'bb_sofa1', 9, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2184, 'bb_lobby_1', 'bb_sofa1', 19, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2185, 'bb_lobby_1', 'bb_sofa2', 9, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2186, 'bb_lobby_1', 'bb_sofa2', 19, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2187, 'bb_lobby_1', 'bb_plant0', 9, 19, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2188, 'bb_lobby_1', 'bb_sofa1', 10, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2189, 'bb_lobby_1', 'bb_sofa2', 11, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2190, 'bb_lobby_1', 'bb_plant3', 12, 19, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2191, 'bb_lobby_1', 'bb_plant3', 16, 19, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2192, 'bb_lobby_1', 'bb_sofa1', 17, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2193, 'bb_lobby_1', 'bb_sofa2', 18, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2194, 'bb_lobby_1', 'bb_plant0', 19, 19, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2195, 'snowwar_lobby_1', 'sw_barrellchair', 31, 18, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2196, 'snowwar_lobby_1', 'sw_barrellchair', 31, 19, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2197, 'snowwar_lobby_1', 'sw_barrellchair', 30, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2198, 'snowwar_lobby_1', 'sw_barrellchair', 37, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2199, 'snowwar_lobby_1', 'sw_barrellchair', 39, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2200, 'snowwar_lobby_1', 'sw_barrellchair', 41, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2201, 'snowwar_lobby_1', 'sw_chair1', 30, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2202, 'snowwar_lobby_1', 'sw_chair2', 31, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2203, 'snowwar_lobby_1', 'sw_chair2', 32, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2204, 'snowwar_lobby_1', 'sw_chair2', 33, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2205, 'snowwar_lobby_1', 'sw_chair3', 34, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2206, 'snowwar_lobby_1', 'sw_table1', 30, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2207, 'snowwar_lobby_1', 'sw_table2', 31, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2208, 'snowwar_lobby_1', 'sw_table3', 32, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2209, 'snowwar_lobby_1', 'sw_table4', 33, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2210, 'snowwar_lobby_1', 'sw_table5', 34, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2211, 'snowwar_lobby_1', 'sw_chair1', 30, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2212, 'snowwar_lobby_1', 'sw_chair2', 31, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2213, 'snowwar_lobby_1', 'sw_chair2', 32, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2214, 'snowwar_lobby_1', 'sw_chair2', 33, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2215, 'snowwar_lobby_1', 'sw_chair3', 34, 26, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2216, 'snowwar_lobby_1', 'sw_chair1', 30, 29, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2217, 'snowwar_lobby_1', 'sw_chair2', 31, 29, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2218, 'snowwar_lobby_1', 'sw_chair2', 32, 29, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2219, 'snowwar_lobby_1', 'sw_chair2', 33, 29, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2220, 'snowwar_lobby_1', 'sw_chair3', 34, 29, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2221, 'snowwar_lobby_1', 'sw_table1', 30, 30, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2222, 'snowwar_lobby_1', 'sw_table2', 31, 30, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2223, 'snowwar_lobby_1', 'sw_table3', 32, 30, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2224, 'snowwar_lobby_1', 'sw_table4', 33, 30, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2225, 'snowwar_lobby_1', 'sw_table5', 34, 30, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2226, 'snowwar_lobby_1', 'sw_chair1', 30, 31, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2227, 'snowwar_lobby_1', 'sw_chair2', 31, 31, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2228, 'snowwar_lobby_1', 'sw_chair2', 32, 31, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2229, 'snowwar_lobby_1', 'sw_chair2', 33, 31, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2230, 'snowwar_lobby_1', 'sw_chair3', 34, 31, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2231, 'snowwar_lobby_1', 'invisichair', 27, 32, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2232, 'snowwar_lobby_1', 'invisichair', 27, 33, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2233, 'snowwar_lobby_1', 'invisichair', 27, 34, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2234, 'snowwar_lobby_1', 'invisichair', 28, 36, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2235, 'snowwar_lobby_1', 'invisichair', 29, 36, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2236, 'snowwar_lobby_1', 'invisichair', 30, 36, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2237, 'snowwar_lobby_1', 'invisichair', 31, 36, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2238, 'tv_studio', 'much_camera3', 4, 13, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2239, 'tv_studio', 'much_chair', 14, 4, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2240, 'tv_studio', 'much_chair', 18, 5, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2241, 'tv_studio', 'much_chair', 18, 7, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2242, 'tv_studio', 'much_chair', 19, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2243, 'tv_studio', 'much_chair', 19, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2244, 'tv_studio', 'much_chair', 2, 6, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2245, 'tv_studio', 'much_chair', 5, 3, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2246, 'tv_studio', 'much_sofa1a', 0, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2247, 'tv_studio', 'much_sofa1a', 1, 18, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2248, 'tv_studio', 'much_sofa1a', 14, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2249, 'tv_studio', 'much_sofa1a', 14, 24, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2250, 'tv_studio', 'much_sofa1a', 18, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2251, 'tv_studio', 'much_sofa1a', 6, 27, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2252, 'tv_studio', 'much_sofa1a', 8, 1, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2253, 'tv_studio', 'much_sofa1a', 8, 31, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2254, 'tv_studio', 'much_sofa1b', 0, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2255, 'tv_studio', 'much_sofa1b', 10, 1, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2256, 'tv_studio', 'much_sofa1b', 15, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2257, 'tv_studio', 'much_sofa1b', 15, 24, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2258, 'tv_studio', 'much_sofa1b', 16, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2259, 'tv_studio', 'much_sofa1b', 18, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2260, 'tv_studio', 'much_sofa1b', 18, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2261, 'tv_studio', 'much_sofa1b', 2, 18, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2262, 'tv_studio', 'much_sofa1b', 3, 18, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2263, 'tv_studio', 'much_sofa1b', 6, 28, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2264, 'tv_studio', 'much_sofa1b', 6, 29, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2265, 'tv_studio', 'much_sofa1b', 6, 30, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2266, 'tv_studio', 'much_sofa1b', 9, 1, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2267, 'tv_studio', 'much_sofa1b', 9, 31, 4, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2268, 'tv_studio', 'much_stool', 14, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2269, 'tv_studio', 'much_stool', 14, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2270, 'tv_studio', 'much_stool', 14, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2271, 'tv_studio', 'much_stool', 14, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2272, 'tv_studio', 'much_table1', 10, 3, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2273, 'tv_studio', 'much_table1', 16, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2274, 'tv_studio', 'much_table1', 2, 16, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2275, 'tv_studio', 'much_table1', 8, 29, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2276, 'tv_studio', 'much_table2', 15, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2277, 'tv_studio', 'much_table2', 8, 28, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2278, 'tv_studio', 'much_table2', 9, 3, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2279, 'tv_studio', 'much_table3', 14, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2280, 'tv_studio', 'much_table3', 2, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2281, 'tv_studio', 'much_table3', 8, 27, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2282, 'tv_studio', 'much_table3', 8, 3, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2283, 'tv_studio', 'watermatic', 5, 25, 4, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2284, 'club_mammoth', 'bbarstool', 14, 0, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2285, 'club_mammoth', 'bbarstool', 14, 1, 4, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2286, 'club_mammoth', 'bbarstool', 14, 2, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2287, 'club_mammoth', 'elephantcouch2', 18, 4, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2288, 'club_mammoth', 'elephantcouch4', 21, 4, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2289, 'club_mammoth', 'elephantcouch1', 18, 5, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2290, 'club_mammoth', 'elephantcouch3', 21, 5, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2291, 'club_mammoth', 'tinypalm', 11, 6, 2, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2292, 'club_mammoth', 'plainstool1', 12, 6, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2293, 'club_mammoth', 'plainstool2', 13, 6, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2294, 'club_mammoth', 'plainstool2', 14, 6, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2295, 'club_mammoth', 'plainstool2', 15, 6, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2296, 'club_mammoth', 'plainstool2', 16, 6, 100000, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2297, 'club_mammoth', 'bbarstool', 15, 9, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2298, 'club_mammoth', 'bbarstool', 15, 10, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2299, 'club_mammoth', 'bbarstool', 15, 11, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2300, 'club_mammoth', 'bbarstool', 16, 11, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2301, 'club_mammoth', 'bbarstool', 17, 11, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2302, 'club_mammoth', 'plainstool3', 11, 15, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2303, 'club_mammoth', 'plainstool3', 11, 16, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2304, 'club_mammoth', 'plainstool3', 11, 17, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2305, 'club_mammoth', 'plainstool3', 11, 18, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2306, 'club_mammoth', 'elephantcouch2', 20, 24, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2307, 'club_mammoth', 'elephantcouch4', 23, 24, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2308, 'club_mammoth', 'elephantcouch1', 20, 25, 4, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2309, 'club_mammoth', 'elephantcouch3', 23, 25, 4, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2310, 'club_mammoth', 'boothsofa1', 7, 27, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2311, 'club_mammoth', 'boothsofa3', 11, 27, 6, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2312, 'club_mammoth', 'boothsofa1', 13, 27, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2313, 'club_mammoth', 'boothsofa1', 7, 28, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2314, 'club_mammoth', 'boothsofa3', 11, 28, 6, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2315, 'club_mammoth', 'tinypalm', 12, 28, 6, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2316, 'club_mammoth', 'boothsofa1', 13, 28, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2317, 'club_mammoth', 'boothsofa1', 7, 29, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2318, 'club_mammoth', 'boothsofa3', 11, 29, 6, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2319, 'club_mammoth', 'boothsofa1', 13, 29, 6, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2320, 'club_mammoth', 'boothsofacorner1', 7, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2321, 'club_mammoth', 'boothsofa2', 8, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2322, 'club_mammoth', 'boothsofa2', 9, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2323, 'club_mammoth', 'boothsofa2', 10, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2324, 'club_mammoth', 'boothsofacorner2', 11, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2325, 'club_mammoth', 'tinypalm', 12, 30, 6, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2326, 'club_mammoth', 'boothsofacorner1', 13, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2327, 'club_mammoth', 'boothsofa2', 14, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2328, 'club_mammoth', 'boothsofa2', 15, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2329, 'club_mammoth', 'boothsofa2', 16, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2330, 'club_mammoth', 'boothsofa2', 17, 30, 6, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2331, 'ice_cafe', 'cafe_chair_cream', 17, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2332, 'ice_cafe', 'infokiosk', 17, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2333, 'ice_cafe', 'cafe_deskb', 1, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2334, 'ice_cafe', 'cafe_chair_blue', 5, 17, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2335, 'ice_cafe', 'cafe_table_biga_blue', 4, 2, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2336, 'ice_cafe', 'infokiosk', 15, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2337, 'ice_cafe', 'cafe_chair_blue', 3, 1, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2338, 'ice_cafe', 'cafe_sofaa', 2, 21, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2339, 'ice_cafe', 'cafe_deskb', 1, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2340, 'ice_cafe', 'cafe_sofaa', 2, 23, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2341, 'ice_cafe', 'cafe_chair_cream', 13, 3, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2342, 'ice_cafe', 'cafe_chair_cream', 10, 4, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2343, 'ice_cafe', 'cafe_table_cream', 15, 10, 0, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2344, 'ice_cafe', 'cafe_chair_cream', 13, 4, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2345, 'ice_cafe', 'cafe_chair_blue', 3, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2346, 'ice_cafe', 'cafe_deskb', 1, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2347, 'ice_cafe', 'cafe_sofab', 2, 20, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2348, 'ice_cafe', 'construction', 8, 22, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2349, 'ice_cafe', 'cafe_chair_blue', 3, 2, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2350, 'ice_cafe', 'cafe_chair_cream', 14, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2351, 'ice_cafe', 'cafe_chair_cream', 12, 5, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2352, 'ice_cafe', 'cafe_chair_cream', 14, 17, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2353, 'ice_cafe', 'cafe_chair_blue', 5, 10, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2354, 'ice_cafe', 'cafe_chair_blue', 5, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2355, 'ice_cafe', 'cafe_chair_cream', 15, 9, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2356, 'ice_cafe', 'cafe_table_bigb_cream', 12, 2, 0, 0, 0.001, 0, 0, 'solid', '', NULL, NULL), + (2357, 'ice_cafe', 'cafe_chair_blue', 3, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2358, 'ice_cafe', 'cafe_chair_cream', 10, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2359, 'ice_cafe', 'cafe_table_biga_cream', 11, 3, 0, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2360, 'ice_cafe', 'cafe_chair_cream', 10, 19, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2361, 'ice_cafe', 'cafe_chair_cream', 17, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2362, 'ice_cafe', 'cafe_chair_blue', 5, 4, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2363, 'ice_cafe', 'cafe_chair_blue', 6, 1, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2364, 'ice_cafe', 'cafe_chair_blue', 6, 16, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2365, 'ice_cafe', 'cafe_chair_blue', 3, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2366, 'ice_cafe', 'cafe_chair_cream', 11, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2367, 'ice_cafe', 'cafe_table_bigb_blue', 5, 1, 1, 0, 0.001, 0, 0, 'solid', '', NULL, NULL), + (2368, 'ice_cafe', 'cafe_chair_cream', 11, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2369, 'ice_cafe', 'cafe_table_blue', 4, 8, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2370, 'ice_cafe', 'cafe_table_cream', 15, 17, 0, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2371, 'ice_cafe', 'cafe_chair_cream', 10, 2, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2372, 'ice_cafe', 'infokiosk', 16, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2373, 'ice_cafe', 'cafe_sofab', 2, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2374, 'ice_cafe', 'cafe_chair_cream', 13, 20, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2375, 'ice_cafe', 'cafe_chair_cream', 15, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2376, 'ice_cafe', 'cafe_chair_cream', 16, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2377, 'ice_cafe', 'cafe_deskc', 1, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2378, 'ice_cafe', 'cafe_chair_blue', 6, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2379, 'ice_cafe', 'cafe_chair_cream', 15, 12, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2380, 'ice_cafe', 'cafe_chair_cream', 11, 1, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2381, 'ice_cafe', 'cafe_chair_blue', 6, 2, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2382, 'ice_cafe', 'cafe_table_blue', 4, 15, 1, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2383, 'ice_cafe', 'cafe_chair_blue', 6, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2384, 'ice_cafe', 'cafe_deskb', 1, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2385, 'ice_cafe', 'cafe_table_cream', 11, 19, 0, 2, 0.001, 2, 2, 'extra_parameter', '', NULL, NULL), + (2386, 'ice_cafe', 'cafe_deskb', 1, 14, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2387, 'ice_cafe', 'cafe_chair_cream', 13, 2, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2388, 'ice_cafe', 'cafe_chair_blue', 4, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2389, 'netcafe', 'k', 15, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2390, 'netcafe', 'k', 12, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2391, 'netcafe', 'k', 15, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2392, 'netcafe', 'k', 16, 1, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2393, 'netcafe', 'k', 18, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2394, 'netcafe', 'k', 18, 9, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2395, 'netcafe', 'k', 19, 1, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2396, 'netcafe', 'k', 4, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2397, 'netcafe', 'k', 4, 12, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2398, 'netcafe', 'k', 6, 18, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2399, 'netcafe', 'k', 9, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2400, 'netcafe', 'kukat1', 13, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2401, 'netcafe', 'kukat1', 20, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2402, 'netcafe', 'kukat1', 6, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2403, 'netcafe', 'kukat1', 8, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2404, 'netcafe', 'kukat2', 12, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2405, 'netcafe', 'kukat2', 19, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2406, 'netcafe', 'kukat2', 5, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2407, 'netcafe', 'kukat2', 7, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2408, 'netcafe', 'kukat3', 9, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2409, 'netcafe', 'kukat3', 9, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2410, 'netcafe', 'kukat4', 9, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2411, 'netcafe', 'kukat4', 9, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2412, 'netcafe', 'kukat5', 6, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2413, 'netcafe', 'kukat6', 5, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2414, 'netcafe', 'kukka', 20, 23, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2415, 'netcafe', 'kukka2', 15, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2416, 'netcafe', 'l', 12, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2417, 'netcafe', 'l', 13, 1, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2418, 'netcafe', 'l', 15, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2419, 'netcafe', 'l', 18, 8, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2420, 'netcafe', 'l', 4, 11, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2421, 'netcafe', 'l', 9, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2422, 'netcafe', 'l', 9, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2423, 'netcafe', 'm', 10, 1, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2424, 'netcafe', 'm', 12, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2425, 'netcafe', 'm', 12, 9, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2426, 'netcafe', 'm', 15, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2427, 'netcafe', 'm', 18, 7, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2428, 'netcafe', 'm', 4, 13, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2429, 'netcafe', 'm', 4, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2430, 'netcafe', 'm', 6, 21, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2431, 'netcafe', 'm', 9, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2432, 'netcafe', 'shift1', 0, 5, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2433, 'netcafe', 'shift1', 12, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2434, 'netcafe', 'shift1', 19, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2435, 'netcafe', 'shift1', 2, 5, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2436, 'netcafe', 'shift1', 6, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2437, 'netcafe', 'shift2', 1, 5, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2438, 'netcafe', 'shift2', 13, 4, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2439, 'netcafe', 'shift2', 20, 4, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2440, 'netcafe', 'shift2', 3, 5, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2441, 'netcafe', 'shift2', 7, 0, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2442, 'netcafe', 'sofabig1', 20, 21, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2443, 'netcafe', 'sofabig2', 20, 19, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2444, 'netcafe', 'sofabig2', 20, 20, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2445, 'netcafe', 'sofabig3', 20, 18, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2446, 'netcafe', 'sofalittle1', 18, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2447, 'netcafe', 'sofalittle2', 17, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2448, 'netcafe', 'sofalittle3', 16, 23, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2449, 'netcafe', 'table1', 17, 19, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2450, 'netcafe', 'table1', 17, 20, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2451, 'netcafe', 'table1', 17, 21, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2452, 'netcafe', 'table2', 16, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2453, 'netcafe', 'table2', 16, 7, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2454, 'netcafe', 'table2', 16, 8, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2455, 'netcafe', 'table2', 16, 9, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2456, 'netcafe', 'table3', 10, 10, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2457, 'netcafe', 'table3', 10, 11, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2458, 'netcafe', 'table3', 10, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2459, 'netcafe', 'table3', 10, 9, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2460, 'netcafe', 'tablecorner', 11, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2461, 'netcafe', 'tablecorner', 17, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2462, 'netcafe', 'tablecorner', 18, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2463, 'netcafe', 'watermatic', 5, 0, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2464, 'hallway0', 'hw_chair', 15, 0, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2465, 'hallway0', 'hw_chair', 15, 1, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2466, 'hallway0', 'hw_chair', 17, 0, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2467, 'hallway0', 'hw_chair', 17, 1, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2468, 'hallway0', 'hw_chair', 20, 0, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2469, 'hallway0', 'hw_chair', 20, 1, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2470, 'hallway0', 'hw_chair', 20, 2, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2471, 'hallway0', 'hw_chair', 22, 0, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2472, 'hallway0', 'hw_chair', 22, 1, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2473, 'hallway0', 'hw_chair', 22, 2, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2474, 'hallway0', 'hw_chair', 25, 0, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2475, 'hallway0', 'hw_chair', 25, 1, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2476, 'hallway0', 'hw_chair', 27, 0, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2477, 'hallway0', 'hw_chair', 27, 1, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2478, 'hallway0', 'hw_ero1', 17, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2479, 'hallway0', 'hw_ero2', 18, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2480, 'hallway0', 'hw_ero5', 19, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2481, 'hallway0', 'hw_plant', 4, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2482, 'hallway0', 'hw_plant', 4, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2483, 'hallway0', 'hw_pntg', 18, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2484, 'hallway0', 'hw_smtble', 7, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2485, 'hallway0', 'hw_sofa1', 12, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2486, 'hallway0', 'hw_sofa1', 5, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2487, 'hallway0', 'hw_sofa1', 8, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2488, 'hallway0', 'hw_sofa2', 12, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2489, 'hallway0', 'hw_sofa2', 12, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2490, 'hallway0', 'hw_sofa2', 12, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2491, 'hallway0', 'hw_sofa3', 12, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2492, 'hallway0', 'hw_sofa3', 6, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2493, 'hallway0', 'hw_sofa3', 9, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2494, 'hallway0', 'hw_table1', 16, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2495, 'hallway0', 'hw_table1', 21, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2496, 'hallway0', 'hw_table1', 26, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2497, 'hallway0', 'hw_table2', 21, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2498, 'hallway0', 'hw_table3', 16, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2499, 'hallway0', 'hw_table3', 21, 2, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2500, 'hallway0', 'hw_table3', 26, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2501, 'hallway0', 'hw_watermatic', 10, 0, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2502, 'hallway0', 'pillar1', 12, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2503, 'hallway9', 'hw_ero1', 12, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2504, 'hallway9', 'hw_ero1', 14, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2505, 'hallway9', 'hw_ero1', 14, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2506, 'hallway9', 'hw_ero1', 19, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2507, 'hallway9', 'hw_ero2', 12, 15, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2508, 'hallway9', 'hw_ero2', 15, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2509, 'hallway9', 'hw_ero2', 15, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2510, 'hallway9', 'hw_ero2', 19, 15, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2511, 'hallway9', 'hw_ero3', 12, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2512, 'hallway9', 'hw_ero3', 16, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2513, 'hallway9', 'hw_ero3', 16, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2514, 'hallway9', 'hw_ero3', 19, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2515, 'hallway9', 'hw_ero5', 12, 17, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2516, 'hallway9', 'hw_ero5', 17, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2517, 'hallway9', 'hw_ero5', 17, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2518, 'hallway9', 'hw_ero5', 19, 17, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2519, 'hallway9', 'hw_plant', 12, 27, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2520, 'hallway9', 'hw_shelf', 12, 4, 0, 4, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2521, 'hallway9', 'hw_shelf', 4, 12, 0, 2, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2522, 'hallway9', 'hw_smtble', 10, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2523, 'hallway9', 'hw_smtble', 12, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2524, 'hallway9', 'hw_smtble', 12, 21, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2525, 'hallway9', 'hw_smtble', 21, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2526, 'hallway9', 'hw_sofa1', 12, 22, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2527, 'hallway9', 'hw_sofa1', 12, 6, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2528, 'hallway9', 'hw_sofa1', 22, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2529, 'hallway9', 'hw_sofa1', 6, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2530, 'hallway9', 'hw_sofa2', 12, 23, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2531, 'hallway9', 'hw_sofa2', 12, 24, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2532, 'hallway9', 'hw_sofa2', 12, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2533, 'hallway9', 'hw_sofa2', 12, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2534, 'hallway9', 'hw_sofa2', 23, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2535, 'hallway9', 'hw_sofa2', 24, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2536, 'hallway9', 'hw_sofa2', 7, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2537, 'hallway9', 'hw_sofa2', 8, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2538, 'hallway9', 'hw_sofa3', 12, 25, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2539, 'hallway9', 'hw_sofa3', 12, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2540, 'hallway9', 'hw_sofa3', 25, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2541, 'hallway9', 'hw_sofa3', 9, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2542, 'hallway9', 'hw_watermatic', 27, 12, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2543, 'hallway9', 'pillar1', 19, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2544, 'hallway9', 'pillar1', 4, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2545, 'hallway2', 'hw_chair', 17, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2546, 'hallway2', 'hw_chair', 17, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2547, 'hallway2', 'hw_chair', 19, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2548, 'hallway2', 'hw_chair', 19, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2549, 'hallway2', 'hw_chair', 20, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2550, 'hallway2', 'hw_chair', 22, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2551, 'hallway2', 'hw_chair', 22, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2552, 'hallway2', 'hw_chair', 22, 18, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2553, 'hallway2', 'hw_ero1', 12, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2554, 'hallway2', 'hw_ero1', 22, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2555, 'hallway2', 'hw_ero1', 4, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2556, 'hallway2', 'hw_ero2', 13, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2557, 'hallway2', 'hw_ero2', 16, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2558, 'hallway2', 'hw_ero3', 14, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2559, 'hallway2', 'hw_ero4', 15, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2560, 'hallway2', 'hw_ero5', 17, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2561, 'hallway2', 'hw_ero5', 23, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2562, 'hallway2', 'hw_ero5', 5, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2563, 'hallway2', 'hw_plant', 13, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2564, 'hallway2', 'hw_plant', 18, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2565, 'hallway2', 'hw_plant', 3, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2566, 'hallway2', 'hw_plant', 4, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2567, 'hallway2', 'hw_smtble', 17, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2568, 'hallway2', 'hw_smtble', 18, 18, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2569, 'hallway2', 'hw_smtble', 21, 13, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2570, 'hallway2', 'hw_smtble', 22, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2571, 'hallway2', 'hw_smtble', 4, 14, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2572, 'hallway2', 'hw_smtble', 7, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2573, 'hallway2', 'hw_sofa1', 4, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2574, 'hallway2', 'hw_sofa1', 4, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2575, 'hallway2', 'hw_sofa1', 5, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2576, 'hallway2', 'hw_sofa1', 8, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2577, 'hallway2', 'hw_sofa3', 4, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2578, 'hallway2', 'hw_sofa3', 4, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2579, 'hallway2', 'hw_sofa3', 6, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2580, 'hallway2', 'hw_sofa3', 9, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2581, 'hallway2', 'hw_statue', 19, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2582, 'hallway2', 'hw_watermatic', 11, 13, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2583, 'hallway2', 'pillar1', 11, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2584, 'hallway1', 'hw_chair', 13, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2585, 'hallway1', 'hw_chair', 17, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2586, 'hallway1', 'hw_chair', 17, 18, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2587, 'hallway1', 'hw_chair', 18, 16, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2588, 'hallway1', 'hw_chair', 18, 18, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2589, 'hallway1', 'hw_chair', 4, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2590, 'hallway1', 'hw_chair', 4, 18, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2591, 'hallway1', 'hw_ero1', 17, 13, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2592, 'hallway1', 'hw_ero5', 18, 13, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2593, 'hallway1', 'hw_painting1', 22, 5, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2594, 'hallway1', 'hw_plant', 12, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2595, 'hallway1', 'hw_plant', 26, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2596, 'hallway1', 'hw_plant', 4, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2597, 'hallway1', 'hw_plant', 4, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2598, 'hallway1', 'hw_smtble', 12, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2599, 'hallway1', 'hw_smtble', 22, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2600, 'hallway1', 'hw_smtble', 7, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2601, 'hallway1', 'hw_sofa1', 12, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2602, 'hallway1', 'hw_sofa1', 19, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2603, 'hallway1', 'hw_sofa1', 23, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2604, 'hallway1', 'hw_sofa1', 5, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2605, 'hallway1', 'hw_sofa1', 8, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2606, 'hallway1', 'hw_sofa2', 12, 6, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2607, 'hallway1', 'hw_sofa2', 12, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2608, 'hallway1', 'hw_sofa2', 20, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2609, 'hallway1', 'hw_sofa2', 24, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2610, 'hallway1', 'hw_sofa3', 12, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2611, 'hallway1', 'hw_sofa3', 21, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2612, 'hallway1', 'hw_sofa3', 25, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2613, 'hallway1', 'hw_sofa3', 6, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2614, 'hallway1', 'hw_sofa3', 9, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2615, 'hallway1', 'hw_table1', 17, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2616, 'hallway1', 'hw_table3', 18, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2617, 'hallway1', 'hw_watermatic', 12, 10, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2618, 'hallway1', 'pillar1', 10, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2619, 'hallway3', 'hw_chair', 13, 4, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2620, 'hallway3', 'hw_chair', 13, 5, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2621, 'hallway3', 'hw_chair', 15, 4, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2622, 'hallway3', 'hw_chair', 15, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2623, 'hallway3', 'hw_chair', 5, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2624, 'hallway3', 'hw_chair', 7, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2625, 'hallway3', 'hw_chair', 7, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2626, 'hallway3', 'hw_chair', 9, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2627, 'hallway3', 'hw_chair', 9, 11, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2628, 'hallway3', 'hw_ero1', 12, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2629, 'hallway3', 'hw_ero2', 12, 11, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2630, 'hallway3', 'hw_ero2', 12, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2631, 'hallway3', 'hw_ero2', 12, 17, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2632, 'hallway3', 'hw_ero3', 12, 12, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2633, 'hallway3', 'hw_ero3', 12, 15, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2634, 'hallway3', 'hw_ero3', 12, 18, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2635, 'hallway3', 'hw_ero4', 12, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2636, 'hallway3', 'hw_ero4', 12, 16, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2637, 'hallway3', 'hw_ero5', 12, 19, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2638, 'hallway3', 'hw_plant', 10, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2639, 'hallway3', 'hw_plant', 26, 4, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2640, 'hallway3', 'hw_plant', 4, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2641, 'hallway3', 'hw_smtble', 4, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2642, 'hallway3', 'hw_sofa1', 21, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2643, 'hallway3', 'hw_sofa2', 22, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2644, 'hallway3', 'hw_sofa2', 23, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2645, 'hallway3', 'hw_sofa2', 24, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2646, 'hallway3', 'hw_sofa3', 25, 4, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2647, 'hallway3', 'hw_table1', 14, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2648, 'hallway3', 'hw_table1', 8, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2649, 'hallway3', 'hw_table3', 14, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2650, 'hallway3', 'hw_table3', 8, 11, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2651, 'hallway3', 'hw_watermatic', 19, 13, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2652, 'hallway3', 'pillar1', 19, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2653, 'hallway4', 'hw_chair', 20, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2654, 'hallway4', 'hw_chair', 20, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2655, 'hallway4', 'hw_chair', 20, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2656, 'hallway4', 'hw_chair', 20, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2657, 'hallway4', 'hw_chair', 22, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2658, 'hallway4', 'hw_chair', 22, 13, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2659, 'hallway4', 'hw_chair', 22, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2660, 'hallway4', 'hw_chair', 22, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2661, 'hallway4', 'hw_ero1', 17, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2662, 'hallway4', 'hw_ero2', 18, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2663, 'hallway4', 'hw_ero2', 21, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2664, 'hallway4', 'hw_ero3', 19, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2665, 'hallway4', 'hw_ero4', 20, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2666, 'hallway4', 'hw_ero5', 22, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2667, 'hallway4', 'hw_painting1', 19, 1, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2668, 'hallway4', 'hw_plant', 14, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2669, 'hallway4', 'hw_plant', 27, 1, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2670, 'hallway4', 'hw_plant', 27, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2671, 'hallway4', 'hw_plant', 4, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2672, 'hallway4', 'hw_plant', 4, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2673, 'hallway4', 'hw_smtble', 19, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2674, 'hallway4', 'hw_smtble', 7, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2675, 'hallway4', 'hw_sofa1', 15, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2676, 'hallway4', 'hw_sofa1', 20, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2677, 'hallway4', 'hw_sofa1', 5, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2678, 'hallway4', 'hw_sofa1', 8, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2679, 'hallway4', 'hw_sofa2', 16, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2680, 'hallway4', 'hw_sofa2', 17, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2681, 'hallway4', 'hw_sofa2', 21, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2682, 'hallway4', 'hw_sofa2', 22, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2683, 'hallway4', 'hw_sofa3', 18, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2684, 'hallway4', 'hw_sofa3', 23, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2685, 'hallway4', 'hw_sofa3', 6, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2686, 'hallway4', 'hw_sofa3', 9, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2687, 'hallway4', 'hw_table1', 21, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2688, 'hallway4', 'hw_table1', 21, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2689, 'hallway4', 'hw_table3', 21, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2690, 'hallway4', 'hw_table3', 21, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2691, 'hallway4', 'hw_watermatic', 14, 7, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2692, 'hallway4', 'pillar1', 13, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2693, 'hallway5', 'hw_chair', 13, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2694, 'hallway5', 'hw_chair', 23, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2695, 'hallway5', 'hw_chair', 23, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2696, 'hallway5', 'hw_chair', 23, 7, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2697, 'hallway5', 'hw_chair', 23, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2698, 'hallway5', 'hw_chair', 23, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2699, 'hallway5', 'hw_chair', 25, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2700, 'hallway5', 'hw_chair', 25, 6, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2701, 'hallway5', 'hw_chair', 25, 7, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2702, 'hallway5', 'hw_chair', 25, 8, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2703, 'hallway5', 'hw_chair', 25, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2704, 'hallway5', 'hw_ero1', 15, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2705, 'hallway5', 'hw_ero1', 22, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2706, 'hallway5', 'hw_ero2', 23, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2707, 'hallway5', 'hw_ero3', 24, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2708, 'hallway5', 'hw_ero4', 25, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2709, 'hallway5', 'hw_ero5', 16, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2710, 'hallway5', 'hw_ero5', 26, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2711, 'hallway5', 'hw_plant', 12, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2712, 'hallway5', 'hw_plant', 17, 25, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2713, 'hallway5', 'hw_plant', 19, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2714, 'hallway5', 'hw_plant', 25, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2715, 'hallway5', 'hw_plant', 4, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2716, 'hallway5', 'hw_plant', 4, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2717, 'hallway5', 'hw_smtble', 12, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2718, 'hallway5', 'hw_smtble', 14, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2719, 'hallway5', 'hw_smtble', 21, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2720, 'hallway5', 'hw_smtble', 7, 12, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2721, 'hallway5', 'hw_sofa1', 12, 5, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2722, 'hallway5', 'hw_sofa1', 12, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2723, 'hallway5', 'hw_sofa1', 14, 23, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2724, 'hallway5', 'hw_sofa1', 15, 22, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2725, 'hallway5', 'hw_sofa1', 21, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2726, 'hallway5', 'hw_sofa1', 23, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2727, 'hallway5', 'hw_sofa1', 5, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2728, 'hallway5', 'hw_sofa1', 8, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2729, 'hallway5', 'hw_sofa2', 14, 24, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2730, 'hallway5', 'hw_sofa2', 16, 22, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2731, 'hallway5', 'hw_sofa2', 24, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2732, 'hallway5', 'hw_sofa3', 12, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2733, 'hallway5', 'hw_sofa3', 12, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2734, 'hallway5', 'hw_sofa3', 14, 25, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2735, 'hallway5', 'hw_sofa3', 17, 22, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2736, 'hallway5', 'hw_sofa3', 21, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2737, 'hallway5', 'hw_sofa3', 25, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2738, 'hallway5', 'hw_sofa3', 6, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2739, 'hallway5', 'hw_sofa3', 9, 12, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2740, 'hallway5', 'hw_table1', 24, 6, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2741, 'hallway5', 'hw_table2', 24, 7, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2742, 'hallway5', 'hw_table2', 24, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2743, 'hallway5', 'hw_table2', 24, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2744, 'hallway5', 'hw_table3', 24, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2745, 'hallway5', 'hw_watermatic', 18, 4, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2746, 'hallway5', 'pillar1', 12, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2747, 'hallway8', 'hw_chair', 17, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2748, 'hallway8', 'hw_chair', 17, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2749, 'hallway8', 'hw_chair', 17, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2750, 'hallway8', 'hw_chair', 17, 16, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2751, 'hallway8', 'hw_chair', 19, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2752, 'hallway8', 'hw_chair', 19, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2753, 'hallway8', 'hw_chair', 19, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2754, 'hallway8', 'hw_chair', 19, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2755, 'hallway8', 'hw_chair', 6, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2756, 'hallway8', 'hw_chair', 6, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2757, 'hallway8', 'hw_chair', 7, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2758, 'hallway8', 'hw_chair', 7, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2759, 'hallway8', 'hw_chair', 8, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2760, 'hallway8', 'hw_chair', 8, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2761, 'hallway8', 'hw_chair', 9, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2762, 'hallway8', 'hw_chair', 9, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2763, 'hallway8', 'hw_ero1', 12, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2764, 'hallway8', 'hw_ero1', 20, 0, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2765, 'hallway8', 'hw_ero2', 13, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2766, 'hallway8', 'hw_ero2', 16, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2767, 'hallway8', 'hw_ero2', 20, 1, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2768, 'hallway8', 'hw_ero2', 20, 2, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2769, 'hallway8', 'hw_ero3', 14, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2770, 'hallway8', 'hw_ero3', 17, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2771, 'hallway8', 'hw_ero4', 15, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2772, 'hallway8', 'hw_ero4', 18, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2773, 'hallway8', 'hw_ero5', 19, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2774, 'hallway8', 'hw_ero5', 20, 3, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2775, 'hallway8', 'hw_painting2', 7, 5, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2776, 'hallway8', 'hw_plant', 4, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2777, 'hallway8', 'hw_plant', 4, 18, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2778, 'hallway8', 'hw_shelf', 4, 11, 1, 2, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2779, 'hallway8', 'hw_shelf', 4, 4, 1, 2, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2780, 'hallway8', 'hw_sofa1', 21, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2781, 'hallway8', 'hw_sofa1', 4, 7, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2782, 'hallway8', 'hw_sofa1', 6, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2783, 'hallway8', 'hw_sofa2', 22, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2784, 'hallway8', 'hw_sofa2', 4, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2785, 'hallway8', 'hw_sofa2', 7, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2786, 'hallway8', 'hw_sofa3', 23, 0, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2787, 'hallway8', 'hw_sofa3', 4, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2788, 'hallway8', 'hw_sofa3', 8, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2789, 'hallway8', 'hw_table1', 18, 13, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2790, 'hallway8', 'hw_table1', 6, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2791, 'hallway8', 'hw_table2', 18, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2792, 'hallway8', 'hw_table2', 18, 15, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2793, 'hallway8', 'hw_table2', 7, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2794, 'hallway8', 'hw_table2', 8, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2795, 'hallway8', 'hw_table3', 18, 16, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2796, 'hallway8', 'hw_table3', 9, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2797, 'hallway8', 'hw_watermatic', 13, 4, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2798, 'hallway8', 'pillar0', 17, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2799, 'hallway8', 'pillar0', 22, 19, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2800, 'hallway8', 'pillar1', 11, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2801, 'hallway7', 'hw_chair', 12, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2802, 'hallway7', 'hw_chair', 12, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2803, 'hallway7', 'hw_chair', 13, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2804, 'hallway7', 'hw_chair', 13, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2805, 'hallway7', 'hw_chair', 14, 24, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2806, 'hallway7', 'hw_chair', 14, 26, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2807, 'hallway7', 'hw_ero1', 10, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2808, 'hallway7', 'hw_ero1', 10, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2809, 'hallway7', 'hw_ero1', 4, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2810, 'hallway7', 'hw_ero1', 4, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2811, 'hallway7', 'hw_ero5', 11, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2812, 'hallway7', 'hw_ero5', 11, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2813, 'hallway7', 'hw_ero5', 5, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2814, 'hallway7', 'hw_ero5', 5, 4, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2815, 'hallway7', 'hw_painting2', 5, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2816, 'hallway7', 'hw_plant', 10, 25, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2817, 'hallway7', 'hw_smtble', 9, 10, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2818, 'hallway7', 'hw_sofa1', 10, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2819, 'hallway7', 'hw_sofa1', 4, 7, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2820, 'hallway7', 'hw_sofa1', 9, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2821, 'hallway7', 'hw_sofa2', 4, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2822, 'hallway7', 'hw_sofa2', 4, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2823, 'hallway7', 'hw_sofa2', 4, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2824, 'hallway7', 'hw_sofa2', 4, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2825, 'hallway7', 'hw_sofa2', 4, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2826, 'hallway7', 'hw_sofa2', 4, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2827, 'hallway7', 'hw_sofa2', 4, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2828, 'hallway7', 'hw_sofa2', 9, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2829, 'hallway7', 'hw_sofa2', 9, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2830, 'hallway7', 'hw_sofa3', 11, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2831, 'hallway7', 'hw_sofa3', 4, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2832, 'hallway7', 'hw_sofa3', 9, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2833, 'hallway7', 'hw_table1', 12, 25, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2834, 'hallway7', 'hw_table2', 13, 25, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2835, 'hallway7', 'hw_table3', 14, 25, 0, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2836, 'hallway7', 'hw_watermatic', 4, 6, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2837, 'hallway7', 'pillar0', 4, 21, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2838, 'hallway7', 'pillar0', 4, 26, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2839, 'hallway7', 'pillar1', 15, 20, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2840, 'hallway6', 'hw_chair', 11, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2841, 'hallway6', 'hw_chair', 13, 22, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2842, 'hallway6', 'hw_chair', 16, 22, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2843, 'hallway6', 'hw_chair', 18, 22, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2844, 'hallway6', 'hw_chair', 4, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2845, 'hallway6', 'hw_chair', 4, 5, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2846, 'hallway6', 'hw_chair', 4, 6, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2847, 'hallway6', 'hw_chair', 9, 18, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2848, 'hallway6', 'hw_chair', 9, 20, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2849, 'hallway6', 'hw_ero1', 12, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2850, 'hallway6', 'hw_ero1', 4, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2851, 'hallway6', 'hw_ero1', 7, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2852, 'hallway6', 'hw_ero2', 13, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2853, 'hallway6', 'hw_ero2', 16, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2854, 'hallway6', 'hw_ero2', 7, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2855, 'hallway6', 'hw_ero3', 14, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2856, 'hallway6', 'hw_ero3', 17, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2857, 'hallway6', 'hw_ero3', 7, 6, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2858, 'hallway6', 'hw_ero4', 15, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2859, 'hallway6', 'hw_ero4', 18, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2860, 'hallway6', 'hw_ero5', 19, 20, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2861, 'hallway6', 'hw_ero5', 4, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2862, 'hallway6', 'hw_ero5', 7, 7, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2863, 'hallway6', 'hw_painting2', 16, 1, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2864, 'hallway6', 'hw_painting2', 7, 1, 1, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2865, 'hallway6', 'hw_plant', 19, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2866, 'hallway6', 'hw_shelf', 11, 0, 1, 4, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2867, 'hallway6', 'hw_smtble', 12, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2868, 'hallway6', 'hw_smtble', 17, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2869, 'hallway6', 'hw_smtble', 9, 19, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2870, 'hallway6', 'hw_sofa1', 14, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2871, 'hallway6', 'hw_sofa1', 5, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2872, 'hallway6', 'hw_sofa2', 15, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2873, 'hallway6', 'hw_sofa2', 16, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2874, 'hallway6', 'hw_sofa2', 17, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2875, 'hallway6', 'hw_sofa2', 6, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2876, 'hallway6', 'hw_sofa2', 7, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2877, 'hallway6', 'hw_sofa2', 8, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2878, 'hallway6', 'hw_sofa3', 18, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2879, 'hallway6', 'hw_sofa3', 9, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2880, 'hallway6', 'hw_table1', 10, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2881, 'hallway6', 'hw_table1', 13, 0, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2882, 'hallway6', 'hw_table3', 10, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2883, 'hallway6', 'hw_table3', 13, 1, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2884, 'hallway6', 'hw_watermatic', 4, 9, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2885, 'hallway6', 'pillar0', 19, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2886, 'hallway6', 'pillar0', 19, 9, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2887, 'hallway6', 'pillar0', 9, 22, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2888, 'hallway6', 'pillar1', 11, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2889, 'hallway10', 'hw_chair', 0, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2890, 'hallway10', 'hw_chair', 0, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2891, 'hallway10', 'hw_chair', 0, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2892, 'hallway10', 'hw_chair', 0, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2893, 'hallway10', 'hw_chair', 1, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2894, 'hallway10', 'hw_chair', 1, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2895, 'hallway10', 'hw_chair', 1, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2896, 'hallway10', 'hw_chair', 1, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2897, 'hallway10', 'hw_chair', 2, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2898, 'hallway10', 'hw_chair', 2, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2899, 'hallway10', 'hw_chair', 2, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2900, 'hallway10', 'hw_chair', 2, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2901, 'hallway10', 'hw_ero1', 13, 4, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2902, 'hallway10', 'hw_ero1', 16, 12, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2903, 'hallway10', 'hw_ero1', 7, 22, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2904, 'hallway10', 'hw_ero1', 7, 8, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2905, 'hallway10', 'hw_ero2', 13, 5, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2906, 'hallway10', 'hw_ero2', 16, 13, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2907, 'hallway10', 'hw_ero2', 7, 12, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2908, 'hallway10', 'hw_ero2', 7, 15, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2909, 'hallway10', 'hw_ero2', 7, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2910, 'hallway10', 'hw_ero3', 13, 6, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2911, 'hallway10', 'hw_ero3', 16, 14, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2912, 'hallway10', 'hw_ero3', 7, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2913, 'hallway10', 'hw_ero3', 7, 13, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2914, 'hallway10', 'hw_ero3', 7, 16, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2915, 'hallway10', 'hw_ero4', 7, 11, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2916, 'hallway10', 'hw_ero4', 7, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2917, 'hallway10', 'hw_ero5', 13, 7, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2918, 'hallway10', 'hw_ero5', 16, 15, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2919, 'hallway10', 'hw_ero5', 7, 17, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2920, 'hallway10', 'hw_ero5', 7, 23, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2921, 'hallway10', 'hw_painting2', 1, 14, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2922, 'hallway10', 'hw_smtble', 10, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2923, 'hallway10', 'hw_smtble', 19, 8, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2924, 'hallway10', 'hw_sofa1', 10, 2, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2925, 'hallway10', 'hw_sofa1', 15, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2926, 'hallway10', 'hw_sofa2', 10, 3, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2927, 'hallway10', 'hw_sofa2', 10, 4, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2928, 'hallway10', 'hw_sofa2', 10, 5, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2929, 'hallway10', 'hw_sofa2', 10, 6, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2930, 'hallway10', 'hw_sofa2', 10, 7, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2931, 'hallway10', 'hw_sofa2', 10, 8, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2932, 'hallway10', 'hw_sofa2', 16, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2933, 'hallway10', 'hw_sofa2', 17, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2934, 'hallway10', 'hw_sofa3', 10, 9, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2935, 'hallway10', 'hw_sofa3', 18, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2936, 'hallway10', 'hw_table1', 0, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2937, 'hallway10', 'hw_table1', 0, 17, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2938, 'hallway10', 'hw_table2', 1, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2939, 'hallway10', 'hw_table2', 1, 17, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2940, 'hallway10', 'hw_table3', 2, 11, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2941, 'hallway10', 'hw_table3', 2, 17, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2942, 'hallway10', 'hw_watermatic', 0, 14, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2943, 'hallway10', 'pillar1', 10, 0, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2944, 'hallway10', 'pillar1', 14, 16, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2945, 'hallway10', 'pillar1', 14, 23, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2946, 'hallway11', 'hw_chair', 10, 18, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2947, 'hallway11', 'hw_chair', 12, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2948, 'hallway11', 'hw_chair', 13, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2949, 'hallway11', 'hw_chair', 13, 12, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2950, 'hallway11', 'hw_chair', 13, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2951, 'hallway11', 'hw_chair', 15, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2952, 'hallway11', 'hw_chair', 20, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2953, 'hallway11', 'hw_chair', 20, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2954, 'hallway11', 'hw_chair', 21, 11, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2955, 'hallway11', 'hw_chair', 21, 13, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2956, 'hallway11', 'hw_chair', 21, 15, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2957, 'hallway11', 'hw_chair', 21, 9, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2958, 'hallway11', 'hw_chair', 22, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2959, 'hallway11', 'hw_chair', 22, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2960, 'hallway11', 'hw_ero1', 10, 10, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2961, 'hallway11', 'hw_ero1', 12, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2962, 'hallway11', 'hw_ero1', 15, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2963, 'hallway11', 'hw_ero1', 20, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2964, 'hallway11', 'hw_ero1', 4, 6, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2965, 'hallway11', 'hw_ero2', 10, 11, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2966, 'hallway11', 'hw_ero2', 13, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2967, 'hallway11', 'hw_ero2', 16, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2968, 'hallway11', 'hw_ero2', 21, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2969, 'hallway11', 'hw_ero3', 10, 12, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2970, 'hallway11', 'hw_ero3', 14, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2971, 'hallway11', 'hw_ero3', 17, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2972, 'hallway11', 'hw_ero3', 22, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2973, 'hallway11', 'hw_ero4', 18, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2974, 'hallway11', 'hw_ero5', 10, 13, 0, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2975, 'hallway11', 'hw_ero5', 15, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2976, 'hallway11', 'hw_ero5', 19, 7, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2977, 'hallway11', 'hw_ero5', 23, 17, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2978, 'hallway11', 'hw_ero5', 4, 7, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2979, 'hallway11', 'hw_shelf', 4, 0, 1, 2, 0.001, 2, 1, 'solid', '', NULL, NULL), + (2980, 'hallway11', 'hw_smtble', 13, 11, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2981, 'hallway11', 'hw_smtble', 14, 15, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2982, 'hallway11', 'hw_smtble', 21, 10, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2983, 'hallway11', 'hw_smtble', 21, 14, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2984, 'hallway11', 'hw_sofa1', 6, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2985, 'hallway11', 'hw_sofa2', 7, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2986, 'hallway11', 'hw_sofa3', 8, 0, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2987, 'hallway11', 'hw_watermatic', 11, 18, 0, 4, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2988, 'hallway11', 'pillar0', 10, 0, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2989, 'hallway11', 'pillar0', 10, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2990, 'star_lounge', 'star_table', 21, 15, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2991, 'star_lounge', 'star_sofa', 22, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2992, 'star_lounge', 'star_sofa2', 23, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2993, 'star_lounge', 'palm', 24, 15, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2994, 'star_lounge', 'star_sofa2', 21, 16, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2995, 'star_lounge', 'dj1', 32, 16, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2996, 'star_lounge', 'dj2', 33, 16, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2997, 'star_lounge', 'dj3', 34, 16, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (2998, 'star_lounge', 'star_sofa', 21, 17, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (2999, 'star_lounge', 'star_microphone', 28, 17, 4, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3000, 'star_lounge', 'star_sofa2', 21, 18, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3001, 'star_lounge', 'star_sofa', 35, 18, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3002, 'star_lounge', 'star_sofa', 21, 19, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3003, 'star_lounge', 'star_sofa2', 35, 19, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3004, 'star_lounge', 'star_sofa2', 21, 20, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3005, 'star_lounge', 'star_sofa2', 24, 20, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3006, 'star_lounge', 'star_sofa', 32, 20, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3007, 'star_lounge', 'star_sofa', 35, 20, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3008, 'star_lounge', 'star_sofa', 21, 21, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3009, 'star_lounge', 'star_sofa', 24, 21, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3010, 'star_lounge', 'star_sofa2', 32, 21, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3011, 'star_lounge', 'star_sofa2', 35, 21, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3012, 'star_lounge', 'star_sofachair', 21, 22, 2, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3013, 'star_lounge', 'star_table', 24, 22, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3014, 'star_lounge', 'star_sofa2', 25, 22, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3015, 'star_lounge', 'star_sofa', 26, 22, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3016, 'star_lounge', 'star_sofa2', 30, 22, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3017, 'star_lounge', 'star_sofa', 31, 22, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3018, 'star_lounge', 'star_table', 32, 22, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3019, 'star_lounge', 'star_table', 35, 22, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3020, 'star_lounge', 'palm', 21, 23, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3021, 'star_lounge', 'star_sofa', 35, 23, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3022, 'star_lounge', 'bar10', 22, 24, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3023, 'star_lounge', 'star_sofa2', 35, 24, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3024, 'star_lounge', 'star_sofa', 37, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3025, 'star_lounge', 'star_sofa2', 38, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3026, 'star_lounge', 'star_sofa', 39, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3027, 'star_lounge', 'star_sofa2', 40, 24, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3028, 'star_lounge', 'bar9', 22, 25, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3029, 'star_lounge', 'star_sofa2', 25, 25, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3030, 'star_lounge', 'star_sofa', 26, 25, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3031, 'star_lounge', 'star_sofa2', 30, 25, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3032, 'star_lounge', 'star_sofa', 31, 25, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3033, 'star_lounge', 'star_sofa', 35, 25, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3034, 'star_lounge', 'star_sofa2', 36, 25, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3035, 'star_lounge', 'bar8', 22, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3036, 'star_lounge', 'palm1', 25, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3037, 'star_lounge', 'palm3', 26, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3038, 'star_lounge', 'palm2', 30, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3039, 'star_lounge', 'palm4', 31, 26, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3040, 'star_lounge', 'star_sofa2', 35, 26, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3041, 'star_lounge', 'star_sofa', 36, 26, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3042, 'star_lounge', 'star_table', 39, 26, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3043, 'star_lounge', 'star_table', 40, 26, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3044, 'star_lounge', 'bar7', 22, 27, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3045, 'star_lounge', 'star_sofa', 25, 27, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3046, 'star_lounge', 'star_sofa2', 26, 27, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3047, 'star_lounge', 'star_sofa', 30, 27, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3048, 'star_lounge', 'star_sofa2', 31, 27, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3049, 'star_lounge', 'star_table', 35, 27, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3050, 'star_lounge', 'palm', 36, 27, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3051, 'star_lounge', 'star_table', 37, 27, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3052, 'star_lounge', 'bar6', 22, 28, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3053, 'star_lounge', 'bar5', 22, 29, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3054, 'star_lounge', 'star_table', 25, 29, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3055, 'star_lounge', 'star_table', 26, 29, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3056, 'star_lounge', 'star_table', 16, 30, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3057, 'star_lounge', 'bar4', 22, 30, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3058, 'star_lounge', 'star_sofa2', 16, 31, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3059, 'star_lounge', 'bar3', 22, 31, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3060, 'star_lounge', 'star_sofa2', 25, 31, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3061, 'star_lounge', 'star_sofa', 26, 31, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3062, 'star_lounge', 'star_sofa', 30, 31, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3063, 'star_lounge', 'star_sofa', 16, 32, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3064, 'star_lounge', 'bar2', 22, 32, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3065, 'star_lounge', 'palm4', 25, 32, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3066, 'star_lounge', 'palm1', 26, 32, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3067, 'star_lounge', 'star_sofa2', 30, 32, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3068, 'star_lounge', 'star_sofa2', 16, 33, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3069, 'star_lounge', 'bar1', 22, 33, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3070, 'star_lounge', 'star_sofa', 25, 33, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3071, 'star_lounge', 'star_sofa2', 26, 33, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3072, 'star_lounge', 'star_sofa', 30, 33, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3073, 'star_lounge', 'star_sofa', 16, 34, 3, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3074, 'star_lounge', 'star_sofa2', 30, 34, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3075, 'star_lounge', 'palm3', 35, 34, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3076, 'star_lounge', 'palm2', 36, 34, 0, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3077, 'star_lounge', 'star_table', 16, 35, 3, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3078, 'star_lounge', 'star_sofa', 30, 35, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3079, 'star_lounge', 'star_sofa2', 30, 36, 2, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3080, 'star_lounge', 'star_sofachair', 25, 37, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3081, 'star_lounge', 'star_sofa2', 26, 37, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3082, 'star_lounge', 'star_sofa', 27, 37, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3083, 'star_lounge', 'star_sofa2', 28, 37, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3084, 'star_lounge', 'star_sofa', 29, 37, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3085, 'star_lounge', 'star_table', 30, 37, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3086, 'orient', 'bench', 17, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3087, 'orient', 'bench', 17, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3088, 'orient', 'bench', 17, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3089, 'orient', 'bench', 17, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3090, 'orient', 'bench', 17, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3091, 'orient', 'bench', 17, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3092, 'orient', 'bench', 17, 25, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3093, 'orient', 'bench', 17, 26, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3094, 'orient', 'bench', 17, 27, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3095, 'orient', 'bench', 17, 28, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3096, 'orient', 'bench', 17, 29, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3097, 'orient', 'bench', 19, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3098, 'orient', 'bench', 19, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3099, 'orient', 'bench', 19, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3100, 'orient', 'bench', 19, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3101, 'orient', 'bench', 19, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3102, 'orient', 'bench', 19, 25, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3103, 'orient', 'bench', 19, 26, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3104, 'orient', 'bench', 19, 27, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3105, 'orient', 'bench', 19, 28, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3106, 'orient', 'bench', 19, 29, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3107, 'orient', 'bench', 21, 10, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3108, 'orient', 'bench', 21, 11, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3109, 'orient', 'bench', 21, 12, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3110, 'orient', 'bench', 21, 13, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3111, 'orient', 'bench', 21, 14, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3112, 'orient', 'bench', 21, 15, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3113, 'orient', 'bench', 21, 25, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3114, 'orient', 'bench', 21, 26, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3115, 'orient', 'bench', 21, 27, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3116, 'orient', 'bench', 21, 28, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3117, 'orient', 'bench', 21, 29, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3118, 'orient', 'bench', 23, 10, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3119, 'orient', 'bench', 23, 11, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3120, 'orient', 'bench', 23, 12, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3121, 'orient', 'bench', 23, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3122, 'orient', 'bench', 23, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3123, 'orient', 'bench', 23, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3124, 'orient', 'bench', 23, 25, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3125, 'orient', 'bench', 23, 26, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3126, 'orient', 'bench', 23, 27, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3127, 'orient', 'bench', 23, 28, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3128, 'orient', 'bench', 23, 29, 9, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3129, 'orient', 'chairf1', 25, 24, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3130, 'orient', 'chairf1', 25, 25, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3131, 'orient', 'chairf1', 25, 26, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3132, 'orient', 'chairf1', 33, 24, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3133, 'orient', 'chairf1', 33, 25, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3134, 'orient', 'chairf1', 33, 26, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3135, 'orient', 'koc_chair', 25, 13, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3136, 'orient', 'koc_chair', 25, 15, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3137, 'orient', 'koc_chair', 26, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3138, 'orient', 'koc_chair', 29, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3139, 'orient', 'koc_chair', 30, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3140, 'orient', 'koc_chair', 31, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3141, 'orient', 'koc_chair', 31, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3142, 'orient', 'koc_chair', 32, 11, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3143, 'orient', 'koc_chair', 32, 13, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3144, 'orient', 'koc_chair', 33, 12, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3145, 'orient', 'koc_table', 25, 14, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3146, 'orient', 'koc_table', 30, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3147, 'orient', 'koc_table', 32, 12, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3148, 'entryhall', 'splashkiosk', 11, 11, 1, 0, 0.001, 3, 3, 'invisible,solid', '', NULL, NULL), + (3149, 'entryhall', 'gl_sofatable', 7, 16, 1, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (3150, 'entryhall', 'gl_sofatable', 5, 1, 1, 4, 1, 1, 1, 'solid', '', NULL, NULL), + (3151, 'entryhall', 'gl_sofatable', 16, 1, 1, 4, 1, 1, 1, 'solid', '', NULL, NULL), + (3152, 'entryhall', 'gl_sofatable', 14, 14, 1, 4, 1, 1, 1, 'solid', '', NULL, NULL), + (3153, 'entryhall', 'gl_sofatable', 1, 19, 1, 0, 1, 1, 1, 'solid', '', NULL, NULL), + (3154, 'entryhall', 'gl_yukka', 15, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3155, 'entryhall', 'gl_yukka', 7, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3156, 'entryhall', 'gl_chair', 6, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3157, 'entryhall', 'gl_chair', 4, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3158, 'entryhall', 'gl_chair', 17, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3159, 'entryhall', 'gl_chair', 18, 1, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3160, 'entryhall', 'gl_chair', 14, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3161, 'entryhall', 'gl_chair', 14, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3162, 'entryhall', 'gl_chair', 14, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3163, 'entryhall', 'gl_chair', 13, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3164, 'entryhall', 'gl_chair', 12, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3165, 'entryhall', 'gl_chair', 11, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3166, 'entryhall', 'gl_sofaa', 1, 16, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3167, 'entryhall', 'gl_sofab', 1, 17, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3168, 'entryhall', 'gl_sofac', 1, 18, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3169, 'entryhall', 'gl_sofaa', 1, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3170, 'entryhall', 'gl_sofab', 1, 11, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3171, 'entryhall', 'gl_sofac', 1, 12, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3172, 'entryhall', 'gl_sofaa', 7, 13, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3173, 'entryhall', 'gl_sofab', 7, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3174, 'entryhall', 'gl_sofac', 7, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3175, 'entryhall', 'gl_sofaa', 7, 8, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3176, 'entryhall', 'gl_sofab', 7, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3177, 'entryhall', 'gl_sofac', 7, 10, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3178, 'entryhall', 'gl_sofaa', 8, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3179, 'entryhall', 'gl_sofab', 9, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3180, 'entryhall', 'gl_sofac', 10, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3181, 'entryhall', 'gl_sofaa', 13, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3182, 'entryhall', 'gl_sofab', 14, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3183, 'entryhall', 'gl_sofac', 15, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3184, 'entryhall', 'gl_table', 7, 12, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3185, 'entryhall', 'gl_tablea', 7, 11, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3186, 'entryhall', 'gl_tablea', 11, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3187, 'entryhall', 'gl_table', 12, 7, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3188, 'hallA', 'gamehall_chair_wood', 15, 4, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3189, 'hallA', 'gamehall_chair_wood', 15, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3190, 'hallA', 'gamehall_chair_wood', 15, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3191, 'hallA', 'gamehall_chair_wood', 15, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3192, 'hallA', 'gamehall_chair_wood', 15, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3193, 'hallA', 'gamehall_chair_wood', 15, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3194, 'hallA', 'gamehall_chair_wood', 10, 4, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3195, 'hallA', 'gamehall_chair_wood', 10, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3196, 'hallA', 'gamehall_chair_wood', 10, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3197, 'hallA', 'gamehall_chair_wood', 10, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3198, 'hallA', 'gamehall_chair_wood', 10, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3199, 'hallA', 'gamehall_chair_wood', 10, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3200, 'hallA', 'gamehall_chair_wood', 5, 4, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3201, 'hallA', 'gamehall_chair_wood', 5, 5, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3202, 'hallA', 'gamehall_chair_wood', 5, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3203, 'hallA', 'gamehall_chair_wood', 5, 10, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3204, 'hallA', 'gamehall_chair_wood', 5, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3205, 'hallA', 'gamehall_chair_wood', 5, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3206, 'hallA', 'table_xoxa', 14, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3207, 'hallA', 'table_xoxa', 14, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3208, 'hallA', 'table_xoxa', 14, 15, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3209, 'hallA', 'table_xoxa', 9, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3210, 'hallA', 'table_xoxa', 9, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3211, 'hallA', 'table_xoxa', 9, 15, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3212, 'hallA', 'table_xoxa', 4, 5, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3213, 'hallA', 'table_xoxa', 4, 10, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3214, 'hallA', 'table_xoxa', 4, 15, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3215, 'hallA', 'table_xoxb', 14, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3216, 'hallA', 'table_xoxb', 14, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3217, 'hallA', 'table_xoxb', 14, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3218, 'hallA', 'table_xoxb', 9, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3219, 'hallA', 'table_xoxb', 9, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3220, 'hallA', 'table_xoxb', 9, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3221, 'hallA', 'table_xoxb', 4, 14, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3222, 'hallA', 'table_xoxb', 4, 9, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3223, 'hallA', 'table_xoxb', 4, 4, 1, 6, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3224, 'hallB', 'gamehall_chair_green', 2, 4, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3225, 'hallB', 'gamehall_chair_green', 2, 10, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3226, 'hallB', 'gamehall_chair_green', 2, 16, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3227, 'hallB', 'gamehall_chair_green', 2, 6, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3228, 'hallB', 'gamehall_chair_green', 2, 12, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3229, 'hallB', 'gamehall_chair_green', 2, 18, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3230, 'hallB', 'gamehall_chair_green', 6, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3231, 'hallB', 'gamehall_chair_green', 8, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3232, 'hallB', 'gamehall_chair_green', 13, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3233, 'hallB', 'gamehall_chair_green', 15, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3234, 'hallB', 'table_battleships', 2, 5, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3235, 'hallB', 'table_battleships', 2, 11, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3236, 'hallB', 'table_battleships', 2, 17, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3237, 'hallB', 'table_battleships', 7, 3, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3238, 'hallB', 'table_battleships', 14, 3, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3239, 'hallC', 'table_chess_king', 12, 13, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3240, 'hallC', 'table_chess', 13, 6, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3241, 'hallC', 'table_chess', 2, 8, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3242, 'hallC', 'table_chess', 5, 14, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3243, 'hallC', 'table_chess', 8, 3, 1, 2, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3244, 'hallC', 'chess_king_chair', 12, 14, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3245, 'hallC', 'chess_king_chair', 12, 12, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3246, 'hallC', 'gamehall_chair_green', 13, 7, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3247, 'hallC', 'gamehall_chair_green', 13, 5, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3248, 'hallC', 'gamehall_chair_green', 2, 9, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3249, 'hallC', 'gamehall_chair_green', 2, 7, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3250, 'hallC', 'gamehall_chair_green', 4, 14, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3251, 'hallC', 'gamehall_chair_green', 6, 14, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3252, 'hallC', 'gamehall_chair_green', 7, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3253, 'hallC', 'gamehall_chair_green', 9, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3254, 'hallD', 'cardtableb', 2, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3255, 'hallD', 'cardtableb', 8, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3256, 'hallD', 'cardtableb', 14, 3, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3257, 'hallD', 'cardtablea', 2, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3258, 'hallD', 'cardtablea', 8, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3259, 'hallD', 'cardtablea', 14, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3260, 'hallD', 'cardtablea', 8, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3261, 'hallD', 'cardtablea', 14, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3262, 'hallD', 'gamehall_chair_green', 8, 4, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3263, 'hallD', 'gamehall_chair_green', 14, 4, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3264, 'hallD', 'gamehall_chair_green', 2, 10, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3265, 'hallD', 'gamehall_chair_green', 8, 10, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3266, 'hallD', 'gamehall_chair_green', 14, 10, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3267, 'hallD', 'gamehall_chair_green', 2, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3268, 'hallD', 'gamehall_chair_green', 8, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3269, 'hallD', 'gamehall_chair_green', 14, 16, 1, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3270, 'hallD', 'gamehall_chair_green', 7, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3271, 'hallD', 'gamehall_chair_green', 13, 3, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3272, 'hallD', 'gamehall_chair_green', 1, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3273, 'hallD', 'gamehall_chair_green', 7, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3274, 'hallD', 'gamehall_chair_green', 13, 9, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3275, 'hallD', 'gamehall_chair_green', 1, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3276, 'hallD', 'gamehall_chair_green', 7, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3277, 'hallD', 'gamehall_chair_green', 13, 15, 1, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3278, 'hallD', 'gamehall_chair_green', 8, 2, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3279, 'hallD', 'gamehall_chair_green', 14, 2, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3280, 'hallD', 'gamehall_chair_green', 2, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3281, 'hallD', 'gamehall_chair_green', 8, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3282, 'hallD', 'gamehall_chair_green', 14, 8, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3283, 'hallD', 'gamehall_chair_green', 2, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3284, 'hallD', 'gamehall_chair_green', 8, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3285, 'hallD', 'gamehall_chair_green', 14, 14, 1, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3286, 'hallD', 'gamehall_chair_green', 9, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3287, 'hallD', 'gamehall_chair_green', 15, 3, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3288, 'hallD', 'gamehall_chair_green', 3, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3289, 'hallD', 'gamehall_chair_green', 9, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3290, 'hallD', 'gamehall_chair_green', 15, 9, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3291, 'hallD', 'gamehall_chair_green', 3, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3292, 'hallD', 'gamehall_chair_green', 9, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3293, 'hallD', 'gamehall_chair_green', 15, 15, 1, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3294, 'md_a', 'poolEnter', 11, 11, 7, 2, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '12 11 4 2', '13 11 4 2'), + (3295, 'md_a', 'poolExit', 12, 11, 4, 6, 0.001, 1, 1, 'can_stand_on_top,invisible', 'Splash0', '11 11 4 6', '10 11 4 6'), + (3297, 'hallD', 'streetlight', 0, 9, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3298, 'hallD', 'streetlight', 0, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3299, 'hallD', 'streetlight', 8, 1, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3300, 'hallD', 'streetlight', 14, 1, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3301, 'pub_a', 'bar_gate', 9, 9, 2, 0, 0.001, 1, 1, 'solid,invisible', '', NULL, NULL), + (3302, 'bar_b', 'djtable', 16, 22, 4, 0, 0.001, 1, 2, 'solid,invisible', '', NULL, NULL), + (3303, 'library', 'invisible_table', 28, 28, 1, 0, 0.001, 2, 2, 'solid,invisible', '', NULL, NULL), + (3304, 'tearoom', 'invisible_table', 2, 7, 3, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3305, 'tearoom', 'invisible_table', 2, 13, 3, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3306, 'tearoom', 'invisible_table', 16, 10, 3, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3307, 'tearoom', 'invisible_table', 19, 3, 3, 0, 0.002, 1, 1, 'solid,invisible', '', NULL, NULL), + (3308, 'tearoom', 'invisible_table', 14, 3, 3, 0, 0.002, 1, 1, 'solid,invisible', '', NULL, NULL), + (3309, 'cr_staff', 'invisible_table', 6, 8, 1, 0, 0.001, 3, 6, 'solid,invisible', '', NULL, NULL), + (3310, 'sport', 'invisible_barrier', 11, 14, 1, 0, 0.002, 1, 4, 'solid,invisible', '', NULL, NULL), + (3311, 'cafe_ole', 'invisible_table', 4, 17, 1, 0, 0.002, 2, 3, 'solid,invisible', '', NULL, NULL), + (3312, 'cafe_ole', 'invisible_table', 12, 16, 1, 0, 0.002, 2, 3, 'solid,invisible', '', NULL, NULL), + (3313, 'cafe_ole', 'invisible_table', 15, 1, 1, 0, 0.002, 2, 3, 'solid,invisible', '', NULL, NULL), + (3314, 'cafe_ole', 'invisible_table', 9, 5, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3315, 'malja_bar_a', 'invisible_table', 6, 3, 4, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3316, 'malja_bar_a', 'invisible_table', 7, 14, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3317, 'malja_bar_a', 'invisible_table', 13, 15, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3318, 'malja_bar_a', 'invisible_table', 1, 16, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3319, 'malja_bar_b', 'invisible_table', 4, 1, 3, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3320, 'malja_bar_b', 'invisible_table', 2, 17, 3, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3321, 'pizza', 'invisible_table', 1, 17, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3322, 'pizza', 'invisible_table', 1, 9, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3323, 'pizza', 'invisible_table', 12, 21, 1, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3324, 'pizza', 'invisible_table', 14, 4, 0, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3325, 'pizza', 'invisible_table', 14, 11, 0, 0, 0.002, 2, 2, 'solid,invisible', '', NULL, NULL), + (3326, 'md_a', 'wsJoinQueue', 21, 19, 4, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '21,18,0', NULL, NULL), + (3327, 'md_a', 'wsJoinQueue', 21, 7, 4, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '21,8,4', NULL, NULL), + (3328, 'md_a', 'wsQueueTile', 21, 18, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '21,18', NULL, NULL), + (3329, 'md_a', 'wsQueueTile', 21, 17, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '', NULL, NULL), + (3330, 'md_a', 'wsQueueTile', 21, 16, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '', NULL, NULL), + (3331, 'md_a', 'wsQueueTile', 21, 8, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '', NULL, NULL), + (3332, 'md_a', 'wsQueueTile', 21, 9, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '', NULL, NULL), + (3333, 'md_a', 'wsQueueTile', 21, 10, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '', NULL, NULL), + (3334, 'hallway2', 'hw_chair', 17, 18, 0, 2, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3335, 'gate_park', 'gate_drumchair', 13, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3336, 'emperors', 'invisichair', 12, 7, 4, 4, 1, 1, 1, 'invisible,can_sit_on_top', '', NULL, NULL), + (3337, 'emperors', 'emperors_pillar', 5, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3338, 'emperors', 'emperors_pillar', 19, 10, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3339, 'emperors', 'emperors_chair1', 5, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3340, 'emperors', 'emperors_chair2', 6, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3341, 'emperors', 'emperors_chair2', 7, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3342, 'emperors', 'emperors_chair3', 8, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3343, 'emperors', 'emperors_chair1', 16, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3344, 'emperors', 'emperors_chair2', 17, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3345, 'emperors', 'emperors_chair2', 18, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3346, 'emperors', 'emperors_chair3', 19, 14, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3347, 'emperors', 'emperors_chair1', 5, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3348, 'emperors', 'emperors_chair2', 6, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3349, 'emperors', 'emperors_chair2', 7, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3350, 'emperors', 'emperors_chair3', 8, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3351, 'emperors', 'emperors_chair1', 16, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3352, 'emperors', 'emperors_chair2', 17, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3353, 'emperors', 'emperors_chair2', 18, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3354, 'emperors', 'emperors_chair3', 19, 15, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3355, 'emperors', 'emperors_chair1', 5, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3356, 'emperors', 'emperors_chair2', 6, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3357, 'emperors', 'emperors_chair2', 7, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3358, 'emperors', 'emperors_chair3', 8, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3359, 'emperors', 'emperors_chair1', 16, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3360, 'emperors', 'emperors_chair2', 17, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3361, 'emperors', 'emperors_chair2', 18, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3362, 'emperors', 'emperors_chair3', 19, 18, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3363, 'emperors', 'emperors_pillar', 5, 19, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3364, 'emperors', 'emperors_pillar2', 8, 19, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3365, 'emperors', 'emperors_pillar2', 16, 19, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3366, 'emperors', 'emperors_pillar', 19, 19, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3367, 'emperors', 'emperors_chair1', 5, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3368, 'emperors', 'emperors_chair2', 6, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3369, 'emperors', 'emperors_chair2', 7, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3370, 'emperors', 'emperors_chair3', 8, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3371, 'emperors', 'emperors_chair1', 16, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3372, 'emperors', 'emperors_chair2', 17, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3373, 'emperors', 'emperors_chair2', 18, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3374, 'emperors', 'emperors_chair3', 19, 20, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3375, 'emperors', 'emperors_chair1', 5, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3376, 'emperors', 'emperors_chair2', 6, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3377, 'emperors', 'emperors_chair2', 7, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3378, 'emperors', 'emperors_chair3', 8, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3379, 'emperors', 'emperors_chair1', 16, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3380, 'emperors', 'emperors_chair2', 17, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3381, 'emperors', 'emperors_chair2', 18, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3382, 'emperors', 'emperors_chair3', 19, 23, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3383, 'emperors', 'emperors_chair1', 5, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3384, 'emperors', 'emperors_chair2', 6, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3385, 'emperors', 'emperors_chair2', 7, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3386, 'emperors', 'emperors_chair3', 8, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3387, 'emperors', 'emperors_chair1', 16, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3388, 'emperors', 'emperors_chair2', 17, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3389, 'emperors', 'emperors_chair2', 18, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3390, 'emperors', 'emperors_chair3', 19, 24, 2, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3391, 'emperors', 'emperors_chair1', 5, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3392, 'emperors', 'emperors_chair2', 6, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3393, 'emperors', 'emperors_chair2', 7, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3394, 'emperors', 'emperors_chair3', 8, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3395, 'emperors', 'emperors_chair1', 16, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3396, 'emperors', 'emperors_chair2', 17, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3397, 'emperors', 'emperors_chair2', 18, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3398, 'emperors', 'emperors_chair3', 19, 27, 2, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3399, 'emperors', 'emperors_pillar', 5, 28, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3400, 'emperors', 'emperors_pillar', 8, 28, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3401, 'emperors', 'emperors_pillar', 16, 28, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3402, 'emperors', 'emperors_pillar', 19, 28, 2, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3403, 'beauty_salon1', 'pinkchair', 12, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3404, 'beauty_salon1', 'smallchair', 17, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3405, 'beauty_salon1', 'smallchair', 18, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3406, 'beauty_salon1', 'smallchair', 19, 5, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3407, 'beauty_salon1', 'longchair1', 4, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3408, 'beauty_salon1', 'longchair2', 5, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3409, 'beauty_salon1', 'longchair2', 6, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3410, 'beauty_salon1', 'longchair2', 7, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3411, 'beauty_salon1', 'longchair3', 8, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3412, 'beauty_salon1', 'longchair1', 11, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3413, 'beauty_salon1', 'longchair2', 12, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3414, 'beauty_salon1', 'longchair2', 13, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3415, 'beauty_salon1', 'longchair2', 14, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3416, 'beauty_salon1', 'longchair3', 15, 8, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3417, 'beauty_salon1', 'longchair1', 4, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3418, 'beauty_salon1', 'longchair2', 5, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3419, 'beauty_salon1', 'longchair2', 6, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3420, 'beauty_salon1', 'longchair2', 7, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3421, 'beauty_salon1', 'longchair3', 8, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3422, 'beauty_salon1', 'longchair1', 11, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3423, 'beauty_salon1', 'longchair2', 12, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3424, 'beauty_salon1', 'longchair2', 13, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3425, 'beauty_salon1', 'longchair2', 14, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3426, 'beauty_salon1', 'longchair3', 15, 10, 0, 4, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3427, 'beauty_salon1', 'longchair1', 17, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3428, 'beauty_salon1', 'longchair1', 19, 13, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3429, 'beauty_salon1', 'longchair2', 17, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3430, 'beauty_salon1', 'longchair2', 19, 14, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3431, 'beauty_salon1', 'longchair2', 17, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3432, 'beauty_salon1', 'longchair2', 19, 15, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3433, 'beauty_salon1', 'longchair2', 17, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3434, 'beauty_salon1', 'longchair2', 19, 16, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3435, 'beauty_salon1', 'longchair3', 17, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3436, 'beauty_salon1', 'longchair3', 19, 17, 0, 6, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3437, 'beauty_salon1', 'longchair1', 4, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3438, 'beauty_salon1', 'longchair2', 5, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3439, 'beauty_salon1', 'longchair2', 6, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3440, 'beauty_salon1', 'longchair2', 7, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3441, 'beauty_salon1', 'longchair3', 8, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3442, 'beauty_salon1', 'longchair1', 11, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3443, 'beauty_salon1', 'longchair2', 12, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3444, 'beauty_salon1', 'longchair2', 13, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3445, 'beauty_salon1', 'longchair2', 14, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3446, 'beauty_salon1', 'longchair3', 15, 19, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3447, 'beauty_salon1', 'longchair1', 4, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3448, 'beauty_salon1', 'longchair2', 5, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3449, 'beauty_salon1', 'longchair2', 6, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3450, 'beauty_salon1', 'longchair2', 7, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3451, 'beauty_salon1', 'longchair3', 8, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3452, 'beauty_salon1', 'longchair1', 11, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3453, 'beauty_salon1', 'longchair2', 12, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3454, 'beauty_salon1', 'longchair2', 13, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3455, 'beauty_salon1', 'longchair2', 14, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3456, 'beauty_salon1', 'longchair3', 15, 21, 0, 0, 1, 1, 1, 'can_sit_on_top', '', NULL, NULL), + (3457, 'ice_cafe', 'cafe_deskb', 1, 15, 1, 0, 0.001, 1, 1, 'solid', '', NULL, NULL), + (3458, 'md_a', 'wsTileStart', 21, 15, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '21,11', NULL, NULL), + (3459, 'md_a', 'wsTileStart', 21, 11, 8, 0, 0.002, 1, 1, 'invisible,can_stand_on_top', '21,15', NULL, NULL), + (3460, 'cafe_gold0', 'ignore', 15, 3, 1, 0, 1, 1, 1, 'solid,invisible', NULL, NULL, NULL), + (3461, 'cafe_gold0', 'ignore', 16, 3, 1, 0, 1, 1, 1, 'solid,invisible', NULL, NULL, NULL); +/*!40000 ALTER TABLE `public_items` ENABLE KEYS */; + +-- Dumping structure for table havana.public_roomwalkways +CREATE TABLE IF NOT EXISTS `public_roomwalkways` ( + `room_id` int(11) DEFAULT NULL, + `to_id` int(1) DEFAULT NULL, + `coords_map` varchar(255) DEFAULT NULL, + `door_position` varchar(50) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.public_roomwalkways: ~54 rows (approximately) +DELETE FROM `public_roomwalkways`; +/*!40000 ALTER TABLE `public_roomwalkways` DISABLE KEYS */; +INSERT INTO `public_roomwalkways` (`room_id`, `to_id`, `coords_map`, `door_position`) VALUES + (45, 69, '20,23 20,24 20,25 21,23 21,24 21,25', '3,23,0,2'), + (69, 45, '0,22 1,23', '19,24,0,6'), + (34, 35, '28,4', NULL), + (35, 34, '11,2', '28,5,0,4'), + (32, 33, '23,0 22,0 20,0 19,0 18,0 17,0 16,0 15,0 14,0 11,0 10,0 9,0', NULL), + (33, 32, '16,24 15,24 17,24 18,24 18,25 17,25 16,25 15,25 18,26 17,26 16,26', '16,2,2,4'), + (13, 14, '9,4 10,4 9,3', NULL), + (14, 13, '3,11 4,11 5,11', '10,5,4,4'), + (19, 20, '16,18', NULL), + (20, 19, '0,7', '15,18,0,6'), + (21, 22, '14,0 15,0', NULL), + (22, 21, '5,25 ', '15,1,4,4'), + (23, 24, '9,32 10,32 11,32 9,33 10,33', NULL), + (24, 23, '1,10 1,11 1,12', '10,30,5,0'), + (36, 37, '19,3 20,4 21,5 22,6 23,7 24,8 25,9 26,10 27,11 28,12', NULL), + (36, 37, '30,14 31,15 32,16 33,17 34,18 35,19 36,20 37,21 38,22 39,23', '18,30,1,1'), + (37, 36, '13,26 14,27 15,28 16,29 17,30 18,31 19,32 20,33 21,34', '34,19,1,5'), + (47, 48, '0,6 0,7 0,8 0,9', '29,3,1,6'), + (47, 50, '6,23 7,23 8,23 9,23', '7,2,1,4'), + (47, 52, '27,6 27,7 27,8 27,9', '2,3,0,2'), + (48, 47, '31,5 31,4 31,3 31,2', '2,7,1,2'), + (48, 49, '14,19 15,19 16,19 17,19', '15,2,0,4'), + (49, 50, '31,9 31,8 31,7 31,6', '2,8,1,2'), + (49, 48, '17,0 16,0 15,0 14,0', '16,17,1,0'), + (50, 47, '9,0 8,0 7,0 6,0', '8,21,1,0'), + (50, 49, '0,9 0,8 0,7 0,6', '29,7,0,6'), + (50, 51, '31,6 31,7 31,8 31,9', '2,15,0,2'), + (51, 50, '0,17 0,16 0,15 0,14', '29,7,0,6'), + (51, 52, '22,0 23,0 24,0 25,0', '24,17,1,0'), + (52, 47, '0,2 0,3 0,4 0,5', '25,7,0,6'), + (52, 51, '22,19 23,19 24,19 25,19', '24,2,1,4'), + (53, 54, '14,0 15,0 16,0 17,0', '19,21,0,0'), + (53, 57, '14,31 15,31 16,31 17,31', '3,6,1,4'), + (53, 55, '0,14 0,15 0,16 0,17', '17,23,0,6'), + (53, 58, '31,17 31,16 31,15 31,14', '2,3,1,2'), + (54, 55, '0,14 0,15 0,16 0,17', '13,8,1,6'), + (54, 53, '18,23 19,23 20,23 21,23', '16,2,0,4'), + (55, 54, '15,6 15,7 15,8 15,9', '2,15,1,2'), + (55, 56, '0,25 0,24 0,23 0,22', '21,12,0,6'), + (55, 53, '19,22 19,23 19,24 19,25', '2,15,0,2'), + (56, 55, '23,13 23,12 23,11 23,10', '2,23,0,2'), + (57, 53, '2,4 3,4 4,4 5,4', '15,29,0,0'), + (57, 58, '17,0 17,1 17,2 17,3', '10,19,0,2'), + (58, 57, '8,18 8,19 8,20 8,21', '15,1,0,6'), + (58, 53, '0,5 0,4 0,3 0,2', '29,15,0,6'), + (61, 62, '2,0 3,0', '1,1,1,4'), + (61, 63, '8,0 9,0', '2,1,1,4'), + (61, 64, '14,0 15,0', '1,1,1,4'), + (61, 65, '0,2 0,3', '1,1,1,4'), + (62, 61, '0,0 1,0', '3,1,1,4'), + (63, 61, '2,0 1,0', '9,1,1,4'), + (64, 61, '0,0 1,0', '15,1,1,4'), + (65, 61, '0,0 1,0', '1,3,1,2'), + (37, 36, '0,13 1,14 2,15 3,16 4,17 5,18 6,19 7,20 8,21 9,22 10,23 11,24 12,25', '23,7,7,5'); +/*!40000 ALTER TABLE `public_roomwalkways` ENABLE KEYS */; + +-- Dumping structure for table havana.rank_badges +CREATE TABLE IF NOT EXISTS `rank_badges` ( + `rank` tinyint(1) unsigned NOT NULL DEFAULT 1, + `badge` char(3) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rank_badges: ~0 rows (approximately) +DELETE FROM `rank_badges`; +/*!40000 ALTER TABLE `rank_badges` DISABLE KEYS */; +/*!40000 ALTER TABLE `rank_badges` ENABLE KEYS */; + +-- Dumping structure for table havana.rank_fuserights +CREATE TABLE IF NOT EXISTS `rank_fuserights` ( + `min_rank` int(11) NOT NULL, + `fuseright` varchar(255) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rank_fuserights: ~240 rows (approximately) +DELETE FROM `rank_fuserights`; +/*!40000 ALTER TABLE `rank_fuserights` DISABLE KEYS */; +INSERT INTO `rank_fuserights` (`min_rank`, `fuseright`) VALUES + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'), + (1, 'default'), + (1, 'fuse_login'), + (1, 'fuse_buy_credits'), + (1, 'fuse_trade'), + (1, 'fuse_room_queue_default'), + (2, 'fuse_enter_full_rooms'), + (3, 'fuse_enter_locked_rooms'), + (3, 'fuse_kick'), + (3, 'fuse_mute'), + (4, 'fuse_ban'), + (4, 'fuse_room_mute'), + (4, 'fuse_room_kick'), + (4, 'fuse_receive_calls_for_help'), + (4, 'fuse_remove_stickies'), + (5, 'fuse_mod'), + (5, 'fuse_superban'), + (5, 'fuse_pick_up_any_furni'), + (5, 'fuse_ignore_room_owner'), + (5, 'fuse_any_room_controller'), + (2, 'fuse_room_alert'), + (5, 'fuse_moderator_access'), + (6, 'fuse_administrator_access'), + (6, 'fuse_see_flat_ids'), + (5, 'fuse_credits'); +/*!40000 ALTER TABLE `rank_fuserights` ENABLE KEYS */; + +-- Dumping structure for table havana.recycler_rewards +CREATE TABLE IF NOT EXISTS `recycler_rewards` ( + `sprite` varchar(255) NOT NULL, + `order_id` int(11) NOT NULL DEFAULT 0, + `chance` int(11) NOT NULL DEFAULT 5, + PRIMARY KEY (`sprite`), + UNIQUE KEY `sprite` (`sprite`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.recycler_rewards: ~28 rows (approximately) +DELETE FROM `recycler_rewards`; +/*!40000 ALTER TABLE `recycler_rewards` DISABLE KEYS */; +INSERT INTO `recycler_rewards` (`sprite`, `order_id`, `chance`) VALUES + ('eco_cactus1', 1, 0), + ('eco_cactus2', 2, 0), + ('eco_cactus3', 3, 0), + ('eco_chair1', 12, 5), + ('eco_chair2', 13, 5), + ('eco_chair3', 14, 5), + ('eco_curtains1', 15, 5), + ('eco_curtains2', 16, 5), + ('eco_curtains3', 17, 5), + ('eco_fruits1', 9, 40), + ('eco_fruits2', 10, 40), + ('eco_fruits3', 11, 40), + ('eco_lamp1', 4, 0), + ('eco_lamp2', 5, 0), + ('eco_lamp3', 6, 0), + ('eco_light1', 18, 5), + ('eco_light2', 19, 5), + ('eco_light3', 20, 5), + ('eco_mush1', 27, 2000), + ('eco_mush2', 28, 200), + ('eco_sofa1', 21, 5), + ('eco_sofa2', 22, 5), + ('eco_sofa3', 23, 5), + ('eco_table1', 24, 5), + ('eco_table2', 25, 5), + ('eco_table3', 26, 5), + ('eco_tree1', 8, 200), + ('eco_tree2', 7, 2000); +/*!40000 ALTER TABLE `recycler_rewards` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms +CREATE TABLE IF NOT EXISTS `rooms` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `owner_id` varchar(11) NOT NULL, + `category` int(11) DEFAULT 2, + `name` text NOT NULL DEFAULT '', + `description` text NOT NULL DEFAULT '', + `model` varchar(50) NOT NULL, + `ccts` varchar(255) DEFAULT '', + `wallpaper` int(4) DEFAULT 0, + `floor` int(4) DEFAULT 0, + `landscape` varchar(10) NOT NULL DEFAULT '0', + `showname` tinyint(1) DEFAULT 1, + `superusers` tinyint(1) DEFAULT 0, + `accesstype` tinyint(3) DEFAULT 0, + `password` varchar(255) DEFAULT '', + `visitors_now` int(11) DEFAULT 0, + `visitors_max` int(11) DEFAULT 25, + `rating` int(11) NOT NULL DEFAULT 0, + `icon_data` varchar(255) NOT NULL DEFAULT '0|0|', + `group_id` int(11) NOT NULL DEFAULT 0, + `is_hidden` tinyint(4) NOT NULL DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`), + KEY `owner_id` (`owner_id`), + KEY `visitors_now` (`visitors_now`), + KEY `rating` (`rating`), + KEY `model` (`model`), + KEY `accesstype` (`accesstype`) +) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms: ~70 rows (approximately) +DELETE FROM `rooms`; +/*!40000 ALTER TABLE `rooms` DISABLE KEYS */; +INSERT INTO `rooms` (`id`, `owner_id`, `category`, `name`, `description`, `model`, `ccts`, `wallpaper`, `floor`, `landscape`, `showname`, `superusers`, `accesstype`, `password`, `visitors_now`, `visitors_max`, `rating`, `icon_data`, `group_id`, `is_hidden`, `created_at`, `updated_at`) VALUES + (1, '0', 3, 'Welcome Lounge', 'welcome_lounge', 'newbie_lobby', 'hh_room_nlobby', 0, 0, '0.0', 0, 0, 0, '', 0, 40, 0, '0|0|', 1000, 0, '2018-08-11 07:54:01', '2021-11-02 11:13:09'), + (2, '0', 5, 'Theatredome', 'theatredrome', 'theater', 'hh_room_theater_carneval', 0, 0, '0.0', 0, 0, 0, '', 0, 100, 0, '0|0|', 2398, 0, '2018-08-11 07:54:01', '2022-09-03 12:32:33'), + (3, '0', 5, 'Library', 'library', 'library', 'hh_room_library', 0, 0, '0.0', 0, 0, 0, '', 0, 30, 0, '0|0|', 6645, 0, '2018-08-11 07:54:01', '2021-11-02 11:13:32'), + (4, '0', 5, 'TV Studio', 'tv_studio', 'tv_studio', 'hh_room_tv_studio_general', 0, 0, '0.0', 0, 0, 0, '', 0, 20, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-02 10:55:29'), + (5, '0', 5, 'Cinema', 'habbo_cinema', 'cinema_a', 'hh_room_cinema', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2022-09-03 12:32:42'), + (6, '0', 5, 'Power Gym', 'sport', 'sport', 'hh_room_sport', 0, 0, '0.0', 0, 0, 0, '', 0, 35, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-30 14:25:44'), + (7, '0', 5, 'Olympic Stadium', 'ballroom', 'ballroom', 'hh_room_ballroom', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 4572, 0, '2018-08-11 07:54:01', '2021-11-02 15:38:24'), + (8, '0', 6, 'Habbo Kitchen', 'hotel_kitchen', 'cr_kitchen', 'hh_room_kitchen', 0, 0, '0.0', 0, 0, 0, '', 0, 20, 0, '0|0|', 1428, 0, '2018-08-11 07:54:01', '2021-10-29 21:26:57'), + (9, '0', 6, 'The Dirty Duck Pub', 'the_dirty_duck_pub', 'pub_a', 'hh_room_pub', 0, 0, '0.0', 0, 0, 0, '', 0, 40, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 20:49:03'), + (10, '0', 6, 'Cafe Ole', 'cafe_ole', 'cafe_ole', 'hh_room_cafe', 0, 0, '0.0', 0, 0, 0, '', 0, 35, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 23:14:43'), + (11, '0', 6, 'Eric\'s Eaterie', 'eric\'s_eaterie', 'cr_cafe', 'hh_room_erics', 0, 0, '0.0', 0, 0, 0, '', 0, 35, 0, '0|0|', 2797, 0, '2018-08-11 07:54:01', '2021-10-31 10:05:26'), + (12, '0', 6, 'Space Cafe', 'space_cafe', 'space_cafe', 'hh_room_space_cafe', 0, 0, '0.0', 0, 0, 0, '', 0, 35, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 23:13:35'), + (13, '0', 7, 'Rooftop Terrace', 'rooftop', 'rooftop', 'hh_room_rooftop', 0, 0, '0.0', 0, 0, 0, '', 0, 30, 0, '0|0|', 1785, 0, '2018-08-11 07:54:01', '2021-11-02 10:56:06'), + (14, '0', 7, 'Rooftop Cafe', 'rooftop', 'rooftop_2', 'hh_room_rooftop', 0, 0, '0.0', 0, 0, 0, '', 0, 20, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-02 11:04:25'), + (15, '0', 6, 'Palazzo Pizza', 'pizza', 'pizza', 'hh_room_pizza', 0, 0, '0.0', 0, 0, 0, '', 0, 40, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 23:13:51'), + (16, '0', 6, 'Habburgers', 'habburger\'s', 'habburger', 'hh_room_habburger', 0, 0, '0.0', 0, 0, 0, '', 0, 40, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2022-09-03 12:34:00'), + (17, '0', 8, 'Grandfathers Lounge', 'dusty_lounge', 'dusty_lounge', 'hh_room_dustylounge', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 21:49:53'), + (18, '0', 7, 'Oriental Tearoom', 'tearoom', 'tearoom', 'hh_room_tearoom', 0, 0, '0.0', 0, 0, 0, '', 0, 40, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 21:57:40'), + (19, '0', 7, 'Oldskool Lounge', 'old_skool', 'old_skool0', 'hh_room_old_skool', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 7440, 0, '2018-08-11 07:54:01', '2021-11-02 15:38:41'), + (20, '0', 7, 'Oldskool Dancefloor', 'old_skool', 'old_skool1', 'hh_room_old_skool', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 8172, 1, '2018-08-11 07:54:01', '2021-10-31 10:01:04'), + (21, '0', 7, 'The Chromide Club', 'the_chromide_club', 'malja_bar_a', 'hh_room_disco', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 1171, 0, '2018-08-11 07:54:01', '2021-10-31 09:58:45'), + (22, '0', 7, 'The Chromide Club II', 'the_chromide_club', 'malja_bar_b', 'hh_room_disco', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-31 09:59:21'), + (23, '0', 7, 'Club Massiva', 'club_massiva', 'bar_a', 'hh_room_bar', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 1026, 0, '2018-08-11 07:54:01', '2021-11-01 21:57:26'), + (24, '0', 7, 'Club Massiva II', 'club_massiva2', 'bar_b', 'hh_room_bar', 0, 0, '0.0', 0, 0, 0, '', 0, 70, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-31 10:02:00'), + (25, '0', 6, 'Sunset Cafe', 'sunset_cafe', 'sunset_cafe', 'hh_room_sunsetcafe', 0, 0, '0.0', 0, 0, 0, '', 0, 35, 0, '0|0|', 1295, 0, '2018-08-11 07:54:01', '2021-10-31 10:05:50'), + (26, '0', 7, 'Safety Spa', 'cafe_gold', 'cafe_gold0', 'hh_room_gold', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 23:15:05'), + (27, '0', 9, 'Zen Garden', 'chill', 'chill', 'hh_room_chill', 0, 0, '0.0', 0, 0, 0, '', 0, 30, 0, '0|0|', 3075, 0, '2018-08-11 07:54:01', '2021-11-02 06:00:36'), + (28, '0', 8, 'Club Mammoth', 'club_mammoth', 'club_mammoth', 'hh_room_clubmammoth', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 21:49:49'), + (29, '0', 9, 'Floating Garden', 'floatinggarden', 'floatinggarden', 'hh_room_floatinggarden', 0, 0, '0.0', 0, 0, 0, '', 0, 80, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2022-09-02 21:24:24'), + (30, '0', 9, 'Picnic Fields', 'picnic', 'picnic', 'hh_room_picnic', 0, 0, '0.0', 0, 0, 0, '', 0, 55, 0, '0|0|', 1318, 0, '2018-08-11 07:54:01', '2021-11-01 22:04:09'), + (31, '0', 9, 'Sun Terrace', 'sun_terrace', 'sun_terrace', 'hh_room_sun_terrace', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 22:03:18'), + (32, '0', 9, 'Peaceful Park', 'gate_park', 'gate_park', 'hh_room_gate_park', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 22:06:27'), + (33, '0', 9, 'Peaceful Park - B', 'gate_park', 'gate_park_2', 'hh_room_gate_park', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 22:06:43'), + (34, '0', 3, 'The Park', 'park', 'park_a', 'hh_room_park,hh_room_park_general', 0, 0, '0.0', 0, 0, 0, '', 0, 45, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-02 10:27:57'), + (35, '0', 3, 'The Infobus', 'park', 'park_b', 'hh_room_park,hh_people_pool', 0, 0, '0.0', 0, 0, 0, '', 0, 20, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 21:45:14'), + (36, '0', 3, 'Habbo Lido', 'habbo_lido', 'pool_a', 'hh_room_pool,hh_people_pool', 0, 0, '0.0', 0, 0, 0, '', 0, 60, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2022-09-03 13:03:16'), + (37, '0', 3, 'Lido B', 'habbo_lido_ii', 'pool_b', 'hh_room_pool,hh_people_pool', 0, 0, '0.0', 0, 0, 0, '', 0, 60, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2022-09-03 12:32:25'), + (38, '0', 3, 'Rooftop Rumble', 'rooftop_rumble', 'md_a', 'hh_room_terrace,hh_paalu,hh_people_pool,hh_people_paalu', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2022-09-02 20:49:21'), + (39, '0', 11, 'Main Lobby', 'main_lobby', 'lobby_a', 'hh_room_lobby', 0, 0, '0.0', 0, 0, 0, '', 0, 100, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-02 15:39:43'), + (40, '0', 11, 'Basement Lobby', 'basement_lobby', 'floorlobby_a', 'hh_room_floorlobbies', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 1507, 0, '2018-08-11 07:54:01', '2021-10-29 23:24:03'), + (41, '0', 11, 'Median Lobby', 'median_lobby', 'floorlobby_b', 'hh_room_floorlobbies', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 23:24:31'), + (42, '0', 11, 'Skylight Lobby', 'skylight_lobby', 'floorlobby_c', 'hh_room_floorlobbies', 0, 0, '0.0', 0, 0, 0, '', 0, 50, 0, '0|0|', 1657, 0, '2018-08-11 07:54:01', '2021-11-01 21:45:35'), + (43, '0', 6, 'Ice Cafe', 'ice_cafe', 'ice_cafe', 'hh_room_icecafe', 0, 0, '0.0', 0, 0, 0, '', 0, 25, 0, '0|0|', 13675, 0, '2018-08-11 07:54:01', '2021-11-03 08:29:44'), + (44, '0', 6, 'Net Cafe', 'netcafe', 'netcafe', 'hh_room_netcafe', 0, 0, '0.0', 0, 0, 0, '', 0, 25, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-31 10:05:14'), + (45, '0', 5, 'Beauty Salon', 'beauty_salon_loreal', 'beauty_salon0', 'hh_room_beauty_salon_general', 0, 0, '0.0', 0, 0, 0, '', 0, 25, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-30 14:25:26'), + (46, '0', 5, 'The Den', 'the_den', 'cr_staff', 'hh_room_den', 0, 0, '0.0', 0, 0, 0, '', 0, 100, 0, '0|0|', 1521, 0, '2018-08-11 07:54:01', '2021-10-30 14:25:21'), + (47, '0', 12, 'Lower Hallways', 'hallway', 'hallway2', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 4084, 0, '2018-08-11 07:54:01', '2021-11-01 21:47:48'), + (48, '0', 12, 'Lower Hallways I', 'hallway', 'hallway0', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 5625, 1, '2018-08-11 07:54:01', '2021-10-29 23:27:47'), + (49, '0', 12, 'Lower Hallways II', 'hallway', 'hallway1', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-29 23:27:58'), + (50, '0', 12, 'Lower Hallways III', 'hallway', 'hallway3', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 21:48:38'), + (51, '0', 12, 'Lower Hallways IV', 'hallway', 'hallway5', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 1713, 1, '2018-08-11 07:54:01', '2021-11-01 21:48:25'), + (52, '0', 12, 'Lower Hallways V', 'hallway', 'hallway4', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 21:48:07'), + (53, '0', 12, 'Upper Hallways', 'hallway_ii', 'hallway9', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-02 00:28:43'), + (54, '0', 12, 'Upper Hallways I', 'hallway_ii', 'hallway8', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-02 00:29:24'), + (55, '0', 12, 'Upper Hallways II', 'hallway_ii', 'hallway7', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-27 14:57:07'), + (56, '0', 12, 'Upper Hallways III', 'hallway_ii', 'hallway6', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-27 14:56:54'), + (57, '0', 12, 'Upper Hallways IV', 'hallway_ii', 'hallway10', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-29 23:28:41'), + (58, '0', 12, 'Upper Hallways V', 'hallway_ii', 'hallway11', 'hh_room_hallway', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-29 23:28:57'), + (59, '0', 7, 'Star Lounge', 'star_lounge', 'star_lounge', 'hh_room_starlounge', 0, 0, '0.0', 1, 0, 0, '', 0, 35, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-10-29 00:29:01'), + (60, '0', 8, 'Club Orient', 'orient', 'orient', 'hh_room_orient', 0, 0, '0.0', 1, 0, 0, '', 0, 35, 0, '0|0|', 2000, 0, '2018-08-11 07:54:01', '2021-11-01 21:50:12'), + (61, '0', 13, 'Cunning Fox Gamehall', 'cunning_fox_gamehall', 'entryhall', 'hh_room_gamehall,hh_games', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 13:26:27'), + (62, '0', 13, 'TicTacToe hall', 'cunning_fox_gamehall/1', 'hallA', 'hh_room_gamehall,hh_games', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 13:26:08'), + (63, '0', 13, 'Battleships hall', 'cunning_fox_gamehall/2', 'hallB', 'hh_room_gamehall,hh_games', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-10-30 07:59:47'), + (64, '0', 13, 'Chess hall', 'cunning_fox_gamehall/3', 'hallC', 'hh_room_gamehall,hh_games', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-11-01 13:38:28'), + (65, '0', 13, 'Poker hall', 'cunning_fox_gamehall/4', 'hallD', 'hh_room_gamehall,hh_games', 0, 0, '0.0', 1, 0, 0, '', 0, 25, 0, '0|0|', 6493, 1, '2018-08-11 07:54:01', '2021-10-29 23:30:00'), + (66, '0', 13, 'Battleball Lobby', 'bb_lobby_beginner_0', 'bb_lobby_1', 'hh_game_bb,hh_game_bb_room,hh_game_bb_ui,hh_gamesys', 0, 0, '0.0', 1, 0, 0, '', 0, 200, 0, '0|0|', 4080, 0, '2018-08-11 07:54:01', '2022-09-03 00:50:55'), + (67, '0', 13, 'Snowstorm Lobby', 'sw_lobby_beginner_0', 'snowwar_lobby_1', 'hh_gamesys,hh_game_snowwar,hh_game_snowwar_room,hh_game_snowwar_ui', 0, 0, '0.0', 1, 0, 0, '', 0, 200, 0, '0|0|', 1646, 0, '2018-08-11 07:54:01', '2022-09-03 00:51:17'), + (68, '0', 5, 'Imperial Palace', 'emperors', 'emperors', 'hh_room_emperors', 0, 0, '0.0', 0, 0, 0, '', 0, 30, 0, '0|0|', 0, 0, '2018-08-11 07:54:01', '2021-11-01 21:50:47'), + (69, '0', 5, 'Beauty Salon II', 'beauty_salon_loreal', 'beauty_salon1', 'hh_room_beauty_salon_general', 0, 0, '0.0', 0, 0, 0, '', 0, 25, 0, '0|0|', 0, 1, '2018-08-11 07:54:01', '2021-09-28 22:39:40'); +/*!40000 ALTER TABLE `rooms` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_ads +CREATE TABLE IF NOT EXISTS `rooms_ads` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `is_loading_ad` tinyint(1) NOT NULL DEFAULT 0, + `room_id` int(11) NOT NULL, + `url` varchar(255) DEFAULT NULL, + `image` mediumtext NOT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 1, + KEY `room_ad id` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_ads: ~28 rows (approximately) +DELETE FROM `rooms_ads`; +/*!40000 ALTER TABLE `rooms_ads` DISABLE KEYS */; +INSERT INTO `rooms_ads` (`id`, `is_loading_ad`, `room_id`, `url`, `image`, `enabled`) VALUES + (1, 0, 1, 'http://classichabbo.com/credits/collectables', 'http://alex-dev.org/ads/billboards/billboard_collectibles_01.gif', 1), + (2, 0, 9, NULL, 'http://alex-dev.org/ads/billboards/billboard_diner_01.gif', 1), + (3, 0, 12, NULL, 'http://alex-dev.org/ads/billboards/billboard_idol_02.gif', 1), + (4, 0, 13, NULL, 'http://alex-dev.org/ads/billboards/ad_rooftoptgt_outside_L.gif', 1), + (5, 0, 14, NULL, 'http://alex-dev.org/ads/billboards/ad_rooftoptgt_inside_R.gif', 1), + (6, 0, 36, NULL, 'http://alex-dev.org/ads/billboards/ad_lido_L.gif', 1), + (60, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/hc.gif', 1), + (61, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/ai_1.gif', 1), + (62, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/country.gif', 1), + (63, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/diner.gif', 1), + (64, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/interstitial_hc.gif', 1), + (65, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/interstitial_hcpromo09_hcparty3.gif', 1), + (66, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/interstitial_hween09.gif', 1), + (67, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/interstitial_kitchen.gif', 1), + (68, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/interstitial_pay2playscam.gif', 1), + (69, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/roomloadtrophies.gif', 1), + (70, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/roomloadpixels.gif', 1), + (71, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/roomloadbobba.gif', 1), + (72, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/mall.gif', 1), + (73, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/love_earth.gif', 1), + (74, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/loadingscreen.gif', 1), + (75, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/jungle.gif', 1), + (76, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/it_bolly.gif', 1), + (77, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/safety_148.gif', 1), + (78, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/trophies.gif', 1), + (79, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/us_ying_yang_bb.gif', 1), + (80, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/windows.gif', 1), + (81, 1, -1, NULL, 'http://cdn.classichabbo.com/c_images/room_ads/xmas.gif', 0); +/*!40000 ALTER TABLE `rooms_ads` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_bans +CREATE TABLE IF NOT EXISTS `rooms_bans` ( + `room_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `expire_at` bigint(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_bans: ~0 rows (approximately) +DELETE FROM `rooms_bans`; +/*!40000 ALTER TABLE `rooms_bans` DISABLE KEYS */; +/*!40000 ALTER TABLE `rooms_bans` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_bots +CREATE TABLE IF NOT EXISTS `rooms_bots` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(25) NOT NULL, + `mission` varchar(255) NOT NULL, + `x` int(11) NOT NULL, + `y` int(11) NOT NULL, + `start_look` varchar(25) NOT NULL, + `figure` varchar(255) NOT NULL, + `walkspace` text NOT NULL, + `room_id` int(11) NOT NULL DEFAULT 0, + `speech` mediumtext NOT NULL, + `response` mediumtext NOT NULL, + `unrecognised_response` mediumtext NOT NULL, + `hand_items` varchar(50) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_bots: ~33 rows (approximately) +DELETE FROM `rooms_bots`; +/*!40000 ALTER TABLE `rooms_bots` DISABLE KEYS */; +INSERT INTO `rooms_bots` (`id`, `name`, `mission`, `x`, `y`, `start_look`, `figure`, `walkspace`, `room_id`, `speech`, `response`, `unrecognised_response`, `hand_items`) VALUES + (5, 'Xenia', 'The belle of the Battle Ball', 1, 8, '2,2', 'sd=001&sh=002/54,178,190&lg=200/230,49,57&ch=506/230,49,57,141&lh=001/168,123,67&rh=001/168,123,67&hd=001/168,123,67&ey=001&fc=001/168,123,67&hr=506/194,26,134,190&hrb=506/2,3,4&rs=002/230,49,57&ls=002/230,49,57&bd=001/168,123,67', '0,5 0,6 0,7 1,5 1,6 1,7 1,8', 66, '', '', '', ''), + (6, 'Pamela', ':)', 7, 8, '4,4', 'sd=001&sh=002/148,98,32&lg=005/230,49,57&ch=201/255,255,255&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=507/103,78,59&rs=002/255,255,255&ls=002/255,255,255&bd=001/215,175,125', '22,4 23,4 24,4 25,4 26,4 22,5 23,5 24,5 25,5 26,5', 45, '', '', '', ''), + (7, 'Regina', 'I know, right?', 3, 6, '2,2', 'sd=001&sh=002/255,115,131&lg=005/255,115,131&ch=018/255,255,255&lh=001/255,204,153&rh=001/255,204,153&hd=001/255,204,153&ey=001&fc=001/255,204,153&hr=501/225,204,120&rs=003/255,255,255&ls=003/255,255,255&bd=001/255,204,153', '2,7 2,8 2,9 3,5 3,6 3,7 3,8 3,9 3,10', 10, 'I\'ve been busy practicing my dance routine for my latest song!|You like coffee? I like my job|You mocha me very happy.|Italians are so good at making coffee because they naturally like to espresso themselves.', 'Enjoy this|This will do the trick|One %lowercaseDrink% coming right up!', 'Repeat that please!|Say that again|What?|Hmm...', 'Coffee'), + (8, 'James', 'Nemo my name forever more', 4, 24, '0,0', 'sd=001&sh=001/17,17,17&lg=001/17,17,17&ch=800&lh=001/240,213,179&rh=001/240,213,179&hd=001/240,213,179&ey=001/254,202,150&fc=001/240,213,179&hr=201/17,17,17&rs=800&ls=800&bd=001/240,213,179', '4,24 4,25 4,26 4,27 5,24 5,25 5,26 5,27', 23, '', '', '', ''), + (9, 'Marion', 'I want to be Bonnie Blond!', 6, 25, '2,2', 'sd=001&sh=002/17,17,17&lg=005/255,115,131&ch=018/17,17,17&lh=001/230,200,162&rh=001/230,200,162&hd=001/230,200,162&ey=002&fc=001/230,200,162&hr=202/165,90,24&rs=003/17,17,17&ls=003/17,17,17&bd=001/230,200,162', '6,24 6,25 6,26 6,27', 23, '', '', '', ''), + (10, 'Brone', 'Happy to help', 0, 8, '4,4', 'sd=001/0&hr=008/115,99,70&hd=002/145,98,55&ey=005/0&fc=001/145,98,55&bd=001/145,98,55&lh=001/145,98,55&rh=001/145,98,55&ch=005/17,17,17&ls=002/17,17,17&rs=002/17,17,17&lg=004/17,17,17&sh=003/17,17,17', '0,7 1,7 2,7 3,7 4,7 5,7 6,7 7,7 8,7 9,7 0,8 1,8 2,8 3,8 4,8 5,8 6,8 7,8 8,8 9,8', 21, 'Enjoy the dance!|I\'ve never seen what the other side is like...|My boss doesn\'t allow me to see the disco :(|I serve some mean drinks!', 'You look like you need this|Hmm, take this', 'Not sure what you said|Did I hear something?|What?', ''), + (11, 'Marcus', 'Man of Talent', 0, 22, '2,2', 'sd=001/0&hr=010/224,186,120&hd=002/255,204,153&ey=005/0&fc=001/255,204,153&bd=001/255,204,153&lh=001/255,204,153&rh=001/255,204,153&ch=005/59,122,192&ls=002/59,122,192&rs=002/59,122,192&lg=006/119,159,187&sh=001/223,175,209', '0,21 0,22 0,23 1,21 1,22 1,23', 5, 'If you hear a funny noise, it\'s just Sid the sloth - he loves to sing!|No ordinary drink for no ordinary Habbo|Stressed out? The Ice House cinema\'s the best place to chill out.|Come on - you don\'t need Dutch courage|We\'ve got the coolest DVD playing this week - check it out!|Wow! You have a real talent!|See a hairy elephant? It\'s just Manny the moody mastodon.', 'Here you go!|Sure, %lowercaseDrink% it is!', 'Hello', 'Cola'), + (12, 'Dave', 'Hello, hello', 10, 7, '2,2', 'sd=001/0&hr=995/255,255,255&hd=001/255,204,153&ey=001/0&fc=001/255,204,153&bd=001/255,204,153&lh=001/255,204,153&rh=001/255,204,153&ch=995/255,255,255&ls=002/255,255,255&rs=002/255,255,255&lg=999/255,255,255&sh=001/121,94,83', '9,2 9,3 9,4 10,2 10,3 10,4', 9, '', '', '', ''), + (13, 'Sadie', 'Happy St. Patrick\'s Day!', 10, 5, '2,2', 'sd=001&sh=001/36&lg=999/255,255,255&ch=006/163&lh=001/255,204,153&rh=001/255,204,153&hd=001/255,204,153&ey=001&fc=001/255,204,153&hr=006/250,230,150&rs=002/163&ls=002/163&bd=001/255,204,153', '9,5 9,6 9,7 9,8 10,5 10,6 10,7 10,8', 9, 'Adorate tutti Bubu, regina delle banane!', '', '', ''), + (14, 'Reginaldo', ':)', 23, 5, '4,4', 'sd=001&hd=001/236,214,186&fc=001/236,214,186&bd=001/236,214,186&rh=001/236,214,186&lh=001/236,214,186&hr=001/255,255,255&lg=001/40,40,40&sh=001/150,0,0&rs=002/255,255,255&ls=002/255,255,255&ch=202/255,255,255', '22,4 23,4 24,4 25,4 26,4 22,5 23,5 24,5 25,5 26,5', 17, 'It\'s pretty cool working here, I must say|Maybe some day I will become a club member...|Who knew that someone like me would end up working here?', 'Enjoy the %drink%!,Here you go!', 'Sorry? I didn\'t catch that|Hello there!|That\'s my name, don\'t wear it out', 'Water,Juice,Lemonade,Tea'), + (15, 'Billy', 'You can call me Bill', 5, 13, '2,2', 'sd=001/0&hr=010/224,186,120&hd=002/255,203,152&ey=001/0&fc=001/255,203,152&bd=001/255,203,152&lh=001/255,203,152&rh=001/255,203,152&ch=502/57,65,148&ls=001/57,65,148&rs=001/57,65,148&lg=006/102,102,102&sh=003/51,51,51', '4,10 5,10 5,11 5,12 5,13', 11, 'I serve drinks here|Did you know that coffee comes from plants?|Espresso your opinions politely.|Hmmm... the lovely smell of coffee beans...', 'Coming right up!|Be careful, don\'t hurt yourself!', 'Cool story, brew.|Yep, that\'s me', 'Latte,Coffee,Hot Chocolate'), + (16, 'Phillip', 'Why not try a nice burger?', 1, 13, '2,2', 'sd=001/0&hr=010/255,255,255&hd=002/255,204,153&ey=001/0&fc=001/255,204,153&bd=001/255,204,153&lh=001/255,204,153&rh=001/255,204,153&ch=001/217,113,69&ls=002/217,113,69&rs=002/217,113,69&lg=001/102,102,102&sh=003/47,45,38', '0,7 0,8 0,9 0,10 0,11 0,12 0,13 1,7 1,8 1,9 1,10 1,11 1,12 1,13', 16, 'The way to a man\'s heart is through his stomach.|One day i\'ll be famous', 'Grilling the meat as we speak!|That\'s the special!', '', 'Burger,Water,Drink,Cola,Cow,Reindeer'), + (17, 'Ariel', 'Happy to help', 0, 13, '2,2', 'sd=001&sh=001/36&lg=001/200,0,0&ch=006/163&lh=001/255,203,152&rh=001/255,203,152&hd=001/255,203,152&ey=001&fc=001/255,203,152&hr=003/250,50,2&rs=002/163&ls=002/163&bd=001/255,203,152', '0,9 0,10 0,11 0,12 0,13 0,14', 43, 'Sure is chilly at the Ice Cafe...|Here to serve, every, single, day...|Did you know that I never get a break?', '%drink% it is me\'dear\'!:)|Et voila!', 'Sorry - did you want something?', 'Juice,Coffee,Coke,Cola,Tea,Chocolate'), + (18, 'Piers', 'The master of the kitchen!', 11, 12, '4,4', 'sd=001/0&hr=799/255,255,255&hd=002/255,204,153&ey=001/0&fc=001/255,204,153&bd=001/255,204,153&lh=001/255,204,153&rh=001/255,204,153&ch=003/255,255,255&ls=001/255,255,255&rs=001/255,255,255&lg=004/255,255,255&sh=004/255,255,255', '3,12 4,12 5,12 6,12 7,12 8,12 9,12 10,12 11,12 12,12 3,13 4,13 5,13 6,13 7,13 8,13 9,13 10,12 11,13 12,13', 8, 'Would you like to taste my wrath?|The silverback grilla is native to this area.|Heaters gonna heat.|That’s a recipe for disaster.', 'Yes?|What? I\'m busy you know|A FINE CHOICE#SHOUT|Soup man, how’s it going?', '', ''), + (19, 'Marcel', 'In search of lost time', 11, 15, '2,2', 'sd=001&sh=003/154,154,154&lg=001/98,90,32&ch=202/255,210,179&lh=001/255,210,179&rh=001/255,210,179&hd=001/255,204,153&ey=001&fc=001/255,204,153&hr=203/98,98,98&rs=001/255,210,179&ls=001/255,210,179&bd=001/255,204,153', '7,14 8,14 9,14 10,14 11,14 7,15 8,15 9,15 10,15 11,15 7,16 8,16 9,16 10,16 11,16', 3, '', '', '', ''), + (20, 'Chloe', 'Service with a smile', 6, 30, '2,2', 'sd=001&sh=001/255,115,41&lg=999/255,255,255&ch=006/35,134,182&lh=001/255,203,1522&rh=001/255,203,152&hd=001/255,203,152&ey=001&fc=001/255,203,152&hr=003/250,50,2&rs=002/35,134,182&ls=002/35,134,182&bd=001/255,203,152', '6,29 6,30', 36, 'I need to get out of the ice cream booth and into the DJ booth!|Ow there goes my eardrum!#SHOUT|I wish I looked that good in a bikini|When will I, will I be a famous Habbo who gets on the VIP list?|I\'m a fiery redhead - come here boys!', 'There you go.', 'Hello sweetie|Hi, how can I help?|Well hello there', 'Argh,Lemon,Coke,Cola'), + (22, 'Berith', 'Serving you with a smile :)', 11, 0, '4,4', 'sd=001&sh=002/148,98,32&lg=005/230,49,57&ch=201/255,255,255&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=506/103,78,59&rs=002/255,255,255&ls=002/255,255,255&bd=001/215,175,125', '6,0 7,0 8,0 9,0 10,0 11,0 12,0 6,1 7,1 8,1 9,1 10,1 11,1 12,1', 28, 'It\'s pretty cool working here, I must say|Maybe some day I will become a club member...|Who knew that someone like me would end up working here?', '', 'Sorry? I didn\'t catch that|Hello there!|That\'s my name, don\'t wear it out', ''), + (23, 'DJ von Beathoven', 'Turn the music up!', 18, 9, '4,4', 'sd=001&sh=001/36&lg=001&ch=005/163&lh=001/171,122,89&rh=001/171,122,89&hd=001/171,122,89&ey=001&fc=001/171,122,89&hr=931/255,255,255&rs=002/163&ls=002/163&bd=001/8', '17,7 17,8 17,9 18,8 18,9', 28, '', '', '', ''), + (26, 'Amber', 'On the crest of a wave', 11, 2, '4,4', 'sd=001&sh=002/148,98,32&lg=200/120,66,21&ch=018/255,230,57&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=023/255,230,50&rs=003/255,230,57&ls=003/255,230,57&bd=001/215,175,125', '10,0 11,0 12,0 10,1 11,1 12,1 13,1 10,2 11,2 12,2 13,2', 26, 'Ask a guide for safety hints and tips. They have an guide badge.|P2S is giving your furni away!|I got this job by smiling sweetly at Redtiz for 40 minutes.|Be safe, not sorry! Learn to protect yourself|Quench it!|Glad to be of service!|Oh to be a star! Perhaps one day soon I\'ll be recognised?', 'This should quench your thirst!|\r\nThirst quenching, soul refreshing!', 'Hello, come for some safety tips? Ask a guide!', 'Water,Drink,Chocolate'), + (27, 'Maarit', ':)', 11, 2, '4,4', 'sd=001&sh=001/255,115,41&lg=003/0,0,0&ch=018/0,0,0&lh=001/255,203,1522&rh=001/255,203,152&hd=001/255,203,152&ey=001&fc=001/255,203,152&hr=507/225,204,120&rs=001/255,255,255&ls=001/255,255,255&bd=001/255,255,255', '22,4 23,4 24,4 25,4 26,4 22,5 23,5 24,5 25,5 26,5', 19, '', '', '', ''), + (28, 'ScubaJoe', '', 26, 10, '4,4', 'sd=001&sh=001/255,255,255&lg=006/255,255,255&ch=003/255,255,255&lh=001/145,98,55&rh=001/145,98,55&hd=001/145,98,55&ey=001&fc=001/145,98,55&hr=008/145,98,55&rs=002/255,255,255&ls=002/255,255,255&bd=001/8', '26,10 27,10 28,10', 60, '', '', '', 'Tea,Cola,Drink;Water'), + (29, 'Skye', 'On the top of the world', 3, 0, '4,4', 'sd=001&sh=002/148,98,32&lg=003/84,98,139&ch=022/97,114,164&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=503/235,240,163&rs=002/97,114,164&ls=002/97,114,164&bd=001/215,175,125', '1,0 2,0 3,0 4,0', 14, 'Above the clouds, freedom must be limitless...|I\'m sooo tired! *yawn*', 'Sure.|Roger that.', 'Hi, how can I help?|I can\'t hear you, the air is too thin up here!#WHISPER', 'Cola,Coke,Coffee,Latte'), + (31, 'Jem', 'Don\'t look down', 1, 10, '2,2', 'sd=001&sh=002/255,115,131&lg=005/255,115,131&ch=015/255,189,189&lh=001/230,200,162&rh=001/230,200,162&hd=001/230,200,162&ey=002&fc=001/230,200,162&hr=501/165,90,24&hrb=501/2,3,4&rs=003/230,200,162&ls=003/230,200,162&bd=001/230,200,162', '0,8 0,9 0,10 0,11 0,12 0,13 1,8 1,9 1,10 1,11 1,12 1,13 1,14', 38, 'Quiet please, I\'m thinking#SHOUT|Purchase tickets at the machine by the pool.|It makes me dizzy to move too quickly!|Drink anyone?|Gerbils are good :)|Calm down|Habbo Staff making Habbos smile since 2001', 'There you go.', 'You calling? I\'m listening...|I\'m with ya...What\'s up?|Jem\'s the name, drinks are my game|That\'s my name, don\'t wear it out!', 'Water,Cola,Lemonade'), + (32, 'Gino', 'The master of pizza!', 1, 4, '4,4', 'sd=001&sh=001/255,0,0&lg=001/255,255,255&ch=995/255,255,255&lh=001/254,202,1508&rh=001/254,202,1508&hd=001/254,202,150&ey=001/254,202,150&fc=001/254,202,1508&hr=802/255,255,255&rs=002/255,255,255&ls=002/255,255,255&bd=001/254,202,150', '0,2 0,3 0,4 1,2 1,3 1,4', 15, 'Grab a pizza and enjoy the magnificent view!', '', '', ''), + (33, 'Carlo', 'The master of pizza', 1, 3, '4,4', 'sd=001/0&hr=799/255,255,255&hd=002/255,204,153&ey=001/0&fc=001/255,204,153&bd=001/255,204,153&lh=001/255,204,153&rh=001/255,204,153&ch=003/255,255,255&ls=001/255,255,255&rs=001/255,255,255&lg=004/255,255,255&sh=004/255,255,255', '1,1 2,1 3,1 4,1 5,1', 15, 'Food of the gods.|Gino, do not forget to wash the dishes!', 'Would you like a drink with that?|Not a problem', 'I don\'t understand you.#WHISPER', 'Pizza,Water,Drink'), + (38, 'Ingemar', 'Snowballs, schnowballs', 39, 18, '4,4', 'sd=001&sh=001/255,255,255&lg=006/255,255,255&ch=001/255,255,255&lh=001/145,98,55&rh=001/145,98,55&hd=001/215,175,125&ey=001&fc=001/145,98,55&ha=10/255,255,255&rs=001/255,255,255&ls=001/255,255,255&bd=001/255,203,152', '37,17 37,18 38,18 39,18 40,18', 67, 'You people are my best customer ever, I like you.|Somewhere in America, there\'s a street named after my dad|Snowballmachines give you snowballs fast|Use the scenery to your advantage', '', 'Watcha! Welcome to the coolest club in the whole hotel', 'Coffee,Latte'), + (39, 'Lofar', 'Service without gravity :)', 2, 0, '4,4', 'sd=001&sh=001/194,227,232&lg=001/255,255,255&ch=001/255,255,255&lh=001/240,213,179&rh=001/240,213,179&hd=001/240,213,179&ey=001/254,202,150&fc=001/240,213,179&hr=888/255,255,255&rs=001/255,255,255&ls=001/255,255,255&bd=001/240,213,179', '1,0 2,0 3,0 4,0 1,1 2,1 3,1 4,1', 12, 'This cafe is out of this world...|A space fish is usually called starfish.|I would have gone to space, but the cost is astronomical!|Two astronauts who were dating, met up for a launch date.|Becoming a space pilot is not easy. It requires a good altitude.', 'Here you go!|Drink up!|Here\'s the %drink%|Spacylicious!', 'Sorry, I can\'t hear you in this space suit|What\'s that? Must be the lack of gravity', 'Drink,Water,Cola'), + (40, 'Eric ', ':)', 1, 15, '2,2', 'sd=001&sh=001/36&lg=201&ch=005/163,20,20&lh=001/171,122,89&rh=001/171,122,89&hd=001/171,122,89&ey=001&fc=001/171,122,89&hr=014/255,255,255&rs=002/163,20,20&ls=002/163,20,20&bd=001/8 look=2,2', '9,18 9,16 9,17 9,19 9,20 9,21 9,22 9,23 8,18 8,16 8,17 8,19 8,20 8,21 8,22 8,23', 6, '', '', '', ''), + (41, 'Laura', 'Keeps you cool', 15, 3, '4,4', 'sd=001&sh=002/148,98,32&lg=005/230,49,57&ch=911/255,255,255&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=017/103,78,59&rs=002/255,255,255&ls=002/255,255,255&bd=001/215,175,125', '14,3 15,3', 31, 'Has anyone seen my bikini? I need to cool down!#SHOUT', '', '', ''), + (42, 'Ray', 'Chill out and have a coconut!', 22, 26, '2,2', 'sd=001&hd=001/201,143,113&fc=001/201,143,113&bd=001/201,143,113&rh=001/201,143,113&lh=001/201,143,113&hr=504/223,218,190&lg=201/230,49,57&sh=002/246,172,49&rs=003/201,143,113&ls=003/201,143,113&ch=501/246,172,49look=2,2', '22,24 23,24 22,25 23,25 22,26 23,26 22,27 23,27 22,28 23,28 22,29 23,29 22,30 23,30', 25, 'Official Fansite are voted by YOU, the Habbo community!|Did you know the Official Fansites are changed every 3 months?|If they aren\'t listed once you click the billboard then they aren\'t Official!|Once refreshed, visit an Official Fansite!|Click the billboard now to visit our Official Fansites!|Official Fansites have great events, comps and radio shows!', 'Refreshing!|Here you are, with extra coconut milk, only for you ;)|Here you go, hope you like the umbrella.|You sure are thirsty, huh?|You can only have one at a time!|That\'s my name! As in the beams of golden sunshine and not the sunglasses.|Hi my name is what? my name is who? my name is...ray', '', 'Cola,Coke,Coconut Milk'), + (43, 'Tao', 'Tea is serenity', 10, 4, '4,4', 'sd=001&sh=001/36&lg=001&ch=002/163,20,20&lh=001/171,122,89&rh=001/171,122,89&hd=001/171,122,89&ey=001&fc=001/171,122,89&hr=791/255,255,255&rs=001/163,20,20&ls=001/163,20,20&bd=001/8', '8,2 9,2 10,2 11,2 8,3 9,3 10,3 11,3 8,4 9,4 10,4 11,4', 18, '', '', '', 'Tea,Drink'), + (44, 'Harry', 'Happy to help', 8, 21, '2,2', 'sd=001&sh=003/41,41,41&lg=006/51,51,51&ch=202/139,24,32&lh=001/255,210,179&rh=001/255,210,179&hd=001/255,204,153&ey=001&fc=001/255,204,153&hr=203/103,78,59&hrb=203/2,3,4&rs=001/255,255,255&ls=001/255,255,255&bd=001/255,204,153', '9,18 9,16 9,17 9,19 9,20 9,21 9,22 9,23 8,18 8,16 8,17 8,19 8,20 8,21 8,22 8,23', 1, 'Please keep it down people are trying to think!#SHOUT|Only use the Call for help in an emergency!|Want to know more about Habbo Hotel? Ask a Habbo Guide!|Is it me or is something BIG about to happen?|In Trouble? Call for Moderator assistance using the Blue Question Mark!|There\'s no such thing as a free lunch or free credits!', 'Why Hello there! *Shakes Habbo Hand* My name\'s Harry.|Hello, Hello, Hello!|Hello and welcome to Habbo Hotel! Enjoy your stay! :)', 'Why Hello there! *Shakes Habbo Hand* My name\'s Harry.|Hello, Hello, Hello!|\r\nHello and welcome to Habbo Hotel! Enjoy your stay! :)', 'Water'), + (45, 'Miho', 'My katana thinks you\'re cute!', 14, 25, '2,2', 'sd=001&sh=001/36&lg=200/204,204,204&ch=204/204,204,204&lh=001/215,175,125&rh=001/215,175,125&hd=001/215,175,125&ey=001&fc=001/215,175,125&hr=504/50,91,106&rs=002/204,204,204&ls=002/204,204,204&bd=001/8', '14,24 14,25', 27, 'Zen Garden is the ultimate in relaxation|Listen to the breeze blowing through the leaves|Welcome to my garden a place of quiet reflection...|Listen to the breeze blowing through the leaves...', 'I hope you make peace with this|Relax with this|Relaxation can be achieved this this', 'That is my name.|Say again - it\'s a bit noisy in here#WHISPER|You bring confusion to my mind, and pain to my ears...#WHISPER|', 'Water'); +/*!40000 ALTER TABLE `rooms_bots` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_categories +CREATE TABLE IF NOT EXISTS `rooms_categories` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) NOT NULL, + `parent_id` int(11) NOT NULL, + `isnode` int(11) DEFAULT 0, + `name` varchar(255) NOT NULL, + `public_spaces` int(11) DEFAULT 0, + `allow_trading` int(11) DEFAULT 0, + `minrole_access` int(11) DEFAULT 1, + `minrole_setflatcat` int(11) DEFAULT 1, + `club_only` tinyint(4) NOT NULL DEFAULT 0, + `is_top_priority` int(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_categories: ~22 rows (approximately) +DELETE FROM `rooms_categories`; +/*!40000 ALTER TABLE `rooms_categories` DISABLE KEYS */; +INSERT INTO `rooms_categories` (`id`, `order_id`, `parent_id`, `isnode`, `name`, `public_spaces`, `allow_trading`, `minrole_access`, `minrole_setflatcat`, `club_only`, `is_top_priority`) VALUES + (2, 0, 0, 0, 'No category', 0, 0, 1, 1, 0, 0), + (3, 0, 0, 1, 'Public Rooms', 1, 0, 1, 6, 0, 0), + (4, 0, 0, 1, 'Guest Rooms', 0, 0, 1, 6, 0, 0), + (5, 0, 3, 0, 'Entertainment', 1, 0, 1, 6, 0, 0), + (6, 0, 3, 0, 'Restaurants and Cafes', 1, 0, 1, 6, 0, 0), + (7, 0, 3, 0, 'Lounges and Clubs', 1, 0, 1, 6, 0, 0), + (8, 0, 3, 0, 'Habbo Club', 1, 0, 1, 6, 0, 0), + (9, 0, 3, 0, 'Outside Spaces', 1, 0, 1, 6, 0, 0), + (10, 0, 3, 0, 'Swimming Pools', 1, 0, 1, 6, 0, 0), + (11, 0, 3, 0, 'The Lobbies', 1, 0, 1, 6, 0, 0), + (12, -1, 3, 0, 'The Hallways', 1, 0, 1, 6, 0, 0), + (13, 0, 3, 0, 'Games', 1, 0, 1, 6, 0, 0), + (101, 0, 4, 0, 'Staff HQ', 0, 1, 4, 5, 0, 0), + (112, 0, 4, 0, 'Restaurant, Bar & Night Club Rooms', 0, 0, 1, 1, 0, 0), + (113, 0, 4, 0, 'Trade floor', 0, 1, 1, 1, 0, 0), + (114, 0, 4, 0, 'Chill, Chat & Discussion Rooms', 0, 0, 1, 1, 0, 0), + (115, 0, 4, 0, 'Hair Salons & Modelling Rooms', 0, 0, 1, 1, 0, 0), + (116, 0, 4, 0, 'Maze & Theme Park Rooms', 0, 0, 1, 1, 0, 0), + (117, 0, 4, 0, 'Gaming & Race Rooms', 0, 1, 1, 1, 0, 0), + (118, 0, 4, 0, 'Help Centre Rooms', 0, 0, 1, 1, 0, 0), + (120, 0, 4, 0, 'Miscellaneous', 0, 0, 1, 1, 0, 0), + (121, 0, 4, 0, 'Flower Power Puzzle', 0, 1, 1, 5, 0, 1); +/*!40000 ALTER TABLE `rooms_categories` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_entry_badges +CREATE TABLE IF NOT EXISTS `rooms_entry_badges` ( + `room_id` int(11) NOT NULL, + `badge` varchar(15) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_entry_badges: ~0 rows (approximately) +DELETE FROM `rooms_entry_badges`; +/*!40000 ALTER TABLE `rooms_entry_badges` DISABLE KEYS */; +/*!40000 ALTER TABLE `rooms_entry_badges` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_events +CREATE TABLE IF NOT EXISTS `rooms_events` ( + `room_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `category_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `description` text NOT NULL, + `expire_time` bigint(11) NOT NULL, + `tags` text NOT NULL DEFAULT '', + PRIMARY KEY (`room_id`), + UNIQUE KEY `room_id` (`room_id`), + KEY `expire_time` (`expire_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_events: ~0 rows (approximately) +DELETE FROM `rooms_events`; +/*!40000 ALTER TABLE `rooms_events` DISABLE KEYS */; +/*!40000 ALTER TABLE `rooms_events` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_models +CREATE TABLE IF NOT EXISTS `rooms_models` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `model_id` varchar(255) NOT NULL, + `model_name` varchar(255) NOT NULL, + `door_x` int(11) NOT NULL DEFAULT 0, + `door_y` int(11) NOT NULL DEFAULT 0, + `door_z` double NOT NULL DEFAULT 0, + `door_dir` int(11) NOT NULL DEFAULT 2, + `heightmap` text NOT NULL DEFAULT '', + `trigger_class` enum('flat_trigger','battleball_lobby_trigger','snowstorm_lobby_trigger','space_cafe_trigger','habbo_lido_trigger','rooftop_rumble_trigger','diving_deck_trigger','infobus_park','infobus_poll','none') NOT NULL DEFAULT 'flat_trigger', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_models: ~91 rows (approximately) +DELETE FROM `rooms_models`; +/*!40000 ALTER TABLE `rooms_models` DISABLE KEYS */; +INSERT INTO `rooms_models` (`id`, `model_id`, `model_name`, `door_x`, `door_y`, `door_z`, `door_dir`, `heightmap`, `trigger_class`) VALUES + (1, 'model_a', 'model_a', 3, 5, 0, 2, 'xxxxxxxxxxxx|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxx00000000|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (2, 'model_b', 'model_b', 0, 5, 0, 2, 'xxxxxxxxxxxx|xxxxx0000000|xxxxx0000000|xxxxx0000000|xxxxx0000000|x00000000000|x00000000000|x00000000000|x00000000000|x00000000000|x00000000000|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (3, 'model_c', 'model_c', 4, 7, 0, 2, 'xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (4, 'model_d', 'model_d', 4, 7, 0, 2, 'xxxxxxxxxxxx|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxx000000x|xxxxxxxxxxxx', 'flat_trigger'), + (5, 'model_e', 'model_e', 1, 5, 0, 2, 'xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xx0000000000|xx0000000000|xx0000000000|xx0000000000|xx0000000000|xx0000000000|xx0000000000|xx0000000000|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (6, 'model_f', 'model_f', 2, 5, 0, 2, 'xxxxxxxxxxxx|xxxxxxx0000x|xxxxxxx0000x|xxx00000000x|xxx00000000x|xxx00000000x|xxx00000000x|x0000000000x|x0000000000x|x0000000000x|x0000000000x|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (7, 'model_g', 'model_g', 1, 7, 1, 2, 'xxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxx00000x|xxxxxxx00000x|xxxxxxx00000x|xx1111000000x|xx1111000000x|xx1111000000x|xx1111000000x|xx1111000000x|xxxxxxx00000x|xxxxxxx00000x|xxxxxxx00000x|xxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxx|xxxxxxxxxxxxx', 'flat_trigger'), + (8, 'model_h', 'model_h', 4, 4, 1, 2, 'xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxx111111x|xxxxx111111x|xxxxx111111x|xxxxx111111x|xxxxx111111x|xxxxx000000x|xxxxx000000x|xxx00000000x|xxx00000000x|xxx00000000x|xxx00000000x|xxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxx', 'flat_trigger'), + (9, 'model_i', 'model_i', 0, 10, 0, 2, 'xxxxxxxxxxxxxxxxx|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|x0000000000000000|xxxxxxxxxxxxxxxxx', 'flat_trigger'), + (10, 'model_j', 'model_j', 0, 10, 0, 2, 'xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx0000000000|xxxxxxxxxxx0000000000|xxxxxxxxxxx0000000000|xxxxxxxxxxx0000000000|xxxxxxxxxxx0000000000|xxxxxxxxxxx0000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x0000000000xxxxxxxxxx|x0000000000xxxxxxxxxx|x0000000000xxxxxxxxxx|x0000000000xxxxxxxxxx|x0000000000xxxxxxxxxx|x0000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (11, 'model_k', 'model_k', 0, 13, 0, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx00000000|xxxxxxxxxxxxxxxxx00000000|xxxxxxxxxxxxxxxxx00000000|xxxxxxxxxxxxxxxxx00000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|x000000000000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (12, 'model_l', 'model_l', 0, 16, 0, 2, 'xxxxxxxxxxxxxxxxxxxxx|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|x00000000xxxx00000000|xxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (13, 'model_m', 'model_m', 0, 15, 0, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|x0000000000000000000000000000|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxx00000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (14, 'model_n', 'model_n', 0, 16, 0, 2, 'xxxxxxxxxxxxxxxxxxxxx|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x000000xxxxxxxx000000|x000000x000000x000000|x000000x000000x000000|x000000x000000x000000|x000000x000000x000000|x000000x000000x000000|x000000x000000x000000|x000000xxxxxxxx000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|x00000000000000000000|xxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (15, 'model_o', 'model_o', 0, 18, 1, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxx00000000xxxx|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|x111111100000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxx0000000000000000|xxxxxxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (16, 'model_p', 'model_p', 0, 23, 2, 2, 'xxxxxxxxxxxxxxxxxxx|xxxxxxx222222222222|xxxxxxx222222222222|xxxxxxx222222222222|xxxxxxx222222222222|xxxxxxx222222222222|xxxxxxx222222222222|xxxxxxx22222222xxxx|xxxxxxx11111111xxxx|x222221111111111111|x222221111111111111|x222221111111111111|x222221111111111111|x222221111111111111|x222221111111111111|x222221111111111111|x222221111111111111|x2222xx11111111xxxx|x2222xx00000000xxxx|x2222xx000000000000|x2222xx000000000000|x2222xx000000000000|x2222xx000000000000|x2222xx000000000000|x2222xx000000000000|xxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (17, 'model_q', 'model_q', 10, 4, 2, 2, 'xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx22222222|xxxxxxxxxxx22222222|xxxxxxxxxxx22222222|xxxxxxxxxxx22222222|xxxxxxxxxxx22222222|xxxxxxxxxxx22222222|x222222222222222222|x222222222222222222|x222222222222222222|x222222222222222222|x222222222222222222|x222222222222222222|x2222xxxxxxxxxxxxxx|x2222xxxxxxxxxxxxxx|x2222211111xx000000|x222221111110000000|x222221111110000000|x2222211111xx000000|xx22xxx1111xxxxxxxx|xx11xxx1111xxxxxxxx|x1111xx1111xx000000|x1111xx111110000000|x1111xx111110000000|x1111xx1111xx000000|xxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (18, 'model_r', 'model_r', 10, 4, 3, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxx33333333333333|xxxxxxxxxxx33333333333333|xxxxxxxxxxx33333333333333|xxxxxxxxxxx33333333333333|xxxxxxxxxxx33333333333333|xxxxxxxxxxx33333333333333|xxxxxxx333333333333333333|xxxxxxx333333333333333333|xxxxxxx333333333333333333|xxxxxxx333333333333333333|xxxxxxx333333333333333333|xxxxxxx333333333333333333|x4444433333xxxxxxxxxxxxxx|x4444433333xxxxxxxxxxxxxx|x44444333333222xx000000xx|x44444333333222xx000000xx|xxx44xxxxxxxx22xx000000xx|xxx33xxxxxxxx11xx000000xx|xxx33322222211110000000xx|xxx33322222211110000000xx|xxxxxxxxxxxxxxxxx000000xx|xxxxxxxxxxxxxxxxx000000xx|xxxxxxxxxxxxxxxxx000000xx|xxxxxxxxxxxxxxxxx000000xx|xxxxxxxxxxxxxxxxxxxxxxxxx', 'flat_trigger'), + (19, 'newbie_lobby', 'newbie_lobby', 2, 11, 0, 2, 'xxxxxxxxxxxxxxxx000000|xxxxx0xxxxxxxxxx000000|xxxxx00000000xxx000000|xxxxx000000000xx000000|0000000000000000000000|0000000000000000000000|0000000000000000000000|0000000000000000000000|0000000000000000000000|xxxxx000000000000000xx|xxxxx000000000000000xx|x0000000000000000000xx|x0000000000000000xxxxx|xxxxxx00000000000xxxxx|xxxxxxx0000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxxxx000000000xxxxx|xxxxxx00000000000xxxxx|xxxxxx00000000000xxxxx|xxxxxx00000000000xxxxx|xxxxxx00000000000xxxxx|xxxxxx00000000000xxxxx|xxxxx000000000000xxxxx|xxxxx000000000000xxxxx', 'none'), + (20, 'theater', 'theater', 20, 27, 0, 0, 'XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXX|XXXXXXX111111111XXXXXXX|XXXXXXX11111111100000XX|XXXX00X11111111100000XX|XXXX00x11111111100000XX|4XXX00X11111111100000XX|4440000XXXXXXXXX00000XX|444000000000000000000XX|4XX000000000000000000XX|4XX0000000000000000000X|44400000000000000000000|44400000000000000000000|44X0000000000000000O000|44X11111111111111111000|44X11111111111111111000|33X11111111111111111000|22X11111111111111111000|22X11111111111111111000|22X11111111111111111000|22X11111111111111111000|22X11111111111111111000|22211111111111111111000|22211111111111111111000|XXXXXXXXXXXXXXXXXXXX00X|XXXXXXXXXXXXXXXXXXXX00X', 'none'), + (21, 'library', 'library', 20, 3, 1, 4, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx11111xx1xx1x111111x|xxxxxxxxxxxx111111xx1xx11111111x|xx111xxxxxxx111111xx1xx11111111x|xx111xxxxxxx1111111111111111111x|xx111xxxxxxx1111111111111111111x|xx111xxxxxxx1111111111111111111x|xx111xxxxxxx1111111111111xxxxxxx|xx111xxxxxx11111111111111111111x|xx111xxxxxx11111111111111111111x|xx111xxxxxx11111111111111111111x|xx111xxxxxx11111111111111xxxxxxx|xx111xxxxxxxx111111111111111111x|xx111xx11111x111111111111111111x|xx111xx11111x111111111111111111x|xx111xxxxx11x11111111x111xxxxxxx|xx111xxxxxxxx11111111xx11111111x|xx111xxx1111111111111xxx1111111x|xx111xxx1111111111111xxxx111111x|xxx111xx1111111111x11xxxx000000x|xxxxx1111xx1111111x11xxxx000000x|xxxxxxxxxxxx111111x11xxxx000000x|xxxxxxxxxxxx11xx11x11xxxx000000x|xxxxxxxxxxxx11xx11x11xxxx000000x|xxxxxxxxxxxx11xx11x11xxxx000000x|xxxxxxxxxxxx11xx11x11xxxx000000x|xxxxxxxxxxxx11xx11x11xxxx000000x|xxxxxxxxxxxx11xx11x111xxx000000x|xxxxxxxxxxxxxxxxxxxx11xxx000000x|xxxxxxxxxxxxxxxxxxxx11xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxx22222xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (22, 'floatinggarden', 'floatinggarden', 2, 21, 5, 4, 'xxxxxxxxxxxxxxxx333333xxxxxxxxx|xxxxxxxxxxxxxxxx3xxxx3xxxxxxxxx|xxxxxxxxxxxxxxxx3xxxx3xxxxxxxxx|xxxxxxxxxxxxxxxx3xxxx3xxxxxxxxx|xxxxxxxxxxxxxxx223xxx33xxxxxxxx|xxxxxxxxxxxxxxx11xxx33333xxxxxx|xxxxxxxxxxxxxxxx11xx3333333xxxx|xxxxxxxxxxxxxxxx11xx33333333xxx|xxxxxxxxxxxxxxxxx11xxxxxxxx3xxx|xxxxxxxxxxxxxxxxxx11xxxx3333xxx|xxxxxxxxxxxxxxxxxxx1xxxx33333xx|xxxxxxxxxxxxxxxxxxx1xxx3333333x|555xxxxxxxxxxx1111111x333333333|555xxxxxxxxxxx21111111xxxxxx333|555xxxxxxxxxxx22111111111xxxxxx|555xxxxxxxxxxx222xxxxxxx111xxxx|555xxxxxxxxxxx22xxxxxxxxxx1xxxx|555xxxxxxxxxxx23333333333x111xx|555xxxxxxxx33333333333333x111xx|555xxxxxxxx333333x3333333x111xx|555xxxxxxxx33333333333333x111xx|555xxxxxxxx33x33333333333x111xx|555xxxxxxxx33x33x33333333x111xx|555xxxxxxxx33x33x33333333x111xx|5554333333333x333x3333333x111xx|x554333333xxxx33xxxxxxxxxx111xx|xxxxxxxxx3xxxx333221111111111xx|xxxxxxxxx3xxxx333221111111111xx|xxxxxxxxx33333333xx1111x11x11xx|xxxxxxxxx33333333111xxx11xxxxxx|xxxxxxxxxxxxxx33311xxxx11xxxxxx|xxxxxxxxxxxxxx33311xxxx11xxxxxx|xxxxxxxxxxxxxx333x1xxxx11xxxxxx|xxxxxxxxxxxxxx333x1xx111111xxxx|xxxxxxxxxxxxxx33311xx111111xxxx|xxxxxxxxxx333333311xx111111xxxx|xxxxxxxxxxx33333311xx111111xxxx|xxxxxxxxxxxxxxxx111xxxxxxxxxxxx|xxxxxxxxxxxxxxx111xxxxxxxxxxxxx', 'none'), + (23, 'sunset_cafe', 'sunset_cafe', 34, 40, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx00000xx00000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxx0000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxxx000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx0000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (24, 'pool_a', 'pool_a', 2, 25, 7, 2, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx7xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx777xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx7777777xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx77777777xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx77777777xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx777777777xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx7xxx777777xxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx7x777777777xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx7xxx77777777xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx7x777777777x7xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx7xxx7777777777xxxxxxxxxxxxxx|xxxxxxxxxxxxxxx777777777777xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx77777777777x2111xxxxxxxxxxxx|xxxxxxxxxxxxxxx7777777777x221111xxxxxxxxxxx|xxxxxxxxx7777777777777777x2211111xxxxxxxxxx|xxxxxxxxx7777777777777777x22211111xxxxxxxxx|xxxxxxxxx7777777777777777x222211111xxxxxxxx|xxxxxx77777777777777777777x222211111xxxxxxx|xxxxxx7777777xx777777777777x222211111xxxxxx|xxxxxx7777777xx77777777777772222111111xxxxx|xxxxxx777777777777777777777x22221111111xxxx|xx7777777777777777777777x322222211111111xxx|77777777777777777777777x33222222111111111xx|7777777777777777777777x333222222211111111xx|xx7777777777777777777x333322222222111111xxx|xx7777777777777777777333332222222221111xxxx|xx777xxx777777777777733333222222222211xxxxx|xx777x7x77777777777773333322222222222xxxxxx|xx777x7x7777777777777x33332222222222xxxxxxx|xxx77x7x7777777777777xx333222222222xxxxxxxx|xxxx77777777777777777xxx3222222222xxxxxxxxx|xxxxx777777777777777777xx22222222xxxxxxxxxx|xxxxxx777777777777777777x2222222xxxxxxxxxxx|xxxxxxx777777777777777777222222xxxxxxxxxxxx|xxxxxxxx7777777777777777722222xxxxxxxxxxxxx|xxxxxxxxx77777777777777772222xxxxxxxxxxxxxx|xxxxxxxxxx777777777777777222xxxxxxxxxxxxxxx|xxxxxxxxxxx77777777777777x2xxxxxxxxxxxxxxxx|xxxxxxxxxxxx77777777777777xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxx777777777777xxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx7777777777xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx77777777xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx777777xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx7777xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxx77xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'habbo_lido_trigger'), + (25, 'pub_a', 'pub_a', 15, 25, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxx2222211111xxx|xxxxxxxxx2222222211111xxx|xxxxxxxxx2222222211111xxx|xxxxxxxxx2222222211111xxx|xxxxxxxxx2222222222111xxx|xxxxxxxxx2222222222111xxx|xxxxxxxxx2222222222000xxx|xxxxxxxxx2222222222000xxx|xxxxxxxxx2222222222000xxx|xxxxxxxxx2222222222000xxx|x333333332222222222000xxx|x333333332222222222000xxx|x333333332222222222000xxx|x333333332222222222000xxx|x333333332222222222000xxx|x333332222222222222000xxx|x333332222222222222000xxx|x333332222222222222000xxx|x333332222222222222000xxx|x333333332222222222000xxx|xxxxx31111112222222000xxx|xxxxx31111111000000000xxx|xxxxx31111111000000000xxx|xxxxx31111111000000000xxx|xxxxx31111111000000000xxx|xxxxxxxxxxxxxxx00xxxxxxxx|xxxxxxxxxxxxxxx00xxxxxxxx|xxxxxxxxxxxxxxx00xxxxxxxx|xxxxxxxxxxxxxxx00xxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (26, 'md_a', 'md_a', 3, 4, 7, 2, 'xxxxxxxx77xxxxxxxxxxxxxxxx|xxxxxxxx77xxxxxxxxxxxxxxxx|xxxxxx77777x77xxxxxxxxxxxx|xxx77777777777xxx44xxxxxxx|77777777777777xx444444444x|777777777777777xx44444444x|xxx777777777777xx44444444x|xxxx7777777777xxx44444444x|7777777777777777744448444x|7777777777777x4x744448444x|777777777777x444444448444x|7777777777774444444448444x|7777777777774444444448444x|777777777777x444444448444x|7777777777777x44444448444x|xxx777777777777x444448444x|xxx7777777777777444448444x|xxx7777777777777444448444x|xxx777777777777x444448444x|xxx77777777777x4444444444x|xxxx777777777444444444444x|xxxxxxxxxxxxxxxxxxxxxxxxxx', 'rooftop_rumble_trigger'), + (27, 'picnic', 'picnic', 16, 5, 2, 4, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xx22222xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|22xxxxxxxxxxxxx22xxxxxxxxxxxxxxxxxxxxx|2222222222222222222x222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222xxx222222222222222222222222|2222222222xx33x22222222222222222222222|222222222xx3333x2222222222222222222222|222222222x333333x222222222222222222222|222222222x333333x222222222222222222222|2222222222x3332x2222222222222222222222|22222222222x33x22222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222x22222xxxx22222222222222222222|22222222222222xxxx22222222222222222222|22222222222222xxx222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222|22222222222222222222222222222222222222', 'none'), + (28, 'park_a', 'park_a', 2, 15, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00xxxxxxxxxxxx|xxxxxxxxxxxxx0x00xxxxxxxxxxx0x000xxxxxxxxxxx|xxxxxxxxxxxx0000000000000000000000xxxxxxxxxx|xxxxxxxxxxx000000000000000000000000xxxxxxxxx|xxxxxxxxxxx0000000000000000000000000xxxxxxxx|xxxxxxxxxxx00000000000000000000000000xxxxxxx|xxxxxxxx000000000000000000000000000000xxxxxx|xxxxxxx00000000000000000000000000000000xxxxx|xxxxxxx000000000000000000000000000000000xxxx|xxxxxxx0000000000000000000000000000000000xxx|xxxxxxxxx000000000000000000000000000000000xx|00000000000000000000xx00000000000000000000xx|0000000000000000000xxxx00000000000xxxxxxx0xx|0000000000000000000xxxx00000000000x00000xxxx|xxxxx00x0000000000xxxxx0xxxxxx0000x0000000xx|xxxxx0000000000000xxxxx0xx000x0000x000000xxx|xxxxx0000000000000xxxxx0x000000000x00000xxxx|xxxxx000000x0000000xxxx0x000000000xxx00xxxxx|xxxxxxxx000x0000000xxx00xxx000000x0000xxxxxx|xxxxxxxx000x000000xxxx0x0000000000000xxxxxxx|xxxxxxxx000x000000011100000000000000xxxxxxxx|xxxxxxxx000x00000001110000000000000xxxxxxxxx|xxxxxxxxx00x0000000111x00000000x00xxxxxxxxxx|xxxxxxxxxx0x0000000xxx0000000xxxxxxxxxxxxxxx|xxxxxxxxxxxx000000xxxx0000000xxxxxxxxxxxxxxx|xxxxxxxxxxxx000000xxx00xxxxx00xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0xx000x00xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0x000000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0x00000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxxxx00xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxxxx0xxxxxxxxxxxxxxxxxxxx', 'infobus_park'), + (29, 'park_b', 'park_b', 11, 2, 0, 6, '0000x0000000|0000xx000000|000000000000|00000000000x|000000000000|00x0000x0000', 'infobus_poll'), + (30, 'pool_b', 'pool_b', 9, 21, 7, 1, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx777xxxxxxxxxxx|xxxxxxxxxxxxxxxxxx8888888x7xxx77777xxxxxxxxxx|xxxxxxxxxxxxxxxxxx8888888x7xxx777777xxxxxxxxx|xxxxxxxxxxxxxxxx88xxxxx77x7x777777777xxxxxxxx|xxxxxxxxxxxxxxxx88x7777777777777777777xxxxxxx|xxxxxxxxxxxxxxxx88x77777777777777777777xxxxxx|xxxxxxxxxxxxxx9988x77777777777777777777xxxxxx|xxxxxxxxxxxxxx9988x7777777777777777777x00xxxx|xxxxxxxxxxxxxx9988x777777777777777777x0000xxx|xxxxxxxxxxxxxx9988x7777777x0000000000000000xx|xxxxxxxxxxxxxx9988x777777x000000000000000000x|7777777777xxxx9988777777x0x0000000000000000xx|x7777777777xxx998877777x000x00000000000000xxx|xx7777777777xx99887777x00000x000000000000xxxx|xxx7777777777x9988777x0000000x0000000000xxxxx|xxxx777777777x777777x00000000x000000000xxxxxx|xxxxx777777777777777000000000x00000000xxxxxxx|xxxxxx77777777777777000000000x0000000xxxxxxxx|xxxxxxx777777x7777770000000000xxxx00xxxxxxxxx|xxxxxxxx77777777777xx0000000000000xxxxxxxxxxx|xxxxxxxxx777777110000x000000000000xxxxxxxxxxx|xxxxxxxxxx7x77x1100000x0000000000xxxxxxxxxxxx|xxxxxxxxxxx777x11000000x00000000xxxxxxxxxxxxx|xxxxxxxxxxxx771110000000x000000xxxxxxxxxxxxxx|xxxxxxxxxxxxx111100000000x0000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxx11100000000x000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx1100000000x00xxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx110000000x0xxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx110000000xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxx1100000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxx11000xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxx110xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'diving_deck_trigger'), + (31, 'ballroom', 'ballroom', 13, 6, 0, 4, 'xxxx4444444444444444444|xxxx4444444444444444444|xxxx4444444444444444444|xxxx33x2222444442222x33|xxxx2222222x00xx2222222|xxxx22222220000x2222222|xxxx11x0000x000x0000x11|xxxx0000000000000000000|11100000000000000000000|11100000000000000000000|11100000000000000000000|xxxx0000000000000000000|22210000000000000000000|22210000000000000000000|22210000000000000000000|xxxx0000000000000000000|11100000000000000000000|11100000000000000000000|11100000000000000000000|xxxxx000x11111111x0000x|xxxxxx00x1111x111x000xx|xxxxxxx0x11111111x00xxx|xxxxxxxxx11111111x0xxxx|xxxxxxxxx11111111xxxxxx', 'none'), + (32, 'cafe_gold0', 'cafe_gold0', 9, 29, 0, 0, 'xxxxxxxxxx1111xxxxxxx|xxxxxxxxxx11111xxxxxx|xxxxxxxxxx111111xxxxx|xx111111111111111xxxx|x11111111111111111xxx|1111111111111111111xx|11111111111111111111x|111111111111111111111|111111111111111111111|1111111111111x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000x1111111|1111111000000xxx00000|111111100000000000000|111111100000000000000|111111100000000000000|111111100000000xxxxx0|11111110000000xxxxxx0|11111110000000xxxxxx0|11111110000000xxxxxxx|x1111110000000xxxxxxx|xxxxxxxx0000000000xxx|xxxxxxxx000xxxxxxxxxx|xxxxxxxx000xxxxxxxxxx|xxxxxxxx000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx', 'none'), + (33, 'cafe', 'cafe', 30, 40, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx00000xx00000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx000000000000000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxx0000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxxx000000xxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000000xxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxx0000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx00000000000000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000000xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (34, 'den', 'den', 3, 22, 0, 0, '00000000xxxxxxxx|0000000000000000|0000000000000000|000000000000xx00|0000000000000000|0000000000000000|0000000000000000|x000000000000000|0000000000000000|0000000000000000|0000000000000000|0000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|xxx00xxxxxxxxxxx|xxx00xxxxxxxxxxx|xxx00xxxxxxxxxxx', 'none'), + (35, 'gardens', 'gardens', 2, 15, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx00xxxxxxxxxxxx|xxxxxxxxxxxxx0x00xxxxxxxxxxx0x000xxxxxxxxxxx|xxxxxxxxxxxx0000000000000000000000xxxxxxxxxx|xxxxxxxxxxx000000000000000000000000xxxxxxxxx|xxxxxxxxxxx0000000000000000000000000xxxxxxxx|xxxxxxxxxxx00000000000000000000000000xxxxxxx|xxxxxxxx000000000000000000000000000000xxxxxx|xxxxxxx00000000000000000000000000000000xxxxx|xxxxxxx000000000000000000000000000000000xxxx|xxxxxxx0000000000000000000000000000000000xxx|xxxxxxxxx000000000000000000000000000000000xx|00000000000000000000xx00000000000000000000xx|0000000000000000000xxxx00000000000xxxxxxx0xx|0000000000000000000xxxx00000000000x00000xxxx|xxxxx00x0000000000xxxxx0xxxxxx0000x0000000xx|xxxxx0000000000000xxxxx0xx000x0000x000000xxx|xxxxx0000000000000xxxxx0x000000000x00000xxxx|xxxxx000000x0000000xxxx0x000000000xxx00xxxxx|xxxxxxxx000x0000000xxx00xxx000000x0000xxxxxx|xxxxxxxx000x000000xxxx0x0000000000000xxxxxxx|xxxxxxxx000x000000011100000000000000xxxxxxxx|xxxxxxxx000x00000001110000000000000xxxxxxxxx|xxxxxxxxx00x0000000111x00000000x00xxxxxxxxxx|xxxxxxxxxx0x0000000xxx0000000xxxxxxxxxxxxxxx|xxxxxxxxxxxx000000xxxx0000000xxxxxxxxxxxxxxx|xxxxxxxxxxxx000000xxx00xxxxx00xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0xx000x00xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0x000000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxx0x00000xxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxxxx00xxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxx0xxxxx0xxxxxxxxxxxxxxxxxxxx', 'none'), + (36, 'gate_park', 'gate_park', 17, 26, 0, 0, 'xxxxxxxxx222xx222222xxx22xxxxxxx|xxxxxxxxx222xx2222222xx22xxxxxxx|xxxxxxxxx22222222222222222xxxxxx|xxxxxxxxx22222222222222222xxxxxx|xxxxxxxxx22222222222222222xxxxxx|xxxxxxxxx22222x22222x22222xxxxxx|xxxxxxxxx11111x22222x11111xxxxxx|0000000xx00000x22222x00000xxxxxx|0000000xx00000000000000000xxxxxx|000000000000000000000000000xx00x|000000000000xxx00000xxx00000000x|000000000000xxx00000xxx00000000x|000000000000xxx00000xxx000000000|00000000000000000000000000000000|x0000000000000000000000000000000|xxx00000000000000000000000000000|xxxxx000000000000000000000000000|xxxxx000000000000000000000000000|xxxxx000000000000000000000000xxx|xxxxxx00000000000000000000000xxx|xxxxxxx000000000000000000000xxxx|xxxxxxxxxx00000000000000000xxxxx|xxxxxxxxxx0000000000000000xxxxxx|xxxxxxxxxx000000000000000xxxxxxx|xxxxxxxxxxxxx00000000000xxxxxxxx|xxxxxxxxxxxxxx000000000xxxxxxxxx|xxxxxxxxxxxxxxxx000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx000xxxxxxxxxxxxx', 'none'), + (37, 'gate_park_2', 'gate_park_2', 17, 23, 0, 0, 'xxxxxxxxxxx111111111111xxxxxxxxxxxx|xxxxxxxxxx11111111111111xxxxxxxxxxx|xxxxxxxxxx11111111111111xxxxxxxxxxx|xxxxxxxxxx11xxxx11xxxx11xxxxxxxxxxx|xxxxxxxxxx00xxxx00xxxx00xxxxxxxxxxx|xxxxxxx0000000000000000000xxxxxxxxx|xxxxxx000000000000000000000xxxxxxxx|xxxxx0000000000000000000x000xxxxxxx|xxxx00000000000000000000xx000xxxxxx|xxxx00000000000000000000xxx000xxxxx|xxxx00000000000000000000xxxx00xxxxx|000000000000000000000000000000xxxxx|0000000000000000000000000000000xxxx|000000000000000000000000000000xxxxx|000000000000000000000000000000xxxxx|000000000000000000000000000000xxxxx|xx00000000000000000000000000000000x|xxx000xxxx00000000000000xxxx0000000|xxx0000xxx00000000000000xxx00000000|xxxx0000xx00000000000000xx000000000|xxxxx0000x00000000000000x00000000xx|xxxxxx00000000000000000000000xxxxxx|xxxxxxx00000x000000000000000x0xxxxx|xxxxxxxx0000xxx0000xxx000000xxxxxxx|xxxxxxxxx000xxx0000xxx000000xxxxxxx|xxxxxxxxxxxxxxx0000xxx000000xxxxxxx|xxxxxxxxxxxxxxxx000xxx000000xxxxxxx|xxxxxxxxxxxxxxxxxxxxxx00000xxxxxxxx', 'none'), + (38, 'sun_terrace', 'sun_terrace', 9, 17, 0, 2, 'xxxxxx21000000000xxxxxxxx|xxxxxx3xxx000xx000xxxxxxx|xxxxxx4xxx000xxx000xxxxxx|xxxxxx44xx000x00x000xxxxx|xxxxxx44xx0000xx00000xxxx|xxxxxx44xx000000000000xxx|xxxxxx44xx0000000000000xx|xxxxxxx4xxxxxxx00000000xx|xxxxxxx4xxxxxxx0000000xxx|xxxxxx444432222xxx00xxxxx|xxxxxx444432222x0000000xx|xxxxxx444432222x0000000xx|xxxxxx44400x222x0000000xx|xxxxxx444000x11x0000000xx|xxxxxx444000000x0000000xx|xxxxxx444000000x0000000xx|xxxxxx440000000000000000x|xxxxxx4400000000000000000|x8876x444000000x000000000|x8xx6x444000000x000000000|x9xx6x444000000x000000000|999x65444000000x000000000|999xxx444xxxxxxxxxx000000|999xxx444xxxxxxxxxxx00000|999xxx333xxxxxxxxxxxx0000|999xxx222222222222222x000|xxxxxx222222222222222xx00|xxxxxx222222222222222xxx0|xxxxxx222222222222222xxxx|xxxxxxx22222222222222xxxx|xxxxxxxx2222222222222xxxx', 'none'), + (39, 'space_cafe', 'space_cafe', 21, 17, 1, 0, 'x3333x333211111xxxxxxxxx|x3333x333211111xx3333333|xxxxxx333211111xx3333333|33333333xx11111xx3333333|33333333xx11111xx3333333|33x333xxxx11111xx3333333|xxx222xxx111111xx3333333|22222222xx11111xx3333333|22222222xxx1111xx3333333|22222222xxxx1111x2222222|22222222xxxx1111x1111111|22222222xxxx111111111111|22222222xxxx111111111111|xxx222xxxxx1111111111111|xxxx33xxxx11111111111111|xxx333321111111111111111|xxx333321111111111111111|xxx333321111111111111111|xxxxxxxxxxxxx1111xxxx11x|xxxxxxxxxxxxx0000xxxx11x|xxxxxxxxxx0000000xxxx11x|xxxxxxxxxx0000000xxxxxxx|xxxxxxxxxx0000000xxxxxxx|xxxxxxxxxx0000000xxxxxxx|xxxxxxxxxx0000000xxxxxxx|xxxxxxxxxx0000000xxxxxxx', 'space_cafe_trigger'), + (40, 'beauty_salon0', 'beauty_salon0', 4, 3, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxx0000000000000xxxxxxxx|xxx00000000000000xxxxxxx|xxxxxx000000000000xxxxxx|xxxxxxxxxxxxx0000xxxxxxx|xxxx0x0000x00000000xxxxx|xxx00xxxxxx0000000xxxxxx|xx000x000xx0000000xxxxxx|xx000xxxxx00000000xxxxxx|xx000x000000000000xxxxxx|xx000x000000000000xxxxxx|xx00xx000000000000xxxxxx|xx00xx00x0000000000xxxxx|xx00xx00x0000000000xxxxx|xx00xx0000000000000xxxxx|xx00xx0000000000000xxxxx|xx000x0xx0000000000xxxxx|xx000x0x00000000000xxxxx|xx000x0x00x00000000xxxxx|xx000x0x00000000000xxxxx|xx000x0x00x00000000xxxxx|xx000xx000000000000xxxxx|xx00000000000000000000xx|xx00000000000000000000xx|xxxxxx0000000000000000xx', 'none'), + (41, 'chill', 'chill', 22, 22, 0, 6, 'xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxx00xxxxxxxx|xxxxxxxxxxx000000xxxxxxxx|xxxxxxxxxxx000000xxxxxxxx|xxxxxxxxxxxxxx000xxxxxxxx|xxxxxxxxxxxxxxxx0xxxxxxxx|xxxxxxxxx00000000xxxxxxxx|xxxxxxxx000000xxxxxxxxxxx|xxxxxxxx000000xxxxxxxxxxx|xxxxxxxx000000xxxxxxxxxxx|xxxxxxxx000000xxxxxxxxxxx|xxxxxxxx000000xxxxxxxxxxx|xxxxxxxx0000000xxxxxxxxxx|xxxxxxxx00000000xxxxxxxxx|xxxxxxxx0000000000xxxxxxx|xxxxxxxx0000000000xxxxxxx|xxxxxxxx0000000000xxxxxxx|xxxxxxxx0000000000xxxxxxx|xx000000000000xxxxxxxxxxx|xx000000000000000000000xx|xx000000000000000000000xx|xx000000000xx0000000000xx|xx000000000xxxxx000000000|xx000000000xxx0x000000000|xx00000x000xxx0x000000000|xx000000000xxxxx0000000xx|xx000000000000000000000xx|xx000000000000000000000xx|xx000000000000000000000xx|xx000000000000xxxxxxxxxxx', 'none'), + (42, 'dusty_lounge', 'dusty_lounge', 14, 1, 2, 4, 'xxxxxxxxxxxxxx22xxxxxxxxxxxxx|xxxxxxxxxx222x222x2xxxxxxxxxx|xxxxxxx33322222222223xxxxxxx3|xxxxxxx33322222222223xxxxxxx3|xxxxxxx33322222222223x33333x3|xxxxxxx33322222222223x33333x3|xx111xx33322222222223xxxxxxx3|xx111xxx332222222222333333333|xx111xxxx32222222222333333333|xx111xxxxxx222222222333333333|xx111xxxxxxx1111111x333333333|xx111xxxxxxx1111111x222222222|xx111xxxxxx111111111111111111|xx111xxxxxx111111111111111111|11111xxxxxx111111111111111111|11111xxxxxx111111111111111111|11x11xxxxxx111111111111111111|11xxxxxxxxx11111111111111111x|x11xxxxxxxxx1111111x1111111xx|xx11xxxxxxx111111111111111xxx|xxx11xxxxxx11111111111111xxxx|xxxx11111111111111111111xxxxx|xxxxx11111111111111xxxxxxxxxx|xxxxxxxxxxx11111111xxxxxxxxxx|xxxxxxxxxxx11111111xxxxxxxxxx', 'none'), + (43, 'cr_staff', 'cr_staff', 3, 22, 0, 0, '00000000xxxxxxxx|0000000000000000|0000000000000000|000000000000xx00|0000000000000000|0000000000000000|0000000000000000|x000000000000000|0000000000000000|0000000000000000|0000000000000000|0000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|x000000000000000|xxx00xxxxxxxxxxx|xxx00xxxxxxxxxxx|xxx00xxxxxxxxxxx', 'none'), + (44, 'rooftop', 'rooftop', 17, 12, 4, 0, '44xxxxxxxxxxxxxxxxxx|444xxxxxxxxxxx444444|4444xxxxxxxxxx444444|44444xxxx4xxxx444444|444444xxx44xxx444444|44444444444444444444|44444444444444444444|44444444444444444444|44444444xx44xx44xx44|44444444xx44xx44xx44|44444444444444444444|44444444444444444444|44444444444444444444|x444444x444444xx4444|x444444x444444xx333x|x444444x444444xx222x|x444444x444444xx11xx|x444444x444444xxxxxx', 'none'), + (45, 'rooftop_2', 'rooftop_2', 4, 11, 0, 0, 'x0000x000|xxxxxx000|000000000|000000000|000000000|000000000|000000000|000000000|000000000|000000000|xxx000xxx|xxx000xxx', 'none'), + (46, 'tearoom', 'tearoom', 21, 19, 1, 6, 'xxxxxxxxxxxxxxxxxxxxxx|xxxxxxxx3333x33333333x|333333xx3333x33333333x|3333333x3333x33333333x|3333333x3333x33333333x|3333333xxxxxx33333333x|333333333333333333333x|333333333333333333333x|333333333333333333333x|333333333333333333333x|33333333222x333333333x|33333333222x333333333x|33333333222x333333333x|33333333222x333333333x|33333333111x333333333x|33333333111x333333333x|33333333111x333333333x|xxxxxxxx111xxxxxxxxxxx|11111111111111111111xx|1111111111111111111111|1111111111111111111111|11111111111111111111xx', 'none'), + (47, 'cafe_ole', 'taivas_cafe', 14, 29, 0, 0, 'XXXXXXXXXXXXX111111X|XXXXXXXXXXXXX1111111|XXXXXXXXXXXXX1111111|XXXXXXXXXXXXX1111111|XXXXXXXXXXXXX1111111|XXX11111111111111111|XXX11111111111111111|XX111111111111111111|XX111111111111111111|XX111111111111111111|XXX11111111111111111|111111111XXXXXXX1111|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|111111111X0000000000|X11111111X0000000000|XX1111111X0000000000|XXX111111X0000000000|XXXX11111X0000000000|XXXXX111110000000000|XXXXXX11110000000000|XXXXXXX1110000000000|XXXXXXXX11000000000X|XXXXXXXXXX00000000XX|XXXXXXXXXXXXXX00XXXX|XXXXXXXXXXXXXX00XXXX', 'none'), + (48, 'cr_cafe', 'cr_cafe', 20, 10, 0, 6, '0000000000000000000xx|x000000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xxxx000000000000000xx|0000000000000000000xx|0000000000000000000xx|x000000000000000000xx|xx00000000000000000xx|xxxx00000000000000000|xxx000000000000000000|xxx0000000000000000xx|xxx0000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xx00000000000000000xx|xx00000000000000000xx', 'none'), + (49, 'lobby_a', 'lobby_a', 12, 27, 1, 0, 'XXXXXXXXX77777777777XXXXX|XXXXXXXXX777777777777XXXX|XXXXXXXXX777777777766XXXX|XXXXXXXXX777777777755XXXX|XX333333333333333334433XX|XX333333333333333333333XX|XX333333333333333333333XX|33333333333333333333333XX|333333XXXXXXX3333333333XX|333333XXXXXXX2222222222XX|333333XXXXXXX2222222222XX|XX3333XXXXXXX2222222222XX|XX3333XXXXXXX222222221111|XX3333XXXXXXX111111111111|333333XXXXXXX111111111111|3333333222211111111111111|3333333222211111111111111|3333333222211111111111111|XX33333222211111111111111|XX33333222211111111111111|XX3333322221111111XXXXXXX|XXXXXXX22221111111XXXXXXX|XXXXXXX22221111111XXXXXXX|XXXXXXX22221111111XXXXXXX|XXXXXXX22221111111XXXXXXX|XXXXXXX222X1111111XXXXXXX|XXXXXXX222X1111111XXXXXXX|XXXXXXXXXXXX11XXXXXXXXXXX|XXXXXXXXXXXX11XXXXXXXXXXX|XXXXXXXXXXXX11XXXXXXXXXXX|XXXXXXXXXXXX11XXXXXXXXXXX', 'none'), + (50, 'floorlobby_c', 'floorlobby_c', 9, 21, 0, 0, 'XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXX0000000000000000XXXXXXX0|XXX000000000000000000XXXX00|X00000000000000000000000000|X00000000000000000000000000|XXX000000000000000000000000|XXXXXXX00000000000000000000|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX1XX100000011111111111111|XXX1XX100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX', 'none'), + (51, 'floorlobby_b', 'floorlobby_b', 9, 21, 0, 0, 'XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXX0000000000000000XXXXXXX0|XXX000000000000000000XXXX00|X00000000000000000000000000|X00000000000000000000000000|XXX000000000000000000000000|XXXXXXX00000000000000000000|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX1XX100000011111111111111|XXX1XX100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX', 'none'), + (52, 'floorlobby_a', 'floorlobby_a', 9, 21, 0, 0, 'XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXXXXXX|XXX0000000000000000XXXXXXX0|XXX000000000000000000XXXX00|X00000000000000000000000000|X00000000000000000000000000|XXX000000000000000000000000|XXXXXXX00000000000000000000|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX1XX100000011111111111111|XXX1XX100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXX111100000011111111111111|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX|XXXXXXXX0000XXXXXXXXXXXXXXX', 'none'), + (53, 'cinema_a', 'cinema_a', 20, 27, 1, 0, 'xxxxxxx1xx11111111xxxxxx|xxx1111111111111111xxxxx|xxx111xxxx1111111111xxxx|xxxx2xxxxxxxxxxxxxxxxxxx|xx3x3x333311xxxxxxxxxx11|xx3333333311111111111111|xx3333333311111111111111|xx3333333311111111122111|xx3333333311x22222222111|xx3333333311x22222222111|xx3333333311xxxxxxxxx111|xx3333333311111111111111|xx3333333311111111111111|xx3333333311111111111111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|xx3333333311111xxxx11111|333333332111111xxxx11111|333333332111111111111111|333333332111111111111111|333333332111111111111111|xx3333332111111111111111|xxxxxxxxxxxxxxxxxxx11111|xxxxxxxxxxxxxxxxxxx11111|xxxxxxxxxxxxxxxxxxx11111', 'none'), + (54, 'sport', 'sport', 0, 0, 1, 2, '111222222222222222x2222|x11222222222222222x2222|x11222222222222222x2222|xx1x2222222222222211111|x11xx222222222222211111|x11xx222222x22222211111|x11xx222222x222222x1111|x11xx222222x222222x1111|x11xx2222222222222x1111|x11xxxxxxxxxxxxxxxx1111|x1111111111111111111111|x1111111111111111111111|x1111111111111111111111|x1111111111111111111111|xxxx1111111111111x1111x|111x1111111111111x1111x|111x1111111111111x1111x|111x1111111111111x1111x|111x11111xxxxxxxxxxxxxx|x11x1111xxxxxxxxxxxxxxx|xxxx111xxxxxxxxxxxxxxxx', 'none'), + (55, 'old_skool0', 'old_skool0', 2, 1, 0, 4, 'xx0xxxxxxxxxxxxxx|0000000xxx00000xx|0000000x0000000xx|0000000xxxxxxxxxx|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|00000000000000000|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x|0000000000000000x', 'none'), + (56, 'old_skool1', 'old_skool1', 1, 7, 6, 2, 'x6666666665432100|x6666666665432100|x6600000000000x00|x6600000000000000|x6600000000000000|x6600000000000000|x660000000000x000|666000000000x1111|x66000000000xx111|x66000000000x1111|x66000000000x1111|x55000000000x1111|x44000000000x1111|x33000000000x1111|x22000000000xx111|x11x00000000x1111|x00000000000x1111|x00000000000xx111', 'none'), + (57, 'malja_bar_a', 'malja_bar_a', 4, 24, 1, 0, 'xxxxxxxxxxxxxx44|xxxx444444444444|xxxx444444444444|xxxx444444444444|xxxx444444444444|xxxx444444444444|xxxxxxxxxxxxx333|1111111111111222|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|111111111xxxxxxx|xxx11111xxxxxxxx|11111111xxxxxxxx|11111111xxxxxxxx|11111111xxxxxxxx|11111111xxxxxxxx', 'none'), + (58, 'malja_bar_b', 'malja_bar_b', 4, 24, 3, 0, '6666333333333333|6666333333333333|6666333333333333|7766333333333333|7755333333333333|8855333333332223|8844333311111111|9944333311111111|9933333311111111|9933333311111111|9933333311111111|9933333311111111|9933333311111111|9933333311111111|9933333211111111|9933333211111111|9933333211111111|9933333311111111|99333333xxxxxxxx|99333333xxxxxxxx|xxx33333xxxxxxxx|xxx33333xxxxxxxx|3xx33333xxxxxxxx|xxx33333xxxxxxxx|xxx33333xxxxxxxx|xxx33333xxxxxxxx', 'none'), + (59, 'bar_a', 'bar_a', 5, 1, 7, 4, 'xxxx8888xxxxxxxxxxx|xxxx7777xxxxxxxxxxx|xxxx6666xxxxxxxxxxx|xxx6666666555555555|xxx6666666555555555|xxx6666666555555555|xxx6666666555555555|xxx6666666555555555|xxx6666666555555555|xxx6666666555555555|xxx6666666555xxxxxx|xxx6666666555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555xxxxxx|xxx5555555555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555555555|xxx5555555555xxxxxx|xxxx555555555555555|55xx555555555555555|55xx555555555555555|5555555555555555555|5555555555555555555|xxxxxxxx55555xxxxxx|xxxxxxxxx5555xxxxxx|xxxxxxxxx5555xxxxxx|xxxxxxxxx5555xxxxxx|xxxxxxxxx4444xxxxxx|xxxxxxxxx3333xxxxxx', 'none'), + (60, 'bar_b', 'bar_b', 2, 12, 4, 2, 'xxxxx4xxxxxxxxxxxx|xxxx4444444xxxxxxx|xxxx4444444xxxxxxx|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|654444444444444444|654444444444444444|654444444444444444|654444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxx444444444444444|xxxx44444444444444|xxxx33444444444444|xxxx22444444444444|xxxx2222222222xx44|xxxx2222222222xx44|xxxxx222222222xxxx|xxxxxx22222222xxxx|xxxxxx22222222xxxx|xxxxxx22222222xxxx|xxxxxx22222222xxxx|xxxxxx22222222xxxx|xxxxxx22222222xxxx', 'none'), + (61, 'habburger', 'habburger', 22, 10, 0, 6, '22222222222222222222xxx|22222222222222222222xxx|22222222222222222222xxx|22222222222222222222xxx|xxxxxxxxxxxxxxxx1111xxx|xxxxxxxxxxxxxxxx0000xxx|xxx00000000000000000xxx|00000000000000000000xxx|00000000000000000000xxx|00000000000000000000000|00000000000000000000000|00000000000000000000xxx|00000000000000000000xxx|00000000000000000000xxx|xxx00000000000000000xxx', 'none'), + (62, 'pizza', 'pizza', 5, 27, 1, 0, 'xxxxxxxxx0000000|x11111x1xx000000|11xxxxx111x00000|11x1111111xx0000|11x1111111100000|xxx1111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|1111111111100000|11111111111xxxxx|1111111111xxxxxx|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|1111111111111111|11xx11xx11111111|xxxx11xxxxxxxxxx|xxxx11xxxxxxxxxx', 'none'), + (63, 'bb_lobby_1', 'bb_lobby_1', 14, 19, 0, 0, 'xxx2222222222222222x|xxx2222222222222222x|xxx2222222222222222x|xxx2222222222222222x|xxx11111111111111111|11x11111111111111111|11x11111111111111111|11x11111111111111111|x1x11111111111111111|xxx11111111111111111|xxx11111111111111111|xxx11111111111111111|xxx11111111111111111|xxx11111111111111111|xxxxxxxxx00000000000|xxxxxxxxx00000000000|xxxxxxxxx00000000000|xxxxxxxxx00000000000|xxxxxxxxx00000000000|xxxxxxxxx00000000000|xxxxxxxxxxxxx000xxxx|xxxxxxxxxxxxx000xxxx|xxxxxxxxxxxxx000xxxx', 'battleball_lobby_trigger'), + (64, 'snowwar_lobby_1', 'snowwar_lobby_1', 41, 36, 1, 0, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11111xx1xxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11111xx1111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx111111xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxx1111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx111111111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxx1111x1111111111xxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'snowstorm_lobby_trigger'), + (65, 'tv_studio', 'tv_studio', 16, 27, 4, 6, 'xxxxxxxxxxxxxxxxxxxx|xxxxx0x00000xxxxxxxx|xxxxx0x000000xxxxxxx|xxxxx0x000000xxxxxxx|xxxxx0x0xxx00000xx0x|xx0000x000000000xx00|xx00xxx000000000xx00|xxxxx00000000000xx00|x000000000000x000000|x0000000000000000000|x0000000000000000x00|00000000000000000x00|x000x000000000000x00|x0000000000000000x00|x0000000000000000x00|000x0000000000000000|000x0000000000000000|00000000000000xxx000|x0000000000000000000|xx00000000000000000x|xxx000000000000000xx|xxxxxxxxx1111xxxx0xx|xxxxxxxxx2222xxxxxxx|xxxxxxxxx3333xxxxxxx|xxxxxx44x4444x444xxx|xxxxx444444444444xxx|xxxxxx44444444444444|xxxxx4444x4444444444|xxxxx4444x4444444444|xxxxx4444x4444444xxx|xxxxx444444444444xxx|xxxxx444444444444xxx|xxxxxx44444444444xxx', 'none'), + (66, 'cr_kitchen', 'cr_kitchen', 7, 21, 0, 0, 'X0XXXX000XXXX000X0X|X000000000000000000|X000000000000000000|X000000000000000XXX|X00XXXX00XXXX000XXX|X00XXXX00XXXX00XXXX|X00000000000000XXXX|X00000000000000XXXX|X00000000000000XXXX|X00XXXXXXXXXX00XXXX|X00XXXXXXXXXX00XXXX|X00XXXXXXXXXX000XXX|0000000000000000XXX|000000000000000XXXX|000000000000000XXXX|000XXX0000XXX00XXXX|000XXX0000XXX00XXXX|000000000000000XXXX|000000000000000XXXX|000000000000000XXXX|XXXXXXX00XXXXXXXXXX|XXXXXXX00XXXXXXXXXX|XXXXXXX00XXXXXXXXXX', 'none'), + (67, 'club_mammoth', 'club_mammoth', 6, 16, 4, 2, 'xxxxxx4444444x4444xxxxxxxxxxxxx|xxxxxx4444444x444322xxxxxxxxxxx|xxxxxxxxxxxxxx444322xxxxxxxxxxx|x444444444444444442222xxxxxxxxx|4444444444444444442222xxxxxxxxx|4xxxxxxxxxxxxxxxxx2222xxxxxxxxx|4xxxxxxxxxx22222xx2222xxxxxxxxx|44xxxxxxxxx22222x2xxxxxxxxxxxxx|x4444444xxx22222x22xxxxxxxxxxxx|xx4444444xx22x22x222xxxxxxxxxxx|xxxxxxx444x22222xxxxxxxxxxxxxxx|xxxxxx444322222222211111111xxxx|xxxxxx444322222222211111111xxxx|xxxxxx444442222222211111111xxxx|xxx444444442222222211111111xxxx|xxx444444442222222211111111xxxx|xxx444444442222222211111111xxxx|xxx444444442222222211111111xxxx|xxxxxx4444422222222x1111111xxxx|xxxxxx4444422222222xxxxxxxxxxxx|xxxxxx4443222222222222222222xxx|xxxxxx4443xxxxxxx2xxxxx222xxxxx|xxxxxx444xxxxxxxxxxxxxxx22xxxxx|xxxxxx4xxxxxxxxxxxxx444422xxxxx|xxx4444xxxxxxxxxxxxx4444x2xxxxx|xxx566666666666666664444xxxxxxx|xxxx66666666666666664444xxxxxxx|xxxxxxx666666666666544xxxxxxxxx|xxxxxxx666666666666544xxxxxxxxx|xxxxxxx6666666666666xxxxxxxxxxx|xxxxxxx6666666666666xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (68, 'ice_cafe', 'taivas_cafe', 17, 23, 0, 0, 'xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx1111111000000000|xx1111111000000000|111111111000000000|111111111000000000|111111111000000000|111111111000000000|111111111000000000|11111111x000000000|11111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx111111x000000000|xx1111110000000000|xx1111111000000000|xx1111111000000000|xx1111111000000000|', 'none'), + (69, 'netcafe', 'netcafe', 22, 12, 0, 6, 'xxxxx1111xxxxxxxxxxx1xxxx|xxxxx1111111111111111xxxx|xxxxx1111111111111111xxxx|xxxxx1111111111111111xxxx|xxxxxxxx0000000000000xxxx|111111100000000000000xxxx|111111100000000000000xxxx|111111100000000000000xxxx|xxxx11100000000000000xxxx|x1xx11100000000000000xxxx|x1xx11100000000000000xxxx|x1xx111000000000000000000|x1xx111000000000000000000|xxxx111000000000000000000|xxxx11100000000000000xxxx|xxxx1110000000xx11111xxxx|xxxxx111110000x111111xxxx|xxxxxx111100001111111xxxx|xxxxxx111100001111111xxxx|xxxxxx111100001111111xxxx|xxxxxx111100001111111xxxx|xxxxxx111100001111111xxxx|xxxxxx111100001111111xxxx|xxxxx1111100001111111xxxx|', 'none'), + (70, 'hallway0', 'hallway0', 2, 2, 0, 2, 'xxxx000000001111111111111111xxxx|xxxx000000001111111111111111xxxx|00000000000011111111111111111111|00000000000011111111111111111111|00000000000011111111111111111111|00000000000011111111111111111111|xxxx000000001111111111111111xxxx|xxxx0000000x1111111111111111xxxx|xxxxxxxxxxxxx1111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx', 'none'), + (71, 'hallway9', 'hallway9', 21, 23, 0, 7, 'xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxx000000000000000000000000xxxx|xxxx000000000000000000000000xxxx|00000000000000000000000000000000|00000000000000000000000000000000|00000000000000000000000000000000|00000000000000000000000000000000|xxxx000000000000000000000000xxxx|xxxx000000000000000000000000xxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx000000000000xxxxxxxx|xxxxxxxxxxxx000000000000xxxxxxxx|xxxxxxxxxxxx000000000000xxxxxxxx|xxxxxxxxxxxx000000000000xxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx', 'none'), + (72, 'hallway2', 'hallway2', 15, 2, 0, 4, 'xxxxxxxxxxxxxx000xxxxxxxxxxx|xxxxxxxxxxxxxx000xxxxxxxxxxx|xxxxxxxxxxxxxx000xxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxx|xxxx11111111000000000000xxxx|xxxx11111111000000000000xxxx|1111111111110000000000000000|1111111111110000000000000000|1111111111110000000000000000|1111111111110000000000000000|xxxx11111111000000000000xxxx|xxxx11111111000000000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxx11111111xxxx00000000xxxx|xxxxxx1111xxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxx', 'none'), + (73, 'hallway1', 'hallway1', 2, 14, 0, 2, 'xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxxxx0000xxxxxxxxxxxxxx|xxxxxxxxxxxx0000000000000000xxxx|xxxxxxxxxxxx0000000000000000xxxx|xxxxxxxxxxxx00000000000000000000|xxxxxxxxxxxx00000000000000000000|xxxxxxxxxxxx00000000000000000000|xxxxxxxxxxxx00000000000000000000|xxxxxxxxxxxx0000000000000000xxxx|xxxxxxxxxxxx0000000000000000xxxx|xxxx1111111100000000xxxxxxxxxxxx|xxxx1111111100000000xxxxxxxxxxxx|11111111111100000000xxxxxxxxxxxx|11111111111100000000xxxxxxxxxxxx|11111111111100000000xxxxxxxxxxxx|11111111111100000000xxxxxxxxxxxx|xxxx1111111100000000xxxxxxxxxxxx|xxxx1111111100000000xxxxxxxxxxxx', 'none'), + (74, 'hallway3', 'hallway3', 14, 21, 1, 0, 'xxxxxx1111xxxxxxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxxxxxx|xxxxxx1111xxxxxxxxxxxxxxxxxxxxxx|xxxx111111111111111100000000xxxx|xxxx111111111111111100000000xxxx|11111111111111111111000000000000|11111111111111111111000000000000|11111111111111111111000000000000|11111111111111111111000000000000|xxxx111111111111111100000000xxxx|xxxx111111111111111100000000xxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx|xxxxxxxxxxxxxx1111xxxxxxxxxxxxxx', 'none'), + (75, 'hallway4', 'hallway4', 29, 3, 1, 6, 'xxxx000000001111111111111111xxxx|xxxx000000001111111111111111xxxx|00000000000011111111111111111111|00000000000011111111111111111111|00000000000011111111111111111111|00000000000011111111111111111111|xxxx000000001111111111111111xxxx|xxxx000000001111111111111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxx11111111xxxx|xxxxxxxxxxxxxxxxxxxxxx1111xxxxxx|xxxxxxxxxxxxxxxxxxxxxx1111xxxxxx|xxxxxxxxxxxxxxxxxxxxxx1111xxxxxx|xxxxxxxxxxxxxxxxxxxxxx1111xxxxxx', 'none'), + (76, 'hallway5', 'hallway5', 14, 2, 1, 4, 'xxxxxxxxxxxxxx11xxxxxx1111xx|xxxxxxxxxxxxxx111xxxxx1111xx|xxxxxxxxxxxxxx1111xxxx1111xx|xxxxxxxxxxxxxx1111xxxx1111xx|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxxxxxxxxxx1111111111111111|xxxx000000001111111111111111|xxxx000000001111111111111111|0000000000001111111111111111|0000000000001111111111111111|0000000000001111111111111111|0000000000001111111111111111|xxxx000000001111111111111111|xxxx0000000x1111111111111111|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx|xxxxxxxxxxxx11111111xxxxxxxx', 'none'), + (77, 'hallway8', 'hallway8', 15, 3, 0, 4, 'xxxxxxxxxxxxxx00xxxx0000|xxxxxxxxxxxxxx000xxx0000|xxxxxxxxxxxxxx0000xx0000|xxxxxxxxxxxxxx0000xx0000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111000000000000|xxxx11111111xxxx00000000|xxxx11111111xxxx00000000|111111111111xxxx00000000|111111111111xxxx00000000|111111111111xxxx00000000|111111111111xxxx00000000|xxxx11111111xxxx00000000|xxxx11111111xxxx00000000|xxxxxxxxxxxxxxxxxx0000xx|xxxxxxxxxxxxxxxxxx0000xx|xxxxxxxxxxxxxxxxxx0000xx|xxxxxxxxxxxxxxxxxx0000xx', 'none'), + (78, 'hallway7', 'hallway7', 7, 2, 1, 4, 'xxxxxx11xxxxxxxxxxxx|xxxxxx111xxxxxxxxxxx|xxxxxx1111xxxxxxxxxx|xxxxxx1111xxxxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx111111111111xxxx|xxxx111111111111xxxx|xxxx111111111111xxxx|xxxx111111111111xxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx11111111xxxxxxxx|xxxx000000000000xxxx|xxxx000000000000xxxx|00000000000000000000|00000000000000000000|00000000000000000000|00000000000000000000|xxxx000000000000xxxx|xxxx000000000000xxxx', 'none'), + (79, 'hallway6', 'hallway6', 1, 10, 1, 2, 'xxxx1111111111111111xxxx|xxxx1111111111111111xxxx|xxxx1111111111111111xxxx|xxxx1111111111111111xxxx|xxxx1111xxxxxxxxxxxxxxxx|xxxx1111xxxxxxxxxxxxxxxx|xxxx1111xxxxxxxxxxxxxxxx|xxxx1111xxxxxxxxxxxxxxxx|xxxx1111111100000000xxxx|xxxx1111111100000000xxxx|111111111111000000000000|111111111111000000000000|111111111111000000000000|111111111111000000000000|xxxx1111111100000000xxxx|xxxx1111111100000000xxxx|xxxxxxxx1111xxxxxxxxxxxx|xxxxxxxx1111xxxxxxxxxxxx|xxxxxxxx1111xxxxxxxxxxxx|xxxxxxxx1111xxxxxxxxxxxx|xxxxxxxx111111111111xxxx|xxxxxxxx111111111111xxxx|xxxxxxxx111111111111xxxx|xxxxxxxx111111111111xxxx', 'none'), + (80, 'hallway10', 'hallway10', 3, 23, 1, 1, 'xxxxxxxxxx00000000xxxx|xxxxxxxxxx00000000xxxx|xxxxxxxxxx00000000xxxx|xxxxxxxxxx00000000xxxx|xx1111xxxx0000xxxxxxxx|xx1111xxxx0000xxxxxxxx|xx1111xxxx0000xxxxxxxx|xx1111xxxx0000xxxxxxxx|11111111xx0000000000xx|11111111xx0000000000xx|11111111xx0000000000xx|11111111xx0000000000xx|11111111xxxxxxxx0000xx|11111111xxxxxxxx0000xx|11111111xxxxxxxx0000xx|11111111xxxxxxxx0000xx|1111111111111111000000|1111111111111111000000|1111111111111111000000|1111111111111111000000|1111111111111111000000|1111111111111111000000|1111111111111111000000|1111111111111111000000|xx1111xxxxxxxxxxxxxxxx|xx1111xxxxxxxxxxxxxxxx|xx1111xxxxxxxxxxxxxxxx|xx1111xxxxxxxxxxxxxxxx', 'none'), + (81, 'hallway11', 'hallway11', 20, 3, 0, 6, 'xxxx1111111100000000xxxx|xxxx1111111100000000xxxx|111111111111000000000000|111111111111000000000000|111111111111000000000000|111111111111000000000000|xxxx1111111100000000xxxx|xxxx1111111100000000xxxx|xxxxxxxxxxxx000000000000|xxxxxxxxxxxx000000000000|xxxxxxxxxx00000000000000|xxxxxxxxxx00000000000000|xxxxxxxxxx00000000000000|xxxxxxxxxx00000000000000|xxxxxxxxxxxx000000000000|xxxxxxxxxxxx000000000000|xxxxxxxxxxxx000000000000|xxxxxxxxxxxx000000000000|xxxxxxxx000000000000xxxx|xxxxxxxx000000000000xxxx|xxxxxxxx000000000000xxxx|xxxxxxxx000000000000xxxx', 'none'), + (82, 'star_lounge', 'star_lounge', 36, 35, 0, 6, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx2222x4444442222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222x444x32222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222xx4xx22222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx222222222222222xxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222211111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222211111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222211111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222211111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222222111xxxxxxxxx|xxxxxxxxxxxxxxxxxxxxx22222222222222222111xxxxxxxxx|xxxxxxxxxxxxxxxx3333x22222222222222xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx3333x22222222222222xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx3333x22222222221111xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx3333xx2x22222220000xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx333333332222222000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxx333333332222222x0000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxx33333332222222x0000000xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx222222000000xxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (83, 'orient', 'orient', 32, 20, 1, 6, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx00000000xxxxxxxxxxxx|xxxxxxxxxxxxxx1000000000xxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx1xx000x000xx111x111xxx|xxxxxxxxxxxxxx1xx000x000xxxxxx1111xx|xxxxxxxxxxxxxx1xx000x000x111111111xx|xxxxxxxxxxxxxx1xx000x000x111111111xx|xxx111111111111xx000x000x111111111xx|xxx1xxxxxxxxxxxxx000x000x111111111xx|xxx1x1111111111000000000x111111111xx|xxx1x1111111111000000000xx1111111xxx|xxx1x11xxxxxx11000000000xx1111111100|xxx111xxxxxxx11000000000011111111100|xxx111xxxxxxx11000000000011111111100|xxxxx1xxxxxxx11000000000011111111100|xxxxx11xxxxxx11000000000xx1111111100|xxxxx1111111111000000000xx1111111xxx|xxxxx1111111111xx000x000x111111111xx|xxxxxxxxxxxxxxxxx000x000x111111111xx|xxxxxxxxxxxxxxxxx000x000x111111111xx|xxxxxxxxxxxxxxxxx000x000x111111111xx|xxxxxxxxxxxxxxxxx000x000x111111111xx|xxxxxxxxxxxxxxxxx000x00xx11xxxx111xx|xxxxxxxxxxxxxxxxxxxxxxxxxx11111111xx|', 'none'), + (84, 'entryhall', 'entryhall', 17, 18, 1, 0, 'xx11xxxx11xxxx11xxxx|x1111111111111111111|11111111111111111111|11111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|x1111111111111111111|xxxxxxxxxxxxxxxxx11x', 'none'), + (85, 'hallA', 'hallA', 0, 0, 1, 4, '11xxxxxxxxxxxxxxx|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111', 'none'), + (86, 'hallB', 'hallB', 1, 0, 1, 4, 'x11xxxxxxxxxxxxxxxx|1111111111111111111|1111111111111111111|1111111111111111111|1111111111111111111|1111111111111111111|1111111111111111111|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx|111111xxxxxxxxxxxxx', 'none'), + (87, 'hallC', 'hallC', 0, 0, 1, 4, '11xxxxxxxxxxxxxxx|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111', 'none'), + (88, 'hallD', 'hallD', 0, 0, 1, 4, '11xxxxxxxxxxxxxxx|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111|11111111111111111', 'none'), + (89, 'model_s', 'model_s', 0, 3, 0, 2, 'xxxxxxx|x00000x|x00000x|000000x|x00000x|x00000x|x00000x|x00000x|xxxxxxx', 'flat_trigger'), + (90, 'emperors', 'emperors', 11, 31, 0, 0, 'xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxx444xxxx4444xxxxxx|xxxx2x4444xxxx44444x2xxx|xxxx2x44444x4x44444x2xxx|xxxx2x4444444444444x2xxx|xxxx2x33xx33333xx33x2xxx|xxxx2222xx22222xx2222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22xx222222222xx22xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222222222222222xxx|xxxx22222xx22x2222222xxx|xxxxx2xx2xx22xxx2xx2xxxx|xxxxxxxxxxx11xxxxxxxxxxx|xxxxxxxxxxx00xxxxxxxxxxx|xxxxxxxxxxx00xxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx', 'none'), + (91, 'beauty_salon1', 'beauty_salon1', 14, 3, 0, 1, 'xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxx0xxxxxxxxx|xxxxxxx000000000000000xx|xxxxxx0000000000000000xx|xxxxx000000000000xxxxxxx|xxxx000000000000000000xx|xxx0000000000000000000xx|xxx0000000000000000000xx|xxx0000000000000000000xx|xxxxxxxxxxxxxxxx000000xx|xx0000000000000x000000xx|000000000000000x000000xx|000000000000000x000000xx|000000000000000x000000xx|00x000000000000x000000xx|00xxxxxxxxxxxxxx000000xx|00xxxxxxxxxxxxxx000000xx|00x0000000000000000000xx|00x0000000000000000000xx|00x0000000000000000000xx|0000000000000000000000xx|x000000000000000000000xx|xxx0000000000000000000xx', 'none'); +/*!40000 ALTER TABLE `rooms_models` ENABLE KEYS */; + +-- Dumping structure for table havana.rooms_rights +CREATE TABLE IF NOT EXISTS `rooms_rights` ( + `user_id` int(11) NOT NULL, + `room_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.rooms_rights: ~0 rows (approximately) +DELETE FROM `rooms_rights`; +/*!40000 ALTER TABLE `rooms_rights` DISABLE KEYS */; +/*!40000 ALTER TABLE `rooms_rights` ENABLE KEYS */; + +-- Dumping structure for table havana.room_chatlogs +CREATE TABLE IF NOT EXISTS `room_chatlogs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `room_id` int(11) NOT NULL, + `timestamp` bigint(20) NOT NULL, + `chat_type` tinyint(1) NOT NULL, + `message` longtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.room_chatlogs: ~0 rows (approximately) +DELETE FROM `room_chatlogs`; +/*!40000 ALTER TABLE `room_chatlogs` DISABLE KEYS */; +/*!40000 ALTER TABLE `room_chatlogs` ENABLE KEYS */; + +-- Dumping structure for table havana.room_visits +CREATE TABLE IF NOT EXISTS `room_visits` ( + `room_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL DEFAULT 0, + `visited_at` datetime NOT NULL DEFAULT current_timestamp(), + UNIQUE KEY `room_id_user_id` (`room_id`,`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.room_visits: ~0 rows (approximately) +DELETE FROM `room_visits`; +/*!40000 ALTER TABLE `room_visits` DISABLE KEYS */; +/*!40000 ALTER TABLE `room_visits` ENABLE KEYS */; + +-- Dumping structure for table havana.settings +CREATE TABLE IF NOT EXISTS `settings` ( + `setting` varchar(50) NOT NULL, + `value` longtext NOT NULL DEFAULT '', + PRIMARY KEY (`setting`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.settings: ~0 rows (approximately) +DELETE FROM `settings`; +/*!40000 ALTER TABLE `settings` DISABLE KEYS */; +/*!40000 ALTER TABLE `settings` ENABLE KEYS */; + +-- Dumping structure for table havana.settings_effects +CREATE TABLE IF NOT EXISTS `settings_effects` ( + `effect_id` int(11) NOT NULL, + `duration_seconds` int(11) NOT NULL, + PRIMARY KEY (`effect_id`), + UNIQUE KEY `effect_id` (`effect_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.settings_effects: ~26 rows (approximately) +DELETE FROM `settings_effects`; +/*!40000 ALTER TABLE `settings_effects` DISABLE KEYS */; +INSERT INTO `settings_effects` (`effect_id`, `duration_seconds`) VALUES + (1, 3600), + (2, 3600), + (3, 3600), + (4, 3600), + (5, 3600), + (6, 3600), + (7, 3600), + (8, 3600), + (9, 3600), + (10, 3600), + (11, 3600), + (12, 3600), + (13, 3600), + (14, 3600), + (15, 3600), + (16, 3600), + (17, 3600), + (18, 3600), + (19, 172800), + (20, 172800), + (21, 172800), + (22, 172800), + (23, 172800), + (24, 172800), + (25, 172800), + (26, 172800); +/*!40000 ALTER TABLE `settings_effects` ENABLE KEYS */; + +-- Dumping structure for table havana.site_articles +CREATE TABLE IF NOT EXISTS `site_articles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(64) DEFAULT 'Undefined Title', + `author_id` int(11) DEFAULT NULL, + `author_override` varchar(50) NOT NULL DEFAULT '', + `short_story` mediumtext DEFAULT NULL, + `full_story` mediumtext DEFAULT 'Undefined Description', + `topstory` varchar(500) DEFAULT '300x187_TS_xantial', + `topstory_override` longtext NOT NULL DEFAULT '', + `article_image` mediumtext NOT NULL DEFAULT '', + `is_published` tinyint(1) NOT NULL DEFAULT 0, + `is_future_published` tinyint(1) NOT NULL DEFAULT 0, + `views` int(11) DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.site_articles: ~0 rows (approximately) +DELETE FROM `site_articles`; +/*!40000 ALTER TABLE `site_articles` DISABLE KEYS */; +/*!40000 ALTER TABLE `site_articles` ENABLE KEYS */; + +-- Dumping structure for table havana.site_articles_categories +CREATE TABLE IF NOT EXISTS `site_articles_categories` ( + `article_id` int(11) NOT NULL, + `category_id` int(11) NOT NULL, + KEY `article_id` (`article_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table havana.site_articles_categories: ~0 rows (approximately) +DELETE FROM `site_articles_categories`; +/*!40000 ALTER TABLE `site_articles_categories` DISABLE KEYS */; +/*!40000 ALTER TABLE `site_articles_categories` ENABLE KEYS */; + +-- Dumping structure for table havana.soundmachine_disks +CREATE TABLE IF NOT EXISTS `soundmachine_disks` ( + `item_id` bigint(11) NOT NULL, + `soundmachine_id` bigint(11) NOT NULL DEFAULT 0, + `slot_id` int(11) NOT NULL, + `song_id` int(11) NOT NULL, + `burned_at` bigint(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.soundmachine_disks: ~0 rows (approximately) +DELETE FROM `soundmachine_disks`; +/*!40000 ALTER TABLE `soundmachine_disks` DISABLE KEYS */; +/*!40000 ALTER TABLE `soundmachine_disks` ENABLE KEYS */; + +-- Dumping structure for table havana.soundmachine_playlists +CREATE TABLE IF NOT EXISTS `soundmachine_playlists` ( + `item_id` bigint(11) NOT NULL, + `song_id` int(11) NOT NULL, + `slot_id` int(11) NOT NULL, + KEY `machineid` (`item_id`), + KEY `songid` (`song_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.soundmachine_playlists: ~0 rows (approximately) +DELETE FROM `soundmachine_playlists`; +/*!40000 ALTER TABLE `soundmachine_playlists` DISABLE KEYS */; +/*!40000 ALTER TABLE `soundmachine_playlists` ENABLE KEYS */; + +-- Dumping structure for table havana.soundmachine_songs +CREATE TABLE IF NOT EXISTS `soundmachine_songs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL DEFAULT 0, + `title` varchar(100) NOT NULL, + `item_id` bigint(11) NOT NULL, + `length` int(3) NOT NULL DEFAULT 0, + `data` text NOT NULL DEFAULT '', + `burnt` tinyint(1) NOT NULL DEFAULT 0, + UNIQUE KEY `id` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.soundmachine_songs: ~0 rows (approximately) +DELETE FROM `soundmachine_songs`; +/*!40000 ALTER TABLE `soundmachine_songs` DISABLE KEYS */; +/*!40000 ALTER TABLE `soundmachine_songs` ENABLE KEYS */; + +-- Dumping structure for table havana.soundmachine_tracks +CREATE TABLE IF NOT EXISTS `soundmachine_tracks` ( + `soundmachine_id` bigint(11) NOT NULL, + `track_id` int(11) NOT NULL, + `slot_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.soundmachine_tracks: ~0 rows (approximately) +DELETE FROM `soundmachine_tracks`; +/*!40000 ALTER TABLE `soundmachine_tracks` DISABLE KEYS */; +/*!40000 ALTER TABLE `soundmachine_tracks` ENABLE KEYS */; + +-- Dumping structure for table havana.users +CREATE TABLE IF NOT EXISTS `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(255) NOT NULL, + `password` text NOT NULL DEFAULT '', + `figure` varchar(255) NOT NULL, + `pool_figure` varchar(255) NOT NULL DEFAULT '', + `sex` char(1) NOT NULL DEFAULT 'M', + `motto` varchar(100) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `credits` int(11) NOT NULL DEFAULT 50, + `pixels` int(11) NOT NULL DEFAULT 0, + `tickets` int(11) NOT NULL DEFAULT 0, + `film` int(11) NOT NULL DEFAULT 0, + `rank` tinyint(1) unsigned NOT NULL DEFAULT 1, + `last_online` datetime NOT NULL DEFAULT current_timestamp(), + `remember_token` varchar(50) DEFAULT NULL, + `is_online` tinyint(1) DEFAULT 0, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `sso_ticket` varchar(255) DEFAULT NULL, + `machine_id` text NOT NULL DEFAULT '', + `club_subscribed` bigint(11) NOT NULL DEFAULT 0, + `club_expiration` bigint(11) NOT NULL DEFAULT 0, + `club_gift_due` bigint(11) NOT NULL DEFAULT 0, + `allow_stalking` tinyint(1) NOT NULL DEFAULT 1, + `allow_friend_requests` tinyint(1) NOT NULL DEFAULT 1, + `online_status_visible` tinyint(1) NOT NULL DEFAULT 1, + `profile_visible` tinyint(1) NOT NULL DEFAULT 1, + `wordfilter_enabled` tinyint(1) NOT NULL DEFAULT 1, + `trade_enabled` tinyint(1) NOT NULL DEFAULT 0, + `trade_ban_expiration` bigint(20) NOT NULL DEFAULT 0, + `sound_enabled` tinyint(1) NOT NULL DEFAULT 1, + `selected_room_id` int(11) NOT NULL DEFAULT 0, + `tutorial_finished` tinyint(1) NOT NULL DEFAULT 0, + `daily_coins_enabled` tinyint(1) NOT NULL DEFAULT 0, + `daily_respect_points` int(11) NOT NULL DEFAULT 3, + `respect_points` int(11) NOT NULL DEFAULT 0, + `respect_day` varchar(11) NOT NULL DEFAULT '', + `respect_given` int(11) NOT NULL DEFAULT 0, + `totem_effect_expiry` bigint(111) NOT NULL DEFAULT 0, + `favourite_group` int(11) NOT NULL DEFAULT 0, + `home_room` int(11) NOT NULL DEFAULT 0, + `has_flash_warning` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`id`), + UNIQUE KEY `id` (`id`), + KEY `is_online` (`is_online`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users: ~0 rows (approximately) +DELETE FROM `users`; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +/*!40000 ALTER TABLE `users` ENABLE KEYS */; + +-- Dumping structure for table havana.users_achievements +CREATE TABLE IF NOT EXISTS `users_achievements` ( + `achievement_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `progress` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_achievements: ~0 rows (approximately) +DELETE FROM `users_achievements`; +/*!40000 ALTER TABLE `users_achievements` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_achievements` ENABLE KEYS */; + +-- Dumping structure for table havana.users_badges +CREATE TABLE IF NOT EXISTS `users_badges` ( + `user_id` int(11) NOT NULL, + `badge` char(50) NOT NULL, + `equipped` tinyint(4) NOT NULL DEFAULT 0, + `slot_id` int(11) NOT NULL DEFAULT 0, + KEY `users_badges_users_FK` (`user_id`), + KEY `user_id` (`user_id`), + CONSTRAINT `users_badges_users_FK` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_badges: ~0 rows (approximately) +DELETE FROM `users_badges`; +/*!40000 ALTER TABLE `users_badges` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_badges` ENABLE KEYS */; + +-- Dumping structure for table havana.users_bans +CREATE TABLE IF NOT EXISTS `users_bans` ( + `ban_type` enum('MACHINE_ID','IP_ADDRESS','USER_ID') NOT NULL, + `banned_value` varchar(250) NOT NULL, + `message` text NOT NULL DEFAULT '', + `banned_until` datetime NOT NULL, + `banned_at` datetime NOT NULL DEFAULT current_timestamp(), + `banned_by` int(11) NOT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT 1 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_bans: ~0 rows (approximately) +DELETE FROM `users_bans`; +/*!40000 ALTER TABLE `users_bans` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_bans` ENABLE KEYS */; + +-- Dumping structure for table havana.users_club_gifts +CREATE TABLE IF NOT EXISTS `users_club_gifts` ( + `user_id` int(11) NOT NULL, + `sprite` varchar(50) NOT NULL, + `date_received` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_club_gifts: ~0 rows (approximately) +DELETE FROM `users_club_gifts`; +/*!40000 ALTER TABLE `users_club_gifts` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_club_gifts` ENABLE KEYS */; + +-- Dumping structure for table havana.users_effects +CREATE TABLE IF NOT EXISTS `users_effects` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `effect_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `expiry_date` bigint(11) NOT NULL, + `activated` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_effects: ~0 rows (approximately) +DELETE FROM `users_effects`; +/*!40000 ALTER TABLE `users_effects` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_effects` ENABLE KEYS */; + +-- Dumping structure for table havana.users_ip_logs +CREATE TABLE IF NOT EXISTS `users_ip_logs` ( + `user_id` int(11) NOT NULL, + `ip_address` varchar(256) NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_ip_logs: ~0 rows (approximately) +DELETE FROM `users_ip_logs`; +/*!40000 ALTER TABLE `users_ip_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_ip_logs` ENABLE KEYS */; + +-- Dumping structure for table havana.users_mutes +CREATE TABLE IF NOT EXISTS `users_mutes` ( + `user_id` int(11) NOT NULL, + `muted_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_mutes: ~0 rows (approximately) +DELETE FROM `users_mutes`; +/*!40000 ALTER TABLE `users_mutes` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_mutes` ENABLE KEYS */; + +-- Dumping structure for table havana.users_referred +CREATE TABLE IF NOT EXISTS `users_referred` ( + `user_id` int(11) DEFAULT NULL, + `referred_id` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_referred: ~0 rows (approximately) +DELETE FROM `users_referred`; +/*!40000 ALTER TABLE `users_referred` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_referred` ENABLE KEYS */; + +-- Dumping structure for table havana.users_room_favourites +CREATE TABLE IF NOT EXISTS `users_room_favourites` ( + `room_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_room_favourites: ~0 rows (approximately) +DELETE FROM `users_room_favourites`; +/*!40000 ALTER TABLE `users_room_favourites` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_room_favourites` ENABLE KEYS */; + +-- Dumping structure for table havana.users_room_votes +CREATE TABLE IF NOT EXISTS `users_room_votes` ( + `user_id` int(11) NOT NULL, + `room_id` int(11) NOT NULL, + `vote` int(11) NOT NULL, + `expire_time` bigint(11) NOT NULL DEFAULT 0, + KEY `user_id` (`user_id`), + KEY `room_id` (`room_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_room_votes: ~0 rows (approximately) +DELETE FROM `users_room_votes`; +/*!40000 ALTER TABLE `users_room_votes` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_room_votes` ENABLE KEYS */; + +-- Dumping structure for table havana.users_statistics +CREATE TABLE IF NOT EXISTS `users_statistics` ( + `user_id` int(11) NOT NULL, + `days_logged_in_row` int(11) NOT NULL DEFAULT 0, + `guestbook_unread_messages` int(11) NOT NULL DEFAULT 0, + `online_time` int(11) NOT NULL DEFAULT 0, + `battleball_score_month` int(11) NOT NULL DEFAULT 0, + `battleball_score_all_time` int(11) NOT NULL DEFAULT 0, + `snowstorm_score_month` int(11) NOT NULL DEFAULT 0, + `snowstorm_score_all_time` int(11) NOT NULL DEFAULT 0, + `wobble_squabble_score_month` int(11) NOT NULL DEFAULT 0, + `wobble_squabble_score_all_time` int(11) NOT NULL DEFAULT 0, + `xp_earned_month` int(11) NOT NULL DEFAULT 0, + `xp_all_time` int(11) NOT NULL DEFAULT 0, + `battleball_games_won` int(11) NOT NULL DEFAULT 0, + `snowstorm_games_won` int(11) NOT NULL DEFAULT 0, + `wobble_squabble_games_won` int(11) NOT NULL DEFAULT 0, + `guided_by` int(11) NOT NULL DEFAULT 0, + `has_tutorial` int(11) NOT NULL DEFAULT 1, + `players_guided` int(11) NOT NULL DEFAULT 0, + `newbie_room_layout` int(11) NOT NULL DEFAULT 0, + `newbie_gift` int(11) NOT NULL DEFAULT 0, + `newbie_gift_time` bigint(11) NOT NULL DEFAULT 0, + `club_gift_due` datetime DEFAULT NULL, + `gifts_due` int(11) NOT NULL DEFAULT 0, + `club_member_time` bigint(11) NOT NULL DEFAULT 0, + `club_member_time_updated` bigint(11) NOT NULL DEFAULT 0, + `activation_code` varchar(255) DEFAULT NULL, + `forgot_password_code` varchar(255) DEFAULT NULL, + `forgot_recovery_requested_time` bigint(11) DEFAULT NULL, + `is_guidable` int(11) NOT NULL DEFAULT 1, + `mute_expires_at` bigint(11) NOT NULL DEFAULT 0, + KEY `activation_code` (`activation_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_statistics: ~0 rows (approximately) +DELETE FROM `users_statistics`; +/*!40000 ALTER TABLE `users_statistics` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_statistics` ENABLE KEYS */; + +-- Dumping structure for table havana.users_tags +CREATE TABLE IF NOT EXISTS `users_tags` ( + `user_id` int(11) DEFAULT NULL, + `tag` varchar(20) NOT NULL, + `room_id` varchar(20) NOT NULL DEFAULT '0', + `group_id` varchar(20) NOT NULL DEFAULT '0', + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + KEY `user_id` (`user_id`), + KEY `room_id` (`room_id`), + KEY `group_id` (`group_id`), + KEY `tag` (`tag`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_tags: ~0 rows (approximately) +DELETE FROM `users_tags`; +/*!40000 ALTER TABLE `users_tags` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_tags` ENABLE KEYS */; + +-- Dumping structure for table havana.users_transactions +CREATE TABLE IF NOT EXISTS `users_transactions` ( + `user_id` int(11) NOT NULL, + `item_id` longtext NOT NULL, + `catalogue_id` longtext NOT NULL, + `amount` int(11) NOT NULL, + `description` longtext NOT NULL DEFAULT '', + `credit_cost` int(11) NOT NULL, + `pixel_cost` int(11) NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp(), + `is_visible` tinyint(1) NOT NULL DEFAULT 1, + KEY `user_id` (`user_id`), + KEY `created_at` (`created_at`), + KEY `is_visible` (`is_visible`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_transactions: ~0 rows (approximately) +DELETE FROM `users_transactions`; +/*!40000 ALTER TABLE `users_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_transactions` ENABLE KEYS */; + +-- Dumping structure for table havana.users_tutorial_progress +CREATE TABLE IF NOT EXISTS `users_tutorial_progress` ( + `user_id` int(11) NOT NULL, + `flags` varchar(50) DEFAULT '1,2,3,4,5,6,7,8' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_tutorial_progress: ~0 rows (approximately) +DELETE FROM `users_tutorial_progress`; +/*!40000 ALTER TABLE `users_tutorial_progress` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_tutorial_progress` ENABLE KEYS */; + +-- Dumping structure for table havana.users_wardrobes +CREATE TABLE IF NOT EXISTS `users_wardrobes` ( + `user_id` int(11) NOT NULL, + `slot_id` tinyint(11) NOT NULL, + `sex` char(1) NOT NULL, + `figure` varchar(255) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.users_wardrobes: ~0 rows (approximately) +DELETE FROM `users_wardrobes`; +/*!40000 ALTER TABLE `users_wardrobes` DISABLE KEYS */; +/*!40000 ALTER TABLE `users_wardrobes` ENABLE KEYS */; + +-- Dumping structure for table havana.vouchers +CREATE TABLE IF NOT EXISTS `vouchers` ( + `voucher_code` varchar(100) NOT NULL, + `credits` int(11) NOT NULL DEFAULT 0, + `expiry_date` datetime DEFAULT NULL, + `is_single_use` tinyint(11) NOT NULL DEFAULT 1, + `allow_new_users` int(1) NOT NULL DEFAULT 0, + UNIQUE KEY `voucher_code` (`voucher_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT; + +-- Dumping data for table havana.vouchers: ~0 rows (approximately) +DELETE FROM `vouchers`; +/*!40000 ALTER TABLE `vouchers` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers` ENABLE KEYS */; + +-- Dumping structure for table havana.vouchers_history +CREATE TABLE IF NOT EXISTS `vouchers_history` ( + `voucher_code` varchar(100) NOT NULL, + `user_id` int(11) NOT NULL, + `used_at` datetime NOT NULL DEFAULT current_timestamp(), + `credits_redeemed` int(11) DEFAULT NULL, + `items_redeemed` text DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT; + +-- Dumping data for table havana.vouchers_history: ~0 rows (approximately) +DELETE FROM `vouchers_history`; +/*!40000 ALTER TABLE `vouchers_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers_history` ENABLE KEYS */; + +-- Dumping structure for table havana.vouchers_items +CREATE TABLE IF NOT EXISTS `vouchers_items` ( + `voucher_code` varchar(100) NOT NULL, + `catalogue_sale_code` varchar(100) NOT NULL, + KEY `voucher_code` (`voucher_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT; + +-- Dumping data for table havana.vouchers_items: ~0 rows (approximately) +DELETE FROM `vouchers_items`; +/*!40000 ALTER TABLE `vouchers_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `vouchers_items` ENABLE KEYS */; + +-- Dumping structure for view havana.vw_users_hc_duplicates +-- Creating temporary table to overcome VIEW dependency errors +CREATE TABLE `vw_users_hc_duplicates` ( + `gift_count` BIGINT(21) NOT NULL, + `user_id` INT(11) NOT NULL, + `sprite` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_general_ci', + `date_received` DATETIME NOT NULL +) ENGINE=MyISAM; + +-- Dumping structure for table havana.wordfilter +CREATE TABLE IF NOT EXISTS `wordfilter` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `word` varchar(100) NOT NULL, + `is_bannable` int(11) NOT NULL DEFAULT 0, + `is_filterable` int(11) NOT NULL DEFAULT 1, + PRIMARY KEY (`id`), + UNIQUE KEY `word` (`word`) +) ENGINE=InnoDB AUTO_INCREMENT=131 DEFAULT CHARSET=utf8mb4; + +-- Dumping data for table havana.wordfilter: ~127 rows (approximately) +DELETE FROM `wordfilter`; +/*!40000 ALTER TABLE `wordfilter` DISABLE KEYS */; +INSERT INTO `wordfilter` (`id`, `word`, `is_bannable`, `is_filterable`) VALUES + (1, 'aaron', 0, 1), + (2, 'anal', 0, 1), + (3, 'anus', 0, 1), + (4, 'arse', 0, 1), + (5, 'ass fuck', 0, 1), + (6, 'ass hole', 0, 1), + (7, 'assfucker', 0, 1), + (8, 'asshole', 0, 1), + (9, 'assshole', 0, 1), + (10, 'bastard', 0, 1), + (11, 'bitch', 0, 1), + (12, 'black cock', 0, 1), + (14, 'boong', 0, 1), + (15, 'cockfucker', 0, 1), + (16, 'cocksuck', 0, 1), + (17, 'cocksucker', 0, 1), + (18, 'coon', 0, 1), + (19, 'coonnass', 0, 1), + (20, 'crap', 0, 1), + (21, 'cunt', 0, 0), + (22, 'cyberfuck', 0, 1), + (23, 'dick', 0, 1), + (24, 'douche', 0, 1), + (25, 'erect', 0, 1), + (26, 'erection', 0, 1), + (27, 'erotic', 0, 1), + (28, 'escort', 0, 1), + (29, 'fag', 0, 0), + (30, 'faggot', 0, 0), + (31, 'fuck', 0, 1), + (32, 'Fuck off', 0, 1), + (33, 'fuck you', 0, 1), + (34, 'fuckass', 0, 1), + (35, 'fuckhole', 0, 1), + (36, 'fuckwit', 0, 1), + (37, 'god damn', 0, 1), + (38, 'goddamn', 0, 1), + (39, 'gook', 0, 1), + (40, 'h4bb0 id', 1, 0), + (41, 'h4bb0 ld', 1, 0), + (42, 'h4bb0,id', 1, 0), + (43, 'h4bb0.1d', 1, 0), + (44, 'h4bb0.id', 1, 0), + (45, 'h4bb0.ld', 1, 0), + (46, 'h4bbo 1d', 1, 0), + (47, 'h4bbo id', 1, 0), + (48, 'h4bbo.1d', 1, 0), + (49, 'h4bbo.id', 1, 0), + (50, 'h4bbo.ld', 1, 0), + (51, 'h4bbo:1d', 1, 0), + (52, 'h4bbo:id', 1, 0), + (53, 'habb0 id', 1, 0), + (54, 'habb0 ld', 1, 0), + (55, 'habb0.d', 1, 0), + (56, 'habb0.id', 1, 0), + (57, 'habb0.¡d', 1, 0), + (58, 'habbb0 id', 1, 0), + (59, 'habbb0 ld', 1, 0), + (60, 'habbb0.id', 1, 0), + (61, 'habbbo . ¡d', 1, 0), + (62, 'habbbo .¡d', 1, 0), + (63, 'habbbo id', 1, 0), + (64, 'habbbo.¡d', 1, 0), + (65, 'habbboid', 1, 0), + (66, 'habbbold', 1, 0), + (67, 'habbo .id', 1, 0), + (68, 'habbo 1d', 1, 0), + (69, 'habbo dot id', 1, 0), + (70, 'habbo id', 1, 0), + (71, 'habbo ld', 1, 0), + (72, 'habbo ¡d', 1, 0), + (73, 'habbo(.)id', 1, 0), + (74, 'habbo,id', 1, 0), + (75, 'habbo,ld', 1, 0), + (76, 'habbo. id', 1, 0), + (77, 'habbo.1d', 1, 0), + (78, 'habbo.id', 1, 0), + (79, 'habbo.ld', 1, 0), + (80, 'habbo.¡d', 1, 0), + (81, 'habbo:id', 1, 0), + (82, 'habbo:ld', 1, 0), + (83, 'habboid', 1, 0), + (84, 'habbold', 1, 0), + (85, 'hard core', 0, 1), + (86, 'hardcore', 0, 1), + (87, 'haββo id', 1, 0), + (88, 'haββo,id', 1, 0), + (89, 'haββo.id', 1, 0), + (90, 'haββo:id', 1, 0), + (91, 'haββoid', 1, 0), + (92, 'homoerotic', 0, 1), + (93, 'hore', 0, 1), + (94, 'mother fucker', 0, 1), + (95, 'motherfuck', 0, 1), + (96, 'motherfucker', 0, 1), + (97, 'nigger', 0, 0), + (98, 'orgasim', 0, 1), + (99, 'orgasm', 0, 1), + (100, 'penis', 0, 1), + (101, 'penisfucker', 0, 1), + (102, 'piss', 0, 1), + (103, 'piss off', 0, 1), + (104, 'porn', 0, 1), + (105, 'porno', 0, 1), + (106, 'pornography', 0, 1), + (107, 'pussy', 0, 1), + (108, 'retard', 0, 1), + (109, 'sadist', 0, 1), + (111, 'sexy', 0, 1), + (112, 'shit', 0, 1), + (113, 'slut', 0, 1), + (114, 'sojobo', 0, 1), + (115, 'son of a bitch', 0, 1), + (116, 'tits', 0, 1), + (117, 'viagra', 0, 1), + (118, 'whore', 0, 1), + (119, 'zaphotel', 0, 0), + (120, 'habfun', 1, 0), + (121, 'hretro', 1, 0), + (122, 'habme.net', 1, 0), + (124, 'habm e.net', 1, 0), + (125, '400+ daily players // free hc // free creds+diamonds', 1, 0), + (126, 'h abme.net', 1, 0), + (127, 'ha bme.net', 1, 0), + (128, 'hab me.net', 1, 0), + (129, 'habme. net', 1, 0), + (130, 'habme .net', 1, 0); +/*!40000 ALTER TABLE `wordfilter` ENABLE KEYS */; + +-- Dumping structure for view havana.vw_users_hc_duplicates +-- Removing temporary table and create final VIEW structure +DROP TABLE IF EXISTS `vw_users_hc_duplicates`; +CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `vw_users_hc_duplicates` AS select count(0) AS `gift_count`,`users_club_gifts`.`user_id` AS `user_id`,`users_club_gifts`.`sprite` AS `sprite`,`users_club_gifts`.`date_received` AS `date_received` from `users_club_gifts` group by `users_club_gifts`.`user_id`,`users_club_gifts`.`date_received`,`users_club_gifts`.`sprite` having count(0) > 1 order by count(0) desc ; + +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/tools/snowstorm_maps/arena_1.dat b/tools/snowstorm_maps/arena_1.dat new file mode 100644 index 0000000..1954bad --- /dev/null +++ b/tools/snowstorm_maps/arena_1.dat @@ -0,0 +1 @@ +n280 sw_fence 28 0 100000 2 n281 sw_fence 28 1 100000 2 n282 sw_fence 28 2 100000 2 g223 sw_tree1 22 3 0 1 n283 sw_fence 28 3 100000 2 n284 sw_fence 28 4 100000 2 j275 sw_tree4 27 5 0 1 n285 sw_fence 28 5 0 2 n286 sw_fence 28 6 0 2 h227 sw_tree2 22 7 0 1 n287 sw_fence 28 7 0 2 n288 sw_fence 28 8 0 2 n289 sw_fence 28 9 0 2 g1610 sw_tree1 16 10 0 1 n2810 sw_fence 28 10 0 2 j3413 sw_tree4 34 13 0 1 n1314 sw_fence 13 14 0 4 n1414 sw_fence 14 14 0 4 n1514 sw_fence 15 14 0 4 n1614 sw_fence 16 14 0 4 n1714 sw_fence 17 14 0 4 n1814 sw_fence 18 14 0 4 n1914 sw_fence 19 14 0 4 n2014 sw_fence 20 14 0 4 n2114 sw_fence 21 14 0 4 n2214 sw_fence 22 14 0 4 h1315 sw_tree2 13 15 0 1 b218 block_basic2 2 18 0 1 b318 block_basic2 3 18 0 1 b418 block_basic2 4 18 0 1 b518 block_basic2 5 18 0 1 b618 block_basic2 6 18 0 1 b718 block_basic2 7 18 0 1 b818 block_basic2 8 18 0 1 b918 block_basic2 9 18 0 1 b1018 block_basic2 10 18 0 1 b1118 block_basic2 11 18 0 1 a1218 block_basic 12 18 0 1 b219 block_basic2 2 19 0 1 v020 sw_backround2 0 20 0 0 b220 block_basic2 2 20 0 1 g620 sw_tree1 6 20 0 1 b3820 block_basic2 38 20 0 1 b3920 block_basic2 39 20 0 1 b4020 block_basic2 40 20 0 1 b4120 block_basic2 41 20 0 1 b4220 block_basic2 42 20 0 1 b4320 block_basic2 43 20 0 1 b221 block_basic2 2 21 0 1 b3821 block_basic2 38 21 0 1 b222 block_basic2 2 22 0 1 b3822 block_basic2 38 22 0 1 b3823 block_basic2 38 23 0 1 h524 sw_tree2 5 24 0 1 b3824 block_basic2 38 24 0 1 g4525 sw_tree1 45 25 0 1 i1026 sw_tree3 10 26 0 1 h4928 sw_tree2 49 28 0 1 i4732 sw_tree3 47 32 0 1 j1534 sw_tree4 15 34 0 1 a3737 block_basic 37 37 0 1 b3837 block_basic2 38 37 0 1 b3937 block_basic2 39 37 0 1 b4037 block_basic2 40 37 0 1 b4137 block_basic2 41 37 0 1 a4237 block_basic 42 37 0 1 b2338 block_basic2 23 38 0 1 n2438 sw_fence 24 38 0 2 g2538 sw_tree1 25 38 0 1 a2339 block_basic 23 39 0 1 n2439 sw_fence 24 39 0 2 b2340 block_basic2 23 40 0 1 n2440 sw_fence 24 40 0 2 h1941 sw_tree2 19 41 0 1 a2341 block_basic 23 41 0 1 n2441 sw_fence 24 41 0 2 b2342 block_basic2 23 42 0 1 n2442 sw_fence 24 42 0 2 a2343 block_basic 23 43 0 1 n2443 sw_fence 24 43 0 2 b2344 block_basic2 23 44 0 1 n2444 sw_fence 24 44 0 2 a2345 block_basic 23 45 0 1 n2445 sw_fence 24 45 0 2 b2346 block_basic2 23 46 100000 1 n2446 sw_fence 24 46 0 2 i2847 sw_tree3 28 47 0 1 h3447 sw_tree2 34 47 100000 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_1_snowmachines.dat b/tools/snowstorm_maps/arena_1_snowmachines.dat new file mode 100644 index 0000000..7ffda70 --- /dev/null +++ b/tools/snowstorm_maps/arena_1_snowmachines.dat @@ -0,0 +1 @@ +25 24 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_1_spawn_clusters.dat b/tools/snowstorm_maps/arena_1_spawn_clusters.dat new file mode 100644 index 0000000..fbd1616 --- /dev/null +++ b/tools/snowstorm_maps/arena_1_spawn_clusters.dat @@ -0,0 +1 @@ +30 41 8 4|39 33 8 4|39 28 12 4 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_2.dat b/tools/snowstorm_maps/arena_2.dat new file mode 100644 index 0000000..60ae877 --- /dev/null +++ b/tools/snowstorm_maps/arena_2.dat @@ -0,0 +1 @@ +j233 sw_tree4 23 3 0 1 n283 sw_fence 28 3 100000 2 n284 sw_fence 28 4 100000 2 n285 sw_fence 28 5 0 2 n286 sw_fence 28 6 0 2 n287 sw_fence 28 7 0 2 h297 sw_tree2 29 7 0 1 i198 sw_tree3 19 8 0 1 n288 sw_fence 28 8 0 2 n289 sw_fence 28 9 0 2 n2810 sw_fence 28 10 0 2 g2910 sw_tree1 29 10 0 1 n2811 sw_fence 28 11 0 2 n2812 sw_fence 28 12 0 2 n2813 sw_fence 28 13 0 2 n2814 sw_fence 28 14 0 2 n2815 sw_fence 28 15 0 2 n2816 sw_fence 28 16 0 2 n2817 sw_fence 28 17 0 2 g4018 sw_tree1 40 18 0 1 j319 sw_tree4 3 19 0 1 n719 sw_fence 7 19 0 4 n819 sw_fence 8 19 0 4 n919 sw_fence 9 19 0 4 n1019 sw_fence 10 19 0 4 n1119 sw_fence 11 19 0 4 n1219 sw_fence 12 19 0 4 n1319 sw_fence 13 19 0 4 n1419 sw_fence 14 19 0 4 n1519 sw_fence 15 19 0 4 n1619 sw_fence 16 19 0 4 n1719 sw_fence 17 19 0 4 w020 sw_backround3 0 20 0 0 h620 sw_tree2 6 20 0 1 h2424 sw_tree2 24 24 0 1 i926 sw_tree3 9 26 0 1 i3926 sw_tree3 39 26 0 1 j4627 sw_tree4 46 27 0 1 g2329 sw_tree1 23 29 0 1 a3329 block_basic 33 29 0 1 a3330 block_basic 33 30 0 1 a3331 block_basic 33 31 0 1 a2832 block_basic 28 32 0 1 a2932 block_basic 29 32 0 1 a3032 block_basic 30 32 0 1 h1837 sw_tree2 18 37 0 1 i4238 sw_tree3 42 38 0 1 j3249 sw_tree4 32 49 100000 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_2_snowmachines.dat b/tools/snowstorm_maps/arena_2_snowmachines.dat new file mode 100644 index 0000000..4816452 --- /dev/null +++ b/tools/snowstorm_maps/arena_2_snowmachines.dat @@ -0,0 +1 @@ +26 26 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_2_spawn_clusters.dat b/tools/snowstorm_maps/arena_2_spawn_clusters.dat new file mode 100644 index 0000000..32d172d --- /dev/null +++ b/tools/snowstorm_maps/arena_2_spawn_clusters.dat @@ -0,0 +1 @@ +33 37 8 4|18 12 8 4|12 26 8 4 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_3.dat b/tools/snowstorm_maps/arena_3.dat new file mode 100644 index 0000000..a376973 --- /dev/null +++ b/tools/snowstorm_maps/arena_3.dat @@ -0,0 +1 @@ +c230 block_basic3 23 0 0 1 b231 block_basic2 23 1 0 1 c232 block_basic3 23 2 0 1 b233 block_basic2 23 3 0 1 g184 sw_tree1 18 4 0 1 j204 sw_tree4 20 4 0 1 c234 block_basic3 23 4 0 1 h264 sw_tree2 26 4 0 1 b235 block_basic2 23 5 0 1 j255 sw_tree4 25 5 0 1 h186 sw_tree2 18 6 0 1 i226 sw_tree3 22 6 0 1 c236 block_basic3 23 6 0 1 b237 block_basic2 23 7 0 1 c118 block_basic3 11 8 0 1 b128 block_basic2 12 8 0 1 c138 block_basic3 13 8 0 1 b148 block_basic2 14 8 0 1 c158 block_basic3 15 8 0 1 b168 block_basic2 16 8 0 1 c178 block_basic3 17 8 0 1 b188 block_basic2 18 8 0 1 c198 block_basic3 19 8 0 1 b208 block_basic2 20 8 0 1 c218 block_basic3 21 8 0 1 b228 block_basic2 22 8 0 1 o238 block_arch1b 23 8 0 1 g268 sw_tree1 26 8 0 1 c119 block_basic3 11 9 0 1 b1110 block_basic2 11 10 0 1 u2310 block_arch3b 23 10 0 1 c811 block_basic3 8 11 0 1 b911 block_basic2 9 11 0 1 b1011 block_basic2 10 11 0 1 a1111 block_basic 11 11 0 1 a1411 block_basic 14 11 0 1 b1511 block_basic2 15 11 0 1 a1611 block_basic 16 11 0 1 b1711 block_basic2 17 11 0 1 a1811 block_basic 18 11 0 1 q1911 block_ice2 19 11 0 1 p2011 block_ice 20 11 0 1 a2211 block_basic 22 11 0 1 b2311 block_basic2 23 11 0 1 b812 block_basic2 8 12 0 1 b1912 block_basic2 19 12 0 1 a2312 block_basic 23 12 0 1 c813 block_basic3 8 13 0 1 b1913 block_basic2 19 13 0 1 b2313 block_basic2 23 13 0 1 b814 block_basic2 8 14 0 1 a1214 block_basic 12 14 0 1 o1914 block_arch1b 19 14 0 1 a2314 block_basic 23 14 0 1 c815 block_basic3 8 15 0 1 b1215 block_basic2 12 15 0 1 b2315 block_basic2 23 15 0 1 p3415 block_ice 34 15 0 1 b816 block_basic2 8 16 0 1 b1216 block_basic2 12 16 0 1 u1916 block_arch3b 19 16 0 1 a2316 block_basic 23 16 0 1 q3416 block_ice2 34 16 0 1 c817 block_basic3 8 17 0 1 b1217 block_basic2 12 17 0 1 b1917 block_basic2 19 17 0 1 p3417 block_ice 34 17 0 1 i418 sw_tree3 4 18 0 1 b818 block_basic2 8 18 0 1 a1018 block_basic 10 18 0 1 a1218 block_basic 12 18 0 1 a1418 block_basic 14 18 0 1 b1518 block_basic2 15 18 0 1 a1618 block_basic 16 18 0 1 b1718 block_basic2 17 18 0 1 a1818 block_basic 18 18 0 1 q1918 block_ice2 19 18 0 1 p2018 block_ice 20 18 0 1 q3418 block_ice2 34 18 0 1 r019 sw_backround6 0 19 0 0 c819 block_basic3 8 19 0 1 b1919 block_basic2 19 19 0 1 p3419 block_ice 34 19 0 1 b820 block_basic2 8 20 0 1 o1920 block_arch1b 19 20 0 1 c821 block_basic3 8 21 0 1 h622 sw_tree2 6 22 0 1 b822 block_basic2 8 22 0 1 u1922 block_arch3b 19 22 0 1 g423 sw_tree1 4 23 0 1 c823 block_basic3 8 23 0 1 b1923 block_basic2 19 23 0 1 b824 block_basic2 8 24 0 1 b1924 block_basic2 19 24 0 1 j425 sw_tree4 4 25 0 1 c825 block_basic3 8 25 0 1 q925 block_ice2 9 25 0 1 p1025 block_ice 10 25 0 1 p1325 block_ice 13 25 0 1 q1425 block_ice2 14 25 0 1 a1525 block_basic 15 25 0 1 b1625 block_basic2 16 25 0 1 a1725 block_basic 17 25 0 1 b1825 block_basic2 18 25 0 1 c1925 block_basic3 19 25 0 1 q2025 block_ice2 20 25 0 1 p2125 block_ice 21 25 0 1 b826 block_basic2 8 26 0 1 b1926 block_basic2 19 26 0 1 p4026 block_ice 40 26 0 1 c827 block_basic3 8 27 0 1 b1927 block_basic2 19 27 0 1 q4027 block_ice2 40 27 0 1 b828 block_basic2 8 28 0 1 o1928 block_arch1b 19 28 0 1 p4028 block_ice 40 28 0 1 c829 block_basic3 8 29 0 1 q4029 block_ice2 40 29 0 1 b830 block_basic2 8 30 0 1 u1930 block_arch3b 19 30 0 1 p4030 block_ice 40 30 0 1 b1931 block_basic2 19 31 0 1 a1032 block_basic 10 32 0 1 a1232 block_basic 12 32 0 1 a1432 block_basic 14 32 0 1 b1532 block_basic2 15 32 0 1 a1632 block_basic 16 32 0 1 b1732 block_basic2 17 32 0 1 a1832 block_basic 18 32 0 1 q1932 block_ice2 19 32 0 1 p2032 block_ice 20 32 0 1 b1233 block_basic2 12 33 0 1 b1933 block_basic2 19 33 0 1 b1234 block_basic2 12 34 0 1 o1934 block_arch1b 19 34 0 1 a2335 block_basic 23 35 0 1 p3435 block_ice 34 35 0 1 u1936 block_arch3b 19 36 0 1 b2336 block_basic2 23 36 0 1 q3436 block_ice2 34 36 0 1 b1937 block_basic2 19 37 0 1 a2337 block_basic 23 37 0 1 p3437 block_ice 34 37 0 1 b1938 block_basic2 19 38 0 1 b2338 block_basic2 23 38 0 1 q3438 block_ice2 34 38 0 1 b1739 block_basic2 17 39 0 1 a1839 block_basic 18 39 0 1 q1939 block_ice2 19 39 0 1 p2039 block_ice 20 39 0 1 a2239 block_basic 22 39 0 1 a2339 block_basic 23 39 0 1 p3439 block_ice 34 39 0 1 a2340 block_basic 23 40 0 1 a2341 block_basic 23 41 0 1 g2143 sw_tree1 21 43 0 1 a2343 block_basic 23 43 0 1 b2344 block_basic2 23 44 0 1 i3144 sw_tree3 31 44 0 1 c2345 block_basic3 23 45 0 1 g3046 sw_tree1 30 46 0 1 j3246 sw_tree4 32 46 0 1 h3148 sw_tree2 31 48 0 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_3_snowmachines.dat b/tools/snowstorm_maps/arena_3_snowmachines.dat new file mode 100644 index 0000000..c0f8ab2 --- /dev/null +++ b/tools/snowstorm_maps/arena_3_snowmachines.dat @@ -0,0 +1 @@ +36 17 42 28 36 37 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_3_spawn_clusters.dat b/tools/snowstorm_maps/arena_3_spawn_clusters.dat new file mode 100644 index 0000000..5e9aede --- /dev/null +++ b/tools/snowstorm_maps/arena_3_spawn_clusters.dat @@ -0,0 +1 @@ +14 21 3 1|15 14 3 1|23 19 3 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_4.dat b/tools/snowstorm_maps/arena_4.dat new file mode 100644 index 0000000..b66f94e --- /dev/null +++ b/tools/snowstorm_maps/arena_4.dat @@ -0,0 +1 @@ +h221 sw_tree2 22 1 0 1 h204 sw_tree2 20 4 0 1 g244 sw_tree1 24 4 0 1 g275 sw_tree1 27 5 0 1 i246 sw_tree3 24 6 0 1 j278 sw_tree4 27 8 0 1 j209 sw_tree4 20 9 0 1 h319 sw_tree2 31 9 0 1 h1610 sw_tree2 16 10 0 1 i1013 sw_tree3 10 13 0 1 i2713 sw_tree3 27 13 0 1 g1815 sw_tree1 18 15 0 1 i3916 sw_tree3 39 16 0 1 g1017 sw_tree1 10 17 0 1 h2517 sw_tree2 25 17 0 1 h418 sw_tree2 4 18 0 1 j718 sw_tree4 7 18 0 1 j1519 sw_tree4 15 19 0 1 j3520 sw_tree4 35 20 0 1 j121 sw_tree4 1 21 0 1 i1121 sw_tree3 11 21 0 1 g522 sw_tree1 5 22 0 1 h722 sw_tree2 7 22 0 1 g2223 sw_tree1 22 23 0 1 h4323 sw_tree2 43 23 0 1 h425 sw_tree2 4 25 0 1 g4725 sw_tree1 47 25 0 1 i727 sw_tree3 7 27 0 1 i2030 sw_tree3 20 30 0 1 j3931 sw_tree4 39 31 0 1 g1133 sw_tree1 11 33 0 1 i4734 sw_tree3 47 34 100000 1 j1636 sw_tree4 16 36 0 1 h2937 sw_tree2 29 37 0 1 i2239 sw_tree3 22 39 0 1 i3843 sw_tree3 38 43 100000 1 g2445 sw_tree1 24 45 0 1 j3248 sw_tree4 32 48 0 1 h2749 sw_tree2 27 49 0 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_4_spawn_clusters.dat b/tools/snowstorm_maps/arena_4_spawn_clusters.dat new file mode 100644 index 0000000..9acd398 --- /dev/null +++ b/tools/snowstorm_maps/arena_4_spawn_clusters.dat @@ -0,0 +1 @@ +26 27 50 10| \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_5.dat b/tools/snowstorm_maps/arena_5.dat new file mode 100644 index 0000000..70d391e --- /dev/null +++ b/tools/snowstorm_maps/arena_5.dat @@ -0,0 +1 @@ +i231 sw_tree3 23 1 0 1 h202 sw_tree2 20 2 0 1 j254 sw_tree4 25 4 0 1 g195 sw_tree1 19 5 0 1 a198 block_basic 19 8 0 1 a298 block_basic 29 8 0 1 a308 block_basic 30 8 0 1 a318 block_basic 31 8 0 1 a328 block_basic 32 8 100000 1 a338 block_basic 33 8 100000 1 a348 block_basic 34 8 100000 1 a358 block_basic 35 8 100000 1 a199 block_basic 19 9 0 1 a359 block_basic 35 9 100000 1 a1910 block_basic 19 10 0 1 a2210 block_basic 22 10 0 1 a2310 block_basic 23 10 0 1 a2410 block_basic 24 10 0 1 a2510 block_basic 25 10 0 1 a3510 block_basic 35 10 100000 1 a1011 block_basic 10 11 0 1 a1111 block_basic 11 11 0 1 a1211 block_basic 12 11 0 1 a1311 block_basic 13 11 0 1 a1411 block_basic 14 11 0 1 a1511 block_basic 15 11 0 1 a1611 block_basic 16 11 0 1 a1711 block_basic 17 11 0 1 a1811 block_basic 18 11 0 1 a1911 block_basic 19 11 0 1 a2211 block_basic 22 11 0 1 a2511 block_basic 25 11 0 1 a2811 block_basic 28 11 0 1 a2911 block_basic 29 11 0 1 a3011 block_basic 30 11 0 1 a3111 block_basic 31 11 0 1 a3211 block_basic 32 11 0 1 a3511 block_basic 35 11 100000 1 a1012 block_basic 10 12 0 1 a2212 block_basic 22 12 0 1 a2512 block_basic 25 12 0 1 a2812 block_basic 28 12 0 1 a3212 block_basic 32 12 0 1 a3512 block_basic 35 12 0 1 a1013 block_basic 10 13 0 1 a2213 block_basic 22 13 0 1 a2313 block_basic 23 13 0 1 a2413 block_basic 24 13 0 1 a2513 block_basic 25 13 0 1 a2813 block_basic 28 13 0 1 a3213 block_basic 32 13 0 1 a3513 block_basic 35 13 0 1 a1014 block_basic 10 14 0 1 a1314 block_basic 13 14 0 1 a1414 block_basic 14 14 0 1 a1514 block_basic 15 14 0 1 a1614 block_basic 16 14 0 1 a1914 block_basic 19 14 0 1 a2814 block_basic 28 14 0 1 a2914 block_basic 29 14 0 1 a3014 block_basic 30 14 0 1 a3114 block_basic 31 14 0 1 a3214 block_basic 32 14 0 1 a3514 block_basic 35 14 0 1 a1015 block_basic 10 15 0 1 a1315 block_basic 13 15 0 1 a1915 block_basic 19 15 0 1 a3515 block_basic 35 15 0 1 g716 sw_tree1 7 16 0 1 a1016 block_basic 10 16 0 1 a1316 block_basic 13 16 0 1 a1916 block_basic 19 16 0 1 a2216 block_basic 22 16 0 1 a2516 block_basic 25 16 0 1 a3516 block_basic 35 16 0 1 a1017 block_basic 10 17 0 1 a1317 block_basic 13 17 0 1 a1617 block_basic 16 17 0 1 a1717 block_basic 17 17 0 1 a1817 block_basic 18 17 0 1 a1917 block_basic 19 17 0 1 a2217 block_basic 22 17 0 1 a2517 block_basic 25 17 0 1 a2817 block_basic 28 17 0 1 a2917 block_basic 29 17 0 1 a3017 block_basic 30 17 0 1 a3117 block_basic 31 17 0 1 a3217 block_basic 32 17 0 1 a3517 block_basic 35 17 0 1 a3617 block_basic 36 17 0 1 a3717 block_basic 37 17 0 1 a3817 block_basic 38 17 0 1 a3917 block_basic 39 17 0 1 a4017 block_basic 40 17 0 1 a4117 block_basic 41 17 100000 1 a4217 block_basic 42 17 100000 1 a1018 block_basic 10 18 0 1 a2218 block_basic 22 18 0 1 a2518 block_basic 25 18 0 1 a2818 block_basic 28 18 0 1 a4218 block_basic 42 18 100000 1 h419 sw_tree2 4 19 0 1 a819 block_basic 8 19 0 1 a919 block_basic 9 19 0 1 a1019 block_basic 10 19 0 1 a2219 block_basic 22 19 0 1 a2519 block_basic 25 19 0 1 a2819 block_basic 28 19 0 1 a4219 block_basic 42 19 0 1 a1320 block_basic 13 20 0 1 a1620 block_basic 16 20 0 1 a1720 block_basic 17 20 0 1 a1820 block_basic 18 20 0 1 a1920 block_basic 19 20 0 1 a2220 block_basic 22 20 0 1 a2320 block_basic 23 20 0 1 a2420 block_basic 24 20 0 1 a2520 block_basic 25 20 0 1 a2820 block_basic 28 20 0 1 a2920 block_basic 29 20 0 1 a3020 block_basic 30 20 0 1 a3120 block_basic 31 20 0 1 a3220 block_basic 32 20 0 1 a3320 block_basic 33 20 0 1 a3620 block_basic 36 20 0 1 a3720 block_basic 37 20 0 1 a3820 block_basic 38 20 0 1 a3920 block_basic 39 20 0 1 a4220 block_basic 42 20 0 1 a1321 block_basic 13 21 0 1 a1621 block_basic 16 21 0 1 a1921 block_basic 19 21 0 1 a3321 block_basic 33 21 0 1 a3621 block_basic 36 21 0 1 a4221 block_basic 42 21 0 1 a822 block_basic 8 22 0 1 a922 block_basic 9 22 0 1 a1022 block_basic 10 22 0 1 a1322 block_basic 13 22 0 1 a1922 block_basic 19 22 0 1 a3322 block_basic 33 22 0 1 a3622 block_basic 36 22 0 1 a4222 block_basic 42 22 0 1 a1023 block_basic 10 23 0 1 a1323 block_basic 13 23 0 1 a1923 block_basic 19 23 0 1 a3323 block_basic 33 23 0 1 a3623 block_basic 36 23 0 1 a3923 block_basic 39 23 0 1 a4023 block_basic 40 23 0 1 a4123 block_basic 41 23 0 1 a4223 block_basic 42 23 0 1 i324 sw_tree3 3 24 0 1 a1024 block_basic 10 24 0 1 a1324 block_basic 13 24 0 1 a1624 block_basic 16 24 0 1 a1724 block_basic 17 24 0 1 a1824 block_basic 18 24 0 1 a1924 block_basic 19 24 0 1 a3324 block_basic 33 24 0 1 a3624 block_basic 36 24 0 1 a3924 block_basic 39 24 0 1 a4024 block_basic 40 24 0 1 a4124 block_basic 41 24 0 1 a4224 block_basic 42 24 0 1 a825 block_basic 8 25 0 1 a925 block_basic 9 25 0 1 a1025 block_basic 10 25 0 1 h4926 sw_tree2 49 26 0 1 a1327 block_basic 13 27 0 1 a1627 block_basic 16 27 0 1 a1727 block_basic 17 27 0 1 a1827 block_basic 18 27 0 1 a1927 block_basic 19 27 0 1 a3327 block_basic 33 27 0 1 a3427 block_basic 34 27 0 1 a3527 block_basic 35 27 0 0 a3627 block_basic 36 27 0 1 a3927 block_basic 39 27 0 1 a4027 block_basic 40 27 0 1 a4127 block_basic 41 27 0 1 a4227 block_basic 42 27 0 1 a4327 block_basic 43 27 0 1 a4427 block_basic 44 27 0 1 a828 block_basic 8 28 0 1 a928 block_basic 9 28 0 1 a1028 block_basic 10 28 0 1 a1328 block_basic 13 28 0 1 a1928 block_basic 19 28 0 1 a3328 block_basic 33 28 0 1 a1029 block_basic 10 29 0 1 a1329 block_basic 13 29 0 1 a1929 block_basic 19 29 0 1 a3329 block_basic 33 29 0 1 a1030 block_basic 10 30 0 1 a1330 block_basic 13 30 0 1 a1630 block_basic 16 30 0 1 a1930 block_basic 19 30 0 1 a3330 block_basic 33 30 0 1 a3430 block_basic 34 30 0 1 a3530 block_basic 35 30 0 1 a3630 block_basic 36 30 0 1 a3930 block_basic 39 30 0 1 a4030 block_basic 40 30 0 1 a4130 block_basic 41 30 0 1 a4230 block_basic 42 30 0 1 a4330 block_basic 43 30 0 1 a4430 block_basic 44 30 0 1 a1031 block_basic 10 31 0 1 a1331 block_basic 13 31 0 1 a1631 block_basic 16 31 0 1 a1931 block_basic 19 31 0 1 a1032 block_basic 10 32 0 1 a1332 block_basic 13 32 0 1 a1632 block_basic 16 32 0 1 a1932 block_basic 19 32 0 1 a1033 block_basic 10 33 100000 1 a1333 block_basic 13 33 0 1 a1433 block_basic 14 33 0 1 a1533 block_basic 15 33 0 1 a1633 block_basic 16 33 0 1 a1933 block_basic 19 33 0 1 a2233 block_basic 22 33 0 1 a2333 block_basic 23 33 0 1 a2433 block_basic 24 33 0 1 a2533 block_basic 25 33 0 1 a2633 block_basic 26 33 0 1 a2933 block_basic 29 33 0 1 a3033 block_basic 30 33 0 1 a3133 block_basic 31 33 0 1 a3233 block_basic 32 33 0 1 a3333 block_basic 33 33 0 1 a3433 block_basic 34 33 0 1 a3533 block_basic 35 33 0 1 a3833 block_basic 38 33 0 1 a3933 block_basic 39 33 0 1 a4033 block_basic 40 33 0 1 a4133 block_basic 41 33 0 1 a4233 block_basic 42 33 0 1 a4333 block_basic 43 33 0 1 a1934 block_basic 19 34 0 1 a2234 block_basic 22 34 0 1 a2634 block_basic 26 34 0 1 a2934 block_basic 29 34 0 1 a3834 block_basic 38 34 0 1 a4334 block_basic 43 34 0 1 a1935 block_basic 19 35 0 1 a2235 block_basic 22 35 0 1 a2635 block_basic 26 35 0 1 a2935 block_basic 29 35 0 1 a3835 block_basic 38 35 0 1 a3935 block_basic 39 35 0 1 a4035 block_basic 40 35 0 1 a4135 block_basic 41 35 0 1 a4235 block_basic 42 35 0 1 a4335 block_basic 43 35 0 1 a1636 block_basic 16 36 0 1 a1736 block_basic 17 36 0 1 a1836 block_basic 18 36 0 1 a1936 block_basic 19 36 0 1 a2236 block_basic 22 36 0 1 a2636 block_basic 26 36 0 1 a2936 block_basic 29 36 0 1 a3236 block_basic 32 36 0 1 a3336 block_basic 33 36 0 1 a3436 block_basic 34 36 0 1 a3536 block_basic 35 36 0 1 a2237 block_basic 22 37 0 1 a2337 block_basic 23 37 0 1 a2437 block_basic 24 37 0 1 a2537 block_basic 25 37 0 1 a2637 block_basic 26 37 0 1 a2937 block_basic 29 37 0 1 a3237 block_basic 32 37 0 1 a3337 block_basic 33 37 0 1 a3437 block_basic 34 37 0 1 a3537 block_basic 35 37 0 1 a3838 block_basic 38 38 0 1 a3938 block_basic 39 38 0 1 a4038 block_basic 40 38 0 1 a4138 block_basic 41 38 0 1 a1639 block_basic 16 39 100000 1 a1739 block_basic 17 39 0 1 a1839 block_basic 18 39 0 1 a1939 block_basic 19 39 0 1 a3839 block_basic 38 39 0 1 a4139 block_basic 41 39 0 1 a1940 block_basic 19 40 0 1 a2240 block_basic 22 40 0 1 a2340 block_basic 23 40 0 1 a2440 block_basic 24 40 0 1 a2540 block_basic 25 40 0 1 a2640 block_basic 26 40 0 1 a2940 block_basic 29 40 0 1 a3040 block_basic 30 40 0 1 a3140 block_basic 31 40 0 1 a3240 block_basic 32 40 0 1 a3540 block_basic 35 40 0 1 a3640 block_basic 36 40 0 1 a3740 block_basic 37 40 0 1 a3840 block_basic 38 40 0 1 a4140 block_basic 41 40 100000 1 a1941 block_basic 19 41 0 1 a2241 block_basic 22 41 0 1 a2641 block_basic 26 41 0 1 a2941 block_basic 29 41 0 1 a3241 block_basic 32 41 0 1 a4141 block_basic 41 41 100000 1 a1942 block_basic 19 42 100000 1 a2242 block_basic 22 42 0 1 a2342 block_basic 23 42 0 1 a2442 block_basic 24 42 0 1 a2542 block_basic 25 42 0 1 a2642 block_basic 26 42 0 1 a2942 block_basic 29 42 0 1 a3242 block_basic 32 42 0 1 a4142 block_basic 41 42 100000 1 a2943 block_basic 29 43 0 1 a3243 block_basic 32 43 0 1 a3543 block_basic 35 43 0 1 a3643 block_basic 36 43 0 1 a3743 block_basic 37 43 0 1 a3843 block_basic 38 43 100000 1 a3943 block_basic 39 43 100000 1 a4043 block_basic 40 43 100000 1 a4143 block_basic 41 43 100000 1 a2944 block_basic 29 44 0 1 a3244 block_basic 32 44 0 1 a3544 block_basic 35 44 0 1 a2945 block_basic 29 45 0 1 a3045 block_basic 30 45 0 1 a3145 block_basic 31 45 0 1 a3245 block_basic 32 45 0 1 a3545 block_basic 35 45 0 1 a3546 block_basic 35 46 100000 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_5_spawn_clusters.dat b/tools/snowstorm_maps/arena_5_spawn_clusters.dat new file mode 100644 index 0000000..9551be6 --- /dev/null +++ b/tools/snowstorm_maps/arena_5_spawn_clusters.dat @@ -0,0 +1 @@ +14 14 5 2|26 26 8 3|39 21 5 2| \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_6.dat b/tools/snowstorm_maps/arena_6.dat new file mode 100644 index 0000000..459a40d --- /dev/null +++ b/tools/snowstorm_maps/arena_6.dat @@ -0,0 +1 @@ +g212 sw_tree1 21 2 0 1 h232 sw_tree2 23 2 0 1 i264 sw_tree3 26 4 0 1 j157 sw_tree4 15 7 0 1 b207 block_basic2 20 7 0 1 b208 block_basic2 20 8 0 1 b298 block_basic2 29 8 0 1 b209 block_basic2 20 9 0 1 b299 block_basic2 29 9 0 1 b2010 block_basic2 20 10 0 1 b2910 block_basic2 29 10 0 1 i1511 sw_tree3 15 11 0 1 b2011 block_basic2 20 11 0 1 b2911 block_basic2 29 11 0 1 b2012 block_basic2 20 12 0 1 b2112 block_basic2 21 12 0 1 b2212 block_basic2 22 12 0 1 a2312 block_basic 23 12 0 0 a2612 block_basic 26 12 0 1 b2712 block_basic2 27 12 0 1 b2812 block_basic2 28 12 0 1 b2912 block_basic2 29 12 0 1 h3312 sw_tree2 33 12 0 1 a2313 block_basic 23 13 0 1 a2613 block_basic 26 13 0 1 a1217 block_basic 12 17 0 1 b1218 block_basic2 12 18 0 1 b1219 block_basic2 12 19 0 1 b1220 block_basic2 12 20 0 1 b1221 block_basic2 12 21 0 1 g622 sw_tree1 6 22 0 1 c1222 block_basic3 12 22 0 1 b1322 block_basic2 13 22 0 1 a1422 block_basic 14 22 0 1 g3522 sw_tree1 35 22 0 1 b4122 block_basic2 41 22 0 1 b4222 block_basic2 42 22 0 1 a4322 block_basic 43 22 0 1 c4123 block_basic3 41 23 0 1 h324 sw_tree2 3 24 0 1 c1224 block_basic3 12 24 0 1 b1324 block_basic2 13 24 0 1 a1424 block_basic 14 24 0 1 a2424 block_basic 24 24 0 1 a2524 block_basic 25 24 0 1 a2624 block_basic 26 24 0 1 a2724 block_basic 27 24 0 1 a2824 block_basic 28 24 0 1 b4124 block_basic2 41 24 0 1 b1225 block_basic2 12 25 0 1 a2425 block_basic 24 25 0 1 a2825 block_basic 28 25 0 1 c4125 block_basic3 41 25 0 1 b1226 block_basic2 12 26 0 1 a2426 block_basic 24 26 0 1 k2626 obst_duck 26 26 0 1 a2826 block_basic 28 26 0 1 b4126 block_basic2 41 26 0 1 j527 sw_tree4 5 27 0 1 b1227 block_basic2 12 27 0 1 a2427 block_basic 24 27 0 1 a2827 block_basic 28 27 0 1 c4127 block_basic3 41 27 0 1 b4227 block_basic2 42 27 0 1 a4327 block_basic 43 27 0 1 b1228 block_basic2 12 28 0 1 a2428 block_basic 24 28 0 1 a2528 block_basic 25 28 0 1 a2628 block_basic 26 28 0 1 a2728 block_basic 27 28 0 1 a2828 block_basic 28 28 0 1 b1229 block_basic2 12 29 0 1 a1230 block_basic 12 30 0 1 i1530 sw_tree3 15 30 0 1 c4130 block_basic3 41 30 0 1 b4230 block_basic2 42 30 0 1 a4330 block_basic 43 30 0 1 b4131 block_basic2 41 31 0 1 c4132 block_basic3 41 32 0 1 b4133 block_basic2 41 33 0 1 c4134 block_basic3 41 34 0 1 b4135 block_basic2 41 35 0 1 b4235 block_basic2 42 35 0 1 a4335 block_basic 43 35 0 1 g1638 sw_tree1 16 38 0 1 h2040 sw_tree2 20 40 0 1 b2441 block_basic2 24 41 0 0 b2541 block_basic2 25 41 0 0 c2641 block_basic3 26 41 0 0 b2741 block_basic2 27 41 0 1 d2841 block_arch1 28 41 0 1 f3041 block_arch3 30 41 0 1 b3141 block_basic2 31 41 0 1 c3241 block_basic3 32 41 0 1 b3341 block_basic2 33 41 0 1 b3441 block_basic2 34 41 0 1 b2442 block_basic2 24 42 0 0 b3442 block_basic2 34 42 0 1 j3842 sw_tree4 38 42 0 1 b2443 block_basic2 24 43 0 0 b3443 block_basic2 34 43 0 1 a2444 block_basic 24 44 0 0 b3444 block_basic2 34 44 0 1 a3445 block_basic 34 45 0 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_6_spawn_clusters.dat b/tools/snowstorm_maps/arena_6_spawn_clusters.dat new file mode 100644 index 0000000..04756b1 --- /dev/null +++ b/tools/snowstorm_maps/arena_6_spawn_clusters.dat @@ -0,0 +1 @@ +18 18 8 3|34 34 8 3|24 7 8 3|28 45 8 3|46 27 8 3| \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_7.dat b/tools/snowstorm_maps/arena_7.dat new file mode 100644 index 0000000..e084a34 --- /dev/null +++ b/tools/snowstorm_maps/arena_7.dat @@ -0,0 +1 @@ +i299 sw_tree3 29 9 0 1 h1410 sw_tree2 14 10 0 1 j1214 sw_tree4 12 14 0 1 i1515 sw_tree3 15 15 0 1 s019 sw_backround7 0 19 0 0 a4219 block_basic 42 19 0 1 a4220 block_basic 42 20 0 1 a4221 block_basic 42 21 0 1 g2922 sw_tree1 29 22 0 1 a4222 block_basic 42 22 0 1 j3223 sw_tree4 32 23 0 1 p4225 block_ice 42 25 0 1 a4325 block_basic 43 25 0 1 p4625 block_ice 46 25 0 1 a4725 block_basic 47 25 0 1 p4825 block_ice 48 25 0 1 h2926 sw_tree2 29 26 0 1 b4226 block_basic2 42 26 0 1 q4227 block_ice2 42 27 0 1 b4228 block_basic2 42 28 0 1 p4528 block_ice 45 28 0 1 a4628 block_basic 46 28 0 1 q4229 block_ice2 42 29 0 1 a4529 block_basic 45 29 0 1 i1330 sw_tree3 13 30 0 1 a4230 block_basic 42 30 0 1 g1632 sw_tree1 16 32 0 1 h1233 sw_tree2 12 33 0 1 a3733 block_basic 37 33 0 1 q4233 block_ice2 42 33 0 1 q3734 block_ice2 37 34 0 1 a4234 block_basic 42 34 0 1 c3735 block_basic3 37 35 0 1 p4235 block_ice 42 35 0 1 q3736 block_ice2 37 36 0 1 b4236 block_basic2 42 36 0 1 p4336 block_ice 43 36 0 1 a4436 block_basic 44 36 0 1 p4536 block_ice 45 36 100000 1 a3737 block_basic 37 37 0 1 p3538 block_ice 35 38 0 1 p3638 block_ice 36 38 0 1 p3738 block_ice 37 38 0 1 i2540 sw_tree3 25 40 0 1 p3540 block_ice 35 40 0 1 p3640 block_ice 36 40 0 1 p3740 block_ice 37 40 0 1 p3741 block_ice 37 41 0 1 p3742 block_ice 37 42 0 1 j2643 sw_tree4 26 43 0 1 p3743 block_ice 37 43 0 1 \ No newline at end of file diff --git a/tools/snowstorm_maps/arena_7_spawn_clusters.dat b/tools/snowstorm_maps/arena_7_spawn_clusters.dat new file mode 100644 index 0000000..95760c7 --- /dev/null +++ b/tools/snowstorm_maps/arena_7_spawn_clusters.dat @@ -0,0 +1 @@ +12 12 4 3|29 14 5 3|45 30 5 2|24 41 3 2|18 38 6 3| \ No newline at end of file diff --git a/tools/www-tpl/default/OLD_install_shockwave.tpl b/tools/www-tpl/default/OLD_install_shockwave.tpl new file mode 100644 index 0000000..760fde0 --- /dev/null +++ b/tools/www-tpl/default/OLD_install_shockwave.tpl @@ -0,0 +1,208 @@ + + + + + + {{ site.siteName }}: Shockwave Help + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +

      + + +
      +
      +
      +
      +
      +

      How to use Shockwave

      +
      +

      In order to load the Shockwave hotel, you must follow these steps and ensure you have the prequisities required.

      +

      Pale Moon

      +

      Pale Moon is a necessity to run Shockwave correctly, as it's one of the few browsers that still supports NPAPI plugins correctly.

      +

      Since Shockwave is quite old, the 32-bit version of Pale Moon is required, here you can download the Portable or the Full version.

      +

      Shockwave 12

      +

      You must install the Shockwave 12 MSI first and then proceed to install the Visual Studio 2008 C++ x86 redist.

      +

      Download list

      +

      Adobe Shockwave 12.3 MSI: Download

      +

      Microsoft Visual C++ 2008 Redistributable Package (x86): Download

      +

      Also please make sure you do not have a browser open when installing the Shockwave MSI, as you will need to start a fresh Windows installation, since the current installation breaks with a browser open.

      +

      Shockwave 11

      +

      While Shockwave 11.6 is older than the latest version that is Shockwave 12, the latest version experiences issues with crashing while playing music from the Trax Machine or Jukebox, and also messsages in the instant messenger are always stuck at 12:00.

      +

      For these reasons, Shockwave 11 is recommended to install instead since these issues are not present in this version.

      +

      You can download the official Shockwave 11.6 installer MSI here.

      + + +
      +
      + +
      + +
      +
      +

      Why should I use Shockwave?

      +
      +

      As of right now there are two clients to play the hotel on, the first is the Shockwave hotel and the second is Flash.

      +

      It is highly recommended to play the Shockwave version because it's filled with far more features that cannot be experienced on the Flash client.

      +

      The features that Shockwave contains which are not present in the Flash version are listed below.

      +
      +
      + +
      +
      +

      BattleBall, Diving, Wobble Squabble, Trax Machines, Jukeboxes, American Idol, Tic Tac Toe, Chess, Battleships, Poker and some nostalgic Habbo components such as the hand and the Room-o-Matic.

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +

      Prerequisities

      +

      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ξL(!a^YDnZg2f`->C1p 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⪚hs=kE_Fi?uar^1|`=7Y#$iQ<*}3S!?r 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

      +
      +
      + +
      +
      +

      The following items are required to use Shockwave are listed below.

      +

      If you fail to meet these requirements, you will only be able to play the Flash version.

      +
      +
      +

      Requirements

      +

      - Microsoft Windows; or

      +

      - WINE for Linux and macOS (not supported by Classic staff, as may be unreliable)

      +

      - Shockwave (at least 11.6 or higher)

      +

      - Pale Moon 32-bit

      +
      +
      + + + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + + +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/OLD_shockwave_app.tpl b/tools/www-tpl/default/OLD_shockwave_app.tpl new file mode 100644 index 0000000..df53823 --- /dev/null +++ b/tools/www-tpl/default/OLD_shockwave_app.tpl @@ -0,0 +1,299 @@ + + + + + + {{ site.siteName }}: Portable Client + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + +
      +
      +
      +
      +
      +

      Portable Shockwave Client

      +
      +
      +
      + +
      +
      +

      As the years go by so do the browser plugins. Shockwave is a browser plugin that is deprecated in most modern browsers, due to this a portable program that runs Shockwave Habbo is avaliable.

      +

      This is a Macromedia Projector program generated with Director MX 2004. Written in the same language that the Shockwave Habbo client is written in.

      +
      +
      +

      How does it work?

      +

      The program is a simple .exe that sends a login request to our server and then loads the client. You'll need to edit the account.ini file with your login details.

      +

      The app regardless of download will work with WINE, which is a requirement to play on either macOS and Linux.

      +

      Why should I use Shockwave?

      +

      As of right now there are two clients to play the hotel on, the first is the Shockwave hotel and the second is Flash.

      +

      It is highly recommended to play the Shockwave version because it's filled with far more features that cannot be experienced on the Flash client.

      +

      Pictures

      +

      Below are pictures of the program working in action.

      +
      +
      +
      + + +
      +
      +
      + + +
      +
      + +
      + +
      +
      +

      Changelog

      +
      +
      +
      + +
      +
      +

      The program has existed since April 2019 and has had a lot of changes over the course. You may view them below.

      +
      +
      + Reveal Changelog +
      +

      Version 0.8

      +

      - Fixes for Cloudflare changing how requests are sent back.

      +
      +

      Version 0.7

      +

      - Fixes for updating furniture.

      +
      +

      Version 0.6

      +

      - Furniture is now stored and loaded from disk to decrease furniture load times.

      +

      - New furniture will be automatically downloaded when loaded so subsequent loading will be faster.

      +
      +

      Version 0.5

      +
      +

      - Added hotel view support which is an option that can be changed in your Account Settings.

      +

      - Added always on top feature.

      +

      - Added login in the client instead, an opt-in if you don't trust login details being stored on text.

      +
      +

      Version 0.4

      +

      - Added patches for SnowStorm to become playable, without freezing.

      +
      +

      Version 0.3

      +

      - Fix for working hyperlinks

      +

      - Fix for the reset tutorial button not properly sending request to server.

      +
      +

      Version 0.2

      +

      - Fix for miscellaneous symbols not being allowed in passwords.

      +

      - Add joystick icon created by Copyright.

      +
      +

      Version 0.1

      +

      - Initial release.

      +
      + +
      +
      +
      +
      +
      +
      +
      +

      Downloads

      +
      +

      There are two versions to download. The standard download and the lite download.

      +

      Standard version:

      +

      The standard version contains all the furniture for instant loading. New furniture will be downloaded if the file doesn't exist.

      +

      - Click here to download (82 MB)

      +

      Lite version:

      +

      Contains no furniture. New furniture will be downloaded if the file doesn't exist.

      +

      - Click here to download (25 MB)

      +
      +
      +
      +
      + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + +
      +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/banned.tpl b/tools/www-tpl/default/account/banned.tpl new file mode 100644 index 0000000..e939c48 --- /dev/null +++ b/tools/www-tpl/default/account/banned.tpl @@ -0,0 +1,108 @@ + + + + + + {{ site.siteName }}: Banned + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + + {% include "../base/frontpage_header.tpl" %} +
      + +
      +
      +
      +
      {{ bannedMsg }}
      +
      + +
      + +
      + + + +
      +
      +
      +
      + +
      + + + + +{% include "../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/account_activated.tpl b/tools/www-tpl/default/account/email/account_activated.tpl new file mode 100644 index 0000000..73ca0b0 --- /dev/null +++ b/tools/www-tpl/default/account/email/account_activated.tpl @@ -0,0 +1,123 @@ + + + + + + {{ site.siteName }}: Email Activation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + + {% include "../../base/frontpage_header.tpl" %} +
      + + +
      +
      +{% if verifySuccess %} +
      +

      Email link handled successfully

      +
      + + Your email address is now verified. +
      + Continue to {{ site.siteName }} front page. +
      +
      +
      +{% else %} +
      +

      Email link handled unsuccessfully

      +
      + + The activation link was invalid. +
      + Continue to {{ site.siteName }} front page. +
      +
      +
      +{% endif %} + +
      + + + + + +{% include "../../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/account_forgot.tpl b/tools/www-tpl/default/account/email/account_forgot.tpl new file mode 100644 index 0000000..87c5493 --- /dev/null +++ b/tools/www-tpl/default/account/email/account_forgot.tpl @@ -0,0 +1,185 @@ + + + + + + {{ site.siteName }}: Forgotten password + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + {% include "../../base/frontpage_header.tpl" %} +
      + + +
      +
      +
      +

      Forgotten Your Password?

      +
      + {% if invalidForgetPassword %} +
      + Invalid username or e-mail address
      +
      +
      + {% endif %} + {% if validForgetPassword %} +
      + An email has been sent with recovery details
      +
      +
      + {% endif %} +

      Don't panic! Please enter your account information below and we'll send you an email telling you how to reset your password.

      + +
      + +
      +

      + + +

      + +

      + + +

      + +

      + +

      + +
      +
      +
      + +
      + + +
      + +
      +

      Forgotten Your Habbo Name?

      +
      + {% if invalidForgetName %} +
      + Invalid username or e-mail address
      +
      +
      + {% endif %} + {% if validForgetName %} +
      + A list of names have been sent to the e-mail address
      +
      +
      + {% endif %} +

      No problem - just enter your email address below and we'll send you a list of your accounts.

      + +
      + +
      +

      + + + +

      + +

      + +

      + +
      + +
      +
      + +
      +

      False Alarm!

      +
      +

      If you have remembered your password, or if you just came here by accident, click the link below to return to the homepage.

      +

      Back to homepage »

      +
      +
      + +
      + + + + +{% include "../../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/account_recovery.tpl b/tools/www-tpl/default/account/email/account_recovery.tpl new file mode 100644 index 0000000..d4b290c --- /dev/null +++ b/tools/www-tpl/default/account/email/account_recovery.tpl @@ -0,0 +1,140 @@ + + + + + + {{ site.siteName }}: Recovery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + + {% include "../../base/frontpage_header.tpl" %} +
      + +
      + {% if alert.hasAlert %} + + +
      +

      Account Recovery

      +
      +

      {{ alert.message }}

      +
      +
      + + {% else %} + + +
      +

      Account Recovery

      +
      +

      Please enter and confirm your new password below to recover your account.

      +
      +
      +

      + + +

      +
      +

      + + +

      + +

      + +

      + + +
      + + +
      +
      + + + {% endif %} + +
      + + + + + +{% include "../../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/base/email_footer.tpl b/tools/www-tpl/default/account/email/base/email_footer.tpl new file mode 100644 index 0000000..ba23c0b --- /dev/null +++ b/tools/www-tpl/default/account/email/base/email_footer.tpl @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/base/email_header.tpl b/tools/www-tpl/default/account/email/base/email_header.tpl new file mode 100644 index 0000000..33b2d72 --- /dev/null +++ b/tools/www-tpl/default/account/email/base/email_header.tpl @@ -0,0 +1,28 @@ + + + + + + + +
      + + + + + + + +
      + Habbo Logo + + + Enter Habbo Hotel button + +
      +
      + + +
      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/email_activate.tpl b/tools/www-tpl/default/account/email/email_activate.tpl new file mode 100644 index 0000000..3b81eac --- /dev/null +++ b/tools/www-tpl/default/account/email/email_activate.tpl @@ -0,0 +1,15 @@ +{% include "base/email_header.tpl" %} +

      Email Activation

      +

      Thanks for activating your email at {{ site.emailHotelName }}.

      +

      Please activate your account by clicking here.

      +

      Here are your user details:

      +

      {{ site.siteName}} name: {{ playerName }}

      +

      Email: {{ playerEmail }}

      +

      Keep this information safe, you need your username and email to reset your password if you forget it.
      +


      +

      Here's some other stuff you may want to do:

      + +
    1. Change account settings.
    2. +
    3. Completely delete this email address from your user profile.
    4. + +{% include "base/email_footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/email_recovery.tpl b/tools/www-tpl/default/account/email/email_recovery.tpl new file mode 100644 index 0000000..7279c43 --- /dev/null +++ b/tools/www-tpl/default/account/email/email_recovery.tpl @@ -0,0 +1,8 @@ +{% include "base/email_header.tpl" %} +

      Account Recovery

      +

      Hello {{ playerName }},

      +

      Please recover your account by clicking here.

      +

      This link can only be used once and will lead you to a page to set your password. It expires after one day and nothing will happen if it's not used.

      +
      +

      If you did not request an account recovery, you can delete this email.

      +{% include "base/email_footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/email_registered.tpl b/tools/www-tpl/default/account/email/email_registered.tpl new file mode 100644 index 0000000..2a2d659 --- /dev/null +++ b/tools/www-tpl/default/account/email/email_registered.tpl @@ -0,0 +1,15 @@ +{% include "base/email_header.tpl" %} +

      Welcome to {{ site.siteName}}, {{ playerName }}!

      +

      Thanks for registering at {{ site.emailHotelName }}.

      +

      Please activate your account by clicking here.

      +

      Here are your user details:

      +

      {{ site.siteName}} name: {{ playerName }}

      +

      Email: {{ playerEmail }}

      +

      Keep this information safe, you need your username and email to reset your password if you forget it.
      +


      +

      Here's some other stuff you may want to do:

      + +
    5. Change account settings.
    6. +
    7. Completely delete this email address from your user profile.
    8. + +{% include "base/email_footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/account/email/sent.tpl b/tools/www-tpl/default/account/email/sent.tpl new file mode 100644 index 0000000..0eaddd7 --- /dev/null +++ b/tools/www-tpl/default/account/email/sent.tpl @@ -0,0 +1,97 @@ + + + + + + {{ site.siteName }}: Forgotten password + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + {% include "../../base/frontpage_header.tpl" %} +
      +
      +
      +

      You've got mail!

      +
      +

      E-Mail sent! Check your inbox and spam folders.

      +

      Back to homepage »

      + +
      +
      + + + + +{% include "../../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/login.tpl b/tools/www-tpl/default/account/login.tpl new file mode 100644 index 0000000..feb00d5 --- /dev/null +++ b/tools/www-tpl/default/account/login.tpl @@ -0,0 +1,168 @@ + + + + + + {{ site.siteName }}: Log in to {{ site.siteName }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + {% include "../base/frontpage_header.tpl" %} +
      +
      +
      + +
      +

      Register for free

      +
      +

      Register for free by clicking the Create Your Habbo -button below. If you have already registered, please sign in on the right.

      + +
      +
      + + + +
      + + +
      +
      + +
      + +
      + +
      +

      Sign in

      +
      + + +
      +
      +
      + + + + +
      + + + +
      + + +{% include "../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/logout.tpl b/tools/www-tpl/default/account/logout.tpl new file mode 100644 index 0000000..1a18c44 --- /dev/null +++ b/tools/www-tpl/default/account/logout.tpl @@ -0,0 +1,108 @@ + + + + + + {{ site.siteName }}: Home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + + {% include "../base/frontpage_header.tpl" %} +
      + +
      +
      +
      +
      You have successfully signed out
      +
      + +
      + +
      + + + +
      +
      +
      +
      + +
      + + + + +{% include "../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/reauthenticate.tpl b/tools/www-tpl/default/account/reauthenticate.tpl new file mode 100644 index 0000000..748b7a8 --- /dev/null +++ b/tools/www-tpl/default/account/reauthenticate.tpl @@ -0,0 +1,143 @@ + + + + + + {{ site.siteName }}: Log in to {{ site.siteName }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      + {% include "../base/frontpage_header.tpl" %} +
      +
      +
      +

      Please enter your password

      + +
      +

      You need to enter your password to continue because you have signed in via 'remember-me'.

      +

      If you are not {{ playerDetails.getName() }}, please sign out.

      +

      If you have forgotten your password, please click here.

      +
      + +
      +
      + +
      + + + +{% if alert.hasAlert %} + +
        +
      • {{ alert.message }}
      • +
      + +{% endif %} + +
      +

      Sign in

      + +
      + + +
      +
      +
      + + + + +{% include "../base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/account/submit.tpl b/tools/www-tpl/default/account/submit.tpl new file mode 100644 index 0000000..b2f0d3e --- /dev/null +++ b/tools/www-tpl/default/account/submit.tpl @@ -0,0 +1,15 @@ + + + Redirecting... + + + + + + + +

      If you are not automatically redirected, please click here

      + + + + diff --git a/tools/www-tpl/default/base/ads_container.tpl b/tools/www-tpl/default/base/ads_container.tpl new file mode 100644 index 0000000..c7b510f --- /dev/null +++ b/tools/www-tpl/default/base/ads_container.tpl @@ -0,0 +1,4 @@ + +

      Keep it (un)real!

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/base/flash_check.tpl b/tools/www-tpl/default/base/flash_check.tpl new file mode 100644 index 0000000..bcc0b80 --- /dev/null +++ b/tools/www-tpl/default/base/flash_check.tpl @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/tools/www-tpl/default/base/footer.tpl b/tools/www-tpl/default/base/footer.tpl new file mode 100644 index 0000000..7543a66 --- /dev/null +++ b/tools/www-tpl/default/base/footer.tpl @@ -0,0 +1,7 @@ +
      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/base/frontpage_header.tpl b/tools/www-tpl/default/base/frontpage_header.tpl new file mode 100644 index 0000000..ad50837 --- /dev/null +++ b/tools/www-tpl/default/base/frontpage_header.tpl @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/tools/www-tpl/default/base/hc_status.tpl b/tools/www-tpl/default/base/hc_status.tpl new file mode 100644 index 0000000..96534bd --- /dev/null +++ b/tools/www-tpl/default/base/hc_status.tpl @@ -0,0 +1,48 @@ +{% if session.loggedIn %} + +
      +
      + {% if playerDetails.hasClubSubscription() %} +

      You have {{ hcDays }} {{ site.siteName }} Club day(s) left.

      +

      You have been a member for {{ hcSinceMonths }} month(s)

      + {% else %} +

      You are not a member of {{ site.siteName }} Club

      + {% endif %} +
      +
      +
      + +
      + +
      +
      +{% else %} +
      +Please sign in to see your {{ site.siteName }} Club status
      + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/base/header.tpl b/tools/www-tpl/default/base/header.tpl new file mode 100644 index 0000000..c65f3d7 --- /dev/null +++ b/tools/www-tpl/default/base/header.tpl @@ -0,0 +1,184 @@ +{% if session.loggedIn == false %} + +
      + +
      + +
      + +{% else %} + +
      +
      + +
      + +{% endif %} diff --git a/tools/www-tpl/default/base/tag_cloud.tpl b/tools/www-tpl/default/base/tag_cloud.tpl new file mode 100644 index 0000000..f682d59 --- /dev/null +++ b/tools/www-tpl/default/base/tag_cloud.tpl @@ -0,0 +1,13 @@ +{% autoescape 'html' %} +{% if tagCloud|length > 0 %} +
        +{% for kvp in tagCloud %} +{% set tag = kvp.getKey() %} +{% set size = kvp.getValue() %} +
      • {{ tag }}
      • +{% endfor %} +
      +{% else %} +No tags to display. +{% endif %} +{% endautoescape %} \ No newline at end of file diff --git a/tools/www-tpl/default/base/tag_search.tpl b/tools/www-tpl/default/base/tag_search.tpl new file mode 100644 index 0000000..60d990f --- /dev/null +++ b/tools/www-tpl/default/base/tag_search.tpl @@ -0,0 +1,87 @@ + +
      + {% if tagList.size() equals 0 %} +

      No results found.

      + {% else %} +

      {{ pageId }} - {{ totalTagUsers|length }} / {{ totalCount }}

      + {% endif %} + {{ tagSearchAdd }} +

      + + + + {% autoescape 'html' %} + {% set num = 0 %} + {% if tagList.size() > 0 %} + {% for habboTag in tagList %} + {% set num = num + 1 %} + {% set tags = habboTag.getTagList() %} + + {% if num % 2 == 0 %} + + {% else %} + + {% endif %} + + {% if habboTag.getUserId() > 0 %} + {% set player = habboTag.getUserData() %} + + + {% endif %} + {% if habboTag.getGroupId() > 0 %} + {% set group = habboTag.getGroupData() %} + + + {% endif %} + + {% endfor %} + {% endif %} + {% endautoescape %} + +
      + + + {{ player.getName() }}
      + {{ player.getMotto }} + + +
      + + + {{ group.getName() }}
      + {{ group.getDescription() }} + + +
      +

      + {% if showFirst %} + << + {% endif %} + {% if showOldest %} + {{ pageId - 2 }} + {% endif %} + {% if showOlder %} + {{ pageId - 1 }} + {% endif %} + {{ pageId }} + {% if showNewer %} + {{ pageId + 1 }} + {% endif %} + {% if showNewest %} + {{ pageId + 2 }} + {% endif %} + {% if showLast %} + >> + {% endif %} +

      \ No newline at end of file diff --git a/tools/www-tpl/default/client.tpl b/tools/www-tpl/default/client.tpl new file mode 100644 index 0000000..24232fc --- /dev/null +++ b/tools/www-tpl/default/client.tpl @@ -0,0 +1,153 @@ + + + + + {{ site.siteName }}: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + +
      + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/client_beta.tpl b/tools/www-tpl/default/client_beta.tpl new file mode 100644 index 0000000..9884256 --- /dev/null +++ b/tools/www-tpl/default/client_beta.tpl @@ -0,0 +1,159 @@ + + + + + + + {{ site.siteName }}: Hotel + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      +
      +
      +

      Please update your Flash Player to the latest version.

      +
      +

      You can install and download Adobe Flash Player here: Install flash player. More instructions for installation can be found here: More information

      +

      Get Adobe Flash player

      +
      +
      +
      + +
      +
      +
      + + + + + + diff --git a/tools/www-tpl/default/client_connection_failed.tpl b/tools/www-tpl/default/client_connection_failed.tpl new file mode 100644 index 0000000..db37f63 --- /dev/null +++ b/tools/www-tpl/default/client_connection_failed.tpl @@ -0,0 +1,97 @@ + + + + + + {{ site.siteName }}: Connection failed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      +
      +
      + +

      Connection to {{ site.siteName }} Hotel failed. +

      +
      +

      Unfortunately we are unable to connect you to {{ site.siteName }} Hotel. This could be because your computer is blocking the connections via a firewall. The data relating to this issue has been logged and will be analyzed by our support team. Sorry for the inconvenience.

      +
      + + +
      +
      + + +
      + +
      +
      + + +
      +
      +
      + + + \ No newline at end of file diff --git a/tools/www-tpl/default/client_error.tpl b/tools/www-tpl/default/client_error.tpl new file mode 100644 index 0000000..af59dfc --- /dev/null +++ b/tools/www-tpl/default/client_error.tpl @@ -0,0 +1,133 @@ + + + + + + {{ site.siteName }}: Error + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + +
      +
      + +
      +
      + +

      Oops!!

      +
      +
      +

      Oops, the client encountered a technical problem. Not to worry this error has now been recorded to our system and will be investigated by our support team.

      + +

      Please re-open hotel to continue. We are sorry for the inconvenience.

      +
      +
      +
      + +
      +
      + +
      +
      + Enter + +
      +
      +
      + + +
      + + + + + +
      +
      + + + +
      + +
      +
      + +
      +
      +
      + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/client_flash.tpl b/tools/www-tpl/default/client_flash.tpl new file mode 100644 index 0000000..701b6a9 --- /dev/null +++ b/tools/www-tpl/default/client_flash.tpl @@ -0,0 +1,159 @@ + + + + + + + {{ site.siteName }}: Hotel + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      +
      +
      +
      +

      Please update your Flash Player to the latest version.

      +
      +

      You can install and download Adobe Flash Player here: Install flash player. More instructions for installation can be found here: More information

      +

      Get Adobe Flash player

      +
      +
      +
      + +
      +
      +
      + + + + + + diff --git a/tools/www-tpl/default/client_install_shockwave.tpl b/tools/www-tpl/default/client_install_shockwave.tpl new file mode 100644 index 0000000..30643ed --- /dev/null +++ b/tools/www-tpl/default/client_install_shockwave.tpl @@ -0,0 +1,115 @@ + + + + + + {{ site.siteName }}: Error + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + +
      +
      + +
      +
      + +

      Shockwave detection

      +
      +
      +

      Oops, in order to enter the hotel you need Adobe Shockwave player. Shockwave is free and takes only a minute or two to install.

      +
      +
      +
      +
      + +
      +
      +
      +
      +
      +
      + + + + +
      +
      + + + +
      + +
      +
      + +
      +
      +
      + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/club.tpl b/tools/www-tpl/default/club.tpl new file mode 100644 index 0000000..e7a117f --- /dev/null +++ b/tools/www-tpl/default/club.tpl @@ -0,0 +1,237 @@ + + + + + + {{ site.siteName }}: Club + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + +{% if session.currentPage == "credits" %} + +{% endif %} + +{% if session.currentPage == "me" %} + +{% endif %} + +
      +
      +
      + +
      +
      + +

      {{ site.siteName }} Club: become a VIP!

      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + + +
      +
      + + + + +
      +
      + + +

      Benefits

      +
      +

      {{ site.siteName }} Club is our VIP members-only club - absolutely no riff-raff admitted! Members enjoy a wide range of benefits, including exclusive clothes, free gifts and an extended Friends List. See below for all the sparkly, attractive reasons to join.

      +

      1. Extra Clothes & Accessories

      +

      Show off your new status with a variety of extra clothes and accessories, along with special hairstyles and colors.

      Try out {{ site.siteName }} Club clothes for yourself! + +

      +

      2. Free Furni

      +

      Once a month, every month, you'll get an exclusive piece of {{ site.siteName }} Club furni.

      +

      Important note: club time is cumulative. This means that if you have a break in membership, and then rejoin, you'll start back in the same place you left off.

      +

      3. Exclusive Room Layouts

      +

      Special Guest Room layouts, only for {{ site.siteName }} Club members. Perfect for showing off your new furni!

      +

      + +

      4. Access All Areas

      +

      Jump the annoying queues when rooms are loading. And that's not all - you'll also get access to HC-only Public Rooms.

      +

      5. Homepage Upgrades

      +

      Join {{ site.siteName }} Club and say goodbye to homepage ads! And this means you can make the most of the HC skins and backgrounds too.

      +

      6. More Friends

      +

      600 people! Now that's a lot of buddies however you look at it. More than you can poke with a medium-sized stick, or a big-sized small stick.

      + +

      7. Special Commands

      +

      Use the :chooser command to see a clickable list of all the users in the room. Pretty handy when you want to sit next to your mate, or kick out a troublemaker.

      +
      +

      Use the :furni command to list all the items in a room. Everything is listed, even those sneakily hidden items.

      +
      + + +
      +
      + + +
      +
      + +
      +
      + +

      My Membership

      + + + + {% include "base/hc_status.tpl" %} +
      +
      + + + + +
      +
      + +

      Monthly Gifts +

      + +
      + {% include "habblet/habboclubgift.tpl" %} +
      + + +
      +
      + + + +
      +
      + +
      + +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/club_tryout.tpl b/tools/www-tpl/default/club_tryout.tpl new file mode 100644 index 0000000..4d22a24 --- /dev/null +++ b/tools/www-tpl/default/club_tryout.tpl @@ -0,0 +1,199 @@ + + + + + + {{ site.siteName }}: Club Tryout + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + +
      +
      +
      + +
      +
      + +

      {{ site.siteName }} Club Test Wardrobe

      +
      + +
      + +
      + +
      + You need to have a Flash player installed on your computer before being able to edit your {{ site.siteName }} character. You can download the player from here: http://www.adobe.com/go/getflashplayer +
      +
      + + +
      +
      + + + +
      +
      + +
      +
      + +

      My Membership

      + + + + {% include "base/hc_status.tpl" %} +
      +
      + + +
      +
      + +

      What is {{ site.siteName }} Club?

      + +
      +

      {{ site.siteName }} Club is our VIP members-only club - absolutely no riff-raff admitted! Members enjoy a wide range of benefits, including exclusive clothes, free gifts and an extended Friends List. See below for all the sparkly, attractive reasons to join.

      +

      1. Extra Clothes & Accessories

      +

      2. Free Furni

      +

      3. Exclusive Room Layouts

      +

      4. Access All Areas

      + +

      5. Homepage Upgrades

      +

      6. More Friends

      +

      7. Special Commands

      +

      Read more »

      +
      + + +
      +
      + + + +
      + + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/collectables.tpl b/tools/www-tpl/default/collectables.tpl new file mode 100644 index 0000000..081d704 --- /dev/null +++ b/tools/www-tpl/default/collectables.tpl @@ -0,0 +1,239 @@ + + + + + + {{ site.siteName }}: Collectables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + +
      +
      +
      +
      +
      + +

      Current Collectable

      + +
      +{% if hasCollectable %} +
      +

      {{ collectableName }}

      +

      March 2019

      +

      {{ collectableDescription }}

      +

      + +{% if session.loggedIn %} + Purchase +{% endif %} + Available Until: +

      +{% else %} +
      +

      No collectable

      +

      March 2019

      +

      There is currently no collectable

      +

      + +

      +{% endif %} +
      + + + +
      +
      + + + +
      +
      + +

      Collectable Showroom

      +
        +{% set num = 0 %} +{% for entry in collectablesShowroom %} + {% if num % 2 == 0 %} +
      • + {% else %} +
      • + {% endif %} + +
        +

        {{ entry.getName() }}

        +

        {{ entry.getDescription() }}

        + +
      • +{% set num = num + 1 %} +{% endfor %} +
      + +{% if hasCollectable %} + +{% endif %} + +
      +
      + + +
      +
      +
      +
      + +

      What are Collectables?

      + +
      + +Collectables are special furniture sold only for a limited and set period of time. Experienced {{ site.siteName }}s would know them as rares. They always cost the same - 200 Credits. +
      + + +
      +
      + + +
      +
      + +

      Invest in Collectables

      + +
      + +

      + + Collect your way to the riches! Collectables not only make a great piece of Furni but also come with an amazing trade value. As collectables will never be sold again for quite a while (that's a promise), the value will keep increasing in time.

      + +

      + +

      + +
      + + +
      +
      + + + +
      + + + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/community.tpl b/tools/www-tpl/default/community.tpl new file mode 100644 index 0000000..136284a --- /dev/null +++ b/tools/www-tpl/default/community.tpl @@ -0,0 +1,478 @@ + + + + + + {{ site.siteName }}: Community + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + + +
      +
      +
      + +
      +
      + +
      +

      Rooms

      + +
      + +
      + +
      +
        +{% autoescape 'html' %} +{% set num = 0 %} +{% for room in recommendedRooms %} + {% if num % 2 == 0 %} +
      • + {% else %} +
      • + {% endif %} + + {% set occupancyLevel = 0 %} + {% if room.getData().getVisitorsNow() > 0 %} + + {% set percentage = ((room.getData().getVisitorsNow() * 100) / room.getData().getVisitorsMax()) %} + + {% if (percentage >= 99) %} + {% set occupancyLevel = 5 %} + {% elseif (percentage > 65) %} + {% set occupancyLevel = 4 %} + {% elseif (percentage > 32) %} + {% set occupancyLevel = 3 %} + {% elseif (percentage > 0) %} + {% set occupancyLevel = 2 %} + {% endif %} + + {% endif %} + + + Enter {{ site.siteName }} Hotel + {% autoescape 'html' %}{{ room.getData().getName() }}{% endautoescape %} + {% autoescape 'html' %}{{ room.getData().getDescription() }}{% endautoescape %} + Owner: {{ room.getData().getOwnerName() }} + +
      • +{% set num = num + 1 %} +{% endfor %} +
      + + +
      +
      + +
      +
      + + +
      +
      +
      +

      Groups

      + + +
      + +
      + +
        + {% autoescape 'html' %} + {% set num = 1 %} + {% for topic in recentTopics %} + + {% if num % 2 == 0 %} +
      • + {% else %} +
      • + {% endif %} + + + {{ topic.getTopicTitle }} + + +
        + ( + 1 + {% if topic.getRecentPages()|length > 0 %} + ... + {% for page in topic.getRecentPages() %} + {{ page }} + {% endfor %} + {% endif %} + ) +
        +
      • + {% set num = num + 1 %} + {% endfor %} + {% endautoescape %} +
      + + + + +
      + +
      +
      + + +
      +
      + +

      Random {{ site.siteName }}s - Click Us!

      +
      + + +{% set num = 0 %} +{% for habbo in randomHabbos %} +
      +
      + {% if habbo.isOnline() %} +
      {{ habbo.getName() }}
      + {% else %} +
      {{ habbo.getName() }}
      + {% endif %} + + {{ site.siteName }} created on: {{ habbo.getCreatedAt() }} +

      {{ habbo.getMotto() }}

      +
      +
      + + +{% set num = num + 1 %} +{% endfor %} +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + +
      +
      + +
      +
      +
      +
      +
      +

      Latest news

      +

      {% if article1.isPublished() == false %}*{% endif %}{{ article1.title }}

      +

      + {{ article1.shortstory }}

      +

      + Read more » +

      +
      + + + +
      + +
      + +
      + +
      + + +
      +
      +

      Tags

      + {% include "habblet/tagList.tpl" %} +
      +
      + +
      +

      +
      + + +
      + + + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/credits.tpl b/tools/www-tpl/default/credits.tpl new file mode 100644 index 0000000..9427cdb --- /dev/null +++ b/tools/www-tpl/default/credits.tpl @@ -0,0 +1,337 @@ + + + + + + {{ site.siteName }}: Credits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + +
      +
      +
      + +
      +
      + +

      How to get Credits +

      + + +

      +The good thing about this server is that credits a free, yes, free. You won't have to spend a thing to get credits for building your favourite rooms. Just find out by using the methods below to receive credits. +

      +
        +
      • +

        Best Way

        +
          +
        • +
          +

          Be Online

          +

          Just by playing on the server daily you can receive coins!

          + + +
          +
          +

          Receive coins by being online
          You need to be in a room but every day, if you wait 5 minutes, you will recieve 120 credits just by being active.

          +

          This happens once every 24 hours, so if you do the same thing tomorrow, you'll get another 120 credits!

          +
          + +
        • +
        +
      • +
      • +

        Other Ways

        +
          + +
        • +
          +

          Vouchers

          +

          You can get special codes to redeem vouchers

          + + +
          +
          +

          Redeem your voucher code in your hotel purse, or on this page - and you will get your coins right away!

          +
          + +
        • +
        +
      • +
      • +

        Other Ways

        +
          + +
        • +
          +
          + Reset Hand + +
          +

          Reset Hand

          +

          Virtual hand too full of furniture? Click here to reset it.

          + + + {% if session.loggedIn %} + + {% else %} + + {% endif %} +
        • +
        +
      • +
      + + + + +
      + +
      + + + +
      +
      + +
      +
      + +

      Your purse

      + {% if session.loggedIn == false %} +
      You need to sign in to see the purse
      + {% else %} + +
      +
      + +
        +
      • +
        You Currently Have:
        + {{ playerDetails.credits }} Coins + +
      • + +
      • + +
        +
        Enter voucher code (without spaces):
        + + Enter +
        +
      • +
      +
      +
      +
      + {% endif %} + + + + +
      +
      + + +
      +
      + +

      What are {{ site.siteName }} Coins?

      + +
      +
      + +

      {{ site.siteName }} Coins are the Hotel's currency. You can use them to buy all kinds of things, from rubber ducks and sofas, to VIP membership, jukeboxes and teleports.

      +
      +

      All legitimate ways to get {{ site.siteName }} coins are to the left. Remember: {{ site.siteName }} coins are ALWAYS and always will be free.

      +
      + + +
      + +
      + + +
      +
      + +

      Always Ask Permission First! +

      +
      +

      Always ask permission from your parent or guardian before you buy Habbo Coins. If you do not do this and the payment is later canceled or declined, you will be permanently banned.

      +

      Uh-oh!

      +
      + + +
      +
      + + +
      + +
      +
      + +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/credits_history.tpl b/tools/www-tpl/default/credits_history.tpl new file mode 100644 index 0000000..6a6f47c --- /dev/null +++ b/tools/www-tpl/default/credits_history.tpl @@ -0,0 +1,241 @@ + + + + + + {{ site.siteName }}: Credits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} + +
      + + +
      +
      + +
      + +
      +
      + +

      Account transactions

      +
      + +
      +This is an overview of your credit transaction history. They are updated as soon as the transaction is made.
      + +
        + {% if canGoNext %} + + {% else %} + + {% endif %} + + +
      • {{ currentMonth }} {{ currentYear }}
      • +
      + + +

      +{% if transactions|length > 0 %} + + + + + + + + + + +{% autoescape 'html' %} +{% set num = 0 %} +{% for transaction in transactions %} + {% if num % 2 == 0 %} + + {% else %} + + {% endif %} + + + + + + {% set num = num + 1 %} +{% endfor %} +{% endautoescape %} +{% else %} +No transactions found. +{% endif %} + +
      DatePriceDescription
      {{ transaction.getFormattedDate() }}{{ transaction.getCostCoins() }}{{ transaction.getDescription() }}
      +

      + +
      + + +
      +
      + + + + +
      +
      +
      +
      + +

      Your purse

      + {% if session.loggedIn == false %} +
      You need to sign in to see the purse
      + {% else %} + +
      +
      + +
        +
      • +
        You Currently Have:
        + {{ playerDetails.credits }} Coins + +
      • + +
      • + +
        +
        Enter voucher code (without spaces):
        + + Enter +
        +
      • +
      +
      +
      +
      + {% endif %} + + + + +
      +
      + + +
      + + + + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      + +
      +{% include "base/footer.tpl" %} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/error.tpl b/tools/www-tpl/default/error.tpl new file mode 100644 index 0000000..e69de29 diff --git a/tools/www-tpl/default/faq.tpl b/tools/www-tpl/default/faq.tpl new file mode 100644 index 0000000..e9e9fe8 --- /dev/null +++ b/tools/www-tpl/default/faq.tpl @@ -0,0 +1,120 @@ + + + + + + {{ site.siteName }}: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +
      +

      +

      How do I contact {{ site.siteName }}?

      +
      +
      Please use the Help Tool to email us!
      +
      + +
      +
      + + +

      Will sending my issue twice get a faster reply?

      +
      +
      Sending more than one email will slow down the Player Support staff as they will have more emails to read through. If you have received no response after a week, check your spam/junk mail folder. If there is still no response, then there must have been a technical glitch and you should send your email again.
      +
      + +
      +
      + + + +
      + +
      + +
      +
      +
      +
      + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/games.tpl b/tools/www-tpl/default/games.tpl new file mode 100644 index 0000000..61f2d3c --- /dev/null +++ b/tools/www-tpl/default/games.tpl @@ -0,0 +1,217 @@ + + + + + {{ site.siteName }} ~ Games + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} + +{% include "base/header.tpl" %} +
      + + + +
      +
      +
      +
      +
      + +

      Recommended Games +

      + + + + + +
      +
      + + +
      +
      + +

      High Scores +

      +{% include "habblet/personalhighscores.tpl" %} + + + + +
      +
      + + +
      +
      +
      +
      + +

      Your Ticket To Excitement +

      +
      +
      + Game tickets cost 1 Coin for 2, or you can purchase 20 Tickets for 6 Coins. +
      +
      + + +
      +
      + + +
      +
      +

      Scoring

      +
      +
      +
      + +
      +
      + {% if viewMonthlyScores %} +

      The following results are scores earned month to month.

      +

      To view scores earned all time since game scoring has been collected, please click here.

      + {% else %} +

      The following results are scores earned all time.

      +

      To view scores earned month to month since game scoring has been collected, please click here.

      + {% endif %} +
      +
      +
      +
      +
      + + +
      + +
      +
      +
      + {% include "base/ads_container.tpl" %} +
      +
      + +
      + + +
      +{% include "base/footer.tpl" %} + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/groups.tpl b/tools/www-tpl/default/groups.tpl new file mode 100644 index 0000000..2c78c85 --- /dev/null +++ b/tools/www-tpl/default/groups.tpl @@ -0,0 +1,581 @@ + + + + + + {{ site.siteName }}: Group Home: {% autoescape 'html' %}{{ group.getName }}{% endautoescape %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if editMode %} + + +{% else %} + +{% endif %} + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + {% if editMode %} + + {% else %} + + {% endif %} +{% endif %} +{% include "base/header.tpl" %} + +
      + +{% if session.currentPage == "games" %} + +{% endif %} + +{% if session.currentPage == "community" %} + +{% endif %} + +
      +
      +
      +
      + {% if editMode %} + + {% else %} + {% if (session.loggedIn) and (group.hasAdministrator(playerDetails.getId())) %} + Edit + {% endif %} +
      + {% if session.loggedIn == false %} + + {% else %} + {% if (group.isPendingMember(playerDetails.getId()) == false) %} + {% if (group.isMember(playerDetails.getId()) == false) %} + {% if group.getGroupType() == 0 or group.getGroupType() == 3 %} + Join + {% elseif group.getGroupType() == 1 %} + Request membership + {% endif %} + + {% else %} + {% if group.getOwnerId() != playerDetails.getId() %} + Leave group + {% endif %} + + {% if groupMember.isFavourite(group.id) %} + Remove favorite + {% else %} + Make favorite + {% endif %} + {% endif %} + {% endif %} + {% endif %} +
      + {% endif %} + +

      + {% autoescape 'html' %} + {{ group.getName }} + {% endautoescape %} + {% if group.getGroupType() == 1 %}Exclusive group{% elseif group.getGroupType() == 2%}myhabbo.headerbar.closed_group{% endif %}

      + +
      +
      + {% if editMode %} + + + + {% endif %} +
      + {% if editMode %} +
      + {% else %} +
      + {% endif %} + + {% for sticker in stickers %} + {% if sticker.getProduct().data == "groupinfowidget" %} + {% include "homes/widget/group_info_widget.tpl" with {"sticker": sticker} %} + {% elseif sticker.getProduct().data == "guestbookwidget" %} + {% include "homes/widget/guestbook_widget.tpl" with {"sticker": sticker} %} + {% elseif sticker.getProduct().data == "stickienote" %} + {% include "homes/widget/note.tpl" with {"sticker": sticker} %} + {% elseif sticker.getProduct().data == "memberwidget" %} + {% include "homes/widget/member_widget.tpl" with {"sticker": sticker} %} + {% elseif sticker.getProduct().data == "traxplayerwidget" %} + {% include "homes/widget/trax_player_widget.tpl" with {"sticker": sticker} %} + {% else %} + {% include "homes/widget/sticker.tpl" with {"sticker": sticker} %} + {% endif %} + {% endfor %} + +
      + {% if editMode %} +
      + {% else %} +
      + {% endif %} + +
      +
      +
      +
      + +{% if editMode %} + + + +
      + +{% include "base/footer.tpl" %} + + + + + + + + + + + + +{% else %} + + + +
      +{% include "base/footer.tpl" %} +
      + +
      + + +
      +

      Edit Guestbook entry

      + + X +
      + +
      +
      +

      + Note: the message length must not exceed 200 characters +

      +
      + + + +
      +
      + + Habbos Rooms Groups
      + + Find +
      + + + +
      +
      + +
      + Cancel + Preview +
      + +
      +
      +
       
      +
      +
      +
      +

      Delete entry

      + + X +
      +
      + + +

      Are you sure you want to delete this entry?

      +

      + Cancel + Delete +

      +
      +
      +
      +
      +
      +
      +

      Edit group

      + +
        + {% if (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Modify page
      • + {% endif %} + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} +
      • Settings
      • Badge
      • + {% endif %} + {% if (group.getGroupType() != 3) and (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Members
      • + {% endif %} +
      + +
      +
      +
      + +
      + + + + X +
      +

      +
      +
      + +
      + + + + X +
      + +
      + +
      + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} + Give rights + Revoke rights{% endif %} + Remove + Close +
      +
      + +
      +
      + + + + + + + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussion.tpl b/tools/www-tpl/default/groups/discussion.tpl new file mode 100644 index 0000000..491bcba --- /dev/null +++ b/tools/www-tpl/default/groups/discussion.tpl @@ -0,0 +1,384 @@ + + + + + + {{ site.siteName }}: Group Home: {% autoescape 'html' %}{{ group.getName }}{% endautoescape %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} +{% include "../base/header.tpl" %} + +
      + + +
      + +
      +
      +
      +
      + {% if editMode %} + + {% else %} + {% if (session.loggedIn) and (group.hasAdministrator(playerDetails.getId())) %} + Edit + {% endif %} +
      + {% if session.loggedIn == false %} + + + {% else %} + {% if (group.isPendingMember(playerDetails.getId()) == false) %} + {% if (group.isMember(playerDetails.getId()) == false) %} + {% if group.getGroupType() == 0 or group.getGroupType() == 3 %} + Join + {% elseif group.getGroupType() == 1 %} + Request membership + {% endif %} + + + {% else %} + {% if group.getOwnerId() != playerDetails.getId() %} + Leave group + {% endif %} + + {% if groupMember.isFavourite(group.id) %} + Remove favorite + {% else %} + Make favorite + {% endif %} + {% endif %} + {% endif %} + {% endif %} +
      + {% endif %} + +

      + {% autoescape 'html' %} + {{ group.getName }} + {% endautoescape %} + {% if group.getGroupType() == 1 %}Exclusive group{% elseif group.getGroupType() == 2%}myhabbo.headerbar.closed_group{% endif %}

      + +
      +
      + + + + + + + +
      +
      +
      + +{% include "groups/discussion_replies.tpl" %} +
      +
      + +
      + + +
      +
      +
      + +
      + + + +
      +{% include "../base/footer.tpl" %} +
      + +
      + + +
      +

      Edit Guestbook entry

      + + X +
      + +
      +
      +

      + Note: the message length must not exceed 200 characters +

      +
      + + + +
      +
      + + Habbos Rooms Groups
      + + Find +
      + + + +
      +
      + +
      + Cancel + Preview +
      + +
      +
      +
       
      +
      +
      +
      +

      Delete entry

      + + X +
      +
      + + +

      Are you sure you want to delete this entry?

      +

      + Cancel + Delete +

      +
      +
      +
      +
      +
      +
      +

      Edit group

      + +
        + {% if (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Modify page
      • + {% endif %} + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} +
      • Settings
      • Badge
      • + {% endif %} + {% if (group.getGroupType() != 3) and (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Members
      • + {% endif %} +
      + +
      +
      +
      + +
      + + + + X +
      +

      +
      +
      + +
      + + + + X +
      + +
      + +
      + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} + Give rights + Revoke rights{% endif %} + Remove + Close +
      +
      + +
      +
      +
      +

      Confirm email address

      + + + X +
      +

      You need to confirm your email before you can post new messages.

      +

      Activate your email

      +

      + OK +

      + +
      +
      +
      +

      Delete discussion

      + + X +
      +
      + +

      Are you sure you want to delete this post?

      +

      + Cancel + Delete +

      +
      +
      +
      + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussion_replies.tpl b/tools/www-tpl/default/groups/discussion_replies.tpl new file mode 100644 index 0000000..49b894f --- /dev/null +++ b/tools/www-tpl/default/groups/discussion_replies.tpl @@ -0,0 +1,331 @@ +{% if hasMessage == false %} +
      + {% if discussionTopic.isOpen() == false %} + Closed Thread + {% endif %} + {% if canReplyForum %} + Post Reply + {% endif %} + {% if (session.loggedIn) and ((playerDetails.id == discussionTopic.getCreatorId()) or hasTopicAdmin) %} + Edit Thread » + {% endif %} + + +
      + View page: + {% if currentPage != 1 %} + << + {% endif %} + + {% if previousPage5 != -1 %} + {{ previousPage5 }} + {% endif %} + + {% if previousPage4 != -1 %} + {{ previousPage4 }} + {% endif %} + + {% if previousPage3 != -1 %} + {{ previousPage3 }} + {% endif %} + + {% if previousPage2 != -1 %} + {{ previousPage2 }} + {% endif %} + + {% if previousPage1 != -1 %} + {{ previousPage1 }} + {% endif %} + {{ currentPage }} + {% if nextPage1 != -1 %} + {{ nextPage1 }} + {% endif %} + + {% if nextPage2 != -1 %} + {{ nextPage2 }} + {% endif %} + + {% if nextPage3 != -1 %} + {{ nextPage3 }} + {% endif %} + + {% if nextPage4 != -1 %} + {{ nextPage4 }} + {% endif %} + + {% if nextPage5 != -1 %} + {{ nextPage5 }} + {% endif %} + + {% if pages != currentPage %} + >> + {% endif %} +
      +
      +{% endif %} + +{% if hasMessage %} +
      +
      + +

      Oops!

      + +

      + {{ message }}
      +

      + +
      +
      +{% else %} +{% set num = 0 %} +{% for reply in replyList %} + {% if num % 2 == 0 %} + + {% else %} + + {% endif %} + + + + +{% set num = num + 1 %} +{% endfor %} + + + + + + + + + + +{% endif %} +
      + {{ reply.getUsername() }} + + {% if reply.isOnline() %} + online_anim + {% else %} + online_anim + {% endif %} +
      Messages: {{ reply.getForumMessages() }}
      +
      +
      +
      + {% if reply.hasGroupBadge() %} + + +
      + {% endif %} + {% if reply.hasBadge() %} +
      + +
      + {% endif %} +
      +
      +
      + {% if (session.loggedIn) and + (discussionTopic.isOpen()) and + ((playerDetails.id != reply.getUserId()) or hasTopicAdmin) and + (reply.isDeleted() == false) %} + Quote + {% endif %} + + {% if (session.loggedIn) and + (discussionTopic.isOpen()) and + (playerDetails.id == reply.getUserId()) and + (reply.isDeleted() == false) %} + Edit + {% endif %} + + {% autoescape 'html' %}{% if reply.getId() != firstReply %}RE: {% endif %}{{ discussionTopic.getTopicTitle() }}{% endautoescape %}
      + {{ reply.getCreatedDate('MMM dd, yyyy') }} ({{ reply.getCreatedDate('h:mm a') }}) + {% if reply.isDeleted() == false %} + {% if ((session.loggedIn) and (playerDetails.id != reply.getUserId())) %} +
      + +
      + {% endif %} + + {% if ((session.loggedIn) and (playerDetails.id != reply.getUserId()) or (discussionTopic.isOpen())) or (hasTopicAdmin) %} + {% endif %} + + {% if ((session.loggedIn) and (playerDetails.id == reply.getUserId())) or (hasTopicAdmin) %} +
      + + +
      + {% endif %} + {% endif %} +
      + + {% if reply.isEdited() or reply.isDeleted() %} + Last edited: {{ reply.getEditedDate('MMM dd, yyyy') }} ({{ reply.getEditedDate('h:mm a') }}) +
      + {% endif %} + {%if reply.isDeleted() %}[Post deleted]{% else %}{{ reply.getFormattedMessage() }}{% endif %} +
      +
      +
      + +
      + +
      +
      + {% if hasMessage == false %} + + + + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussions/confirm_delete_topic.tpl b/tools/www-tpl/default/groups/discussions/confirm_delete_topic.tpl new file mode 100644 index 0000000..5dceb51 --- /dev/null +++ b/tools/www-tpl/default/groups/discussions/confirm_delete_topic.tpl @@ -0,0 +1,8 @@ +

      You are about to delete a topic are you sure?

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussions/newpost.tpl b/tools/www-tpl/default/groups/discussions/newpost.tpl new file mode 100644 index 0000000..611449d --- /dev/null +++ b/tools/www-tpl/default/groups/discussions/newpost.tpl @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      + diff --git a/tools/www-tpl/default/groups/discussions/opentopicsettings.tpl b/tools/www-tpl/default/groups/discussions/opentopicsettings.tpl new file mode 100644 index 0000000..c5989d2 --- /dev/null +++ b/tools/www-tpl/default/groups/discussions/opentopicsettings.tpl @@ -0,0 +1,32 @@ +
      +
      +
      + Topic: (max 32 characters) +
      +
      + +
      +
      +
      +
      +
      +
      + Type: +
      +
      + Open +
      + Normal
      +
      + Closed +
      + Sticky thread
      +
      +
      +
      +
      + Cancel + Delete Ok +
      +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussions/previewpost.tpl b/tools/www-tpl/default/groups/discussions/previewpost.tpl new file mode 100644 index 0000000..6aef0d8 --- /dev/null +++ b/tools/www-tpl/default/groups/discussions/previewpost.tpl @@ -0,0 +1,44 @@ + + + + + +
      + {{ playerDetails.getName() }} + {% if playerDetails.isOnline %} + online_anim + {% else %} + online_anim + {% endif %} +
      Messages: {{ userReplies }}
      +
      +
      + +
      + {% if hasGroup %} +
      +
      + {% endif %} + {% if hasBadge %} +
      + +
      + {% endif %} +
      +
      + {{ playerDetails.motto }}
      +
      + « Edit + {% autoescape 'html' %}{{ postName }}{% endautoescape %}
      + {{ previewDay }} ({{ previewTime }}) +
      +
      +
      + {{ postMessage }}
      +
      +
      + Cancel + Save +
      +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/discussions/previewtopic.tpl b/tools/www-tpl/default/groups/discussions/previewtopic.tpl new file mode 100644 index 0000000..5411895 --- /dev/null +++ b/tools/www-tpl/default/groups/discussions/previewtopic.tpl @@ -0,0 +1,44 @@ + + + + + +
      + {{ playerDetails.getName() }} + {% if playerDetails.isOnline %} + online_anim + {% else %} + online_anim + {% endif %} +
      Messages: {{ userReplies }}
      +
      +
      + +
      + {% if hasGroup %} +
      +
      + {% endif %} + {% if hasBadge %} +
      + +
      + {% endif %} +
      +
      + {{ playerDetails.motto }}
      +
      + « Edit + {% autoescape 'html' %}{{ topicName }}{% endautoescape %}
      + {{ previewDay }} ({{ previewTime }}) +
      +
      +
      + {{ topicMessage }}
      +
      +
      + Cancel + Save +
      +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/favourite/confirm_deselect_favourite.tpl b/tools/www-tpl/default/groups/favourite/confirm_deselect_favourite.tpl new file mode 100644 index 0000000..3c4aa62 --- /dev/null +++ b/tools/www-tpl/default/groups/favourite/confirm_deselect_favourite.tpl @@ -0,0 +1,10 @@ +

      +Are you sure you dont want to have this Group as your favorite Group anymore?

      + + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/favourite/confirm_select_favourite.tpl b/tools/www-tpl/default/groups/favourite/confirm_select_favourite.tpl new file mode 100644 index 0000000..0509ce3 --- /dev/null +++ b/tools/www-tpl/default/groups/favourite/confirm_select_favourite.tpl @@ -0,0 +1,10 @@ +

      +Are you sure you want to have {{ groupName }} as your favorite Group?

      + + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/check_group_url.tpl b/tools/www-tpl/default/groups/habblet/check_group_url.tpl new file mode 100644 index 0000000..c23e356 --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/check_group_url.tpl @@ -0,0 +1 @@ +Your group alias will be {{ site.sitePath }}/groups/{{ url }}. You can not alter it later on. \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/confirm_delete_group.tpl b/tools/www-tpl/default/groups/habblet/confirm_delete_group.tpl new file mode 100644 index 0000000..ec43bd3 --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/confirm_delete_group.tpl @@ -0,0 +1,10 @@ +

      +Are you sure you want to delete the group {{ group.getName() }}? +

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/delete_group.tpl b/tools/www-tpl/default/groups/habblet/delete_group.tpl new file mode 100644 index 0000000..de7700f --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/delete_group.tpl @@ -0,0 +1,7 @@ +

      +The group has been deleted successfully.

      +

      +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/group_create_form.tpl b/tools/www-tpl/default/groups/habblet/group_create_form.tpl new file mode 100644 index 0000000..125cbbd --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/group_create_form.tpl @@ -0,0 +1,29 @@ +
      + +
      + +

      +Price: {{ groupCost }} Credits.
      You have: {{ playerDetails.credits }} Credits. +

      + +
      + +
      +
      + +
      +
      + +
      +
      + + +
      + +
      +
      + + diff --git a/tools/www-tpl/default/groups/habblet/group_settings.tpl b/tools/www-tpl/default/groups/habblet/group_settings.tpl new file mode 100644 index 0000000..990430a --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/group_settings.tpl @@ -0,0 +1,182 @@ +
      + +
      +
      + +
      +
      +
      + +
      +
      + +
      +
      +
      + + {% if group.getAlias() == "" %} +
      + + {% else %} + /groups/{{ group.getAlias() }}
      + + + {% endif %} + +
      +
      + +
      +
      + + + + + + +
      +
      +
      + {% if group.getGroupType() == 3 %} + + +
      +
      Regular
      +

      Anyone can join. 5000 member limit.

      +
      + +
      +
      Exclusive
      +

      Group Admin controls who can join.

      +
      + +
      +
      Private
      +

      No one can join.

      +
      + +
      +
      Unlimited
      +

      Anyone can join. No membership limit. Unable to browse members.

      +

      Note: If you choose this option you can't change it later!

      +
      + + {% else %} + + +
      +
      Regular
      +

      Anyone can join. 5000 member limit.

      +
      + +
      +
      Exclusive
      +

      Group Admin controls who can join.

      +
      + +
      +
      Private
      +

      No one can join.

      +
      + +
      +
      Unlimited
      +

      Anyone can join. No membership limit. Unable to browse members.

      +

      Note: If you choose this option you can't change it later!

      +
      + + {% endif %} +
      +
      + + + + + + + + +
      + + +
      + + diff --git a/tools/www-tpl/default/groups/habblet/listgrouptags.tpl b/tools/www-tpl/default/groups/habblet/listgrouptags.tpl new file mode 100644 index 0000000..bb05a44 --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/listgrouptags.tpl @@ -0,0 +1,31 @@ +
      +{% if (tags|length) == 0 %} +No tags. +{% else %} + {% for tag in tags %} + + {% autoescape 'html' %} + {{ tag }} + {% endautoescape %} + {% if (session.loggedIn) and (group.getOwnerId() == playerDetails.id) %} + + {% else %} + + {% endif %} + + {% endfor %} +{% endif %} +
      + +{% if session.loggedIn %} + {% if group.getOwnerId() == playerDetails.getId() %} + + {% endif %} +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/purchase_ajax.tpl b/tools/www-tpl/default/groups/habblet/purchase_ajax.tpl new file mode 100644 index 0000000..f31e298 --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/purchase_ajax.tpl @@ -0,0 +1,20 @@ + + +

      +Congratulations: You are the proud owner of {{ groupName }} +

      + +

      + +

      + +

      + + \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/purchase_confirmation.tpl b/tools/www-tpl/default/groups/habblet/purchase_confirmation.tpl new file mode 100644 index 0000000..3d344ab --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/purchase_confirmation.tpl @@ -0,0 +1,16 @@ + + + + +

      +Group name: {{ groupName }}.
      Price: {{ groupCost }} Credits.
      You have: {{ playerDetails.credits }} Credits. +

      + +
      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/purchase_result_error.tpl b/tools/www-tpl/default/groups/habblet/purchase_result_error.tpl new file mode 100644 index 0000000..7e0739d --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/purchase_result_error.tpl @@ -0,0 +1,12 @@ +

      Purchase of a Group failed. Please try again later

      +
      +

      + You don't have enough Credits.
      +

      +
      + +

      +Done +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/show_badge_editor.tpl b/tools/www-tpl/default/groups/habblet/show_badge_editor.tpl new file mode 100644 index 0000000..2233b8f --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/show_badge_editor.tpl @@ -0,0 +1,17 @@ +
      +

      Adobe Flash player is required.

      +

      Click here to install Adobe Flash player.

      +
      + \ No newline at end of file diff --git a/tools/www-tpl/default/groups/habblet/update_group_settings.tpl b/tools/www-tpl/default/groups/habblet/update_group_settings.tpl new file mode 100644 index 0000000..fce6895 --- /dev/null +++ b/tools/www-tpl/default/groups/habblet/update_group_settings.tpl @@ -0,0 +1,6 @@ +{{ message }} +

      +Done +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_accept.tpl b/tools/www-tpl/default/groups/member/confirm_accept.tpl new file mode 100644 index 0000000..a398b5d --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_accept.tpl @@ -0,0 +1,9 @@ +

      +Accept new members into: {{ groupName }}

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_decline.tpl b/tools/www-tpl/default/groups/member/confirm_decline.tpl new file mode 100644 index 0000000..a225a5e --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_decline.tpl @@ -0,0 +1,9 @@ +

      +Are you sure you want to reject the member requests of the selected {{ targetIds }} {{ site.siteName}}(s)?

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_give_rights.tpl b/tools/www-tpl/default/groups/member/confirm_give_rights.tpl new file mode 100644 index 0000000..fdb30ad --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_give_rights.tpl @@ -0,0 +1,9 @@ +

      +Are you sure you want to give admin rights to the selected {{ targetIds }} member(s)?

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_leave.tpl b/tools/www-tpl/default/groups/member/confirm_leave.tpl new file mode 100644 index 0000000..d380f44 --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_leave.tpl @@ -0,0 +1,10 @@ +

      +Are you sure you want to leave this group?

      + + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_remove.tpl b/tools/www-tpl/default/groups/member/confirm_remove.tpl new file mode 100644 index 0000000..0aee794 --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_remove.tpl @@ -0,0 +1,9 @@ +

      +Are you sure you want to remove the selected {{ targetIds }} member(s)?

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/confirm_revoke_rights.tpl b/tools/www-tpl/default/groups/member/confirm_revoke_rights.tpl new file mode 100644 index 0000000..f6b5fc1 --- /dev/null +++ b/tools/www-tpl/default/groups/member/confirm_revoke_rights.tpl @@ -0,0 +1,9 @@ +

      +Are you sure you want to remove admin rights from the selected {{ targetIds }}

      + +

      +Cancel +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/leave.tpl b/tools/www-tpl/default/groups/member/leave.tpl new file mode 100644 index 0000000..b430a4c --- /dev/null +++ b/tools/www-tpl/default/groups/member/leave.tpl @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/member_added.tpl b/tools/www-tpl/default/groups/member/member_added.tpl new file mode 100644 index 0000000..5fa25da --- /dev/null +++ b/tools/www-tpl/default/groups/member/member_added.tpl @@ -0,0 +1,8 @@ +

      +You have now joined this group

      + +

      +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/member/member_added_request.tpl b/tools/www-tpl/default/groups/member/member_added_request.tpl new file mode 100644 index 0000000..9a46da2 --- /dev/null +++ b/tools/www-tpl/default/groups/member/member_added_request.tpl @@ -0,0 +1,8 @@ +

      +Your membership request has been sent.

      + +

      +Ok +

      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/memberlist.tpl b/tools/www-tpl/default/groups/memberlist.tpl new file mode 100644 index 0000000..a5e37d6 --- /dev/null +++ b/tools/www-tpl/default/groups/memberlist.tpl @@ -0,0 +1,97 @@ +
      + +
      +
        + +{% set firstPage = -1 %} +{% set previousPage = -1 %} +{% set nextPage = -1 %} +{% set lastPage = -1 %} + +{% if currentPage >= 2 %} + {% set firstPage = 1 %} +{% endif %} + +{% if currentPage > 1 %} + {% set previousPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 1) %} + {% set nextPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 2) %} + {% set lastPage = 1 %} +{% endif %} + +{% set position = "right" %} + +{% set i = 0 %} +{% set lefts = 0 %} +{% set rights = 0 %} +{% for member in memberList %} + {% if i % 2 == 0 %} + {% set position = "right" %} + {% set rights = rights + 1 %} + {% else %} + {% set position = "left" %} + {% set lefts = lefts + 1 %} + {% endif %} + + {% if lefts % 2 == 0 %} + {% set status = "even" %} + {% else %} + {% set status = "odd" %} + {% endif %} + +
      • +
        +
        + {% if member.getMemberRank().getRankId() == 3 %} + + {% endif %} + {% if member.getMemberRank().getRankId() == 2 %} + Administrator + {% endif %} +
        + {% if (selfMember.getMemberRank().getRankId() <= member.getMemberRank().getRankId()) and (selfMember.getMemberRank().getRankId() >= 2) %} + + {% else %} + {% if member.getMemberRank().getRankId() == 2 %} + + {% elseif member.getMemberRank().getRankId() == 1 %} + + {% endif %} + {% endif %} + + {{ member.getUser().getName() }} +
        +
      • + + {% set i = i + 1 %} +{% endfor %} + +
      + +
      +
      +{{ memberList|length }} - {{ currentPage }} / {{ pages }} +
      +
      + {% if (firstPage != -1) or (previousPage != -1) %} + First | + << | + {% else %} + First | << | + {% endif %} + + {% if (lastPage != -1) or (nextPage != -1) %} + >> | + Last + {% else %} + >> | Last + {% endif %} + + +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/groups/view_discussions.tpl b/tools/www-tpl/default/groups/view_discussions.tpl new file mode 100644 index 0000000..7d2cf3e --- /dev/null +++ b/tools/www-tpl/default/groups/view_discussions.tpl @@ -0,0 +1,537 @@ + + + + + + {{ site.siteName }}: Group Home: {% autoescape 'html' %}{{ group.getName }}{% endautoescape %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + +{% endif %} +{% include "../base/header.tpl" %} + +
      + + + +
      +
      +
      +
      + {% if editMode %} + + {% else %} + {% if (session.loggedIn) and (group.hasAdministrator(playerDetails.getId())) %} + Edit + {% endif %} +
      + {% if session.loggedIn == false %} + + {% else %} + {% if (group.isPendingMember(playerDetails.getId()) == false) %} + {% if (group.isMember(playerDetails.getId()) == false) %} + {% if group.getGroupType() == 0 or group.getGroupType() == 3 %} + Join + {% elseif group.getGroupType() == 1 %} + Request membership + {% endif %} + + {% else %} + {% if group.getOwnerId() != playerDetails.getId() %} + Leave group + {% endif %} + + {% if groupMember.isFavourite(group.id) %} + Remove favorite + {% else %} + Make favorite + {% endif %} + {% endif %} + {% endif %} + {% endif %} +
      + {% endif %} + +

      + {% autoescape 'html' %} + {{ group.getName }} + {% endautoescape %} + {% if group.getGroupType() == 1 %}Exclusive group{% elseif group.getGroupType() == 2%}myhabbo.headerbar.closed_group{% endif %}

      + +
      +
      + + + + + + +
      +
      + {% if (canViewForum == false) %} +
      + +

      Oops!

      + +

      + View forums denied. Please check that you are logged in and have the appropriate rights to view the forums. If you are logged in and still can't view the forums, the group may be private. If so, you need to join the group in order to view the forums. +
      +

      + +
      +{% else %} + +
      + +
      + {% if session.loggedIn == false %} + Please sign in to post new threads + {% elseif canPostForum %} + + New Thread + {% endif %} +
      + View page: +{% if currentPage != 1 %} +<< +{% endif %} + +{% if previousPage5 != -1 %} +{{ previousPage5 }} +{% endif %} + +{% if previousPage4 != -1 %} +{{ previousPage4 }} +{% endif %} + +{% if previousPage3 != -1 %} +{{ previousPage3 }} +{% endif %} + +{% if previousPage2 != -1 %} +{{ previousPage2 }} +{% endif %} + +{% if previousPage1 != -1 %} +{{ previousPage1 }} +{% endif %} +{{ currentPage }} +{% if nextPage1 != -1 %} +{{ nextPage1 }} +{% endif %} + +{% if nextPage2 != -1 %} +{{ nextPage2 }} +{% endif %} + +{% if nextPage3 != -1 %} +{{ nextPage3 }} +{% endif %} + +{% if nextPage4 != -1 %} +{{ nextPage4 }} +{% endif %} + +{% if nextPage5 != -1 %} +{{ nextPage5 }} +{% endif %} + +{% if pages != currentPage %} +>> +{% endif %} +
      +
      + + + + + + + +{% set num = 0 %} +{% for topic in discussionTopics %} + {% if num % 2 == 0 %} + + {% else %} + + {% endif %} + + + + + + {% set num = num + 1 %} +{% endfor %} +
      Thread and First PosterLast PostRepliesViews
      +
      + + {% autoescape 'html' %}{{ topic.getTopicTitle }}{% endautoescape %} + + {% if topic.isOpen() == false %} + Closed Thread + {% endif %} + + (page + 1 + {% if topic.getRecentPages()|length > 0 %} + ... + {% endif %} + {% for page in topic.getRecentPages() %} + {{ page }} + {% endfor %}) +
      + {{ topic.getCreatorName() }} + + {{ topic.getCreatedDate('MMM dd, yyyy') }} + ({{ topic.getCreatedDate('h:mm a') }}) + {% if (session.loggedIn) and (topic.isNew()) %} + NEW NEW{% endif %}
      + + +
      + + {{ topic.getLastMessage('MMM dd, yyyy') }} + ({{ topic.getLastMessage('h:mm a') }})
      + by: {{ topic.getLastReplyName() }} + +
      {{ topic.getReplyCount() - 1 }}{{ topic.getViews() }}
      + +
      + + +{% endif %} +
      + +
      + + +
      +
      +
      +
      +
      + + + +
      +{% include "../base/footer.tpl" %} +
      + +
      + + +
      +

      Edit Guestbook entry

      + + X +
      + +
      +
      +

      + Note: the message length must not exceed 200 characters +

      +
      + + + +
      +
      + + Habbos Rooms Groups
      + + Find +
      + + + +
      +
      + +
      + Cancel + Preview +
      + +
      +
      +
       
      +
      +
      +
      +

      Delete entry

      + + X +
      +
      + + +

      Are you sure you want to delete this entry?

      +

      + Cancel + Delete +

      +
      +
      +
      +
      +
      +
      +

      Edit group

      + +
        + {% if (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Modify page
      • + {% endif %} + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} +
      • Settings
      • Badge
      • + {% endif %} + {% if (group.getGroupType() != 3) and (hasMember and groupMember.getMemberRank().getRankId() >= 2) %} +
      • Members
      • + {% endif %} +
      + +
      +
      +
      + +
      + + + + X +
      +

      +
      +
      + +
      + + + + X +
      + +
      + +
      + {% if (hasMember and groupMember.getMemberRank().getRankId() == 3) %} + Give rights + Revoke rights{% endif %} + Remove + Close +
      +
      + +
      +
      + + + + + + diff --git a/tools/www-tpl/default/habblet/collectiblesConfirm.tpl b/tools/www-tpl/default/habblet/collectiblesConfirm.tpl new file mode 100644 index 0000000..79b93ef --- /dev/null +++ b/tools/www-tpl/default/habblet/collectiblesConfirm.tpl @@ -0,0 +1,8 @@ +

      +Are you sure you want to purchase {{ collectableName }}? It will cost {{ collectableCost }} credits. +

      + +

      +Purchase +Close +

      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/collectiblesPurchase.tpl b/tools/www-tpl/default/habblet/collectiblesPurchase.tpl new file mode 100644 index 0000000..9f07f56 --- /dev/null +++ b/tools/www-tpl/default/habblet/collectiblesPurchase.tpl @@ -0,0 +1,8 @@ +

      +{{ message }}. +

      + + +

      +OK +

      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/community_hot_groups.tpl b/tools/www-tpl/default/habblet/community_hot_groups.tpl new file mode 100644 index 0000000..88e26d7 --- /dev/null +++ b/tools/www-tpl/default/habblet/community_hot_groups.tpl @@ -0,0 +1,62 @@ + + + +
      +
        + {% set position = "right" %} + + {% set i = 0 %} + {% set lefts = 0 %} + {% set rights = 0 %} + {% for group in hotGroups %} + {% if i % 2 == 0 %} + {% set position = "right" %} + {% set rights = rights + 1 %} + {% else %} + {% set position = "left" %} + {% set lefts = lefts + 1 %} + {% endif %} + + {% if lefts % 2 == 0 %} + {% set status = "odd" %} + {% else %} + {% set status = "even" %} + {% endif %} +
      • + {{ i + 1}}. {% autoescape 'html' %}{{ group.name }}{% endautoescape %} +
      • + {% set i = i + 1 %} + {% endfor %} +
      + + + +
      diff --git a/tools/www-tpl/default/habblet/habboClubConfirm.tpl b/tools/www-tpl/default/habblet/habboClubConfirm.tpl new file mode 100644 index 0000000..eac02fb --- /dev/null +++ b/tools/www-tpl/default/habblet/habboClubConfirm.tpl @@ -0,0 +1,16 @@ +
      + + +

      Confirmation

      +

      {{ clubMonths }} {{ site.siteName }} Club month ({{ clubDays }} days) costs {{ clubCredits }} Coins. You Currently Have: {{ playerDetails.credits }} Coins.

      + +

      + +Cancel + +Ok +

      + +
      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/habboClubEnddate.tpl b/tools/www-tpl/default/habblet/habboClubEnddate.tpl new file mode 100644 index 0000000..c4df7b2 --- /dev/null +++ b/tools/www-tpl/default/habblet/habboClubEnddate.tpl @@ -0,0 +1,12 @@ +{% if session.loggedIn %} + +

      +{% if playerDetails.hasClubSubscription() %} +You have {{ hcDays }} {{ site.siteName }} Club day(s) left. +{% else %} +You are not a member of {{ site.siteName }} Club + +{% endif %} +

      + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/habboClubSubscribe.tpl b/tools/www-tpl/default/habblet/habboClubSubscribe.tpl new file mode 100644 index 0000000..f4901dd --- /dev/null +++ b/tools/www-tpl/default/habblet/habboClubSubscribe.tpl @@ -0,0 +1,14 @@ +
      + + +

      Subscribe

      +

      {{ subscribeMsg }}

      + +

      + +Ok +

      + +
      + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/habboclubgift.tpl b/tools/www-tpl/default/habblet/habboclubgift.tpl new file mode 100644 index 0000000..93c6086 --- /dev/null +++ b/tools/www-tpl/default/habblet/habboclubgift.tpl @@ -0,0 +1,67 @@ +
      +
      + {% if currentPage != 1 %} +
      + << +
      + {% else %} +
      + << +
      + {% endif %} + + {% if currentPage != 1 %} +
      + Previous +
      + {% else %} +
      + Previous +
      + {% endif %} + + {% for page in pages %} + {% if page == currentPage %} +
      + {{ currentPage }} +
      + + {% else %} + + {% endif %} + {% endfor %} + + {% if currentPage != lastPage %} +
      + Next +
      + {% else %} +
      + Next +
      + {% endif %} + + {% if currentPage == lastPage %} + >> + {% else %} +
      + >> +
      + {% endif %} +
      +
      +
      +
      + #{{ currentPage }} +
      +
      +
      + {{ item.getName() }} +
      +
      +
      + {{ item.getName() }} +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/hot_groups.tpl b/tools/www-tpl/default/habblet/hot_groups.tpl new file mode 100644 index 0000000..2d4b89d --- /dev/null +++ b/tools/www-tpl/default/habblet/hot_groups.tpl @@ -0,0 +1,45 @@ +
      + + +
        + {% set position = "right" %} + + {% set i = 0 %} + {% set lefts = 0 %} + {% set rights = 0 %} + {% for group in groups %} + {% if i % 2 == 0 %} + {% set position = "right" %} + {% set rights = rights + 1 %} + {% else %} + {% set position = "left" %} + {% set lefts = lefts + 1 %} + {% endif %} + + {% if lefts % 2 == 0 %} + {% set status = "odd" %} + {% else %} + {% set status = "even" %} + {% endif %} +
      • + {% autoescape 'html' %}{{ group.name }}{% endautoescape %} +
      • + {% set i = i + 1 %} + {% endfor %} +
      + + +
      + +
      + + + + + + + +
      diff --git a/tools/www-tpl/default/habblet/invite_addFriend.tpl b/tools/www-tpl/default/habblet/invite_addFriend.tpl new file mode 100644 index 0000000..314caf2 --- /dev/null +++ b/tools/www-tpl/default/habblet/invite_addFriend.tpl @@ -0,0 +1,8 @@ +
        +
      • {{ message }}
      • +
      + + +

      +Done +

      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/invite_confirmAddFriend.tpl b/tools/www-tpl/default/habblet/invite_confirmAddFriend.tpl new file mode 100644 index 0000000..0d2a8b4 --- /dev/null +++ b/tools/www-tpl/default/habblet/invite_confirmAddFriend.tpl @@ -0,0 +1,6 @@ +

      +Are you sure you want to add {{ username }} to your friend list?

      + +

      +Cancel +Continue

      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/invite_referralLink.tpl b/tools/www-tpl/default/habblet/invite_referralLink.tpl new file mode 100644 index 0000000..e19fb1d --- /dev/null +++ b/tools/www-tpl/default/habblet/invite_referralLink.tpl @@ -0,0 +1,9 @@ +

      Enjoy {{ site.siteName }} more with real life friends!

      + +
      + +

      Send this link to your friend via email or chat. If they are using {{ site.siteName }} in active way you get rewarded with a badge.

      + + + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/invite_searchContent.tpl b/tools/www-tpl/default/habblet/invite_searchContent.tpl new file mode 100644 index 0000000..1b412a5 --- /dev/null +++ b/tools/www-tpl/default/habblet/invite_searchContent.tpl @@ -0,0 +1,42 @@ + {% if searchResults|length > 0 %} +
        + {% set num = 0 %} + {% for details in searchResults %} + {% if num % 2 == 0 %}
      • +
        + {{ details.getName() }}
        + +
        + +
        + Last visit
        + {{ details.getFormattedLastOnline().toUpperCase() }} +
        +
        + {% if messenger.hasFriend(details.id) == false %} + + {% endif %} +
        +
        +
      • + {% set num = num + 1 %} + {% endfor %} +
      +
      +

      + « + {% if previousPageId > 0 %} + {{ previousPageId }} + {% endif %} + {{ currentPage }} + {% if nextPageId > 0 %} + {{ nextPageId }} + {% endif %} + » +

      + + +
      + {% else %} +
      {{ site.siteName }} not found. Please make sure you have typed his or her name correctly and try again.
      + {% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/load_events.tpl b/tools/www-tpl/default/habblet/load_events.tpl new file mode 100644 index 0000000..8ffafb4 --- /dev/null +++ b/tools/www-tpl/default/habblet/load_events.tpl @@ -0,0 +1,42 @@ +
        +{% set num = 0 %} +{% for event in events %} + {% set listClass = "" %} + + {% if num % 2 == 0 %} + {% set listClass = "even" %} + {% else %} + {% set listClass = "odd" %} + {% endif %} + + {% set roomData = event.getRoomData() %} + {% set creator = event.getUserInfo().getName() %} + + {% set occupancyLevel = 1 %} + {% if roomData.getVisitorsNow() > 0 %} + + {% set percentage = ((roomData.getVisitorsNow() / roomData.getVisitorsMax()) * 100) %} + + {% if (percentage >= 99) %} + {% set occupancyLevel = 5 %} + {% elseif (percentage > 65) %} + {% set occupancyLevel = 4 %} + {% elseif (percentage > 32) %} + {% set occupancyLevel = 3 %} + {% elseif (percentage > 0) %} + {% set occupancyLevel = 2 %} + {% endif %} + + {% endif %} + + {% autoescape 'html' %}
      • +
        + {{ event.getName() }} + by {{ creator }} +

        {{ event.getDescription() }} ({{ event.getFriendlyDate() }})

        +
        +
      • {% endautoescape %} + {% set num = num + 1 %} +{% endfor %} + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/minimail.tpl b/tools/www-tpl/default/habblet/minimail.tpl new file mode 100644 index 0000000..f10ca27 --- /dev/null +++ b/tools/www-tpl/default/habblet/minimail.tpl @@ -0,0 +1,44 @@ +
      +
      +
      +

      Minimail +

      + + + +
      +
      +{% include "habblet/minimail/minimail_messages.tpl" %} + +
      +
      + +
      + + +
      +
      +
      + + \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/minimail/minimail_load_message.tpl b/tools/www-tpl/default/habblet/minimail/minimail_load_message.tpl new file mode 100644 index 0000000..bf55493 --- /dev/null +++ b/tools/www-tpl/default/habblet/minimail/minimail_load_message.tpl @@ -0,0 +1,34 @@ +
        +
      • +
      • Subject: {{ minimailMessage.getFormattedSubject() }}
      • +
      • From: {{ minimailMessage.getAuthor().getName() }}
      • +
      • To: {{ minimailMessage.getTarget().getName() }}
      • + +
      +
      {{ minimailMessage.getFormattedMessage() }}
      +
      +
      +
      + {% if minimailMessage.getConversationId() > 0 %} + + {% endif %} + {% if (minimailLabel == "inbox") or (minimailLabel == "sent") %} + Delete + Reply + {% endif %} + {% if minimailLabel == "trash" %} + Undelete + Delete + {% endif %} +
      +
      +
      +
      +
      + Cancel + Preview + + Send +
      +
      +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/minimail/minimail_messages.tpl b/tools/www-tpl/default/habblet/minimail/minimail_messages.tpl new file mode 100644 index 0000000..1b1c318 --- /dev/null +++ b/tools/www-tpl/default/habblet/minimail/minimail_messages.tpl @@ -0,0 +1,88 @@ + {% if minimailClient == false %}Compose{% endif %} +
      + + +
      +
      +
      + +
      + +
      + {% if minimailLabel == "conversation" %} +
      + You are reading a conversation. Click the tabs above to go back to your folders. +
      + {% endif %} + {% if minimailLabel == "trash" %} + {% if minimailMessages|length > 0 %} +
      Messages in this folder that are older than 30 days are deleted automatically. Empty trash
      + {% endif %} + {% endif %} + + {% if minimailMessages|length > 0 %} + {% for minimailMessage in minimailMessages %} +
      +
      + + + {{ minimailMessage.getDate() }} + + + {% if minimailLabel == "sent" %} + To: {{ minimailMessage.getTarget().getName() }} + {% elseif minimailLabel == "inbox" %} + {{ minimailMessage.getAuthor().getName() }} + {% endif %} + + “{{ minimailMessage.getFormattedSubject() }}” +
      + +
      + {% endfor %} + {% endif %} + + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/myTagList.tpl b/tools/www-tpl/default/habblet/myTagList.tpl new file mode 100644 index 0000000..a71271b --- /dev/null +++ b/tools/www-tpl/default/habblet/myTagList.tpl @@ -0,0 +1,32 @@ +{% autoescape 'html' %} +
      +
        + +{% if tags|length > 0 %} + {% for tag in tags %} +
      • {{ tag }} +
      • + {% endfor %} +{% endif %} +
      + +
      +
      + Add tag + + {{ tagRandomQuestion }} +
      +
      +
      + +
      + + +{% endautoescape %} diff --git a/tools/www-tpl/default/habblet/news_sidebar.tpl b/tools/www-tpl/default/habblet/news_sidebar.tpl new file mode 100644 index 0000000..2036750 --- /dev/null +++ b/tools/www-tpl/default/habblet/news_sidebar.tpl @@ -0,0 +1,20 @@ +{% if articles|length > 0 %} +

      {{ header }}

      + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/nextgift.tpl b/tools/www-tpl/default/habblet/nextgift.tpl new file mode 100644 index 0000000..968c9b4 --- /dev/null +++ b/tools/www-tpl/default/habblet/nextgift.tpl @@ -0,0 +1,55 @@ + {% if newbieNextGift < 3 %} +
      + {% if newbieNextGift == 1 %} + My first starter stool + {% elseif newbieNextGift == 2 %} + My first plant + {% endif %} +
      +
      +

      + {% if newbieNextGift == 1 %} + Your next piece of free furniture will be STARTER STOOL + {% elseif newbieNextGift == 2 %} + Your next piece of free furniture will be LUCKY BAMBOO PLANT + {% endif %} +

      +

      + Time left: + +

      +

      + Go to your room >> +

      +
      +
      + + {% else %} +

      + How do you get more furniture into Your room? +

      +

      + You could buy a set of furniture for just 3 credits including a lamp, mat, and two armchairs. How do you do that? +

      +
        +
      • 1. Buy some credits from the credits section
      • +
      • 2. Open the catalogue from the Hotel toolbar (Chair icon)
      • +
      • 3. Open the deals section
      • +
      • 4. Pick up the furni set You want
      • +
      • 5. Thank You for shopping!
      • +
      +

      + +

      +

      + Go to your room >> +

      + + {% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/personalhighscores.tpl b/tools/www-tpl/default/habblet/personalhighscores.tpl new file mode 100644 index 0000000..fc0ed15 --- /dev/null +++ b/tools/www-tpl/default/habblet/personalhighscores.tpl @@ -0,0 +1,59 @@ +
      + + + + + + + {% if scoreEntries|length > 0 %} + + + + {% endif %} + + + +{% if scoreEntries|length == 0 %} +
      +There are no scores recorded for this game! +
      +{% else %} +{% set num = 1 %} +{% for scoreEntry in scoreEntries %} + {% if num % 2 == 0 %} + + {% else %} + + {% endif %} + + + + + + +{% set num = num + 1 %} +{% endfor %} +{% endif %} + +
      Score
      {{ scoreEntry.getPosition() }}.{{ scoreEntry.getPlayerName() }}{{ scoreEntry.getScore() }}
      + +
      + {% if hasNextPage %} + + {% endif %} + + {% if pageNumber > 1 %} + + {% endif %} +
      + + + + +
      \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/redeemvoucher.tpl b/tools/www-tpl/default/habblet/redeemvoucher.tpl new file mode 100644 index 0000000..1744fd5 --- /dev/null +++ b/tools/www-tpl/default/habblet/redeemvoucher.tpl @@ -0,0 +1,39 @@ +
        + +
      • +
        You Currently Have:
        + {{ playerDetails.credits }} Coins + +
      • + +
      • +
        + +
        Enter voucher code (without spaces):
        + + Enter +
        +
      • +
      +
        +
        + {% if voucherResult == 'error' %} +
        +
        + Your redeem code could not be found. Please try again. +
        +
        + {% elseif voucherResult == 'too_new' %} +
        +
        + Sorry, your account is too new and cannot redeeem this voucher. +
        +
        + {% else %} +
        +
        + Voucher redemption success +
        +
        + {% endif %} +
        \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/roomselectionConfirm.tpl b/tools/www-tpl/default/habblet/roomselectionConfirm.tpl new file mode 100644 index 0000000..8b01558 --- /dev/null +++ b/tools/www-tpl/default/habblet/roomselectionConfirm.tpl @@ -0,0 +1,6 @@ +

        Are you sure you want to close the room selector? If you close it, you won't get your free gifts!

        +

        + Cancel + Yes, hide it! +

        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/showMoreRooms.tpl b/tools/www-tpl/default/habblet/showMoreRooms.tpl new file mode 100644 index 0000000..edf010e --- /dev/null +++ b/tools/www-tpl/default/habblet/showMoreRooms.tpl @@ -0,0 +1,88 @@ + + + + +
        +
          + +{% set num = 0 %} +{% for room in highestRatedRooms %} + {% if num % 2 == 0 %} +
        • + {% else %} +
        • + {% endif %} + + {% set occupancyLevel = 0 %} + {% if room.getData().getVisitorsNow() > 0 %} + + {% set percentage = ((room.getData().getVisitorsNow() * 100) / room.getData().getVisitorsMax()) %} + + {% if (percentage >= 99) %} + {% set occupancyLevel = 5 %} + {% elseif (percentage > 65) %} + {% set occupancyLevel = 4 %} + {% elseif (percentage > 32) %} + {% set occupancyLevel = 3 %} + {% elseif (percentage > 0) %} + {% set occupancyLevel = 2 %} + {% endif %} + + {% endif %} + + + Enter {{ site.siteName }} Hotel + {{ room.getData().getName() }} + {{ room.getData().getDescription() }} + Owner: {{ room.getData().getOwnerName() }} + +
        • +{% set num = num + 1 %} +{% endfor %} +
        + + +
        + diff --git a/tools/www-tpl/default/habblet/tagFightResult.tpl b/tools/www-tpl/default/habblet/tagFightResult.tpl new file mode 100644 index 0000000..28df6e8 --- /dev/null +++ b/tools/www-tpl/default/habblet/tagFightResult.tpl @@ -0,0 +1,15 @@ +{% autoescape 'html' %} +
        + {{ result }}
        + {{ resultTag1 }} +({{ resultHits1 }}) hits +
        + {{ resultTag2 }} +({{ resultHits2 }}) hits +
        +
        + + New Fight + +
        +{% endautoescape %} \ No newline at end of file diff --git a/tools/www-tpl/default/habblet/tagList.tpl b/tools/www-tpl/default/habblet/tagList.tpl new file mode 100644 index 0000000..f86cd27 --- /dev/null +++ b/tools/www-tpl/default/habblet/tagList.tpl @@ -0,0 +1,21 @@ +{% autoescape 'html' %} +
        +{% if tagCloud|length > 0 %} +
          + {% for kvp in tagCloud %} + {% set tag = kvp.getKey() %} + {% set size = kvp.getValue() %} +
        • {{ tag }} + {% endfor %} +
        +{% else %} +No tags to display. +{% endif %} +
        +
        +
        +{% endautoescape %} + diff --git a/tools/www-tpl/default/habblet/tagMatch.tpl b/tools/www-tpl/default/habblet/tagMatch.tpl new file mode 100644 index 0000000..ef6ef62 --- /dev/null +++ b/tools/www-tpl/default/habblet/tagMatch.tpl @@ -0,0 +1,9 @@ +{% autoescape 'html' %} +{% if errorMsg != "" %} +
        + {{ errorMsg }} +
        +{% else %} +Coming soon. +{% endif %} +{% endautoescape %} diff --git a/tools/www-tpl/default/home.tpl b/tools/www-tpl/default/home.tpl new file mode 100644 index 0000000..fcf79b2 --- /dev/null +++ b/tools/www-tpl/default/home.tpl @@ -0,0 +1,680 @@ + + + + + + {{ site.siteName }}: {{ user.getName() }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% if editMode %} + +{% endif %} + + + + + + + + + + + + + + +{% if session.loggedIn == false %} + +{% else %} + {% if editMode %} + + {% else %} + + {% endif %} +{% endif %} +{% include "base/header.tpl" %} + +
        + +{% if session.loggedIn %} +{% if user.id == playerDetails.id %} + +{% else %} + +{% endif %} +{% endif %} + +
        +
        +
        +
        + {% if session.loggedIn %} + {% if user.id == playerDetails.id %} + {% if editMode == false %} + Edit + {% endif %} + {% endif %} + {% endif %} +
        +
        + +

        {{ user.getName() }}

        +
          +
          +
          + +{% if editMode %} + + + + +{% endif %} + + + {% if user.getName() == "Abigail.Ryan" %} +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +

          I am the malady, I am the pain...

          + +
          +
          +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +

          ...I am the death that never dies....

          + +
          +
          +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +

          ...on Halloween day I shall come to play...

          + +
          +
          +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +

          ...my life was lost in the Virus rain...

          + +
          +
          +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +

          ...I am the poor one who cries...

          + +
          +
          +
          +
          + + + + +
          +
          +
          +

          +
          +
          +
          +
          +
          +
          + +
          + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          + +
          +
          +
          +
          + {% else %} +
          + {% if editMode %} +
          + {% else %} +
          + {% endif %} + + {% for sticker in stickers %} + {% if sticker.getProduct().getData() == "groupinfowidget" %} + {% include "homes/widget/group_info_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "guestbookwidget" %} + {% include "homes/widget/guestbook_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "stickienote" %} + {% include "homes/widget/note.tpl" %} + {% elseif sticker.getProduct().getData() == "memberwidget" %} + {% include "homes/widget/member_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "traxplayerwidget" %} + {% include "homes/widget/trax_player_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "profilewidget" %} + {% include "homes/widget/profile_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "roomswidget" %} + {% include "homes/widget/rooms_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "highscoreswidget" %} + {% include "homes/widget/highscores_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "badgeswidget" %} + {% include "homes/widget/badges_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "ratingwidget" %} + {% include "homes/widget/rating_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "friendswidget" %} + {% include "homes/widget/friends_widget.tpl" %} + {% elseif sticker.getProduct().getData() == "groupswidget" %} + {% include "homes/widget/groups_widget.tpl" %} + {% else %} + {% include "homes/widget/sticker.tpl" %} + {% endif %} + {% endfor %} + +
          + {% if editMode %} +
          + {% else %} +
          + {% endif %} +
          +
          + {% if (user.hasClubSubscription() == false) %} + {% if (editMode == true) %} + hc habbohome banner holo + {% else %} + hc habbohome banner holo + {% endif %} + {% endif %} +
          +
          +
          +
          + {% endif %} +
          +
          + + + + +
          +
          +
          +{% if editMode %} +
        {% endif %} +{% include "base/footer.tpl" %} + +{% if editMode %} + + + + + +{% else %} + +
        +

        Edit Guestbook entry

        + + X +
        + +
        +
        +

        + Note: the message length must not exceed 200 characters +

        +
        + + + +
        +
        + + Habbos Rooms Groups
        + + Find +
        + + + +
        +
        + +
        + Cancel + Preview +
        + +
        +
        +
         
        +
        +
        +
        +

        Delete entry

        + + X +
        +
        + + +

        Are you sure you want to delete this entry?

        +

        + Cancel + Delete +

        +
        +
        +
        + +
        + + + + X +
        +

        +
        +
        + +
        + + + + X +
        + +
        + +
        + +
        +
        + + +{% endif %} + + + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/homes/editor/noteeditor.tpl b/tools/www-tpl/default/homes/editor/noteeditor.tpl new file mode 100644 index 0000000..d34bcb6 --- /dev/null +++ b/tools/www-tpl/default/homes/editor/noteeditor.tpl @@ -0,0 +1,63 @@ +
        + + + +
        500
        + +

        + +

        + +

        Note! The text is not editable after you place the note to your page.

        + +
        + + +
        +
        + + Habbos Rooms Groups
        + + Find +
        + + +
        +
        + +
        + +

        +Cancel +Continue +

        + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/editor/preview.tpl b/tools/www-tpl/default/homes/editor/preview.tpl new file mode 100644 index 0000000..9f11bf2 --- /dev/null +++ b/tools/www-tpl/default/homes/editor/preview.tpl @@ -0,0 +1,32 @@ +
        + +
        +
        +
        +

        + + +

        +
        +
        +
        +
        +
        {{ noteText }}
        + +
        +
        +
        +
        +
        + +

        Note! The text is not editable after you place the note to your page.

        + +

        +Go back to edit +Add note to page +

        + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/editor/search.tpl b/tools/www-tpl/default/homes/editor/search.tpl new file mode 100644 index 0000000..27c31db --- /dev/null +++ b/tools/www-tpl/default/homes/editor/search.tpl @@ -0,0 +1,14 @@ +
          +
        • Click on link below to insert it into the document
        • + + {% for kvp in querySearch %} + {% set key = kvp.getKey() %} + {% set value = kvp.getValue() %} + +
        • {{ key }}
        • + + {% endfor %} + + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/inventory/inventory.tpl b/tools/www-tpl/default/homes/inventory/inventory.tpl new file mode 100644 index 0000000..7173182 --- /dev/null +++ b/tools/www-tpl/default/homes/inventory/inventory.tpl @@ -0,0 +1,168 @@ +
        +
        +

        Categories:

        +
        +
          +
        • +
          Stickers
          +
            + {% set num = 0 %} + {% for category in stickerCategories %} + {% if num == 0 %}
          • {% else %}
          • {% endif %} +
            {{ category.getName() }}
            +
          • + + {% set num = num + 1 %} + {% endfor %} + +
          +
        • +
        • +
          Backgrounds
          +
            + + {% for category in backgroundCategories %} +
          • +
            {{ category.getName() }}
            +
          • + {% endfor %} + +
          +
        • +
        • +
          Notes
          +
            + +
          • +
            29
            +
          • + +
          +
        • +
        + +
        +
        + +
        +
        +

        Select an item by clicking it

        +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        +
        +
        +
        +
        +
        +
        + +
        +

        Categories:

        +
        +
          +
        • +
          Stickers
          +
        • +
        • +
          Backgrounds
          +
        • +
        • +
          Widgets
          +
        • +
        • +
          Notes
          +
        • +
        + +
        +
        + +
        +
        +

        Select an item by clicking it

        +
        + + {% if widgets|length == 0 %} +
        +
        +
        + +

        Your inventory for this category is completely empty!

        +

        To be able to purchase stickers, backgrounds and notes, click on Web Store tab and select a category and a product, then click Purchase.

        + +
        +
        +
        +
        +
        + +
        +
        +
        +
        +{% endif%} + +
          + +{% for widget in widgets %} +
        • +
          +
          + {% if widget.getAmount() > 1 %} +
          x{{ widget.getAmount() }}
          + {% endif %}
          +
          +
        • +{% endfor %} + +{% for box in emptyBoxes %} +
        • +{% endfor %} + +
        +
        +
        + +
        +
        +
        +

         

        + +
        + + {% if widgets.length != 0 %} +
        +
        + Place +
        +
        +{% endif %} + +
        +
        +
        + +
        + +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/inventory/inventory_items.tpl b/tools/www-tpl/default/homes/inventory/inventory_items.tpl new file mode 100644 index 0000000..202b358 --- /dev/null +++ b/tools/www-tpl/default/homes/inventory/inventory_items.tpl @@ -0,0 +1,47 @@ +{% if widgets.length == 0 %} +
        +
        +
        + +

        Your inventory for this category is completely empty!

        +

        To be able to purchase stickers, backgrounds and notes, click on Web Store tab and select a category and a product, then click Purchase.

        + +
        +
        +
        +
        +
        + +
        +
        +
        +
        +{% endif%} + +
          + +{% for widget in widgets %} +
        • +
          +
          + {% if widget.getAmount() > 1 %} +
          x{{ widget.getAmount() }}
          + {% endif %} +
          +
          + {% if widgetMode %} +
          +

          {{ widget.getProduct().getName() }}

          +

          {{ widget.getProduct().getDescription() }}

          +
          + {% endif %} +
        • +{% endfor %} + +{% if emptyBoxes|length > 0 %} +{% for box in emptyBoxes %} +
        • +{% endfor %} +{% endif %} + +
        diff --git a/tools/www-tpl/default/homes/inventory/inventory_preview.tpl b/tools/www-tpl/default/homes/inventory/inventory_preview.tpl new file mode 100644 index 0000000..adf3c44 --- /dev/null +++ b/tools/www-tpl/default/homes/inventory/inventory_preview.tpl @@ -0,0 +1,9 @@ +

         

        + +
        + +
        +
        + Place +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/store/background_warning.tpl b/tools/www-tpl/default/homes/store/background_warning.tpl new file mode 100644 index 0000000..cd33261 --- /dev/null +++ b/tools/www-tpl/default/homes/store/background_warning.tpl @@ -0,0 +1,8 @@ +

        +The image you selected will stay as the page background until you select another image or close the web store. If you want to keep it as your background image, you have to purchase it and select it in your inventory.

        + +

        +Ok +

        + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/store/items.tpl b/tools/www-tpl/default/homes/store/items.tpl new file mode 100644 index 0000000..66f9529 --- /dev/null +++ b/tools/www-tpl/default/homes/store/items.tpl @@ -0,0 +1,18 @@ +
          + +{% for product in products %} +
        • +
          +
          + {% if product.getAmount() > 1 %}
          x{{ product.getAmount() }}
          {% endif %} +
          +
          +
        • +{% endfor %} + +{% for i in [1..emptyProducts] %} +
        • +{% endfor %} + + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/store/main.tpl b/tools/www-tpl/default/homes/store/main.tpl new file mode 100644 index 0000000..ce7c29f --- /dev/null +++ b/tools/www-tpl/default/homes/store/main.tpl @@ -0,0 +1,167 @@ +
        +
        +

        Categories:

        +
        +
          +
        • +
          Stickers
          +
            + {% set num = 0 %} + {% for category in stickerCategories %} + {% if num == 0 %}
          • {% else %}
          • {% endif %} +
            {{ category.getName() }}
            +
          • + + {% set num = num + 1 %} + {% endfor %} + +
          +
        • +
        • +
          Backgrounds
          +
            + + {% for category in backgroundCategories %} +
          • +
            {{ category.getName() }}
            +
          • + {% endfor %} + +
          +
        • +
        • +
          Notes
          +
            + +
          • +
            29
            +
          • + +
          +
        • +
        + +
        +
        + + +
        +
        +

        Select an item by clicking it

        +
        +
          + +{% for product in products %} +
        • +
          +
          + {% if product.getAmount() > 1 %}
          x{{ product.getAmount() }}
          {% endif %} +
          +
          +
        • +{% endfor %} + +{% for box in emptyBoxes %} +
        • +{% endfor %} + + +
        +
        +
        +
        +
        + +

        + +
        + +
        +Price:
        + {% if product.getPrice() > 1 %}{{ product.getPrice() }} credits{% else %}{{ product.getPrice() }} credit{% endif %} + +
        + +
        +{% if playerDetails.credits > 1 %}You have:
        {{ playerDetails.credits }} credits
        {% else %}You have:
        {{ playerDetails.credits }} credit
        {% endif %} +Get Credits +
        + +
        +
        + Purchase +
        +
        + + +
        +
        +
        + +
        +

        Categories:

        +
        +
          +
        • +
          Stickers
          +
        • +
        • +
          Backgrounds
          +
        • +
        • +
          Widgets
          +
        • +
        • +
          Notes
          +
        • +
        + +
        +
        + +
        +
        +

        Select an item by clicking it

        +
          +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        • +
        +
        +
        +
        +

         

        + +
        + +
        +
        + +
        +
        + +
        +
        +
        + +
        + +
        +
        diff --git a/tools/www-tpl/default/homes/store/preview.tpl b/tools/www-tpl/default/homes/store/preview.tpl new file mode 100644 index 0000000..d1efd1f --- /dev/null +++ b/tools/www-tpl/default/homes/store/preview.tpl @@ -0,0 +1,22 @@ +

        + +
        + +
        +Price:
        + {% if product.getPrice() > 1 %}{{ product.getPrice() }} credits{% else %}{{ product.getPrice() }} credit{% endif %} + +
        + +
        +{% if playerDetails.credits > 1 %}You have:
        {{ playerDetails.credits }} credits
        {% else %}You have:
        {{ playerDetails.credits }} credit
        {% endif %} +Get Credits +
        + +
        +
        + Purchase +
        +
        + + \ No newline at end of file diff --git a/tools/www-tpl/default/homes/store/purchase_confirm.tpl b/tools/www-tpl/default/homes/store/purchase_confirm.tpl new file mode 100644 index 0000000..5ce98d3 --- /dev/null +++ b/tools/www-tpl/default/homes/store/purchase_confirm.tpl @@ -0,0 +1,22 @@ +
        +
        + +
        +
        + +{% if noCredits %} +

        +You do not have enough credits to purchase this

        + +
        +{% else %} +

        +Are you sure you want to purchase this product?

        + +

        +Cancel +Continue +

        + +
        +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/badges_widget.tpl b/tools/www-tpl/default/homes/widget/badges_widget.tpl new file mode 100644 index 0000000..694f19f --- /dev/null +++ b/tools/www-tpl/default/homes/widget/badges_widget.tpl @@ -0,0 +1,30 @@ +{% set badgeList = sticker.getFirstBadges() %} +{% set pages = sticker.getBadgeList().size() %} + +{% set currentPage = 1 %} +{% set showLast = false %} + +{% if pages > 1 %} + {% set showLast = true %} +{% endif %} + +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  Badges & Achievements 

        +
        +
        +
        +
        + {% include "homes/widget/habblet/badgepaging.tpl" %} +
        +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/friends_widget.tpl b/tools/www-tpl/default/homes/widget/friends_widget.tpl new file mode 100644 index 0000000..b573d45 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/friends_widget.tpl @@ -0,0 +1,31 @@ +{% set friendsList = sticker.getFirstFriendsList() %} +{% set friends = sticker.getFriendsAmount() %} +{% set pages = sticker.getFriendsPages() %} +{% set currentPage = 1 %} + +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  My Friends ({{ friends }}) 

        +
        +
        +
        +
        + +
        + {% include "homes/widget/habblet/friendsearchpaging.tpl" %} +
        +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/group_info_widget.tpl b/tools/www-tpl/default/homes/widget/group_info_widget.tpl new file mode 100644 index 0000000..79f8dbe --- /dev/null +++ b/tools/www-tpl/default/homes/widget/group_info_widget.tpl @@ -0,0 +1,73 @@ +
        +
        +
        +

        + + {% if editMode %} + + + {% endif %} + + Group info 

        +
        +
        +
        +
        + {% autoescape 'html' %} +
        + +

        {{ group.getName() }}

        + +

        Group created: {{ group.getCreatedDate() }}

        +

        {{ sticker.getMembersAmount() }} members

        +{% if group.getRoomId() > 0 %}

        {% autoescape 'html' %}{{ room.getData().getName() }}{% endautoescape %}

        {% endif %} +
        {{ group.getDescription() }}
        + + +
        +
        + {% include "../../groups/habblet/listgrouptags.tpl" %} +
        + {% if session.loggedIn %} +{% if group.getOwnerId() == playerDetails.getId() %} +
        +
        +
        +
        + The limit is 20 tags! + Invalid tag. +
        +
        +
        +
        +
        +
        +
        +
        + Add tag +
        {% endif %}{% endif %} +
        + + + + + + +
        + {% endautoescape %} +
        +
        +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/groups_widget.tpl b/tools/www-tpl/default/homes/widget/groups_widget.tpl new file mode 100644 index 0000000..c2332d4 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/groups_widget.tpl @@ -0,0 +1,69 @@ +{% set groupsList = sticker.getOwnerGroups() %} + +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  My Groups ({{ groupsList|length }}) 

        +
        +
        +
        +
        + + {% if groupsList|length == 0 %} +
        +You are not a member of any Groups
        + {% else %} +
        +
          + +{% for group in groupsList %} +
        • +
          +
          +

          + {% autoescape 'html' %} + {{ group.getName() }} +

          +

          + Group created:
          + {{ group.getCreatedDate() }} + {% set member = group.getMember(user.id) %} + + {% if member.isFavourite(group.id) %} + Favorite + {% endif %} + {% if member.getMemberRank().getRankId() == 3 %} + Owner + {% endif %} + {% if member.getMemberRank().getRankId() == 2 %} + Admin + {% endif %} +

          +
          + {% endautoescape %} +
        • +{% endfor %} + +
        + {% endif %} +

        +
        + +
        +
        +
        +
        +
        + + diff --git a/tools/www-tpl/default/homes/widget/guestbook/add.tpl b/tools/www-tpl/default/homes/widget/guestbook/add.tpl new file mode 100644 index 0000000..27aa5ec --- /dev/null +++ b/tools/www-tpl/default/homes/widget/guestbook/add.tpl @@ -0,0 +1,29 @@ +{% if session.loggedIn %} +{% if hasDeletePermission == false %} + {% set hasDeletePermission = entry.getUser().getId() == playerDetails.id %} +{% endif %} +{% endif %} + +
      • +
        + Alex +
        + {% if hasDeletePermission %} +
        + +
        +
        + {% endif %} +
        + {% if entry.getUser().isOnline() and entry.getUser().isProfileVisible() %} +
        + {% else %} + +

        {{ entry.getMessage() }}

        +
        +
         
        + +
      • \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/guestbook/preview.tpl b/tools/www-tpl/default/homes/widget/guestbook/preview.tpl new file mode 100644 index 0000000..5de0e27 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/guestbook/preview.tpl @@ -0,0 +1,20 @@ + + + \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/guestbook_widget.tpl b/tools/www-tpl/default/homes/widget/guestbook_widget.tpl new file mode 100644 index 0000000..f5f3c57 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/guestbook_widget.tpl @@ -0,0 +1,59 @@ +{% set entries = sticker.getGuestbookEntries() %} +{% set hasDeletePermission = false %} + +{% if session.loggedIn %} +{% set hasDeletePermission = sticker.canDeleteEntries(playerDetails.id) %} +{% endif %} + +
        +
        +
        +

        + + {% if editMode %} + + + {% endif %} + +  My Guestbook({{ entries|length }}) myhabbo.guestbook.unknown.private 

        +
        +
        +
        +
        +
        +
          + + {% if entries|length == 0 %} +
          This guestbook has no entries.
          + {% else %} + {% for entry in entries %} + {% include "homes/widget/guestbook/add.tpl" with {"entry": entry} %} + {% endfor %} + {% endif %} +
        +{% if session.loggedIn and sticker.isPostingAllowed(playerDetails.id) %} + {% if editMode == false %} + +{% endif %} +{% endif %} + + +
        +
        +
        +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/avatarinfo.tpl b/tools/www-tpl/default/homes/widget/habblet/avatarinfo.tpl new file mode 100644 index 0000000..eb807c8 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/avatarinfo.tpl @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/badgepaging.tpl b/tools/www-tpl/default/homes/widget/habblet/badgepaging.tpl new file mode 100644 index 0000000..6f0c41f --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/badgepaging.tpl @@ -0,0 +1,34 @@ +
        +
          + {% for badge in badgeList %} +
        • + {% endfor %} +
        + + +
        + {{ badgeList|length }} - {{ currentPage }} / {{ pages }}
        + + {% if currentPage != 1 %} + First | + << | + {% else %} + First | << | + {% endif %} + + {% if showLast %} + >> | + Last + {% else %} + >> | Last + {% endif %} + + + +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/habblet/friendsearchpaging.tpl b/tools/www-tpl/default/homes/widget/habblet/friendsearchpaging.tpl new file mode 100644 index 0000000..c6e9c20 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/friendsearchpaging.tpl @@ -0,0 +1,81 @@ +{% set firstPage = -1 %} +{% set previousPage = -1 %} +{% set nextPage = -1 %} +{% set lastPage = -1 %} + +{% if currentPage >= 2 %} + {% set firstPage = 1 %} +{% endif %} + +{% if currentPage > 1 %} + {% set previousPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 1) %} + {% set nextPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 2) %} + {% set lastPage = 1 %} +{% endif %} + +
        + +
        +
          + +{% if friends > 0 %} + {% for friend in friendsList %} +
        • +
          +

          {{ friend.getUsername() }}

          +

          {{ friend.getFormatLastOnline("dd-MM-yyyy") }}

          +

          + +

        • + {% endfor %} +{% else %} +You don't have any friends :( +{% endif %} +
        + +
        + +
        +
        +
        + +
        + +
        + {% if friends > 0 %} + {{ currentPage }} - {{ friendsList|length }} / {{ pages }} +
        + + {% if (firstPage != -1) or (previousPage != -1) %} + First | + << | + {% else %} + First | << | + {% endif %} + + {% if (lastPage != -1) or (nextPage != -1) %} + >> | + Last + {% else %} + >> | Last + {% endif %} + {% else %} + 0 - 0 + {% endif %} + + +
        + + +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/groupinfo.tpl b/tools/www-tpl/default/homes/widget/habblet/groupinfo.tpl new file mode 100644 index 0000000..2417495 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/groupinfo.tpl @@ -0,0 +1,21 @@ +
        +
        + +
        +

        + +{% autoescape 'html' %} +

        {{ group.getName() }}

        +

        Group created:
        +{{ group.getCreatedDate() }} +

        +
        {{ group.getDescription() }}
        + +
        +{% endautoescape %} \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/membersearchpaging.tpl b/tools/www-tpl/default/homes/widget/habblet/membersearchpaging.tpl new file mode 100644 index 0000000..f6cb520 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/membersearchpaging.tpl @@ -0,0 +1,85 @@ +{% set firstPage = -1 %} +{% set previousPage = -1 %} +{% set nextPage = -1 %} +{% set lastPage = -1 %} + +{% if currentPage >= 2 %} + {% set firstPage = 1 %} +{% endif %} + +{% if currentPage > 1 %} + {% set previousPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 1) %} + {% set nextPage = 1 %} +{% endif %} + +{% if pages >= (currentPage + 2) %} + {% set lastPage = 1 %} +{% endif %} + +
        +
        +
          + {% if members > 0 %} + {% for member in membersList %} +
        • +
          +

          {{ member.getUser().getName() }}

          +

          {{ member.getUser().getCreatedAt() }}

          + + {% if member.getMemberRank().getRankId() == 3 %} +

          + {% endif %} + {% if member.getMemberRank().getRankId() == 2 %} +

          + {% endif %} + {% if member.isFavourite(group.id) %} + + {% endif %} +

          +
        • + {% endfor %} + {% else %} + You don't have any members :( + {% endif %} +
        +
        +
        + +
        +
        +
        +
        +
        + {% if members > 0 %} + {{ currentPage }} - {{ membersList|length }} / {{ pages }} +
        + + {% if (firstPage != -1) or (previousPage != -1) %} + First | + << | + {% else %} + First | << | + {% endif %} + + {% if (lastPage != -1) or (nextPage != -1) %} + >> | + Last + {% else %} + >> | Last + {% endif %} + {% else %} + 0 - 0 + {% endif %} + + +
        + + +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/rate.tpl b/tools/www-tpl/default/homes/widget/habblet/rate.tpl new file mode 100644 index 0000000..4f6683c --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/rate.tpl @@ -0,0 +1,20 @@ +{% set average = sticker.getAverageRating() %} +{% set px = sticker.getRatingPixels() %} + +
        + Average rating: {{ average }}
        +
        +
          +
        • + +
        +
        + {{ sticker.getVoteCount() }} votes total +
        + ({{ sticker.getHighVoteCount() }} users voted 4 or better) +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/taglist.tpl b/tools/www-tpl/default/homes/widget/habblet/taglist.tpl new file mode 100644 index 0000000..eb47e42 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/taglist.tpl @@ -0,0 +1,28 @@ +
        +{% if (tags|length) == 0 %} +No tags. +{% else %} + {% for tag in tags %} + + {% autoescape 'html' %} + {{ tag }} + {% endautoescape %} + {% if (session.loggedIn) and (user.id == playerDetails.id) %} + + {% else %} + + {% endif %} + + {% endfor %} + +{% endif %} +
        + + \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/habblet/trax_song.tpl b/tools/www-tpl/default/homes/widget/habblet/trax_song.tpl new file mode 100644 index 0000000..06b6bc3 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/habblet/trax_song.tpl @@ -0,0 +1,10 @@ +{% if sticker.hasSong() %} +{% set song = sticker.getSong() %} + +{% else %} +
        +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/highscores_widget.tpl b/tools/www-tpl/default/homes/widget/highscores_widget.tpl new file mode 100644 index 0000000..604ab16 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/highscores_widget.tpl @@ -0,0 +1,25 @@ +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  HIGH SCORES 

        +
        +
        +
        +
        + + + + +
        You do not have any high scores.
        +
        +
        +
        +
        +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/member_widget.tpl b/tools/www-tpl/default/homes/widget/member_widget.tpl new file mode 100644 index 0000000..0600438 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/member_widget.tpl @@ -0,0 +1,31 @@ +{% set membersList = sticker.getFirstMembersList() %} +{% set members = sticker.getMembersAmount() %} +{% set pages = sticker.getMembersPages() %} +{% set currentPage = 1 %} + +
        +
        +
        +

        + {% if editMode %} + + + {% endif %} +  Members of this group ({{ members }}) 

        +
        +
        +
        +
        + +
        + {% include "homes/widget/habblet/membersearchpaging.tpl" %} +
        +
        +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/note.tpl b/tools/www-tpl/default/homes/widget/note.tpl new file mode 100644 index 0000000..1153a7e --- /dev/null +++ b/tools/www-tpl/default/homes/widget/note.tpl @@ -0,0 +1,24 @@ + + +
        +
        +
        +

        + {% if editMode %} + + +{% endif %} +

        +
        +
        +
        +
        +
        {{ sticker.getFormattedText() }}
        + +
        +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/profile_widget.tpl b/tools/www-tpl/default/homes/widget/profile_widget.tpl new file mode 100644 index 0000000..2aeef4e --- /dev/null +++ b/tools/www-tpl/default/homes/widget/profile_widget.tpl @@ -0,0 +1,109 @@ +{% autoescape 'html' %} + +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  MY PROFILE 

        +
        +
        +
        +
        +
        + {% autoescape 'html' %} +
        + {{ user.getName() }} + +
        + +
        + + {% if user.isOnline() and user.isProfileVisible() %} + online + {% else %} + online + {% endif %} +
        + Created on: +
        +
        + {{ user.getCreatedAt() }}
        + +
        + {% if hasFavouriteGroup %} + + {% endif %} + + {% if hasBadge %} + + {% endif %} +
        + {% endautoescape %} +
        +
        + {{ user.getName() }} +
        + {% autoescape 'html' %} +
        + {{ user.motto }} +
        +
        + {% endautoescape %} + {% if canAddFriend %} + + {% endif %} +
        +
        +{% include "homes/widget/habblet/taglist.tpl" %} + +
        +
        +
        +
        +
        + The limit is 8 tags! + Invalid tag. +
        +
        +
        +
        +
        +
        +
        {% if editMode == false %}{% if session.loggedIn and user.id == playerDetails.id %}
        +
        + Add tag +
        {% endif %}{% endif %} +
        + {% if session.loggedIn %} + + {% endif %} +
        +
        +
        +
        +
        +{% endautoescape %} \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/rating_widget.tpl b/tools/www-tpl/default/homes/widget/rating_widget.tpl new file mode 100644 index 0000000..6cbe22f --- /dev/null +++ b/tools/www-tpl/default/homes/widget/rating_widget.tpl @@ -0,0 +1,58 @@ +
        +
        +
        +

        +{% if editMode %} + + + +{% endif %} +  My Rating 

        +
        +
        +
        +
        +
        + +{% set average = sticker.getAverageRating() %} +{% set px = sticker.getRatingPixels() %} +{% set canRate = ((session.loggedIn == true) and (editMode == false) and (user.getId() != playerDetails.getId()) and (sticker.hasRated(playerDetails.getId()) == false)) %} + +
        + Average rating: {{ average }}
        +
        +
          +
        • + {% if canRate %} +
        • 1
        • +
        • 2
        • +
        • 3
        • +
        • 4
        • +
        • 5
        • + {% endif %} +
        +
        + {{ sticker.getVoteCount() }} votes total +
        + ({{ sticker.getHighVoteCount() }} users voted 4 or better) +
        +
        +
        +
        +
        +
        +
        diff --git a/tools/www-tpl/default/homes/widget/rooms_widget.tpl b/tools/www-tpl/default/homes/widget/rooms_widget.tpl new file mode 100644 index 0000000..d8049a4 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/rooms_widget.tpl @@ -0,0 +1,65 @@ +{% set rooms = sticker.getOwnerRooms() %} +{% autoescape 'html' %} + +
        +
        +
        +

        +{% if editMode %} + + +{% endif %} +  MY ROOMS 

        +
        +
        +
        +
        + {% if rooms|length == 0 %} + You do not have any rooms yet + {% else %} +
        + + +{% for room in rooms %} + {% set openState = "room_icon_open" %} + + {% if room.getData().getAccessTypeId() == 1 %} + {% set openState = "room_icon_locked" %} + {% endif %} + + {% if room.getData().getAccessTypeId() == 2 %} + {% set openState = "room_icon_password" %} + {% endif %} + + + + + +{% endfor %} +
        +
        + +
        +
        +
        +
        + {% autoescape 'html' %}{{ room.getData().getName() }}{% endautoescape %}
        +
        +
        {% autoescape 'html' %}{{ room.getData().getDescription() }}{% endautoescape %}
        + enter room
        +
        + +
        +
        +{% endif %} +
        +
        +
        +
        +
        +{% endautoescape %} \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/sticker.tpl b/tools/www-tpl/default/homes/widget/sticker.tpl new file mode 100644 index 0000000..274a1e5 --- /dev/null +++ b/tools/www-tpl/default/homes/widget/sticker.tpl @@ -0,0 +1,8 @@ +
        +{% if editMode %} + + +{% endif %} +
        \ No newline at end of file diff --git a/tools/www-tpl/default/homes/widget/trax_player_widget.tpl b/tools/www-tpl/default/homes/widget/trax_player_widget.tpl new file mode 100644 index 0000000..2761eef --- /dev/null +++ b/tools/www-tpl/default/homes/widget/trax_player_widget.tpl @@ -0,0 +1,38 @@ +
        +
        +
        +

        + +{% if editMode %} + + +{% endif %} + +  TRAXPLAYER 

        +
        +
        +
        +
        + {% if (sticker.hasSong() == false) or (editMode == true) %} +
        + {% else %} +
        + {% include "homes/widget/habblet/trax_song.tpl" %} + {% endif %} +{% if editMode %} + +{% endif %} +
        +
        +
        +
        +
        diff --git a/tools/www-tpl/default/housekeeping/articles.tpl b/tools/www-tpl/default/housekeeping/articles.tpl new file mode 100644 index 0000000..95d6066 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/articles.tpl @@ -0,0 +1,49 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set articlesActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Posted Articles

        + {% include "housekeeping/base/alert.tpl" %} +

        This includes the most recent articles posted on the site, you may edit or delete them if you wish.

        +

        New News Article

        +
        + + + + + + + + + + + + + {% for article in articles %} + + + + + + + + + {% endfor %} + +
        NameAuthorShort StoryDateViews
        {{ article.title }}{{ article.author }}{{ article.shortstory }}{{ article.getDate() }}{{ article.views }} + Edit + Delete +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/articles_create.tpl b/tools/www-tpl/default/housekeeping/articles_create.tpl new file mode 100644 index 0000000..6b639af --- /dev/null +++ b/tools/www-tpl/default/housekeeping/articles_create.tpl @@ -0,0 +1,137 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set createArticlesActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} + +
        +
        +

        Create Article

        + {% include "housekeeping/base/alert.tpl" %} +

        Create a news article, once posted, it will be immediately live on the site.

        +
        +
        + + +
        +
        +
        + +
        +
        + + +
        +
        + +

        + +

        +
        +
        + +

        + +

        +
        +
        + + +
        +
        + +
        +
        + +
        + + +
        +
        + + +
        +
        + +

        (Leave alone for current article publish time)

        + +
        +
        + +
        +
        + + +
        +
        + +
        +
        +
        +
        +

        Create Article

        +

        Preview news here...

        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/articles_edit.tpl b/tools/www-tpl/default/housekeeping/articles_edit.tpl new file mode 100644 index 0000000..7e08999 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/articles_edit.tpl @@ -0,0 +1,135 @@ +{% include "housekeeping/base/header.tpl" %} + + {% autoescape 'html' %} + {% include "housekeeping/base/navigation.tpl" %} + +
        +
        +

        Edit Article

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit an existing news article that has already been posted on the website.

        +
        +
        + + +
        +
        +
        + +
        +
        + + +
        +
        + +

        + +

        +
        +
        + +

        + +

        +
        +
        + + +
        +
        + +
        +
        +
        + + +
        +
        + + +
        +
        + +

        (Leave alone for current article publish time)

        + +
        +
        + +
        +
        + + +
        +
        + +
        +
        +
        + {% endautoescape %} +
        +

        Edit Article

        +

        {{ article.getEscapedStory() }}

        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/base/alert.tpl b/tools/www-tpl/default/housekeeping/base/alert.tpl new file mode 100644 index 0000000..61c0483 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/base/alert.tpl @@ -0,0 +1,8 @@ +{% if alert.hasAlert %} + +
        + {{ alert.message }} +
        + + +{% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/base/footer.tpl b/tools/www-tpl/default/housekeeping/base/footer.tpl new file mode 100644 index 0000000..e69de29 diff --git a/tools/www-tpl/default/housekeeping/base/header.tpl b/tools/www-tpl/default/housekeeping/base/header.tpl new file mode 100644 index 0000000..34ac923 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/base/header.tpl @@ -0,0 +1,14 @@ + + + + + + + + {{ site.siteName }}: {{ pageName }} + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/base/navigation.tpl b/tools/www-tpl/default/housekeeping/base/navigation.tpl new file mode 100644 index 0000000..f7d9e8a --- /dev/null +++ b/tools/www-tpl/default/housekeeping/base/navigation.tpl @@ -0,0 +1,83 @@ +
        + +
        + + + +
        diff --git a/tools/www-tpl/default/housekeeping/catalogue_frontpage.tpl b/tools/www-tpl/default/housekeeping/catalogue_frontpage.tpl new file mode 100644 index 0000000..0b1754f --- /dev/null +++ b/tools/www-tpl/default/housekeeping/catalogue_frontpage.tpl @@ -0,0 +1,55 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set editCatalogueFrontPage = " active " %} + {% include "housekeeping/base/navigation.tpl" %} + +

        Edit Catalogue Page

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit the catalogue front page data.

        +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + +

        + +

        +
        +
        + +
        +
        + +
        + +
        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/configurations.tpl b/tools/www-tpl/default/housekeeping/configurations.tpl new file mode 100644 index 0000000..65dc9a2 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/configurations.tpl @@ -0,0 +1,45 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set configurationsActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        Edit Configurations

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit all the configuration that is on the hotel.

        +
        + + + + + + + + + + + {% for config in configs %} + + + + + {% endfor %} + +
        NameValue
        {{ config.getKey() }} + +
        +
        + +
        + +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/dashboard.tpl b/tools/www-tpl/default/housekeeping/dashboard.tpl new file mode 100644 index 0000000..79296a9 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/dashboard.tpl @@ -0,0 +1,117 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set dashboardActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Hotel Statistics

        +

        Welcome to the housekeeping for {{ site.siteName }} Hotel, here you can manage a lot of things at once, such as users, news, site content and view the statistics of the hotel.

        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Havana Web Version1.0
        Users{{ stats.userCount }}
        Room Items{{ stats.roomItemCount }}
        Inventory Items{{ stats.inventoryItemsCount }}
        Groups{{ stats.groupCount }}
        Pets{{ stats.petCount }}
        Photos{{ stats.photoCount }}
        +
        +

        Newest Players

        +

        The recently joined player list is seen below

        +
        + {% set zeroCoinsValue = '' %} + {% if zeroCoinsFlag %} + {% set zeroCoinsValue = '&zerocoins' %} + {% endif %} + + {% if nextPlayers|length > 0 %} + {% set ourNextPage = page + 1 %} + + {% endif %} + {% if previousPlayers|length > 0 %} + {% set ourNextPage = page - 1 %} + + {% endif %} + + {% if zeroCoinsFlag %} + + {% else %} + + {% endif %} +
        +
        + + + + + + + + + + + + + + + + + {% set num = 1 %} + {% for player in players %} + + + + + + + + + + + + + {% set num = num + 1 %} + {% endfor %} + +
        IDNameEmailLookMottoCreditsPixelsLast onlineDate joined
        {{ player.id }}{{ player.name }} - Transactons{{ player.email }}{{ player.motto }}{{ player.credits }}{{ player.pixels }}{{ player.formatLastOnline("dd-MM-yyyy HH:mm:ss") }}{{ player.formatJoinDate("dd-MM-yyyy HH:mm:ss") }}
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/infobus_polls.tpl b/tools/www-tpl/default/housekeeping/infobus_polls.tpl new file mode 100644 index 0000000..17d2857 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/infobus_polls.tpl @@ -0,0 +1,61 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set infobusPollsActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Infobus Polls

        + {% include "housekeeping/base/alert.tpl" %} +

        This lists all infobus polls that have been created and used.

        +

        New Poll

        +

        + Open Infobus Doors +

        +

        + Close Infobus Doors +

        +

        + End Event +

        +
        + + + + + + + + + + + + + {% for infobusPoll in infobusPolls %} + + + + + + + + + {% endfor %} + +
        QuestionCreated ByCreated At
        View Results{{ infobusPoll.getPollData().getQuestion() }}{{ infobusPoll.getCreator() }}{{ infobusPoll.getCreatedAtFormatted() }} + Edit + Delete + Clear Results + + Send Poll +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/infobus_polls_create.tpl b/tools/www-tpl/default/housekeeping/infobus_polls_create.tpl new file mode 100644 index 0000000..045c12f --- /dev/null +++ b/tools/www-tpl/default/housekeeping/infobus_polls_create.tpl @@ -0,0 +1,65 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set infobusPollsCreateActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} + + +

        Create Infobus Poll

        + {% include "housekeeping/base/alert.tpl" %} +

        Create an infobus poll for people to answer.

        +
        +
        + + +
        + +
        + + +
        + +

        +

        + +
        + + +
        +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/infobus_polls_edit.tpl b/tools/www-tpl/default/housekeeping/infobus_polls_edit.tpl new file mode 100644 index 0000000..e86a089 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/infobus_polls_edit.tpl @@ -0,0 +1,68 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set infobusPollsCreateActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} + + +

        Edit Infobus Poll

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit an infobus poll

        +
        +
        + + +
        + {% set answerCount = 1 %} + {% for answer in poll.getPollData().getAnswers() %} +
        + + +
        + {% set answerCount = answerCount + 1 %} + {% endfor %} + +

        +

        + +
        + + +
        +
        +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/infobus_polls_view.tpl b/tools/www-tpl/default/housekeeping/infobus_polls_view.tpl new file mode 100644 index 0000000..40f9503 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/infobus_polls_view.tpl @@ -0,0 +1,25 @@ +{% include "housekeeping/base/header.tpl" %} + + {% include "housekeeping/base/navigation.tpl" %} +

        Edit Infobus Poll

        + {% include "housekeeping/base/alert.tpl" %} +

        View Infobus Poll Results

        + + {% if noAnswers %} +

        There are no answers to this poll yet

        + {% else %} +

        + {% endif %} +
        +
        +
        + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/login.tpl b/tools/www-tpl/default/housekeeping/login.tpl new file mode 100644 index 0000000..2cec47b --- /dev/null +++ b/tools/www-tpl/default/housekeeping/login.tpl @@ -0,0 +1,45 @@ + + + + + + + + + {{ site.siteName }}: Housekeeping + + + + + + +
        +
        +

        Housekeeping

        +
        + {% include "housekeeping/base/alert.tpl" %} + +
        +
        +
        + © Copyright 2018 - Alex Miller +
        +
        + + + diff --git a/tools/www-tpl/default/housekeeping/room_ads.tpl b/tools/www-tpl/default/housekeeping/room_ads.tpl new file mode 100644 index 0000000..8460715 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/room_ads.tpl @@ -0,0 +1,66 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set roomAdsActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        Edit Room Ads

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit all the room ads that display as billboards from within the hotel.

        +

        New Ad

        +
        +
        + + + + + + + + + + + + + {% for advertisement in roomAds %} + + + + + + + + + + {% endfor %} + +
        Is Loading AdRoom IDURLImageEnabled
        + + + + + + + + + + + Delete +
        +
        + +
        +
        +
        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/room_ads_create.tpl b/tools/www-tpl/default/housekeeping/room_ads_create.tpl new file mode 100644 index 0000000..37b5a48 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/room_ads_create.tpl @@ -0,0 +1,47 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set roomCreateAdsActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        Create Ad

        + {% include "housekeeping/base/alert.tpl" %} +

        Create a room ad that will display as a billboards from within the hotel.

        +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + +
        +
        +
        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/room_badges.tpl b/tools/www-tpl/default/housekeeping/room_badges.tpl new file mode 100644 index 0000000..a0e74b6 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/room_badges.tpl @@ -0,0 +1,66 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set roomBadgesActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        Edit Room Badges

        + {% include "housekeeping/base/alert.tpl" %} +

        Edit all the room badges that are given when entering the room.

        +

        New Badge

        +
        +
        + + + + + + + + + + + + {% for badgeData in roomBadges.entrySet() %} + {% for badge in badgeData.getValue() %} + {% set id = (badgeData.getKey()) + ('_') + (badge) %} + + + + + + + + + + {% endfor %} + {% endfor %} + +
        Room IDBadge CodePreviewRoom Name
        + + + + + + +

        {{ util.getRoomName(badgeData.getKey()) }}

        +
        + Delete +
        +
        + +
        +
        +
        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/room_badges_create.tpl b/tools/www-tpl/default/housekeeping/room_badges_create.tpl new file mode 100644 index 0000000..760c869 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/room_badges_create.tpl @@ -0,0 +1,35 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set roomCreateBadgesActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        Create Room Badge

        + {% include "housekeeping/base/alert.tpl" %} +

        Create a room entry badge that will be given to the user as soon as they enter the room.

        +
        +
        + + +
        +
        + + +
        +
        + +
        +
        +
        +
        +
        + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/transaction/search_results.tpl b/tools/www-tpl/default/housekeeping/transaction/search_results.tpl new file mode 100644 index 0000000..5dd0214 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/transaction/search_results.tpl @@ -0,0 +1,33 @@ +{% if transactions|length > 0 %} +

        Search Results

        +
        + + + + + + + + + + + + + + {% set num = 1 %} + {% for transaction in transactions %} + + + + + + + + + + {% set num = num + 1 %} + {% endfor %} + +
        Item IDDescriptionCoinsPixelsAmountCreated At
        Track this item{{ transaction.getItemId() }}{{ transaction.description }}{{ transaction.costCoins }}{{ transaction.costPixels }}{{ transaction.amount }}{{ transaction.getFormattedDate() }}
        +
        + {% endif %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/transaction_item_lookup.tpl b/tools/www-tpl/default/housekeeping/transaction_item_lookup.tpl new file mode 100644 index 0000000..b6c8e03 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/transaction_item_lookup.tpl @@ -0,0 +1,23 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set searchUsersActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Transaction Item Lookup

        + {% include "housekeeping/base/alert.tpl" %} +
        + {% include "housekeeping/transaction/search_results.tpl" %} +
        + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/transaction_lookup.tpl b/tools/www-tpl/default/housekeeping/transaction_lookup.tpl new file mode 100644 index 0000000..3e75126 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/transaction_lookup.tpl @@ -0,0 +1,31 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set searchTransactionsActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Transaction Lookup

        + {% include "housekeeping/base/alert.tpl" %} +

        Lookup transaction by a specific user, either enter their user ID or username. Will display all transaction in the past month.

        +
        +
        + + +
        + +
        +
        + {% include "housekeeping/transaction/search_results.tpl" %} + + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/users_bans.tpl b/tools/www-tpl/default/housekeeping/users_bans.tpl new file mode 100644 index 0000000..9e00c89 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/users_bans.tpl @@ -0,0 +1,78 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set bansActive = " active" %} + {% include "housekeeping/base/navigation.tpl" %} +

        View and manage bans

        + {% include "housekeeping/base/alert.tpl" %} +

        Manage all currently active bans on the hotel

        +
        +
        + + + + + + + + + + + + + {% for ban in bans %} + + + + + + + + + {% endfor %} + +
        TypeValueMessageBanned UtilBanned AtBanned By
        + {% if (ban.getBanType().name() == 'MACHINE_ID') %} + Machine + {% endif %} + {% if (ban.getBanType().name() == 'USER_ID') %} + User + {% endif %} + + {% if (ban.getBanType().name() == 'MACHINE_ID') %} + {% set bannedName = ban.getName() %} + {{ ban.getValue() }} + {% if bannedName != "" %} +  - {{ bannedName }} + {% endif %} + {% endif %} + {% if (ban.getBanType().name() == 'USER_ID') %} + {% set bannedName = ban.getName() %} + {% if bannedName != "" %} + {{ bannedName }} + {% endif %} + {% endif %} + + {{ ban.getMessage() }} + + {{ ban.getBannedUtil() }} + + {{ ban.getBannedAt() }} + + {{ ban.getBannedBy() }} +
        +
        +
        + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/users_create.tpl b/tools/www-tpl/default/housekeeping/users_create.tpl new file mode 100644 index 0000000..4e29abc --- /dev/null +++ b/tools/www-tpl/default/housekeeping/users_create.tpl @@ -0,0 +1,51 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set createUserActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Create User

        + {% include "housekeeping/base/alert.tpl" %} +

        Enter the details to create a new user.

        +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + +
        +
        + + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/users_edit.tpl b/tools/www-tpl/default/housekeeping/users_edit.tpl new file mode 100644 index 0000000..d24df50 --- /dev/null +++ b/tools/www-tpl/default/housekeeping/users_edit.tpl @@ -0,0 +1,51 @@ +{% include "housekeeping/base/header.tpl" %} + + {% include "housekeeping/base/navigation.tpl" %} +

        Edit User

        + {% include "housekeeping/base/alert.tpl" %} +

        Here you can edit user details.

        +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + +
        +
        + + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/housekeeping/users_search.tpl b/tools/www-tpl/default/housekeeping/users_search.tpl new file mode 100644 index 0000000..67412cb --- /dev/null +++ b/tools/www-tpl/default/housekeeping/users_search.tpl @@ -0,0 +1,86 @@ +{% include "housekeeping/base/header.tpl" %} + + {% set searchUsersActive = " active " %} + {% include "housekeeping/base/navigation.tpl" %} +

        Search Users

        + {% include "housekeeping/base/alert.tpl" %} +

        Here you can search users by the field of your choice, and the requested input by you

        +
        +
        + + +
        +
        + + +
        +
        + + +
        + +
        +
        + {% if players|length > 0 %} +

        Search Results

        +
        + + + + + + + + + + + + + + + + {% set num = 1 %} + {% for player in players %} + + + + + + + + + + + + {% set num = num + 1 %} + {% endfor %} + +
        IDNameEmailLookMissionCreditsDucketsLast onlineDate joined
        {{ player.id }}{{ player.name }}{{ player.email }}{{ player.mission }}{{ player.credits }}{{ player.pixels }}{{ player.getReadableLastOnline() }}{{ player.getReadableJoinDate() }}
        +
        + {% endif %} + + + + + + + + + +{% include "housekeeping/base/footer.tpl" %} \ No newline at end of file diff --git a/tools/www-tpl/default/index.tpl b/tools/www-tpl/default/index.tpl new file mode 100644 index 0000000..c0470bb --- /dev/null +++ b/tools/www-tpl/default/index.tpl @@ -0,0 +1,222 @@ + + + + + + {{ site.siteName }} ~ Home + + + + + + + + + + + + + + + + +
        + +
        +
        +
        +
        + {% if alert.hasAlert %} +
        +
        +
          +
        • {{ alert.message }}
        • +
        +
        +
        + {% endif %} +
        +

        Sign in

        +
        + +
        +
        +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + + + + {% set indexClass = " class=\"copyright\"" %} + {% include "base/footer.tpl" %} + + + + + + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/index_chromide.tpl b/tools/www-tpl/default/index_chromide.tpl new file mode 100644 index 0000000..c0470bb --- /dev/null +++ b/tools/www-tpl/default/index_chromide.tpl @@ -0,0 +1,222 @@ + + + + + + {{ site.siteName }} ~ Home + + + + + + + + + + + + + + + + +
        + +
        +
        +
        +
        + {% if alert.hasAlert %} +
        +
        +
          +
        • {{ alert.message }}
        • +
        +
        +
        + {% endif %} +
        +

        Sign in

        +
        + +
        +
        +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + + + + {% set indexClass = " class=\"copyright\"" %} + {% include "base/footer.tpl" %} + + + + + + + + + + + \ No newline at end of file diff --git a/tools/www-tpl/default/index_old.tpl b/tools/www-tpl/default/index_old.tpl new file mode 100644 index 0000000..ac95835 --- /dev/null +++ b/tools/www-tpl/default/index_old.tpl @@ -0,0 +1,257 @@ + + + + + + {{ site.siteName }}: Home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        +
        +
        + {% include "base/frontpage_header.tpl" %} +
        +
        + +
        + + {% if isValentinesMonth %} +
        +
        +
        Valentine's Day
        + {% if randomValentinesImage == "valentines_2_ultra.png" %} +
        Find your partner...
        +
        ...and make new friends :)
        + {% else %} +
        Find your partner...
        +
        ...and make new friends :)
        + {% endif %} + +
        Habbo is a virtual world where you can meet and find your true love.
        +
        +
        + {% else %} +
        +
        +
        Virtual world, real fun
        +
        Create your Habbo...
        +
        ...and make new friends :)
        + +
        Habbo is a virtual world where you can meet and make friends.
        +
        +
        + {% endif %} +
        + + + +
        + + + +
        +
        +
        + {% if alert.hasAlert %} +
        +
        +
          +
        • {{ alert.message }}
        • +
        +
        +
        + {% endif %} +
        +

        Sign in

        + +
        + + +
        +
        + + + + + +
        + + +
        + +
        + +
        + + + +
        + + +
        + + + + + +
        + + +
        + +
        + + + +
        + + + +
        + + + +
        +
        +
        +

        dzfFy)mPsC+n2j?Ng3A1CH07rsBBPY)omlvz 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%0DpV$kY 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 D4@W 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%0DZXm}DH#=1|)zmIrL@To2N>Y1qLAQPUx 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

        0#cQogT!G2mUQUS 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

    9. *Q&(!a*bC8~}@7Ws)U=MoK3p(&+$8OH4I6 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 z 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%0DFQ7Sua%C`+Y0 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 T$(%n734g4(Un8S?> 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