This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

# Install and load necessary package
if (!requireNamespace("jsonlite", quietly = TRUE)) install.packages("jsonlite")
library(jsonlite)
# Construct the API URL
url <- "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=100"

#Fetch and Read 

data <- fromJSON(url)

#Extract the Data 

prices <- data$Data$Data

max_close_price <- max(prices$close)

print(max_close_price)
[1] 60062.14
install.packages(c("dplyr", "ggplot2", "readr"))
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing packages into ‘C:/Users/vanka/AppData/Local/R/win-library/4.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/dplyr_1.1.4.zip'
Content type 'application/zip' length 1560080 bytes (1.5 MB)
downloaded 1.5 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/ggplot2_3.5.0.zip'
Content type 'application/zip' length 4822730 bytes (4.6 MB)
downloaded 4.6 MB

trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.3/readr_2.1.5.zip'
Content type 'application/zip' length 1172531 bytes (1.1 MB)
downloaded 1.1 MB
package ‘dplyr’ successfully unpacked and MD5 sums checked
Warning in install.packages :
  cannot remove prior installation of package ‘dplyr’
Warning in install.packages :
  problem copying C:\Users\vanka\AppData\Local\R\win-library\4.3\00LOCK\dplyr\libs\x64\dplyr.dll to C:\Users\vanka\AppData\Local\R\win-library\4.3\dplyr\libs\x64\dplyr.dll: Permission denied
Warning in install.packages :
  restored ‘dplyr’
package ‘ggplot2’ successfully unpacked and MD5 sums checked
package ‘readr’ successfully unpacked and MD5 sums checked
Warning in install.packages :
  cannot remove prior installation of package ‘readr’
Warning in install.packages :
  problem copying C:\Users\vanka\AppData\Local\R\win-library\4.3\00LOCK\readr\libs\x64\readr.dll to C:\Users\vanka\AppData\Local\R\win-library\4.3\readr\libs\x64\readr.dll: Permission denied
Warning in install.packages :
  restored ‘readr’

The downloaded binary packages are in
    C:\Users\vanka\AppData\Local\Temp\Rtmpe4L1Dt\downloaded_packages
library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library(ggplot2)
library(readr)
on_time_performance <- read.csv("On_Time_Performance.csv")
dim(on_time_performance)
[1] 570131    110
str(on_time_performance)
'data.frame':   570131 obs. of  110 variables:
 $ Year                : int  2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 ...
 $ Quarter             : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Month               : int  1 1 1 1 1 1 1 1 1 1 ...
 $ DayofMonth          : int  16 17 18 19 20 21 22 23 24 25 ...
 $ DayOfWeek           : int  2 3 4 5 6 7 1 2 3 4 ...
 $ FlightDate          : chr  "2018-01-16" "2018-01-17" "2018-01-18" "2018-01-19" ...
 $ UniqueCarrier       : chr  "AA" "AA" "AA" "AA" ...
 $ AirlineID           : int  19805 19805 19805 19805 19805 19805 19805 19805 19805 19805 ...
 $ Carrier             : chr  "AA" "AA" "AA" "AA" ...
 $ TailNum             : chr  "N128AN" "N128AN" "N121AN" "N129AA" ...
 $ FlightNum           : int  228 228 228 228 228 228 228 228 228 228 ...
 $ OriginAirportID     : int  12892 12892 12892 12892 12892 12892 12892 12892 12892 12892 ...
 $ OriginAirportSeqID  : int  1289206 1289206 1289206 1289206 1289206 1289206 1289206 1289206 1289206 1289206 ...
 $ OriginCityMarketID  : int  32575 32575 32575 32575 32575 32575 32575 32575 32575 32575 ...
 $ Origin              : chr  "LAX" "LAX" "LAX" "LAX" ...
 $ OriginCityName      : chr  "Los Angeles, CA" "Los Angeles, CA" "Los Angeles, CA" "Los Angeles, CA" ...
 $ OriginState         : chr  "CA" "CA" "CA" "CA" ...
 $ OriginStateFips     : int  6 6 6 6 6 6 6 6 6 6 ...
 $ OriginStateName     : chr  "California" "California" "California" "California" ...
 $ OriginWac           : int  91 91 91 91 91 91 91 91 91 91 ...
 $ DestAirportID       : int  12173 12173 12173 12173 12173 12173 12173 12173 12173 12173 ...
 $ DestAirportSeqID    : int  1217303 1217303 1217303 1217303 1217303 1217303 1217303 1217303 1217303 1217303 ...
 $ DestCityMarketID    : int  32134 32134 32134 32134 32134 32134 32134 32134 32134 32134 ...
 $ Dest                : chr  "HNL" "HNL" "HNL" "HNL" ...
 $ DestCityName        : chr  "Honolulu, HI" "Honolulu, HI" "Honolulu, HI" "Honolulu, HI" ...
 $ DestState           : chr  "HI" "HI" "HI" "HI" ...
 $ DestStateFips       : int  15 15 15 15 15 15 15 15 15 15 ...
 $ DestStateName       : chr  "Hawaii" "Hawaii" "Hawaii" "Hawaii" ...
 $ DestWac             : int  2 2 2 2 2 2 2 2 2 2 ...
 $ CRSDepTime          : int  2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 ...
 $ DepTime             : int  2010 2003 2008 2010 2001 2003 2003 2011 2122 2007 ...
 $ DepDelay            : num  -1 -8 -3 -1 -10 -8 -8 0 71 -4 ...
 $ DepDelayMinutes     : num  0 0 0 0 0 0 0 0 71 0 ...
 $ DepDel15            : num  0 0 0 0 0 0 0 0 1 0 ...
 $ DepartureDelayGroups: int  -1 -1 -1 -1 -1 -1 -1 0 4 -1 ...
 $ DepTimeBlk          : chr  "2000-2059" "2000-2059" "2000-2059" "2000-2059" ...
 $ TaxiOut             : num  24 18 14 17 17 17 24 23 26 18 ...
 $ WheelsOff           : int  2034 2021 2022 2027 2018 2020 2027 2034 2148 2025 ...
 $ WheelsOn            : int  2358 2348 6 2352 2352 1 14 2352 125 2357 ...
 $ TaxiIn              : num  7 5 6 3 5 4 3 14 3 2 ...
 $ CRSArrTime          : int  29 29 29 29 29 29 29 29 29 29 ...
 $ ArrTime             : int  5 2353 12 2355 2357 5 17 6 128 2359 ...
 $ ArrDelay            : num  -24 -36 -17 -34 -32 -24 -12 -23 59 -30 ...
 $ ArrDelayMinutes     : num  0 0 0 0 0 0 0 0 59 0 ...
 $ ArrDel15            : num  0 0 0 0 0 0 0 0 1 0 ...
 $ ArrivalDelayGroups  : int  -2 -2 -2 -2 -2 -2 -1 -2 3 -2 ...
 $ ArrTimeBlk          : chr  "0001-0559" "0001-0559" "0001-0559" "0001-0559" ...
 $ Cancelled           : num  0 0 0 0 0 0 0 0 0 0 ...
 $ CancellationCode    : chr  "" "" "" "" ...
 $ Diverted            : num  0 0 0 0 0 0 0 0 0 0 ...
 $ CRSElapsedTime      : num  378 378 378 378 378 378 378 378 378 378 ...
 $ ActualElapsedTime   : num  355 350 364 345 356 362 374 355 366 352 ...
 $ AirTime             : num  324 327 344 325 334 341 347 318 337 332 ...
 $ Flights             : num  1 1 1 1 1 1 1 1 1 1 ...
 $ Distance            : num  2556 2556 2556 2556 2556 ...
 $ DistanceGroup       : int  11 11 11 11 11 11 11 11 11 11 ...
 $ CarrierDelay        : num  NA NA NA NA NA NA NA NA 59 NA ...
 $ WeatherDelay        : num  NA NA NA NA NA NA NA NA 0 NA ...
 $ NASDelay            : num  NA NA NA NA NA NA NA NA 0 NA ...
 $ SecurityDelay       : num  NA NA NA NA NA NA NA NA 0 NA ...
 $ LateAircraftDelay   : num  NA NA NA NA NA NA NA NA 0 NA ...
 $ FirstDepTime        : int  NA NA NA NA NA NA NA NA NA NA ...
 $ TotalAddGTime       : num  NA NA NA NA NA NA NA NA NA NA ...
 $ LongestAddGTime     : num  NA NA NA NA NA NA NA NA NA NA ...
 $ DivAirportLandings  : int  0 0 0 0 0 0 0 0 0 0 ...
 $ DivReachedDest      : num  NA NA NA NA NA NA NA NA NA NA ...
 $ DivActualElapsedTime: num  NA NA NA NA NA NA NA NA NA NA ...
 $ DivArrDelay         : num  NA NA NA NA NA NA NA NA NA NA ...
 $ DivDistance         : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1Airport         : chr  "" "" "" "" ...
 $ Div1AirportID       : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1AirportSeqID    : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1WheelsOn        : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1TotalGTime      : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1LongestGTime    : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1WheelsOff       : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div1TailNum         : chr  "" "" "" "" ...
 $ Div2Airport         : chr  "" "" "" "" ...
 $ Div2AirportID       : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2AirportSeqID    : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2WheelsOn        : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2TotalGTime      : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2LongestGTime    : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2WheelsOff       : int  NA NA NA NA NA NA NA NA NA NA ...
 $ Div2TailNum         : chr  "" "" "" "" ...
 $ Div3Airport         : logi  NA NA NA NA NA NA ...
 $ Div3AirportID       : logi  NA NA NA NA NA NA ...
 $ Div3AirportSeqID    : logi  NA NA NA NA NA NA ...
 $ Div3WheelsOn        : logi  NA NA NA NA NA NA ...
 $ Div3TotalGTime      : logi  NA NA NA NA NA NA ...
 $ Div3LongestGTime    : logi  NA NA NA NA NA NA ...
 $ Div3WheelsOff       : logi  NA NA NA NA NA NA ...
 $ Div3TailNum         : logi  NA NA NA NA NA NA ...
 $ Div4Airport         : logi  NA NA NA NA NA NA ...
 $ Div4AirportID       : logi  NA NA NA NA NA NA ...
 $ Div4AirportSeqID    : logi  NA NA NA NA NA NA ...
 $ Div4WheelsOn        : logi  NA NA NA NA NA NA ...
 $ Div4TotalGTime      : logi  NA NA NA NA NA NA ...
 $ Div4LongestGTime    : logi  NA NA NA NA NA NA ...
  [list output truncated]
