Skip to content

Instantly share code, notes, and snippets.

@johnmurch
Created July 14, 2020 19:06
Show Gist options
  • Save johnmurch/7de7c8d5f9e086674701215c0bceddcb to your computer and use it in GitHub Desktop.
Save johnmurch/7de7c8d5f9e086674701215c0bceddcb to your computer and use it in GitHub Desktop.
<!-- JUST ADD JS -->
<html>
<head>
<style>
/*! CSS Used from: https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons */
.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}
/*! CSS Used from: https://www.gstatic.com/devrel-devsite/prod/v4d5d232859440be8edf63a1095b80ebe5c19605e99f3b348a30c4b0140c2eb88/cloud/css/app.css */
devsite-code{clear:both;direction:ltr!important;display:block;margin:16px 0;overflow:hidden;position:relative;}
devsite-code .devsite-code-buttons-container{position:absolute;right:0;top:0;}
devsite-code .devsite-code-buttons-container button{-webkit-box-align:center;-webkit-align-items:center;align-items:center;background:0;border:0;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;color:#757575;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;font-size:18px;height:24px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;margin:0;min-width:auto;padding:0;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s;width:24px;}
devsite-code .devsite-code-buttons-container button:focus,devsite-code .devsite-code-buttons-container button:hover{color:#212121;}
devsite-code .devsite-code-buttons-container button.material-icons,devsite-code .devsite-code-buttons-container button.material-icons:hover{cursor:pointer;}
devsite-code .devsite-code-buttons-container .devsite-toggle-dark{display:inline;}
devsite-code:not([dark-code]) .devsite-code-buttons-container .devsite-toggle-light{display:none;}
devsite-code pre{margin:0;}
devsite-code pre .com{color:#d81b60;}
devsite-code pre .tag{color:#3b78e7;}
devsite-selector{background:#fff;border:1px solid #e8eaed;display:block;font:14px/20px Roboto,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;margin:16px 0;}
devsite-selector devsite-tabs{display:none;}
devsite-selector devsite-tabs[connected]{border-bottom:1px solid #e8eaed;display:-webkit-box;display:-webkit-flex;display:flex;}
devsite-selector devsite-tabs tab a{color:#5f6368;cursor:pointer;display:inline-block;-webkit-flex-shrink:0;flex-shrink:0;line-height:48px;margin:0;max-width:200px;overflow:hidden;padding:0 24px;text-align:center;-o-text-overflow:ellipsis;text-overflow:ellipsis;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s;white-space:nowrap;}
devsite-selector devsite-tabs tab a:link,devsite-selector devsite-tabs tab a:visited{color:#5f6368;}
devsite-selector devsite-tabs tab[active] a:link,devsite-selector devsite-tabs tab[active] a:visited,devsite-selector devsite-tabs tab a:focus,devsite-selector devsite-tabs tab a:hover{color:#1a73e8;}
@media screen and (-ms-high-contrast:active){
devsite-selector devsite-tabs tab[active] a{font-weight:700;text-decoration:underline;}
}
devsite-selector devsite-tabs tab[active] a:after,devsite-selector devsite-tabs tab a:focus:after,devsite-selector devsite-tabs tab a:hover:after{-webkit-border-radius:0;border-radius:0;bottom:0;height:2px;left:0;right:0;}
devsite-selector devsite-tabs tab[active] a:after{background:#1a73e8;}
body devsite-selector devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a{height:auto;min-height:48px;width:100%;}
devsite-selector>section{display:none;outline:0;}
devsite-selector>section[active]{display:block;padding:0 23px;}
devsite-selector>section>.github-docwidget-gitinclude-code>devsite-code,devsite-selector>section>aside.note,devsite-selector>section>devsite-code{margin:0 -23px;}
devsite-selector>section>:first-child:not(aside):not(devsite-code):not(table):not(.devsite-table-wrapper):not([class^=github-]){margin-top:15px;}
devsite-selector>section>devsite-code pre{padding-left:23px;}
.devsite-article devsite-selector .material-icons{font-size:18px;vertical-align:text-bottom;}
devsite-selector[ready]{pointer-events:auto;visibility:visible;}
devsite-tabs{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;height:48px;max-width:-webkit-calc(100% - 208px);max-width:calc(100% - 208px);position:relative;}
devsite-tabs[connected]{max-width:none;}
devsite-tabs .devsite-tabs-wrapper{bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;left:0;overflow:hidden;position:absolute;right:0;top:0;}
devsite-tabs tab{-webkit-flex-shrink:0;flex-shrink:0;position:relative;}
devsite-tabs tab,devsite-tabs tab>a{display:-webkit-box;display:-webkit-flex;display:flex;}
devsite-tabs tab>a{-webkit-box-align:center;-webkit-align-items:center;align-items:center;font:500 14px/20px Roboto,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;margin:0;padding:0 24px;text-transform:uppercase;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s;white-space:nowrap;}
devsite-tabs tab>a,devsite-tabs tab>a:focus,devsite-tabs tab>a:hover{text-decoration:none;}
devsite-tabs tab[active] a:after,devsite-tabs tab a:focus:after,devsite-tabs tab a:hover:after{bottom:0;content:"";display:block;height:2px;left:0;position:absolute;right:0;}
devsite-tabs tab[overflow-tab]{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;position:relative;}
devsite-tabs tab[overflow-tab] tab>a{padding:0 24px;}
devsite-tabs tab[overflow-tab] a{-webkit-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;position:relative;}
devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu{background:#fff;-webkit-border-radius:2px;border-radius:2px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;max-height:320px;overflow-y:auto;padding:16px 0;position:absolute;top:-16px;z-index:1005;}
body devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a{background:#fff;color:#5f6368;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;height:48px;}
body devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a:focus,body devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a:hover{background:#f1f3f4;color:#202124;}
aside,section{display:block;}
[hidden]{display:none;}
a:focus{outline:thin dotted;}
a:active,a:hover{outline:0;}
strong{font-weight:700;}
code,pre{font-family:monospace,serif;font-size:1em;}
pre{white-space:pre-wrap;}
button{font-family:inherit;font-size:100%;margin:0;}
button{line-height:normal;}
button{text-transform:none;}
button{-webkit-appearance:button;cursor:pointer;}
button::-moz-focus-inner{border:0;padding:0;}
div{margin:0;padding:0;}
.note>:first-child,aside>:first-child{margin-top:0;}
.note>:last-child,aside>:last-child{margin-bottom:0;}
*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit;}
p{margin:16px 0;padding:0;}
:link,:visited{color:#1a73e8;outline:0;text-decoration:none;}
a:focus{text-decoration:underline;}
ul{margin:0;padding-left:40px;}
ul{list-style:disc outside;}
li{margin:12px 0;padding:0;}
strong{font-weight:700;}
[hidden]{display:none!important;}
.devsite-article .material-icons{vertical-align:bottom;}
a.external:after{font:normal normal normal 24px/1 Material Icons;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-transform:none;word-wrap:normal;content:"open_in_new";font-size:18px;margin:0;vertical-align:text-bottom;}
[dir=ltr] a.external:after{margin-left:4px;}
.devsite-icon:before{font:normal normal normal 24px/1 Material Icons;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-transform:none;word-wrap:normal;}
.devsite-icon-arrow-drop-down:before{content:"arrow_drop_down";}
.devsite-icon-code-dark:before,.devsite-icon-code-light:before{content:"brightness_medium";}
.devsite-icon-copy:before{content:"content_copy";}
aside{display:block;font-size:14px;margin:16px 0;padding:16px 24px;}
[dir=ltr] aside{padding-left:60px;}
aside:before{font:normal normal normal 24px/1 Material Icons;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-transform:none;word-wrap:normal;margin:0;}
[dir=ltr] aside:before{float:left;margin-left:-36px;}
aside :link,aside :visited{text-decoration:underline;}
.note{display:block;font-size:14px;margin:16px 0;padding:16px 24px;}
[dir=ltr] .note{padding-left:60px;}
.note:before{font:normal normal normal 24px/1 Material Icons;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;text-transform:none;word-wrap:normal;margin:0;}
[dir=ltr] .note:before{float:left;margin-left:-36px;}
.note :link,.note :visited{text-decoration:underline;}
.note,.note :link,.note :visited,aside,aside :link,aside :visited{background:#e1f5fe;color:#01579b;}
.note:before,aside:before{content:"star";}
code,pre{background:#f1f3f4;color:#37474f;direction:ltr!important;font:400 100%/1 Roboto Mono,monospace;padding:1px 4px;text-align:left!important;}
code{font:500 90%/1 Roboto Mono,monospace;word-break:break-word;}
pre code{font-weight:400;word-break:normal;}
pre{font:14px/20px Roboto Mono,monospace;margin:16px 0;overflow-x:auto;padding:24px;position:relative;}
pre code{background:0;font-size:14px;padding:0;}
button{-moz-appearance:none;-webkit-appearance:none;background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;color:#1a73e8;cursor:pointer;display:inline-block;height:36px;margin:0;min-width:36px;outline:0;overflow:hidden;text-decoration:none;-o-text-overflow:ellipsis;text-overflow:ellipsis;-webkit-transition:background-color .2s,border .2s,-webkit-box-shadow .2s;transition:background-color .2s,border .2s,-webkit-box-shadow .2s;-o-transition:background-color .2s,border .2s,box-shadow .2s;transition:background-color .2s,border .2s,box-shadow .2s;transition:background-color .2s,border .2s,box-shadow .2s,-webkit-box-shadow .2s;vertical-align:middle;white-space:nowrap;-webkit-border-radius:4px;border-radius:4px;border:1px solid #dadce0;-webkit-box-shadow:none;box-shadow:none;font:500 14px/36px Google Sans,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;line-height:34px;padding:0 24px;}
button:active,button:focus,button:hover{background:#e8f0fe;}
button:focus,button:hover{border:1px solid #d2e3fc;}
button:active{border:1px solid #e8f0fe;-webkit-box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);}
button+button{margin-left:16px;}
.devsite-tabs-overflow-menu::-webkit-scrollbar,[scrollbars]::-webkit-scrollbar,pre::-webkit-scrollbar{height:8px;width:8px;}
.devsite-tabs-overflow-menu::-webkit-scrollbar-thumb,[scrollbars]::-webkit-scrollbar-thumb,pre::-webkit-scrollbar-thumb{background:rgba(128,134,139,.26);-webkit-border-radius:8px;border-radius:8px;}
[scrollbars]::-webkit-scrollbar-corner,pre::-webkit-scrollbar-corner{background:0;}
devsite-selector{pointer-events:none;visibility:hidden;}
@media print{
.note,:link,:visited,aside,aside :link,aside :visited,code,pre,pre .com,pre .pln,pre .tag{color:#000!important;padding-left:0!important;padding-right:0!important;}
:link,:visited{text-decoration:underline;}
.devsite-code-buttons-container{display:none!important;}
.devsite-main-content a[href]:after{content:"�(" attr(href) ")";display:inline-block;font:14px/20px Roboto,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;max-width:100%;word-wrap:break-word;}
}
devsite-content devsite-code pre{padding:24px;}
devsite-content devsite-code .devsite-code-buttons-container button{height:32px;width:32px;}
body devsite-selector{-webkit-border-radius:8px;border-radius:8px;border:1px solid #dadce0;-webkit-box-shadow:none;box-shadow:none;}
body devsite-selector devsite-tabs tab a{line-height:48px;padding:0 18px;}
body devsite-selector devsite-tabs tab a:link,body devsite-selector devsite-tabs tab a:visited{color:#5f6368;}
body devsite-selector devsite-tabs[connected]{border-bottom:1px solid #dadce0;}
body devsite-selector devsite-tabs>div>tab[tab] a:focus:after,body devsite-selector devsite-tabs>div>tab[tab] a:hover:after{background:#5f6368;}
body devsite-selector devsite-tabs>div>tab[active] a:after,body devsite-selector devsite-tabs>div>tab[active] a:focus:after,body devsite-selector devsite-tabs>div>tab[active] a:hover:after{background:#1a73e8;}
body devsite-selector>section>.github-docwidget-gitinclude-code>devsite-code:last-child>pre,body devsite-selector>section>aside:last-child,body devsite-selector>section>devsite-code:last-child>pre{-webkit-border-radius:0 0 8px 8px;border-radius:0 0 8px 8px;}
body devsite-selector devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a:focus,body devsite-selector devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu tab a:hover{background:#e8f0fe;}
body devsite-tabs tab>a{font:500 14px/20px Google Sans,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;padding:0 18px;text-transform:none;}
body[theme] devsite-tabs tab[active] a:after,body[theme] devsite-tabs tab a:focus:after,body[theme] devsite-tabs tab a:hover:after{-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;bottom:0;height:3px;left:22px;right:22px;}
body devsite-tabs tab[overflow-tab] .devsite-tabs-overflow-menu{-webkit-border-radius:4px;border-radius:4px;top:44px;}
p{color:#5f6368;font-family:Roboto,Noto Sans,Noto Sans JP,Noto Sans KR,Noto Naskh Arabic,Noto Sans Thai,Noto Sans Hebrew,Noto Sans Bengali,sans-serif;font-size:16px;font-weight:400;line-height:28px;}
body[type=article] p{color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}
a:focus{outline:none;}
pre{white-space:pre;}
/*! CSS Used fontfaces */
@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v53/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xFIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xMIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xEIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xLIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xHIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xGIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;src:local('Roboto Italic'), local('Roboto-Italic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc3CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc-CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc2CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc5CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc1CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc0CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:500;src:local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51S7ACc6CsTYl4BO.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic3CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic-CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic2CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic5CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic1CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic0CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;src:local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(https://fonts.gstatic.com/s/roboto/v20/KFOjCnqEu92Fr1Mu51TzBic6CsTYl4BO.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;src:local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;src:local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhGq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhPq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhIq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhEq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhFq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhGq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhPq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhIq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhEq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhFq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhGq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhPq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhIq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhEq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhFq3-cXbKDO1w.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:400;src:local('Google Sans Regular'), local('GoogleSans-Regular'), url(https://fonts.gstatic.com/s/googlesans/v16/4UaGrENHsxJlGDuGo1OIlL3Kwp5eKQtGBlc.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:400;src:local('Google Sans Regular'), local('GoogleSans-Regular'), url(https://fonts.gstatic.com/s/googlesans/v16/4UaGrENHsxJlGDuGo1OIlL3Nwp5eKQtGBlc.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:400;src:local('Google Sans Regular'), local('GoogleSans-Regular'), url(https://fonts.gstatic.com/s/googlesans/v16/4UaGrENHsxJlGDuGo1OIlL3Bwp5eKQtGBlc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:400;src:local('Google Sans Regular'), local('GoogleSans-Regular'), url(https://fonts.gstatic.com/s/googlesans/v16/4UaGrENHsxJlGDuGo1OIlL3Awp5eKQtGBlc.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:400;src:local('Google Sans Regular'), local('GoogleSans-Regular'), url(https://fonts.gstatic.com/s/googlesans/v16/4UaGrENHsxJlGDuGo1OIlL3Owp5eKQtG.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:500;src:local('Google Sans Medium'), local('GoogleSans-Medium'), url(https://fonts.gstatic.com/s/googlesans/v16/4UabrENHsxJlGDuGo1OIlLU94Yt3CwZsPF4oxIs.woff2) format('woff2');unicode-range:U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:500;src:local('Google Sans Medium'), local('GoogleSans-Medium'), url(https://fonts.gstatic.com/s/googlesans/v16/4UabrENHsxJlGDuGo1OIlLU94YtwCwZsPF4oxIs.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:500;src:local('Google Sans Medium'), local('GoogleSans-Medium'), url(https://fonts.gstatic.com/s/googlesans/v16/4UabrENHsxJlGDuGo1OIlLU94Yt8CwZsPF4oxIs.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:500;src:local('Google Sans Medium'), local('GoogleSans-Medium'), url(https://fonts.gstatic.com/s/googlesans/v16/4UabrENHsxJlGDuGo1OIlLU94Yt9CwZsPF4oxIs.woff2) format('woff2');unicode-range:U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Google Sans';font-style:normal;font-weight:500;src:local('Google Sans Medium'), local('GoogleSans-Medium'), url(https://fonts.gstatic.com/s/googlesans/v16/4UabrENHsxJlGDuGo1OIlLU94YtzCwZsPF4o.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
</style>
</head>
<body>
<devsite-selector scope="code-sample" active="c" ready="">
<devsite-tabs role="tablist" connected="">
<div class="devsite-tabs-wrapper">
<tab role="tab" aria-selected="true" aria-controls="tabpanel-c" tab="c" id="client-libraries-install-csharp" active="">
<a id="aria-tab-c" role="button" track-type="sampleTabNav" track-name="csharp" track-metadata-position="client-libraries-install" href="#c" aria-selected="true">C#</a>
</tab>
<tab role="tab" aria-selected="false" aria-controls="tabpanel-go" tab="go" id="client-libraries-install-go">
<a id="aria-tab-go" role="button" track-type="sampleTabNav" track-name="go" track-metadata-position="client-libraries-install" href="#go">Go</a>
</tab>
<tab role="tab" aria-selected="false" aria-controls="tabpanel-java" tab="java" id="client-libraries-install-java">
<a id="aria-tab-java" role="button" track-type="sampleTabNav" track-name="java" track-metadata-position="client-libraries-install" href="#java">Java</a>
</tab>
<tab role="tab" aria-selected="false" aria-controls="tabpanel-node.js" tab="node.js" id="client-libraries-install-nodejs">
<a id="aria-tab-node.js" role="button" track-type="sampleTabNav" track-name="nodejs" track-metadata-position="client-libraries-install" href="#node.js">Node.js</a>
</tab>
<tab overflow-tab="">
<a href="#" class="devsite-icon devsite-icon-arrow-drop-down">More</a>
<div class="devsite-tabs-overflow-menu" scrollbars="" hidden="">
<tab role="tab" aria-selected="false" aria-controls="tabpanel-php" tab="php" id="client-libraries-install-php">
<a id="aria-tab-php" role="button" track-type="sampleTabNav" track-name="php" track-metadata-position="client-libraries-install" href="#php">PHP</a>
</tab>
<tab role="tab" aria-selected="false" aria-controls="tabpanel-python" tab="python" id="client-libraries-install-python">
<a id="aria-tab-python" role="button" track-type="sampleTabNav" track-name="python" track-metadata-position="client-libraries-install" href="#python">Python</a>
</tab>
<tab role="tab" aria-selected="false" aria-controls="tabpanel-ruby" tab="ruby" id="client-libraries-install-ruby">
<a id="aria-tab-ruby" role="button" track-type="sampleTabNav" track-name="ruby" track-metadata-position="client-libraries-install" href="#ruby">Ruby</a>
</tab>
</div>
</tab>
</div>
</devsite-tabs>
<section tab="c" role="tabpanel" aria-labelledby="aria-tab-c" tabindex="0" id="tabpanel-c" active="">
<p>
For more on setting up your C# development environment, refer to the
<a href="/dotnet/docs/setup" track-type="languageSetup" track-name="csharp" track-metadata-position="client-libraries-install">C# Development Environment Setup Guide</a>.
</p>
<devsite-code>
<pre class="notranslate" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">Install-Package Google.Cloud.BigQuery.V2 -Pre</pre>
<div class="devsite-code-buttons-container">
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-dark devsite-toggle-dark" data-category="Site-Wide Custom Events" data-label="Dark Code Toggle" track-type="exampleCode" track-name="darkCodeToggle" aria-label="Dark code theme" data-title="Dark code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-light devsite-toggle-light" data-category="Site-Wide Custom Events" data-label="Light Code Toggle" track-type="exampleCode" track-name="lightCodeToggle" aria-label="Light code theme" data-title="Light code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-copy" data-category="Site-Wide Custom Events" data-label="Click To Copy" track-type="exampleCode" track-name="clickToCopy" aria-label="Copy code sample to clipboard" data-title="Copy code sample to clipboard"></button>
</div>
</devsite-code>
</section>
<section tab="go" role="tabpanel" aria-labelledby="aria-tab-go" tabindex="0" id="tabpanel-go">
<devsite-code>
<pre class="notranslate" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">go get -u cloud.google.com/go/bigquery</pre>
<div class="devsite-code-buttons-container">
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-dark devsite-toggle-dark" data-category="Site-Wide Custom Events" data-label="Dark Code Toggle" track-type="exampleCode" track-name="darkCodeToggle" aria-label="Dark code theme" data-title="Dark code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-light devsite-toggle-light" data-category="Site-Wide Custom Events" data-label="Light Code Toggle" track-type="exampleCode" track-name="lightCodeToggle" aria-label="Light code theme" data-title="Light code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-copy" data-category="Site-Wide Custom Events" data-label="Click To Copy" track-type="exampleCode" track-name="clickToCopy" aria-label="Copy code sample to clipboard" data-title="Copy code sample to clipboard"></button>
</div>
</devsite-code>
</section>
<section tab="java" role="tabpanel" aria-labelledby="aria-tab-java" tabindex="0" id="tabpanel-java">
<p>
For more on setting up your Java development environment, refer to the
<a href="/java/docs/setup" track-type="languageSetup" track-name="java" track-metadata-position="client-libraries-install">Java Development Environment Setup Guide</a>.
</p>
<p>If you are using
<a href="https://maven.apache.org/" class="external" track-type="buildTools" track-name="externalLink">Maven</a>, add
the following to your
<code translate="no" dir="ltr">pom.xml</code> file. For more information about
BOMs, see
<a href="https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM">The Google Cloud Platform Libraries BOM</a>.
</p>
<div class="github-docwidget-gitinclude-code">
<devsite-code>
<pre suppresswarning="suppresswarning" translate="no" class="" track-metadata-position="googleapis/java-bigquery/README.md/master/```xml[^`]*```" data-code-snippet="true" data-github-path="googleapis/java-bigquery/README.md" data-git-revision="master" data-regexp="```xml[^`]*```" dir="ltr" is-upgraded="">
<code dir="ltr">
<span class="com">&lt;!-- &nbsp;Using libraries-bom to manage versions.
<br>See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM --&gt;
</span>
<span class="pln">
<br>
</span>
<span class="tag">&lt;dependencyManagement&gt;</span>
<span class="pln">
<br>&nbsp;
</span>
<span class="tag">&lt;dependencies&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp;
</span>
<span class="tag">&lt;dependency&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp; &nbsp;
</span>
<span class="tag">&lt;groupId&gt;</span>
<span class="pln">com.google.cloud</span>
<span class="tag">&lt;/groupId&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp; &nbsp;
</span>
<span class="tag">&lt;artifactId&gt;</span>
<span class="pln">libraries-bom</span>
<span class="tag">&lt;/artifactId&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp; &nbsp;
</span>
<span class="tag">&lt;version&gt;</span>
<span class="pln">8.0.0</span>
<span class="tag">&lt;/version&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp; &nbsp;
</span>
<span class="tag">&lt;type&gt;</span>
<span class="pln">pom</span>
<span class="tag">&lt;/type&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp; &nbsp;
</span>
<span class="tag">&lt;scope&gt;</span>
<span class="pln">import</span>
<span class="tag">&lt;/scope&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp;
</span>
<span class="tag">&lt;/dependency&gt;</span>
<span class="pln">
<br>&nbsp;
</span>
<span class="tag">&lt;/dependencies&gt;</span>
<span class="pln">
<br>
</span>
<span class="tag">&lt;/dependencyManagement&gt;</span>
<span class="pln">
<br>
<br>
</span>
<span class="tag">&lt;dependencies&gt;</span>
<span class="pln">
<br>&nbsp;
</span>
<span class="tag">&lt;dependency&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp;
</span>
<span class="tag">&lt;groupId&gt;</span>
<span class="pln">com.google.cloud</span>
<span class="tag">&lt;/groupId&gt;</span>
<span class="pln">
<br>&nbsp; &nbsp;
</span>
<span class="tag">&lt;artifactId&gt;</span>
<span class="pln">google-cloud-bigquery</span>
<span class="tag">&lt;/artifactId&gt;</span>
<span class="pln">
<br>&nbsp;
</span>
<span class="tag">&lt;/dependency&gt;</span>
<span class="pln">
<br>
</span>
</code>
</pre>
<div class="devsite-code-buttons-container">
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-dark devsite-toggle-dark" data-category="Site-Wide Custom Events" data-label="Dark Code Toggle" track-type="exampleCode" track-name="darkCodeToggle" aria-label="Dark code theme" data-title="Dark code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-code-light devsite-toggle-light" data-category="Site-Wide Custom Events" data-label="Light Code Toggle" track-type="exampleCode" track-name="lightCodeToggle" aria-label="Light code theme" data-title="Light code theme"></button>
<button type="button" class="gc-analytics-event material-icons devsite-icon-copy" data-category="Site-Wide Custom Events" data-label="Click To Copy" track-type="exampleCode" track-name="clickToCopy" aria-label="Copy code sample to clipboard" data-title="Copy code sample to clipboard"></button>
</div>
</devsite-code>
</div>
<p>If you are using
<a href="https://gradle.org/" class="external" track-type="buildTools" track-name="externalLink" target="_blank">Gradle</a>,
add the following to your dependencies:
</p>
<div class="github-docwidget-gitinclude-code">
<devsite-code>
<pre suppresswarning="suppresswarning" translate="no" class="prettyprint " track-metadata-position="googleapis/java-bigquery/README.md/master/```Groovy[^`]*```" data-code-snippet="true" data-github-path="googleapis/java-bigquery/README.md" data-git-revision="master" data-regexp="```Groovy[^`]*```" dir="ltr" is-upgraded="">
<code translate="no" dir="ltr">compile 'com.google.cloud:google-cloud-bigquery:1.116.6'</code>
</pre>
</devsite-code>
</div>
<p>If you are using
<a href="https://www.scala-sbt.org/" class="external" track-type="buildTools" track-name="externalLink" target="_blank">sbt</a>, add
the following to your dependencies:
</p>
<div class="github-docwidget-gitinclude-code">
<devsite-code>
<pre suppresswarning="suppresswarning" translate="no" class="prettyprint " track-metadata-position="googleapis/java-bigquery/README.md/master/```Scala[^`]*```" data-code-snippet="true" data-github-path="googleapis/java-bigquery/README.md" data-git-revision="master" data-regexp="```Scala[^`]*```" dir="ltr" is-upgraded="">
<code translate="no" dir="ltr">libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.6"</code>
</pre>
</devsite-code>
</div>
<p>If you're using IntelliJ or Eclipse, you can add client libraries to your project using the
following IDE plugins:</p>
<ul>
<li>
<a href="/tools/intellij/docs/client-libraries" target="_blank">Cloud Code for IntelliJ</a>
</li>
<li>
<a href="/eclipse/docs/libraries" target="_blank">Cloud Tools for Eclipse</a>
</li>
</ul>
<p>The plugins provide additional functionality, such as key management for service accounts. Refer
to each plugin's documentation for details.</p>
<aside class="note">
<strong>Note:</strong> Cloud Java client libraries do not currently support Android.
</aside>
</section>
<section tab="node.js" role="tabpanel" aria-labelledby="aria-tab-node.js" tabindex="0" id="tabpanel-node.js">
<p>
For more on setting up your Node.js development environment, refer to the
<a href="/nodejs/docs/setup" track-type="languageSetup" track-name="nodejs" track-metadata-position="client-libraries-install">Node.js Development Environment Setup Guide</a>.
</p>
<devsite-code>
<pre class="notranslate devsite-click-to-copy" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">npm install --save @google-cloud/bigquery</pre>
</devsite-code>
</section>
<section tab="php" role="tabpanel" aria-labelledby="aria-tab-php" tabindex="0" id="tabpanel-php">
<devsite-code>
<pre class="notranslate devsite-click-to-copy" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">composer require google/cloud-bigquery</pre>
</devsite-code>
</section>
<section tab="python" role="tabpanel" aria-labelledby="aria-tab-python" tabindex="0" id="tabpanel-python">
<p>
For more on setting up your Python development environment, refer to the
<a href="/python/setup" track-type="languageSetup" track-name="python" track-metadata-position="client-libraries-install">Python Development Environment Setup Guide</a>.
</p>
<devsite-code>
<pre class="notranslate devsite-click-to-copy" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">pip install --upgrade google-cloud-bigquery</pre>
</devsite-code>
</section>
<section tab="ruby" role="tabpanel" aria-labelledby="aria-tab-ruby" tabindex="0" id="tabpanel-ruby">
<p>
For more on setting up your Ruby development environment, refer to the
<a href="/ruby/docs/setup" track-type="languageSetup" track-name="ruby" track-metadata-position="client-libraries-install">Ruby Development Environment Setup Guide</a>.
</p>
<devsite-code>
<pre class="notranslate devsite-click-to-copy" suppresswarning="suppresswarning" dir="ltr" is-upgraded="">gem install google-cloud-bigquery</pre>
</devsite-code>
</section>
</devsite-selector>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment