Introduction:
In this project, we analyze the impact of sleep deprivation on
reaction time using REML (Restricted Maximum Likelihood) and BLUE (Best
Linear Unbiased Estimators). We use the sleepstudy dataset which
contains reaction time measurements of participants across several days
of sleep deprivation. By using a mixed-effects model, we aim to account
for individual-level differences (random effects) and the effects of
sleep deprivation on reaction time (fixed effects).
Dataset:
We use the sleepstudy dataset from the lme4 R package. The dataset
contains 180 observations of reaction times for 18 individuals measured
across 10 days of sleep deprivation. The key variables include:
Reaction: Reaction time in milliseconds.
Days: Number of days of sleep deprivation. Subject: A random effect
representing individual-level differences.
Goals:
Use REML to estimate the random effect of individual variability in
reaction time. Use BLUE to estimate the fixed effect of sleep
deprivation (number of days) on reaction time. Visualize the
relationship between sleep deprivation and reaction time, accounting for
individual differences.
Step 1: Load Data and Libraries
# Load necessary libraries
Warning message:
In file(con, "w") :
cannot open file 'Sleep.knit.md': No space left on device
library(lme4) # For mixed-effects modeling
library(ggplot2) # For visualizations
# Load the sleepstudy dataset
data("sleepstudy", package = "lme4")
# View the first few rows of the dataset
head(sleepstudy)
NA
Step 2: Fit a Mixed-Effects Model Using REML
We fit a mixed-effects model where Reaction is the dependent
variable, Days is a fixed effect, and Subject is a random effect. This
will allow us to account for individual differences in reaction time
across subjects.
# Fit mixed-effects model using REML
# Random effect: Subject (individual variability)
# Fixed effect: Days (sleep deprivation effect)
model_reml <- lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy, REML = TRUE)
# Summary of the model
summary(model_reml)
Linear mixed model fit by REML ['lmerMod']
Formula: Reaction ~ Days + (1 | Subject)
Data: sleepstudy
REML criterion at convergence: 1786.5
Scaled residuals:
Min 1Q Median 3Q Max
-3.2257 -0.5529 0.0109 0.5188 4.2506
Random effects:
Groups Name Variance Std.Dev.
Subject (Intercept) 1378.2 37.12
Residual 960.5 30.99
Number of obs: 180, groups: Subject, 18
Fixed effects:
Estimate Std. Error t value
(Intercept) 251.4051 9.7467 25.79
Days 10.4673 0.8042 13.02
Correlation of Fixed Effects:
(Intr)
Days -0.371
Interpretation of the Results:
* Fixed Effect (Days): The coefficient for Days represents the change in reaction time for each additional day of sleep deprivation.
*Random Effect (Subject): The random effect (REML estimate) shows how much individual variability affects reaction time, independent of the number of days of sleep deprivation.
##Step 3: Calculate BLUE for Fixed Effects:
The Best Linear Unbiased Estimator (BLUE) gives us the unbiased
estimates of the fixed effect, which in this case is the relationship
between sleep deprivation (Days) and reaction time.
# Extract fixed effects (BLUE values)
fixed_effects <- fixef(model_reml)
print(fixed_effects)
(Intercept) Days
251.40510 10.46729
# Fixed effect interpretation:
# The coefficient for "Days" indicates how much reaction time increases for every additional day of sleep deprivation.
Step 4: Visualizing the Results
1. Visualizing Reaction Time by Subject (Random Effect):
We can create a boxplot to see how reaction times vary across
individuals, which represents the random effect of the model.
# Boxplot: Reaction time by Subject
ggplot(sleepstudy, aes(x = factor(Subject), y = Reaction)) +
geom_boxplot() +
labs(title = "Reaction Time by Subject (Random Effect)", x = "Subject", y = "Reaction Time (ms)")

This plot shows that individual subjects have varying reaction times,
illustrating the random effect of subject variability.
2. Scatterplot of Reaction Time vs. Days (Fixed Effect):
Next, we visualize how reaction time changes with the number of days
of sleep deprivation.
# Scatterplot: Reaction time vs. Days
ggplot(sleepstudy, aes(x = Days, y = Reaction)) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", color = "blue") +
labs(title = "Reaction Time vs. Days (Fixed Effect)", x = "Days of Sleep Deprivation", y = "Reaction Time (ms)")