#Columns with Single Unique Value 

sapply(on_time_performance, function(x) length(unique(x)))
                Year              Quarter                Month           DayofMonth 
                   1                    1                    1                   31 
           DayOfWeek           FlightDate        UniqueCarrier            AirlineID 
                   7                   31                   18                   18 
             Carrier              TailNum            FlightNum      OriginAirportID 
                  18                 5261                 6966                  334 
  OriginAirportSeqID   OriginCityMarketID               Origin       OriginCityName 
                 334                  310                  334                  328 
         OriginState      OriginStateFips      OriginStateName            OriginWac 
                  52                   52                   52                   52 
       DestAirportID     DestAirportSeqID     DestCityMarketID                 Dest 
                 334                  334                  310                  334 
        DestCityName            DestState        DestStateFips        DestStateName 
                 328                   52                   52                   52 
             DestWac           CRSDepTime              DepTime             DepDelay 
                  52                 1214                 1404                  969 
     DepDelayMinutes             DepDel15 DepartureDelayGroups           DepTimeBlk 
                 923                    3                   16                   19 
             TaxiOut            WheelsOff             WheelsOn               TaxiIn 
                 166                 1412                 1441                  128 
          CRSArrTime              ArrTime             ArrDelay      ArrDelayMinutes 
                1338                 1441                 1003                  915 
            ArrDel15   ArrivalDelayGroups           ArrTimeBlk            Cancelled 
                   3                   16                   19                    2 
    CancellationCode             Diverted       CRSElapsedTime    ActualElapsedTime 
                   5                    2                  454                  640 
             AirTime              Flights             Distance        DistanceGroup 
                 612                    1                 1399                   11 
        CarrierDelay         WeatherDelay             NASDelay        SecurityDelay 
                 749                  494                  380                   83 
   LateAircraftDelay         FirstDepTime        TotalAddGTime      LongestAddGTime 
                 484                 1033                  172                  165 
  DivAirportLandings       DivReachedDest DivActualElapsedTime          DivArrDelay 
                   4                    3                  426                  393 
         DivDistance          Div1Airport        Div1AirportID     Div1AirportSeqID 
                 172                  188                  188                  188 
        Div1WheelsOn       Div1TotalGTime     Div1LongestGTime        Div1WheelsOff 
                 781                  130                  120                  611 
         Div1TailNum          Div2Airport        Div2AirportID     Div2AirportSeqID 
                 819                   25                   25                   25 
        Div2WheelsOn       Div2TotalGTime     Div2LongestGTime        Div2WheelsOff 
                  30                   20                   18                   10 
         Div2TailNum          Div3Airport        Div3AirportID     Div3AirportSeqID 
                  10                    1                    1                    1 
        Div3WheelsOn       Div3TotalGTime     Div3LongestGTime        Div3WheelsOff 
                   1                    1                    1                    1 
         Div3TailNum          Div4Airport        Div4AirportID     Div4AirportSeqID 
                   1                    1                    1                    1 
        Div4WheelsOn       Div4TotalGTime     Div4LongestGTime        Div4WheelsOff 
                   1                    1                    1                    1 
         Div4TailNum          Div5Airport        Div5AirportID     Div5AirportSeqID 
                   1                    1                    1                    1 
        Div5WheelsOn       Div5TotalGTime     Div5LongestGTime        Div5WheelsOff 
                   1                    1                    1                    1 
         Div5TailNum                    X 
                   1                    1 
