#load the packages 
library(tidyverse)
library(openintro)
kobe_basket
## # A tibble: 133 × 6
##    vs     game quarter time  description                                   shot 
##    <fct> <int> <fct>   <fct> <fct>                                         <chr>
##  1 ORL       1 1       9:47  Kobe Bryant makes 4-foot two point shot       H    
##  2 ORL       1 1       9:07  Kobe Bryant misses jumper                     M    
##  3 ORL       1 1       8:11  Kobe Bryant misses 7-foot jumper              M    
##  4 ORL       1 1       7:41  Kobe Bryant makes 16-foot jumper (Derek Fish… H    
##  5 ORL       1 1       7:03  Kobe Bryant makes driving layup               H    
##  6 ORL       1 1       6:01  Kobe Bryant misses jumper                     M    
##  7 ORL       1 1       4:07  Kobe Bryant misses 12-foot jumper             M    
##  8 ORL       1 1       0:52  Kobe Bryant misses 19-foot jumper             M    
##  9 ORL       1 1       0:00  Kobe Bryant misses layup                      M    
## 10 ORL       1 2       6:35  Kobe Bryant makes jumper                      H    
## # … with 123 more rows
glimpse(kobe_basket)
## Rows: 133
## Columns: 6
## $ vs          <fct> ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL, ORL…
## $ game        <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ quarter     <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3…
## $ time        <fct> 9:47, 9:07, 8:11, 7:41, 7:03, 6:01, 4:07, 0:52, 0:00, 6:35…
## $ description <fct> Kobe Bryant makes 4-foot two point shot, Kobe Bryant misse…
## $ shot        <chr> "H", "M", "M", "H", "H", "M", "M", "M", "M", "H", "H", "H"…

Exercise 1-Data

Q. what does the streak of 1 mean, how many streaks of hits and misses are in the streak of 1 and 0

1.Utilizing calc_sreak to count streak lengths from 133 shots.

2.Then information of the count will be stored in Kobe_streak,as the length variable.

Kobe_streak<- calc_streak(kobe_basket$shot)
ggplot(data=Kobe_streak,aes(x=length))+geom_bar()

Exercise 2- Summary

Describe the distribution of Kobe’s streak lengths from the 2009 NBA finals. What was his typical streak length? How long was his longest streak of baskets? Make sure to include the accompanying plot in your answer.

1.The best plot to visualize and these streaks is a box plot.

boxplot(Kobe_streak, ylab="Basket streaks",main="Kobe's 2009 streak lengths frim 2009 " )

2.Typical streak length, longest streak are found in the 5 number summary of (mean and max/ 0,4)

summary(Kobe_streak)
##      length      
##  Min.   :0.0000  
##  1st Qu.:0.0000  
##  Median :0.0000  
##  Mean   :0.7632  
##  3rd Qu.:1.0000  
##  Max.   :4.0000

Exercise 3-Simulations in R (Heads, Tails)

In your simulation of flipping the unfair coin 100 times, how many flips came up heads? Include the code for sampling the unfair coin in your response. Since the markdown file will run the code, and generate a new sample each time you Knit it, you should also “set a seed” before you sample. Read more about setting a seed below.

1.Coin_outcomes gives us heads or tails while sample size will allow us to get one outcome , however replace true allows equal chance at both by replacing sample ar each pick.

  1. Vectors of the outcomes in each draw will then save its self to sim_fair_coin, this then can be viewed in a table.(100 draws of flips will be saved there)
coin_outcomes <- c("heads", "tails")
sample(coin_outcomes, size = 1, replace = TRUE)
## [1] "tails"
sim_fair_coin <- sample(coin_outcomes, size = 100, replace = TRUE)
sim_fair_coin
##   [1] "tails" "heads" "heads" "heads" "tails" "tails" "tails" "tails" "heads"
##  [10] "tails" "heads" "heads" "tails" "heads" "tails" "heads" "tails" "heads"
##  [19] "tails" "heads" "heads" "tails" "tails" "heads" "heads" "tails" "heads"
##  [28] "tails" "heads" "heads" "tails" "heads" "tails" "heads" "heads" "heads"
##  [37] "heads" "tails" "tails" "heads" "tails" "tails" "tails" "tails" "heads"
##  [46] "heads" "tails" "heads" "heads" "heads" "tails" "tails" "heads" "heads"
##  [55] "tails" "heads" "heads" "tails" "tails" "heads" "tails" "heads" "heads"
##  [64] "heads" "heads" "heads" "tails" "heads" "tails" "tails" "tails" "tails"
##  [73] "tails" "heads" "tails" "tails" "heads" "tails" "tails" "tails" "tails"
##  [82] "tails" "tails" "heads" "heads" "heads" "heads" "tails" "tails" "heads"
##  [91] "heads" "heads" "heads" "tails" "tails" "heads" "tails" "tails" "tails"
## [100] "tails"
table(sim_fair_coin)
## sim_fair_coin
## heads tails 
##    49    51

