4io/moquette/broker/Session  java/lang/Object()V  io/moquette/broker/Server standaloneZ   startStandaloneServerjava/lang/RuntimeException  java/lang/Systemexit(I)V  outLjava/io/PrintStream; Server started, version 0.17 "#$ %&java/io/PrintStreamprintln(Ljava/lang/String;)V ()* +,java/lang/Runtime getRuntime()Ljava/lang/Runtime;.java/lang/Thread 012 34java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object;6 78run1(Lio/moquette/broker/Server;)Ljava/lang/Runnable; -: ;(Ljava/lang/Runnable;)V (= >?addShutdownHook(Ljava/lang/Thread;)V A BCdefaultConfigFile()Ljava/io/File; E FGLOGLorg/slf4j/Logger;I9Starting Moquette integration. Configuration file path={} KLM NO java/io/FilegetAbsolutePath()Ljava/lang/String; QRS TUorg/slf4j/Loggerinfo'(Ljava/lang/String;Ljava/lang/Object;)VW,io/moquette/broker/config/FileResourceLoader VY Z(Ljava/io/File;)V\.io/moquette/broker/config/ResourceLoaderConfig [^ _.(Lio/moquette/broker/config/IResourceLoader;)V a bc startServer&(Lio/moquette/broker/config/IConfig;)V e bg moquette.path i jk getProperty8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;m!io/moquette/broker/config/IConfigoconfig/moquette.conf Kq r'(Ljava/lang/String;Ljava/lang/String;)Vt:Starting Moquette integration. Configuration file path: {}v5Starting Moquette integration using properties object Qx y&debug{&io/moquette/broker/config/MemoryConfig z} ~(Ljava/util/Properties;)V4Starting Moquette integration using IConfig instance b6(Lio/moquette/broker/config/IConfig;Ljava/util/List;)VKStarting moquette integration using IConfig instance and intercept handlers b(Lio/moquette/broker/config/IConfig;Ljava/util/List;Lio/moquette/broker/ISslContextCreator;Lio/moquette/broker/security/IAuthenticator;Lio/moquette/broker/security/IAuthorizatorPolicy;)V  currentTimeMillis()J  java/util/Collections emptyList()Ljava/util/List;6Starting Moquette Server. MQTT message interceptors={}   io/moquette/logging/LoggingUtilsgetInterceptorIds.(Ljava/util/Collection;)Ljava/util/Collection; Q Utrace  java/util/concurrent/ExecutorsnewScheduledThreadPool2(I)Ljava/util/concurrent/ScheduledExecutorService;  scheduler/Ljava/util/concurrent/ScheduledExecutorService;io/moquette/BrokerConstantsintercept.handler  j&(Ljava/lang/String;)Ljava/lang/String; l r setProperty initInterceptors#Initialized MQTT protocol processor!Using default SSL context creator Q T&3io/moquette/broker/DefaultMoquetteSslContextCreator c initializeAuthenticator}(Lio/moquette/broker/security/IAuthenticator;Lio/moquette/broker/config/IConfig;)Lio/moquette/broker/security/IAuthenticator; initializeAuthorizatorPolicy(Lio/moquette/broker/security/IAuthorizatorPolicy;Lio/moquette/broker/config/IConfig;)Lio/moquette/broker/security/IAuthorizatorPolicy;persistent_store l1Using a deprecated setting {} please update to {} data_path Q warn9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)VForcing {} to truepersistence_enabled Q U  java/lang/BooleanTRUELjava/lang/Boolean; OtoString/  java/lang/String lastIndexOf(Ljava/lang/String;)I  substring(II)Ljava/lang/String;Forcing {} to {}  java/time/ClocksystemDefaultZone()Ljava/time/Clock;  parseBoolean(Ljava/lang/String;)Z  java/nio/file/Pathsget;(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;  Cjava/nio/file/PathtoFile K exists()Z K  mkdirs Created data_path {} folder Q yU%Impossible to create the data_path {}?Configuring persistent subscriptions store and queues, path: {}autosave_interval30 li  java/lang/IntegerparseInt!io/moquette/persistence/H2Builder  !X(Ljava/util/concurrent/ScheduledExecutorService;Ljava/nio/file/Path;ILjava/time/Clock;)V # $% initStore%()Lio/moquette/persistence/H2Builder; ' () h2Builder#Lio/moquette/persistence/H2Builder; + ,-initQueuesRepository(Lio/moquette/broker/config/IConfig;Ljava/nio/file/Path;Lio/moquette/persistence/H2Builder;)Lio/moquette/broker/IQueueRepository;/'Configuring H2 subscriptions repository Q1 & 3 45subscriptionsRepository/()Lio/moquette/broker/ISubscriptionsRepository; 7 89retainedRepository*()Lio/moquette/broker/IRetainedRepository; ; <=sessionsRepository*()Lio/moquette/broker/ISessionsRepository;?)Configuring in-memory subscriptions storeA5io/moquette/persistence/MemorySubscriptionsRepository @D(io/moquette/broker/MemoryQueueRepository CG+io/moquette/broker/MemoryRetainedRepository FJ0io/moquette/persistence/MemorySessionsRepository IM;io/moquette/broker/subscriptions/CTrieSubscriptionDirectory L PQR ST8io/moquette/broker/subscriptions/ISubscriptionsDirectoryinit0(Lio/moquette/broker/ISubscriptionsRepository;)VVio/moquette/broker/Authorizator UX Y4(Lio/moquette/broker/security/IAuthorizatorPolicy;)V[persistent_client_expiration l] ^_ durationProp((Ljava/lang/String;)Ljava/time/Duration; abc djava/time/DurationtoMillisgsession_queue_size li jkintProp(Ljava/lang/String;I)Im(io/moquette/broker/SessionEventLoopGroup o pq interceptor,Lio/moquette/interception/BrokerInterceptor; ls t0(Lio/moquette/interception/BrokerInterceptor;I)Vv"io/moquette/broker/SessionRegistry ux y(Lio/moquette/broker/subscriptions/ISubscriptionsDirectory;Lio/moquette/broker/ISessionsRepository;Lio/moquette/broker/IQueueRepository;Lio/moquette/broker/Authorizator;Ljava/util/concurrent/ScheduledExecutorService;Ljava/time/Clock;ILio/moquette/broker/SessionEventLoopGroup;)V { |}sessions$Lio/moquette/broker/SessionRegistry;io/moquette/broker/PostOffice ~ (Lio/moquette/broker/subscriptions/ISubscriptionsDirectory;Lio/moquette/broker/IRetainedRepository;Lio/moquette/broker/SessionRegistry;Lio/moquette/interception/BrokerInterceptor;Lio/moquette/broker/Authorizator;Lio/moquette/broker/SessionEventLoopGroup;)V   dispatcherLio/moquette/broker/PostOffice;&io/moquette/broker/BrokerConfiguration (io/moquette/broker/MQTTConnectionFactory  (Lio/moquette/broker/BrokerConfiguration;Lio/moquette/broker/security/IAuthenticator;Lio/moquette/broker/SessionRegistry;Lio/moquette/broker/PostOffice;)V&io/moquette/broker/NewNettyMQTTHandler  -(Lio/moquette/broker/MQTTConnectionFactory;)V#io/moquette/broker/NewNettyAcceptor   acceptor%Lio/moquette/broker/NewNettyAcceptor;   initialize(Lio/moquette/broker/NewNettyMQTTHandler;Lio/moquette/broker/config/IConfig;Lio/moquette/broker/ISslContextCreator;Lio/moquette/broker/BrokerConfiguration;)V;Moquette integration has been started successfully in {} ms  java/lang/LongvalueOf(J)Ljava/lang/Long;telemetry_enabled l boolProp(Ljava/lang/String;Z)Z  c!collectAndSendTelemetryDataAsynch   initializedpersistent_queue_typeh2  equalsIgnoreCaseConfiguring H2 queue store  queueRepository'()Lio/moquette/broker/IQueueRepository; segmented'Configuring segmented queue store to {}queue_page_sizequeue_segment_size@.io/moquette/persistence/SegmentQueueRepository  (Ljava/nio/file/Path;II)V.io/moquette/broker/unsafequeues/QueueExceptionjava/io/IOExceptionjava/lang/StringBuilder 0Problem in configuring persistent queue on path  append-(Ljava/lang/String;)Ljava/lang/StringBuilder;  -(Ljava/lang/Object;)Ljava/lang/StringBuilder;   *(Ljava/lang/String;Ljava/lang/Throwable;)VJInvalid property for %s found [%s] while only h2 or segmented are admitted  format9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;  & 7T(Lio/moquette/broker/Server;Lio/moquette/broker/config/IConfig;)Ljava/lang/Runnable; - start  checkOrCreateUUID7(Lio/moquette/broker/config/IConfig;)Ljava/lang/String;  collectTelemetryData  &sendTelemetryData#Can't reach the telemetry collector Q isDebugEnabledOriginal exception Q y.moquette_uuid java/nio/file/LinkOption    java/nio/file/Files2(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z    readAllBytes(Ljava/nio/file/Path;)[B  !java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;  ([BLjava/nio/charset/Charset;)VProblem accessing file path: {} Q  error "#$ %&java/util/UUID randomUUID()Ljava/util/UUID;(java/io/FileWriter '* +(Ljava/io/File;Z)V " '. /&write '1 2close4)Problem writing new UUID to file path: {}6 uncollected8os.name:os.arch<java.specification.version> java.vendor (@ A maxMemoryE undefined G H(J)Ljava/lang/String;J{"os": "%s", "cpu_arch": "%s", "jvm_version": "%s", "jvm_vendor": "%s", "broker_version": "%s", "standalone": %s,"max_heap": "%s", "remote_ip": "%s", "uuid": "%s"}L0.17 N O(Z)Ljava/lang/Boolean;Q java/net/URLShttp://whatismyip.akamai.com P PV WXopenConnection()Ljava/net/URLConnection;Zjava/net/HttpURLConnection Y\ ]^getResponseCode()I`$What's my IP service replied with {} b c(I)Ljava/lang/Integer;ejava/io/BufferedReadergjava/io/InputStreamReader Yi jkgetInputStream()Ljava/io/InputStream; fm n(Ljava/io/InputStream;)V dp q(Ljava/io/Reader;)V ds tOreadLinevjava/lang/Exceptionx%Can't connect to what's my IP servicez+https://telemetry.moquette.io/api/v1/notify|POST Y~ &setRequestMethod Content-Typeapplication/json Y rsetRequestPropertyAccept Y setInstanceFollowRedirects(Z)V Y  setDoOutpututf-8  getBytes(Ljava/lang/String;)[B Y getOutputStream()Ljava/io/OutputStream;  /java/io/OutputStream([BII)V 1java/lang/Throwable   addSuppressed(Ljava/lang/Throwable;)VResponse code is {}Response Code: {} Location Y getHeaderFieldAccept-Languageen-US,en;q=0.8 Y raddRequestProperty User-AgentMozillaReferer google.comRedirect to URL: {}java/lang/StringBuffer   ,(Ljava/lang/String;)Ljava/lang/StringBuffer; d1 Content: {} Y  disconnect$Configuring MQTT authorizator policyauthorizator_class  isEmpty/io/moquette/broker/security/IAuthorizatorPolicy   loadClassZ(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;acl_file5io/moquette/broker/security/DenyAllAuthorizatorPolicy Parsing ACL file. Path = {} l getResourceLoader-()Lio/moquette/broker/config/IResourceLoader;  )io/moquette/broker/config/IResourceLoader loadResource$(Ljava/lang/String;)Ljava/io/Reader;  )io/moquette/broker/security/ACLFileParserparseG(Ljava/io/Reader;)Lio/moquette/broker/security/AuthorizationsCollector;java/text/ParseException#Unable to parse ACL file. path = {}7io/moquette/broker/security/PermitAllAuthorizatorPolicy ,Authorizator policy {} instance will be used  getClass()Ljava/lang/Class;  Ojava/lang/ClassgetNameConfiguring MQTT authenticatorauthenticator_class*io/moquette/broker/security/IAuthenticator  password_file 2io/moquette/broker/security/AcceptAllAuthenticator  1io/moquette/broker/security/ResourceAuthenticator   @(Lio/moquette/broker/config/IResourceLoader;Ljava/lang/String;)V)An {} authenticator instance will be used#Configuring message interceptors...java/util/ArrayList  (Ljava/util/Collection;)V)io/moquette/interception/InterceptHandler  !"java/util/Listadd(Ljava/lang/Object;)Z$*io/moquette/interception/BrokerInterceptor #& (EInvoking constructor with {} argument. ClassName={}, interfaceName={} Q* T+((Ljava/lang/String;[Ljava/lang/Object;)V - ./getClassLoader()Ljava/lang/ClassLoader; 123 4java/lang/ClassLoader%(Ljava/lang/String;)Ljava/lang/Class; 6 78 asSubclass$(Ljava/lang/Class;)Ljava/lang/Class; : ;<getConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; >?@ ABjava/lang/reflect/Constructor newInstance'([Ljava/lang/Object;)Ljava/lang/Object;D java/lang/InstantiationExceptionF java/lang/IllegalAccessExceptionH java/lang/ClassNotFoundExceptionJhUnable to invoke constructor with {} argument. ClassName={}, interfaceName={}, cause={}, errorMessage={} LMN OP&java/lang/ReflectiveOperationExceptiongetCause()Ljava/lang/Throwable; LR SO getMessage QU +Wjava/lang/NoSuchMethodExceptionY+java/lang/reflect/InvocationTargetException[Ljava/util/List<+Lio/moquette/interception/InterceptHandler;>; Signatured(Lio/moquette/broker/config/IConfig;Ljava/util/List<+Lio/moquette/interception/InterceptHandler;>;)VpersistencePathdataPathLjava/nio/file/Path;autosaveIntervalI(Lio/moquette/broker/ISessionsRepository;-Lio/moquette/broker/ISubscriptionsRepository;%Lio/moquette/broker/IQueueRepository;(Lio/moquette/broker/IRetainedRepository;globalSessionExpiry sslCtxCreator'Lio/moquette/broker/ISslContextCreator; authenticator,Lio/moquette/broker/security/IAuthenticator;authorizatorPolicy1Lio/moquette/broker/security/IAuthorizatorPolicy;J handlerPropclockLjava/time/Clock; subscriptions:Lio/moquette/broker/subscriptions/ISubscriptionsDirectory; authorizator!Lio/moquette/broker/Authorizator;sessionQueueSize loopsGroup*Lio/moquette/broker/SessionEventLoopGroup; brokerConfig(Lio/moquette/broker/BrokerConfiguration;connectionFactory*Lio/moquette/broker/MQTTConnectionFactory; mqttHandler(Lio/moquette/broker/NewNettyMQTTHandler; startTime %io/moquette/broker/ISslContextCreator"&io/moquette/broker/ISessionsRepository$+io/moquette/broker/ISubscriptionsRepository&#io/moquette/broker/IQueueRepository(&io/moquette/broker/IRetainedRepository(Lio/moquette/broker/config/IConfig;Ljava/util/List<+Lio/moquette/interception/InterceptHandler;>;Lio/moquette/broker/ISslContextCreator;Lio/moquette/broker/security/IAuthenticator;Lio/moquette/broker/security/IAuthorizatorPolicy;)V0Lio/moquette/broker/unsafequeues/QueueException;pageSize segmentSizeerrMsg queueType telCollectorLjava/lang/Thread;Ljava/io/IOException;uuid telemetryDocfLjava/io/FileWriter; storagePath uuidFilePathLjava/util/UUID;remoteIposcpuArch jvmVersion jvmVendormaxHeapretrievePublicIPurlLjava/net/URL;conLjava/net/HttpURLConnection;statusinLjava/io/BufferedReader;Ljava/lang/Exception;Ljava/io/OutputStream;newUrlinput[Bredirect inputLinecontentLjava/lang/StringBuffer;KresourceLoaderpexLjava/text/ParseException; aclFilePathpropsauthorizatorClassName passwdPathauthenticatorClassNamehandler+Lio/moquette/interception/InterceptHandler;embeddedObservers observersinterceptorClassName=Ljava/util/List;ex(Ljava/lang/ReflectiveOperationException; classNameintrfaceLjava/lang/Class;constructorArgClassLjava/lang/Object;instanceLjava/lang/Class;Ljava/lang/Class;TU;TT;p(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;TU;)TT;g(Lio/netty/handler/codec/mqtt/MqttPublishMessage;Ljava/lang/String;)Lio/moquette/broker/RoutingResults;msg0Lio/netty/handler/codec/mqtt/MqttPublishMessage;clientId messageIDroutingResults#Lio/moquette/broker/RoutingResults; stopServerinterceptHandler?()Ljava/util/Collection;disconnectClientdisconnectAndPurgeClientState withConfig*()Lio/moquette/broker/config/FluentConfig;*lambda$collectAndSendTelemetryDataAsynch$0 SourceFile Server.javaBootstrapMethods  "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;  s  zc InnerClasses%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!  FGKBpq()|} !8 **  HT   5 YL+M!'-Y+Y/W59< "WY \Z[]_4` 5- b*@LDH+JPVY+XM[Y,]N*-`hijk$l)m**&$< * *dpq r   BC@fhKKY*np uv  bZ~&Ds+JPVY+XM[Y,]N*-` %*&& b~cDuwzY+|M*,`  bcMDw*+ blDw*+,   b 7,MD,*: +*+,Dw-DY+N*+:*+:+ǶVD̹DԹ+Բض޶+Ƕ:   :D+: +Զɸ+̶:-D  DD +6*Y* "&+*&*: D.0*&2: *&6: *&:: 2D>0@YB: CYE: FYH: IYK: LYN: OUYW:+Z+Z\`l6e6+fh6lY*nr:*uY  * wz*~Y *z*nY+:Y*z*:Y:*Y*+-e7DP+*+*A #*/7=GKU^gpy#0?Wcnw3NXm x   8% ?J< w4 c)  8      *< 4   8  XfmQxF&   )&mI l h.  l!#%':PU l!#%'PUl) ,-*:D,NZD+P*ƶh6*ɶh6Y+N#:YYֶ+ܶ࿧$YSYS:Y-VcfB '2>J V"c%f#h$&'(*z $ch*J<+V0, -() .b'>ll%l l%cZ-Y*+9M,./0 /0c:*+M*,N*-(:DDD & 35 8>9:!;,<9?4#1::42 .3 l$m+M,YSN- "Y-:D-!:'Y-):,-0:D3-,$23Hgj:B CD$F3G5HCKHNXObPgSjQlRzUR51X45l1 v6g7H82833 l& l"I 5M7N9:;:=:'?7B DF: I Y-SYSYSYSYKSY* MSY SY5SY+S* \] ^_`#a+bAdhn~d\ 2~9 w:o;g<#_=+WA AA> #: D?O\PYRTL+UYM,[>ȟD_a dYfY,hlo:rLDww1Lu2KLu. s tuvw.x2{F|L}M~X> A@A9BC4DFEFMG\2PY u& PYyTM,UYN-{}----+:-:&: :-[6Da6ȟ.- /6Da-:PYTUYN----{}--:&:  :    DdYfY-hlo:Y: rY: WƲD -ɱGR_fkn,38;( $.38AGR_z ,GThq| G3:H3:HI3 @ABCA]JKD Lh6EFy%Mq-NO  _ PYP PYP8u  PYP  PYP d  PYPdD̹w,N+-К*-l,L+u,:JКBYLDP,:L:D YLD+P+UuxJ !04@MUbhuxzHh QzRS@fT  UV&0G lyDw,N+-К*-l,L,:+@,:Й Y L YLD+P+2  !06:FNYew>F1Wyy  yUcX6CQ0( VDY,N+:*К"* *: -W*#Y+-%n&  ):?HU>:YZVVUV[B\:]V[B\^ H:D'Y-SY+SY,S)*,+0,5Y-S9YS=::DIY-SY+SY,SYKSYQST:DZ+,\*,+0,5^=:1:DaY+SY,SYKSYQSc LOCLOELOGLVLXCEGVXv$, 0 ; G L O Q^y}"\ Q3_`,_```abcdcUefe*bgdhUifjDO LtL3 LL-k}lO+ek>*Dp,arYtvDw,ay*+{:+W* /01213*5:6D7L84OOmnOoGpD qr*syD*D*D0**W*z*&D0*&*n*DB< =>?A%B0C5G?IFKMLXM_PfQmRxS y@^2*V ^2*Z =*D+rYvD+P*n+"qrsrt#v4w<x==tZ#=*D+rYvD+P*n+"#4<==tZ#d%*D¹rYķv*zư %uv> *z+ʬ  ow> *z+ʬ  oxy3 Y*ϰ  zc:*+ұ.{!  ճDJ|}~