#Finding NA Values

colSums(is.na(on_time_performance))
                Year              Quarter                Month           DayofMonth 
                   0                    0                    0                    0 
           DayOfWeek           FlightDate        UniqueCarrier            AirlineID 
                   0                    0                    0                    0 
             Carrier              TailNum            FlightNum      OriginAirportID 
                   0                    0                    0                    0 
  OriginAirportSeqID   OriginCityMarketID               Origin       OriginCityName 
                   0                    0                    0                    0 
         OriginState      OriginStateFips      OriginStateName            OriginWac 
                   0                    0                    0                    0 
       DestAirportID     DestAirportSeqID     DestCityMarketID                 Dest 
                   0                    0                    0                    0 
        DestCityName            DestState        DestStateFips        DestStateName 
                   0                    0                    0                    0 
             DestWac           CRSDepTime              DepTime             DepDelay 
                   0                    0                16826                17332 
     DepDelayMinutes             DepDel15 DepartureDelayGroups           DepTimeBlk 
               17332                17332                17332                    0 
             TaxiOut            WheelsOff             WheelsOn               TaxiIn 
               17072                17066                17540                17540 
          CRSArrTime              ArrTime             ArrDelay      ArrDelayMinutes 
                   0                17540                18626                18626 
            ArrDel15   ArrivalDelayGroups           ArrTimeBlk            Cancelled 
               18626                18626                    0                    0 
    CancellationCode             Diverted       CRSElapsedTime    ActualElapsedTime 
                   0                    0                    0                18424 
             AirTime              Flights             Distance        DistanceGroup 
               18424                    0                    0                    0 
        CarrierDelay         WeatherDelay             NASDelay        SecurityDelay 
              472365               472365               472365               472365 
   LateAircraftDelay         FirstDepTime        TotalAddGTime      LongestAddGTime 
              472365               566815               566815               566815 
  DivAirportLandings       DivReachedDest DivActualElapsedTime          DivArrDelay 
                   0               568876               569247               569247 
         DivDistance          Div1Airport        Div1AirportID     Div1AirportSeqID 
              568876                    0               568773               568773 
        Div1WheelsOn       Div1TotalGTime     Div1LongestGTime        Div1WheelsOff 
              568773               568773               568773               569227 
         Div1TailNum          Div2Airport        Div2AirportID     Div2AirportSeqID 
                   0                    0               570102               570102 
        Div2WheelsOn       Div2TotalGTime     Div2LongestGTime        Div2WheelsOff 
              570102               570102               570102               570122 
         Div2TailNum          Div3Airport        Div3AirportID     Div3AirportSeqID 
                   0               570131               570131               570131 
        Div3WheelsOn       Div3TotalGTime     Div3LongestGTime        Div3WheelsOff 
              570131               570131               570131               570131 
         Div3TailNum          Div4Airport        Div4AirportID     Div4AirportSeqID 
              570131               570131               570131               570131 
        Div4WheelsOn       Div4TotalGTime     Div4LongestGTime        Div4WheelsOff 
              570131               570131               570131               570131 
         Div4TailNum          Div5Airport        Div5AirportID     Div5AirportSeqID 
              570131               570131               570131               570131 
        Div5WheelsOn       Div5TotalGTime     Div5LongestGTime        Div5WheelsOff 
              570131               570131               570131               570131 
         Div5TailNum                    X 
              570131               570131 
average_delay_by_airline <- on_time_performance %>%
  group_by(UniqueCarrier) %>%
  summarise(Average_Departure_Delay = mean(DepDelay, na.rm = TRUE)) %>%
  arrange(desc(Average_Departure_Delay))