3.The natural probability can be altered in this case (H,T): 50/50 chance to 20/80. 4. At last the code will set.seed to ensure what ever was run last (probability) is what knits [45,55]

sim_unfair_coin <- sample(coin_outcomes, size = 100, replace = TRUE,prob =c(0.2, 0.8))
set.seed(122333)

Exercise 4- Simulating the Independent Shooter

  1. This code will simulate a shot in (Hit , Miss) of an independent baskeball player.

  2. For the shooter the probability will allign to 50/50. and results in the following.

shot_outcomes <- c("H", "M")
sim_basket <- sample(shot_outcomes, size = 1, replace = TRUE)
sim_basket<-sample(shot_outcomes, size=133,replace =TRUE)
sim_basket
##   [1] "H" "H" "M" "H" "M" "H" "H" "H" "H" "M" "H" "H" "H" "M" "H" "H" "H" "H"
##  [19] "H" "H" "H" "M" "H" "M" "M" "H" "H" "H" "H" "H" "M" "H" "H" "H" "M" "H"
##  [37] "H" "M" "H" "M" "M" "H" "M" "M" "H" "M" "M" "H" "M" "M" "H" "M" "H" "M"
##  [55] "M" "H" "M" "M" "M" "M" "H" "H" "H" "H" "H" "M" "H" "H" "M" "M" "M" "M"
##  [73] "H" "H" "H" "M" "M" "M" "M" "M" "M" "M" "H" "H" "H" "H" "M" "H" "M" "H"
##  [91] "H" "M" "M" "M" "M" "H" "M" "M" "M" "H" "M" "M" "M" "H" "H" "M" "H" "H"
## [109] "H" "M" "M" "M" "H" "M" "M" "M" "H" "M" "M" "H" "M" "M" "M" "M" "M" "H"
## [127] "H" "H" "M" "M" "M" "H" "M"
  1. After rewriting the code to an advantage of (45/55) the results will overwrite to the following. Note(its impprtant to set.seed store the simulations info for knitting)
sim_basket<- sample(shot_outcomes, size = 133, replace = TRUE,prob =c(0.45, 0.55))
set.seed(33344)
table(sim_basket)
## sim_basket
##  H  M 
## 67 66

Comparing Kobe Bryant to Independent Shooter

Exercise 5 - Computing Streaks of simulation

  1. calc_streak of the lengths os the simulations basket

  2. Data of the lengths calculation, then saved under sim_streak

sim_streak<- calc_streak(sim_basket)
ggplot(data=sim_streak,aes(x=length))+geom_bar()+ggtitle("Shooting streak of simulated independent shooter(p=.45/133 shots)")

Exercise 6 - Sim Streak discription

  1. Streak lengths as seen in the barplot reflects Right skewed distribution, similar to one that is seen in Kobe’s barplot, majotity is concentrated between (0-1).

  2. In focus from the bellow summary are,the mean which reflects the typical streak of the simulated shooter and the max which is the players longest streak of basket .

boxplot(sim_streak, ylab="Simulation basket streaks",main="Simulation streak lengths " )

summary(sim_streak)
##      length 
##  Min.   :0  
##  1st Qu.:0  
##  Median :1  
##  Mean   :1  
##  3rd Qu.:1  
##  Max.   :7

From the 133 shots Max( longest streak)=7 Min(Typical)=0

Exercise 7- Data Analysis

Q. If you were to run the simulation of the independent shooter a second time, how would you expect its streak distribution to compare to the distribution from the question above? Exactly the same? Somewhat similar? Totally different? Explain your reasoning.

A. If the simulation is run again of the independent shooter a second time or more the streak of the distribution wouldn’t be the same but it would be somewhat similar. As long as the probability is the same the resulting values no matter the number of trials would stay the same .In binomial distribution where in this case has two out comes the probability of success for each trial is equivalent (Independent trial model)

Exercise 8- Kobe and sim comparison

