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.

Create 1 table of summary information for the total and computer_all categories, as well as 1-2 professions of your choice,

and 2-3 plots using the ggplot2 package in R. Please refer to the .Rmd file provided for notes and tips on how to use the data. Analysis will be graded on a) whether you are able to produce the required graphs and table and b) the quality and design of your plots. As you work, be sure to think about: ● Am I telling a clear story with my plot? ● Can a viewer easily understand and interpret my visuals? ● Do my design and color choices make sense for this plot? You should include a paragraph or two with your analysis that summarizes key findings from your work.

setwd("C:/Users/SUNYLoaner/OneDrive - Binghamton University/Desktop/DIDA 325")
#found path under More section of files
csv <- read.csv("occupation_gender_race (1).csv", stringsAsFactors = F, fileEncoding="UTF-8-BOM")

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(tidyr)
library(ggplot2)
  1. Create 1 table of summary information for the total and computer_all categories, as well as 1-2 professions of your choice,
table(csv$job_type)
#variable : jobtype

select_occupation_csv <- csv %>% filter(job_type %in% c("total", "computer_all","computer")) %>% head()


table(csv$job_type)

    computer computer_all professional        total 
          58            4            4            4 
table(csv$description)

                                             Actuaries 
                                                     3 
          Computer and information research scientists 
                                                     2 
                 Computer and mathematical occupations 
                                                     4 
                           Computer hardware engineers 
                                                     2 
                         Computer hardware engineers   
                                                     1 
                           Computer network architects 
                                                     2 
                       Computer occupations, all other 
                                                     2 
                                  Computer programmers 
                                                     4 
              Computer scientists and systems analysts 
                                                     2 
                           Computer software engineers 
                                                     2 
                          Computer support specialists 
                                                     3 
                         Computer support specialists  
                                                     1 
                             Computer systems analysts 
                                                     2 
                               Database administrators 
                                                     3 
                Database administrators and architects 
                                                     1 
                         Information security analysts 
                                                     2 
                                        Mathematicians 
                                                     3 
        Miscellaneous mathematical science occupations 
                                                     2 
           Network and computer systems administrators 
                                                     4 
      Network systems and data communications analysts 
                                                     2 
                          Operations research analysts 
                                                     3 
                         Operations research analysts  
                                                     1 
                Other mathematical science occupations 
                                                     2 
                  Professional and related occupations 
                                                     3 
                 Professional and related occupations  
                                                     1 
                                   Software developers 
                                                     1 
Software developers, applications and systems software 
                                                     1 
       Software quality assurance analysts and testers 
                                                     1 
                                         Statisticians 
                                                     3 
                              Total, 16 years and over 
                                                     4 
                   Web and digital interface designers 
                                                     1 
                                        Web developers 
                                                     2 
variables <- csv %>% 
  select(c("All", "Women","Black", "Asian", "Hispanic.Latino"))
variables

mean1 <- variables %>% summarise(across(everything(), mean, na.rm=TRUE))
sd1 <- variables %>% summarise(across(everything(), sd, na.rm=TRUE))
min1 <- variables %>% summarise(across(everything(), min, na.rm=TRUE))
max1 <- variables %>% summarise(across(everything(), max, na.rm=TRUE))

table <- rbind(mean1, sd1, min1, max1)
rownames(table) <- c("Mean", "Standard Deviation", "Minimum", "Maximum")
table <- t(table)
options(scipen = 999)

table <- table %>% 
  as.data.frame %>% 
  mutate_if(is.numeric, round, digits=2)
table
table(csv$job_type)

    computer computer_all professional        total 
          58            4            4            4 