The scatterplot with a regression line shows that reaction time
generally increases as the number of days of sleep deprivation
increases. This relationship is modeled as the fixed effect in the
model.
Step 5: Model Diagnostics
1. Residual Plot:
To check how well the model fits the data, we plot the residuals of
the model.
# Plot residuals to check model fit
plot(residuals(model_reml), main = "Residuals of Mixed-Effects Model")

If the residuals are randomly scattered around zero, it indicates
that the model fits the data well.
2. Random Effect Variance:
We can calculate the variance of the random effect (Subject) to
understand how much individual differences affect reaction time.
# Calculate random effect variance
random_effect_variance <- as.data.frame(VarCorr(model_reml))$vcov[2] # Subject-specific variance
print(paste("Random Effect Variance (Subject):", round(random_effect_variance, 2)))
[1] "Random Effect Variance (Subject): 960.46"
The random effect variance tells us how much individual variability
in reaction times (between subjects) contributes to the overall
variation in the data.
Step 6: Interpretation of Results
Key Findings:
* Fixed Effect (Days): The fixed effect shows how much reaction time increases per additional day of sleep deprivation. In this model, for every day of sleep deprivation, reaction time increases by approximately the fixed effect coefficient value.
* Effect (Subject): The random effect captures how much reaction times vary between subjects. A high random effect variance indicates that there are significant differences in reaction times across individuals, which are independent of the sleep deprivation effect.
Conclusion:
In this project, we used REML and BLUE to analyze the effects of
sleep deprivation on reaction time. By accounting for individual
differences (random effects) and the effect of sleep deprivation (fixed
effect), we were able to better understand how these factors interact.
The REML method provided us with estimates of individual variability,
while BLUE gave us the unbiased fixed effect estimate of sleep
deprivation on reaction time.
This project demonstrates how mixed-effects models can be used in
real-world scenarios to account for both fixed and random factors
influencing an outcome.
LS0tCnRpdGxlOiAiIEFuYWx5emluZyBTbGVlcCBEZXByaXZhdGlvbiBFZmZlY3RzIG9uIFJlYWN0aW9uIFRpbWUgVXNpbmcgUkVNTCBhbmQgQkxVRSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyBJbnRyb2R1Y3Rpb246CkluIHRoaXMgcHJvamVjdCwgd2UgYW5hbHl6ZSB0aGUgaW1wYWN0IG9mIHNsZWVwIGRlcHJpdmF0aW9uIG9uIHJlYWN0aW9uIHRpbWUgdXNpbmcgUkVNTCAoUmVzdHJpY3RlZCBNYXhpbXVtIExpa2VsaWhvb2QpIGFuZCBCTFVFIChCZXN0IExpbmVhciBVbmJpYXNlZCBFc3RpbWF0b3JzKS4gV2UgdXNlIHRoZSBzbGVlcHN0dWR5IGRhdGFzZXQgd2hpY2ggY29udGFpbnMgcmVhY3Rpb24gdGltZSBtZWFzdXJlbWVudHMgb2YgcGFydGljaXBhbnRzIGFjcm9zcyBzZXZlcmFsIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uIEJ5IHVzaW5nIGEgbWl4ZWQtZWZmZWN0cyBtb2RlbCwgd2UgYWltIHRvIGFjY291bnQgZm9yIGluZGl2aWR1YWwtbGV2ZWwgZGlmZmVyZW5jZXMgKHJhbmRvbSBlZmZlY3RzKSBhbmQgdGhlIGVmZmVjdHMgb2Ygc2xlZXAgZGVwcml2YXRpb24gb24gcmVhY3Rpb24gdGltZSAoZml4ZWQgZWZmZWN0cykuCgojIyBEYXRhc2V0OgpXZSB1c2UgdGhlIHNsZWVwc3R1ZHkgZGF0YXNldCBmcm9tIHRoZSBsbWU0IFIgcGFja2FnZS4gVGhlIGRhdGFzZXQgY29udGFpbnMgMTgwIG9ic2VydmF0aW9ucyBvZiByZWFjdGlvbiB0aW1lcyBmb3IgMTggaW5kaXZpZHVhbHMgbWVhc3VyZWQgYWNyb3NzIDEwIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uIFRoZSBrZXkgdmFyaWFibGVzIGluY2x1ZGU6CgojIyBSZWFjdGlvbjogUmVhY3Rpb24gdGltZSBpbiBtaWxsaXNlY29uZHMuCkRheXM6IE51bWJlciBvZiBkYXlzIG9mIHNsZWVwIGRlcHJpdmF0aW9uLgpTdWJqZWN0OiBBIHJhbmRvbSBlZmZlY3QgcmVwcmVzZW50aW5nIGluZGl2aWR1YWwtbGV2ZWwgZGlmZmVyZW5jZXMuCgojIyBHb2FsczoKVXNlIFJFTUwgdG8gZXN0aW1hdGUgdGhlIHJhbmRvbSBlZmZlY3Qgb2YgaW5kaXZpZHVhbCB2YXJpYWJpbGl0eSBpbiByZWFjdGlvbiB0aW1lLgpVc2UgQkxVRSB0byBlc3RpbWF0ZSB0aGUgZml4ZWQgZWZmZWN0IG9mIHNsZWVwIGRlcHJpdmF0aW9uIChudW1iZXIgb2YgZGF5cykgb24gcmVhY3Rpb24gdGltZS4KVmlzdWFsaXplIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzbGVlcCBkZXByaXZhdGlvbiBhbmQgcmVhY3Rpb24gdGltZSwgYWNjb3VudGluZyBmb3IgaW5kaXZpZHVhbCBkaWZmZXJlbmNlcy4KCiMjIFN0ZXAgMTogTG9hZCBEYXRhIGFuZCBMaWJyYXJpZXMKCgogCgpgYGB7cn0KIyBMb2FkIG5lY2Vzc2FyeSBsaWJyYXJpZXMKbGlicmFyeShsbWU0KSAgIyBGb3IgbWl4ZWQtZWZmZWN0cyBtb2RlbGluZwpsaWJyYXJ5KGdncGxvdDIpICAjIEZvciB2aXN1YWxpemF0aW9ucwoKIyBMb2FkIHRoZSBzbGVlcHN0dWR5IGRhdGFzZXQKZGF0YSgic2xlZXBzdHVkeSIsIHBhY2thZ2UgPSAibG1lNCIpCgojIFZpZXcgdGhlIGZpcnN0IGZldyByb3dzIG9mIHRoZSBkYXRhc2V0CmhlYWQoc2xlZXBzdHVkeSkKCmBgYAoKIyMgU3RlcCAyOiBGaXQgYSBNaXhlZC1FZmZlY3RzIE1vZGVsIFVzaW5nIFJFTUwKCldlIGZpdCBhIG1peGVkLWVmZmVjdHMgbW9kZWwgd2hlcmUgUmVhY3Rpb24gaXMgdGhlIGRlcGVuZGVudCB2YXJpYWJsZSwgRGF5cyBpcyBhIGZpeGVkIGVmZmVjdCwgYW5kIFN1YmplY3QgaXMgYSByYW5kb20gZWZmZWN0LiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gYWNjb3VudCBmb3IgaW5kaXZpZHVhbCBkaWZmZXJlbmNlcyBpbiByZWFjdGlvbiB0aW1lIGFjcm9zcyBzdWJqZWN0cy4KCmBgYHtyfQojIEZpdCBtaXhlZC1lZmZlY3RzIG1vZGVsIHVzaW5nIFJFTUwKIyBSYW5kb20gZWZmZWN0OiBTdWJqZWN0IChpbmRpdmlkdWFsIHZhcmlhYmlsaXR5KQojIEZpeGVkIGVmZmVjdDogRGF5cyAoc2xlZXAgZGVwcml2YXRpb24gZWZmZWN0KQptb2RlbF9yZW1sIDwtIGxtZXIoUmVhY3Rpb24gfiBEYXlzICsgKDEgfCBTdWJqZWN0KSwgZGF0YSA9IHNsZWVwc3R1ZHksIFJFTUwgPSBUUlVFKQoKIyBTdW1tYXJ5IG9mIHRoZSBtb2RlbApzdW1tYXJ5KG1vZGVsX3JlbWwpCgpgYGAKCiMjIEludGVycHJldGF0aW9uIG9mIHRoZSBSZXN1bHRzOgoKICAgICogRml4ZWQgRWZmZWN0IChEYXlzKTogVGhlIGNvZWZmaWNpZW50IGZvciBEYXlzIHJlcHJlc2VudHMgdGhlIGNoYW5nZSBpbiByZWFjdGlvbiB0aW1lIGZvciBlYWNoIGFkZGl0aW9uYWwgZGF5IG9mIHNsZWVwIGRlcHJpdmF0aW9uLgoKICAgICpSYW5kb20gRWZmZWN0IChTdWJqZWN0KTogVGhlIHJhbmRvbSBlZmZlY3QgKFJFTUwgZXN0aW1hdGUpIHNob3dzIGhvdyBtdWNoIGluZGl2aWR1YWwgdmFyaWFiaWxpdHkgYWZmZWN0cyByZWFjdGlvbiB0aW1lLCBpbmRlcGVuZGVudCBvZiB0aGUgbnVtYmVyIG9mIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uCiAgICAKIyNTdGVwIDM6IENhbGN1bGF0ZSBCTFVFIGZvciBGaXhlZCBFZmZlY3RzOgoKVGhlIEJlc3QgTGluZWFyIFVuYmlhc2VkIEVzdGltYXRvciAoQkxVRSkgZ2l2ZXMgdXMgdGhlIHVuYmlhc2VkIGVzdGltYXRlcyBvZiB0aGUgZml4ZWQgZWZmZWN0LCB3aGljaCBpbiB0aGlzIGNhc2UgaXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHNsZWVwIGRlcHJpdmF0aW9uIChEYXlzKSBhbmQgcmVhY3Rpb24gdGltZS4KCmBgYHtyfQojIEV4dHJhY3QgZml4ZWQgZWZmZWN0cyAoQkxVRSB2YWx1ZXMpCmZpeGVkX2VmZmVjdHMgPC0gZml4ZWYobW9kZWxfcmVtbCkKcHJpbnQoZml4ZWRfZWZmZWN0cykKCiMgRml4ZWQgZWZmZWN0IGludGVycHJldGF0aW9uOgojIFRoZSBjb2VmZmljaWVudCBmb3IgIkRheXMiIGluZGljYXRlcyBob3cgbXVjaCByZWFjdGlvbiB0aW1lIGluY3JlYXNlcyBmb3IgZXZlcnkgYWRkaXRpb25hbCBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24uCgpgYGAKCiMjIFN0ZXAgNDogVmlzdWFsaXppbmcgdGhlIFJlc3VsdHMKCiMjIyAxLiBWaXN1YWxpemluZyBSZWFjdGlvbiBUaW1lIGJ5IFN1YmplY3QgKFJhbmRvbSBFZmZlY3QpOgoKV2UgY2FuIGNyZWF0ZSBhIGJveHBsb3QgdG8gc2VlIGhvdyByZWFjdGlvbiB0aW1lcyB2YXJ5IGFjcm9zcyBpbmRpdmlkdWFscywgd2hpY2ggcmVwcmVzZW50cyB0aGUgcmFuZG9tIGVmZmVjdCBvZiB0aGUgbW9kZWwuCgpgYGB7cn0KIyBCb3hwbG90OiBSZWFjdGlvbiB0aW1lIGJ5IFN1YmplY3QKZ2dwbG90KHNsZWVwc3R1ZHksIGFlcyh4ID0gZmFjdG9yKFN1YmplY3QpLCB5ID0gUmVhY3Rpb24pKSArCiAgZ2VvbV9ib3hwbG90KCkgKwogIGxhYnModGl0bGUgPSAiUmVhY3Rpb24gVGltZSBieSBTdWJqZWN0IChSYW5kb20gRWZmZWN0KSIsIHggPSAiU3ViamVjdCIsIHkgPSAiUmVhY3Rpb24gVGltZSAobXMpIikKCmBgYApUaGlzIHBsb3Qgc2hvd3MgdGhhdCBpbmRpdmlkdWFsIHN1YmplY3RzIGhhdmUgdmFyeWluZyByZWFjdGlvbiB0aW1lcywgaWxsdXN0cmF0aW5nIHRoZSByYW5kb20gZWZmZWN0IG9mIHN1YmplY3QgdmFyaWFiaWxpdHkuCgojIyAyLiBTY2F0dGVycGxvdCBvZiBSZWFjdGlvbiBUaW1lIHZzLiBEYXlzIChGaXhlZCBFZmZlY3QpOgoKTmV4dCwgd2UgdmlzdWFsaXplIGhvdyByZWFjdGlvbiB0aW1lIGNoYW5nZXMgd2l0aCB0aGUgbnVtYmVyIG9mIGRheXMgb2Ygc2xlZXAgZGVwcml2YXRpb24uCmBgYHtyfQojIFNjYXR0ZXJwbG90OiBSZWFjdGlvbiB0aW1lIHZzLiBEYXlzCmdncGxvdChzbGVlcHN0dWR5LCBhZXMoeCA9IERheXMsIHkgPSBSZWFjdGlvbikpICsKICBnZW9tX3BvaW50KGFscGhhID0gMC41KSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiYmx1ZSIpICsKICBsYWJzKHRpdGxlID0gIlJlYWN0aW9uIFRpbWUgdnMuIERheXMgKEZpeGVkIEVmZmVjdCkiLCB4ID0gIkRheXMgb2YgU2xlZXAgRGVwcml2YXRpb24iLCB5ID0gIlJlYWN0aW9uIFRpbWUgKG1zKSIpCgpgYGAKClRoZSBzY2F0dGVycGxvdCB3aXRoIGEgcmVncmVzc2lvbiBsaW5lIHNob3dzIHRoYXQgcmVhY3Rpb24gdGltZSBnZW5lcmFsbHkgaW5jcmVhc2VzIGFzIHRoZSBudW1iZXIgb2YgZGF5cyBvZiBzbGVlcCBkZXByaXZhdGlvbiBpbmNyZWFzZXMuIFRoaXMgcmVsYXRpb25zaGlwIGlzIG1vZGVsZWQgYXMgdGhlIGZpeGVkIGVmZmVjdCBpbiB0aGUgbW9kZWwuCgojIyBTdGVwIDU6IE1vZGVsIERpYWdub3N0aWNzCiMjIyAxLiBSZXNpZHVhbCBQbG90OgoKVG8gY2hlY2sgaG93IHdlbGwgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEsIHdlIHBsb3QgdGhlIHJlc2lkdWFscyBvZiB0aGUgbW9kZWwuCmBgYHtyfQojIFBsb3QgcmVzaWR1YWxzIHRvIGNoZWNrIG1vZGVsIGZpdApwbG90KHJlc2lkdWFscyhtb2RlbF9yZW1sKSwgbWFpbiA9ICJSZXNpZHVhbHMgb2YgTWl4ZWQtRWZmZWN0cyBNb2RlbCIpCgpgYGAKCklmIHRoZSByZXNpZHVhbHMgYXJlIHJhbmRvbWx5IHNjYXR0ZXJlZCBhcm91bmQgemVybywgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIG1vZGVsIGZpdHMgdGhlIGRhdGEgd2VsbC4KCiMjIDIuIFJhbmRvbSBFZmZlY3QgVmFyaWFuY2U6CgpXZSBjYW4gY2FsY3VsYXRlIHRoZSB2YXJpYW5jZSBvZiB0aGUgcmFuZG9tIGVmZmVjdCAoU3ViamVjdCkgdG8gdW5kZXJzdGFuZCBob3cgbXVjaCBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIGFmZmVjdCByZWFjdGlvbiB0aW1lLgoKYGBge3J9CiMgQ2FsY3VsYXRlIHJhbmRvbSBlZmZlY3QgdmFyaWFuY2UKcmFuZG9tX2VmZmVjdF92YXJpYW5jZSA8LSBhcy5kYXRhLmZyYW1lKFZhckNvcnIobW9kZWxfcmVtbCkpJHZjb3ZbMl0gICMgU3ViamVjdC1zcGVjaWZpYyB2YXJpYW5jZQpwcmludChwYXN0ZSgiUmFuZG9tIEVmZmVjdCBWYXJpYW5jZSAoU3ViamVjdCk6Iiwgcm91bmQocmFuZG9tX2VmZmVjdF92YXJpYW5jZSwgMikpKQoKYGBgCgpUaGUgcmFuZG9tIGVmZmVjdCB2YXJpYW5jZSB0ZWxscyB1cyBob3cgbXVjaCBpbmRpdmlkdWFsIHZhcmlhYmlsaXR5IGluIHJlYWN0aW9uIHRpbWVzIChiZXR3ZWVuIHN1YmplY3RzKSBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCB2YXJpYXRpb24gaW4gdGhlIGRhdGEuCgojIyBTdGVwIDY6IEludGVycHJldGF0aW9uIG9mIFJlc3VsdHMKCiMjIyBLZXkgRmluZGluZ3M6CgogICAgICogRml4ZWQgRWZmZWN0IChEYXlzKTogVGhlIGZpeGVkIGVmZmVjdCBzaG93cyBob3cgbXVjaCByZWFjdGlvbiB0aW1lIGluY3JlYXNlcyBwZXIgYWRkaXRpb25hbCBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24uIEluIHRoaXMgbW9kZWwsIGZvciBldmVyeSBkYXkgb2Ygc2xlZXAgZGVwcml2YXRpb24sIHJlYWN0aW9uIHRpbWUgaW5jcmVhc2VzIGJ5IGFwcHJveGltYXRlbHkgdGhlIGZpeGVkIGVmZmVjdCBjb2VmZmljaWVudCB2YWx1ZS4KICAgICAKICAgICogRWZmZWN0IChTdWJqZWN0KTogVGhlIHJhbmRvbSBlZmZlY3QgY2FwdHVyZXMgaG93IG11Y2ggcmVhY3Rpb24gdGltZXMgdmFyeSBiZXR3ZWVuIHN1YmplY3RzLiBBIGhpZ2ggcmFuZG9tIGVmZmVjdCB2YXJpYW5jZSBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBhcmUgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZXMgaW4gcmVhY3Rpb24gdGltZXMgYWNyb3NzIGluZGl2aWR1YWxzLCB3aGljaCBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIHNsZWVwIGRlcHJpdmF0aW9uIGVmZmVjdC4KICAgIAojIyBDb25jbHVzaW9uOgoKSW4gdGhpcyBwcm9qZWN0LCB3ZSB1c2VkIFJFTUwgYW5kIEJMVUUgdG8gYW5hbHl6ZSB0aGUgZWZmZWN0cyBvZiBzbGVlcCBkZXByaXZhdGlvbiBvbiByZWFjdGlvbiB0aW1lLiBCeSBhY2NvdW50aW5nIGZvciBpbmRpdmlkdWFsIGRpZmZlcmVuY2VzIChyYW5kb20gZWZmZWN0cykgYW5kIHRoZSBlZmZlY3Qgb2Ygc2xlZXAgZGVwcml2YXRpb24gKGZpeGVkIGVmZmVjdCksIHdlIHdlcmUgYWJsZSB0byBiZXR0ZXIgdW5kZXJzdGFuZCBob3cgdGhlc2UgZmFjdG9ycyBpbnRlcmFjdC4gVGhlIFJFTUwgbWV0aG9kIHByb3ZpZGVkIHVzIHdpdGggZXN0aW1hdGVzIG9mIGluZGl2aWR1YWwgdmFyaWFiaWxpdHksIHdoaWxlIEJMVUUgZ2F2ZSB1cyB0aGUgdW5iaWFzZWQgZml4ZWQgZWZmZWN0IGVzdGltYXRlIG9mIHNsZWVwIGRlcHJpdmF0aW9uIG9uIHJlYWN0aW9uIHRpbWUuCgpUaGlzIHByb2plY3QgZGVtb25zdHJhdGVzIGhvdyBtaXhlZC1lZmZlY3RzIG1vZGVscyBjYW4gYmUgdXNlZCBpbiByZWFsLXdvcmxkIHNjZW5hcmlvcyB0byBhY2NvdW50IGZvciBib3RoIGZpeGVkIGFuZCByYW5kb20gZmFjdG9ycyBpbmZsdWVuY2luZyBhbiBvdXRjb21lLg==