Q. How does Kobe Bryant’s distribution of streak lengths compare to the distribution of streak lengths for the simulated shooter? Using this comparison, do you have evidence that the hot hand model fits Kobe’s shooting patterns? Explain.

A. Kobe’s distribution like the simulation is right skewed with the only difference being the longest streak or the max of their data summary. With this similarity is is probable to assume that although very impressive and lucky the hot hand model doesn’t fit kobe’s shooting patterns.His future game successes are independent of previous successes and or trials( Independent trail model).

LS0tCnRpdGxlOiAiTGFiIDE6IFByb2JhYmlsaXR5IgphdXRob3I6ICJNYWtkYSBEZW1lbGFzaCIKZGF0ZTogIjkvMjAvMjAyMSIKb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQKLS0tCgpgYGB7ciBsb2FkLXBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQojbG9hZCB0aGUgcGFja2FnZXMgCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KG9wZW5pbnRybykKa29iZV9iYXNrZXQKZ2xpbXBzZShrb2JlX2Jhc2tldCkKYGBgCgojIyMgRXhlcmNpc2UgMS1EYXRhClEuIHdoYXQgZG9lcyB0aGUgc3RyZWFrIG9mIDEgbWVhbiwgaG93IG1hbnkgc3RyZWFrcyBvZiBoaXRzIGFuZCBtaXNzZXMgYXJlIGluIHRoZSBzdHJlYWsgb2YgMSBhbmQgMAoKMS5VdGlsaXppbmcgY2FsY19zcmVhayB0byBjb3VudCBzdHJlYWsgbGVuZ3RocyBmcm9tIDEzMyBzaG90cy4KCjIuVGhlbiBpbmZvcm1hdGlvbiBvZiB0aGUgY291bnQgd2lsbCBiZSBzdG9yZWQgaW4gS29iZV9zdHJlYWssYXMgdGhlIGxlbmd0aCB2YXJpYWJsZS4KCmBgYHtyfQpLb2JlX3N0cmVhazwtIGNhbGNfc3RyZWFrKGtvYmVfYmFza2V0JHNob3QpCmdncGxvdChkYXRhPUtvYmVfc3RyZWFrLGFlcyh4PWxlbmd0aCkpK2dlb21fYmFyKCkKCgpgYGAKCgojIyMgRXhlcmNpc2UgMi0gU3VtbWFyeQpEZXNjcmliZSB0aGUgZGlzdHJpYnV0aW9uIG9mIEtvYmXigJlzIHN0cmVhayBsZW5ndGhzIGZyb20gdGhlIDIwMDkgTkJBIGZpbmFscy4gV2hhdCB3YXMgaGlzIHR5cGljYWwgc3RyZWFrIGxlbmd0aD8gSG93IGxvbmcgd2FzIGhpcyBsb25nZXN0IHN0cmVhayBvZiBiYXNrZXRzPyBNYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgYWNjb21wYW55aW5nIHBsb3QgaW4geW91ciBhbnN3ZXIuCgoxLlRoZSBiZXN0IHBsb3QgdG8gdmlzdWFsaXplIGFuZCB0aGVzZSBzdHJlYWtzIGlzIGEgYm94IHBsb3QuCgpgYGB7cn0KYm94cGxvdChLb2JlX3N0cmVhaywgeWxhYj0iQmFza2V0IHN0cmVha3MiLG1haW49IktvYmUncyAyMDA5IHN0cmVhayBsZW5ndGhzIGZyaW0gMjAwOSAiICkKCmBgYAoKMi5UeXBpY2FsIHN0cmVhayBsZW5ndGgsIGxvbmdlc3Qgc3RyZWFrIGFyZSBmb3VuZCBpbiB0aGUgNSBudW1iZXIgc3VtbWFyeSBvZiAobWVhbiBhbmQgbWF4LyAwLDQpCgpgYGB7cn0Kc3VtbWFyeShLb2JlX3N0cmVhaykKCmBgYAoKCgojIyMgRXhlcmNpc2UgMy1TaW11bGF0aW9ucyBpbiBSIChIZWFkcywgVGFpbHMpCkluIHlvdXIgc2ltdWxhdGlvbiBvZiBmbGlwcGluZyB0aGUgdW5mYWlyIGNvaW4gMTAwIHRpbWVzLCBob3cgbWFueSBmbGlwcyBjYW1lIHVwIGhlYWRzPyBJbmNsdWRlIHRoZSBjb2RlIGZvciBzYW1wbGluZyB0aGUgdW5mYWlyIGNvaW4gaW4geW91ciByZXNwb25zZS4gU2luY2UgdGhlIG1hcmtkb3duIGZpbGUgd2lsbCBydW4gdGhlIGNvZGUsIGFuZCBnZW5lcmF0ZSBhIG5ldyBzYW1wbGUgZWFjaCB0aW1lIHlvdSBLbml0IGl0LCB5b3Ugc2hvdWxkIGFsc28g4oCcc2V0IGEgc2VlZOKAnSBiZWZvcmUgeW91IHNhbXBsZS4gUmVhZCBtb3JlIGFib3V0IHNldHRpbmcgYSBzZWVkIGJlbG93LgoKMS5Db2luX291dGNvbWVzIGdpdmVzIHVzIGhlYWRzIG9yIHRhaWxzIHdoaWxlIHNhbXBsZSBzaXplIHdpbGwgYWxsb3cgdXMgdG8gZ2V0IG9uZSBvdXRjb21lICwgaG93ZXZlciByZXBsYWNlIHRydWUgYWxsb3dzIGVxdWFsIGNoYW5jZSBhdCBib3RoIGJ5IHJlcGxhY2luZyBzYW1wbGUgYXIgZWFjaCBwaWNrLgoKMi4gVmVjdG9ycyBvZiB0aGUgb3V0Y29tZXMgaW4gZWFjaCBkcmF3IHdpbGwgdGhlbiBzYXZlIGl0cyBzZWxmIHRvIHNpbV9mYWlyX2NvaW4sIHRoaXMgdGhlbiBjYW4gYmUgdmlld2VkIGluIGEgdGFibGUuKDEwMCBkcmF3cyBvZiBmbGlwcyB3aWxsIGJlIHNhdmVkIHRoZXJlKQoKYGBge3J9CmNvaW5fb3V0Y29tZXMgPC0gYygiaGVhZHMiLCAidGFpbHMiKQpzYW1wbGUoY29pbl9vdXRjb21lcywgc2l6ZSA9IDEsIHJlcGxhY2UgPSBUUlVFKQoKc2ltX2ZhaXJfY29pbiA8LSBzYW1wbGUoY29pbl9vdXRjb21lcywgc2l6ZSA9IDEwMCwgcmVwbGFjZSA9IFRSVUUpCnNpbV9mYWlyX2NvaW4KdGFibGUoc2ltX2ZhaXJfY29pbikKCmBgYAoKMy5UaGUgbmF0dXJhbCBwcm9iYWJpbGl0eSBjYW4gYmUgYWx0ZXJlZCBpbiB0aGlzIGNhc2UgKEgsVCk6IDUwLzUwIGNoYW5jZSB0byAyMC84MC4KNC4gQXQgbGFzdCB0aGUgY29kZSB3aWxsIHNldC5zZWVkIHRvIGVuc3VyZSB3aGF0IGV2ZXIgd2FzIHJ1biBsYXN0IChwcm9iYWJpbGl0eSkgaXMgd2hhdCBrbml0cyBbNDUsNTVdCgpgYGB7cn0Kc2ltX3VuZmFpcl9jb2luIDwtIHNhbXBsZShjb2luX291dGNvbWVzLCBzaXplID0gMTAwLCByZXBsYWNlID0gVFJVRSxwcm9iID1jKDAuMiwgMC44KSkKc2V0LnNlZWQoMTIyMzMzKQoKYGBgCgojIyMgRXhlcmNpc2UgNC0gU2ltdWxhdGluZyB0aGUgSW5kZXBlbmRlbnQgU2hvb3RlcgoxLiBUaGlzIGNvZGUgd2lsbCBzaW11bGF0ZSBhIHNob3QgaW4gKEhpdCAsIE1pc3MpIG9mIGFuIGluZGVwZW5kZW50IGJhc2tlYmFsbCBwbGF5ZXIuCgoyLiBGb3IgdGhlIHNob290ZXIgdGhlIHByb2JhYmlsaXR5IHdpbGwgYWxsaWduIHRvIDUwLzUwLiBhbmQgcmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nLgpgYGB7ciB9CnNob3Rfb3V0Y29tZXMgPC0gYygiSCIsICJNIikKc2ltX2Jhc2tldCA8LSBzYW1wbGUoc2hvdF9vdXRjb21lcywgc2l6ZSA9IDEsIHJlcGxhY2UgPSBUUlVFKQpzaW1fYmFza2V0PC1zYW1wbGUoc2hvdF9vdXRjb21lcywgc2l6ZT0xMzMscmVwbGFjZSA9VFJVRSkKc2ltX2Jhc2tldApgYGAKMy4gQWZ0ZXIgcmV3cml0aW5nIHRoZSBjb2RlIHRvIGFuIGFkdmFudGFnZSBvZiAoNDUvNTUpIHRoZSByZXN1bHRzIHdpbGwgb3ZlcndyaXRlIHRvIHRoZSBmb2xsb3dpbmcuIE5vdGUoaXRzIGltcHBydGFudCB0byBzZXQuc2VlZCBzdG9yZSB0aGUgc2ltdWxhdGlvbnMgaW5mbyBmb3Iga25pdHRpbmcpCgpgYGB7ciB9CnNpbV9iYXNrZXQ8LSBzYW1wbGUoc2hvdF9vdXRjb21lcywgc2l6ZSA9IDEzMywgcmVwbGFjZSA9IFRSVUUscHJvYiA9YygwLjQ1LCAwLjU1KSkKc2V0LnNlZWQoMzMzNDQpCnRhYmxlKHNpbV9iYXNrZXQpCgpgYGAKCiMjIENvbXBhcmluZyBLb2JlIEJyeWFudCB0byBJbmRlcGVuZGVudCBTaG9vdGVyIAoKCgojIyMgRXhlcmNpc2UgNSAtIENvbXB1dGluZyBTdHJlYWtzIG9mIHNpbXVsYXRpb24gCgoxLiBjYWxjX3N0cmVhayBvZiB0aGUgbGVuZ3RocyBvcyB0aGUgc2ltdWxhdGlvbnMgYmFza2V0CgoyLiBEYXRhIG9mIHRoZSBsZW5ndGhzIGNhbGN1bGF0aW9uLCB0aGVuIHNhdmVkIHVuZGVyIHNpbV9zdHJlYWsKCgpgYGB7ciB9CnNpbV9zdHJlYWs8LSBjYWxjX3N0cmVhayhzaW1fYmFza2V0KQpnZ3Bsb3QoZGF0YT1zaW1fc3RyZWFrLGFlcyh4PWxlbmd0aCkpK2dlb21fYmFyKCkrZ2d0aXRsZSgiU2hvb3Rpbmcgc3RyZWFrIG9mIHNpbXVsYXRlZCBpbmRlcGVuZGVudCBzaG9vdGVyKHA9LjQ1LzEzMyBzaG90cykiKQoKYGBgCgoKCgojIyMgRXhlcmNpc2UgNiAtIFNpbSBTdHJlYWsgZGlzY3JpcHRpb24KCjEuIFN0cmVhayBsZW5ndGhzIGFzIHNlZW4gaW4gdGhlIGJhcnBsb3QgcmVmbGVjdHMgUmlnaHQgc2tld2VkIGRpc3RyaWJ1dGlvbiwgc2ltaWxhciB0byBvbmUgdGhhdCBpcyBzZWVuIGluIEtvYmUncyBiYXJwbG90LCBtYWpvdGl0eSBpcyBjb25jZW50cmF0ZWQgYmV0d2VlbiAoMC0xKS4KCjIuIEluIGZvY3VzIGZyb20gdGhlIGJlbGxvdyBzdW1tYXJ5IGFyZSx0aGUgbWVhbiB3aGljaCByZWZsZWN0cyB0aGUgdHlwaWNhbCBzdHJlYWsgb2YgdGhlIHNpbXVsYXRlZCBzaG9vdGVyIGFuZCB0aGUgbWF4IHdoaWNoIGlzIHRoZSBwbGF5ZXJzIGxvbmdlc3Qgc3RyZWFrIG9mIGJhc2tldCAuCmBgYHtyIH0KYm94cGxvdChzaW1fc3RyZWFrLCB5bGFiPSJTaW11bGF0aW9uIGJhc2tldCBzdHJlYWtzIixtYWluPSJTaW11bGF0aW9uIHN0cmVhayBsZW5ndGhzICIgKQpzdW1tYXJ5KHNpbV9zdHJlYWspCgpgYGAKCkZyb20gdGhlIDEzMyBzaG90cwpNYXgoIGxvbmdlc3Qgc3RyZWFrKT03Ck1pbihUeXBpY2FsKT0wCgoKIyMjIEV4ZXJjaXNlIDctIERhdGEgQW5hbHlzaXMKUS4gSWYgeW91IHdlcmUgdG8gcnVuIHRoZSBzaW11bGF0aW9uIG9mIHRoZSBpbmRlcGVuZGVudCBzaG9vdGVyIGEgc2Vjb25kIHRpbWUsIGhvdyB3b3VsZCB5b3UgZXhwZWN0IGl0cyBzdHJlYWsgZGlzdHJpYnV0aW9uIHRvIGNvbXBhcmUgdG8gdGhlIGRpc3RyaWJ1dGlvbiBmcm9tIHRoZSBxdWVzdGlvbiBhYm92ZT8gRXhhY3RseSB0aGUgc2FtZT8gU29tZXdoYXQgc2ltaWxhcj8gVG90YWxseSBkaWZmZXJlbnQ/IEV4cGxhaW4geW91ciByZWFzb25pbmcuIAoKQS4gSWYgdGhlIHNpbXVsYXRpb24gaXMgcnVuIGFnYWluIG9mIHRoZSBpbmRlcGVuZGVudCBzaG9vdGVyIGEgc2Vjb25kIHRpbWUgb3IgbW9yZSB0aGUgc3RyZWFrIG9mIHRoZSBkaXN0cmlidXRpb24gd291bGRuJ3QgYmUgdGhlIHNhbWUgYnV0IGl0IHdvdWxkIGJlIHNvbWV3aGF0IHNpbWlsYXIuIEFzIGxvbmcgYXMgdGhlIHByb2JhYmlsaXR5IGlzIHRoZSBzYW1lIHRoZSByZXN1bHRpbmcgdmFsdWVzIG5vIG1hdHRlciB0aGUgbnVtYmVyIG9mIHRyaWFscyB3b3VsZCBzdGF5IHRoZSBzYW1lIC5JbiBiaW5vbWlhbCBkaXN0cmlidXRpb24gd2hlcmUgaW4gdGhpcyBjYXNlIGhhcyB0d28gb3V0IGNvbWVzIHRoZSBwcm9iYWJpbGl0eSBvZiBzdWNjZXNzIGZvciBlYWNoIHRyaWFsIGlzIGVxdWl2YWxlbnQgKEluZGVwZW5kZW50IHRyaWFsIG1vZGVsKQoKIyMjIEV4ZXJjaXNlIDgtIEtvYmUgYW5kIHNpbSBjb21wYXJpc29uIAoKUS4gSG93IGRvZXMgS29iZSBCcnlhbnTigJlzIGRpc3RyaWJ1dGlvbiBvZiBzdHJlYWsgbGVuZ3RocyBjb21wYXJlIHRvIHRoZSBkaXN0cmlidXRpb24gb2Ygc3RyZWFrIGxlbmd0aHMgZm9yIHRoZSBzaW11bGF0ZWQgc2hvb3Rlcj8gVXNpbmcgdGhpcyBjb21wYXJpc29uLCBkbyB5b3UgaGF2ZSBldmlkZW5jZSB0aGF0IHRoZSBob3QgaGFuZCBtb2RlbCBmaXRzIEtvYmXigJlzIHNob290aW5nIHBhdHRlcm5zPyBFeHBsYWluLgoKQS4gS29iZSdzIGRpc3RyaWJ1dGlvbiBsaWtlIHRoZSBzaW11bGF0aW9uIGlzIHJpZ2h0IHNrZXdlZCB3aXRoIHRoZSBvbmx5IGRpZmZlcmVuY2UgYmVpbmcgdGhlIGxvbmdlc3Qgc3RyZWFrIG9yIHRoZSBtYXggb2YgdGhlaXIgZGF0YSBzdW1tYXJ5LiBXaXRoIHRoaXMgc2ltaWxhcml0eSBpcyBpcyBwcm9iYWJsZSB0byBhc3N1bWUgdGhhdCBhbHRob3VnaCB2ZXJ5IGltcHJlc3NpdmUgYW5kIGx1Y2t5IHRoZSBob3QgaGFuZCBtb2RlbCBkb2Vzbid0ICBmaXQga29iZSdzIHNob290aW5nIHBhdHRlcm5zLkhpcyBmdXR1cmUgZ2FtZSBzdWNjZXNzZXMgYXJlIGluZGVwZW5kZW50IG9mIHByZXZpb3VzIHN1Y2Nlc3NlcyBhbmQgb3IgdHJpYWxzKCBJbmRlcGVuZGVudCB0cmFpbCBtb2RlbCkuCgo=