2 O G G     G G          % %  % %    %   G G     G G G G LfileLjava/lang/String;listZ()VCodeLineNumberTableLocalVariableTablethis'Lorg/apache/poi/hssf/dev/FormulaViewer;runrecord#Lorg/apache/poi/hssf/record/Record;kIfs2Lorg/apache/poi/poifs/filesystem/NPOIFSFileSystem;isLjava/io/InputStream;recordsLjava/util/List;LocalVariableTypeTable5Ljava/util/List; StackMapTable Exceptions listFormula-(Lorg/apache/poi/hssf/record/FormulaRecord;)VnumArg*Lorg/apache/poi/hssf/record/FormulaRecord;septokens$[Lorg/apache/poi/ss/formula/ptg/Ptg;token#Lorg/apache/poi/ss/formula/ptg/Ptg;numptgsbufLjava/lang/StringBuffer;uparseFormulaRecord formulaString>(Lorg/apache/poi/hssf/record/FormulaRecord;)Ljava/lang/String;icomposeFormulasetFile(Ljava/lang/String;)VsetList(Z)Vmain([Ljava/lang/String;)VviewereLjava/lang/Exception;args[Ljava/lang/String; SourceFileFormulaViewer.java TU RS0org/apache/poi/poifs/filesystem/NPOIFSFileSystem java/io/File PQ T T   !org/apache/poi/hssf/record/Record (org/apache/poi/hssf/record/FormulaRecord op p U~ %org/apache/poi/ss/formula/ptg/FuncPtg java/lang/StringBuffer$org/apache/poi/ss/formula/ptg/ExpPtg*org/apache/poi/ss/formula/ptg/OperationPtg  REFVALUEARRAY   ==============================java/lang/StringBuilderrow =     , col =  value =   xf = , number of ptgs =  , options =  RPN List = Formula text = (R)(V)(A) *org/apache/poi/hssf/usermodel/HSSFWorkbook --help ]FormulaViewer .8 proof that the devil lies in the details (or just in BIFF8 files in general)"usage: Give me a big fat file name--listFunctions%org/apache/poi/hssf/dev/FormulaViewer [Ujava/lang/ExceptionWhoops! Ujava/lang/Objectjava/io/InputStreamjava/util/Listjava/lang/String!org/apache/poi/ss/formula/ptg/Ptg(Ljava/io/File;Z)V"org/apache/poi/hssf/dev/BiffViewergetPOIFSInputStreamI(Lorg/apache/poi/poifs/filesystem/NPOIFSFileSystem;)Ljava/io/InputStream;(org/apache/poi/hssf/record/RecordFactory createRecords'(Ljava/io/InputStream;)Ljava/util/List;size()Iget(I)Ljava/lang/Object;getSid()SclosegetParsedExpression&()[Lorg/apache/poi/ss/formula/ptg/Ptg;valueOf(I)Ljava/lang/String;toFormulaString()Ljava/lang/String;append,(Ljava/lang/String;)Ljava/lang/StringBuffer; getPtgClass()Bjava/lang/SystemoutLjava/io/PrintStream;toStringjava/io/PrintStreamprintln-(Ljava/lang/String;)Ljava/lang/StringBuilder;getRow(I)Ljava/lang/StringBuilder;print getColumngetValue()D(D)Ljava/lang/StringBuilder; getXFIndex getOptions(C)Ljava/lang/StringBuffer;+org/apache/poi/hssf/model/HSSFFormulaParserd(Lorg/apache/poi/hssf/usermodel/HSSFWorkbook;[Lorg/apache/poi/ss/formula/ptg/Ptg;)Ljava/lang/String;equals(Ljava/lang/Object;)ZprintStackTrace!GOPQRS TUV< **W2- 3X  YZ[UV4nYY*L+M, N6- <-  : ** *,+W6 >?@B,D9FCHJIVK_BeOiPmQX>9&\]!D^_nYZZ`aUbcPdef Pdgh"!ijkl4mnLopVGM+N-6-d2:d: :Y:W,W@" -@8WW  W,WU-d2:B$ /@:WW  W W,WW!"#W TUW YZ[(].`7b@cNdUe|ghjkmqrstvwyz|}X\ %qQYZ\rsQtuvw x_.qQ7yzh/ (i{|}~|; = pVC!$#!%Y&'(+)*+,!%Y&-(+.*+#!%Y&/(+01+#!%Y&2(+3*+,!%Y&4(+*+,!%Y&5(+6*+#!%Y&7(*+8(+#!%Y&9(+:(+#W* $@\xXYZ\rV+}YM+N6-d-2:,;W?$ .@8,<W,=W ,>W, ?W,"W: 'PWZadkrxX>Uvwh_}YZ}\ruyz ptuh}?~  V6 @*AWX  \rV>*+W XYZPQV>*W XYZRS VH***2BC!D#!E#\*2FC.GYHL+*2I+J+K6L!M#+N&GYHL+*2I+KL!M#+N3KNL^qtLWV(3;BGKNOW[^fmqtu}X4;ZO f Zu heU