print(average_delay_by_airline)
ggplot(average_delay_by_airline, aes(x = reorder(UniqueCarrier, -Average_Departure_Delay), y = Average_Departure_Delay)) +
  geom_bar(stat = "identity") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "Airline", y = "Average Departure Delay (minutes)", title = "Average Departure Delay by Airline")

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KYGBge3J9DQojIEluc3RhbGwgYW5kIGxvYWQgbmVjZXNzYXJ5IHBhY2thZ2UNCmlmICghcmVxdWlyZU5hbWVzcGFjZSgianNvbmxpdGUiLCBxdWlldGx5ID0gVFJVRSkpIGluc3RhbGwucGFja2FnZXMoImpzb25saXRlIikNCmxpYnJhcnkoanNvbmxpdGUpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KIyBDb25zdHJ1Y3QgdGhlIEFQSSBVUkwNCnVybCA8LSAiaHR0cHM6Ly9taW4tYXBpLmNyeXB0b2NvbXBhcmUuY29tL2RhdGEvdjIvaGlzdG9kYXk/ZnN5bT1CVEMmdHN5bT1VU0QmbGltaXQ9MTAwIg0KDQojRmV0Y2ggYW5kIFJlYWQgDQoNCmRhdGEgPC0gZnJvbUpTT04odXJsKQ0KDQojRXh0cmFjdCB0aGUgRGF0YSANCg0KcHJpY2VzIDwtIGRhdGEkRGF0YSREYXRhDQoNCm1heF9jbG9zZV9wcmljZSA8LSBtYXgocHJpY2VzJGNsb3NlKQ0KDQpwcmludChtYXhfY2xvc2VfcHJpY2UpDQoNCg0KYGBgDQoNCg0KDQpgYGB7cn0NCmluc3RhbGwucGFja2FnZXMoYygiZHBseXIiLCAiZ2dwbG90MiIsICJyZWFkciIpKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocmVhZHIpDQoNCmBgYA0KDQpgYGB7cn0NCm9uX3RpbWVfcGVyZm9ybWFuY2UgPC0gcmVhZC5jc3YoIk9uX1RpbWVfUGVyZm9ybWFuY2UuY3N2IikNCg0KYGBgDQoNCg0KYGBge3J9DQpkaW0ob25fdGltZV9wZXJmb3JtYW5jZSkNCnN0cihvbl90aW1lX3BlcmZvcm1hbmNlKQ0KDQojQ29sdW1ucyB3aXRoIFNpbmdsZSBVbmlxdWUgVmFsdWUgDQoNCnNhcHBseShvbl90aW1lX3BlcmZvcm1hbmNlLCBmdW5jdGlvbih4KSBsZW5ndGgodW5pcXVlKHgpKSkNCg0KI0ZpbmRpbmcgTkEgVmFsdWVzDQoNCmNvbFN1bXMoaXMubmEob25fdGltZV9wZXJmb3JtYW5jZSkpDQoNCg0KYGBgDQpgYGB7cn0NCmF2ZXJhZ2VfZGVsYXlfYnlfYWlybGluZSA8LSBvbl90aW1lX3BlcmZvcm1hbmNlICU+JQ0KICBncm91cF9ieShVbmlxdWVDYXJyaWVyKSAlPiUNCiAgc3VtbWFyaXNlKEF2ZXJhZ2VfRGVwYXJ0dXJlX0RlbGF5ID0gbWVhbihEZXBEZWxheSwgbmEucm0gPSBUUlVFKSkgJT4lDQogIGFycmFuZ2UoZGVzYyhBdmVyYWdlX0RlcGFydHVyZV9EZWxheSkpDQoNCnByaW50KGF2ZXJhZ2VfZGVsYXlfYnlfYWlybGluZSkNCmBgYA0KYGBge3J9DQpnZ3Bsb3QoYXZlcmFnZV9kZWxheV9ieV9haXJsaW5lLCBhZXMoeCA9IHJlb3JkZXIoVW5pcXVlQ2FycmllciwgLUF2ZXJhZ2VfRGVwYXJ0dXJlX0RlbGF5KSwgeSA9IEF2ZXJhZ2VfRGVwYXJ0dXJlX0RlbGF5KSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpKSArDQogIGxhYnMoeCA9ICJBaXJsaW5lIiwgeSA9ICJBdmVyYWdlIERlcGFydHVyZSBEZWxheSAobWludXRlcykiLCB0aXRsZSA9ICJBdmVyYWdlIERlcGFydHVyZSBEZWxheSBieSBBaXJsaW5lIikNCg0KYGBgDQoNCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDdHJsK0FsdCtJKi4NCg0KV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDdHJsK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuDQoNClRoZSBwcmV2aWV3IHNob3dzIHlvdSBhIHJlbmRlcmVkIEhUTUwgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvci4gQ29uc2VxdWVudGx5LCB1bmxpa2UgKktuaXQqLCAqUHJldmlldyogZG9lcyBub3QgcnVuIGFueSBSIGNvZGUgY2h1bmtzLiBJbnN0ZWFkLCB0aGUgb3V0cHV0IG9mIHRoZSBjaHVuayB3aGVuIGl0IHdhcyBsYXN0IHJ1biBpbiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZC4NCg==