4 A@4           m  $ $    - - - - 2 -DEFAULT_LIMIT_TIME_SECONDI ConstantValueDEFAULT_LIMIT_COUNTdexpireJrateDcapacity lastCleanTimerequestCountMapLjava/util/Map; Signature3Ljava/util/Map;requestTimeMaplock$Lcn/wildfirechat/app/tools/SpinLock;()VCodeLineNumberTableLocalVariableTablethis'Lcn/wildfirechat/app/tools/RateLimiter;(II)VlimitTimeSecond limitCount StackMapTableMethodParameters isGranted(Ljava/lang/String;)ZcurrentlastRequestTimeLjava/lang/Long;countuserIdLjava/lang/String;cleanUp(J)VentryEntry InnerClassesLjava/util/Map$Entry;itLjava/util/Iterator;LocalVariableTypeTable9Ljava/util/Map$Entry;OLjava/util/Iterator;>;main([Ljava/lang/String;)Viargs[Ljava/lang/String;limiterstartsecond Exceptions SourceFileRateLimiter.java UV%cn/wildfirechat/app/tools/RateLimiter JK LIjava/util/HashMap NO RO"cn/wildfirechat/app/tools/SpinLock ST"java/lang/IllegalArgumentException SV mn java/lang/Long V MI   java/util/Map$Entry V U\test bc java/lang/StringBuilder1 too frequency   n sleep 1 s2 too frequency  sleep 5 s3 too frequency 4 too frequency second: end: java/lang/Objectjava/lang/Stringjava/lang/Throwablejava/util/Iteratorjava/lang/InterruptedExceptionjava/lang/SystemcurrentTimeMillis()J java/util/Mapget&(Ljava/lang/Object;)Ljava/lang/Object;valueOf(J)Ljava/lang/Long;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;unLock longValueentrySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;getValueremovegetKeyoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vjava/lang/Threadsleep(J)Ljava/lang/StringBuilder;!A BCDEFCDGHIDJKLIMINOPQROPQSTUVWv4**** Y * Y * YX (3Y 4Z[U\WW**** Y * Y * Y Y*h*oX.  (3;C M!V"Y WZ[W]CW^C_;`a ]^bcW *A* * +: 77a7* + W* +W6** +7* +: e*kg7  7* + W*(a7* +W6** +W6*:*Q[Xv)* +,-".'//0>1N2QCX2[4m5|6789:;<C<>?C?CDY4 dIef"gIZ[hi_ [j@@?`klahmnWf*e[* !N-">-#$:%e-&* '(W*X& H I%J0KFLLM]O`PeRY*0-orDstfZ[fdIu0-ovDsw_x@ad yzWYLY )LA65,+*+,-Y./01234,5365,+*+,-Y.6012374,9365,+*+,-Y.:012374,9376d2+*+,-Y.;0123<4Ͳ,-Y.>0e?23,-Y.@0 e?23XvU VWX"Y<WB\H]P^Z_c`}^defghflmnopqs ou.vKwYR0{CS0{C0{C6{CL|} A~[=IuI_' `)))) a|q $p