text:
<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.fgdc.gov/metadata/fgdc-std-001-1998.xsd">
   <idinfo>
      <citation>
         <citeinfo>
            <origin>John Wilson</origin>
            <pubdate>20140114</pubdate>
            <title>NMT Taos Ski Valley Weather Station (Sept, 2013)</title>
            <geoform>vector digital data</geoform>
            <onlink>http://nmepscor.org/dataportal</onlink>
            <onlink>https://gstore.unm.edu/dataone/v1/object/e72688e4-3894-4b6a-8634-a94801a5b22b</onlink>
         </citeinfo>
      </citation>
      <descript>
         <abstract>This dataset contains weather station data from the Taos Ski Valley, New Mexico.</abstract>
         <purpose>The objective of this study was to provide a long-term, high resolution record of relevant hydrogeological measurements in the Taos Ski Valley in order to better understand climatic forcings in the area.</purpose>
         <supplinf>Funding source is unknown. Principal Investigator is John Wilson at New Mexico Tech. The main researcher for this project is Gus Tolley at New Mexico Tech. This file is made available through New Mexico's Experimental Program to Stimulate Competitive Research (NM EPSCoR) data portal. The portal provides access to data generated by and of use to the EPSCoR community including researchers, educators, and policy leaders, as well as the general public.</supplinf>
      </descript>
      <timeperd>
         <timeinfo>
            <rngdates>
               <begdate>20130901</begdate>
               <begtime>000000</begtime>
               <enddate>20130930</enddate>
            </rngdates>
         </timeinfo>
         <current>Ground condition</current>
      </timeperd>
      <status>
         <progress>In work</progress>
         <update>Continually</update>
      </status>
      <spdom>
         <bounding>
            <westbc>-105.427001</westbc>
            <eastbc>-105.427001</eastbc>
            <northbc>36.585997</northbc>
            <southbc>36.585997</southbc>
         </bounding>
      </spdom>
      <keywords>
         <theme>
            <themekt>ISO 19115 Topic Categories</themekt>
            <themekey>climatologyMeteorologyAtmosphere</themekey>
         </theme>
         <theme>
            <themekt>NMT</themekt>
            <themekey>EPSCoR Track 1 R3</themekey>
            <themekey>Climate</themekey>
            <themekey>Weather</themekey>
         </theme>
         <place>
            <placekt>Spatial Reference System Identifiers</placekt>
            <placekey>EPSG:4269</placekey>
            <placekey>EPSG:7019</placekey>
         </place>
         <place>
            <placekt>GNIS</placekt>
            <placekey>New Mexico</placekey>
            <placekey>Taos Ski Valley</placekey>
            <placekey>Rio Hondo</placekey>
         </place>
      </keywords>
      <accconst>None</accconst>
      <useconst>None</useconst>
      <ptcontac>
         <cntinfo>
            <cntorgp>
               <cntorg>Department of Earth and Environmental Science, New Mexico Tech</cntorg>
               <cntper>John Wilson</cntper>
            </cntorgp>
            <cntaddr>
               <addrtype>mailing and physical address</addrtype>
               <address>801 Leroy Place</address>
               <city>Socorro</city>
               <state>NM</state>
               <postal>87801</postal>
               <country>USA</country>
            </cntaddr>
            <cntvoice>575-835-5634</cntvoice>
            <cntemail>jwilson@nmt.edu</cntemail>
         </cntinfo>
      </ptcontac>
   </idinfo>
   <dataqual>
      <logic>Not provided</logic>
      <complete>Not provided</complete>
      <lineage>
         <procstep>
            <procdesc>Raw field data were collected from the weather station</procdesc>
            <procdate>Unknown</procdate>
            <proccont>
               <cntinfo>
                  <cntorgp>
                     <cntorg>New Mexico Tech</cntorg>
                     <cntper>Gus Tolley</cntper>
                  </cntorgp>
                  <cntpos>Graduate Research Assistant</cntpos>
                  <cntaddr>
                     <addrtype>mailing address</addrtype>
                     <address>801 Leroy Place</address>
                     <city>Socorro</city>
                     <state>NM</state>
                     <postal>87801</postal>
                     <country>USA</country>
                  </cntaddr>
                  <cntvoice>575-835-5634</cntvoice>
                  <cntemail>dtolley@nmt.edu</cntemail>
               </cntinfo>
            </proccont>
         </procstep>
      </lineage>
   </dataqual>
   <spdoinfo>
      <indspref>Rio Hondo</indspref>
      <direct>Vector</direct>
      <ptvctinf>
         <sdtsterm>
            <sdtstype>Point</sdtstype>
            <ptvctcnt>2801</ptvctcnt>
         </sdtsterm>
      </ptvctinf>
   </spdoinfo>
   <spref>
      <horizsys>
         <geograph>
            <latres>0.00000001</latres>
            <longres>0.00000001</longres>
            <geogunit>Decimal degrees</geogunit>
         </geograph>
         <geodetic>
                <horizdn>North American Datum of 1983</horizdn>
                <ellips>Geodetic Reference System 80</ellips>
                <semiaxis>6378137.000000</semiaxis>
                <denflat>298.257222</denflat>
            </geodetic>
      </horizsys>
   </spref>
   <eainfo>
      <detailed>
         <enttyp>
            <enttypl>NMT Taos Ski Valley Weather Station</enttypl>
            <enttypd>Taos Weather Station</enttypd>
            <enttypds>EDAC</enttypds>
         </enttyp>
         <attr>
            <attrlabl>TIMESTAMP</attrlabl>
            <attrdef>Datetime</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <udom>Datetime</udom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>RECORD</attrlabl>
            <attrdef>Record number</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <udom>Record number</udom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>BattV_Avg</attrlabl>
            <attrdef>Average Voltage of Battery</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Volts</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>BattV_Std</attrlabl>
            <attrdef>Standard deviation of battery Voltage</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Volts</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>AirTC_280cm_Avg</attrlabl>
            <attrdef>Average temperature at 280cm in Celsius</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>AirTC_280cm_Std</attrlabl>
            <attrdef>Standard deviation of temperature at 280cm in Celsius</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>RH_280cm</attrlabl>
            <attrdef>Relative humidity at 280cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>%</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>AirTC_60cm_Avg</attrlabl>
            <attrdef>Average temperature at 60cm in Celsius</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>AirTC_60cm_Std</attrlabl>
            <attrdef>Standard deviation of temperature at 60cm in Celsius</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>RH_60cm</attrlabl>
            <attrdef>Relative humidity at 60cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>%</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetSW_Avg</attrlabl>
            <attrdef>Average net Shortwave Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetSW_Std</attrlabl>
            <attrdef>Standard deviation net Shortwave Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetLW_Avg</attrlabl>
            <attrdef>Average net Longwave Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetLW_Std</attrlabl>
            <attrdef>Standard deviation net Longwave Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetRad_Avg</attrlabl>
            <attrdef>Average net total Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>NetRad_Std</attrlabl>
            <attrdef>Average net total Radiation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>BP_kPa_Avg</attrlabl>
            <attrdef>Average barometric pressure in kPa</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>kPa</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>BP_kPa_Std</attrlabl>
            <attrdef>Average barometric pressure in kPa</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>kPa</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>PAR_Den_Avg</attrlabl>
            <attrdef>Photosynthetic Active Radiation density average</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>umol/s/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>PAR_Den_Std</attrlabl>
            <attrdef>Photosynthetic Active Radiation density standard deviation</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>umol/s/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>PAR_Tot_Tot</attrlabl>
            <attrdef>Photosynthetic Active Radiation density total</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mmol/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>SoilHeatFlux_Avg</attrlabl>
            <attrdef>Average heat flux of soil</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>SoilHeatFlux_Std</attrlabl>
            <attrdef>Standard deviation of heat flux of soil</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>W/m^2</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>DT_Avg</attrlabl>
            <attrdef>Average distance to target(snow)</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>DT_Std</attrlabl>
            <attrdef>Standard deviation of distance to target(snow)</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Q_Avg</attrlabl>
            <attrdef>Average quality of data</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <edom>
                  <edomv>0</edomv>
                  <edomvd>Not able to read distance</edomvd>
                  <edomvds>NMT</edomvds>
               </edom>
               <edom>
                  <edomv>152 to 210</edomv>
                  <edomvd>Good measurement quality numbers</edomvd>
                  <edomvds>NMT</edomvds>
               </edom>
               <edom>
                  <edomv>210 to 300</edomv>
                  <edomvd>Reduced ech signal strength</edomvd>
                  <edomvds>NMT</edomvds>
               </edom>
               <edom>
                  <edomv>300 to 600</edomv>
                  <edomvd>High measurement uncertainty</edomvd>
                  <edomvds>NMT</edomvds>
               </edom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Q_Std</attrlabl>
            <attrdef>Standard deviation of quality of data</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Unknown</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>TCDT_Avg</attrlabl>
            <attrdef>Average temperature corrected distance to target(snow)</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>TCDT_Std</attrlabl>
            <attrdef>Standard deviation of temperature corrected distance to target(snow)</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>DBTCDT_Avg</attrlabl>
            <attrdef>Average difference between ground and TCDT - snow level</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>DBTCDT_Std</attrlabl>
            <attrdef>Standard deviation of difference between ground and TCDT - snow level</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>ft</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Intensity_RT_Avg</attrlabl>
            <attrdef>Average intensity of precipitation in real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm/hr</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Intensity_RT_Std</attrlabl>
            <attrdef>Standard devation of intensity of precipitation in real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm/hr</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_RT_NT_Avg</attrlabl>
            <attrdef>Average accumulation of precipitation since last measurement sample or real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_RT_NT_Std</attrlabl>
            <attrdef>Standard deviation of accumulation of precipitation since last measurement sample or real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_NRT_Avg</attrlabl>
            <attrdef>Average accumulation of precipitation since last measurement sample</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_NRT_Std</attrlabl>
            <attrdef>Standard deviation of accumulation of precipitation since last measurement sample</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_Tot_NRT_Avg</attrlabl>
            <attrdef>Average accumulation of precipitation since station setup</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Accum_Tot_NRT_Std</attrlabl>
            <attrdef>Standard deviation of accumulation of precipitation since station setup</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Bucket_RT_Avg</attrlabl>
            <attrdef>Average bucket content in realtime</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Bucket_RT_Std</attrlabl>
            <attrdef>Standard devation of bucket content in realtime</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Bucket_NRT_Avg</attrlabl>
            <attrdef>Average bucket content in non real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Bucket_NRT_Std</attrlabl>
            <attrdef>Standard devation of bucket content in non real time</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>mm</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Heating_Status</attrlabl>
            <attrdef>Status of the heating element for the bucket</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Unknown</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>Status</attrlabl>
            <attrdef>Status of the entire bucket</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Unknown</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_8cm_Avg</attrlabl>
            <attrdef>Average volumetric Water content at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_8cm_Std</attrlabl>
            <attrdef>Standard deviation volumetric Water content at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_8cm_Avg</attrlabl>
            <attrdef>Average electrical conductivity at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_8cm_Std</attrlabl>
            <attrdef>Standard deviation electrical conductivity at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_8cm_Avg</attrlabl>
            <attrdef>Average temperature at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_8cm_Std</attrlabl>
            <attrdef>Standard deviation temperature at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_8cm_Avg</attrlabl>
            <attrdef>Average relative Dielectric Permittivity at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_8cm_Std</attrlabl>
            <attrdef>Standard deviation relative Dielectric Permittivity at 8cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_66cm_Avg</attrlabl>
            <attrdef>Average volumetric Water content at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_66cm_Std</attrlabl>
            <attrdef>Standard deviation volumetric Water content at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_66cm_Avg</attrlabl>
            <attrdef>Average electrical conductivity at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_66cm_Std</attrlabl>
            <attrdef>Standard deviation electrical conductivity at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_66cm_Avg</attrlabl>
            <attrdef>Average temperature at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_66cm_Std</attrlabl>
            <attrdef>Standard deviation temperature at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_66cm_Avg</attrlabl>
            <attrdef>Average relative Dielectric Permittivity at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_66cm_Std</attrlabl>
            <attrdef>Standard deviation relative Dielectric Permittivity at 66cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_98cm_Avg</attrlabl>
            <attrdef>Average volumetric Water content at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_98cm_Std</attrlabl>
            <attrdef>Standard deviation volumetric Water content at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_98cm_Avg</attrlabl>
            <attrdef>Average electrical conductivity at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_98cm_Std</attrlabl>
            <attrdef>Standard deviation electrical conductivity at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_98cm_Avg</attrlabl>
            <attrdef>Average temperature at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_98cm_Std</attrlabl>
            <attrdef>Standard deviation temperature at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_98cm_Avg</attrlabl>
            <attrdef>Average relative Dielectric Permittivity at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_98cm_Std</attrlabl>
            <attrdef>Standard deviation relative Dielectric Permittivity at 98cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_140cm_Avg</attrlabl>
            <attrdef>Average volumetric Water content at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>VWC_140cm_Std</attrlabl>
            <attrdef>Standard deviation volumetric Water content at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>m^3/m^3</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_140cm_Avg</attrlabl>
            <attrdef>Average electrical conductivity at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>EC_140cm_Std</attrlabl>
            <attrdef>Standard deviation electrical conductivity at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>dS/m</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_140cm_Avg</attrlabl>
            <attrdef>Average temperature at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>T_140cm_Std</attrlabl>
            <attrdef>Standard deviation temperature at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>Deg C</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_140cm_Avg</attrlabl>
            <attrdef>Average relative Dielectric Permittivity at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>P_140cm_Std</attrlabl>
            <attrdef>Standard deviation relative Dielectric Permittivity at 140cm</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>unitless</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>WS_ms_Avg</attrlabl>
            <attrdef>Average wind speed in m/s</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>meters/second</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>WS_ms_Std</attrlabl>
            <attrdef>Standard devation of wind speed</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>meters/second</attrunit>
               </rdom>
            </attrdomv>
         </attr>
         <attr>
            <attrlabl>WindDir</attrlabl>
            <attrdef>Direction of wind</attrdef>
            <attrdefs>NMT</attrdefs>
            <attrdomv>
               <rdom>
                  <rdommin>Unknown</rdommin>
                  <rdommax>Unknown</rdommax>
                  <attrunit>degrees</attrunit>
               </rdom>
            </attrdomv>
         </attr>
      </detailed>
   </eainfo>
   <distinfo>
      <distrib>
         <cntinfo>
            <cntorgp>
               <cntorg>Earth Data Analysis Center</cntorg>
            </cntorgp>
            <cntpos>Clearinghouse Manager</cntpos>
            <cntaddr>
               <addrtype>mailing and physical address</addrtype>
               <address>MSC01 1110</address>
               <address>1 University of New Mexico</address>
               <city>Albuquerque</city>
               <state>NM</state>
               <postal>87131-0001</postal>
               <country>USA</country>
            </cntaddr>
            <cntvoice>505-277-3622 ext. 230</cntvoice>
            <cntfax>505-277-3614</cntfax>
            <cntemail>clearinghouse@edac.unm.edu</cntemail>
            <hours>0800 - 1700 MT, M-F -7 hours GMT</hours>
         </cntinfo>
      </distrib>
      <resdesc>Downloadable Data</resdesc>
      <distliab>The material on this site is made available as a public service. Maps and data are to be used for reference purposes only and the Earth Data Analysis Center (EDAC), DataONE and The University of New Mexico are not responsible for any inaccuracies herein contained. No responsibility is assumed for damages or other liabilities due to the accuracy, availability, use or misuse of the information herein provided. Unless otherwise indicated in the documentation (metadata) for individual data sets, information on this site is public domain and may be copied without permission; citation of the source is appreciated.</distliab>
      <stdorder>
         <digform>
            <digtinfo>
               <formname>ZIP</formname>
            </digtinfo>
            <digtopt>
               <onlinopt>
                  <computer>
                     <networka>
                        <networkr>https://gstore.unm.edu/dataone/v1/object/e72688e4-3894-4b6a-8634-a94801a5b22b</networkr>
                     </networka>
                  </computer>
                  <accinstr>Download from DataONE at http://www.dataone.org.</accinstr>
               </onlinopt>
            </digtopt>
         </digform>
         <fees>None. The files are available to download from DataONE (http://www.dataone.org).</fees>
         <ordering>Contact Earth Data Analysis Center at clearinghouse@edac.unm.edu</ordering>
      </stdorder>
      <custom>Contact Earth Data Analysis Center at clearinghouse@edac.unm.edu</custom>
      <techpreq>Adequate computer capability is the only technical prerequisite for viewing data in digital form.</techpreq>
   </distinfo>
   <metainfo>
      <metd>20140325</metd>
      <metc>
         <cntinfo>
            <cntorgp>
               <cntorg>Earth Data Analysis Center</cntorg>
            </cntorgp>
            <cntpos>Clearinghouse Manager</cntpos>
            <cntaddr>
               <addrtype>mailing and physical address</addrtype>
               <address>MSC01 1110</address>
               <address>1 University of New Mexico</address>
               <city>Albuquerque</city>
               <state>NM</state>
               <postal>87131-0001</postal>
               <country>USA</country>
            </cntaddr>
            <cntvoice>505-277-3622 ext. 230</cntvoice>
            <cntfax>505-277-3614</cntfax>
            <cntemail>clearinghouse@edac.unm.edu</cntemail>
            <hours>0800 - 1700 MT, M-F -7 hours GMT</hours>
         </cntinfo>
      </metc>
      <metstdn>FGDC Content Standards for Digital Geospatial Metadata</metstdn>
      <metstdv>FGDC-STD-001-1998</metstdv>
      <mettc>local time</mettc>
   </metainfo>
</metadata>


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;

namespace ProtoCore.Utils
{
    public static class FileUtils
    {
        private static string mInstallPath;
        /// <summary>
        /// Locates the given file from the search path options and gets the
        /// full file path.
        /// </summary>
        /// <param name="fileName">Name of the file to locate</param>
        /// <param name="options">Options structure for search path, if options
        /// is null it will search only in the executing assembly path or the
        /// current directory.</param>
        /// <returns>Full path for the file if located successfully else the
        /// file name when failed to loate the given file</returns>
        public static string GetDSFullPathName(string fileName, ProtoCore.Options options = null)
        {
            //1.  First search at .exe module directory, in case files of the same name exists in the following directories.
            //    The .exe module directory is of highest priority.
            //    CodeBase is used here because Assembly.Location does not work quite well when the module is shallow-copied in nunit test.
            if (Path.IsPathRooted(fileName))
            {
                if (File.Exists(fileName))
                    return Path.GetFullPath(fileName);
                fileName = Path.GetFileName(fileName);
            }

            string fullPathName;

            if (GetFullPath(fileName, GetInstallLocation(), out fullPathName))
                return fullPathName;

            //2. Search relative to the .ds file directory
            string rootModulePath = ".";
            if (null!=options && !string.IsNullOrEmpty(options.RootModulePathName))
                rootModulePath = options.RootModulePathName;

            if (GetFullPath(fileName, rootModulePath, out fullPathName))
                return fullPathName;

            if (null != options)
            {
                //3. Search at include directories.
                //   This will include the import path.
                foreach (string directory in options.IncludeDirectories)
                {
                    fullPathName = Path.Combine(directory, fileName);
                    if (null != fullPathName && File.Exists(fullPathName))
                        return fullPathName;
                }
            }

            //4. Search the absolute path or relative to the current directory
            if (File.Exists(fileName))
                return Path.GetFullPath(fileName);

            return fileName;
        }

        /// <summary>
        /// TODO Jun : Remove me after the tracker + core swap-out
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public static string GetDSFullPathName(string fileName, ProtoLanguage.CompileOptions options = null)
        {
            //1.  First search at .exe module directory, in case files of the same name exists in the following directories.
            //    The .exe module directory is of highest priority.
            //    CodeBase is used here because Assembly.Location does not work quite well when the module is shallow-copied in nunit test.
            if (Path.IsPathRooted(fileName))
            {
                if (File.Exists(fileName))
                    return Path.GetFullPath(fileName);
                fileName = Path.GetFileName(fileName);
            }

            string fullPathName;

            if (GetFullPath(fileName, GetInstallLocation(), out fullPathName))
                return fullPathName;

            //2. Search relative to the .ds file directory
            string rootModulePath = ".";
            if (null != options && !string.IsNullOrEmpty(options.RootModulePathName))
                rootModulePath = options.RootModulePathName;

            if (GetFullPath(fileName, rootModulePath, out fullPathName))
                return fullPathName;

            if (null != options)
            {
                //3. Search at include directories.
                //   This will include the import path.
                foreach (string directory in options.IncludeDirectories)
                {
                    fullPathName = Path.Combine(directory, fileName);
                    if (null != fullPathName && File.Exists(fullPathName))
                        return fullPathName;
                }
            }

            //4. Search the absolute path or relative to the current directory
            if (File.Exists(fileName))
                return Path.GetFullPath(fileName);

            return fileName;
        }

        /// <summary>
        /// Loads a given file from the search path defined via options include directories.
        /// </summary>
        /// <param name="fileName">Name of the assembly file</param>
        /// <param name="options">Options structure for search path, if options
        /// is null it will search only in the executing assembly path or the
        /// current directory.</param>
        /// <returns>Loaded Assembly or null if load failed</returns>
        public static Assembly LoadAssembly(string fileName, Options options = null)
        {
            string filePath = GetDSFullPathName(fileName, options);
            try
            {
                return ProtoFFI.FFIExecutionManager.Instance.LoadAssembly(filePath);
            }
            catch (System.IO.FileNotFoundException)
            {
                return null;
            }
            catch (System.IO.FileLoadException)
            {
                return null;
            }
            catch (System.IO.FileFormatException)
            {
                return null;
            }
        }

        private static bool GetFullPath(string fileName, string hintPath, out string fullPath)
        {
            string directoryPath = Directory.Exists(hintPath) ? hintPath : Path.GetDirectoryName(hintPath);
            string fullPathName = Path.Combine(directoryPath, fileName);
            if (File.Exists(fullPathName))
            {
                fullPath = Path.GetFullPath(fullPathName);
                return true;
            }

            fullPath = string.Empty;
            return false;
        }

        public static string GetFullPathName(string fileName, string currentDirectory = null)
        {
            if (string.IsNullOrEmpty(currentDirectory))
                currentDirectory = Directory.GetCurrentDirectory();

            if (File.Exists(fileName))
            {
                return Path.GetFullPath(fileName);
            }
            else
            {
                string fullPathName = Path.Combine(currentDirectory, fileName);
                if (File.Exists(fullPathName))
                {
                    return Path.GetFullPath(fullPathName);
                }
            }

            return null;
        }

        public static string GetInstallLocation()
        {
            if (string.IsNullOrEmpty(mInstallPath))
            {
                var protoInterface = typeof(Autodesk.DesignScript.Interfaces.IExtensionApplication).Assembly;
                var uri = new UriBuilder(protoInterface.CodeBase);
                mInstallPath = Path.GetDirectoryName(Uri.UnescapeDataString(uri.Path));
            }

            return mInstallPath;
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
// +build ignore

/*
 * Minio Go Library for Amazon S3 Compatible Cloud Storage (C) 2015 Minio, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package main

import (
	"log"

	"github.com/minio/minio-go"
)

func main() {
	// Note: my-bucketname is a dummy value, please replace them with original value.

	// Requests are always secure by default. set inSecure=true to enable insecure access.
	// inSecure boolean is the last argument for New().

	// New provides a client object backend by automatically detected signature type based
	// on the provider.
	s3Client, err := minio.New("play.minio.io:9002", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", false)
	if err != nil {
		log.Fatalln(err)
	}
	// This operation will only work if your bucket is empty.
	err = s3Client.RemoveBucket("my-bucketname")
	if err != nil {
		log.Fatalln(err)
	}
	log.Println("Success")

}


text:
class iterator_protocol(object):

    def __init__(self, *args):
        self._data = args
        self._idx = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self._idx < len(self._data):
            tmp = self._data[self._idx]
            self._idx += 1
            return tmp
        else:
            raise StopIteration

iterator = iterator_protocol(1, "Suppe", None, 3.12)

for item in iterator:
    print(item)

# the same iterator implemented as generator function
def generator(*args):
    for item in args:
        yield item

for item in generator(1, "Suppe", None, 3.12):
    print(item)

# Generators can also be created by putting list comprehensions in round brackets
print("\nSquares")
squares = (x*x for x in range(10))
for item in squares:
    print(item)

# iterators also work recursively.
# let's take a look at Guido's binary tree inorder traversal:
def inorder(t):
    if t:
        for x in inorder(t.left):
            yield x
        yield t.dat
        for x in inorder(t.right):
            yield x

class tree(object):
    def __init__(self, dat, left=None, right=None):
        self.dat = dat
        self.left = left
        self.right = right

# A small test tree:
#    10
#    /\
#   7  13
#  /\
# 5 9
my_tree = tree(10, tree(7, tree(5), tree(9)), tree(13))

print("\nBinary tree traversal")
for node in inorder(my_tree):
    print(node)


text:
support_coffee = undefined
if ((support_coffee === undefined) && (typeof process !== "undefined" && process !== null) && ((typeof require !== "undefined" && require !== null ? require.extensions : void 0) != null) && require.extensions['.coffee']) {
  support_coffee = true
}else {
  support_coffee = false
}

if(support_coffee)
  module.exports = require('./lib');
else
  module.exports = require('./lib-js');


text:
DROP TABLE if exists family CASCADE;
DROP TABLE if exists field_trial CASCADE;
DROP TABLE if exists journal CASCADE;
DROP TABLE if exists pedigree CASCADE;
DROP TABLE if exists plant CASCADE;
DROP TABLE if exists site CASCADE;
DROP TABLE if exists split_wood_tests CASCADE;
DROP TABLE if exists taxa CASCADE;
DROP TABLE if exists test_detail CASCADE;
DROP TABLE if exists test_spec CASCADE;
DROP TABLE if exists u07m_2013 CASCADE;
DROP VIEW if exists avw_family;
DROP VIEW if exists avw_family_phase_seed_germ_summary;
DROP VIEW if exists avw_family_phase_summary;
DROP VIEW if exists avw_field_trial;
DROP VIEW if exists avw_gpf_split_wood_tests;
DROP VIEW if exists avw_journal;
DROP VIEW if exists avw_plant;
DROP VIEW if exists avw_site;
DROP VIEW if exists avw_taxa;
DROP VIEW if exists avw_test_detail;
DROP VIEW if exists avw_test_spec;
DROP VIEW if exists avx_female_parent_germination_rate_summary;
DROP VIEW if exists avx_female_parent_germination_rates;
DROP VIEW if exists avx_male_parent_germination_rate_summary;
DROP VIEW if exists avx_male_parent_germination_rates;
DROP VIEW if exists gpf1_split_wood_tests_summary;
DROP VIEW if exists gpf2_split_wood_tests_undulation;
DROP VIEW if exists v1_field_trial_summary;
DROP VIEW if exists v2_field_trial_2016_planting;
DROP VIEW if exists v3_field_trial_2017_planting;
DROP VIEW if exists v4_field_trial_ranked_summary;
DROP VIEW if exists v5_field_trial_tree_shelter_2017;
DROP VIEW if exists va1_master_test_detail;
DROP VIEW if exists va2_all_nursery_rankings;
DROP VIEW if exists va2_nursery_stocktype_test_detail;
DROP VIEW if exists va3_nursery_summary_test_detail;
DROP VIEW if exists va4_nursery_dormant_cutting_summary;
DROP VIEW if exists vw_2004_nursery_seedling_summary;
DROP VIEW if exists vw_2017_1_nursery;
DROP VIEW if exists vw_2017_2_nursery_key_stock_summary;
DROP VIEW if exists vw_2017_3_nursery_stock_summary;
DROP VIEW if exists vw_2017_4_nursery_action_stock_summary;
DROP VIEW if exists vw_2017_5_nursery_field_summary;
DROP VIEW if exists vw_2017_6_nursery_summary_by_rep_nbr;
DROP VIEW if exists vw_2017_7_stock;
DROP VIEW if exists vw_2017_8_stock_summary;
DROP VIEW if exists vw_2017_9_te_law_test;
DROP VIEW if exists vw_u07m_2013;
DROP VIEW if exists vwa_2017_10_te_law_test_summary;


text:
<?php

//kod från controller

//Två variabler som håller reda på tillståndsförrändringar
$didPay = false;
$didAdd = false;

//Hantera indata
if ($model->hasItemsInShoppingBasket() ) {
	if ($view->userWantsToCheckout()) {
		$model->doPayment();
		$didPay = $model->paymentWasSuccessful();
	}
}
if ($view->userAddsItemToBasket()) {
	$model->addItem($view->getAddedItem());
	$didAdd = true; //this cannot fail...
}

//genera utdata (echo)
if ($model->hasItemsInShoppingBasket() ) {
	$view->showStoreWithBasket($model->getBasket(), $didAdd);
} else {
	//Skicka
	$view->showStoreWithEmptyBasket($didPay);
}

class Model {
	private static $basket = "Model::basket";

	public function hasItemsInShoppingBasket() {
		return isset($_SESSION[Model::$basket]);
	}

	...
}

class View {
	private static $checkoutLink = "View::checkoutLink";

	public function userWantsToCheckout() {
		return isset($_REQUEST[View::$checkoutLink]);
	}

	public function showStoreWithEmptyBasket(bool $didPay) {
		echo "<h2..."
	}

	...
}


text:
'use strict';

/**
 * Configuration of the protocol.
 *
 */
class ProtocolConfiguration {
  /**
   * Create a ProtocolConfiguration.
   * @property {object} [hTTPConfiguration] HTTP configuration of the
   * connectivity check.
   * @property {string} [hTTPConfiguration.method] HTTP method. Possible values
   * include: 'Get'
   * @property {array} [hTTPConfiguration.headers] List of HTTP headers.
   * @property {array} [hTTPConfiguration.validStatusCodes] Valid status codes.
   */
  constructor() {
  }

  /**
   * Defines the metadata of ProtocolConfiguration
   *
   * @returns {object} metadata of ProtocolConfiguration
   *
   */
  mapper() {
    return {
      required: false,
      serializedName: 'ProtocolConfiguration',
      type: {
        name: 'Composite',
        className: 'ProtocolConfiguration',
        modelProperties: {
          hTTPConfiguration: {
            required: false,
            serializedName: 'HTTPConfiguration',
            type: {
              name: 'Composite',
              className: 'HTTPConfiguration'
            }
          }
        }
      }
    };
  }
}

module.exports = ProtocolConfiguration;


text:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace Articulate.Models
{
    public class PostTagCollection : IEnumerable<PostsByTagModel>
    {
        private readonly IEnumerable<PostsByTagModel> _tags;

        public PostTagCollection(IEnumerable<PostsByTagModel> tags)
        {
            _tags = tags;
        }

        private int? _maxCount;

        /// <summary>
        /// Returns a tag weight based on the current tag collection out of x
        /// </summary>
        /// <param name="postsByTag"></param>
        /// <param name="maxWeight"></param>
        /// <returns></returns>
        public int GetTagWeight(PostsByTagModel postsByTag, decimal maxWeight)
        {
            if (_maxCount.HasValue == false)
            {
                _maxCount = this.Max(x => x.PostCount);
            }
            return Convert.ToInt32(Math.Ceiling(postsByTag.PostCount * maxWeight / _maxCount.Value));
        }

        public IEnumerator<PostsByTagModel> GetEnumerator()
        {
            return _tags.GetEnumerator();
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }
}


text:
page_title: "vagrant box - Command-Line Interface"
sidebar_current: "cli-box"
---

# Box

**Command: `vagrant box`**

This is the command used to manage (add, remove, etc.) [boxes](/v2/boxes.html).

The main functionality of this command is exposed via even more subcommands:

* `add`
* `list`
* `remove`
* `repackage`

# Box Add

**Command: `vagrant box add NAME URL`**

This adds a box at the given URL to Vagrant and stores it under the
logical name `NAME`.

The URL may be a file path or an HTTP URL. For HTTP, basic authentication
is supported and `http_proxy` environmental variables are respected. HTTPS
is also supported.

The name argument of this command is a _logical name_, meaning you can
effectively choose whatever you want. This is the name that Vagrant searches
for to match with the `config.vm.box` setting in Vagrantfiles.

If an error occurs during the download or the download is interrupted with
a Ctrl-C, then Vagrant will attempt to resume the download the next time it
is requested. Vagrant will only attempt to resume a download for six hours
after the initial download.

## Options

* `--cacert CERTFILE` - The certificate for the CA used to verify the peer.
  This should be used if the remote end doesn't use a standard root CA.

* `--cert CERTFILE` - A client certificate to use when downloading the box, if
  necessary.

* `--checksum VALUE` - A checksum for the box that is downloaded. If specified,
  Vagrant will compare this checksum to what is actually downloaded and will
  error if the checksums do not match. This is highly recommended since
  box files are so large. If this is specified, `--checksum-type` must
  also be specified.

* `--checksum-type TYPE` - The type of checksum that `--checksum` is if it
  is specified. Supported values are currently "md5", "sha1", and "sha256".

* `--clean` - If given, Vagrant will remove any old temporary files from
  prior downloads of the same URL. This is useful if you don't want Vagrant
  to resume a download from a previous point, perhaps because the contents
  changed.

* `--force` - When present, the box will be downloaded and overwrite any
  existing box with this name.

* `--insecure` - When present, SSL certificates won't be verified if the
  URL is an HTTPS URL.

* `--provider PROVIDER` - If given, Vagrant will verify the box you're
  adding is for the given provider. By default, Vagrant automatically
  detects the proper provider to use.

# Box List

**Command: `vagrant box list`**

This command lists all the boxes that are installed into Vagrant.

## Options

* `--box-info` - If given, Vagrant will display the URL from where the box
  has been downloaded and the date it was added

# Box Remove

**Command: `vagrant box remove NAME PROVIDER`**

This command removes a box from Vagrant that matches the given name and
provider.

# Box Repackage

**Command: `vagrant box repackage NAME PROVIDER`**

This command repackages the given box and puts it in the current
directory so you can redistribute it.

When you add a box, Vagrant unpacks it and stores it internally. The
original `*.box` file is not preserved. This command is useful for
reclaiming a `*.box` file from an installed Vagrant box.


text:
package v1alpha1

import (
	v1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
	"k8s.io/apimachinery/pkg/api/errors"
	"k8s.io/apimachinery/pkg/labels"
	"k8s.io/client-go/tools/cache"
)

// ApplicationSetLister helps list ApplicationSets.
// All objects returned here must be treated as read-only.
type ApplicationSetLister interface {
	// List lists all ApplicationSets in the indexer.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*v1alpha1.ApplicationSet, err error)
	// ApplicationSets returns an object that can list and get ApplicationSets.
	ApplicationSets(namespace string) ApplicationSetNamespaceLister
	ApplicationSetListerExpansion
}

// applicationSetLister implements the ApplicationSetLister interface.
type applicationSetLister struct {
	indexer cache.Indexer
}

// NewApplicationSetLister returns a new ApplicationSetLister.
func NewApplicationSetLister(indexer cache.Indexer) ApplicationSetLister {
	return &applicationSetLister{indexer: indexer}
}

// List lists all ApplicationSets in the indexer.
func (s *applicationSetLister) List(selector labels.Selector) (ret []*v1alpha1.ApplicationSet, err error) {
	err = cache.ListAll(s.indexer, selector, func(m interface{}) {
		ret = append(ret, m.(*v1alpha1.ApplicationSet))
	})
	return ret, err
}

// ApplicationSets returns an object that can list and get ApplicationSets.
func (s *applicationSetLister) ApplicationSets(namespace string) ApplicationSetNamespaceLister {
	return applicationSetNamespaceLister{indexer: s.indexer, namespace: namespace}
}

// ApplicationSetNamespaceLister helps list and get ApplicationSets.
// All objects returned here must be treated as read-only.
type ApplicationSetNamespaceLister interface {
	// List lists all ApplicationSets in the indexer for a given namespace.
	// Objects returned here must be treated as read-only.
	List(selector labels.Selector) (ret []*v1alpha1.ApplicationSet, err error)
	// Get retrieves the ApplicationSet from the indexer for a given namespace and name.
	// Objects returned here must be treated as read-only.
	Get(name string) (*v1alpha1.ApplicationSet, error)
	ApplicationSetNamespaceListerExpansion
}

// applicationSetNamespaceLister implements the ApplicationSetNamespaceLister
// interface.
type applicationSetNamespaceLister struct {
	indexer   cache.Indexer
	namespace string
}

// List lists all ApplicationSets in the indexer for a given namespace.
func (s applicationSetNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.ApplicationSet, err error) {
	err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
		ret = append(ret, m.(*v1alpha1.ApplicationSet))
	})
	return ret, err
}

// Get retrieves the ApplicationSet from the indexer for a given namespace and name.
func (s applicationSetNamespaceLister) Get(name string) (*v1alpha1.ApplicationSet, error) {
	obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
	if err != nil {
		return nil, err
	}
	if !exists {
		return nil, errors.NewNotFound(v1alpha1.Resource("applicationset"), name)
	}
	return obj.(*v1alpha1.ApplicationSet), nil
}


text:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>de.sw4j.blog.webservices</groupId>
    <artifactId>glassfish</artifactId>
    <version>0.1.0-SNAPSHOT</version>
  </parent>

  <groupId>de.sw4j.blog.webservices.glassfish</groupId>
  <artifactId>ejb</artifactId>
  <packaging>ejb</packaging>

  <name>Web Service Glassfish EJB-JAR</name>

  <dependencies>
    <dependency>
      <groupId>de.sw4j.blog.webservices</groupId>
      <artifactId>wsdl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.glassfish.extras</groupId>
      <artifactId>glassfish-embedded-all</artifactId>
    </dependency>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.glassfish.metro</groupId>
      <artifactId>webservices-rt</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
              <silent>true</silent>
              <artifactItems>
                <artifactItem>
                  <groupId>org.glassfish.metro</groupId>
                  <artifactId>webservices-api</artifactId>
                  <version>${metroVersion}</version>
                  <type>jar</type>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ejb-plugin</artifactId>
        <configuration>
          <ejbVersion>3.0</ejbVersion>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>


text:
#include "tensorflow/compiler/xla/service/human_readable_profile_builder.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "tensorflow/compiler/xla/metric_table_report.h"
#include "tensorflow/compiler/xla/util.h"
#include "tensorflow/core/lib/strings/numbers.h"

namespace xla {

using absl::StrAppend;
using absl::StrAppendFormat;
using absl::StrCat;
using absl::StrFormat;
using tensorflow::strings::HumanReadableElapsedTime;
using tensorflow::strings::HumanReadableNumBytes;

string HumanReadableProfileBuilder::ToString() const {
  string s;

  StrAppendFormat(&s, "Execution profile for %s: (%s @ f_nom)\n",
                  computation_name_,
                  HumanReadableElapsedTime(CyclesToSeconds(total_cycles_)));

  int64 cumulative_cycles = 0;
  auto print_op = [&](const OpInfo& op, bool is_total = false) {
    // Skip ops with 0 optimal seconds and 0 actual cycles.  These are ops that
    // were expected to be free and are actually free -- things like (on most
    // backends) kParameter or kConstant HLOs.  There's no need to clutter the
    // profile with these.
    if (op.optimal_seconds == 0 && op.cycles == 0) {
      return;
    }

    string bytes_per_sec;
    string bytes_per_cycle;
    if (op.cycles > 0 && op.bytes_accessed >= 0) {
      bytes_per_sec = StrCat(
          HumanReadableNumBytes(op.bytes_accessed / CyclesToSeconds(op.cycles)),
          "/s");
      double bpc = static_cast<double>(op.bytes_accessed) / op.cycles;
      if (op.bytes_accessed > op.cycles) {
        bytes_per_cycle = StrCat(HumanReadableNumBytes(bpc), "/cycle");
      } else {
        bytes_per_cycle = StrFormat("%.3fB/cycle", bpc);
      }
    }

    double cumulative_cycles_percent = 0;
    double cycles_percent = 0;
    if (!is_total) {
      cumulative_cycles += op.cycles;
    }
    if (total_cycles_ > 0) {
      cycles_percent = op.cycles / static_cast<double>(total_cycles_) * 100;
      cumulative_cycles_percent =
          cumulative_cycles / static_cast<double>(total_cycles_) * 100;
    }

    string cycles_percent_str;
    if (is_total) {
      // Leaving off the two trailing decimal points of "100.%" lets us save two
      // columns in the output.
      cycles_percent_str = "100.% 100Σ";
    } else {
      cycles_percent_str = StrFormat("%5.2f%% %2.0fΣ", cycles_percent,
                                     cumulative_cycles_percent);
    }

    double nsecs = op.cycles / clock_rate_ghz_;
    StrAppendFormat(
        &s,
        "%15d cycles (%s) :: %12.1f usec %22s :: %18s :: %18s :: %14s :: "
        "%16s :: %s\n",
        op.cycles, cycles_percent_str, CyclesToMicroseconds(op.cycles),
        op.optimal_seconds < 0
            ? ""
            : StrFormat("(%12.1f optimal)", op.optimal_seconds * 1e6),
        op.flop_count <= 0 ? "" : HumanReadableNumFlops(op.flop_count, nsecs),
        op.transcendental_count <= 0
            ? ""
            : HumanReadableNumTranscendentalOps(op.transcendental_count, nsecs),
        bytes_per_sec, bytes_per_cycle, op.name);
  };

  float optimal_seconds_sum = 0.0;
  int64 total_flops = 0.;
  int64 total_transcendentals = 0.;
  int64 total_bytes = 0;
  for (const auto& op : op_infos_) {
    if (op.optimal_seconds > 0) {
      optimal_seconds_sum += op.optimal_seconds;
    }
    total_flops += std::max(op.flop_count, int64{0});
    total_transcendentals += std::max(op.transcendental_count, int64{0});
    total_bytes += std::max(op.bytes_accessed, int64{0});
  }

  VLOG(1) << "Total floating point ops: " << total_flops;

  print_op({"[total]", "[total]", /*category=*/"", total_cycles_, total_flops,
            total_transcendentals, total_bytes, optimal_seconds_sum},
           /*is_total=*/true);

  // Sort ops in decreasing order of cycles, and print them.
  std::vector<OpInfo> sorted_ops(op_infos_);
  std::sort(
      sorted_ops.begin(), sorted_ops.end(),
      [](const OpInfo& a, const OpInfo& b) { return a.cycles > b.cycles; });
  for (const auto& op : sorted_ops) {
    print_op(op);
  }

  if (total_cycles_ <= 0) {
    StrAppend(&s, "****** 0 total cycles ******\n");
  } else {
    // Only show an optimal discrepancy table if at least one value was
    // specified. Estimates are non-negative, so if the sum is greater than
    // zero, then at least one summand was greater than zero.
    if (optimal_seconds_sum > 0) {
      MetricTableReport table;
      table.SetMetricName("microseconds above estimated optimum");
      table.SetEntryName("ops");
      table.SetShowCategoryTable();
      table.SetShowAllEntries();
      float total_discrepancy_in_microseconds = 0.0f;
      for (const auto& op : op_infos_) {
        // Skip ops with < 0 optimal seconds.  These are ops for which we don't
        // know the optimal time.
        if (op.optimal_seconds < 0) {
          continue;
        }
        // Also skip ops with 0 actual cycles.  These ops were free; there's no
        // need to clutter the "above estimated optimum" table with them,
        // because they can't be optimized further.
        if (op.cycles == 0) {
          continue;
        }
        MetricTableReport::Entry entry;
        entry.text = op.name;
        entry.short_text = op.short_name;
        entry.category_text = op.category;
        entry.metric =
            CyclesToMicroseconds(op.cycles) - op.optimal_seconds * 1e6;
        total_discrepancy_in_microseconds += entry.metric;
        table.AddEntry(std::move(entry));
      }
      StrAppend(&s, table.MakeReport(total_discrepancy_in_microseconds));
    }

    {
      MetricTableReport table;
      table.SetMetricName("microseconds");
      table.SetEntryName("ops");
      table.SetShowCategoryTable();
      table.SetShowAllEntries();
      for (const auto& op : op_infos_) {
        // Skip ops with 0 optimal seconds and 0 actual cycles.  As in
        // print_op(), these are uninteresting because they're expected to be
        // free, and they were actually free.
        if (op.cycles == 0 && op.optimal_seconds == 0) {
          continue;
        }
        MetricTableReport::Entry entry;
        entry.text = op.name;
        entry.short_text = op.short_name;
        entry.category_text = op.category;
        entry.metric = CyclesToMicroseconds(op.cycles);
        table.AddEntry(std::move(entry));
      }
      StrAppend(&s, table.MakeReport(CyclesToMicroseconds(total_cycles_)));
    }
  }

  if (total_bytes > 0) {
    MetricTableReport table;
    table.SetMetricName("MiB read+written");
    table.SetEntryName("ops");
    table.SetShowCategoryTable();
    for (const auto& op : op_infos_) {
      MetricTableReport::Entry entry;
      entry.text = op.name;
      entry.short_text = op.short_name;
      entry.category_text = op.category;
      entry.metric = static_cast<double>(op.bytes_accessed) / (1 << 20);
      table.AddEntry(std::move(entry));
    }
    StrAppend(&s,
              table.MakeReport(static_cast<double>(total_bytes) / (1 << 20)));
  }
  return s;
}

}  // namespace xla


text:
/**
 * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, version 2.1, dated February 1999.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the latest version of the GNU Lesser General
 * Public License as published by the Free Software Foundation;
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program (LICENSE.txt); if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
package org.jamwiki;

import org.apache.commons.lang3.StringUtils;

/**
 * Utility class that holds the current Wiki version constant and provides
 * methods for comparing Wiki versions.
 */
public class WikiVersion {

	private final int major;
	private final int minor;
	private final int patch;

	/** Current software version.  If this differs from the version in the properties an upgrade is performed. */
	public final static String CURRENT_WIKI_VERSION = "1.3.2";

	/**
	 * Constructor to create a new Wiki version object using a version string of
	 * the form "0.3.5".
	 *
	 * @param version A version string of the form "0.3.5".
	 */
	public WikiVersion(String version) {
		if (StringUtils.isBlank(version)) {
			throw new IllegalArgumentException("Invalid Wiki version: " + version);
		}
		String[] tokens = version.split("\\.");
		if (tokens.length != 3) {
			throw new IllegalArgumentException("Invalid Wiki version: " + version);
		}
		this.major = Integer.valueOf(tokens[0]);
		this.minor = Integer.valueOf(tokens[1]);
		this.patch = Integer.valueOf(tokens[2]);
	}

	/**
	 * Utility method for comparing the current Wiki version with another
	 * version.
	 *
	 * @param version A Wiki version to compare against.
	 * @return Returns true if the current version is older than
	 *  the version being compared against.
	 */
	public boolean before(WikiVersion version) {
		return this.before(version.major, version.minor, version.patch);
	}

	/**
	 * Utility method for comparing the current Wiki version with another
	 * version.
	 *
	 * @param major The major version number to compare against.
	 * @param minor The minor version number to compare against.
	 * @param patch The patch level to compare against.
	 * @return Returns true if the current version is older than
	 *  the version being compared against.
	 */
	public boolean before(int major, int minor, int patch) {
		if (this.major < major) {
			return true; // NOPMD
		}
		if (this.major == major && this.minor < minor) {
			return true; // NOPMD
		}
		if (this.major == major && this.minor == minor && this.patch < patch) {
			return true; // NOPMD
		}
		return false;
	}
}


text:
package io.advantageous.qbit.meta.swagger;

import io.advantageous.boon.core.Maps;
import io.advantageous.boon.core.TypeType;
import io.advantageous.boon.core.reflection.AnnotationData;
import io.advantageous.boon.core.reflection.ClassMeta;
import io.advantageous.boon.core.reflection.fields.FieldAccess;
import io.advantageous.qbit.meta.swagger.builders.DefinitionBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.lang.reflect.Type;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public class DefinitionClassCollector {

    private final Map<String, Definition> definitionMap = new HashMap<>();

    private final Logger logger = LoggerFactory.getLogger(DefinitionClassCollector.class);

    private final Map<Class, Schema> mappings = Maps.map(
            /* Adding common primitive and basic type mappings. */
            String.class, Schema.schema("string"),
            StringBuffer.class, Schema.schema("string"),
            Date.class, Schema.schemaWithFormat("string", "dateTime"),
            Integer.class, Schema.schemaWithFormat("integer", "int32"),
            int.class, Schema.schemaWithFormat("integer", "int32"),
            Long.class, Schema.schemaWithFormat("integer", "int64"),
            long.class, Schema.schemaWithFormat("integer", "int64"),
            Float.class, Schema.schemaWithFormat("number", "float"),
            float.class, Schema.schemaWithFormat("number", "float"),
            Double.class, Schema.schemaWithFormat("number", "double"),
            double.class, Schema.schemaWithFormat("number", "double"),
            Boolean.class, Schema.schemaWithFormat("boolean", ""),
            boolean.class, Schema.schemaWithFormat("boolean", ""),
            byte.class, Schema.schemaWithFormat("string", "byte"),
            Byte.class, Schema.schemaWithFormat("string", "byte")

    );

    {
        /* Adding common primitive and basic type arrays. */
        mappings.put(String[].class, Schema.array(mappings.get(String.class)));
        mappings.put(StringBuffer[].class, Schema.array(mappings.get(StringBuffer.class)));
        mappings.put(Date[].class, Schema.array(mappings.get(Date.class)));
        mappings.put(int[].class, Schema.array(mappings.get(int.class)));
        mappings.put(Integer[].class, Schema.array(mappings.get(Integer.class)));
        mappings.put(long[].class, Schema.array(mappings.get(long.class)));
        mappings.put(Long[].class, Schema.array(mappings.get(Long.class)));
        mappings.put(Double[].class, Schema.array(mappings.get(Double.class)));
        mappings.put(double[].class, Schema.array(mappings.get(double.class)));
        mappings.put(Float[].class, Schema.array(mappings.get(Float.class)));
        mappings.put(float[].class, Schema.array(mappings.get(float.class)));
        mappings.put(Boolean[].class, Schema.array(mappings.get(Boolean.class)));
        mappings.put(boolean[].class, Schema.array(mappings.get(boolean.class)));
        mappings.put(byte[].class, Schema.array(mappings.get(byte.class)));
        mappings.put(Byte[].class, Schema.array(mappings.get(Byte.class)));

    }

    public Schema getSchema(final Class<?> cls) {
        return getSchemaWithComponentClass(cls, null);
    }

    public Schema getSchemaWithComponentClass(final Class<?> cls, Class<?> componentClass) {

        Schema schema = mappings.get(cls);

        if (schema != null) {
            return schema;
        }

        if (cls != null) {
            TypeType type = TypeType.getType(cls);

            if (type.isArray()) {
                final Schema componentSchema = Schema.definitionRef(cls.getComponentType().getSimpleName(), "");
                return Schema.array(componentSchema, "");
            } else if (type.isCollection()) {

                if (componentClass != null) {
                    if (componentClass.getName().startsWith("java.lang")) {
                        final Schema schemaForComponent = mappings.get(componentClass);
                        return Schema.array(schemaForComponent, "");
                    } else {
                        return Schema.array(Schema.definitionRef(componentClass.getSimpleName(), ""), "");
                    }
                } else {
                    logger.info("Component class was null defaulting to string");
                    return Schema.array(Schema.definitionRef("string", ""), "");
                }
            }

            return Schema.definitionRef(cls.getSimpleName(), "");
        } else {
            return Schema.schema("string");
        }

    }

    public Schema getSchemaForJSend(final Class<?> cls, Class<?> componentClass) {
        return Schema.definitionRef("jsend-" + componentClass.getSimpleName(), "");

    }

    public void addJSendClass(final Class<?> cls) {
        addClass(cls);
        addJSendClass(ClassMeta.classMeta(cls));

    }

    public void addClass(final Class<?> cls) {

        /*
        Don't add void.
         */
        if (cls == void.class || cls == Void.class) {
            return;
        }

        /* If it is a common built in type, don't add. */
        if (mappings.containsKey(cls)) {
            return;
        }

        final ClassMeta<?> classMeta = ClassMeta.classMeta(cls);
        addClass(classMeta);
    }

    private void addClass(final ClassMeta<?> classMeta) {

        try {

            if (definitionMap.containsKey(classMeta.name())) {
                return;
            }

            definitionMap.put(classMeta.name(), null);

            final DefinitionBuilder definitionBuilder = new DefinitionBuilder();

            final String description = getDescription(classMeta);

            definitionBuilder.setDescription(description);

            final Map<String, FieldAccess> fieldAccessMap = classMeta.fieldMap();

            fieldAccessMap.entrySet().forEach(fieldAccessEntry -> {

                final FieldAccess fieldAccess = fieldAccessEntry.getValue();
                if (fieldAccess.ignore() || fieldAccess.isStatic()) {
                    return;
                }
                definitionBuilder.addProperty(fieldAccess.name(), convertFieldToSchema(fieldAccess));

            });

            final Definition definition = definitionBuilder.build();

            definitionMap.put(classMeta.name(), definition);

        } catch (Exception ex) {
            logger.warn("Unable to add class " + classMeta.longName(), ex);
        }
    }

    private void addJSendClass(final ClassMeta<?> classMeta) {

        try {

            if (definitionMap.containsKey("jsend-" + classMeta.name())) {
                return;
            }

            definitionMap.put("jsend-" + classMeta.name(), null);

            final DefinitionBuilder definitionBuilder = new DefinitionBuilder();

            definitionBuilder.setDescription("jsend standard response");

            Schema schema = mappings.get(classMeta.cls());

            if (schema != null) {
                definitionBuilder.addProperty("data", schema);
            } else {
                schema = convertFieldToDefinitionRef(classMeta);
                definitionBuilder.addProperty("data", schema);
            }
            definitionBuilder.addProperty("status", Schema.schemaWithDescription(mappings.get(String.class),
                    "Status of return, this can be 'success', 'fail' or 'error'"));

            final Definition definition = definitionBuilder.build();

            definitionMap.put("jsend-" + classMeta.name(), definition);

        } catch (Exception ex) {
            logger.warn("Unable to add class " + classMeta.longName(), ex);
        }
    }

    private Schema convertFieldToSchema(final FieldAccess fieldAccess) {

        try {

            final Class<?> type = fieldAccess.type();
            final Schema schema = mappings.get(type);

            final String description = getDescription(fieldAccess);

            if (schema != null) {

                if (description == null) {
                    return schema;
                } else {
                    return Schema.schemaWithDescription(schema, description);

                }
            }

            return convertFieldToComplexSchema(fieldAccess);
        } catch (Exception ex) {

            logger.warn("unable to convert field " + fieldAccess.name() + " from " + fieldAccess.declaringParent(), ex);
            return Schema.schemaWithFormat("error", "error.see.logs");
        }

    }

    private Schema convertFieldToComplexSchema(final FieldAccess fieldAccess) {

        if (isArraySchema(fieldAccess)) {
            return convertFieldToArraySchema(fieldAccess);
        } else if (isMap(fieldAccess)) {
            return convertFieldToMapSchema(fieldAccess);
        } else if (isOptional(fieldAccess)) {
            return null; //TODO not done
        } else {
            return convertFieldToDefinitionRef(fieldAccess);
        }

    }

    private Schema convertFieldToMapSchema(final FieldAccess fieldAccess) {

        final Type[] actualTypeArguments = fieldAccess.getParameterizedType().getActualTypeArguments();

        final String description = getDescription(fieldAccess);

        if (actualTypeArguments[1] instanceof Class) {

            Schema componentSchema = mappings.get(actualTypeArguments[1]);
            /* If it was not in the mapping, then it is complex. */
            if (componentSchema == null) {
                if (!definitionMap.containsKey(fieldAccess.getComponentClass().getSimpleName())) {
                    addClass(fieldAccess.getComponentClass());
                }
                componentSchema = Schema.definitionRef(fieldAccess.getComponentClass().getSimpleName(), "");
            }
            return Schema.map(componentSchema, description);
        } else {
            return null;
        }

    }

    private boolean isArraySchema(FieldAccess fieldAccess) {

        switch (fieldAccess.typeEnum()) {
            case SET:
                return true;
            case LIST:
                return true;
            case COLLECTION:
                return true;
            case ARRAY:
                return true;
        }
        return false;
    }

    private boolean isMap(FieldAccess fieldAccess) {

        switch (fieldAccess.typeEnum()) {
            case MAP:
                return true;

        }
        return false;
    }

    private boolean isOptional(FieldAccess fieldAccess) {

        return (fieldAccess.type() == Optional.class);
    }

    private Schema convertFieldToDefinitionRef(final FieldAccess fieldAccess) {

        if (!definitionMap.containsKey(fieldAccess.type().getSimpleName())) {
            addClass(fieldAccess.type());
        }

        final String description = getDescription(fieldAccess);
        return Schema.definitionRef(fieldAccess.type().getSimpleName(), description);
    }

    private Schema convertFieldToDefinitionRef(final ClassMeta classMeta) {

        if (!definitionMap.containsKey(classMeta.name())) {
            addClass(classMeta.cls());
        }

        final String description = getDescription(classMeta);
        return Schema.definitionRef(classMeta.name(), description);
    }

    private String getDescription(final FieldAccess fieldAccess) {
        String description = "";
        final Map<String, Object> descriptionMap = fieldAccess.getAnnotationData("Description");
        if (descriptionMap != null) {

            if (descriptionMap.containsKey("value")) {
                description = descriptionMap.get("value").toString();
            }
        }
        return description;
    }

    private String getDescription(ClassMeta classMeta) {
        String description = "";

        AnnotationData annotationData = classMeta.annotation("Description");

        if (annotationData == null) {
            return "";
        }

        final Map<String, Object> descriptionMap = annotationData.getValues();
        if (descriptionMap != null) {
            if (descriptionMap.containsKey("value")) {
                description = descriptionMap.get("value").toString();
            }
        }
        return description;
    }

    private Schema convertFieldToArraySchema(final FieldAccess fieldAccess) {

        String description = getDescription(fieldAccess);

        Schema componentSchema = mappings.get(fieldAccess.getComponentClass());
            /* If it was not in the mapping, then it is complex. */
        if (componentSchema == null) {
            if (!definitionMap.containsKey(fieldAccess.getComponentClass().getSimpleName())) {
                addClass(fieldAccess.getComponentClass());
            }
            componentSchema = Schema.definitionRef(fieldAccess.getComponentClass().getSimpleName(), description);
        }
        return Schema.array(componentSchema);
    }

    private Schema convertFieldToArraySchema(final ClassMeta classMeta) {

        String description = getDescription(classMeta);

        Schema componentSchema = mappings.get(classMeta.cls());
            /* If it was not in the mapping, then it is complex. */
        if (componentSchema == null) {
            if (!definitionMap.containsKey(classMeta.name())) {
                addClass(classMeta.cls());
            }
            componentSchema = Schema.definitionRef(classMeta.name(), description);
        }
        return Schema.array(componentSchema);
    }

    public Map<String, Definition> getDefinitionMap() {
        return definitionMap;
    }

    public Schema getSchemaWithMapClass(final Class<?> returnType,
                                        final Class<?> returnTypeComponentKey,
                                        final Class<?> returnTypeComponentValue) {

        if (returnTypeComponentValue != null) {
            if (returnTypeComponentValue.getName().startsWith("java.lang")) {
                final Schema schemaForComponent = mappings.get(returnTypeComponentValue);
                return Schema.map(schemaForComponent, "");
            } else {
                return Schema.map(Schema.definitionRef(returnTypeComponentValue.getSimpleName(), ""), "");
            }
        } else {
            logger.info("Component class was null defaulting to string");
            return Schema.map(Schema.definitionRef("string", ""), "");
        }
    }

    public Schema getSchemaForJSendArray(Class<?> returnType, Class<?> returnTypeComponent) {

        return Schema.definitionRef("jsend-array-" + returnTypeComponent.getSimpleName(), "");

    }

    public void addJSendArray(Class<?> cls) {
        addClass(cls);
        addJSendArray(ClassMeta.classMeta(cls));

    }

    public void addJSendArray(ClassMeta classMeta) {

        try {

            if (definitionMap.containsKey("jsend-array-" + classMeta.name())) {
                return;
            }

            definitionMap.put("jsend-array-" + classMeta.name(), null);

            final DefinitionBuilder definitionBuilder = new DefinitionBuilder();

            definitionBuilder.setDescription("jsend standard response");

            Schema schema = mappings.get(classMeta.cls());

            if (schema != null) {
                definitionBuilder.addProperty("data", schema);
            } else {
                schema = convertFieldToArraySchema(classMeta);
                definitionBuilder.addProperty("data", schema);
            }

            definitionBuilder.addProperty("status", Schema.schemaWithDescription(mappings.get(String.class),
                    "Status of return, this can be 'success', 'fail' or 'error'"));

            final Definition definition = definitionBuilder.build();

            definitionMap.put("jsend-array-" + classMeta.name(), definition);

        } catch (Exception ex) {
            logger.warn("Unable to add class " + classMeta.longName(), ex);
        }
    }
}


text:
<!DOCTYPE html>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
  <title>Jojo Ramen</title>
  <meta name="title" content="Jojo Ramen">
  <meta name="author" content="Letícia Monteiro - 7bi">
  <meta name="reply-to" content="leticia@7bi.me">
  <meta name="description" content="Descrição do seu site">
  <meta name="keywords" content="Palavras-chaves separadas por um espaço em branco">

  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <link href="css/materialize.css" type="text/css" rel="stylesheet" media="screen,projection"/>
  <link href="css/contato_style.css" type="text/css" rel="stylesheet" media="screen,projection"/>

Home

Sobre

Ramen

Cardápio

Galeria

Contato

        li>Home

Sobre

Ramen

Cardápio

Galeria

Contato

      menu

Em breve!

Funcionamento

De Segunda a Sábado

Das 18:30 às 22:00

location_on  Rua Dr. Rafael de Barros, 262.
CEP: 04003-041

Contato

              phone11 3262-1654 | 11 3279-5005

              info@jojoramen.com.br

Links

Home

Fale Conosco

Trabalhe Conosco

Redes Sociais

        2016 Copyright | 7bi