4/       `          `  `   `     $ `  + . a 2 a      A  +<#     A c d  Z c  ] +F !"#$%&'()*+,-./01234567 c8n9:  ;<= +> d? @A eB eCDE  FGH aIJKLMNO aP QR STUV W  X YZ[\  ]^ _ Y` Ya b c d e f g ah .i Zj kl Z `m `no  pq r s t uv wx yz w{ |} ~   Y       i  Z  ci   StructureDataAsciiGhcnm InnerClasses StnDataIterSeqIter StationIndexVinfologgerLorg/slf4j/Logger;pLjava/lang/String; ConstantValue dataPatternLcom/google/re2j/Pattern;RECORDSTNIDYEARDIM_NAMETIMEVALUEDMFLAGQCFLAGDSFLAGSTNSLATLONSTELEVNAMEGRELEVPOPCLSPOPSIZTOPOSTVEGSTLOCOCNDISAIRSTNTOWNDISGRVEGPOPCSSWMOSTN_DATAncfileLucar/nc2/NetcdfFile;stnRaf"Lucar/unidata/io/RandomAccessFile;STN_EXTDAT_EXTIDX_EXT MAGIC_STARTversionImapLjava/util/HashMap; SignatureLLjava/util/HashMap; stnIdFromDataField!Lucar/nc2/util/TableParser$Field;stnDataMembersLucar/ma2/StructureMembers;()VCodeLineNumberTableLocalVariableTablethisLucar/nc2/iosp/noaa/Ghcnm; isValidFile%(Lucar/unidata/io/RandomAccessFile;)ZdatFileLjava/io/File;stnFileb[BtestrafdataFileposbaseext StackMapTable ExceptionscloseopenT(Lucar/unidata/io/RandomAccessFile;Lucar/nc2/NetcdfFile;Lucar/nc2/util/CancelTask;)VmMember"Lucar/ma2/StructureMembers$Member; cancelTaskLucar/nc2/util/CancelTask; dataParserLucar/nc2/util/TableParser;dataSeqLucar/nc2/Structure;vLucar/nc2/Variable;dataSmorgderived stnParserstnSeq nestedSeqnestedSmorg2derived2stnSmcountnorg3derived3idxFile makeMember(Lucar/nc2/Structure;Ljava/lang/String;Lucar/ma2/DataType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lucar/nc2/constants/AxisType;)Lucar/nc2/Variable;s shortNamedataTypeLucar/ma2/DataType;dimslongNameunitscfNameatypeLucar/nc2/constants/AxisType; readIndex(Ljava/lang/String;)Vsizepbsi'Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;ifinLjava/io/FileInputStream; indexFilename makeIndex(Ljava/io/File;)VstnPosJlineidLjava/lang/Long;dataPosfoutLjava/io/FileOutputStream; indexFileLucar/nc2/Sequence;stnInfo Lucar/nc2/iosp/noaa/Ghcnm$Vinfo;fstnCountdataInfocurrStn totalCountdecodeStationIndex+([B)Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;dataproto,Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex; getFileTypeId()Ljava/lang/String;getFileTypeDescriptionreadData7(Lucar/nc2/Variable;Lucar/ma2/Section;)Lucar/ma2/Array;v2sectionLucar/ma2/Section;vinfogetStructureIterator7(Lucar/nc2/Structure;I)Lucar/ma2/StructureDataIterator; bufferSize access$200>(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/unidata/io/RandomAccessFile;x0 access$300 access$400 access$500=(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/nc2/util/TableParser$Field; access$600/(Lucar/nc2/iosp/noaa/Ghcnm;)Ljava/util/HashMap; access$7007(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/ma2/StructureMembers; SourceFile Ghcnm.java *+ #$ ') ; ,-java/util/HashMap , .   ucar/nc2/iosp/noaa/Ghcnm.dat .ncsx java/io/Filejava/lang/StringBuilder   ,s .inv  GhncmIndex  java/lang/String  , C-  DE java/io/FileNotFoundException  must exist  rsGhcnm: file must end with .datucar/nc2/util/TableParser11L,15i,19,24i,25,26,27ucar/nc2/Sequenceall_data , ucar/nc2/Dimensionmonth , stnid k station stnId fgyear kyear of the station recordvalue kmonthly mean temperatureCelsiusucar/nc2/Attributeucar/nc2/constants/CDM missing_value  ,   dm kdata management flagqcquality control flagdsdata source flagtime kstarting time of the record qmissing ,   ucar/nc2/iosp/noaa/Ghcnm$Vinfo , ucar/nc2/iosp/noaa/Ghcnm$1 , 911L,20d,30d,37d,68,73i,74,79i,81,83,85,87i,88,90i,106,107station station iducar/nc2/constants/CFcf_role timeseries_idlatlatitude degrees_northlon longitude degrees_east elevationname station name standard_namestation_descriptiongrelev5elevation estimated from gridded digital terrain datapopClasspopulation classpopSize8population of the city or town the station is located inthousands of personstopoType=type of topography in the environment surrounding the stationvegType,type of vegetation in environment of stationoceanstation is near lake or ocean oceanDistdistance to nearest ocean/lakekm airportIdairport station indicatortownDist:distance from airport to center of associated city or townUvegetation type at nearest 0.5 deg x 0.5 deg gridded data point of vegetation datasetpopClassFromLights8population class as determined by satellite night lightsstn_data years since 0000-01-01T00:00ucar/nc2/iosp/noaa/Ghcnm$2wmoIdWMO station idstation_WMO_id      ucar/ma2/StructureMembers$Memberucar/nc2/iosp/noaa/Ghcnm$3 titleGVersion 3 of the GHCN-Monthly dataset of land surface mean temperatures  ConventionsCDMCF:featureType timeSeriesseeHhttp://www.ncdc.noaa.gov/ghcnm, ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v3 - |}ucar/nc2/Variable , long_nameucar/nc2/constants/_Coordinate_CoordinateAxisTypejava/io/FileInputStream  java/lang/IllegalStateExceptionbad index file Bad version =       java/lang/Throwable    +  ucar/nc2/util/TableParser$Field    %ucar/nc2/iosp/noaa/Ghcnm$StationIndex  java/lang/Long  ~  Cant find id = {}  !Id {} Not in order at pos {}  java/io/FileOutputStream ,}        ! ,"GHCNM-GLOBAL HISTORICAL CLIMATOLOGY NETWORK MONTHLYucar/ma2/ArraySequence ucar/nc2/iosp/noaa/Ghcnm$SeqIter ,# $! ,%& '((\d{11})(\d{4})TAVG([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)?.*) *+ 'ucar/nc2/iosp/AbstractIOServiceProvider0ucar/nc2/iosp/noaa/Ghcnm$StructureDataAsciiGhcnm$ucar/nc2/iosp/noaa/Ghcnm$StnDataIterjava/io/IOException ucar/unidata/io/RandomAccessFileucar/nc2/NetcdfFileucar/nc2/util/CancelTaskucar/nc2/Structureucar/ma2/StructureMembersjava/util/Iterator,*ucar/nc2/iosp/noaa/GhcnmProto$StationIndex2com/google/protobuf/InvalidProtocolBufferException(I)V getLocation lastIndexOf(Ljava/lang/String;)I substring(II)Ljava/lang/String;(I)Ljava/lang/String;equals(Ljava/lang/Object;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringexists()Zseek(J)Vlength()I readFully([B)V!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;([BLjava/nio/charset/Charset;)VgetPathacquire6(Ljava/lang/String;)Lucar/unidata/io/RandomAccessFile;N(Lucar/nc2/NetcdfFile;Lucar/nc2/Group;Lucar/nc2/Structure;Ljava/lang/String;)V addVariable8(Lucar/nc2/Group;Lucar/nc2/Variable;)Lucar/nc2/Variable;(Ljava/lang/String;I)V addDimension:(Lucar/nc2/Group;Lucar/nc2/Dimension;)Lucar/nc2/Dimension;ucar/ma2/DataTypeLONGINTFLOATjava/lang/IntegervalueOf(I)Ljava/lang/Integer;'(Ljava/lang/String;Ljava/lang/Number;)V addAttribute*(Lucar/nc2/Attribute;)Lucar/nc2/Attribute;getField$(I)Lucar/nc2/util/TableParser$Field;setScale(F)VCHARSTRINGucar/nc2/constants/AxisTypeTime'(Ljava/lang/String;Ljava/lang/String;)VmakeStructureMembers()Lucar/ma2/StructureMembers; findMember6(Ljava/lang/String;)Lucar/ma2/StructureMembers$Member; setDataObject(Ljava/lang/Object;)V\(Lucar/unidata/io/RandomAccessFile;Lucar/ma2/StructureMembers;Lucar/nc2/iosp/noaa/Ghcnm$1;)V setSPobject(Lucar/nc2/iosp/noaa/Ghcnm;)VaddDerivedField- Transform. DerivedField(Lucar/nc2/util/TableParser$Field;Lucar/nc2/util/TableParser$Transform;Ljava/lang/Class;)Lucar/nc2/util/TableParser$DerivedField;addMemberVariable((Lucar/nc2/Variable;)Lucar/nc2/Variable;getNumberOfFields getMembers+()Lcom/google/common/collect/ImmutableList;'com/google/common/collect/ImmutableListiterator2()Lcom/google/common/collect/UnmodifiableIterator;hasNextnext()Ljava/lang/Object;TYPELjava/lang/Class;:(Lucar/nc2/Group;Lucar/nc2/Attribute;)Lucar/nc2/Attribute;finishs(Lucar/nc2/NetcdfFile;Lucar/nc2/Group;Lucar/nc2/Structure;Ljava/lang/String;Lucar/ma2/DataType;Ljava/lang/String;)VgetBytes(Ljava/nio/charset/Charset;)[Bucar/nc2/stream/NcStream readAndTest(Ljava/io/InputStream;[B)Zread(I)Ljava/lang/StringBuilder;readVInt(Ljava/io/InputStream;)I(Ljava/io/InputStream;[B)IstnId(J)Ljava/lang/Long;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; addSuppressed(Ljava/lang/Throwable;)V findVariable'(Ljava/lang/String;)Lucar/nc2/Variable; getSPobjectsm getDataObjectgetFilePointer()JreadLineparse&(Ljava/lang/String;)Ljava/lang/Object; longValueget&(Ljava/lang/Object;)Ljava/lang/Object;org/slf4j/Loggerwarn'(Ljava/lang/String;Ljava/lang/Object;)V dataCount9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Vwrite writeVInt(Ljava/io/OutputStream;I)Ivalues()Ljava/util/Collection;java/util/Collection()Ljava/util/Iterator; access$100+(Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;)[B parseFrom0([B)Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex;/(Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex;)V=(Lucar/nc2/iosp/noaa/Ghcnm;Lucar/nc2/iosp/noaa/Ghcnm$Vinfo;)Vnelems?(Lucar/ma2/StructureMembers;Lucar/ma2/StructureDataIterator;I)Vorg/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;com/google/re2j/Patterncompile-(Ljava/lang/String;)Lcom/google/re2j/Pattern;ucar/nc2/iosp/noaa/GhcnmProto#ucar/nc2/util/TableParser$Transform&ucar/nc2/util/TableParser$DerivedField! ( /6:3Q=JMOafi l n r t vy{}{ !"#$%&')*+,-.A**Y'/ 20 1234. +M, >, :, :{YY:YY:+ :+Y:  YY:/Z !57A^fh0p ^[5647689: 7612;< =!>!?@!$0&)ABC-.s'* * *! *! **!/!&0 '12@ ABDE. ( c*+,-"*,#+: 6 : :лYY:"$YY%&'YY:  "$YY %&'*Y(*Y(!*+)+ {*+ $Y*'YY:"$YY%&'*Y(!+Y,-:.Y,/0: , 1W,2Y3 45W* 6789W* :;<9W* =>3?@9:  AYCDEFWGHI* JK3L9W* MK3N9W* OK3P9W* QRST9:  AYCUVFW W:  6XGY :XGY =XGY JXGY MXGY OXGY ZY* [\*GG:  ]Y*^_:  QX Y+Y`-:.Y,a0:,1W*67b9:  AYdeVFW*f>gh9W*i>jk9W*l>lm9W*nRo9:  AYpqVFW*r;sm9W*tKu9W*v;wx9:  AYCDEFW*yRz9W*{R|9W*}R~9W*;9:  AYCDEFW*K9W*;9:  AYCDEFW*{R9W*K9W.Y,0:W*:;:9:  AYVFW*=>3?@9:  AYCDEFWGHI*JK3L9W*MK3N9W*OK3P9W*QRST9:  AYCUVFWW::XGY=XGYJXGYMXGYOXGYZY*[\*G:Y*_:QXY*;9:  AYCDEFW AYpVFWW:66:(:GYZY*![\G:Y*_:XY,AYVW,AYVW,AYVW,AYVW,YY: * *%)/z %.8U]| ;Cb } #$%&'().*A-V.g0n1~2345678;<BXY,Z4\G]X^k_~`abcefhik&l8mLn`orprsuyz|}~#.ATg|%8M^eho'+HPYb0.U56i76 ;B76FHc12c;ccIJQ<H=!%>>.5?KLMN {OP nQ+ oR) \S) ETL,7UNVNW+]X)JY)eZ+h[!o\!])^)H_6@ |  `abCDC `ab+cd+ccdde+ABfg.+ sY*#+,-:  AYVFW AYpVFW AYVFW AYVFW+ W /* $):?PUip0f s12shNsisjkslsmsnsospq`OP @ :rs. Y+M, Y,>YY,666,6:,W*:*W,N, :-- /F "',GMW]cjr0\ ]'t!c!u9rvwP:x!'c !M=[! yz12{@2"$9F AB|}.*#a.M,ZN-6X::6- -Ķ7-Ķ:  ;Y:  : *  W  ˵ ̄*#/.:Z:6X::: 6  Ķ7 Ķ:   :  ˔O*:)љ   Ԅ :   Y`ѧiY+: 7     مa7 *ڹ:7::  مa7  a7  ק ݧ:  ݧ :    h/7   *-5>GLOXdpz"#$%&'*,-./123 45!6)7=9D:G<K>P?[@^DhEkHxI~JSTUVWXYDZ0>F~G= X,hw d   >hw  ou9%hwklt h 126 U FH*)-!aMW>w ;! @5 .Z7<  .Z.Z! :e=G  .Z.ZAB.P+MY,߰/ ]^0 129 A.-/0 12.-/0 12.m!+ZNY-Y*--/ 0*!12!P!AB.^+ZNY*-/ 0*12hN! AB./*/20 2./*/20 2./*/20 2./*/20 2./*/20 2./*/20 2-.- / 3j    Z ]+( dG+ +