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.

data set

      library(hflights)
# 미국 휴스턴에서 출발하는 모든 비행기의 2011년 이착륙기록이 수록된 것으로"
0,# 227
if("MASS" %in% installed.packages() == FALSE)install.packages("MASS")
      library(MASS)
if("datasets" %in% installed.packages() == FALSE)install.packages("datasets")
      library(datasets)

data() Data sets in package ¡®datasets¡??: AirPassengers # Monthly Airline Passenger # Numbers 1949-1960 # BJsales Sales Data with Leading # Indicator # BJsales.lead (BJsales) # Sales Data with Leading # Indicator # BOD Biochemical Oxygen Demand # CO2 Carbon Dioxide Uptake in Grass # Plants # ChickWeight Weight versus age of chicks on # different diets # DNase Elisa assay of DNase # EuStockMarkets # Daily Closing Prices of Major # European Stock Indices, # 1991-1998 # Formaldehyde Determination of Formaldehyde # HairEyeColor Hair and Eye Color of # Statistics Students # Harman23.cor Harman Example 2.3 # Harman74.cor Harman Example 7.4 # Indometh Pharmacokinetics of # Indomethacin # InsectSprays Effectiveness of Insect Sprays # JohnsonJohnson # Quarterly Earnings per Johnson # & Johnson Share # LakeHuron Level of Lake Huron 1875-1972 # LifeCycleSavings # Intercountry Life-Cycle # Savings Data # Loblolly Growth of Loblolly pine trees # Nile Flow of the River Nile # Orange Growth of Orange Trees # OrchardSprays # Potency of Orchard Sprays # PlantGrowth Results from an Experiment on # Plant Growth # Puromycin Reaction Velocity of an # Enzymatic Reaction # Seatbelts Road Casualties in Great # Britain 1969-84 # Theoph Pharmacokinetics of # Theophylline # Titanic Survival of passengers on the # Titanic # ToothGrowth The Effect of Vitamin C on # Tooth Growth in Guinea Pigs # UCBAdmissions # Student Admissions at UC # Berkeley # UKDriverDeaths # Road Casualties in Great # Britain 1969-84 # UKgas UK Quarterly Gas Consumption # USAccDeaths Accidental Deaths in the US # 1973-1978 # USArrests Violent Crime Rates by US # State # USJudgeRatings # Lawyers’ Ratings of State # Judges in the US Superior # Court # USPersonalExpenditure # Personal Expenditure Data # UScitiesD Distances Between European # Cities and Between US Cities # VADeaths Death Rates in Virginia (1940) # WWWusage Internet Usage per Minute # WorldPhones The World’s Telephones # ability.cov Ability and Intelligence Tests # airmiles Passenger Miles on Commercial # US Airlines, 1937-1960 # airquality New York Air Quality # Measurements # anscombe Anscombe’s Quartet of # ‘Identical’ Simple Linear # Regressions # attenu The Joyner-Boore Attenuation # Data # attitude The Chatterjee-Price Attitude # Data # austres Quarterly Time Series of the # Number of Australian Residents # beaver1 (beavers) # Body Temperature Series of Two # Beavers # beaver2 (beavers) # Body Temperature Series of Two # Beavers # cars Speed and Stopping Distances # of Cars # chickwts Chicken Weights by Feed Type # co2 Mauna Loa Atmospheric CO2 # Concentration # crimtab Student’s 3000 Criminals Data # discoveries Yearly Numbers of Important # Discoveries # esoph Smoking, Alcohol and # (O)esophageal Cancer # euro Conversion Rates of Euro # Currencies # euro.cross (euro) # Conversion Rates of Euro # Currencies # eurodist Distances Between European # Cities and Between US Cities # faithful Old Faithful Geyser Data # fdeaths (UKLungDeaths) # Monthly Deaths from Lung # Diseases in the UK # freeny Freeny’s Revenue Data # freeny.x (freeny) # Freeny’s Revenue Data # freeny.y (freeny) # Freeny’s Revenue Data # infert Infertility after Spontaneous # and Induced Abortion # iris Edgar Anderson’s Iris Data # iris3 Edgar Anderson’s Iris Data # islands Areas of the World’s Major # Landmasses # ldeaths (UKLungDeaths) # Monthly Deaths from Lung # Diseases in the UK # lh Luteinizing Hormone in Blood # Samples # longley Longley’s Economic Regression # Data # lynx Annual Canadian Lynx trappings # 1821-1934 # mdeaths (UKLungDeaths) # Monthly Deaths from Lung # Diseases in the UK # morley Michelson Speed of Light Data # mtcars Motor Trend Car Road Tests # nhtemp Average Yearly Temperatures in # New Haven # nottem Average Monthly Temperatures # at Nottingham, 1920-1939 # npk Classical N, P, K Factorial # Experiment # occupationalStatus # Occupational Status of Fathers # and their Sons # precip Annual Precipitation in US # Cities # presidents Quarterly Approval Ratings of # US Presidents # pressure Vapor Pressure of Mercury as a # Function of Temperature # quakes Locations of Earthquakes off # Fiji # randu Random Numbers from # Congruential Generator RANDU # rivers Lengths of Major North # American Rivers # rock Measurements on Petroleum Rock # Samples # sleep Student’s Sleep Data # stack.loss (stackloss) # Brownlee’s Stack Loss Plant # Data # stack.x (stackloss) # Brownlee’s Stack Loss Plant # Data # stackloss Brownlee’s Stack Loss Plant # Data # state.abb (state) # US State Facts and Figures # state.area (state) # US State Facts and Figures # state.center (state) # US State Facts and Figures # state.division (state) # US State Facts and Figures # state.name (state) # US State Facts and Figures # state.region (state) # US State Facts and Figures # state.x77 (state) # US State Facts and Figures # sunspot.month # Monthly Sunspot Data, from # 1749 to “Present” # sunspot.year Yearly Sunspot Data, 1700-1988 # sunspots Monthly Sunspot Numbers, # 1749-1983 # swiss Swiss Fertility and # Socioeconomic Indicators # (1888) Data # treering Yearly Treering Data, # -6000-1979 # trees Girth, Height and Volume for # Black Cherry Trees # uspop Populations Recorded by the US # Census # volcano Topographic Information on # Auckland’s Maunga Whau Volcano # warpbreaks The Number of Breaks in Yarn # during Weaving # women Average Heights and Weights # for American Women

Data sets in package ¡®dplyr¡??:

band_instruments

Band membership

band_instruments2

Band membership

band_members Band membership nasa NASA spatio-temporal data starwars Starwars characters storms Storm tracks data Data sets in package ¡®ggmap¡??: crime Crime data hadley Highly unofficial ggplot2 image wind Wind data from Hurricane Ike zips Zip code data for the Greater Houston Metropolitan Area from the 2000 census

Data sets in package ¡®ggplot2¡??:
  

diamonds Prices of 50,000 round cut

diamonds

economics US economic time series

economics_long

           US economic time series

faithfuld 2d density estimate of Old Faithful data luv_colours ‘colors()’ in Luv space midwest Midwest demographics mpg Fuel economy data from 1999 and 2008 for 38 popular models of car msleep An updated and expanded version of the mammals sleep dataset presidential Terms of 11 presidents from Eisenhower to Obama seals Vector field of seal movements txhousing Housing sales in TX Data sets in package ¡®googleVis¡??: Andrew Hurricane Andrew: googleVis example data set Cairo Daily temperature data for Cairo CityPopularity CityPopularity: googleVis example data set Exports Exports: googleVis example data set Fruits Fruits: googleVis example data set OpenClose OpenClose: googleVis example data set Population Population: googleVis example data set Regions Regions: googleVis example data set Stock Stock: googleVis example data set dino Dinosaur data

Data sets in package ¡®hflights¡??:
hflights       Houston flights data
Data sets in package ¡®MASS¡??:

Aids2 Australian AIDS Survival Data

Animals Brain and Body Weights for 28

Species

