R Markdown
This is an R Markdown document. Markdown is a simple formatting
syntax for authoring HTML, PDF, and MS Word documents. For more details
on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be
generated that includes both content as well as the output of any
embedded R code chunks within the document.
Parts of an RMD File
- The YAML (surprisingly, the hardest part to get right)
- The text
- The code
The YAML
This is where you “set the scene” for your document. You create a
title, name the author, the date, and write directions for the
aesthetics of the document. The YAML, unlike most of R, is very
particular about spacing. Everything in the YAML must be separated
wither by 2 or 4 spaces - not tabs.
In the YAML you can set your theme, font specifications, and the
output for what kind of document you’re making. This is an html
document, and I have set the theme to “spacelab”, which is one of the
base themes you can choose. There are many more though that you can look
up and find in various packages.
My YAML also includes directions for a table of contents, which
exists as an item you can access floating to the left. I have also put a
code download option, so you can download all the code within this file.
This is helpful because as we will see below, you will likely want to
keep most of your code hidden in your finished product.
The Text
Most of what you see in a rmd file is likely going to be plain text.
Unlike in an r file where a “#” will hide your text as notes, in an rmd
file this will be used to create headers that can appear in our table of
contents. A single # followed by a space creates your first header, and
every additional # will create subsequent headers. You can also include
directions in your text to changes things like italics, or
making a word bold. Or making a word bold
and italic You can also include things like photos and
hyperlinks in the text.
The photo above is something I saved to my desktop. In order to add
photos locally you will want to keep them in the same working directory
as your rmd file. This way you only have to type the file name in the
appropriate syntax to add it, you don’t need to worry about about
specifying the path.
I can also add photos from the web using hyperlinks.
Add a hyperlink
R
Markdown Reference Guide
How to Write a
Thesis in One Day
The Code
The code in an rmd file works exactly the same as it does in an r
file. However, you need to embed it inside “chunks”. To do this you type
ctrl+alt+i, and then code as you usually would.
data(iris)
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
plot(iris$Sepal.Length, iris$Sepal.Width)

Code Options
In the above examples, you see the code I wrote and you see the
output. But you can alter this using various chunk options.
With echo= FALSE, you can hide the code but include the output.

With include = FALSE, you can write code where you do not want either
the code or the output to be shown. You might want to use this in files
where the code is downloadable, and you want it as a directional tool or
for instruction, or to hold onto in case you need it later, but don’t
want it to appear in this final product.
In your code, you might also want to include notes just as you would in
an r file. To do this you write them directly after the r in the top of
the code chunk:
{r write your notes or title your code cunk directly after the r and
don’t include commas anywhere because that begins the instructions for
the chunk output}
Below, I have created a histogram of the Iris data. You can’t see the
code, but if you were to download the code with the option in the top
right of the file you would be able to see my codes and my notes.

