7#jnlp/sample/servlet/ResourceCatalogjava/lang/ObjectVERSION_XML_FILENAMELjava/lang/String; ConstantValue  version.xml_logLorg/slf4j/Logger;_servletContextLjavax/servlet/ServletContext;_entriesLjava/util/HashMap;3(Ljavax/servlet/ServletContext;Lorg/slf4j/Logger;)VCode  ()V   java/util/HashMap   LineNumberTableLocalVariableTablethis%Ljnlp/sample/servlet/ResourceCatalog;servletContextloglookupResourceI(Ljnlp/sample/servlet/DownloadRequest;)Ljnlp/sample/servlet/JnlpResource; Exceptions)*jnlp/sample/servlet/ErrorResponseException +-,#jnlp/sample/servlet/DownloadRequest ./getPath()Ljava/lang/String;1java/lang/StringBuilder3 Looking up: 05 6(Ljava/lang/String;)V 08 9:append-(Ljava/lang/String;)Ljava/lang/StringBuilder; 0< =/toString ?A@org/slf4j/Logger B6debug DFEjava/lang/String GH lastIndexOf(I)I DJ KL substring(I)Ljava/lang/String; DN KO(II)Ljava/lang/String; Q RSget&(Ljava/lang/Object;)Ljava/lang/Object;U/jnlp/sample/servlet/ResourceCatalog$PathEntriesW jnlp/sample/servlet/JnlpResource DY Z[valueOf&(Ljava/lang/Object;)Ljava/lang/String; V] ^3(Ljavax/servlet/ServletContext;Ljava/lang/String;)V V` abexists()Z Vd efgetLastModified()J Tdiservlet.log.scandir ?k lminfo'(Ljava/lang/String;Ljava/lang/Object;)V o pq scanDirectoryI(Ljava/lang/String;Ljnlp/sample/servlet/DownloadRequest;)Ljava/util/List;sjava/util/ArrayList r v wxparseVersionXMLW(Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljnlp/sample/servlet/JnlpResource;)V Tz {4(Ljava/util/List;Ljava/util/List;Ljava/util/List;J)V } ~put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + bisPlatformRequest T getPlatformList()Ljava/util/List;   findMatchm(Ljava/util/List;Ljava/lang/String;Ljnlp/sample/servlet/DownloadRequest;[Ljnlp/sample/servlet/JnlpResource;)I $jnlp/sample/servlet/DownloadResponse getJnlpErrorResponse)(I)Ljnlp/sample/servlet/DownloadResponse; ( )(Ljnlp/sample/servlet/DownloadResponse;)V T getVersionXmlListLooking up directoryList... T getDirectoryList T setDirectoryList(Ljava/util/List;)V java/lang/Math max(II)Idreq%Ljnlp/sample/servlet/DownloadRequest;pathnamediridxIpentries1Ljnlp/sample/servlet/ResourceCatalog$PathEntries;xmlVersionResPath"Ljnlp/sample/servlet/JnlpResource;dirListLjava/util/List; versionList platformListresult#[Ljnlp/sample/servlet/JnlpResource;stssts1sts2 StackMapTablejnlp/sample/util/VersionString + / getVersion 5 java/util/List R(I)Ljava/lang/Object;jnlp/sample/util/VersionID V / getVersionId 5   matchEntry(Ljava/lang/String;Ljnlp/sample/util/VersionString;Ljnlp/sample/servlet/DownloadRequest;Ljnlp/sample/servlet/JnlpResource;Ljnlp/sample/util/VersionID;)I  isGreaterThan(Ljnlp/sample/util/VersionID;)Z size()Ilist bestVersionIdLjnlp/sample/util/VersionID;errorvs Ljnlp/sample/util/VersionString;irespathvid V /getName D equals(Ljava/lang/Object;)Z contains V  getOSList()[Ljava/lang/String; + getOS  prefixMatchLists)([Ljava/lang/String;[Ljava/lang/String;)Z V  getArchList + getArch V  getLocaleList +  getLocalejnlpresprefixMatchStringList(([Ljava/lang/String;Ljava/lang/String;)Z D   startsWith(Ljava/lang/String;)Z prefixList[Ljava/lang/String;target  prefixeskeys jnlpGetPath9(Ljnlp/sample/servlet/DownloadRequest;)Ljava/lang/String;/ D G(Ljava/lang/String;)I.__V__O__A!__Lfilenameexttemp 'resourceResolver )+*javax/servlet/ServletContext ,- getAttribute&(Ljava/lang/String;)Ljava/lang/Object;/$jnlp/sample/servlet/ResourceResolver .1 23getDir"(Ljava/lang/String;)Ljava/io/File;5Dir resolved to: 07 98-(Ljava/lang/Object;)Ljava/lang/StringBuilder; :`; java/io/File = ? Dir PATH: A Dir NAME: VC D(Ljavax/servlet/ServletContext;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V VF GH getResource()Ljava/net/URL; rJ KaddMFile directory: :O Pb isDirectory :R ST listFiles()[Ljava/io/File; : W XYparseFileEntryH(Ljava/lang/String;Ljava/lang/String;)Ljnlp/sample/servlet/JnlpResource;[Read file resource: ]WTF? NOT File directory: dirPathLjava/util/ArrayList;Ljava/io/File;entries[Ljava/io/File;beCheching dir: g with file: i__ Dk lindexOfnpname r == Dt uvcharAt(I)C Dx ylength { |} listToStrings%(Ljava/util/List;)[Ljava/lang/String;rest extension versionIdosListarchList localeListoptionCarg  toArray(([Ljava/lang/Object;)[Ljava/lang/Object; (javax/xml/parsers/DocumentBuilderFactory  newInstance,()Ljavax/xml/parsers/DocumentBuilderFactory;  newDocumentBuilder%()Ljavax/xml/parsers/DocumentBuilder;java/io/BufferedInputStream  java/net/URL  openStream()Ljava/io/InputStream;  (Ljava/io/InputStream;)V !javax/xml/parsers/DocumentBuilder parse-(Ljava/io/InputStream;)Lorg/w3c/dom/Document; org/w3c/dom/Document getDocumentElement()Lorg/w3c/dom/Element; org/w3c/dom/Element  normalize jnlp/sample/servlet/XMLParsing convert1(Lorg/w3c/dom/Node;)Ljnlp/sample/servlet/XMLNode;servlet.log.warning.xml.parsing V- org/xml/sax/SAXParseException  getLineNumber java/lang/Integer =L  / getMessage ? warn((Ljava/lang/String;[Ljava/lang/Object;)Vservlet.log.warning.xml.reading ? 9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V jnlp/sample/servlet/XMLNode jnlp-versions$servlet.log.warning.xml.missing-jnlp ? m %jnlp/sample/servlet/ResourceCatalog$1  l(Ljnlp/sample/servlet/ResourceCatalog;Ljnlp/sample/servlet/JnlpResource;Ljava/lang/String;Ljava/util/List;)V   visitElementsa(Ljnlp/sample/servlet/XMLNode;Ljava/lang/String;Ljnlp/sample/servlet/XMLParsing$ElementVisitor;)V %jnlp/sample/servlet/ResourceCatalog$2 java/lang/Throwable versionResrootLjnlp/sample/servlet/XMLNode;docBuilderFactory*Ljavax/xml/parsers/DocumentBuilderFactory; docBuilder#Ljavax/xml/parsers/DocumentBuilder;docLorg/w3c/dom/Document;errLorg/xml/sax/SAXParseException;tLjava/lang/Throwable; SourceFileResourceCatalog.java InnerClasses PathEntries-jnlp/sample/servlet/XMLParsing$ElementVisitorElementVisitor NestMembers!   z$****Y*+*,i< =jkl#m $!"$# $$ %&'(: +*M*0Y24+*7;>N:,/C6,N,`IN,`M:*PT:VY*0YX47;\:_ecgW*hj*+n:rYt: rYt: *  uTY  cy:*|WV:+$*-+6  u(Y *-+6  T*>*-+6  5*+n*-+6  (Y  24rs!t#u&v.w4x6y9zB{M[ow| !#(-8@BGLX`bglptz~ !"~#`&].U[(|>5 ,  (V G7 /9+DDDITVS-d + : 6Y-:6[+V: Y ɷ: *,-  6  !2  љ S :  6+2F !.<JO`fjmv z !" wf.H <: J, 5 D+>V AV+ , *-*-*-. +.>AQT >V!"VVVVV  (*+=+*2*&  & (  (   (+,>+,2 ,&     & *(!"( (   Q+*M,,`IN,,`MM-::---`I:--MN+0Y-X47+7;N+:16#0Y-X4727;N+:16#0Y-X4727;N+:16#0Y-X4 727;N0Y-X477;N0Y,X4-7;M,v%&'"(%)(+3,B.O1V2r5x7}898=?@A@DFGHGL"M<POR f Q!"QL>"%,()#x$ +++8 O+DDDD"%pq crYtN*&(.+0:*0Y446;>9*,<:*0Y>47;>,*`I:*0Y@47;>VY*,,,,,B:E-IW-*0YL46;>9\NTQ:6<*+2UV:%*0YZ46;>-IW§*0Y\46;>-"VY ZYZY[:\B]I^d`wacdechiklopqrst suv1w8rCzF{a~ p c!"c^c[_D`IwSGabD'1D+r:DDV7c5 XYO *0Yd4+7f7,7;>,hj>,M:,I:.C>m:I:M:*0Yo47q77q77;>:rYt:rYt: rYt: hI:s6 hj>: I: m:M: I: TA>LIO3V, :& IW  IW  IWwTVY*0YX47;*z* z* z0Y+X4,7;B-$,13;BJOT\e48;CFNQY\^f !"",;sBl~O_ __ _  ~ I 31DDDQ DDDDDDrrr 0D- |}c+++D%   !" wx# _:::YE::G:*YSYSYS:*Ҷ*ػY*-+ܸY*-,߱ FI Fw"   ).:FKX`qvwy()(Z p !" 5..K,y% ?DVm"T  T