All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.groupbyinc.flux.http.netty4.Netty4HttpServerTransport.class Maven / Gradle / Ivy

There is a newer version: 129
Show newest version
????4C9com/groupbyinc/flux/http/netty4/Netty4HttpServerTransport?com/groupbyinc/flux/common/component/AbstractLifecycleComponent,com/groupbyinc/flux/http/HttpServerTransportNetty4HttpServerTransport.javaLcom/groupbyinc/flux/http/netty4/Netty4HttpServerTransport$HttpChannelHandlerHttpChannelHandler7com/groupbyinc/flux/http/HttpServerTransport$Dispatcher
DispatcherFcom/groupbyinc/flux/common/util/concurrent/ThreadContext$StoredContext8com/groupbyinc/flux/common/util/concurrent/ThreadContext
StoredContext4com/groupbyinc/flux/common/settings/Setting$Property+com/groupbyinc/flux/common/settings/SettingProperty;SETTING_HTTP_WORKER_COUNTSETTING_HTTP_TCP_NO_DELAYBLcom/groupbyinc/flux/common/settings/Setting;SETTING_HTTP_TCP_KEEP_ALIVESETTING_HTTP_TCP_REUSE_ADDRESS!SETTING_HTTP_TCP_SEND_BUFFER_SIZE^Lcom/groupbyinc/flux/common/settings/Setting;$SETTING_HTTP_TCP_RECEIVE_BUFFER_SIZE)SETTING_HTTP_NETTY_RECEIVE_PREDICTOR_SIZE(SETTING_HTTP_NETTY_RECEIVE_PREDICTOR_MIN(SETTING_HTTP_NETTY_RECEIVE_PREDICTOR_MAXnetworkService3Lcom/groupbyinc/flux/common/network/NetworkService;	bigArrays+Lcom/groupbyinc/flux/common/util/BigArrays;maxContentLength/Lcom/groupbyinc/flux/common/unit/ByteSizeValue;maxInitialLineLength
maxHeaderSizemaxChunkSizeworkerCountI
pipeliningZpipeliningMaxEventscompressioncompressionLevelresetCookiesport1Lcom/groupbyinc/flux/common/transport/PortsRange;	bindHosts[Ljava/lang/String;publishHostsdetailedErrorsEnabled
threadPool+Lcom/groupbyinc/flux/threadpool/ThreadPool;xContentRegistry;Lcom/groupbyinc/flux/common/xcontent/NamedXContentRegistry;
tcpNoDelaytcpKeepAlivereuseAddresstcpSendBufferSizetcpReceiveBufferSizerecvByteBufAllocator'Lio/netty/channel/RecvByteBufAllocator;maxCompositeBufferComponents
dispatcher9Lcom/groupbyinc/flux/http/HttpServerTransport$Dispatcher;serverBootstrap$Lio/netty/bootstrap/ServerBootstrap;boundAddress;serverOpenChannels@Lcom/groupbyinc/flux/transport/netty4/Netty4OpenChannelsHandler;
corsConfig7Lcom/groupbyinc/flux/http/netty4/cors/Netty4CorsConfig;.(Lcom/groupbyinc/flux/common/settings/Settings;Lcom/groupbyinc/flux/common/network/NetworkService;Lcom/groupbyinc/flux/common/util/BigArrays;Lcom/groupbyinc/flux/threadpool/ThreadPool;Lcom/groupbyinc/flux/common/xcontent/NamedXContentRegistry;Lcom/groupbyinc/flux/http/HttpServerTransport$Dispatcher;)V1(Lcom/groupbyinc/flux/common/settings/Settings;)V`b
cjava/util/ArrayListe()V`g
fhYZ	j6com/groupbyinc/flux/common/util/concurrent/EsExecutorslPROCESSORS_SETTINGn#	mogetB(Lcom/groupbyinc/flux/common/settings/Settings;)Ljava/lang/Object;qr
sjava/lang/IntegeruintValue()Iwx
vy0com/groupbyinc/flux/transport/netty4/Netty4Utils{setAvailableProcessors(I)V}~
|01	?23	?GH	?IJ	?ST	?.com/groupbyinc/flux/http/HttpTransportSettings?SETTING_HTTP_MAX_CONTENT_LENGTH?#	??-com/groupbyinc/flux/common/unit/ByteSizeValue?SETTING_HTTP_MAX_CHUNK_SIZE?#	??85	?SETTING_HTTP_MAX_HEADER_SIZE?#	??75	?$SETTING_HTTP_MAX_INITIAL_LINE_LENGTH?#	??65	?SETTING_HTTP_RESET_COOKIES?#	??java/lang/Boolean?booleanValue()Z??
??@<	?"#	?R:	?%#	?9:	?SETTING_HTTP_PORT?#	??AB	?SETTING_HTTP_BIND_HOST?#	??java/util/List?isEmpty????1com/groupbyinc/flux/common/network/NetworkService?GLOBAL_NETWORK_BINDHOST_SETTING?#	??,com/groupbyinc/flux/common/settings/Settings?)com/groupbyinc/flux/common/util/BigArrays?)com/groupbyinc/flux/threadpool/ThreadPool?9com/groupbyinc/flux/common/xcontent/NamedXContentRegistry?"com/groupbyinc/flux/common/Strings?EMPTY_ARRAY?D	??toArray(([Ljava/lang/Object;)[Ljava/lang/Object;????DCD	?SETTING_HTTP_PUBLISH_HOST?#	??"GLOBAL_NETWORK_PUBLISHHOST_SETTING?#	??ED	?&#	?K<	?(#	?L<	?)#	?M<	?*#	?N5	?,#	?O5	?$SETTING_HTTP_DETAILED_ERRORS_ENABLED?#	??F<	?.#	?/#	?getBytes()J?
?*io/netty/channel/FixedRecvByteBufAllocatorjava/lang/Math
toIntExact(J)I
	`~
PQ	
-io/netty/channel/AdaptiveRecvByteBufAllocator(III)V`
SETTING_HTTP_COMPRESSION#	?><	SETTING_HTTP_COMPRESSION_LEVEL#	??:	SETTING_PIPELINING#	?;<	!SETTING_PIPELINING_MAX_EVENTS##	?$=:	&buildCorsConfigg(Lcom/groupbyinc/flux/common/settings/Settings;)Lcom/groupbyinc/flux/http/netty4/cors/Netty4CorsConfig;()
*^_	,???logger8Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;01	2?maxContentLength[{}] set to high value, resetting it to [100mb]46com/groupbyinc/flux/common/apache/logging/log4j/Logger6warn'(Ljava/lang/String;Ljava/lang/Object;)V897:d,com/groupbyinc/flux/common/unit/ByteSizeUnit>MB.Lcom/groupbyinc/flux/common/unit/ByteSizeUnit;@A	?B2(JLcom/groupbyinc/flux/common/unit/ByteSizeUnit;)V`D
?E45	G?using max_chunk_size[{}], max_header_size[{}], max_initial_line_length[{}], max_content_length[{}], receive_predictor[{}->{}], pipelining[{}], pipelining_max_events[{}]IvalueOf(Z)Ljava/lang/Boolean;KL
?M(I)Ljava/lang/Integer;KO
vPdebug?(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)VRS7Tthis;Lcom/groupbyinc/flux/http/netty4/Netty4HttpServerTransport;settings.Lcom/groupbyinc/flux/common/settings/Settings;httpBindHost$Ljava/util/List;httpPublishHostreceivePredictorMinreceivePredictorMax0()Lcom/groupbyinc/flux/common/settings/Settings;XY	`doStart>com/groupbyinc/flux/transport/netty4/Netty4OpenChannelsHandlerc;(Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;)V`e
df\]	h"io/netty/bootstrap/ServerBootstrapj
khUV	m&io/netty/channel/nio/NioEventLoopGroupohttp_server_workerqdaemonThreadFactoryf(Lcom/groupbyinc/flux/common/settings/Settings;Ljava/lang/String;)Ljava/util/concurrent/ThreadFactory;st
mu((ILjava/util/concurrent/ThreadFactory;)V`w
pxgroupG(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/ServerBootstrap;z{
k|2io/netty/channel/socket/nio/NioServerSocketChannel~channel9(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;??
k?configureServerChannelHandler#()Lio/netty/channel/ChannelHandler;??
?childHandlerG(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/ServerBootstrap;??
k?io/netty/channel/ChannelOption?TCP_NODELAY Lio/netty/channel/ChannelOption;??	??childOptionX(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;??
k?SO_KEEPALIVE??	??	SO_SNDBUF??	??	SO_RCVBUF??	??RCVBUF_ALLOCATOR??	??optionZ(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;??
k?SO_REUSEADDR??	??createBoundHttpAddress>()Lcom/groupbyinc/flux/common/transport/BoundTransportAddress;??
?WX	?
isInfoEnabled??7?{}?info?97?doStop?g
?java/lang/Throwable?successjava/io/IOException?java/lang/Exception?resolveBindHostAddresses,([Ljava/lang/String;)[Ljava/net/InetAddress;??
??*com/groupbyinc/flux/http/BindHttpException?java/lang/StringBuilder?
?hFailed to resolve host [?append-(Ljava/lang/String;)Ljava/lang/StringBuilder;??
??java/util/Arrays?toString'([Ljava/lang/Object;)Ljava/lang/String;??
??]?()Ljava/lang/String;??
??*(Ljava/lang/String;Ljava/lang/Throwable;)V`?
??[Ljava/net/InetAddress;?
fbindAddressO(Ljava/net/InetAddress;)Lcom/groupbyinc/flux/common/transport/TransportAddress;??
?add(Ljava/lang/Object;)Z????resolvePublishHostAddresses+([Ljava/lang/String;)Ljava/net/InetAddress;??
??4com/groupbyinc/flux/transport/BindTransportException?!Failed to resolve publish address?
??java/net/InetAddress?resolvePublishPortW(Lcom/groupbyinc/flux/common/settings/Settings;Ljava/util/List;Ljava/net/InetAddress;)I??
?java/net/InetSocketAddress?(Ljava/net/InetAddress;I)V`?
??:com/groupbyinc/flux/common/transport/BoundTransportAddress?5com/groupbyinc/flux/common/transport/TransportAddress?8[Lcom/groupbyinc/flux/common/transport/TransportAddress;(Ljava/net/InetSocketAddress;)V`
r([Lcom/groupbyinc/flux/common/transport/TransportAddress;Lcom/groupbyinc/flux/common/transport/TransportAddress;)V`
?
hostAddresseseLjava/io/IOException;addressLjava/net/InetAddress;publishInetAddressLjava/lang/Exception;boundAddressesILjava/util/List;publishPortpublishAddressLjava/net/InetSocketAddress;SETTING_HTTP_PUBLISH_PORT#	?iterator()Ljava/util/Iterator;?java/util/IteratorhasNext?next()Ljava/lang/Object;!"#()Ljava/net/InetSocketAddress;%
&
getAddress()Ljava/net/InetAddress;()
?*isAnyLocalAddress,?
?-equals/?
?0getPort2x
37com/groupbyinc/flux/common/carrotsearch/hppc/IntHashSet5
6h3com/groupbyinc/flux/common/carrotsearch/hppc/IntSet8(I)Z?:9;size=x9>9>com/groupbyinc/flux/common/carrotsearch/hppc/cursors/IntCursorAvalueC:	BDCFailed to auto-resolve http publish port, multiple bound addresses F-(Ljava/lang/Object;)Ljava/lang/StringBuilder;?H
?IC with distinct ports and none of them matched the publish address (K+). Please specify a unique port by setting MgetKeyO?
P or R(Ljava/lang/String;)V`T
?UboundInetAddress7Lcom/groupbyinc/flux/common/transport/TransportAddress;ports5Lcom/groupbyinc/flux/common/carrotsearch/hppc/IntSet;SETTING_CORS_ENABLED[#	?\java/lang/String^Lcom/groupbyinc/flux/http/netty4/cors/Netty4CorsConfigBuilder;pLjava/util/regex/Pattern;originLjava/lang/String;
strMethodsmethods+java/util/concurrent/atomic/AtomicReference?
?h:lambda$bindAddress$3t(Ljava/net/InetAddress;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;I)Z??
??onPortNumber?(Lcom/groupbyinc/flux/http/netty4/Netty4HttpServerTransport;Ljava/net/InetAddress;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)Lcom/groupbyinc/flux/common/transport/PortsRange$PortCallback;???iterateA(Lcom/groupbyinc/flux/common/transport/PortsRange$PortCallback;)Z??
?Failed to bind to [?getPortRangeString??
?q"
??isDebugEnabled?7Bound http to address {{}}1com/groupbyinc/flux/common/network/NetworkAddressformat0(Ljava/net/InetSocketAddress;)Ljava/lang/String;
	R97hostAddress
lastExceptionDLjava/util/concurrent/atomic/AtomicReference;-Ljava/util/concurrent/atomic/AtomicReference;boundSocketKLjava/util/concurrent/atomic/AtomicReference;
closeChannels(Ljava/util/Collection;)V
|java/lang/Object exception while closing channelstrace?7clearg?close!g
d"config,()Lio/netty/bootstrap/ServerBootstrapConfig;$%
k&(io/netty/bootstrap/ServerBootstrapConfig(#()Lio/netty/channel/EventLoopGroup;z*
)+java/util/concurrent/TimeUnit/SECONDSLjava/util/concurrent/TimeUnit;12	03io/netty/channel/EventLoopGroup5shutdownGracefullyD(JJLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/Future;7869io/netty/util/concurrent/Future;awaitUninterruptibly#()Lio/netty/util/concurrent/Future;=><?doClose%()Lcom/groupbyinc/flux/http/HttpInfo;W?
C!com/groupbyinc/flux/http/HttpInfoE@(Lcom/groupbyinc/flux/common/transport/BoundTransportAddress;J)V`G
FHboundTransportAddressstats&()Lcom/groupbyinc/flux/http/HttpStats;"com/groupbyinc/flux/http/HttpStatsMnumberOfOpenChannelsO
dP
totalChannelsR
dS(JJ)V`U
NVchannels
getCorsConfigdispatchRequestO(Lcom/groupbyinc/flux/rest/RestRequest;Lcom/groupbyinc/flux/rest/RestChannel;)VgetThreadContext<()Lcom/groupbyinc/flux/common/util/concurrent/ThreadContext;\]
?^stashContextJ()Lcom/groupbyinc/flux/common/util/concurrent/ThreadContext$StoredContext;`a
b?(Lcom/groupbyinc/flux/rest/RestRequest;Lcom/groupbyinc/flux/rest/RestChannel;Lcom/groupbyinc/flux/common/util/concurrent/ThreadContext;)VZde"$com/groupbyinc/flux/rest/RestRequesth$com/groupbyinc/flux/rest/RestChannelj
addSuppressed(Ljava/lang/Throwable;)Vlm
?nignoreHLcom/groupbyinc/flux/common/util/concurrent/ThreadContext$StoredContext;request&Lcom/groupbyinc/flux/rest/RestRequest;&Lcom/groupbyinc/flux/rest/RestChannel;
threadContext:Lcom/groupbyinc/flux/common/util/concurrent/ThreadContext;dispatchBadRequestd(Lcom/groupbyinc/flux/rest/RestRequest;Lcom/groupbyinc/flux/rest/RestChannel;Ljava/lang/Throwable;)V?(Lcom/groupbyinc/flux/rest/RestRequest;Lcom/groupbyinc/flux/rest/RestChannel;Lcom/groupbyinc/flux/common/util/concurrent/ThreadContext;Ljava/lang/Throwable;)VwyzcauseLjava/lang/Throwable;exceptionCaught@(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V-io/netty/handler/timeout/ReadTimeoutException?isTraceEnabled??7?Connection timeout [{}]?&io/netty/channel/ChannelHandlerContext?()Lio/netty/channel/Channel;????io/netty/channel/Channel?
remoteAddress()Ljava/net/SocketAddress;????97?"()Lio/netty/channel/ChannelFuture;!???	lifecycle0Lcom/groupbyinc/flux/common/component/Lifecycle;??	?.com/groupbyinc/flux/common/component/Lifecycle?started??
??;com/groupbyinc/flux/common/transport/NetworkExceptionHelper?isCloseConnectionException(Ljava/lang/Throwable;)Z??
??"lambda$exceptionCaught$4<(Lio/netty/channel/ChannelHandlerContext;)Ljava/lang/Object;??
??i(Lio/netty/channel/ChannelHandlerContext;)Lcom/groupbyinc/flux/common/apache/logging/log4j/util/Supplier;q??W(Lcom/groupbyinc/flux/common/apache/logging/log4j/util/Supplier;Ljava/lang/Throwable;)V8?7?lambda$exceptionCaught$5??
???R?7?ctx(Lio/netty/channel/ChannelHandlerContext;y(Lcom/groupbyinc/flux/http/netty4/Netty4HttpServerTransport;ZLcom/groupbyinc/flux/common/util/concurrent/ThreadContext;)V`?
	?Lcom/groupbyinc/flux/common/apache/logging/log4j/message/ParameterizedMessage?Jcaught exception while handling client http traffic, closing connection {}?`9
??bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;??
k?io/netty/channel/ChannelFuture?sync??????localAddress????set(Ljava/lang/Object;)V??
??future Lio/netty/channel/ChannelFuture;
portNumberlambda$static$1'(Ljava/lang/String;)Ljava/lang/Integer;http.netty.worker_count?parseInt((Ljava/lang/String;ILjava/lang/String;)I??
?slambda$static$0B(Lcom/groupbyinc/flux/common/settings/Settings;)Ljava/lang/String;numberOfProcessors1(Lcom/groupbyinc/flux/common/settings/Settings;)I??
m?(I)Ljava/lang/String;??
v?
access$000u(Lcom/groupbyinc/flux/http/netty4/Netty4HttpServerTransport;)Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;x0setup?g
|?*http.netty.max_composite_buffer_components?	NodeScope6Lcom/groupbyinc/flux/common/settings/Setting$Property;??	?
intSettingy(Ljava/lang/String;I[Lcom/groupbyinc/flux/common/settings/Setting$Property;)Lcom/groupbyinc/flux/common/settings/Setting;??
???
??????
???(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Function;[Lcom/groupbyinc/flux/common/settings/Setting$Property;)V`
http.tcp_no_delayTCP_NO_DELAY
#	?boolSetting?(Ljava/lang/String;Lcom/groupbyinc/flux/common/settings/Setting;[Lcom/groupbyinc/flux/common/settings/Setting$Property;)Lcom/groupbyinc/flux/common/settings/Setting;

http.tcp.keep_aliveTCP_KEEP_ALIVE#	?http.tcp.reuse_addressTCP_REUSE_ADDRESS#	?http.tcp.send_buffer_sizeTCP_SEND_BUFFER_SIZE#	?byteSizeSetting 
!http.tcp.receive_buffer_size#TCP_RECEIVE_BUFFER_SIZE%#	?&!http.netty.receive_predictor_size(@KB,A	?-?(Ljava/lang/String;Lcom/groupbyinc/flux/common/unit/ByteSizeValue;[Lcom/groupbyinc/flux/common/settings/Setting$Property;)Lcom/groupbyinc/flux/common/settings/Setting; /
0-#	2 http.netty.receive_predictor_min4 http.netty.receive_predictor_max6	SignatureCodeLocalVariableTableLocalVariableTypeTableLineNumberTable
StackMapTable?(Lcom/groupbyinc/flux/common/settings/Settings;Ljava/util/List;Ljava/net/InetAddress;)I
ExceptionsBootstrapMethods
SourceFileInnerClasses!)	"#8$%#8$&#8'(#8')#8'*#8+,#8+-#8+.#8+/#8+0123456575859:;<=:><?:@<ABCDEDF<GHIJK<L<M<N5O5PQR:STDUVDWXYZ8[\]^_`a9?
?*+?d*?fY?i?k?p+?t?v?z??*,??*-??*??*??*????+?t??:*??+?t????*??+?t????*??+?t????*??+?t??????*??+?t?v?z??*??+?t?v?z??*??+?t?????+?t??:*?????+?t????ҹ??׵ٲ?+?t??:	*	?????+?t???	?ҹ??׵?*??+?t??????*??+?t??????*??+?t??????*??+?t????*??+?t????*??+?t????????+?t??:
??+?t??:?
???*?Y??
???&*?Y
??

??
??
??*?+?t?????*?+?t?v?z?*? +?t?????"*?%+?t?v?z?'*+?+?-?.?? *?35?;??YADBC9FCGYHfGlMxP{N}O?R?S?T=.O??)??????N?????9???*?t?v?z>?H+?:? ?6?$?:?'?+:?.?,?1??4>?????X?6Y?7:+?:? ??$?:?4?<W???????@?$?B?E>?G??Y??Y??G??+?JL??,?JN?ϲ??Q??S?ϲ?Q?϶ڷV??:R:W
0$WX?
WXdLYZ?XY?Z?
?:;?<NY[\0]:^K_Q`TbWf[gdh?i?j?k?l?p?q?s?u=*??0????9?%??G8>()9?޲]*?t??????_?e?i?m??p*?t?_L+?t??_?eM?-+v?w?
?zM?+??N-?+???eM?-??M??*?t?????,??W??*?t?_???N-??????????????:,?ϲ?*?t?v?z??ֲ?*?t?_????ܶ߶m?:\	8??I??]??Q???XY)???ey???S?D?1??<bz{})0?;?E?L?Q?U?`?e?u?z?????????????????????="?_????_a??9$???Y??M??Y??N*??*+-,????6?2??Y??Y?????*??????׶϶?,?????ݿ*?3??*?3-?????
??Y-??????:4?VW?

w"e?<;w<"???"?'?V?b?x?=
?V??!?g9!z*?kYL?*?k???$*?k??M*?3,?*?k? +çN+?-?*?i?*?i?#*?i*?n?$*?n?'?,	-?4?:?@W*?n??699<9:

zVW<>??????+?4?>?E?L?Q?X?t?y?=??
D??'Ag9+?:VW<?W?9/*???:VW<??B9i*?DL+???FY+*?H??I?:VWJX<??	??=??KL9?%*?iL?NY+?	?+?Q+?	?+?T?W?:%VW X]<
??=R?d?d?d?dYk9/*?-?:VW<?Z[9q	}*???_N-?c::*??+,-?f?]??g?N:?o?B?g?8::?:?%??g?:?o?
?g??'.1?G?P\cf?GRP:4npq}VW}rs}?tuuv<????G?P?|?=\?1ik??I?H??ik????ikwx9?
?*???_:?c::*??+,-?{?]??g?N:?o?B?g?8::?:?%??g?:		?o?
?g??+25?!K?!T`gj?KVT:>ppq?VW?rs??t?|}	xuv<?	??!?K?T???=e?5ik???I?H??	ik?????ik?~9??,???5*?3???*?3?+??????+????W?P*??????,???"*?3+??,??+????W?*?3+??,??+????W?: ?VW????|}<2???*?9?C?DK[jz?=*
%????9>?	Y**??*???_???:VW<
??9C??Y?*???ð:??<	
	
??9C??Y?*???ð:??<??9-a*?kY:?*?n??Y+???ǹ?:*?k????W,????????ç:???
:-????GJJOJRU?:H $??W
aVWa

aaa?:<*
?? ?1?D?R?U?W?]?_?=$?J?????B?	
??9/???:=:<?
??96*۸߸Q?:??<~
??94
*??h??:
?Y<}??9/*?3?:?W<s?g9[	????Y??S?????Yۺ???Y??S???	??Y??S?????Y??S?????Y??S?????Y??S?"??$?'?Y??S?"??)??Y*?.?F?Y??S?1?35?3?Y??S?"??7?3?Y??S?"???<Vvyz|8?H?N?^?d?t?z?????????????????????@H??????????????????????????AB2	

		@	 !




© 2015 - 2025 Weber Informatics LLC | Privacy Policy