From da2307f3b534f44f12601f05f2623c00e257c604 Mon Sep 17 00:00:00 2001 From: duckietm Date: Fri, 24 Apr 2026 11:18:46 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=99=20Updated=20Tokens=20to=20use=20JW?= =?UTF-8?q?T=20rotational=20tokens?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Database Updates/011_HotelLogin.sql | 30 +- .../gameserver/auth/AuthHttpHandler.java | 194 +++--------- .../gameserver/auth/RememberJwtService.java | 276 ++++++++++++++++++ .../Habbo-4.1.2-jar-with-dependencies.jar | Bin 23399438 -> 23406485 bytes 4 files changed, 334 insertions(+), 166 deletions(-) create mode 100644 Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/RememberJwtService.java diff --git a/Database Updates/011_HotelLogin.sql b/Database Updates/011_HotelLogin.sql index 76585c8d..666a9b5f 100644 --- a/Database Updates/011_HotelLogin.sql +++ b/Database Updates/011_HotelLogin.sql @@ -110,22 +110,26 @@ CREATE TABLE IF NOT EXISTS `room_templates_items` ( FOREIGN KEY (`item_id`) REFERENCES `items_base` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; -CREATE TABLE IF NOT EXISTS `users_remember_tokens` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `user_id` int(11) NOT NULL, - `token_hash` char(64) NOT NULL, - `created_at` int(11) NOT NULL, - `expires_at` int(11) NOT NULL, - `ip_address` varchar(45) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - UNIQUE KEY `token_hash` (`token_hash`), - KEY `user_id` (`user_id`), +CREATE TABLE IF NOT EXISTS `users_remember_families` ( + `family_id` char(36) NOT NULL, + `user_id` int(11) NOT NULL, + `current_version` int(11) NOT NULL DEFAULT 1, + `created_at` int(11) NOT NULL, + `expires_at` int(11) NOT NULL, + `revoked` tinyint(1) NOT NULL DEFAULT 0, + `last_ip` varchar(45) NOT NULL DEFAULT '', + PRIMARY KEY (`family_id`), + KEY `user_id` (`user_id`), KEY `expires_at` (`expires_at`), - CONSTRAINT `fk_remember_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE + CONSTRAINT `fk_remember_family_user` + FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; --- Optional: configure how long a remember token is valid (default 30 days). +DROP TABLE IF EXISTS `users_remember_tokens`; + INSERT INTO `emulator_settings` (`key`, `value`) VALUES - ('login.remember.duration.days', '30') + ('login.remember.duration.days', '30'), + ('login.remember.rotate.interval.minutes', '15'), + ('login.remember.jwt.secret', '') ON DUPLICATE KEY UPDATE `value` = `value`; diff --git a/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/AuthHttpHandler.java b/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/AuthHttpHandler.java index bdda2039..174bcbb7 100644 --- a/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/AuthHttpHandler.java +++ b/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/AuthHttpHandler.java @@ -34,6 +34,7 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { private static final String CHECK_USERNAME_PATH = "/api/auth/check-username"; private static final String ROOM_TEMPLATES_PATH = "/api/auth/room-templates"; private static final String REMEMBER_PATH = "/api/auth/remember"; + private static final String REFRESH_PATH = "/api/auth/refresh"; private static final String HEALTH_PATH = "/api/health"; private static final Pattern USERNAME_RE = Pattern.compile("^[A-Za-z0-9._-]{3,32}$"); @@ -56,6 +57,7 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { && !path.equals(CHECK_EMAIL_PATH) && !path.equals(CHECK_USERNAME_PATH) && !path.equals(ROOM_TEMPLATES_PATH) && !path.equals(REMEMBER_PATH) + && !path.equals(REFRESH_PATH) && !path.equals(HEALTH_PATH)) { super.channelRead(ctx, msg); return; @@ -139,6 +141,10 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { handleRemember(ctx, req, body, ip); return; } + if (path.equals(REFRESH_PATH)) { + handleRefresh(ctx, req, body, ip); + return; + } String turnstileToken = readString(body, "turnstileToken"); if (!TurnstileVerifier.verify(turnstileToken, ip)) { @@ -154,8 +160,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /* ─── Availability probes ─── */ - private void handleCheckEmail(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { if (!AuthRateLimiter.tryProbe(ip)) { long secs = AuthRateLimiter.secondsUntilProbeReset(ip); @@ -235,8 +239,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { sendJson(ctx, req, HttpResponseStatus.OK, res); } - /* ─── Logout ─── */ - private void handleLogout(ChannelHandlerContext ctx, FullHttpRequest req, com.google.gson.JsonObject body) { String ssoTicket = readString(body, "ssoTicket"); String rememberToken = readString(body, "rememberToken").trim(); @@ -273,17 +275,8 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - // Delete only the specific remember token for this device. - // Other devices keep their tokens and can still silent-login. if (!rememberToken.isEmpty()) { - String hash = sha256Hex(rememberToken); - if (hash != null) { - try (PreparedStatement del = conn.prepareStatement( - "DELETE FROM users_remember_tokens WHERE token_hash = ?")) { - del.setString(1, hash); - del.executeUpdate(); - } - } + RememberJwtService.revokeFromToken(conn, rememberToken); } } catch (Exception e) { LOGGER.error("Logout cleanup failed", e); @@ -292,69 +285,16 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { sendJson(ctx, req, HttpResponseStatus.OK, ok); } - /* ─── Remember me ─── */ - private void handleRemember(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { - String rememberToken = readString(body, "rememberToken").trim(); - if (rememberToken.isEmpty()) { + String jwt = readString(body, "rememberToken").trim(); + if (jwt.isEmpty()) { sendJson(ctx, req, HttpResponseStatus.BAD_REQUEST, errorPayload("Missing rememberToken.")); return; } - String hash = sha256Hex(rememberToken); - if (hash == null) { - sendJson(ctx, req, HttpResponseStatus.INTERNAL_SERVER_ERROR, errorPayload("Server error.")); - return; - } - - int now = Emulator.getIntUnixTimestamp(); - try (Connection conn = Emulator.getDatabase().getDataSource().getConnection()) { - int userId = 0; - int tokenRowId = 0; - - try (PreparedStatement sel = conn.prepareStatement( - "SELECT id, user_id, expires_at FROM users_remember_tokens WHERE token_hash = ? LIMIT 1")) { - sel.setString(1, hash); - try (ResultSet rs = sel.executeQuery()) { - if (rs.next()) { - if (rs.getInt("expires_at") > now) { - userId = rs.getInt("user_id"); - tokenRowId = rs.getInt("id"); - } else { - tokenRowId = rs.getInt("id"); // expired - still purge below - } - } - } - } - - if (userId <= 0) { - if (tokenRowId > 0) { - try (PreparedStatement del = conn.prepareStatement( - "DELETE FROM users_remember_tokens WHERE id = ?")) { - del.setInt(1, tokenRowId); - del.executeUpdate(); - } - } - sendJson(ctx, req, HttpResponseStatus.UNAUTHORIZED, errorPayload("Remember token invalid or expired.")); - return; - } - - String username = null; - try (PreparedStatement usr = conn.prepareStatement( - "SELECT username FROM users WHERE id = ? LIMIT 1")) { - usr.setInt(1, userId); - try (ResultSet rs = usr.executeQuery()) { - if (rs.next()) username = rs.getString("username"); - } - } - - if (username == null) { - try (PreparedStatement del = conn.prepareStatement( - "DELETE FROM users_remember_tokens WHERE id = ?")) { - del.setInt(1, tokenRowId); - del.executeUpdate(); - } + RememberJwtService.RotationResult rot = RememberJwtService.rotate(conn, jwt, ip); + if (rot == null) { sendJson(ctx, req, HttpResponseStatus.UNAUTHORIZED, errorPayload("Remember token invalid or expired.")); return; } @@ -364,23 +304,15 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { "UPDATE users SET auth_ticket = ?, ip_current = ? WHERE id = ? LIMIT 1")) { upd.setString(1, ssoTicket); upd.setString(2, ip == null ? "" : ip); - upd.setInt(3, userId); + upd.setInt(3, rot.userId); upd.executeUpdate(); } - // Rotate: drop the consumed token and issue a new one. - try (PreparedStatement del = conn.prepareStatement( - "DELETE FROM users_remember_tokens WHERE id = ?")) { - del.setInt(1, tokenRowId); - del.executeUpdate(); - } - - String newToken = issueRememberToken(conn, userId, ip); - JsonObject ok = new JsonObject(); ok.addProperty("ssoTicket", ssoTicket); - ok.addProperty("username", username); - if (newToken != null) ok.addProperty("rememberToken", newToken); + ok.addProperty("username", rot.username); + ok.addProperty("rememberToken", rot.jwt); + ok.addProperty("expiresAt", rot.expiresAt); sendJson(ctx, req, HttpResponseStatus.OK, ok); } catch (Exception e) { LOGGER.error("Remember login failed", e); @@ -388,57 +320,29 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /** - * Generates a fresh remember-me token for a user, stores the hash, - * and returns the raw base64url string to embed in the response. - * Returns null on failure (the login still succeeds). - */ - private static String issueRememberToken(Connection conn, int userId, String ip) { - byte[] buf = new byte[32]; - RNG.nextBytes(buf); - String raw = Base64.getUrlEncoder().withoutPadding().encodeToString(buf); - String hash = sha256Hex(raw); - if (hash == null) return null; - - int now = Emulator.getIntUnixTimestamp(); - int days = Math.max(1, Emulator.getConfig().getInt("login.remember.duration.days", 30)); - int expiresAt = now + (days * 24 * 60 * 60); - - try (PreparedStatement ins = conn.prepareStatement( - "INSERT INTO users_remember_tokens (user_id, token_hash, created_at, expires_at, ip_address) VALUES (?, ?, ?, ?, ?)")) { - ins.setInt(1, userId); - ins.setString(2, hash); - ins.setInt(3, now); - ins.setInt(4, expiresAt); - ins.setString(5, ip == null ? "" : ip); - ins.executeUpdate(); - } catch (SQLException e) { - LOGGER.error("Failed to persist remember token for userId=" + userId, e); - return null; + private void handleRefresh(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { + String jwt = readString(body, "rememberToken").trim(); + if (jwt.isEmpty()) { + sendJson(ctx, req, HttpResponseStatus.BAD_REQUEST, errorPayload("Missing rememberToken.")); + return; } - return raw; - } - - private static String sha256Hex(String input) { - try { - java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA-256"); - byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8)); - StringBuilder sb = new StringBuilder(digest.length * 2); - for (byte b : digest) { - String h = Integer.toHexString(b & 0xff); - if (h.length() == 1) sb.append('0'); - sb.append(h); + try (Connection conn = Emulator.getDatabase().getDataSource().getConnection()) { + RememberJwtService.RotationResult rot = RememberJwtService.rotate(conn, jwt, ip); + if (rot == null) { + sendJson(ctx, req, HttpResponseStatus.UNAUTHORIZED, errorPayload("Remember token invalid or expired.")); + return; } - return sb.toString(); + JsonObject ok = new JsonObject(); + ok.addProperty("rememberToken", rot.jwt); + ok.addProperty("expiresAt", rot.expiresAt); + sendJson(ctx, req, HttpResponseStatus.OK, ok); } catch (Exception e) { - LOGGER.error("sha256Hex failed", e); - return null; + LOGGER.error("Refresh failed", e); + sendJson(ctx, req, HttpResponseStatus.INTERNAL_SERVER_ERROR, errorPayload("Server error.")); } } - /* ─── Login ─── */ - private void handleLogin(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { String username = readString(body, "username").trim(); String password = readString(body, "password"); @@ -487,7 +391,16 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { upd.executeUpdate(); } - String rememberToken = rememberMe ? issueRememberToken(conn, userId, ip) : null; + String rememberToken = null; + if (rememberMe) { + try { + RememberJwtService.RotationResult issued = RememberJwtService.issueForNewFamily( + conn, userId, rs.getString("username"), ip); + rememberToken = issued.jwt; + } catch (SQLException e) { + LOGGER.error("Failed to issue remember-me JWT for userId=" + userId, e); + } + } AuthRateLimiter.recordSuccess(ip); @@ -503,8 +416,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /* ─── Register ─── */ - private void handleRegister(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { if (!Emulator.getConfig().getBoolean("login.register.enabled", true)) { sendJson(ctx, req, HttpResponseStatus.FORBIDDEN, errorPayload("Registration is closed.")); @@ -633,13 +544,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /** - * If the template carries a custom heightmap (override_model='1' and a - * non-empty heightmap), creates the matching room_models_custom row keyed - * by the new room id and renames the room's model to custom_<newRoomId>. - * Without this, cloned rooms reference a layout that doesn't exist - * (the source room's id) and load as a black screen. - */ private static void materializeCustomLayout(Connection conn, int templateId, int newRoomId) { String overrideModel = "0"; String heightmap = ""; @@ -697,11 +601,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { LOGGER.info("[auth/register] materialized custom layout '{}' for roomId={}", customName, newRoomId); } - /** - * Seeds starting balances into users_currency for duckets (type=0) and - * diamonds (type=5). Only inserts when the amount is > 0. Credits live - * in users.credits and are set directly during the register INSERT. - */ private static void seedUserCurrencies(Connection conn, int userId, int duckets, int diamonds) { try (PreparedStatement ins = conn.prepareStatement( "INSERT INTO users_currency (user_id, type, amount) VALUES (?, ?, ?) " + @@ -725,8 +624,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /* ─── Room templates (registration step 3) ─── */ - private void handleRoomTemplates(ChannelHandlerContext ctx, FullHttpRequest req) { JsonArray templates = new JsonArray(); try (Connection conn = Emulator.getDatabase().getDataSource().getConnection(); @@ -754,11 +651,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { sendJson(ctx, req, HttpResponseStatus.OK, res); } - /** - * Clones a room_templates entry + its room_templates_items into the new - * user's rooms/items rows, then points their home_room at the new room. - * Failures here do not abort registration; the account is still created. - */ private static void cloneTemplateForUser(Connection conn, int templateId, int userId, String userName) { LOGGER.info("[auth/register] cloning template id={} for user id={} name='{}'", templateId, userId, userName); @@ -836,8 +728,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { } } - /* ─── Forgot password ─── */ - private void handleForgot(ChannelHandlerContext ctx, FullHttpRequest req, JsonObject body, String ip) { String email = readString(body, "email").trim(); @@ -891,8 +781,6 @@ public class AuthHttpHandler extends ChannelInboundHandlerAdapter { sendJson(ctx, req, HttpResponseStatus.OK, ok); } - /* ─── Helpers ─── */ - private static boolean checkPassword(String plain, String stored) { String compatible = stored.startsWith("$2y$") ? "$2a$" + stored.substring(4) : stored; try { diff --git a/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/RememberJwtService.java b/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/RememberJwtService.java new file mode 100644 index 00000000..bba9dbce --- /dev/null +++ b/Emulator/src/main/java/com/eu/habbo/networking/gameserver/auth/RememberJwtService.java @@ -0,0 +1,276 @@ +package com.eu.habbo.networking.gameserver.auth; + +import com.eu.habbo.Emulator; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.security.SecureRandom; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Base64; +import java.util.UUID; + +public final class RememberJwtService { + + private static final Logger LOGGER = LoggerFactory.getLogger(RememberJwtService.class); + private static final SecureRandom RNG = new SecureRandom(); + private static final Base64.Encoder URL_ENC = Base64.getUrlEncoder().withoutPadding(); + private static final Base64.Decoder URL_DEC = Base64.getUrlDecoder(); + + private static volatile String cachedSecret = null; + + private RememberJwtService() {} + + public static final class RotationResult { + public final String jwt; + public final int userId; + public final String username; + public final long expiresAt; + + RotationResult(String jwt, int userId, String username, long expiresAt) { + this.jwt = jwt; + this.userId = userId; + this.username = username; + this.expiresAt = expiresAt; + } + } + + private static int familyTtlDays() { + return Math.max(1, Emulator.getConfig().getInt("login.remember.duration.days", 30)); + } + + private static long familyTtlSeconds() { + return familyTtlDays() * 86400L; + } + + private static String secret() { + String s = cachedSecret; + if (s != null && !s.isEmpty()) return s; + + synchronized (RememberJwtService.class) { + if (cachedSecret != null && !cachedSecret.isEmpty()) return cachedSecret; + + String configured = Emulator.getConfig().getValue("login.remember.jwt.secret", ""); + if (configured != null && !configured.isEmpty()) { + cachedSecret = configured; + return configured; + } + + byte[] buf = new byte[48]; + RNG.nextBytes(buf); + String generated = Base64.getEncoder().withoutPadding().encodeToString(buf); + + try (Connection conn = Emulator.getDatabase().getDataSource().getConnection(); + PreparedStatement stmt = conn.prepareStatement( + "INSERT INTO emulator_settings (`key`, `value`) VALUES ('login.remember.jwt.secret', ?) " + + "ON DUPLICATE KEY UPDATE `value` = VALUES(`value`)")) { + stmt.setString(1, generated); + stmt.executeUpdate(); + } catch (SQLException e) { + LOGGER.error("Could not persist generated login.remember.jwt.secret; using in-memory only", e); + } + + Emulator.getConfig().update("login.remember.jwt.secret", generated); + cachedSecret = generated; + LOGGER.info("[auth/remember] generated new JWT signing secret (persisted to emulator_settings)"); + return generated; + } + } + + public static RotationResult issueForNewFamily(Connection conn, int userId, String username, String ip) throws SQLException { + String familyId = UUID.randomUUID().toString(); + long now = Emulator.getIntUnixTimestamp(); + long expiresAt = now + familyTtlSeconds(); + + try (PreparedStatement ins = conn.prepareStatement( + "INSERT INTO users_remember_families (family_id, user_id, current_version, created_at, expires_at, revoked, last_ip) " + + "VALUES (?, ?, 1, ?, ?, 0, ?)")) { + ins.setString(1, familyId); + ins.setInt(2, userId); + ins.setLong(3, now); + ins.setLong(4, expiresAt); + ins.setString(5, ip == null ? "" : ip); + ins.executeUpdate(); + } + + String jwt = buildJwt(userId, familyId, 1, now, expiresAt); + return new RotationResult(jwt, userId, username, expiresAt); + } + + public static RotationResult rotate(Connection conn, String jwt, String ip) { + ParsedJwt parsed; + try { + parsed = verifyAndParse(jwt); + } catch (Exception e) { + LOGGER.debug("[auth/remember] invalid JWT: {}", e.getMessage()); + return null; + } + + long now = Emulator.getIntUnixTimestamp(); + if (parsed.exp <= now) return null; + + int familyVersion = 0; + boolean revoked = false; + long familyExpiresAt = 0; + try (PreparedStatement sel = conn.prepareStatement( + "SELECT current_version, revoked, expires_at FROM users_remember_families WHERE family_id = ? AND user_id = ? LIMIT 1")) { + sel.setString(1, parsed.familyId); + sel.setInt(2, parsed.userId); + try (ResultSet rs = sel.executeQuery()) { + if (!rs.next()) return null; + familyVersion = rs.getInt("current_version"); + revoked = rs.getInt("revoked") != 0; + familyExpiresAt = rs.getLong("expires_at"); + } + } catch (SQLException e) { + LOGGER.error("[auth/remember] family lookup failed", e); + return null; + } + + if (revoked || familyExpiresAt <= now) return null; + + if (parsed.version < familyVersion) { + LOGGER.warn("[auth/remember] replay detected: familyId={} presented v={} but current is v={}, revoking family", + parsed.familyId, parsed.version, familyVersion); + revokeFamilyById(conn, parsed.familyId); + return null; + } + if (parsed.version > familyVersion) { + LOGGER.warn("[auth/remember] future version: familyId={} presented v={} but current is v={}", + parsed.familyId, parsed.version, familyVersion); + return null; + } + + int newVersion = familyVersion + 1; + long newExpiresAt = now + familyTtlSeconds(); + + try (PreparedStatement upd = conn.prepareStatement( + "UPDATE users_remember_families SET current_version = ?, expires_at = ?, last_ip = ? " + + "WHERE family_id = ? AND current_version = ? AND revoked = 0")) { + upd.setInt(1, newVersion); + upd.setLong(2, newExpiresAt); + upd.setString(3, ip == null ? "" : ip); + upd.setString(4, parsed.familyId); + upd.setInt(5, familyVersion); + int rows = upd.executeUpdate(); + if (rows == 0) return null; + } catch (SQLException e) { + LOGGER.error("[auth/remember] rotation update failed", e); + return null; + } + + String username = null; + try (PreparedStatement usr = conn.prepareStatement("SELECT username FROM users WHERE id = ? LIMIT 1")) { + usr.setInt(1, parsed.userId); + try (ResultSet rs = usr.executeQuery()) { + if (rs.next()) username = rs.getString("username"); + } + } catch (SQLException e) { + LOGGER.error("[auth/remember] username lookup failed", e); + } + + if (username == null) return null; + + String newJwt = buildJwt(parsed.userId, parsed.familyId, newVersion, now, newExpiresAt); + return new RotationResult(newJwt, parsed.userId, username, newExpiresAt); + } + + public static void revokeFromToken(Connection conn, String jwt) { + try { + ParsedJwt p = verifyAndParse(jwt); + revokeFamilyById(conn, p.familyId); + } catch (Exception ignored) { } + } + + private static void revokeFamilyById(Connection conn, String familyId) { + try (PreparedStatement upd = conn.prepareStatement( + "UPDATE users_remember_families SET revoked = 1 WHERE family_id = ?")) { + upd.setString(1, familyId); + upd.executeUpdate(); + } catch (SQLException e) { + LOGGER.error("[auth/remember] revoke failed for familyId=" + familyId, e); + } + } + + private static String buildJwt(int userId, String familyId, int version, long iat, long exp) { + JsonObject header = new JsonObject(); + header.addProperty("alg", "HS256"); + header.addProperty("typ", "JWT"); + + JsonObject payload = new JsonObject(); + payload.addProperty("sub", userId); + payload.addProperty("fid", familyId); + payload.addProperty("v", version); + payload.addProperty("iat", iat); + payload.addProperty("exp", exp); + payload.addProperty("typ", "refresh"); + + String h = URL_ENC.encodeToString(header.toString().getBytes(StandardCharsets.UTF_8)); + String p = URL_ENC.encodeToString(payload.toString().getBytes(StandardCharsets.UTF_8)); + String signingInput = h + "." + p; + String sig = URL_ENC.encodeToString(hmacSha256(secret().getBytes(StandardCharsets.UTF_8), + signingInput.getBytes(StandardCharsets.UTF_8))); + return signingInput + "." + sig; + } + + private static final class ParsedJwt { + final int userId; + final String familyId; + final int version; + final long exp; + + ParsedJwt(int userId, String familyId, int version, long exp) { + this.userId = userId; + this.familyId = familyId; + this.version = version; + this.exp = exp; + } + } + + private static ParsedJwt verifyAndParse(String jwt) throws Exception { + if (jwt == null || jwt.isEmpty()) throw new IllegalArgumentException("empty"); + + String[] parts = jwt.split("\\."); + if (parts.length != 3) throw new IllegalArgumentException("not 3 segments"); + + String signingInput = parts[0] + "." + parts[1]; + byte[] expected = hmacSha256(secret().getBytes(StandardCharsets.UTF_8), signingInput.getBytes(StandardCharsets.UTF_8)); + byte[] provided = URL_DEC.decode(parts[2]); + if (!constantTimeEquals(expected, provided)) throw new SecurityException("bad signature"); + + byte[] payloadBytes = URL_DEC.decode(parts[1]); + JsonObject payload = JsonParser.parseString(new String(payloadBytes, StandardCharsets.UTF_8)).getAsJsonObject(); + + if (!payload.has("typ") || !"refresh".equals(payload.get("typ").getAsString())) throw new IllegalArgumentException("wrong typ"); + int userId = payload.get("sub").getAsInt(); + String fid = payload.get("fid").getAsString(); + int version = payload.get("v").getAsInt(); + long exp = payload.get("exp").getAsLong(); + + return new ParsedJwt(userId, fid, version, exp); + } + + private static byte[] hmacSha256(byte[] key, byte[] data) { + try { + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(key, "HmacSHA256")); + return mac.doFinal(data); + } catch (Exception e) { + throw new IllegalStateException("HmacSHA256 unavailable", e); + } + } + + private static boolean constantTimeEquals(byte[] a, byte[] b) { + if (a == null || b == null || a.length != b.length) return false; + int r = 0; + for (int i = 0; i < a.length; i++) r |= a[i] ^ b[i]; + return r == 0; + } +} diff --git a/Latest_Compiled_Version/Habbo-4.1.2-jar-with-dependencies.jar b/Latest_Compiled_Version/Habbo-4.1.2-jar-with-dependencies.jar index 70b49e342bac464a38acd8f68640e7c0a2b1cb98..470be101b571251122d3af7fd5c796f8d769ecbd 100644 GIT binary patch delta 117259 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

k{dhALA! zp-a9km$J1N`yM3Ye>s<)tM8j#o~-_gJ%*->va_iWoW}zerOeOtO(VDeH1RC>Q~9Fl z%~TBR;wy}Ae=b^#-kL_%n;%?h!Htus<$>v>FB*1@RZAf~N{3|ZuQQuc0MVl}AOQbM z9!0la+8g@e=5>evu(z-7KZlQ!Dp(vHo=I*+y>2iQ=*OaxTMqwWdCA@AqUf78McIEU ztXVe=l0Ji$Pt7DJae8t<8MQp~L;>TlX zy#|_M^Q%?SGfgL@F4+;jCpwY&f2d`=QmpcKBKl}2vMeh8l{pY)jTF@yNB@W8P*n9c ze`_rHu~rS3%i)Gx$@PXdHU1yh_UDj4r3N_{S>56CvRkq?*C6lza1?VZx@hK|PO4__ zKlQ~;noz*s=1R)D#&0}q&q8n;s@DX`UBB5XbYqVDe@O0q99@)o*Ucy*q1#-OJpY5U z~GM7{WZzzKi}6te&%!J7p=X-4M0v&`Mv+*(dCe$l6#IKzj9~#=L{t|m%_=P zQ0xB*M~cGt%O>RWpLRwIyRusUj}r_D)tw#vJCk{l=L1W{H`*v(xYs7z|L_f&6cs!O zP&l$=&O^7Nr-s3WPAT$z=%c=a*hTq*+87hjS6Sz8-9%3FCgfT)?J5uP9S1PzS~Q`m z|KjuSlA_>w8q_ZP`ae3jave49m`90OklGnN2GhzMl|_q^@H%KmhsRD8e}jyqqU5is zL(czbhs@vmxW4)xGAxRI;%Q8af@XF9B~OW~jD~Z)e;Ey#kG>IQKJ~~>7`k6R zYo>D1pG76e_1!IdNLrM2cQFK!Q?{o823W-N=8AvJ9LQZSr<0-?yY-v%UoVgS_uv4A*0bwE5I0gwnt0we=c0I7g9Ksq1;kO`;(s0pYAs12wCs0*kEs1IlW zXb5NoXbkuQ&;-yFkOgQ4_!96HpgEugpe3Lcpf#Wkpe>*sAREvg&;ig9kORmCS2;El;2ytAW*oNVyXj=nQh2&YL$ z-OUvfDV932S8FM)X=NQbk}X)vZmkQ>yNK1`LWiQM^h^(ZvMz<@HPy~)8czfI$WnA1q$3OAb1R3;w0Avq zl*;82kv-T_b?UKVCx8K%lu4+|%O>b(Q)MNe*|T&sjJX;(Br?aZf{96&ilPL$URv_^I;vJdq4k}kqb4f3e&0MD zMJRTj=kTMinXIM?R9jzayE@Dl$7WphPyyI)GjPGIwIQWm;;vM zWe=gmT9=XbRKheY$J$d19)-E{?P)`0MZFbJs zo_=A4bzcj{Syq-C?CBsY_t~HA=>-ejcT$(QLv2hVV?Z}poN4GlmRdG~GhHgE>YJUJ6fh7N z+l%+4VwEJrHeTB2dJeRhs}Lw~os%QKaG*<^Y@OvmH#wQ~l>_zXz9%dk6Z3lLa{rRA{DnTwOkGe^YSK)l@98iZgVePHW%Qf%-7=sqPN6ksIXv zx%S{}AdfN?HOw3h4YJU7^>U!mjGW%rf%bCpb3X?f!O2nm|4x1$=s+6hmJV^CJ)9gf z+=13`GJ2E)g|k%Kk9DAvoLgnQ0~K@f)I9Nxk&b>s$+%tyK&u@I?!>> zO@PLK&&gBE9q0lle_DlNZmL-Reg`^Wz&+$ZMVvf&#DR8ka_aHFbNx>JoqOwy1MOyn zVua_e1}I{~-Z;>9Ta}DQ7ffVH?Xz^GMQTpdI_ezB(Mq*`&Yt=GtE2T{|7^X5C;*1J zw${UunlX9ucBDRBPTbReEb#XNUtrGdiSs@%y|t4W{Zv8BFIOgT4^B}j^xB_r`L3(g*@9f`URD9$w7Ox(vj{l$+PPn=^{6F)n-Qu zs-%iFo^#bd3s$qTD4Z&b9kiBQyYFzMw%n|}-Fqx~h3aRD(jyWf|AZsFktmy7^3V=r zKKaa?96jJj-*7S=7>!we(|>g&XCB?3>fc{;9CT{fb7u)(kg(D&Uv;GWT(0zvBW-71 zhd*?rhs?a`v|B zL*YEQyNMbei2sTl^q-{&wa+Dc?cfJT8pn=AV{<18Ve$hpe|niK^3fTQ%cetHHXzg* z3G1y2YloekXcb$_jMfKx$w^hmV$*(dbE2)xa7QmE@-Q^R&xxk8`d9@!Q2^HyUB!t8 za_-6)Cz{E)DG5$gg{9Ur0|?ytr$@T~F&a|qYtIvHQGwT16HQ@?yBj-^ zj+3Xqa-v*zBxCb0KMXfBF?nobus9pg!&aiQYc9EJBeI<+j(g_i?!vIw@PuZ0sYx$H zME7+fQ|)n{6WLoU#r)LAiAJ!(j~sv|F`L#Soyd-B)sJ@~!Oh<{$;oJ9CZfJD?ha>t zEw@I{&RAq6;3ppliOB1(G#YyY$KY$9Ix5tMA1y))?O#Nz=M1nlz9dx>z{L?s*Eu7iW8-9 za(kH*J!QJf?>dn!JA&I^IMH`ZH~lrLU`bzDdj3K^XyZ6baTX&xL}b=*h6IOwa-vSm z@a+oDbcU_gNr%VH^C9k$9%?G~;r$IRA{P4P!qNR`TSO?IYO9`hliwO(x@ zWe;)oG)%aVRa=P@VY%d_ot*AWof*yl_JHQMp=#BX9~CO9hAVxa82w3R22-VK(k8BOrt@5`{c300$wK$o;!Mdb=~la(=^iID zet}AJW11dyrlma6JX((EI}0N+MQ6|x->6)2(NfPi8>h@`7tt52b(60;(>s>>g+br6 zt!!yxvct(xu0d5fJKc;rmqGRp-|pn+`C@AgXX zsDtr(D$Zj1f=Q2-5?b@ZnLN1aqrW>-8F$c{H|Q14efJ)k##-6d%!M{FT{}w`N@av5 z)-JSO729j?Le1DMf7sP)&Jl1n#EdPND9>;qXHgQ9i)my-tWdSTe3(E6C@FaV23uuI@tLGG$6~ zp{9)dP2A99-atM8WUNbk3@lGgb)njfkyP7tNPV=)wvu7M%SKrWnY(>dH^_|V#(H7+tSj7zGt2rw{xMjtcD*tyU<@u=Y3Zfy2<@? z?OPW*QAw>HR}FEY?Uj{~Ep85S{0R(Q5ryp=l2cLEK0BeMV33O9RO~xytH%SCX?20H z-tr`nJKKeF*q5D}@7{F0jfqL5UWF+1MP>U;6$K0N5fq#>n|UrY+eWS88$=$8X$EuG zB0v;kji=X6EpwrKX0OIZp!usQ=E`{&nnY^q&TG)sts7eWinnNKdpNP)MdEA28>BDiMbN^5w{HzmlG(pZSc z!d#8IJSx(avUsRoU32o$EHJUtf+s9A(M+tv_ZH$qO*yojV_j(xTb!sWvp2s$NZ>cI zaZNZhU_&iyJDSYNjNYzPY=}toaixjQs`eh^T#b`>%tTk?Op-qxLSt8T!)jOB%XItg zMhlr(?|opJ7yRYFxYAtaf67@`8W*kT+E;L+P#&_W=57?k#X4gL--=o9XYEGsIoZd~ zjb^Hl*qp4i&kh*Sk zt%8M|^_tYV+g{A9=uTTGdFt8$+ykjD2fMJ zSgsq@W0nTA68rmOvaq%n{XV);f+%R7OM&7{i(JHQ9)0abBbkdHz1-+C&tbg=xKZ

}HG^t(odZ^SNC88E(d9=&b@b89X(Q2i!X;!k!6_MpT6<`Rpr7yJeE&UYu(9&PEAq!ge=`Wb3x26e48zY4Y|lyM4jQ zH4u9i+yOa6Q3c`cE5BZdp1dDUb#^bdkE)*zecXkf7d9ehXDm$U88>$d)xNWKr_=1?>~^0R znhhRiAS(E4Ekv2K@LjB!+FfebRtIjGCSR>bsn zMfGHFDo^lm-%FCUyIB4e=>rSiL)}Kyyr@xry$(lf5n!a`1DUyZRw2?d2<=lB+ zxYIt)ZP(nL5?Ly9TDwyQ=U(pMPMsMyBiEhovRv0Ly_&WNZqiFpSUnALjo#)Cr6|sq zE84MO^CwoOh(YcYz;>b8aCfS}$(Cc>DV|Br{LY=$IVv5@oa;`3T&!z}JN?cL$o|ot z?z0@Pj&keT7wU1yP7nfTj;hjdkeIxo9q#Z9)(pr+xUmPgH|OpQ+p%OyU0bZ40@aL|s!6<#Y+b#NxEo__^NzXG zFg9&2=iTXsPR;g1t{lry{uxNp16|}53bD1Cw6T?YcA?U zE*MG`CkM;*a_>LfN#k}@eeaHSz8bn!s5G<oh`E^!e zpe33al#F{Ma;Tj54w!iu!-qjWU$)PwsQkse2Ob=Sb)2dI8;`qVX_po;Q zM<<3UJe}rM(}Tuxg-aTO4VJ_1ED!pLgT|9`-j_eZU^{FpO1q>OtYuVI?c%yJv^ua_tM&a9#o5+cCe%l9o&czfsxfH4On1McG_4l3UL3Z5WuN;njbqw_vSc#WEBJL*2c6pGG zHuMJ%dc>5wz;Cl;M{2;#jYVZxF@Dq=RBFQnsZz(*dC+5?^R}V%CYEZiUpy$1`CNFw zg9NL1+IbH$WsN%Y{_~3$b|xlsgAIIg+doc{zV!S{9`w#mwP#{X$COaiiY3JVhGm%O zJ6W2yrw=@+8rSXjC)i+F+rIUnKFt284-mVha$hq}{LSNEh4Csl`8Lr*%wf;^k$ zNl{$x<%1szZJ>57&4nMVLaMkr6G0cP4{AgMPf}GPg=t5%F6Sk3M}p%hnh4@-*yW)?3tY)J+Itw6(C`AT@-I&ei^&M9kpL zp`J!_>pH@d`r4`LCr|SxBEcnt?lv^3h2Qzuz(X5VnQVEw^d)1Rp zaDBt?c#;F>7XI!@KeEClzVS3}Bn*A$Nn34|5{E`MsOE%mw%Y1nN_=Jkmd@HJ3oiuM zR2x=Xd(jNm=TvtuTFxBa*L%?*?#i4HFLGn|by%nutu<2)SwvMYgbEdfnF(HW)?O+6 zlh}=P5OdASAXYPVdR84Jb<{RB@S>}>s_@L#UUc4El_*L6`qg5r@M`i1k5R}@+LjzI zTF)BawU-yoHW=!GUi2l)yF-KXTkgQ-3~*!XtZLHap;b%9UG$w7y<-OFP4l9g+`B`H zyyy()HeQ6*@=SWCqQ%NYsOUbC`*Uq_Vy;jB;DzCoUV zr_$g0!Jz-~)Qg^Q-`#%hMK5`%UjX(!Cb!4Tn-=o+PCFlOO5@yxe%_SG++U3HCTGrl z9_>xJ95E^_Jvj9^s?O%Bv$VCz-t;>+r})^E>Q@jv-{vm*75f{SqZeD(NvFm>&6|GX z4ti71oBWxwS3_@#W*uzW5-s7}<*mKxinVI$(6|xLBVp>YumhA8YM|+_S!e=H(kc8 z($ZV41+uhtzk1V4-o71oy3ZeNAn-p1u)%4_h--so9NJ$=Ir*2OB!g&FMVr#EiCJqpy5JM-GO z(%7ZW7+uetg%|sh0shu`9L{B>2B(tvYGX6YYUqt_Ze}e#1+WHo!NO@Q<34Gwr}> z0B~4#I+y&!8DLmw8RSDc4~3U)+hy)pbmj+eJMRaLoWs}{%A1mp3hYVbGIjy3baAp!MW^)og@+B%q+IEE{KrJ<1DRo04{`%n*M z6!&)Zq5iDGgZlWu;;CZp`ErHTZ{j7m z`bv}?LraD3vRs-KKrHqTGq`OqoO-TlFb zIytNQ&$Q_h-XFYWRZ?>RH11k1#cK;7qLGa3>Fi6Vyj4Fvt>#NE?34vAIGiI7Y?PU* zC`O{lL3I!lUP-FfG4uQ@nWFTGifYDcDB2D7#awxR zfUhx%Xoid|p6S|5@ueSCd-u-pr8uUWP~c0$ZIs_zd*GELK_J#dPy;_|B+lH%MtreN z7#N8x_N6c`(7MEzj&t}mc)Ksn_d$1GPWrOI4Y|%wK(J zpN-;wUc>E9^`YHo&DCIG{csdzC}$(m@2g$jJHD9rl?*)Y`%(bY$b9Had%0?Q?MoXC zyWG1bU0wj|eM#hF!fPaaKR{?=;6qG!B4b$~`aJTzFP4jn+VQ_2DxNZ~TKdt?Tt}ge zpD}PYRp&=-oYZ!h?yz5t8lvw|KWZw$;dX8H74T80 zp+dIQ0wVmViLDZ{er;TfvtY5G$b@xBR0G1%fOam)kIH$P+3>{(>s>Hlp*%+!1taSQ zxl}(o%Qo*#eLq7uc>Tvlexx*XZ)ZPR$F14e)z4^q3tD+!G=+a#7$m4t;@_k9#0$CR zYTd(+Y}udfjz$`y%KDLhMx_zxT2t)?BS2oIkre?$>SbcGs>Z+6 z&gYHv`)Yjjr$lv~OB?PUKn13Xkexn&wlJZ?egQO$3DtV{Zp%D3gj*90lU8}10CaOn zU;wREw^g*Pv;dlEs%kYGN3pdax!IUCm4x%n@(^OtTjY_s5a#&Q8r2M-FSwS4poG~* zcIoGO0d$KUvfJ$gU{{nB&-c(Q?}-l3;HF}OWgZ+b>D60mc6kAGpY{K3rvN(5J$-C& z0Ig!mgN6sd8&{NjjSL`f9w5`E1khBLyT^mw7I`Oe6^pZi;@@D}QTWp_)80v|~ z0WcX#Oszic&Dw+&!ecjHnrag5mAa9lJ$xHr)TiC=1ISn1LD6ni45Uxopt4GVRBEYe zTNSXwHxfoIMcLgXu`fLk7Pr_w5T?ac7f5xuL}O%Jt)$u#<{F42yejGA9!Lo`D%mDD zkdBgK?RJf&2S;EncE-`5H_w~DCIE`A(v>w32 zR;(1*;n+Yr!sH$l47)KLSCdmzf}0?9=*b<2bA@@MrxnxJm&Xd^&lBO8U78iB?Q zhz_*^iLWba(MqCq;nfng_fUU}d-B0EqX6_P{;T=CrOidJ2%C~ofxfqPYgx^=?VI}d}t0N8e# zE-#S$cu=IB-uki^7VU+e|BzCg!nW7ub_UhTN)o#KKbp&8Hi1Ng>d_JAXU{X2LH0SxIX|4dKwv2TDRxxAgalnt)d|6#i0v#n;_#9o$78@ zS_qxLja4y5k+D052j{`~F1HJ!g&YMO-}37F%^>eA&cX;K3E!|h*l5d;JcK=e_6VXq zJW*Sh)@=Jb(B2t6+ycKK%tUj5=cwKH3Zf5eAMQa#yRdAU07G!HJRpb~hN+gNeGw$X z7g8YWvV!ESE!E-J_t$ddru1y1TUn0p0>q?MYRN@fB_A5mCd$NQ z`AEauD2w=O7h45U_b5el6J)cTluN^lBO}&xPETH*|o>ir~3|$gryr(eZhahUn zgdQvdM>@q(?B4D^8H3=8L;QG%-*OflC&_G>dEMWfhDa3{}%r z>tK4IQ>L_c_Lc2c44Prvf}Aw#n51yWYDkn$yTqh zru*opW>qXh6+bgZ09oA=)fP?-CLboTXL>N=B#PR`1;J#=)$LgvET=G8M`lT|bOL2E zX>BmA<=jW>gDKuob=~*v>Wuvr{hY$<6|N3je2F3O+fE$}hA_X|A570!=p%Y8+qMNE z;z~iv1pNzJlh{}|%DNU^2&PP~>(-@UYzippHOVbMc?WehR0Ei$XQ*m@-@C!Y0$B6j z`EXl!>^1!VApj#s60MRbs3SZ1^8H}y%p%En6^u}YYS5k92RwJenlyH2M?>591~Rfz z-|cE}xnv2t&(%20q-+hOHM@!-bclJrTq%S?JyelKXQrTs{X@vc(GtmQr)qt_`B5xEUu7w2R@OY?Ltvv6-qnNPD-; zhgIPK4>ZJ1^MMwst?3X#Z>uUUmcxf#&m`K+3ZY+_x9IOf=$4IYeD}x$lhfd|6&js3 z`Cx&k=$nP9PwT%lgqpC|^6fkq+xF<#krfP8Wj4vf$v6E^A%wRqq+rByNmM1rY=IcK z)*3rPXckNEBBs{Y?5&+X6GFC}TXrslCh&yW{bq=9h-_#$uKI3FnDJqTE|zTl!LwNK zA0gDh%wG0D?tz!xd!y@uu&>cYl(q|{2BLRMIjLNG7lO@qrIUY5=zM+-kbV~h2<9Y; zeD6?lR%k)mtq&n`c_V4Lk2*_5sIp_IA?o)(JbUf&=MegVt1qw*r8V5R4ChdKYOb0b z1)^C0NkQE54W$>Hdp0x_UcAcniU=iZHX9LXq11+5vWYcA$&3*SYKKxRkD>>w&wF%& zus4cAeE+5Bnw>}PA}2^srdmd`Q0mSSU;Sk$Rbppw(AMIRum4v3wp~N%BiCVzjGC2|91|i( z*1Z7aW}+EFfr$#&L+tCAhvN&p&_CNhlr9-~8yG5=%TgYrzWZAU$Hs?}sZQmdogFIA zEJy^8d7)I1bA4BYV(p=Fi&sHlyvSJlOQ<~BDRJ8!3Z+wAMdXoCDq)2?eIXRBbM5$tg^jQseX+KfkG zG?*9hmT$wbS*hYq^^3!9T47IaGImqtofENdemKqq9{pCjRTJ2RL13|C#s2Wc9Sz@Q& zAJ~@+YHe^hNnL7`7_M4TwQytD^>+1evQAc#F7F$TbE%4O;tJbMdX!5xT=G#;oBB;S zC2(T~xK8Qw2E!`4BHxH$F8d6Xw$^T7IALa&TH34Qw{6D*Z7i;M;uJDVUr00yaRZ-r zTHfGrn#pc_!0h1d4`Fe?4`*KgN7F)!8yZgUc!d)^E!=pp`{vAW+QEWe@O?N59?Ge6 z!l^ZD^jxTv4F{E$<3On)WIT9%xN#q<+;Q=Yju7A;Q$7YNqQ8@iyz&t;JkeoOIPT%8 zUg>^%Nc|m%_G=olLEX#)6cDPqbKr33Q`$78iK z$HVC-R{0^P!s!LKzvr27s?FMeXHwSEsffro3{%|{R$Lm6kjaZH;k492(arY=444eA z4+_#^5S>x%h#q4lQ}>>RQxV(2Vdde}&`cSzBd^2h6|=hUuW)$mNZ*v)W>py}LcdXETd#G%Pvu@U6O zUenaH2&%(E>{N2WrW8yUSg1q%IM$5EkQ_C;8WD7f`F&J7f_59$Xk2v|hbfX7ZhFI@lu@2|vYqHL0!A*{ZNFfL#=wuq1iT%;i{ZWBT6 zSnocxkC3-WW$qwwQH6!H95>_YG49Kr5$Jq{5Ysn;61e7`{Uc!CRLz!N1MbA2HI2*- z2kN;sdj~@bT+VtpIOgR1Q4!cAQRNy~^j$5_RX?&4z6B9z*r>4)^b@lZIx&JCGWnvl zzoo1O`Cbr~y3EVun@)?M{Y=vtrEy$RHX-c$2&&8F3a(7(BZVAmsd|)4t(zA?*SXa6 zMG?kTUUd;c^LXw&vnGPhGJ)+s*PLvFCE^Y{!vz;zpA@to1L9@h8mPXJs=5o)W2s+IZ&dj3`RGnph7*|>DGQzrFBgl%2?Ya_y z1DHx+%R=iuZ;Te@nHvO_b0dOsDk^jC)2V2~YzXt2x)Bq*_jUxWWLj(PMNm0cCLTu6 zD9-hJ7D1<&?9a*5yM=)Dcxwae(R1YJsroX4GC7{Kt=)n5*PvUG##<1KvHo=g{my-v zIJjnii4kpXxZ0sZX&*6ot~4Jn-bKh03bKDLeTa~^D3RQAJCgjF7c;1JF?Y&xyaP6f zlYZ8b>pK!u`yfez~KS0Wi$6k4OBt7DBdc8^{m3b%^M5`Z3 zE%?~DYvV|2T21A49~mhZ*YZU2rO}bNWvI@u_;#N^=`*IeXh$XG0IhsnB>C~Kc&okM zHMe0p*dhwM*M}7=!&gpP-5HT`B_io~7epeSsgk$nN74YUv(4g2a&b_7m}b5>Qck85Jk-o24@H%L)`@LMGHV$_xoBjs9N zR$ux!l3Mb!4j#Wp(l2}h^w#@G`jQ_NIOP2y`z=%mKFgBsF_`eVdfi`gJ=2`?D1$d!$irAaeFcQ;?Xw zOfFvE*Qi2$*eds|SA{09jxMTvDPc9Dm<|2Z;X=Ic^fexj6S|e~IIw4*hnElFzPEALFp(8a9$PXuED3h0lD3Byj7<)Yf}Xw3)R9o(IeY;L7xq=F&w`7FSe_8 ztX&n#XKhZ)se+}7()J^{RcJ5=Es9P4Y@|VR4p%T3lYg?eb%pHx!U0tfxK;(*52_-M zR7nq{{<-^Ob5XF5@zNAmJ{s-v(ngM|LOogYo{p|UJEyDCD{Z6b0&Bq-mnh@q$4OpM zRLmV2<`+d5EAgSmpEqt#4998yj>?G*)vAX?(O2PWSWRsfMco~hV!i1cMQeGhbon4C*of8N z`j=0lh{ZD_s&S>4kbX16EgL2ydj1gwC(C;i+(0e)Wfc9zeUOOkuHBVfhqrxDFu)yw z<>Y^i3M=hGc2%0{t~$2KC(BzdsNc_0`CC~(OV_h_U{wm?PC7EQD&@0LOBq>}+HrFJ zn5xF(N>#^Ir88XHohl6qHe#UMgja?)9q`T@s8!bDp94eP`C4!JXI0|cU)JxcQeUMV zdqzgnmzGKxuTsjR<=Y{x@pg!M8AORgGqZ}O{yfx1*hS-7C0ocg0aJ>wahg@b;B&I< zMsJe~pKzyWTI{KM<5<;b8pmg^nl+B5xG0r7X=pS>voh=&5lwAvRIc09X!^-ZB}hGAT!*$&nk=>|`{}sH&Q<7elY( z6ni~(#K@((w6e3jZFagxJV6w1J!-UKxEk)`OPM zW5|;`zwy!h$ty6fHrg6|SMK~p`{kJ5{d}orSd9|c8JN?!n!NTUTmGVHHCh;~lG6uPqbT;@_l~S) z?4hP(s?nYRgj%lpCfDW7EskD4&m3P0?!X+kr0JS;=riQ8vj;WF40l z{qyhDj5l&_zN$t)@EbqaR;CMyicofPtZ~WzS86P+IUm|v83^MJ+TCm3)j4Mcnd2;^VSnA@ZOkvF$bxz$zB|5Kv z332o}8H%$zFQ?h{)RZJ&1=MMc$fAgv%76yoU||Ul-G4<22bWym-n?~()a7?@(#RAzV2F`e3%utp4Dkevg*|ttp?{T!2~zhO1V5?#a{8) z2&wv;G!%a&!iElJ*Bd#5wFU-DgFPtoU| zbTFrH0T-3j66oiyKU|K7?V2hw@dk~LdJtHr&^)xQyQ<5(bF#j7d#lq5XGPiWmamAz z;C))ra4Cr?kGfQyTtvtFazd_jp*p2=E9)ZLkE4J+?o~IATg!*ljkm4MpH!!c+^05w zR;P<>u(8abeQIPpo>x$!{^jHSXKO$-0+D&_nEwk~yN3=v%*wd_JG6?M z-DE;MeehOI`QpcTI?lt%b4@%|=ZIC?eSJO<6eF>+K{57SiKlR}@1=~(ty&*Xm08x? ze~vf4`INXVp1e2+-|BR{@#&uS7vk|)j9PO1Ui((^RkZ4(xV;RIUulx0H!Dur^>{kX zyG-dt9>MZ9nF|z0MJ0V-VaY7c{Fz5q+PlZ`^gXwx;AuSh_^Qz`=+)D6JyB#R;`qvt z7UU$reBZZDphC7#Lv0g`&rOBdCr~0^DLLNq^rK#d2$rS_H}cyv29KAD(;tn`Dav86L@&GLlTTfrFIQZptT$`=s7WgKJsAfS(re7 zI4hF5%M<7=kIU@s3AB_eqFo7y_bLRlqX~E+UL`{=Cdexdl9R@l6DW=8PP>ypdw3RT z{3wBLvbC=AB7rvW>{9kRLF$z(cK<_ye2-8jUz;Z4#;i(~S|rj-j+O6mPwzJar+?)1q^8mT(y)QG7qpSj}VY9h`EBw?McFhn=A zP8dfQauVqcZ~31doG4cgvN<(IC(>ySlht#IKb{T+ZQv^US=7O?Hhw0(14^5Vede9u z#r7PZNcCBKTW2QX(7&qo-m~q#moU`2n5pYUL1N$BL}>P6Xon$QRe+3_95T>a`HqyX zvISnPi^&9!qb)m8uy%D}B91XBmOd@U>+HO@v8|KtTm+D76|ci{*9L~<%j}N0?*&%4 zzzSr1$=&yHd7^RiKXX;0e1%Oma`&1<>TIrT;=vc27o~&ZM3I|Z`(Grj#VzYj2wRN& z`ESBU@lJd%CY-oC(HOb9b}*5qutIh_ok$jJ7vHvUAm6c(~>H+_RKN6`2H+AakL^{M(VGCx zUUYNr1UtK$lISE$e^})tvgT1a#W9I$u^V#6HHmDPW|;>b;OFEs?IXeysn=_MVveBizIr%$&p_s(LpX&7qbBt z>5{H{UK0Jl2wImU3gy}!cT1uHe3)hDL+cH8FoWmK#O-cr7zOG#1hfS`k|>_X$&ay1 z9R|a%AFUG`d(=WtkJfj>Xt(Z@M042PxP8~w>SyUr*@!}i)W2!m7?4E2vLjV3>FuOh z@=T)Wmy?W+y;YI~1$;Fu2`|j3k?Zt($3v@Ol_tO{;r?lm!f@4|j!%-8PGw8BO-rH! z+`f@>k|>G?|9TL5&5~cSGKq>Ax4{Mw=Jmt7U62sFEKiOk(KoE`ImePHfTcMB(K;QA zW&Y_Td9Ym7b~Xu1YL!gIk0&^@9y@g3;%ot33WUkPy9QojA4=%Ohrmu4TBCzHp-o#Z zCK)~JW0#YtkZE+dmSl|JJ-VJm!?;Jf-cFKlMalXi?k35ZS|+dFPok>KoAu+QzjryF zCE)^qlGVstkGfpI4EYXDO7~j}8eN?>dDM^+ufl4k5 zOp_^-t8o7P>cwJIk!fKVC7CsnF#~&ACgaS2;<$g<>g)Y+rY8jFLGg}35Z)t`7~VF? zG@biqt$VV3Z$(lb=$lN{xl7lDCe!zo6^X;%H$HrWz@UdSPuD^h*$Eeu3Zi5?mc}L1 za4zDPmMrg+NkTeQ(tszI?E1+R#t4(Lk|~;N+SM|dCa{&bQS$ht1|@GS##F?sMe27m z)URNOta-_h!RXe>beCy$g$7S!TCck$lLtFC7P<~OU7^79Z4KkdHx{Er?5ieCT(`c- z)Q{`DJ|LOO*&8_hT{1Q0Vd^(Ine2Hm^&MP&*A#Fv!-0oeaUA9XF%6%%O;-SUFc5QA?9{~0uDC`IDGk9}15k|^t?7@+l)=mvu1S`Ulu5~q+LTP=IB5o@c*uS5 z@&H=O3iR$sGFfu(#vGrsvIBbe1NLE*?e;yI49y>zC>d&XGMTz@A2+OcXz(d$WtjE9 z@SZ6=r?bg)nMuF6kW8DH+tC5OX6djSYpo43lWJiuvXby~DB=`8?X`E;lJRbz($Jx) zPdfhqtM4V2EUAl0jQPk&?u0el+}p{tmWOt|-;#0OLg~zs4`x@7fTensg*}`ws9jno zxTDt}B;)ZpD+nUHFr=gY&kCXgZuR=A-#Bp+GgB}_Y7x(p=@XB~$ns=)15nDX-|xvZ zl$GoGt7JSYs;cSHptj{SF!rc|@WbT7)dXm>-zF0tX_n=p-lIleg?zi_xs_co6s~(3 ztf~5C6|JLZ3Vmm-F#3GZ`(6dP`NqjoVp!qVR?NhV^iFVR5<*kxE)&*=r%)}H|I)U@ zGdiHL-nh>VAH_>V*T76DhGxhjzf?(~ZY=*Q)lx{u$;|i^9H>zorX{D~&b^Xz>yiN< zKaz^}$BMGQ(&ZFWrxO+yOGl+(J6oOd+Pc44@kwzD zi-B;uM<9ijzNNylWm< zUT-Bz;lx65mZgxLaBCn{dPzx&+>VnR>5%=Lle8*@zU7fSXnhJj;tsesJ8-ch`25nA z`@R?y@IazGMN=5olWi~nt@ud^k&in4#EC}IrY7u3 z!IOom{${_VP#Px-52w(5o_dF#OQE+s(B>yps3m2;-yn$ljEjV{cPVs``{wo2Q=VgC>Y6(m z+;L#+3Y>GN~QU1Gbg|~xy`Kfa80GP%!-G1Dn+np>IbCKCN_p2tESQ= z&b<_$YFrPEPD`cFY>xbDFTVRFCQOV{sCBT|fUgk0teXl~AhiXIqd0+8g@tyrRw^~; z{+`sUxamr$%nls9LZhpQ65s`Dg($O`n_917s?j5;{6(sKbx`*Iw5(M6z{#o2F@3Vo zN1aF;+z$*~#yMU!;Impw*Y|bnRQU#%EH|@VDqZ1Z&km_%!|ff`DV0VswU1p==`G9V zZJ$)yzzf#ZBT{Jr7pp%y6~}^W>yQ=oqyhX|QR2Y`(-=*SCfU0c>GH@eO zR(xtwD&6Nb@wWM?@+O_kZMrCx=5g|IaVm}DA>6M7xSZSehg2HM$x8^8xU+H>>=+(3 z6BT!=WSAw&bD^K&Xh%6p>aRravUDT=to@gK;d_^HU6Kzxy-3NyY@)@lNu@T7ms;;- zmAO!yvyLik5+s=3D&SSt?yO72$xqebaepj5*bMYAI6l_Fd?U#P2|Ye-wX$ug@M$ho!kxh z4Xq$nz{{6XjS-`_S5uAW>D}?8S#GQfmv+Z=Ho=MX?mkLH5u#}q{0Nk||FvAFOuhrf z2(SV-LX`ZTMrPUuN~0}YuA5mJ z9cAQh$=|dO1@bNnaT_Mrh@5YeM$JrBd;3g$eL+6$@>#@GlOinZ)`?QJ5Qj8*Q&YD0 zl5?6oMIn<_-TzKb#N9B1Rlienp~qWvLWt=1wVd=Ng+Q&hZ<@RzD2q)CNTa>X+83c| zcm-J*=Nkp5}(g6r=&3Upc5F9l8c(-Q)-H#dxF#kVN0)dWhn=DRfcl8z+*a6%f6 zSScB=ebj062Nd~L^ee$rTR8WT247~^H*)UXJ{7&kyp_&Oqmg`3rT*NcxNGP)Gj_YG zX`@i&BcqM_F^!7Yz}_ltv;I8B321Wnj_!{EpyjVcd$~DT_>ne^-Sb~x=Eb#!;N~#R z7_G@KkOfQV#Njk-lqvZ}9z8l~8<;hMezH^ky14@*ukPAdS9ZZN0I!_LBK1 zJP6MW;o&?y6Cg`#^7pO`C**oS*N<@9g9En}MnOc=Ee!gT**P87rq^F-)P@ChC~PPPWDTuPmFMC zV7hz_SPJjSkaWUt*U03V5$VPYwv)!BQvg#~H#Ob3gMMp9I_+aYUt6%GWFUI8o&^uo z;*sfuz|45*xxAf~ZoKh3Y)(2&XI3jOPN!eFaCXYK>lUJgi})n7io!<9VDvCN?L zOsl>wgEljPPtF;1oe^$$WZ=~Y#pF|$?wyB2<|VeGUp&ISi%T+~a7XkRG>0kV24zrp zPM(a&kWX==itNlEreya-FHYw9nM)0h&cHAHsPCWVy#1jUzMmjop2XzC-#3hv-zyd` zSI?kVO!Z7^1{L#F&wg1M^ptaRT4mtn8AYpB{p^SJAjeMPHjeeN<#7{An8IU@Twy)K zaBs#EtI;9DI8P*Y&M=1RPIb$mFSzac-Wl?Iy_D0fz8Uh}Qkg9M1`TEkZ3ku;1A{3L z?^{NQAD%&n6~f-p8S;4?S!(9E4D1akIsPzjbMuyHaA!QDiU?qk`ZY`&@%2I(g19#& z0|(hvk^0j!XbC5u&di`U?1$aQ?+x|hnBdS72QdnS;BoP~Bxgmb2iGMHyJX zC_>T5HmK1T3o?wh+rBu14zSU>yexw(c~yI)sjpiYB$$Zp78OPGJ(__4g2$!|`2x6X zN!KkIG>98@`~Rr=?s%&I@9|#ACd#TLWN$Ky;!am2JA0SC64}>QL`I^>jbv{T!bM3X z4ap|TXdpyV((n1YFZccXeE+$R=i_zH^PKZM&wb8$p3@9^d576nP4L{A(g_j|%>Eq) zD5gn~;AAaI(kg)W=FPh>SH0~(X@v}@IjyU?lz_=JRAm!@+fP>M(xe))w4Z3gPG2z5 z*H1OU3tUQZ^O+{3gG?L$7qw$7fD-Ud-MP^N6#GcB_h6My1+XSCkni>ZbO__MZ!{qv zgvGdQb3AG7HQ#U`Ya&>SC{~EOA2orF z;?$@nbPs`8U?JrL z4ASJU^jgpq0@lZ>1)-3AWFM~{2GcqY#I}W}HOaTs2~3@-n;-C=*#Z&N^v9&Ik{UAPDah zWK@THY3=Mw?S5L&ZR8wy2PBMrf^>92U(&sEfEy-SQmqpn%-`xbEpY5BAZo#3_F--g zL<77?j}pOuZ;|QxN#5_ND^Qi}rlF`tk$SA;)C5>26cN)pif8u&h*laB%1awyKHC6a zjmX}3Fp@*BY5`wk3S8i|UUfGBx4xUCu%HFWkP|^t+a1HRV6qm~x&1jvX}e=lcTLx# zD#t2sXhCtv((Es^H4kyZ^9AFacSQGp|8MpFOLNbb@ae@ z<*gjhV5F(6d0J2@vWhg{*MgJ1!2(FC)`Fv9!Nu`fEr=Bq6Om9Q>qovO}!<9YWGQoKwAK8k)SvB zkt=^{f%wc6fPwW9U>XInn<%P$DnRe179@?d>-Uxx95)-5%+?6r6SjCbuYwf}SCL)+CRDJ+a`g zDaTO2MTw%?Yw#cX>`O|^-~|bs|I3n0s(B7?e0P*lusZ}?LqQbyqn!R z3bEvfkl@71Lge}5D5}*~QUgVO7d)#hByVFN56@aET3ffC50dR-NeP{op(Qb@_y;Wh3 ztISZ;H<4E@P!I^H34dL5Ktbw=?4&NBsMp^GcNFZ43Ip(aqrmP#84RB+^tqk@*1}1h zz*USB5f7ltK>q9dADKme6gYWPMCrE&J?Ka}3;Zj0L`i|2xQv2gkygmXgm-)b%X$kt z|jAV8EjzeRvP+TFBWbkZq8H?noXA0s)v{%t?1qaOezBw7x0C)mH#;kbtW) zupJ#Hu{VO@NnS1hLj~y{#*dZ(-arUBJL?f8XEg~1I0$sKu$@7w6a@#mhA|hFqo6ZL z@ntxhWn z_~cO-raOKwj0M~hE%sA(JP}grI0|AT$&SHyKA%o7!jLD+k(jAHVSvyq#hI6rT=N12 zr)Yz*h4i7oLm5iZ=M5OM$cj?0^j;74KD$j~2bOMlS8e2igea@HUU&LIYq@)-G#ls))w$8GQRBnozL0sz+a zy3B+d0Fe$U)eH;pAg!UBf_1=pkI-PK`F%oBb&^bTDC%piFqe(KS+EIg(@TE-{9I5QjR$p!TSNJOhh98Q-hiOeGvts_feWAe5Z9XIj`Y3YbqQ=<=ZXj7k7^o?=oG&6xVgK+ai3LH)>j;k$;S-n72{L{T?k`%SQ* zAan$juGJWVxnRdissYqRN&IuLv950h{|)R(sgc-~vqPl|&9SHHgsMQ_m9`KqyXo zNVQ<<0Tccgc;UaI^@++G&R)6aS=3C`?(^9hLjNI#HB!UkO}_C|AG^|KZwxnc%#7S-a!ca z1z@2d-;+gCLm#LqprLcf^vFKxl%E7bRo;*$?YjleK_Kt@Uh*4It(Jq*Yt2P!R*7KO zZ6KjKbl_1=!C18jpA;u`&>(*eWe}XLH!9is44;YU+mut{jxMrd&cp1_+|*AT%V6EYj?N)E}fhd%>8kK-Su}t7zyAGH_E<(I8v{ zMW|~mVk@kG&jiMuvDN|p+fSNZhfh4ifGQ6%z`yu*gDBa+2`O)ta#e#{LzcaR2F42t zCuaGepAedh_t20zQX~|i;gpH+s$*A*25-A4eW7xpFDL=DZiA!%UOsS=*z4iGNc{zm zpx%oAI>4?54c^>SYN$56>l^~ps}q^mq`MnH9Zr@4^>z+05)EiLp$1H7^C24AM5?*I z6RLj%`VB;Zf%i(1!E@jjNSgW$>lfjLtQ!H7;c8Rf1;E%So?D_M`N!~((r-sYQV7bh z4m1=+DYk>Zjv;;2v!JtX4|saHoATHKK|~mAeRgRQ6ml1 z7(r9-n-P;}Xvfd;p+;Ql(8WMR1oYRTfRQB7aC77( zBLW(xj{!a&l;p1hkfR!5oVaFlh? z46Qi^68txCCT0WTActCDpjM=lPS{`|GE&^K$50K$Th17$0Qs8lih*Ok!9ptn>ZWEy zCE+yKs4oBsBXt#s4kv5@vxLAh_7G4 zK)OhAA`t_>lYz-CCu5*%$Vee(U?5dwy=%_GK-dKb_}GAu;S5yfm)EF z_+tz;4$sh23>1tgJr?8V92tO^b?A^wYaXvNFv>N)#6bIz7WBTxz+rmf#(aDG-xLWP z06l?lWt!Bb{RUv*23h04R}FISFotTulJ3r9egHZdLq~D|YrF`FZ3^bN2EehB87DB* z2Ob|jfFh!GVCNpKtpn@VG)SKZ6hJ#w$ls?i&>$kcXLCSgNb%q|&?bbrXNwpp24Pu$ z1p^r!rHHJPe#jSoH?Bct;Gcjqu=A{NVBu&BaHHnAv2gZcxJW*Tg{F~#+{9{eI~z2r z9=ubds3h!;I)i0>;xHD3O`rhZ62OAYb(EoMaP;Qq8UQRr>I5eMQPOo|eW0v*18PW+ z9|&RLu&ywAKQS!)jubBbk-);KAVAUjvY=w!Ptd7ri1I^$Bq0ojcXg387Tk(p*iu=5 z0qNKafR#_ku+US%f-RK-a1MA3?`R{MG_a5p0&oP41)B|pzoG@cF*qMIaOwnxbiNFM z&urwYSS;1?M422g3ad!J0F4nv)3kgW3+`KY#GIi+J6a(xZ7j5c@Zg|>rCx|?b+OcU z_qX)1RF9cn10WcLhj_5~H6g7)SztjZ0ZNO}8MR$rKwLnd3a@ffc?p0VdCD3~4WG0Bc2BDQ>=edA?Y1 zxBD#P3=YD@!C2@yB6{=J&Zo`;My~H1lrro;i{`~*fqQX#7#4~}xV8K$Hn0l-0hI>j z;7FRfhJ}R5sgYPXybs(#tua`L87aPq$3jd9yF-asXvZ(98Psq^CJQ}BLMNOn4M*L3 zDcDHM3eMm(7zlp%ljGB{;OgIKEOlwk}Dho*$Fl}%vb zhu?59Xc`NrG>40lGw_tA(5Tn%E`>ey3-;{j*%m5DIC}%QY;VfgL7$3!tV$a9r58RG|sT zg3S$%V+~w`!GD}2SxsjUEsXXL7Schg82$x9Mi6Pz;y|nq%6!%EkNXF2jb=N#H>7e1 z0AM2JYQclJ9n71ZP^oWBb&TOi$dw=+D@El-fhKz~rB+1~wc0~Cq2D~^lkm3cfQY-C9 zQVj=A?G#DM)t30~hL1r^JFLlj;{fwZ>R?$%R57_H_m+hK=3OanQ+y-@zyO7#Mg&{I z;GhqP{)4vAqf`t`hBlI)8y>8(sfIWRJkHU_QOz3m;6oYGI970@Do6NvbPfkyM83*f z;h=TotGF!=+-fOY-sNcM@Buu4VF=rzfO-JnVIq4v;HV)s|2W~G0Awj`XZQlre*=e2 zQVm!tMM(y_&fxZu8-WL`yt;sc?2$!M!4(JRUx&r`)eSCEC`~LdKVt!uoWaE#p`_;w zE)&ZhI1sdq0?Y^mv||c-@vb><9Z*_A96zaS@%!Q6tT8a=X z&|OjJjTLLEJOvW_g*fX{QEZ3dsLl~zB5~A7lM@3v7C94SMlA}$&RvBdRTNmkf!~6G zGq`?+fL{($n<0G2j=Bnrs0bVRNjPx7p%8qVb^RUuP~8JOR+fh^Du^iUQovB#X