Boston Housing Values in Suburbs of

Boston

Cars93 Data from 93 Cars on Sale in the USA in 1993 Cushings Diagnostic Tests on Patients with Cushing’s Syndrome DDT DDT in Kale GAGurine Level of GAG in Urine of Children Insurance Numbers of Car Insurance claims Melanoma Survival from Malignant Melanoma OME Tests of Auditory Perception in Children with OME Pima.te Diabetes in Pima Indian Women Pima.tr Diabetes in Pima Indian Women Pima.tr2 Diabetes in Pima Indian Women Rabbit Blood Pressure in Rabbits Rubber Accelerated Testing of Tyre Rubber SP500 Returns of the Standard and Poors 500 Sitka Growth Curves for Sitka Spruce Trees in 1988 Sitka89 Growth Curves for Sitka Spruce Trees in 1989 Skye AFM Compositions of Aphyric Skye Lavas Traffic Effect of Swedish Speed Limits on Accidents UScereal Nutritional and Marketing Information on US Cereals UScrime The Effect of Punishment Regimes on Crime Rates VA Veteran’s Administration Lung Cancer Trial abbey Determinations of Nickel Content accdeaths Accidental Deaths in the US 1973-1978 anorexia Anorexia Data on Weight Change bacteria Presence of Bacteria after Drug Treatments beav1 Body Temperature Series of Beaver 1 beav2 Body Temperature Series of Beaver 2 biopsy Biopsy Data on Breast Cancer Patients birthwt Risk Factors Associated with Low Infant Birth Weight cabbages Data from a cabbage field trial caith Colours of Eyes and Hair of People in Caithness cats Anatomical Data from Domestic Cats cement Heat Evolved by Setting Cements chem Copper in Wholemeal Flour coop Co-operative Trial in Analytical Chemistry cpus Performance of Computer CPUs crabs Morphological Measurements on Leptograpsus Crabs deaths Monthly Deaths from Lung Diseases in the UK drivers Deaths of Car Drivers in Great Britain 1969-84 eagles Foraging Ecology of Bald Eagles epil Seizure Counts for Epileptics farms Ecological Factors in Farm Management fgl Measurements of Forensic Glass Fragments forbes Forbes’ Data on Boiling Points in the Alps galaxies Velocities for 82 Galaxies gehan Remission Times of Leukaemia Patients genotype Rat Genotype Data geyser Old Faithful Geyser Data gilgais Line Transect of Soil in Gilgai Territory hills Record Times in Scottish Hill Races housing Frequency Table from a Copenhagen Housing Conditions Survey immer Yields from a Barley Field Trial leuk Survival Times and White Blood Counts for Leukaemia Patients mammals Brain and Body Weights for 62 Species of Land Mammals mcycle Data from a Simulated Motorcycle Accident menarche Age of Menarche in Warsaw michelson Michelson’s Speed of Light Data minn38 Minnesota High School Graduates of 1938 motors Accelerated Life Testing of Motorettes muscle Effect of Calcium Chloride on Muscle Contraction in Rat Hearts newcomb Newcomb’s Measurements of the Passage Time of Light nlschools Eighth-Grade Pupils in the Netherlands npk Classical N, P, K Factorial Experiment npr1 US Naval Petroleum Reserve No. 1 data oats Data from an Oats Field Trial painters The Painter’s Data of de Piles petrol N. L. Prater’s Petrol Refinery Data phones Belgium Phone Calls 1950-1973 quine Absenteeism from School in Rural New South Wales road Road Accident Deaths in US States rotifer Numbers of Rotifers by Fluid Density ships Ships Damage Data shoes Shoe wear data of Box, Hunter and Hunter shrimp Percentage of Shrimp in Shrimp Cocktail shuttle Space Shuttle Autolander Problem snails Snail Mortality Data steam The Saturated Steam Pressure Data stormer The Stormer Viscometer Data survey Student Survey Data synth.te Synthetic Classification Problem synth.tr Synthetic Classification Problem topo Spatial Topographic Data waders Counts of Waders at 15 Sites in South Africa whiteside House Insulation: Whiteside’s Data wtloss Weight Loss Data from an Obese Patient Data sets in package ¡®plyr¡??: baseball Yearly batting records for all major league baseball players ozone Monthly ozone measurements over Central America.

Data sets in package ¡®reshape¡??:
french_fries   Sensory data from a french
               fries experiment
smiths         Demo data describing the
               Smiths
tips           Tipping data
Data sets in package ¡®RGA¡??:
ga             Lists all columns for a Google
               Analytics core report type
Data sets in package ¡®stringr¡??:
fruit          Sample character vectors for
               practicing string
               manipulations.
sentences      Sample character vectors for
               practicing string
               manipulations.
words          Sample character vectors for
               practicing string
               manipulations.
Data sets in package ¡®wordcloud¡??:
SOTU           United States State of the
               Union Addresses (2010 and
               2011)