table(csv$description)

                                             Actuaries 
                                                     3 
          Computer and information research scientists 
                                                     2 
                 Computer and mathematical occupations 
                                                     4 
                           Computer hardware engineers 
                                                     2 
                         Computer hardware engineers   
                                                     1 
                           Computer network architects 
                                                     2 
                       Computer occupations, all other 
                                                     2 
                                  Computer programmers 
                                                     4 
              Computer scientists and systems analysts 
                                                     2 
                           Computer software engineers 
                                                     2 
                          Computer support specialists 
                                                     3 
                         Computer support specialists  
                                                     1 
                             Computer systems analysts 
                                                     2 
                               Database administrators 
                                                     3 
                Database administrators and architects 
                                                     1 
                         Information security analysts 
                                                     2 
                                        Mathematicians 
                                                     3 
        Miscellaneous mathematical science occupations 
                                                     2 
           Network and computer systems administrators 
                                                     4 
      Network systems and data communications analysts 
                                                     2 
                          Operations research analysts 
                                                     3 
                         Operations research analysts  
                                                     1 
                Other mathematical science occupations 
                                                     2 
                  Professional and related occupations 
                                                     3 
                 Professional and related occupations  
                                                     1 
                                   Software developers 
                                                     1 
Software developers, applications and systems software 
                                                     1 
       Software quality assurance analysts and testers 
                                                     1 
                                         Statisticians 
                                                     3 
                              Total, 16 years and over 
                                                     4 
                   Web and digital interface designers 
                                                     1 
                                        Web developers 
                                                     2 

and 2-3 plots using the ggplot2 package in R. Please refer to the .Rmd file provided for notes and tips on how to use the data. Analysis will be graded on a) whether you are able to produce the required graphs and table and b) the quality and design of your plots. As you work, be sure to think about: ● Am I telling a clear story with my plot? ● Can a viewer easily understand and interpret my visuals? ● Do my design and color choices make sense for this plot? You should include a paragraph or two with your analysis that summarizes key findings from your work

Plot 1:

totalplot <- ggplot(total_csv)+
  geom_line(aes(x = year, y = Asian, color = "Asian"))+
  geom_line(aes(x = year, y = Black, color = "Black"))+
  geom_line(aes(x = year, y = Hispanic.Latino, colour = "H.Latino"))+
  geom_line(aes(x = year, y = Women, color = "Women"))+
  labs(y= "Percentage of occupations", x = "year",
       color = "Demographic",
       title = "Demographic Breakdown of All Occupations from years 2005,2010,2015,2020")+
  theme_minimal()+
  scale_color_manual(labels = c("Asian", "Black", "H.Latino","Women"),
                     values = c("red", "orange", "darkgreen", "blue"))

totalplot

PLot 2:

computerallplot <-
  ggplot(computer_all_csv) + 
  geom_line(aes(x = year, y = Asian, color = "Asian"))+
  geom_line(aes(x = year, y = Black, color = "Black"))+
  geom_line(aes(x = year, y = Hispanic.Latino, colour = "H.Latino"))+
  geom_line(aes(x = year, y = Women, color = "Women"))+
  labs(y= "Percentage of occupations", x = "Year",
       color = "Demographic",
       title = "Demographic Breakdown of All computer occupations from years 2005,2010,2015,2020")+
  theme_minimal()+
  scale_color_manual(labels = c("Asian", "Black", "H.Latino","Women"),
                     values = c("red", "orange", "darkgreen", "blue"))

computerallplot

professionalplot <-
  ggplot(professional_csv) + 
  geom_line(aes(x = year, y = Asian, color = "Asian"))+
  geom_line(aes(x = year, y = Black, color = "Black"))+
  geom_line(aes(x = year, y = Hispanic.Latino, colour = "H.Latino"))+
  geom_line(aes(x = year, y = Women, color = "Women"))+
  labs(y= "Percentage of occupation", x = "Year",
       color = "Demographic",
       title = "Demographic Breakdown of Proffessional occupations from years 2005,2010,2015,2020")+
  theme_minimal()+
  scale_color_manual(labels = c("Asian", "Black", "H.Latino","Women"),
                     values = c("red", "orange", "darkgreen", "blue"))

professionalplot

Key Findings:

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.

