Êþº¾E  java/lang/Object()V   7net/minecraft/server/players/CachedUserNameToIdResolverresolveOfflineUsersZ&java/util/concurrent/ConcurrentHashMap   profilesByNameLjava/util/Map;  profilesByUUIDcom/google/gson/GsonBuilder   create()Lcom/google/gson/Gson;  !gsonLcom/google/gson/Gson;#&java/util/concurrent/atomic/AtomicLong " & '(operationCount(Ljava/util/concurrent/atomic/AtomicLong; * +,profileRepository*Lcom/mojang/authlib/GameProfileRepository; . /0fileLjava/io/File; 2 34load()Ljava/util/List; 678 9:com/google/common/collect/Listsreverse"(Ljava/util/List;)Ljava/util/List;< =>acceptX(Lnet/minecraft/server/players/CachedUserNameToIdResolver;)Ljava/util/function/Consumer; @AB CDjava/util/ListforEach (Ljava/util/function/Consumer;)V FGH IJGnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo nameAndId*()Lnet/minecraft/server/players/NameAndId; L MNgetNextOperation()J FP QR setLastAccess(J)V TUV WX&net/minecraft/server/players/NameAndIdname()Ljava/lang/String; Z[\ ]^java/util/LocaleROOTLjava/util/Locale; `ab cdjava/lang/String toLowerCase&(Ljava/util/Locale;)Ljava/lang/String; fgh ij java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; Tl mnid()Ljava/util/UUID; pqr stnet/minecraft/util/StringUtilisValidPlayerName(Ljava/lang/String;)Z v wxcreateUnknownProfile((Ljava/lang/String;)Ljava/util/Optional; z{| }x(com/mojang/authlib/GameProfileRepositoryfindProfileByName €�apply()Ljava/util/function/Function; ƒ„… †‡java/util/Optionalmap3(Ljava/util/function/Function;)Ljava/util/Optional; ƒ‰ Š‹isEmpty()Z T� Ž� createOffline<(Ljava/lang/String;)Lnet/minecraft/server/players/NameAndId; ƒ‘ ’“of((Ljava/lang/Object;)Ljava/util/Optional; ƒ• –—empty()Ljava/util/Optional; ™ š› addInternals(Lnet/minecraft/server/players/NameAndId;)Lnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo; �žŸ  ¡java/util/TimeZone getDefault()Ljava/util/TimeZone; £¤¥ ¦§java/util/Calendar getInstance<(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;©java/util/Date ¨ £¬ ­®setTime(Ljava/util/Date;)V £° ±²add(II)V £´ µ¶getTime()Ljava/util/Date; F¸ ¹;(Lnet/minecraft/server/players/NameAndId;Ljava/util/Date;)V » ¼½safeAddL(Lnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo;)V ¿ Àsave " ÃNincrementAndGet fÅ ÆÇget&(Ljava/lang/Object;)Ljava/lang/Object; ¨É µN FË ÌÍexpirationDateLjava/util/Date; fÏ ÐÇremove Ò ÓÔlookupGameProfileR(Lcom/mojang/authlib/GameProfileRepository;Ljava/lang/String;)Ljava/util/Optional; ƒÖ ׋ isPresent ƒÙ ÆÚ()Ljava/lang/Object;Üjava/text/SimpleDateFormatÞyyyy-MM-dd HH:mm:ss Z Ûà á'(Ljava/lang/String;Ljava/util/Locale;)V 6ã äå newArrayList()Ljava/util/ArrayList; çèé êë!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset; íîï ðñcom/google/common/io/Files newReaderB(Ljava/io/File;Ljava/nio/charset/Charset;)Ljava/io/BufferedReader;ócom/google/gson/JsonArray õö÷ øùcom/google/gson/GsonfromJson5(Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object; ûüý þjava/io/Readerclose  createDateFormat()Ljava/text/DateFormat; =E(Ljava/text/DateFormat;Ljava/util/List;)Ljava/util/function/Consumer; òAjava/lang/Throwable     addSuppressed(Ljava/lang/Throwable;)Vjava/io/FileNotFoundExceptionjava/io/IOException"com/google/gson/JsonParseException  LOGGERLorg/slf4j/Logger;Failed to load profile cache {}  org/slf4j/Loggerwarn9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V ò ! "#getTopMRUProfiles(I)Ljava/util/stream/Stream;% =&P(Lcom/google/gson/JsonArray;Ljava/text/DateFormat;)Ljava/util/function/Consumer; (A)java/util/stream/Stream õ+ ,-toJson1(Lcom/google/gson/JsonElement;)Ljava/lang/String; í/ 01 newWriterB(Ljava/io/File;Ljava/nio/charset/Charset;)Ljava/io/BufferedWriter; 345 67java/io/Writerwrite(Ljava/lang/String;)V 3ü f: ;<values()Ljava/util/Collection; >?@ AB'com/google/common/collect/ImmutableListcopyOfA(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList; >D EFstream()Ljava/util/stream/Stream; IJK LMjava/util/Comparator comparing5(Ljava/util/function/Function;)Ljava/util/Comparator; IO PQreversed()Ljava/util/Comparator; (S TUsorted1(Ljava/util/Comparator;)Ljava/util/stream/Stream; (W XYlimit(J)Ljava/util/stream/Stream;[com/google/gson/JsonObject Z T^ _`appendTo(Lcom/google/gson/JsonObject;)Vb expiresOn Fd ̶ fgh ijjava/text/DateFormatformat$(Ljava/util/Date;)Ljava/lang/String; Zl mn addProperty'(Ljava/lang/String;Ljava/lang/String;)V pqr s‹com/google/gson/JsonElement isJsonObject pu vwgetAsJsonObject()Lcom/google/gson/JsonObject; Ty øzF(Lcom/google/gson/JsonObject;)Lnet/minecraft/server/players/NameAndId; Z| Æ}1(Ljava/lang/String;)Lcom/google/gson/JsonElement; p €X getAsString f‚ ƒ„parse$(Ljava/lang/String;)Ljava/util/Date;†java/text/ParseExceptionˆFailed to parse date {} Š ‹ŒwriteGameProfile~(Lnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo;Ljava/text/DateFormat;)Lcom/google/gson/JsonElement; òŽ ±� (Lcom/google/gson/JsonElement;)V ‘ ’“readGameProfileI(Lcom/google/gson/JsonElement;Ljava/text/DateFormat;)Ljava/util/Optional; •–— ˜Çjava/util/ObjectsrequireNonNullš =›/(Ljava/util/List;)Ljava/util/function/Consumer; ƒ� žD ifPresent  ¡¢ £¤com/mojang/logging/LogUtils getLogger()Lorg/slf4j/Logger;¦1net/minecraft/server/players/UserNameToIdResolverGAMEPROFILES_MRU_LIMITI ConstantValueèGAMEPROFILES_EXPIRATION_MONTHS SignaturelLjava/util/Map;jLjava/util/Map;;(Lcom/mojang/authlib/GameProfileRepository;Ljava/io/File;)VCodeLineNumberTableLocalVariableTablethis9Lnet/minecraft/server/players/CachedUserNameToIdResolver;MethodParameters profileInfoILnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo;(Lnet/minecraft/server/players/NameAndId;Ljava/lang/String;profileLjava/util/Optional;LocalVariableTypeTable>Ljava/util/Optional; StackMapTable|(Lcom/mojang/authlib/GameProfileRepository;Ljava/lang/String;)Ljava/util/Optional;R(Ljava/lang/String;)Ljava/util/Optional;(Z)Vvalue+(Lnet/minecraft/server/players/NameAndId;)VcLjava/util/Calendar;resultuserName needsSave&(Ljava/util/UUID;)Ljava/util/Optional;Ljava/util/UUID;P(Ljava/util/UUID;)Ljava/util/Optional; entryListLcom/google/gson/JsonArray; dateFormatLjava/text/DateFormat;readerLjava/io/Reader;eLjava/lang/Exception;Ljava/util/List;[Ljava/util/List;Øjava/lang/Exception]()Ljava/util/List;writerLjava/io/Writer;toSaveg(I)Ljava/util/stream/Stream;srcobjectLcom/google/gson/JsonObject;Ljava/text/ParseException; dateAsStringexpirationElementLcom/google/gson/JsonElement;json”(Lcom/google/gson/JsonElement;Ljava/text/DateFormat;)Ljava/util/Optional; lambda$save$0}(Lcom/google/gson/JsonArray;Ljava/text/DateFormat;Lnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo;)Ventry lambda$load$0F(Ljava/text/DateFormat;Ljava/util/List;Lcom/google/gson/JsonElement;)Velement SourceFileCachedUserNameToIdResolver.java NestMembersBootstrapMethodsó(Ljava/lang/Object;)Vº½Çø Tù ú3(Lcom/mojang/authlib/services/response/NameAndId;)VüZ(Lcom/mojang/authlib/services/response/NameAndId;)Lnet/minecraft/server/players/NameAndId;þ ÿ êë�  çè F N lastAccess [(Lnet/minecraft/server/players/CachedUserNameToIdResolver$GameProfileInfo;)Ljava/lang/Long;  @ ± (Ljava/lang/Object;)Z  "java/lang/invoke/LambdaMetafactory metafactoryÌ(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; InnerClassesGameProfileInfo%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!¥ §¨©ª«¨©¬ ­®­¯+, !/0'(°±·U*·*µ*» Y·µ*» Y·µ*»Y·¶µ*»"Y·$µ%*+µ)*,µ-*¶1¸5*º;¹?±²* 6. /02-487=8B:T;³ U´µU+,U/0¶ +/¼½±€2+¶EM+*¶K¶O*´,¶S²Y¶_+¹eW*´,¶k+¹eW±²>? @"A1B³ 2´µ2·¸-I¹¶·ÓÔ±©,,¸oš *,¶u°+,¹yº~¶‚N-¶ˆ™ *,¶u°-°²EF IJ$K*M³*,´µ,+,,Wº»¼½ »¾¿  üƒ¶ +W­Àwx±X*´™ +¸Œ¸�°¸”°²QRT³´µWº¿¶W­Á ±>*µ±² YZ³´µà ¶Ã±Ä±?*+¶˜W±² ^_³´µI¹¶I𛱦8¸œ²Y¸¢M,»¨Y·ª¶«,¶¯,¶³N»FY+-··:*¶º*¶¾°²"b cde g+h1i5j³48´µ8»¹ .ÅÆ ÌÍ+ ·¸¶»MN±2*´%¶Á­²n³ ´µÆx±Ùµ+²Y¶_M*´,¹ÄÀFN6-ÆE»¨Y·ª¶È-´Ê¶È”›0*´-¶E¶k¹ÎW*´-¶E¶S²Y¶_¹ÎW6N-Æ-*¶K¶O-¶E¸�:§5**´),¶Ñ:¶Õ™*¶ØÀT¶˜¶E¸�:6§¸”:™*¶¾°²Nstvx2zC{Z|]}_‚cƒk„w†‚‡ŠˆžŠ¤Œ©�®‘²“³\ tǼžÇ¼‚'»¼µ´µµWº­ÈºŸ·¸œÉ © Ǽ½*tǾžÇ¾‚'»¾© Ǿ¿,þ_`Fý,ƒÿ``Fƒ¶W­ÁÆÊ±‚&*´+¹ÄÀFM,Ǹ”°,*¶K¶O,¶E¸�°²˜™šœ�³ &´µ&mË·¸¿üF¶m­Ì ±% »ÛYݲY·ß°²¡34±È{¸âL*´-²æ¸ìM*´,ò¶ôÀòN-Ç+:,Æ,¶ú°¸ÿ:-+º¶,Æ ,¶ú§N,Æ,¶ú§ :-¶ -¿§M§M²*´-,¹+° $K/@KPTW,d /ad ,h,h/ah/ah²F¥¦§¨!©$­,©/«4¬@­K¦a±d­e±h¯i°y²³>#ÍÎ4 ÏÐRÑÒiÓÔ{´µwÇÕ½ wÇÖ¿Q ÿ,@ûò@úÿ@ûÿ @ûùB C×­ÙÀ±@h»òY·L¸ÿM*è¶ +,º$¹'*´+¶*N*´-²æ¸.:-¶2Æ&¶8§:ƶ8§ :¶ ¿§:±4:GNSV(be². ·¸ ¹»(¼4½:¾G¼b¿e¾gÀ³44.ÚÛh´µ`ÍÎ \ÏÐ(@ܺ¿@ÿGòf`3ÿòf`3ùB"#±])*´¹9¸=¶CºG¸H¹N¹R…¹V°²Ä³)´µ)X¨¶X­Ý ‹Œ±k!»ZY·\M*¶E,¶],a+*¶c¶e¶k,°²ÈÉÊ˳ !Þ¸!ÏÐßà¶ ÞÏ ’“±*U*¶o™M*¶tM,¸xN-Æ?,a¶{:Æ1¶~:+¶�:»FY-··¸�°:²‡¹¸”°*?@…²2 ÏÐ ÑÒÓÔ#Õ*×2Ø@ÙBÚQß³R2ÌÍBÓá*'âº3ãä Eßà@I¹UåäUÏп+ÿ@pfZTp`…ÿpf¶ åÏ­æ çè±H *,+¸‰¶�±²¹³  ÍÎ ÏÐ é¸ êë±R,*¸�+Y¸”Wº™¶œ±²¬³ ÏÐÇÕìäí±¸Ÿ³±²*îïðFñ>òôõö÷ûòýòõöò õF