Adding Tables
There are various ways you can edit tables and make them appear how
you’d like. Here is a very simple example.
The format - 
The output-
Finalize Your Document: Knit
Once you are done with your script, click the Knit button on the top
of the screen. 
Sharing the document
Once you have knitted and you’re happy with what you made, you can
share the document in a few ways.
- Find the html document in whatever place you’ve saved it. This
particular file I have saved to my desktop.
- In the knitted document, there is an option to “publish”.
If you publish with RPubs, which is a free online platform, it will
store all of your html files in one place and you can either direct
people to your library, or share via hyperlink.
LS0tDQp0aXRsZTogIkxlYXJuaW5nIHRvIFVzZSBSIE1hcmtkb3duIg0KYXV0aG9yOiAiRW1pbHkgUnVubmlvbiINCmRhdGU6ICcxMC82LzIwMjInDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIHRoZW1lOiBzcGFjZWxhYg0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIFIgTWFya2Rvd24NCg0KVGhpcyBpcyBhbiBSIE1hcmtkb3duIGRvY3VtZW50LiBNYXJrZG93biBpcyBhIHNpbXBsZSBmb3JtYXR0aW5nIHN5bnRheCBmb3IgYXV0aG9yaW5nIEhUTUwsIFBERiwgYW5kIE1TIFdvcmQgZG9jdW1lbnRzLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHVzaW5nIFIgTWFya2Rvd24gc2VlIDxodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tPi4NCg0KV2hlbiB5b3UgY2xpY2sgdGhlICoqS25pdCoqIGJ1dHRvbiBhIGRvY3VtZW50IHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgaW5jbHVkZXMgYm90aCBjb250ZW50IGFzIHdlbGwgYXMgdGhlIG91dHB1dCBvZiBhbnkgZW1iZWRkZWQgUiBjb2RlIGNodW5rcyB3aXRoaW4gdGhlIGRvY3VtZW50Lg0KDQoNCiMgUGFydHMgb2YgYW4gUk1EIEZpbGUgDQoNCjEuIFRoZSBZQU1MIChzdXJwcmlzaW5nbHksIHRoZSBoYXJkZXN0IHBhcnQgdG8gZ2V0IHJpZ2h0KQ0KMi4gVGhlIHRleHQNCjMuIFRoZSBjb2RlIA0KDQojIFRoZSBZQU1MDQoNClRoaXMgaXMgd2hlcmUgeW91ICJzZXQgdGhlIHNjZW5lIiBmb3IgeW91ciBkb2N1bWVudC4gWW91IGNyZWF0ZSBhIHRpdGxlLCBuYW1lIHRoZSBhdXRob3IsIHRoZSBkYXRlLCBhbmQgd3JpdGUgZGlyZWN0aW9ucyBmb3IgdGhlIGFlc3RoZXRpY3Mgb2YgdGhlIGRvY3VtZW50LiBUaGUgWUFNTCwgdW5saWtlIG1vc3Qgb2YgUiwgaXMgdmVyeSBwYXJ0aWN1bGFyIGFib3V0IHNwYWNpbmcuIEV2ZXJ5dGhpbmcgaW4gdGhlIFlBTUwgbXVzdCBiZSBzZXBhcmF0ZWQgd2l0aGVyIGJ5IDIgb3IgNCBzcGFjZXMgLSBub3QgdGFicy4NCg0KSW4gdGhlIFlBTUwgeW91IGNhbiBzZXQgeW91ciB0aGVtZSwgZm9udCBzcGVjaWZpY2F0aW9ucywgYW5kIHRoZSBvdXRwdXQgZm9yIHdoYXQga2luZCBvZiBkb2N1bWVudCB5b3UncmUgbWFraW5nLiBUaGlzIGlzIGFuIGh0bWwgZG9jdW1lbnQsIGFuZCBJIGhhdmUgc2V0IHRoZSB0aGVtZSB0byAic3BhY2VsYWIiLCB3aGljaCBpcyBvbmUgb2YgdGhlIGJhc2UgdGhlbWVzIHlvdSBjYW4gY2hvb3NlLiBUaGVyZSBhcmUgbWFueSBtb3JlIHRob3VnaCB0aGF0IHlvdSBjYW4gbG9vayB1cCBhbmQgZmluZCBpbiB2YXJpb3VzIHBhY2thZ2VzLiANCg0KTXkgWUFNTCBhbHNvIGluY2x1ZGVzIGRpcmVjdGlvbnMgZm9yIGEgdGFibGUgb2YgY29udGVudHMsIHdoaWNoIGV4aXN0cyBhcyBhbiBpdGVtIHlvdSBjYW4gYWNjZXNzIGZsb2F0aW5nIHRvIHRoZSBsZWZ0LiBJIGhhdmUgYWxzbyBwdXQgYSBjb2RlIGRvd25sb2FkIG9wdGlvbiwgc28geW91IGNhbiBkb3dubG9hZCBhbGwgdGhlIGNvZGUgd2l0aGluIHRoaXMgZmlsZS4gVGhpcyBpcyBoZWxwZnVsIGJlY2F1c2UgYXMgd2Ugd2lsbCBzZWUgYmVsb3csIHlvdSB3aWxsIGxpa2VseSB3YW50IHRvIGtlZXAgbW9zdCBvZiB5b3VyIGNvZGUgaGlkZGVuIGluIHlvdXIgZmluaXNoZWQgcHJvZHVjdC4NCg0KIyBUaGUgVGV4dA0KDQpNb3N0IG9mIHdoYXQgeW91IHNlZSBpbiBhIHJtZCBmaWxlIGlzIGxpa2VseSBnb2luZyB0byBiZSBwbGFpbiB0ZXh0LiBVbmxpa2UgaW4gYW4gciBmaWxlIHdoZXJlIGEgIiMiIHdpbGwgaGlkZSB5b3VyIHRleHQgYXMgbm90ZXMsIGluIGFuIHJtZCBmaWxlIHRoaXMgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSBoZWFkZXJzIHRoYXQgY2FuIGFwcGVhciBpbiBvdXIgdGFibGUgb2YgY29udGVudHMuIEEgc2luZ2xlICMgZm9sbG93ZWQgYnkgYSBzcGFjZSBjcmVhdGVzIHlvdXIgZmlyc3QgaGVhZGVyLCBhbmQgZXZlcnkgYWRkaXRpb25hbCAjIHdpbGwgY3JlYXRlIHN1YnNlcXVlbnQgaGVhZGVycy4gWW91IGNhbiBhbHNvIGluY2x1ZGUgZGlyZWN0aW9ucyBpbiB5b3VyIHRleHQgdG8gY2hhbmdlcyB0aGluZ3MgbGlrZSAqaXRhbGljcyosIG9yIG1ha2luZyBhIHdvcmQgKipib2xkKiouIE9yIG1ha2luZyBhIHdvcmQgKipfYm9sZCBhbmQgaXRhbGljXyoqDQpZb3UgY2FuIGFsc28gaW5jbHVkZSB0aGluZ3MgbGlrZSBwaG90b3MgYW5kIGh5cGVybGlua3MgaW4gdGhlIHRleHQuIA0KDQohW1IgTWFya2Rvd24gRmFzdCBDaGVhdCBTaGVldF0obWFya2Rvd25zaGVldC5qcGcpDQoNClRoZSBwaG90byBhYm92ZSBpcyBzb21ldGhpbmcgSSBzYXZlZCB0byBteSBkZXNrdG9wLiBJbiBvcmRlciB0byBhZGQgcGhvdG9zIGxvY2FsbHkgeW91IHdpbGwgd2FudCB0byBrZWVwIHRoZW0gaW4gdGhlIHNhbWUgd29ya2luZyBkaXJlY3RvcnkgYXMgeW91ciBybWQgZmlsZS4gVGhpcyB3YXkgeW91IG9ubHkgaGF2ZSB0byB0eXBlIHRoZSBmaWxlIG5hbWUgaW4gdGhlIGFwcHJvcHJpYXRlIHN5bnRheCB0byBhZGQgaXQsIHlvdSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGFib3V0IHNwZWNpZnlpbmcgdGhlIHBhdGguIA0KDQpJIGNhbiBhbHNvIGFkZCBwaG90b3MgZnJvbSB0aGUgd2ViIHVzaW5nIGh5cGVybGlua3MuIA0KDQohW0hhcHB5IHNwb29reSBzZWFzb24hXShodHRwczovL2ltYWdlcy5wcm9jb24ub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy9oYWxsb3dlZW4tMjg3MDYwN18xOTIwLmpwZykNCg0KQWRkIGEgaHlwZXJsaW5rDQoNCltSIE1hcmtkb3duIFJlZmVyZW5jZSBHdWlkZV0oaHR0cHM6Ly93d3cucnN0dWRpby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMvcm1hcmtkb3duLXJlZmVyZW5jZS5wZGY/X2dhPTIuMTg4MDg5NTMuMTM0MjUyNzc3My4xNjUyMTEwNjM4LTE1NzczNzYxMjEuMTYzODQ3ODEyNSkNCg0KW0hvdyB0byBXcml0ZSBhIFRoZXNpcyBpbiBPbmUgRGF5XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWRRdzR3OVdnWGNRKQ0KDQoNCiMgVGhlIENvZGUgDQoNClRoZSBjb2RlIGluIGFuIHJtZCBmaWxlIHdvcmtzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgZG9lcyBpbiBhbiByIGZpbGUuIEhvd2V2ZXIsIHlvdSBuZWVkIHRvIGVtYmVkIGl0IGluc2lkZSAiY2h1bmtzIi4gVG8gZG8gdGhpcyB5b3UgdHlwZSBjdHJsK2FsdCtpLCBhbmQgdGhlbiBjb2RlIGFzIHlvdSB1c3VhbGx5IHdvdWxkLiANCg0KDQpgYGB7cn0NCmRhdGEoaXJpcykNCmhlYWQoaXJpcykNCmBgYA0KDQpgYGB7cn0NCnBsb3QoaXJpcyRTZXBhbC5MZW5ndGgsIGlyaXMkU2VwYWwuV2lkdGgpDQpgYGANCg0KIyMgQ29kZSBPcHRpb25zDQoNCkluIHRoZSBhYm92ZSBleGFtcGxlcywgeW91IHNlZSB0aGUgY29kZSBJIHdyb3RlIGFuZCB5b3Ugc2VlIHRoZSBvdXRwdXQuIEJ1dCB5b3UgY2FuIGFsdGVyIHRoaXMgdXNpbmcgdmFyaW91cyBjaHVuayBvcHRpb25zLiANCg0KIVtDaHVuayBjb2RlIG9wdGlvbnMgaW4gUk1EIGZpbGVzXShjaHVua29wdGlvbnMuanBnKQ0KDQpXaXRoIGVjaG89IEZBTFNFLCB5b3UgY2FuIGhpZGUgdGhlIGNvZGUgYnV0IGluY2x1ZGUgdGhlIG91dHB1dC4gDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYm94IDwtIGdncGxvdChkYXRhPWlyaXMsIGFlcyh4PVNwZWNpZXMsIHk9U2VwYWwuTGVuZ3RoKSkNCmJveCArIGdlb21fYm94cGxvdChhZXMoZmlsbD1TcGVjaWVzKSkgKyANCiAgZ2d0aXRsZSgiSXJpcyBCb3hwbG90IikNCg0KYGBgDQoNCldpdGggaW5jbHVkZSA9IEZBTFNFLCB5b3UgY2FuIHdyaXRlIGNvZGUgd2hlcmUgeW91IGRvIG5vdCB3YW50IGVpdGhlciB0aGUgY29kZSBvciB0aGUgb3V0cHV0IHRvIGJlIHNob3duLiBZb3UgbWlnaHQgd2FudCB0byB1c2UgdGhpcyBpbiBmaWxlcyB3aGVyZSB0aGUgY29kZSBpcyBkb3dubG9hZGFibGUsIGFuZCB5b3Ugd2FudCBpdCBhcyBhIGRpcmVjdGlvbmFsIHRvb2wgb3IgZm9yIGluc3RydWN0aW9uLCBvciB0byBob2xkIG9udG8gaW4gY2FzZSB5b3UgbmVlZCBpdCBsYXRlciwgYnV0IGRvbid0IHdhbnQgaXQgdG8gYXBwZWFyIGluIHRoaXMgZmluYWwgcHJvZHVjdC4gDQoNCmBgYHtyLCBpbmNsdWRlID0gRkFMU0V9DQpoaXN0KGlyaXMkU2VwYWwuV2lkdGgsIGZyZXE9TlVMTCwgZGVuc2l0eT1OVUxMLCBicmVha3M9MTIsDQogICAgIHhsYWI9IlNlcGFsIFdpZHRoIiwgeWxhYj0iRnJlcXVlbmN5IiwgbWFpbj0iSGlzdG9ncmFtIG9mIFNlcGFsIFdpZHRoIikNCmBgYA0KDQohW0luIG15IHNjcmlwdCwgSSBoYXZlIGNvZGUgZm9yIGEgaGlzdG9ncmFtLCBidXQgeW91IGNhbid0IHNlZSBpdCBvciB0aGUgcGxvdCBpbiB0aGlzIHJtZCBmaWxlXShpbmNsdWRlZmFsc2UuanBnKQ0KSW4geW91ciBjb2RlLCB5b3UgbWlnaHQgYWxzbyB3YW50IHRvIGluY2x1ZGUgbm90ZXMganVzdCBhcyB5b3Ugd291bGQgaW4gYW4gciBmaWxlLiANClRvIGRvIHRoaXMgeW91IHdyaXRlIHRoZW0gZGlyZWN0bHkgYWZ0ZXIgdGhlIHIgaW4gdGhlIHRvcCBvZiB0aGUgY29kZSBjaHVuazogDQoNCntyIHdyaXRlIHlvdXIgbm90ZXMgb3IgdGl0bGUgeW91ciBjb2RlIGN1bmsgZGlyZWN0bHkgYWZ0ZXIgdGhlIHIgYW5kIGRvbid0IGluY2x1ZGUgY29tbWFzIGFueXdoZXJlIGJlY2F1c2UgdGhhdCBiZWdpbnMgdGhlIGluc3RydWN0aW9ucyBmb3IgdGhlIGNodW5rIG91dHB1dH0NCg0KQmVsb3csIEkgaGF2ZSBjcmVhdGVkIGEgaGlzdG9ncmFtIG9mIHRoZSBJcmlzIGRhdGEuIFlvdSBjYW4ndCBzZWUgdGhlIGNvZGUsIGJ1dCBpZiB5b3Ugd2VyZSB0byBkb3dubG9hZCB0aGUgY29kZSB3aXRoIHRoZSBvcHRpb24gaW4gdGhlIHRvcCByaWdodCBvZiB0aGUgZmlsZSB5b3Ugd291bGQgYmUgYWJsZSB0byBzZWUgbXkgY29kZXMgYW5kIG15IG5vdGVzLiAgDQoNCmBgYHtyIHdyaXRlIHlvdXIgbm90ZXMgb3IgdGl0bGUgeW91ciBjb2RlIGN1bmsgZGlyZWN0bHkgYWZ0ZXIgdGhlIHIsIGVjaG89RkFMU0V9DQoNCmhpc3RvZ3JhbSA8LSBnZ3Bsb3QoZGF0YT1pcmlzLCBhZXMoeD1TZXBhbC5XaWR0aCkpDQpoaXN0b2dyYW0gKyBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0wLjIsIGNvbG9yPSJibGFjayIsIGFlcyhmaWxsPVNwZWNpZXMpKSArIA0KICB4bGFiKCJTZXBhbCBXaWR0aCIpICsgIHlsYWIoIkZyZXF1ZW5jeSIpICsgZ2d0aXRsZSgiSGlzdG9ncmFtIG9mIFNlcGFsIFdpZHRoIikNCg0KYGBgDQoNCiMgQWRkaW5nIFRhYmxlcw0KDQpUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHlvdSBjYW4gZWRpdCB0YWJsZXMgYW5kIG1ha2UgdGhlbSBhcHBlYXIgaG93IHlvdSdkIGxpa2UuIEhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSBleGFtcGxlLiANCg0KVGhlIGZvcm1hdCAtIA0KIVtUYWJsZSBGb3JtYXRdKGZvcm1hdHRhYmxlLmpwZykNCg0KVGhlIG91dHB1dC0gDQoNCioqQ29va2llcyBSZWNlaXZlZCBNb250aGx5KiogfCAqKlNlbGYgUmVwb3J0ZWQgSGFwcGluZXNzIFNjb3JlKioNCiAtLS0gICAgICAgICAgICAgICAgICAgICAgICAgfCAtLS0gICAgICAgIA0KIDAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAwIA0KIDEgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICAgIA0KIDIwICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMDANCg0KDQoNCiMgRmluYWxpemUgWW91ciBEb2N1bWVudDogS25pdA0KDQpPbmNlIHlvdSBhcmUgZG9uZSB3aXRoIHlvdXIgc2NyaXB0LCBjbGljayB0aGUgS25pdCBidXR0b24gb24gdGhlIHRvcCBvZiB0aGUgc2NyZWVuLg0KIVtrbml0XShrbml0LmpwZykNCg0KIyMgU2hhcmluZyB0aGUgZG9jdW1lbnQgDQoNCk9uY2UgeW91IGhhdmUga25pdHRlZCBhbmQgeW91J3JlIGhhcHB5IHdpdGggd2hhdCB5b3UgbWFkZSwgeW91IGNhbiBzaGFyZSB0aGUgZG9jdW1lbnQgaW4gYSBmZXcgd2F5cy4gDQoNCjEuIEZpbmQgdGhlIGh0bWwgZG9jdW1lbnQgaW4gd2hhdGV2ZXIgcGxhY2UgeW91J3ZlIHNhdmVkIGl0LiBUaGlzIHBhcnRpY3VsYXIgZmlsZSBJIGhhdmUgc2F2ZWQgdG8gbXkgZGVza3RvcC4gDQoNCiFbRGVza3RvcCBBY2Nlc3NdKGRlc2t0b3AuanBnKQ0KDQoNCjIuIEluIHRoZSBrbml0dGVkIGRvY3VtZW50LCB0aGVyZSBpcyBhbiBvcHRpb24gdG8gInB1Ymxpc2giLiANCiANCiFbUHVibGlzaF0ocHVibGlzaC5qcGcpDQoNCklmIHlvdSBwdWJsaXNoIHdpdGggUlB1YnMsIHdoaWNoIGlzIGEgZnJlZSBvbmxpbmUgcGxhdGZvcm0sIGl0IHdpbGwgc3RvcmUgYWxsIG9mIHlvdXIgaHRtbCBmaWxlcyBpbiBvbmUgcGxhY2UgYW5kIHlvdSBjYW4gZWl0aGVyIGRpcmVjdCBwZW9wbGUgdG8geW91ciBsaWJyYXJ5LCBvciBzaGFyZSB2aWEgaHlwZXJsaW5rLiANCg0KIyBSZXNvdXJjZXMgDQoNCkhlcmUgYXJlIGEgY291cGxlIG9ubGluZSBzb3VyY2VzIEkgdGhpbmsgYXJlIGEgZ29vZCBwbGFjZSB0byBnZXQgc3RhcnRlZCBsZWFybmluZyByIG1hcmtkb3duIHNwZWNpZmljcy4gDQoNCltjaGVhdCBzaGVldF0oaHR0cHM6Ly93d3cucnN0dWRpby5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDMvcm1hcmtkb3duLXJlZmVyZW5jZS5wZGY/X2dhPTIuMTg4MDg5NTMuMTM0MjUyNzc3My4xNjUyMTEwNjM4LTE1NzczNzYxMjEuMTYzODQ3ODEyNSkNCg0KW0F1dGhvcmluZyBwdWJsaWNhdGlvbiBpbiBSIE1hcmtkb3duIC0gdGhpcyBvbmUgaXMgcmVhbGx5IGdvb2QgYW5kIGFsbCBlbmNvbXBhc3NpbmddKGh0dHBzOi8vdWNzYmNhcnBlbnRyeS5naXRodWIuaW8vUi1tYXJrZG93bi8pDQoNCkhlcmUgaXMgYSBzY3JlZW5zaG90IG9mIHdoYXQgaXQgZ29lcyBvdmVyLCBhbmQgZXN0aW1hdGVkIHRpbWVzIGl0IHdpbGwgdGFrZSB0byByZWFkIHRoZSBzZWN0aW9ucy4gIVtBdXRob3JpbmcgcHVibGljYXRpb24gaW4gUiBNYXJrZG93biBjb250ZW50c10oYXV0aG9yLmpwZykgDQoNClt0aGVtZXNdKGh0dHBzOi8vd3d3LmRhdGFkcmVhbWluZy5vcmcvcG9zdC9yLW1hcmtkb3duLXRoZW1lLWdhbGxlcnkvKQ0KDQpbYm9va2Rvd25dKGh0dHBzOi8vYm9va2Rvd24ub3JnL3lpaHVpL3JtYXJrZG93bi9wa2dkb3duLmh0bWwpDQo=