LS0tDQp0aXRsZTogIk1pZHRlcm0gRElEQSAzMjUgOiBTaGFyb24gTGluIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gDQoNClRyeSBleGVjdXRpbmcgdGhpcyBjaHVuayBieSBjbGlja2luZyB0aGUgKlJ1biogYnV0dG9uIHdpdGhpbiB0aGUgY2h1bmsgb3IgYnkgcGxhY2luZyB5b3VyIGN1cnNvciBpbnNpZGUgaXQgYW5kIHByZXNzaW5nICpDdHJsK1NoaWZ0K0VudGVyKi4gDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQ3JlYXRlIDEgdGFibGUgb2Ygc3VtbWFyeSBpbmZvcm1hdGlvbiBmb3IgdGhlIHRvdGFsIGFuZCBjb21wdXRlcl9hbGwgY2F0ZWdvcmllcywgYXMgd2VsbCBhcyAxLTIgcHJvZmVzc2lvbnMgb2YgeW91ciBjaG9pY2UsIA0KDQphbmQgMi0zIHBsb3RzIHVzaW5nIHRoZSBnZ3Bsb3QyIHBhY2thZ2UgaW4gUi4gUGxlYXNlIHJlZmVyIHRvIHRoZSAuUm1kIGZpbGUgcHJvdmlkZWQgZm9yIG5vdGVzIGFuZCB0aXBzIG9uIGhvdyB0byB1c2UgdGhlIGRhdGEuIEFuYWx5c2lzIHdpbGwgYmUgZ3JhZGVkIG9uIGEpIHdoZXRoZXIgeW91IGFyZSBhYmxlIHRvIHByb2R1Y2UgdGhlIHJlcXVpcmVkIGdyYXBocyBhbmQgdGFibGUgYW5kIGIpIHRoZSBxdWFsaXR5IGFuZCBkZXNpZ24gb2YgeW91ciBwbG90cy4gQXMgeW91IHdvcmssIGJlIHN1cmUgdG8gdGhpbmsgYWJvdXQ6DQril48gQW0gSSB0ZWxsaW5nIGEgY2xlYXIgc3Rvcnkgd2l0aCBteSBwbG90Pw0K4pePIENhbiBhIHZpZXdlciBlYXNpbHkgdW5kZXJzdGFuZCBhbmQgaW50ZXJwcmV0IG15IHZpc3VhbHM/DQril48gRG8gbXkgZGVzaWduIGFuZCBjb2xvciBjaG9pY2VzIG1ha2Ugc2Vuc2UgZm9yIHRoaXMgcGxvdD8NCllvdSBzaG91bGQgaW5jbHVkZSBhIHBhcmFncmFwaCBvciB0d28gd2l0aCB5b3VyIGFuYWx5c2lzIHRoYXQgc3VtbWFyaXplcyBrZXkgZmluZGluZ3MgZnJvbQ0KeW91ciB3b3JrLg0KDQpgYGB7cn0NCnNldHdkKCJDOi9Vc2Vycy9TVU5ZTG9hbmVyL09uZURyaXZlIC0gQmluZ2hhbXRvbiBVbml2ZXJzaXR5L0Rlc2t0b3AvRElEQSAzMjUiKQ0KI2ZvdW5kIHBhdGggdW5kZXIgTW9yZSBzZWN0aW9uIG9mIGZpbGVzDQpjc3YgPC0gcmVhZC5jc3YoIm9jY3VwYXRpb25fZ2VuZGVyX3JhY2UgKDEpLmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnMgPSBGLCBmaWxlRW5jb2Rpbmc9IlVURi04LUJPTSIpDQoNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShnZ3RoZW1lcykNCmBgYA0KDQoxLiBDcmVhdGUgMSB0YWJsZSBvZiBzdW1tYXJ5IGluZm9ybWF0aW9uIGZvciB0aGUgdG90YWwgYW5kIGNvbXB1dGVyX2FsbCBjYXRlZ29yaWVzLCBhcyB3ZWxsIGFzIDEtMiBwcm9mZXNzaW9ucyBvZiB5b3VyIGNob2ljZSwgDQpgYGB7cn0NCnRhYmxlKGNzdiRqb2JfdHlwZSkNCmBgYA0KDQpgYGB7cn0NCiN2YXJpYWJsZSA6IGpvYnR5cGUNCg0Kc2VsZWN0X29jY3VwYXRpb25fY3N2IDwtIGNzdiAlPiUgZmlsdGVyKGpvYl90eXBlICVpbiUgYygidG90YWwiLCAiY29tcHV0ZXJfYWxsIiwiY29tcHV0ZXIiKSkgJT4lIGhlYWQoKQ0KDQoNCnRhYmxlKGNzdiRqb2JfdHlwZSkNCnRhYmxlKGNzdiRkZXNjcmlwdGlvbikNCg0KdmFyaWFibGVzIDwtIGNzdiAlPiUgDQogIHNlbGVjdChjKCJBbGwiLCAiV29tZW4iLCJCbGFjayIsICJBc2lhbiIsICJIaXNwYW5pYy5MYXRpbm8iKSkNCnZhcmlhYmxlcw0KDQptZWFuMSA8LSB2YXJpYWJsZXMgJT4lIHN1bW1hcmlzZShhY3Jvc3MoZXZlcnl0aGluZygpLCBtZWFuLCBuYS5ybT1UUlVFKSkNCnNkMSA8LSB2YXJpYWJsZXMgJT4lIHN1bW1hcmlzZShhY3Jvc3MoZXZlcnl0aGluZygpLCBzZCwgbmEucm09VFJVRSkpDQptaW4xIDwtIHZhcmlhYmxlcyAlPiUgc3VtbWFyaXNlKGFjcm9zcyhldmVyeXRoaW5nKCksIG1pbiwgbmEucm09VFJVRSkpDQptYXgxIDwtIHZhcmlhYmxlcyAlPiUgc3VtbWFyaXNlKGFjcm9zcyhldmVyeXRoaW5nKCksIG1heCwgbmEucm09VFJVRSkpDQoNCnRhYmxlIDwtIHJiaW5kKG1lYW4xLCBzZDEsIG1pbjEsIG1heDEpDQpyb3duYW1lcyh0YWJsZSkgPC0gYygiTWVhbiIsICJTdGFuZGFyZCBEZXZpYXRpb24iLCAiTWluaW11bSIsICJNYXhpbXVtIikNCnRhYmxlIDwtIHQodGFibGUpDQpvcHRpb25zKHNjaXBlbiA9IDk5OSkNCg0KdGFibGUgPC0gdGFibGUgJT4lIA0KICBhcy5kYXRhLmZyYW1lICU+JSANCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCBkaWdpdHM9MikNCnRhYmxlDQpgYGANCmBgYHtyfQ0KdGFibGUoY3N2JGpvYl90eXBlKQ0KYGBgDQpgYGB7cn0NCnRhYmxlKGNzdiRkZXNjcmlwdGlvbikNCmBgYA0KDQpgYGB7cn0NCnBsb3QoY3N2JHllYXIsIGNzdiRXb21lbikNCg0KDQp0b3RhbF9jc3YgPC0gY3N2ICU+JSBmaWx0ZXIoam9iX3R5cGUgJWluJSBjKCJ0b3RhbCIpKSAlPiUgaGVhZCgpDQoNCmNvbXB1dGVyX2FsbF9jc3Y8LSBjc3YgJT4lIGZpbHRlcihqb2JfdHlwZSAlaW4lIGMoImNvbXB1dGVyX2FsbCIpKSAlPiUgaGVhZCgpDQoNCnByb2Zlc3Npb25hbF9jc3YgPC1jc3YgJT4lIGZpbHRlcihqb2JfdHlwZSAlaW4lIGMoInByb2Zlc3Npb25hbCIpKSAlPiUgaGVhZCgpDQoNCg0KcGxvdCh0b3RhbF9jc3YkeWVhciwgdG90YWxfY3N2JFdvbWVuKQ0KDQpwbG90KGNvbXB1dGVyX2FsbF9jc3YkeWVhciwgY29tcHV0ZXJfYWxsX2NzdiRCbGFjaykNCg0KcGxvdChwcm9mZXNzaW9uYWxfY3N2JHllYXIsIHByb2Zlc3Npb25hbF9jc3YkV29tZW4pDQoNCg0KYGBgDQphbmQgMi0zIHBsb3RzIHVzaW5nIHRoZSBnZ3Bsb3QyIHBhY2thZ2UgaW4gUi4gUGxlYXNlIHJlZmVyIHRvIHRoZSAuUm1kIGZpbGUgcHJvdmlkZWQgZm9yIG5vdGVzIGFuZCB0aXBzIG9uIGhvdyB0byB1c2UgdGhlIGRhdGEuIEFuYWx5c2lzIHdpbGwgYmUgZ3JhZGVkIG9uIGEpIHdoZXRoZXIgeW91IGFyZSBhYmxlIHRvIHByb2R1Y2UgdGhlIHJlcXVpcmVkIGdyYXBocyBhbmQgdGFibGUgYW5kIGIpIHRoZSBxdWFsaXR5IGFuZCBkZXNpZ24gb2YgeW91ciBwbG90cy4gQXMgeW91IHdvcmssIGJlIHN1cmUgdG8gdGhpbmsgYWJvdXQ6DQril48gQW0gSSB0ZWxsaW5nIGEgY2xlYXIgc3Rvcnkgd2l0aCBteSBwbG90Pw0K4pePIENhbiBhIHZpZXdlciBlYXNpbHkgdW5kZXJzdGFuZCBhbmQgaW50ZXJwcmV0IG15IHZpc3VhbHM/DQril48gRG8gbXkgZGVzaWduIGFuZCBjb2xvciBjaG9pY2VzIG1ha2Ugc2Vuc2UgZm9yIHRoaXMgcGxvdD8NCllvdSBzaG91bGQgaW5jbHVkZSBhIHBhcmFncmFwaCBvciB0d28gd2l0aCB5b3VyIGFuYWx5c2lzIHRoYXQgc3VtbWFyaXplcyBrZXkgZmluZGluZ3MgZnJvbQ0KeW91ciB3b3JrDQoNCg0KUGxvdCAxOg0KYGBge3J9DQp0b3RhbHBsb3QgPC0gZ2dwbG90KHRvdGFsX2NzdikrDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBBc2lhbiwgY29sb3IgPSAiQXNpYW4iKSkrDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBCbGFjaywgY29sb3IgPSAiQmxhY2siKSkrDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBIaXNwYW5pYy5MYXRpbm8sIGNvbG91ciA9ICJILkxhdGlubyIpKSsNCiAgZ2VvbV9saW5lKGFlcyh4ID0geWVhciwgeSA9IFdvbWVuLCBjb2xvciA9ICJXb21lbiIpKSsNCiAgbGFicyh5PSAiUGVyY2VudGFnZSBvZiBvY2N1cGF0aW9ucyIsIHggPSAieWVhciIsDQogICAgICAgY29sb3IgPSAiRGVtb2dyYXBoaWMiLA0KICAgICAgIHRpdGxlID0gIkRlbW9ncmFwaGljIEJyZWFrZG93biBvZiBBbGwgT2NjdXBhdGlvbnMgZnJvbSB5ZWFycyAyMDA1LDIwMTAsMjAxNSwyMDIwIikrDQogIHRoZW1lX21pbmltYWwoKSsNCiAgc2NhbGVfY29sb3JfbWFudWFsKGxhYmVscyA9IGMoIkFzaWFuIiwgIkJsYWNrIiwgIkguTGF0aW5vIiwiV29tZW4iKSwNCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoInJlZCIsICJvcmFuZ2UiLCAiZGFya2dyZWVuIiwgImJsdWUiKSkNCg0KdG90YWxwbG90DQpgYGANCg0KUExvdCAyOg0KYGBge3J9DQpjb21wdXRlcmFsbHBsb3QgPC0NCiAgZ2dwbG90KGNvbXB1dGVyX2FsbF9jc3YpICsgDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBBc2lhbiwgY29sb3IgPSAiQXNpYW4iKSkrDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBCbGFjaywgY29sb3IgPSAiQmxhY2siKSkrDQogIGdlb21fbGluZShhZXMoeCA9IHllYXIsIHkgPSBIaXNwYW5pYy5MYXRpbm8sIGNvbG91ciA9ICJILkxhdGlubyIpKSsNCiAgZ2VvbV9saW5lKGFlcyh4ID0geWVhciwgeSA9IFdvbWVuLCBjb2xvciA9ICJXb21lbiIpKSsNCiAgbGFicyh5PSAiUGVyY2VudGFnZSBvZiBvY2N1cGF0aW9ucyIsIHggPSAiWWVhciIsDQogICAgICAgY29sb3IgPSAiRGVtb2dyYXBoaWMiLA0KICAgICAgIHRpdGxlID0gIkRlbW9ncmFwaGljIEJyZWFrZG93biBvZiBBbGwgY29tcHV0ZXIgb2NjdXBhdGlvbnMgZnJvbSB5ZWFycyAyMDA1LDIwMTAsMjAxNSwyMDIwIikrDQogIHRoZW1lX21pbmltYWwoKSsNCiAgc2NhbGVfY29sb3JfbWFudWFsKGxhYmVscyA9IGMoIkFzaWFuIiwgIkJsYWNrIiwgIkguTGF0aW5vIiwiV29tZW4iKSwNCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoInJlZCIsICJvcmFuZ2UiLCAiZGFya2dyZWVuIiwgImJsdWUiKSkNCg0KY29tcHV0ZXJhbGxwbG90DQpgYGANCmBgYHtyfQ0KcHJvZmVzc2lvbmFscGxvdCA8LQ0KICBnZ3Bsb3QocHJvZmVzc2lvbmFsX2NzdikgKyANCiAgZ2VvbV9saW5lKGFlcyh4ID0geWVhciwgeSA9IEFzaWFuLCBjb2xvciA9ICJBc2lhbiIpKSsNCiAgZ2VvbV9saW5lKGFlcyh4ID0geWVhciwgeSA9IEJsYWNrLCBjb2xvciA9ICJCbGFjayIpKSsNCiAgZ2VvbV9saW5lKGFlcyh4ID0geWVhciwgeSA9IEhpc3BhbmljLkxhdGlubywgY29sb3VyID0gIkguTGF0aW5vIikpKw0KICBnZW9tX2xpbmUoYWVzKHggPSB5ZWFyLCB5ID0gV29tZW4sIGNvbG9yID0gIldvbWVuIikpKw0KICBsYWJzKHk9ICJQZXJjZW50YWdlIG9mIG9jY3VwYXRpb24iLCB4ID0gIlllYXIiLA0KICAgICAgIGNvbG9yID0gIkRlbW9ncmFwaGljIiwNCiAgICAgICB0aXRsZSA9ICJEZW1vZ3JhcGhpYyBCcmVha2Rvd24gb2YgUHJvZmZlc3Npb25hbCBvY2N1cGF0aW9ucyBmcm9tIHllYXJzIDIwMDUsMjAxMCwyMDE1LDIwMjAiKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICBzY2FsZV9jb2xvcl9tYW51YWwobGFiZWxzID0gYygiQXNpYW4iLCAiQmxhY2siLCAiSC5MYXRpbm8iLCJXb21lbiIpLA0KICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYygicmVkIiwgIm9yYW5nZSIsICJkYXJrZ3JlZW4iLCAiYmx1ZSIpKQ0KDQpwcm9mZXNzaW9uYWxwbG90DQpgYGANCg0KDQojIyBLZXkgRmluZGluZ3M6IA0KDQoNCg0KQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLg0KDQpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkN0cmwrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4NCg0KVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLg0K