Use ¡®data(package = .packages(all.available = TRUE))¡??
to list the data sets in all *available* packages.

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.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KZGF0YSBzZXQgDQpgYGB7cn0NCg0KaWYoImhmbGlnaHRzIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoImhmbGlnaHRzIikNCiAgICAgIGxpYnJhcnkoaGZsaWdodHMpDQojILnMsbkgyN69usXPv6G8rSDD4rnfx8+0wiC48LXnILrxx+Cx4sDHIDIwMTGz4iDAzML4t/qx4rfPwMwgvPa3z7XIILDNwLi3zg0KIyAyMjcsNDk2sMfAxyDAzML4t/qx4rfPv6EgtOvH2CAyMbCzIMfXuPHAuyC89sH9x9EgtaXAzMXNDQppZigiTUFTUyIgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoKSA9PSBGQUxTRSlpbnN0YWxsLnBhY2thZ2VzKCJNQVNTIikNCiAgICAgIGxpYnJhcnkoTUFTUykNCmlmKCJkYXRhc2V0cyIgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoKSA9PSBGQUxTRSlpbnN0YWxsLnBhY2thZ2VzKCJkYXRhc2V0cyIpDQogICAgICBsaWJyYXJ5KGRhdGFzZXRzKQ0KYGBgDQpkYXRhKCkNCkRhdGEgc2V0cyBpbiBwYWNrYWdlIKKuoudkYXRhc2V0c6KuPz86DQpBaXJQYXNzZW5nZXJzDQojICAgICAgICAgICAgICAgIE1vbnRobHkgQWlybGluZSBQYXNzZW5nZXINCiMgICAgICAgICAgICAgICAgTnVtYmVycyAxOTQ5LTE5NjANCiMgQkpzYWxlcyAgICAgICAgU2FsZXMgRGF0YSB3aXRoIExlYWRpbmcNCiMgICAgICAgICAgICAgICAgSW5kaWNhdG9yDQojIEJKc2FsZXMubGVhZCAoQkpzYWxlcykNCiMgICAgICAgICAgICAgICAgU2FsZXMgRGF0YSB3aXRoIExlYWRpbmcNCiMgICAgICAgICAgICAgICAgSW5kaWNhdG9yDQojIEJPRCAgICAgICAgICAgIEJpb2NoZW1pY2FsIE94eWdlbiBEZW1hbmQNCiMgQ08yICAgICAgICAgICAgQ2FyYm9uIERpb3hpZGUgVXB0YWtlIGluIEdyYXNzDQojICAgICAgICAgICAgICAgIFBsYW50cw0KIyBDaGlja1dlaWdodCAgICBXZWlnaHQgdmVyc3VzIGFnZSBvZiBjaGlja3Mgb24NCiMgICAgICAgICAgICAgICAgZGlmZmVyZW50IGRpZXRzDQojIEROYXNlICAgICAgICAgIEVsaXNhIGFzc2F5IG9mIEROYXNlDQojIEV1U3RvY2tNYXJrZXRzDQojICAgICAgICAgICAgICAgIERhaWx5IENsb3NpbmcgUHJpY2VzIG9mIE1ham9yDQojICAgICAgICAgICAgICAgIEV1cm9wZWFuIFN0b2NrIEluZGljZXMsDQojICAgICAgICAgICAgICAgIDE5OTEtMTk5OA0KIyBGb3JtYWxkZWh5ZGUgICBEZXRlcm1pbmF0aW9uIG9mIEZvcm1hbGRlaHlkZQ0KIyBIYWlyRXllQ29sb3IgICBIYWlyIGFuZCBFeWUgQ29sb3Igb2YNCiMgICAgICAgICAgICAgICAgU3RhdGlzdGljcyBTdHVkZW50cw0KIyBIYXJtYW4yMy5jb3IgICBIYXJtYW4gRXhhbXBsZSAyLjMNCiMgSGFybWFuNzQuY29yICAgSGFybWFuIEV4YW1wbGUgNy40DQojIEluZG9tZXRoICAgICAgIFBoYXJtYWNva2luZXRpY3Mgb2YNCiMgICAgICAgICAgICAgICAgSW5kb21ldGhhY2luDQojIEluc2VjdFNwcmF5cyAgIEVmZmVjdGl2ZW5lc3Mgb2YgSW5zZWN0IFNwcmF5cw0KIyBKb2huc29uSm9obnNvbg0KIyAgICAgICAgICAgICAgICBRdWFydGVybHkgRWFybmluZ3MgcGVyIEpvaG5zb24NCiMgICAgICAgICAgICAgICAgJiBKb2huc29uIFNoYXJlDQojIExha2VIdXJvbiAgICAgIExldmVsIG9mIExha2UgSHVyb24gMTg3NS0xOTcyDQojIExpZmVDeWNsZVNhdmluZ3MNCiMgICAgICAgICAgICAgICAgSW50ZXJjb3VudHJ5IExpZmUtQ3ljbGUNCiMgICAgICAgICAgICAgICAgU2F2aW5ncyBEYXRhDQojIExvYmxvbGx5ICAgICAgIEdyb3d0aCBvZiBMb2Jsb2xseSBwaW5lIHRyZWVzDQojIE5pbGUgICAgICAgICAgIEZsb3cgb2YgdGhlIFJpdmVyIE5pbGUNCiMgT3JhbmdlICAgICAgICAgR3Jvd3RoIG9mIE9yYW5nZSBUcmVlcw0KIyBPcmNoYXJkU3ByYXlzDQojICAgICAgICAgICAgICAgIFBvdGVuY3kgb2YgT3JjaGFyZCBTcHJheXMNCiMgUGxhbnRHcm93dGggICAgUmVzdWx0cyBmcm9tIGFuIEV4cGVyaW1lbnQgb24NCiMgICAgICAgICAgICAgICAgUGxhbnQgR3Jvd3RoDQojIFB1cm9teWNpbiAgICAgIFJlYWN0aW9uIFZlbG9jaXR5IG9mIGFuDQojICAgICAgICAgICAgICAgIEVuenltYXRpYyBSZWFjdGlvbg0KIyBTZWF0YmVsdHMgICAgICBSb2FkIENhc3VhbHRpZXMgaW4gR3JlYXQNCiMgICAgICAgICAgICAgICAgQnJpdGFpbiAxOTY5LTg0DQojIFRoZW9waCAgICAgICAgIFBoYXJtYWNva2luZXRpY3Mgb2YNCiMgICAgICAgICAgICAgICAgVGhlb3BoeWxsaW5lDQojIFRpdGFuaWMgICAgICAgIFN1cnZpdmFsIG9mIHBhc3NlbmdlcnMgb24gdGhlDQojICAgICAgICAgICAgICAgIFRpdGFuaWMNCiMgVG9vdGhHcm93dGggICAgVGhlIEVmZmVjdCBvZiBWaXRhbWluIEMgb24NCiMgICAgICAgICAgICAgICAgVG9vdGggR3Jvd3RoIGluIEd1aW5lYSBQaWdzDQojIFVDQkFkbWlzc2lvbnMNCiMgICAgICAgICAgICAgICAgU3R1ZGVudCBBZG1pc3Npb25zIGF0IFVDDQojICAgICAgICAgICAgICAgIEJlcmtlbGV5DQojIFVLRHJpdmVyRGVhdGhzDQojICAgICAgICAgICAgICAgIFJvYWQgQ2FzdWFsdGllcyBpbiBHcmVhdA0KIyAgICAgICAgICAgICAgICBCcml0YWluIDE5NjktODQNCiMgVUtnYXMgICAgICAgICAgVUsgUXVhcnRlcmx5IEdhcyBDb25zdW1wdGlvbg0KIyBVU0FjY0RlYXRocyAgICBBY2NpZGVudGFsIERlYXRocyBpbiB0aGUgVVMNCiMgICAgICAgICAgICAgICAgMTk3My0xOTc4DQojIFVTQXJyZXN0cyAgICAgIFZpb2xlbnQgQ3JpbWUgUmF0ZXMgYnkgVVMNCiMgICAgICAgICAgICAgICAgU3RhdGUNCiMgVVNKdWRnZVJhdGluZ3MNCiMgICAgICAgICAgICAgICAgTGF3eWVycycgUmF0aW5ncyBvZiBTdGF0ZQ0KIyAgICAgICAgICAgICAgICBKdWRnZXMgaW4gdGhlIFVTIFN1cGVyaW9yDQojICAgICAgICAgICAgICAgIENvdXJ0DQojIFVTUGVyc29uYWxFeHBlbmRpdHVyZQ0KIyAgICAgICAgICAgICAgICBQZXJzb25hbCBFeHBlbmRpdHVyZSBEYXRhDQojIFVTY2l0aWVzRCAgICAgIERpc3RhbmNlcyBCZXR3ZWVuIEV1cm9wZWFuDQojICAgICAgICAgICAgICAgIENpdGllcyBhbmQgQmV0d2VlbiBVUyBDaXRpZXMNCiMgVkFEZWF0aHMgICAgICAgRGVhdGggUmF0ZXMgaW4gVmlyZ2luaWEgKDE5NDApDQojIFdXV3VzYWdlICAgICAgIEludGVybmV0IFVzYWdlIHBlciBNaW51dGUNCiMgV29ybGRQaG9uZXMgICAgVGhlIFdvcmxkJ3MgVGVsZXBob25lcw0KIyBhYmlsaXR5LmNvdiAgICBBYmlsaXR5IGFuZCBJbnRlbGxpZ2VuY2UgVGVzdHMNCiMgYWlybWlsZXMgICAgICAgUGFzc2VuZ2VyIE1pbGVzIG9uIENvbW1lcmNpYWwNCiMgICAgICAgICAgICAgICAgVVMgQWlybGluZXMsIDE5MzctMTk2MA0KIyBhaXJxdWFsaXR5ICAgICBOZXcgWW9yayBBaXIgUXVhbGl0eQ0KIyAgICAgICAgICAgICAgICBNZWFzdXJlbWVudHMNCiMgYW5zY29tYmUgICAgICAgQW5zY29tYmUncyBRdWFydGV0IG9mDQojICAgICAgICAgICAgICAgICdJZGVudGljYWwnIFNpbXBsZSBMaW5lYXINCiMgICAgICAgICAgICAgICAgUmVncmVzc2lvbnMNCiMgYXR0ZW51ICAgICAgICAgVGhlIEpveW5lci1Cb29yZSBBdHRlbnVhdGlvbg0KIyAgICAgICAgICAgICAgICBEYXRhDQojIGF0dGl0dWRlICAgICAgIFRoZSBDaGF0dGVyamVlLVByaWNlIEF0dGl0dWRlDQojICAgICAgICAgICAgICAgIERhdGENCiMgYXVzdHJlcyAgICAgICAgUXVhcnRlcmx5IFRpbWUgU2VyaWVzIG9mIHRoZQ0KIyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgQXVzdHJhbGlhbiBSZXNpZGVudHMNCiMgYmVhdmVyMSAoYmVhdmVycykNCiMgICAgICAgICAgICAgICAgQm9keSBUZW1wZXJhdHVyZSBTZXJpZXMgb2YgVHdvDQojICAgICAgICAgICAgICAgIEJlYXZlcnMNCiMgYmVhdmVyMiAoYmVhdmVycykNCiMgICAgICAgICAgICAgICAgQm9keSBUZW1wZXJhdHVyZSBTZXJpZXMgb2YgVHdvDQojICAgICAgICAgICAgICAgIEJlYXZlcnMNCiMgY2FycyAgICAgICAgICAgU3BlZWQgYW5kIFN0b3BwaW5nIERpc3RhbmNlcw0KIyAgICAgICAgICAgICAgICBvZiBDYXJzDQojIGNoaWNrd3RzICAgICAgIENoaWNrZW4gV2VpZ2h0cyBieSBGZWVkIFR5cGUNCiMgY28yICAgICAgICAgICAgTWF1bmEgTG9hIEF0bW9zcGhlcmljIENPMg0KIyAgICAgICAgICAgICAgICBDb25jZW50cmF0aW9uDQojIGNyaW10YWIgICAgICAgIFN0dWRlbnQncyAzMDAwIENyaW1pbmFscyBEYXRhDQojIGRpc2NvdmVyaWVzICAgIFllYXJseSBOdW1iZXJzIG9mIEltcG9ydGFudA0KIyAgICAgICAgICAgICAgICBEaXNjb3Zlcmllcw0KIyBlc29waCAgICAgICAgICBTbW9raW5nLCBBbGNvaG9sIGFuZA0KIyAgICAgICAgICAgICAgICAoTyllc29waGFnZWFsIENhbmNlcg0KIyBldXJvICAgICAgICAgICBDb252ZXJzaW9uIFJhdGVzIG9mIEV1cm8NCiMgICAgICAgICAgICAgICAgQ3VycmVuY2llcw0KIyBldXJvLmNyb3NzIChldXJvKQ0KIyAgICAgICAgICAgICAgICBDb252ZXJzaW9uIFJhdGVzIG9mIEV1cm8NCiMgICAgICAgICAgICAgICAgQ3VycmVuY2llcw0KIyBldXJvZGlzdCAgICAgICBEaXN0YW5jZXMgQmV0d2VlbiBFdXJvcGVhbg0KIyAgICAgICAgICAgICAgICBDaXRpZXMgYW5kIEJldHdlZW4gVVMgQ2l0aWVzDQojIGZhaXRoZnVsICAgICAgIE9sZCBGYWl0aGZ1bCBHZXlzZXIgRGF0YQ0KIyBmZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgZnJlZW55ICAgICAgICAgRnJlZW55J3MgUmV2ZW51ZSBEYXRhDQojIGZyZWVueS54IChmcmVlbnkpDQojICAgICAgICAgICAgICAgIEZyZWVueSdzIFJldmVudWUgRGF0YQ0KIyBmcmVlbnkueSAoZnJlZW55KQ0KIyAgICAgICAgICAgICAgICBGcmVlbnkncyBSZXZlbnVlIERhdGENCiMgaW5mZXJ0ICAgICAgICAgSW5mZXJ0aWxpdHkgYWZ0ZXIgU3BvbnRhbmVvdXMNCiMgICAgICAgICAgICAgICAgYW5kIEluZHVjZWQgQWJvcnRpb24NCiMgaXJpcyAgICAgICAgICAgRWRnYXIgQW5kZXJzb24ncyBJcmlzIERhdGENCiMgaXJpczMgICAgICAgICAgRWRnYXIgQW5kZXJzb24ncyBJcmlzIERhdGENCiMgaXNsYW5kcyAgICAgICAgQXJlYXMgb2YgdGhlIFdvcmxkJ3MgTWFqb3INCiMgICAgICAgICAgICAgICAgTGFuZG1hc3Nlcw0KIyBsZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgbGggICAgICAgICAgICAgTHV0ZWluaXppbmcgSG9ybW9uZSBpbiBCbG9vZA0KIyAgICAgICAgICAgICAgICBTYW1wbGVzDQojIGxvbmdsZXkgICAgICAgIExvbmdsZXkncyBFY29ub21pYyBSZWdyZXNzaW9uDQojICAgICAgICAgICAgICAgIERhdGENCiMgbHlueCAgICAgICAgICAgQW5udWFsIENhbmFkaWFuIEx5bnggdHJhcHBpbmdzDQojICAgICAgICAgICAgICAgIDE4MjEtMTkzNA0KIyBtZGVhdGhzIChVS0x1bmdEZWF0aHMpDQojICAgICAgICAgICAgICAgIE1vbnRobHkgRGVhdGhzIGZyb20gTHVuZw0KIyAgICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCiMgbW9ybGV5ICAgICAgICAgTWljaGVsc29uIFNwZWVkIG9mIExpZ2h0IERhdGENCiMgbXRjYXJzICAgICAgICAgTW90b3IgVHJlbmQgQ2FyIFJvYWQgVGVzdHMNCiMgbmh0ZW1wICAgICAgICAgQXZlcmFnZSBZZWFybHkgVGVtcGVyYXR1cmVzIGluDQojICAgICAgICAgICAgICAgIE5ldyBIYXZlbg0KIyBub3R0ZW0gICAgICAgICBBdmVyYWdlIE1vbnRobHkgVGVtcGVyYXR1cmVzDQojICAgICAgICAgICAgICAgIGF0IE5vdHRpbmdoYW0sIDE5MjAtMTkzOQ0KIyBucGsgICAgICAgICAgICBDbGFzc2ljYWwgTiwgUCwgSyBGYWN0b3JpYWwNCiMgICAgICAgICAgICAgICAgRXhwZXJpbWVudA0KIyBvY2N1cGF0aW9uYWxTdGF0dXMNCiMgICAgICAgICAgICAgICAgT2NjdXBhdGlvbmFsIFN0YXR1cyBvZiBGYXRoZXJzDQojICAgICAgICAgICAgICAgIGFuZCB0aGVpciBTb25zDQojIHByZWNpcCAgICAgICAgIEFubnVhbCBQcmVjaXBpdGF0aW9uIGluIFVTDQojICAgICAgICAgICAgICAgIENpdGllcw0KIyBwcmVzaWRlbnRzICAgICBRdWFydGVybHkgQXBwcm92YWwgUmF0aW5ncyBvZg0KIyAgICAgICAgICAgICAgICBVUyBQcmVzaWRlbnRzDQojIHByZXNzdXJlICAgICAgIFZhcG9yIFByZXNzdXJlIG9mIE1lcmN1cnkgYXMgYQ0KIyAgICAgICAgICAgICAgICBGdW5jdGlvbiBvZiBUZW1wZXJhdHVyZQ0KIyBxdWFrZXMgICAgICAgICBMb2NhdGlvbnMgb2YgRWFydGhxdWFrZXMgb2ZmDQojICAgICAgICAgICAgICAgIEZpamkNCiMgcmFuZHUgICAgICAgICAgUmFuZG9tIE51bWJlcnMgZnJvbQ0KIyAgICAgICAgICAgICAgICBDb25ncnVlbnRpYWwgR2VuZXJhdG9yIFJBTkRVDQojIHJpdmVycyAgICAgICAgIExlbmd0aHMgb2YgTWFqb3IgTm9ydGgNCiMgICAgICAgICAgICAgICAgQW1lcmljYW4gUml2ZXJzDQojIHJvY2sgICAgICAgICAgIE1lYXN1cmVtZW50cyBvbiBQZXRyb2xldW0gUm9jaw0KIyAgICAgICAgICAgICAgICBTYW1wbGVzDQojIHNsZWVwICAgICAgICAgIFN0dWRlbnQncyBTbGVlcCBEYXRhDQojIHN0YWNrLmxvc3MgKHN0YWNrbG9zcykNCiMgICAgICAgICAgICAgICAgQnJvd25sZWUncyBTdGFjayBMb3NzIFBsYW50DQojICAgICAgICAgICAgICAgIERhdGENCiMgc3RhY2sueCAoc3RhY2tsb3NzKQ0KIyAgICAgICAgICAgICAgICBCcm93bmxlZSdzIFN0YWNrIExvc3MgUGxhbnQNCiMgICAgICAgICAgICAgICAgRGF0YQ0KIyBzdGFja2xvc3MgICAgICBCcm93bmxlZSdzIFN0YWNrIExvc3MgUGxhbnQNCiMgICAgICAgICAgICAgICAgRGF0YQ0KIyBzdGF0ZS5hYmIgKHN0YXRlKQ0KIyAgICAgICAgICAgICAgICBVUyBTdGF0ZSBGYWN0cyBhbmQgRmlndXJlcw0KIyBzdGF0ZS5hcmVhIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUuY2VudGVyIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUuZGl2aXNpb24gKHN0YXRlKQ0KIyAgICAgICAgICAgICAgICBVUyBTdGF0ZSBGYWN0cyBhbmQgRmlndXJlcw0KIyBzdGF0ZS5uYW1lIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUucmVnaW9uIChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3RhdGUueDc3IChzdGF0ZSkNCiMgICAgICAgICAgICAgICAgVVMgU3RhdGUgRmFjdHMgYW5kIEZpZ3VyZXMNCiMgc3Vuc3BvdC5tb250aA0KIyAgICAgICAgICAgICAgICBNb250aGx5IFN1bnNwb3QgRGF0YSwgZnJvbQ0KIyAgICAgICAgICAgICAgICAxNzQ5IHRvICJQcmVzZW50Ig0KIyBzdW5zcG90LnllYXIgICBZZWFybHkgU3Vuc3BvdCBEYXRhLCAxNzAwLTE5ODgNCiMgc3Vuc3BvdHMgICAgICAgTW9udGhseSBTdW5zcG90IE51bWJlcnMsDQojICAgICAgICAgICAgICAgIDE3NDktMTk4Mw0KIyBzd2lzcyAgICAgICAgICBTd2lzcyBGZXJ0aWxpdHkgYW5kDQojICAgICAgICAgICAgICAgIFNvY2lvZWNvbm9taWMgSW5kaWNhdG9ycw0KIyAgICAgICAgICAgICAgICAoMTg4OCkgRGF0YQ0KIyB0cmVlcmluZyAgICAgICBZZWFybHkgVHJlZXJpbmcgRGF0YSwNCiMgICAgICAgICAgICAgICAgLTYwMDAtMTk3OQ0KIyB0cmVlcyAgICAgICAgICBHaXJ0aCwgSGVpZ2h0IGFuZCBWb2x1bWUgZm9yDQojICAgICAgICAgICAgICAgIEJsYWNrIENoZXJyeSBUcmVlcw0KIyB1c3BvcCAgICAgICAgICBQb3B1bGF0aW9ucyBSZWNvcmRlZCBieSB0aGUgVVMNCiMgICAgICAgICAgICAgICAgQ2Vuc3VzDQojIHZvbGNhbm8gICAgICAgIFRvcG9ncmFwaGljIEluZm9ybWF0aW9uIG9uDQojICAgICAgICAgICAgICAgIEF1Y2tsYW5kJ3MgTWF1bmdhIFdoYXUgVm9sY2Fubw0KIyB3YXJwYnJlYWtzICAgICBUaGUgTnVtYmVyIG9mIEJyZWFrcyBpbiBZYXJuDQojICAgICAgICAgICAgICAgIGR1cmluZyBXZWF2aW5nDQojIHdvbWVuICAgICAgICAgIEF2ZXJhZ2UgSGVpZ2h0cyBhbmQgV2VpZ2h0cw0KIyAgICAgICAgICAgICAgICBmb3IgQW1lcmljYW4gV29tZW4NCg0KYGBge3J9DQpEYXRhIHNldHMgaW4gcGFja2FnZSCirqLnZHBseXKirj8/Og0KYGBgICANCiMgYmFuZF9pbnN0cnVtZW50cw0KIyAgICAgICAgICAgICAgICBCYW5kIG1lbWJlcnNoaXANCiMgYmFuZF9pbnN0cnVtZW50czINCiMgICAgICAgICAgICAgICAgQmFuZCBtZW1iZXJzaGlwDQogYmFuZF9tZW1iZXJzICAgQmFuZCBtZW1iZXJzaGlwDQogbmFzYSAgICAgICAgICAgTkFTQSBzcGF0aW8tdGVtcG9yYWwgZGF0YQ0KIHN0YXJ3YXJzICAgICAgIFN0YXJ3YXJzIGNoYXJhY3RlcnMNCiBzdG9ybXMgICAgICAgICBTdG9ybSB0cmFja3MgZGF0YQ0KIERhdGEgc2V0cyBpbiBwYWNrYWdlIKKuoudnZ21hcKKuPz86DQogY3JpbWUgICAgICAgICAgQ3JpbWUgZGF0YQ0KIGhhZGxleSAgICAgICAgIEhpZ2hseSB1bm9mZmljaWFsIGdncGxvdDINCiAgICAgICAgICAgICAgICBpbWFnZQ0KIHdpbmQgICAgICAgICAgIFdpbmQgZGF0YSBmcm9tIEh1cnJpY2FuZSBJa2UNCiB6aXBzICAgICAgICAgICBaaXAgY29kZSBkYXRhIGZvciB0aGUgR3JlYXRlcg0KICAgICAgICAgICAgICAgIEhvdXN0b24gTWV0cm9wb2xpdGFuIEFyZWEgZnJvbQ0KICAgICAgICAgICAgICAgIHRoZSAyMDAwIGNlbnN1cw0KDQoNCmBgYHtyfSAgICAgICAgICAgICAgIA0KRGF0YSBzZXRzIGluIHBhY2thZ2Ugoq6i52dncGxvdDKirj8/Og0KICANCmBgYCAgDQojIGRpYW1vbmRzICAgICAgIFByaWNlcyBvZiA1MCwwMDAgcm91bmQgY3V0DQojICAgICAgICAgICAgICAgIGRpYW1vbmRzDQojIGVjb25vbWljcyAgICAgIFVTIGVjb25vbWljIHRpbWUgc2VyaWVzDQojIGVjb25vbWljc19sb25nDQogICAgICAgICAgICAgICBVUyBlY29ub21pYyB0aW1lIHNlcmllcw0KZmFpdGhmdWxkICAgICAgMmQgZGVuc2l0eSBlc3RpbWF0ZSBvZiBPbGQNCiAgICAgICAgICAgICAgIEZhaXRoZnVsIGRhdGENCmx1dl9jb2xvdXJzICAgICdjb2xvcnMoKScgaW4gTHV2IHNwYWNlDQptaWR3ZXN0ICAgICAgICBNaWR3ZXN0IGRlbW9ncmFwaGljcw0KbXBnICAgICAgICAgICAgRnVlbCBlY29ub215IGRhdGEgZnJvbSAxOTk5DQogICAgICAgICAgICAgICBhbmQgMjAwOCBmb3IgMzggcG9wdWxhciBtb2RlbHMNCiAgICAgICAgICAgICAgIG9mIGNhcg0KbXNsZWVwICAgICAgICAgQW4gdXBkYXRlZCBhbmQgZXhwYW5kZWQNCiAgICAgICAgICAgICAgIHZlcnNpb24gb2YgdGhlIG1hbW1hbHMgc2xlZXANCiAgICAgICAgICAgICAgIGRhdGFzZXQNCnByZXNpZGVudGlhbCAgIFRlcm1zIG9mIDExIHByZXNpZGVudHMgZnJvbQ0KICAgICAgICAgICAgICAgRWlzZW5ob3dlciB0byBPYmFtYQ0Kc2VhbHMgICAgICAgICAgVmVjdG9yIGZpZWxkIG9mIHNlYWwgbW92ZW1lbnRzDQp0eGhvdXNpbmcgICAgICBIb3VzaW5nIHNhbGVzIGluIFRYDQpEYXRhIHNldHMgaW4gcGFja2FnZSCirqLnZ29vZ2xlVmlzoq4/PzoNCkFuZHJldyAgICAgICAgIEh1cnJpY2FuZSBBbmRyZXc6IGdvb2dsZVZpcw0KICAgICAgICAgICAgICAgZXhhbXBsZSBkYXRhIHNldA0KQ2Fpcm8gICAgICAgICAgRGFpbHkgdGVtcGVyYXR1cmUgZGF0YSBmb3INCiAgICAgICAgICAgICAgIENhaXJvDQpDaXR5UG9wdWxhcml0eQ0KICAgICAgICAgICAgICAgQ2l0eVBvcHVsYXJpdHk6IGdvb2dsZVZpcw0KICAgICAgICAgICAgICAgZXhhbXBsZSBkYXRhIHNldA0KRXhwb3J0cyAgICAgICAgRXhwb3J0czogZ29vZ2xlVmlzIGV4YW1wbGUNCiAgICAgICAgICAgICAgIGRhdGEgc2V0DQpGcnVpdHMgICAgICAgICBGcnVpdHM6IGdvb2dsZVZpcyBleGFtcGxlIGRhdGENCiAgICAgICAgICAgICAgIHNldA0KT3BlbkNsb3NlICAgICAgT3BlbkNsb3NlOiBnb29nbGVWaXMgZXhhbXBsZQ0KICAgICAgICAgICAgICAgZGF0YSBzZXQNClBvcHVsYXRpb24gICAgIFBvcHVsYXRpb246IGdvb2dsZVZpcyBleGFtcGxlDQogICAgICAgICAgICAgICBkYXRhIHNldA0KUmVnaW9ucyAgICAgICAgUmVnaW9uczogZ29vZ2xlVmlzIGV4YW1wbGUNCiAgICAgICAgICAgICAgIGRhdGEgc2V0DQpTdG9jayAgICAgICAgICBTdG9jazogZ29vZ2xlVmlzIGV4YW1wbGUgZGF0YQ0KICAgICAgICAgICAgICAgc2V0DQpkaW5vICAgICAgICAgICBEaW5vc2F1ciBkYXRhDQoNCmBgYHtyfQ0KRGF0YSBzZXRzIGluIHBhY2thZ2Ugoq6i52hmbGlnaHRzoq4/PzoNCmhmbGlnaHRzICAgICAgIEhvdXN0b24gZmxpZ2h0cyBkYXRhDQpgYGANCg0KYGBge3J9DQpEYXRhIHNldHMgaW4gcGFja2FnZSCirqLnTUFTU6KuPz86DQpgYGANCiMgQWlkczIgICAgICAgICAgQXVzdHJhbGlhbiBBSURTIFN1cnZpdmFsIERhdGENCiMgQW5pbWFscyAgICAgICAgQnJhaW4gYW5kIEJvZHkgV2VpZ2h0cyBmb3IgMjgNCiMgICAgICAgICAgICAgICBTcGVjaWVzDQojIEJvc3RvbiAgICAgICAgIEhvdXNpbmcgVmFsdWVzIGluIFN1YnVyYnMgb2YNCiMgICAgICAgICAgICAgICBCb3N0b24NCkNhcnM5MyAgICAgICAgIERhdGEgZnJvbSA5MyBDYXJzIG9uIFNhbGUgaW4NCiAgICAgICAgICAgICAgIHRoZSBVU0EgaW4gMTk5Mw0KQ3VzaGluZ3MgICAgICAgRGlhZ25vc3RpYyBUZXN0cyBvbiBQYXRpZW50cw0KICAgICAgICAgICAgICAgd2l0aCBDdXNoaW5nJ3MgU3luZHJvbWUNCkREVCAgICAgICAgICAgIEREVCBpbiBLYWxlDQpHQUd1cmluZSAgICAgICBMZXZlbCBvZiBHQUcgaW4gVXJpbmUgb2YNCiAgICAgICAgICAgICAgIENoaWxkcmVuDQpJbnN1cmFuY2UgICAgICBOdW1iZXJzIG9mIENhciBJbnN1cmFuY2UNCiAgICAgICAgICAgICAgIGNsYWltcw0KTWVsYW5vbWEgICAgICAgU3Vydml2YWwgZnJvbSBNYWxpZ25hbnQNCiAgICAgICAgICAgICAgIE1lbGFub21hDQpPTUUgICAgICAgICAgICBUZXN0cyBvZiBBdWRpdG9yeSBQZXJjZXB0aW9uDQogICAgICAgICAgICAgICBpbiBDaGlsZHJlbiB3aXRoIE9NRQ0KUGltYS50ZSAgICAgICAgRGlhYmV0ZXMgaW4gUGltYSBJbmRpYW4gV29tZW4NClBpbWEudHIgICAgICAgIERpYWJldGVzIGluIFBpbWEgSW5kaWFuIFdvbWVuDQpQaW1hLnRyMiAgICAgICBEaWFiZXRlcyBpbiBQaW1hIEluZGlhbiBXb21lbg0KUmFiYml0ICAgICAgICAgQmxvb2QgUHJlc3N1cmUgaW4gUmFiYml0cw0KUnViYmVyICAgICAgICAgQWNjZWxlcmF0ZWQgVGVzdGluZyBvZiBUeXJlDQogICAgICAgICAgICAgICBSdWJiZXINClNQNTAwICAgICAgICAgIFJldHVybnMgb2YgdGhlIFN0YW5kYXJkIGFuZA0KICAgICAgICAgICAgICAgUG9vcnMgNTAwDQpTaXRrYSAgICAgICAgICBHcm93dGggQ3VydmVzIGZvciBTaXRrYSBTcHJ1Y2UNCiAgICAgICAgICAgICAgIFRyZWVzIGluIDE5ODgNClNpdGthODkgICAgICAgIEdyb3d0aCBDdXJ2ZXMgZm9yIFNpdGthIFNwcnVjZQ0KICAgICAgICAgICAgICAgVHJlZXMgaW4gMTk4OQ0KU2t5ZSAgICAgICAgICAgQUZNIENvbXBvc2l0aW9ucyBvZiBBcGh5cmljDQogICAgICAgICAgICAgICBTa3llIExhdmFzDQpUcmFmZmljICAgICAgICBFZmZlY3Qgb2YgU3dlZGlzaCBTcGVlZCBMaW1pdHMNCiAgICAgICAgICAgICAgIG9uIEFjY2lkZW50cw0KVVNjZXJlYWwgICAgICAgTnV0cml0aW9uYWwgYW5kIE1hcmtldGluZw0KICAgICAgICAgICAgICAgSW5mb3JtYXRpb24gb24gVVMgQ2VyZWFscw0KVVNjcmltZSAgICAgICAgVGhlIEVmZmVjdCBvZiBQdW5pc2htZW50DQogICAgICAgICAgICAgICBSZWdpbWVzIG9uIENyaW1lIFJhdGVzDQpWQSAgICAgICAgICAgICBWZXRlcmFuJ3MgQWRtaW5pc3RyYXRpb24gTHVuZw0KICAgICAgICAgICAgICAgQ2FuY2VyIFRyaWFsDQphYmJleSAgICAgICAgICBEZXRlcm1pbmF0aW9ucyBvZiBOaWNrZWwNCiAgICAgICAgICAgICAgIENvbnRlbnQNCmFjY2RlYXRocyAgICAgIEFjY2lkZW50YWwgRGVhdGhzIGluIHRoZSBVUw0KICAgICAgICAgICAgICAgMTk3My0xOTc4DQphbm9yZXhpYSAgICAgICBBbm9yZXhpYSBEYXRhIG9uIFdlaWdodCBDaGFuZ2UNCmJhY3RlcmlhICAgICAgIFByZXNlbmNlIG9mIEJhY3RlcmlhIGFmdGVyDQogICAgICAgICAgICAgICBEcnVnIFRyZWF0bWVudHMNCmJlYXYxICAgICAgICAgIEJvZHkgVGVtcGVyYXR1cmUgU2VyaWVzIG9mDQogICAgICAgICAgICAgICBCZWF2ZXIgMQ0KYmVhdjIgICAgICAgICAgQm9keSBUZW1wZXJhdHVyZSBTZXJpZXMgb2YNCiAgICAgICAgICAgICAgIEJlYXZlciAyDQpiaW9wc3kgICAgICAgICBCaW9wc3kgRGF0YSBvbiBCcmVhc3QgQ2FuY2VyDQogICAgICAgICAgICAgICBQYXRpZW50cw0KYmlydGh3dCAgICAgICAgUmlzayBGYWN0b3JzIEFzc29jaWF0ZWQgd2l0aA0KICAgICAgICAgICAgICAgTG93IEluZmFudCBCaXJ0aCBXZWlnaHQNCmNhYmJhZ2VzICAgICAgIERhdGEgZnJvbSBhIGNhYmJhZ2UgZmllbGQNCiAgICAgICAgICAgICAgIHRyaWFsDQpjYWl0aCAgICAgICAgICBDb2xvdXJzIG9mIEV5ZXMgYW5kIEhhaXIgb2YNCiAgICAgICAgICAgICAgIFBlb3BsZSBpbiBDYWl0aG5lc3MNCmNhdHMgICAgICAgICAgIEFuYXRvbWljYWwgRGF0YSBmcm9tIERvbWVzdGljDQogICAgICAgICAgICAgICBDYXRzDQpjZW1lbnQgICAgICAgICBIZWF0IEV2b2x2ZWQgYnkgU2V0dGluZw0KICAgICAgICAgICAgICAgQ2VtZW50cw0KY2hlbSAgICAgICAgICAgQ29wcGVyIGluIFdob2xlbWVhbCBGbG91cg0KY29vcCAgICAgICAgICAgQ28tb3BlcmF0aXZlIFRyaWFsIGluDQogICAgICAgICAgICAgICBBbmFseXRpY2FsIENoZW1pc3RyeQ0KY3B1cyAgICAgICAgICAgUGVyZm9ybWFuY2Ugb2YgQ29tcHV0ZXIgQ1BVcw0KY3JhYnMgICAgICAgICAgTW9ycGhvbG9naWNhbCBNZWFzdXJlbWVudHMgb24NCiAgICAgICAgICAgICAgIExlcHRvZ3JhcHN1cyBDcmFicw0KZGVhdGhzICAgICAgICAgTW9udGhseSBEZWF0aHMgZnJvbSBMdW5nDQogICAgICAgICAgICAgICBEaXNlYXNlcyBpbiB0aGUgVUsNCmRyaXZlcnMgICAgICAgIERlYXRocyBvZiBDYXIgRHJpdmVycyBpbiBHcmVhdA0KICAgICAgICAgICAgICAgQnJpdGFpbiAxOTY5LTg0DQplYWdsZXMgICAgICAgICBGb3JhZ2luZyBFY29sb2d5IG9mIEJhbGQNCiAgICAgICAgICAgICAgIEVhZ2xlcw0KZXBpbCAgICAgICAgICAgU2VpenVyZSBDb3VudHMgZm9yIEVwaWxlcHRpY3MNCmZhcm1zICAgICAgICAgIEVjb2xvZ2ljYWwgRmFjdG9ycyBpbiBGYXJtDQogICAgICAgICAgICAgICBNYW5hZ2VtZW50DQpmZ2wgICAgICAgICAgICBNZWFzdXJlbWVudHMgb2YgRm9yZW5zaWMgR2xhc3MNCiAgICAgICAgICAgICAgIEZyYWdtZW50cw0KZm9yYmVzICAgICAgICAgRm9yYmVzJyBEYXRhIG9uIEJvaWxpbmcgUG9pbnRzDQogICAgICAgICAgICAgICBpbiB0aGUgQWxwcw0KZ2FsYXhpZXMgICAgICAgVmVsb2NpdGllcyBmb3IgODIgR2FsYXhpZXMNCmdlaGFuICAgICAgICAgIFJlbWlzc2lvbiBUaW1lcyBvZiBMZXVrYWVtaWENCiAgICAgICAgICAgICAgIFBhdGllbnRzDQpnZW5vdHlwZSAgICAgICBSYXQgR2Vub3R5cGUgRGF0YQ0KZ2V5c2VyICAgICAgICAgT2xkIEZhaXRoZnVsIEdleXNlciBEYXRhDQpnaWxnYWlzICAgICAgICBMaW5lIFRyYW5zZWN0IG9mIFNvaWwgaW4NCiAgICAgICAgICAgICAgIEdpbGdhaSBUZXJyaXRvcnkNCmhpbGxzICAgICAgICAgIFJlY29yZCBUaW1lcyBpbiBTY290dGlzaCBIaWxsDQogICAgICAgICAgICAgICBSYWNlcw0KaG91c2luZyAgICAgICAgRnJlcXVlbmN5IFRhYmxlIGZyb20gYQ0KICAgICAgICAgICAgICAgQ29wZW5oYWdlbiBIb3VzaW5nIENvbmRpdGlvbnMNCiAgICAgICAgICAgICAgIFN1cnZleQ0KaW1tZXIgICAgICAgICAgWWllbGRzIGZyb20gYSBCYXJsZXkgRmllbGQNCiAgICAgICAgICAgICAgIFRyaWFsDQpsZXVrICAgICAgICAgICBTdXJ2aXZhbCBUaW1lcyBhbmQgV2hpdGUgQmxvb2QNCiAgICAgICAgICAgICAgIENvdW50cyBmb3IgTGV1a2FlbWlhIFBhdGllbnRzDQptYW1tYWxzICAgICAgICBCcmFpbiBhbmQgQm9keSBXZWlnaHRzIGZvciA2Mg0KICAgICAgICAgICAgICAgU3BlY2llcyBvZiBMYW5kIE1hbW1hbHMNCm1jeWNsZSAgICAgICAgIERhdGEgZnJvbSBhIFNpbXVsYXRlZA0KICAgICAgICAgICAgICAgTW90b3JjeWNsZSBBY2NpZGVudA0KbWVuYXJjaGUgICAgICAgQWdlIG9mIE1lbmFyY2hlIGluIFdhcnNhdw0KbWljaGVsc29uICAgICAgTWljaGVsc29uJ3MgU3BlZWQgb2YgTGlnaHQNCiAgICAgICAgICAgICAgIERhdGENCm1pbm4zOCAgICAgICAgIE1pbm5lc290YSBIaWdoIFNjaG9vbA0KICAgICAgICAgICAgICAgR3JhZHVhdGVzIG9mIDE5MzgNCm1vdG9ycyAgICAgICAgIEFjY2VsZXJhdGVkIExpZmUgVGVzdGluZyBvZg0KICAgICAgICAgICAgICAgTW90b3JldHRlcw0KbXVzY2xlICAgICAgICAgRWZmZWN0IG9mIENhbGNpdW0gQ2hsb3JpZGUgb24NCiAgICAgICAgICAgICAgIE11c2NsZSBDb250cmFjdGlvbiBpbiBSYXQNCiAgICAgICAgICAgICAgIEhlYXJ0cw0KbmV3Y29tYiAgICAgICAgTmV3Y29tYidzIE1lYXN1cmVtZW50cyBvZiB0aGUNCiAgICAgICAgICAgICAgIFBhc3NhZ2UgVGltZSBvZiBMaWdodA0KbmxzY2hvb2xzICAgICAgRWlnaHRoLUdyYWRlIFB1cGlscyBpbiB0aGUNCiAgICAgICAgICAgICAgIE5ldGhlcmxhbmRzDQpucGsgICAgICAgICAgICBDbGFzc2ljYWwgTiwgUCwgSyBGYWN0b3JpYWwNCiAgICAgICAgICAgICAgIEV4cGVyaW1lbnQNCm5wcjEgICAgICAgICAgIFVTIE5hdmFsIFBldHJvbGV1bSBSZXNlcnZlIE5vLg0KICAgICAgICAgICAgICAgMSBkYXRhDQpvYXRzICAgICAgICAgICBEYXRhIGZyb20gYW4gT2F0cyBGaWVsZCBUcmlhbA0KcGFpbnRlcnMgICAgICAgVGhlIFBhaW50ZXIncyBEYXRhIG9mIGRlIFBpbGVzDQpwZXRyb2wgICAgICAgICBOLiBMLiBQcmF0ZXIncyBQZXRyb2wgUmVmaW5lcnkNCiAgICAgICAgICAgICAgIERhdGENCnBob25lcyAgICAgICAgIEJlbGdpdW0gUGhvbmUgQ2FsbHMgMTk1MC0xOTczDQpxdWluZSAgICAgICAgICBBYnNlbnRlZWlzbSBmcm9tIFNjaG9vbCBpbg0KICAgICAgICAgICAgICAgUnVyYWwgTmV3IFNvdXRoIFdhbGVzDQpyb2FkICAgICAgICAgICBSb2FkIEFjY2lkZW50IERlYXRocyBpbiBVUw0KICAgICAgICAgICAgICAgU3RhdGVzDQpyb3RpZmVyICAgICAgICBOdW1iZXJzIG9mIFJvdGlmZXJzIGJ5IEZsdWlkDQogICAgICAgICAgICAgICBEZW5zaXR5DQpzaGlwcyAgICAgICAgICBTaGlwcyBEYW1hZ2UgRGF0YQ0Kc2hvZXMgICAgICAgICAgU2hvZSB3ZWFyIGRhdGEgb2YgQm94LCBIdW50ZXINCiAgICAgICAgICAgICAgIGFuZCBIdW50ZXINCnNocmltcCAgICAgICAgIFBlcmNlbnRhZ2Ugb2YgU2hyaW1wIGluIFNocmltcA0KICAgICAgICAgICAgICAgQ29ja3RhaWwNCnNodXR0bGUgICAgICAgIFNwYWNlIFNodXR0bGUgQXV0b2xhbmRlcg0KICAgICAgICAgICAgICAgUHJvYmxlbQ0Kc25haWxzICAgICAgICAgU25haWwgTW9ydGFsaXR5IERhdGENCnN0ZWFtICAgICAgICAgIFRoZSBTYXR1cmF0ZWQgU3RlYW0gUHJlc3N1cmUNCiAgICAgICAgICAgICAgIERhdGENCnN0b3JtZXIgICAgICAgIFRoZSBTdG9ybWVyIFZpc2NvbWV0ZXIgRGF0YQ0Kc3VydmV5ICAgICAgICAgU3R1ZGVudCBTdXJ2ZXkgRGF0YQ0Kc3ludGgudGUgICAgICAgU3ludGhldGljIENsYXNzaWZpY2F0aW9uDQogICAgICAgICAgICAgICBQcm9ibGVtDQpzeW50aC50ciAgICAgICBTeW50aGV0aWMgQ2xhc3NpZmljYXRpb24NCiAgICAgICAgICAgICAgIFByb2JsZW0NCnRvcG8gICAgICAgICAgIFNwYXRpYWwgVG9wb2dyYXBoaWMgRGF0YQ0Kd2FkZXJzICAgICAgICAgQ291bnRzIG9mIFdhZGVycyBhdCAxNSBTaXRlcw0KICAgICAgICAgICAgICAgaW4gU291dGggQWZyaWNhDQp3aGl0ZXNpZGUgICAgICBIb3VzZSBJbnN1bGF0aW9uOiBXaGl0ZXNpZGUncw0KICAgICAgICAgICAgICAgRGF0YQ0Kd3Rsb3NzICAgICAgICAgV2VpZ2h0IExvc3MgRGF0YSBmcm9tIGFuIE9iZXNlDQogICAgICAgICAgICAgICBQYXRpZW50DQpEYXRhIHNldHMgaW4gcGFja2FnZSCirqLncGx5cqKuPz86DQpiYXNlYmFsbCAgICAgICBZZWFybHkgYmF0dGluZyByZWNvcmRzIGZvciBhbGwNCiAgICAgICAgICAgICAgIG1ham9yIGxlYWd1ZSBiYXNlYmFsbCBwbGF5ZXJzDQpvem9uZSAgICAgICAgICBNb250aGx5IG96b25lIG1lYXN1cmVtZW50cw0KICAgICAgICAgICAgICAgb3ZlciBDZW50cmFsIEFtZXJpY2EuDQpgYGB7cn0gICAgICAgICAgICAgICANCkRhdGEgc2V0cyBpbiBwYWNrYWdlIKKuoudyZXNoYXBloq4/PzoNCmZyZW5jaF9mcmllcyAgIFNlbnNvcnkgZGF0YSBmcm9tIGEgZnJlbmNoDQogICAgICAgICAgICAgICBmcmllcyBleHBlcmltZW50DQpzbWl0aHMgICAgICAgICBEZW1vIGRhdGEgZGVzY3JpYmluZyB0aGUNCiAgICAgICAgICAgICAgIFNtaXRocw0KdGlwcyAgICAgICAgICAgVGlwcGluZyBkYXRhDQpgYGANCg0KYGBge3J9DQpEYXRhIHNldHMgaW4gcGFja2FnZSCirqLnUkdBoq4/PzoNCmdhICAgICAgICAgICAgIExpc3RzIGFsbCBjb2x1bW5zIGZvciBhIEdvb2dsZQ0KICAgICAgICAgICAgICAgQW5hbHl0aWNzIGNvcmUgcmVwb3J0IHR5cGUNCmBgYA0KDQpgYGB7cn0NCkRhdGEgc2V0cyBpbiBwYWNrYWdlIKKuoudzdHJpbmdyoq4/PzoNCmZydWl0ICAgICAgICAgIFNhbXBsZSBjaGFyYWN0ZXIgdmVjdG9ycyBmb3INCiAgICAgICAgICAgICAgIHByYWN0aWNpbmcgc3RyaW5nDQogICAgICAgICAgICAgICBtYW5pcHVsYXRpb25zLg0Kc2VudGVuY2VzICAgICAgU2FtcGxlIGNoYXJhY3RlciB2ZWN0b3JzIGZvcg0KICAgICAgICAgICAgICAgcHJhY3RpY2luZyBzdHJpbmcNCiAgICAgICAgICAgICAgIG1hbmlwdWxhdGlvbnMuDQp3b3JkcyAgICAgICAgICBTYW1wbGUgY2hhcmFjdGVyIHZlY3RvcnMgZm9yDQogICAgICAgICAgICAgICBwcmFjdGljaW5nIHN0cmluZw0KICAgICAgICAgICAgICAgbWFuaXB1bGF0aW9ucy4NCmBgYA0KDQpgYGB7cn0NCkRhdGEgc2V0cyBpbiBwYWNrYWdlIKKuoud3b3JkY2xvdWSirj8/Og0KU09UVSAgICAgICAgICAgVW5pdGVkIFN0YXRlcyBTdGF0ZSBvZiB0aGUNCiAgICAgICAgICAgICAgIFVuaW9uIEFkZHJlc3NlcyAoMjAxMCBhbmQNCiAgICAgICAgICAgICAgIDIwMTEpDQpVc2Ugoq6i52RhdGEocGFja2FnZSA9IC5wYWNrYWdlcyhhbGwuYXZhaWxhYmxlID0gVFJVRSkpoq4/Pw0KdG8gbGlzdCB0aGUgZGF0YSBzZXRzIGluIGFsbCAqYXZhaWxhYmxlKiBwYWNrYWdlcy4NCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuDQo=