openstudio-load-flexibility-measures 0.1.3 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bab354da71f81f20c47dcdda629965c11ea7fc402f09b6383f3e22292a461ec2
4
- data.tar.gz: dddc55254365477fc787866d3fa3298b4136f6fc38a15b5ef7dc3418b6887420
3
+ metadata.gz: 678b5aacbeb51baa27c912b8691b2eaa2279ba92dbc96ebe0a9dd3f111a29c42
4
+ data.tar.gz: 12768b48601c478e3e6119d7aff9c1456c21ca4ded142561a061303839458aad
5
5
  SHA512:
6
- metadata.gz: 0dd68836c8e62800b7a2ef544e0ce067a08e39184a826763aaf2d2672f8d272e6ebb232f10f98945fd06074b43cbd71c484ec8100122dcc5a38c315e1acb2cf0
7
- data.tar.gz: a7ade7e07aff4b029abc28c8d0ebf8cfb0eb25cdae4de8696f3287fe9779eed7fb98db256edbbe0d2f51b0f8dd76758850b809aa3b4f2ab9a67e06cb0ea722ae
6
+ metadata.gz: ef15d6c3b4900eda9ca4d128668a06e1dbf77335902a61732bd920cff9748f061bb907810c2a497ea0127e450d5d5f8b2a217d526d9fe85938b3743b36db20d6
7
+ data.tar.gz: 93e4dedd2bd79ef2d9b1254e3e78eebbf3bd949f18682b224219c468c04c22365d3a958cc917a8ec38157107aab0bd8c2c0bd811cf19e7816b734c21fa86f5b3
data/CHANGELOG.html ADDED
@@ -0,0 +1,76 @@
1
+ <!DOCTYPE html><html lang="zh-cmn-Hans"><head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
4
+ <style type="text/css">
5
+ .anim-fade-in{-webkit-animation-name:fade-in;animation-name:fade-in;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.anim-fade-in.fast{-webkit-animation-duration:300ms;animation-duration:300ms}@-webkit-keyframes fade-in{0%{opacity:0}100%{opacity:1}}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.anim-fade-up{opacity:0;-webkit-animation-name:fade-up;animation-name:fade-up;-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes fade-up{0%{opacity:0.8;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fade-up{0%{opacity:0.8;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.anim-fade-down{-webkit-animation-name:fade-down;animation-name:fade-down;-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes fade-down{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0.5;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes fade-down{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0.5;-webkit-transform:translateY(100%);transform:translateY(100%)}}.anim-grow-x{width:0%;-webkit-animation-name:grow-x;animation-name:grow-x;-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes grow-x{to{width:100%}}@keyframes grow-x{to{width:100%}}.anim-shrink-x{-webkit-animation-name:shrink-x;animation-name:shrink-x;-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-delay:0.5s;animation-delay:0.5s}@-webkit-keyframes shrink-x{to{width:0%}}@keyframes shrink-x{to{width:0%}}.anim-scale-in{-webkit-animation-name:scale-in;animation-name:scale-in;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5);animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5)}@-webkit-keyframes scale-in{0%{opacity:0;-webkit-transform:scale(0.5);transform:scale(0.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-in{0%{opacity:0;-webkit-transform:scale(0.5);transform:scale(0.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.anim-pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes pulse{0%{opacity:0.3}10%{opacity:1}100%{opacity:0.3}}@keyframes pulse{0%{opacity:0.3}10%{opacity:1}100%{opacity:0.3}}.anim-pulse-in{-webkit-animation-name:pulse-in;animation-name:pulse-in;-webkit-animation-duration:0.5s;animation-duration:0.5s}@-webkit-keyframes pulse-in{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes pulse-in{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.border{border:1px #e1e4e8 solid !important}.border-top{border-top:1px #e1e4e8 solid !important}.border-right{border-right:1px #e1e4e8 solid !important}.border-bottom{border-bottom:1px #e1e4e8 solid !important}.border-left{border-left:1px #e1e4e8 solid !important}.border-y{border-top:1px #e1e4e8 solid !important;border-bottom:1px #e1e4e8 solid !important}.border-dashed{border-style:dashed !important}.border-blue{border-color:#0366d6 !important}.border-blue-light{border-color:#c8e1ff !important}.border-green{border-color:#34d058 !important}.border-green-light{border-color:#a2cbac !important}.border-red{border-color:#d73a49 !important}.border-red-light{border-color:#cea0a5 !important}.border-purple{border-color:#6f42c1 !important}.border-yellow{border-color:#d9d0a5 !important}.border-gray-light{border-color:#eaecef !important}.border-gray-dark{border-color:#d1d5da !important}.border-black-fade{border-color:rgba(27,31,35,0.15) !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:3px !important}.rounded-2{border-radius:6px !important}.box-shadow{box-shadow:0 1px 1px rgba(0,0,0,0.1) !important}.box-shadow-medium{box-shadow:0 1px 5px rgba(0,0,0,0.15) !important}.box-shadow-large{box-shadow:0 1px 15px rgba(0,0,0,0.15) !important}.box-shadow-extra-large{box-shadow:0 10px 50px rgba(0,0,0,0.07) !important}.box-shadow-none{box-shadow:none !important}.bg-white{background-color:#fff !important}.bg-blue{background-color:#0366d6 !important}.bg-blue-light{background-color:#f1f8ff !important}.bg-gray-dark{background-color:#24292e !important}.bg-gray{background-color:#f6f8fa !important}.bg-gray-light{background-color:#fafbfc !important}.bg-green{background-color:#28a745 !important}.bg-green-light{background-color:#dcffe4 !important}.bg-red{background-color:#d73a49 !important}.bg-red-light{background-color:#ffdce0 !important}.bg-yellow{background-color:#ffd33d !important}.bg-yellow-light{background-color:#fff5b1 !important}.bg-purple{background-color:#6f42c1 !important}.bg-purple-light{background-color:#f5f0ff !important}.bg-shade-gradient{background-image:-webkit-linear-gradient(270deg, rgba(0,0,0,0.065), transparent) !important;background-image:linear-gradient(180deg, rgba(0,0,0,0.065), transparent) !important;background-repeat:no-repeat !important;background-size:100% 200px !important}.text-blue{color:#0366d6 !important}.text-red{color:#cb2431 !important}.text-gray-light{color:#6a737d !important}.text-gray{color:#586069 !important}.text-gray-dark{color:#24292e !important}.text-green{color:#28a745 !important}.text-orange{color:#a04100 !important}.text-orange-light{color:#e36209 !important}.text-purple{color:#6f42c1 !important}.text-white{color:#fff !important}.text-inherit{color:inherit !important}.text-pending{color:#b08800 !important}.bg-pending{color:#dbab09 !important}.link-gray{color:#586069 !important}.link-gray:hover{color:#0366d6 !important}.link-gray-dark{color:#24292e !important}.link-gray-dark:hover{color:#0366d6 !important}.link-hover-blue:hover{color:#0366d6 !important}.muted-link{color:#586069 !important}.muted-link:hover{color:#0366d6 !important;text-decoration:none}.flex-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-webkit-flex-direction:row !important;flex-direction:row !important}.flex-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-webkit-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-webkit-flex-direction:column !important;flex-direction:column !important}.flex-wrap{-webkit-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-nowrap{-webkit-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-justify-start{-webkit-box-pack:start !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important}.flex-justify-end{-webkit-box-pack:end !important;-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.flex-justify-center{-webkit-box-pack:center !important;-webkit-justify-content:center !important;justify-content:center !important}.flex-justify-between{-webkit-box-pack:justify !important;-webkit-justify-content:space-between !important;justify-content:space-between !important}.flex-justify-around{-webkit-justify-content:space-around !important;justify-content:space-around !important}.flex-items-start{-webkit-box-align:start !important;-webkit-align-items:flex-start !important;align-items:flex-start !important}.flex-items-end{-webkit-box-align:end !important;-webkit-align-items:flex-end !important;align-items:flex-end !important}.flex-items-center{-webkit-box-align:center !important;-webkit-align-items:center !important;align-items:center !important}.flex-items-baseline{-webkit-box-align:baseline !important;-webkit-align-items:baseline !important;align-items:baseline !important}.flex-items-stretch{-webkit-box-align:stretch !important;-webkit-align-items:stretch !important;align-items:stretch !important}.flex-content-start{-webkit-align-content:flex-start !important;align-content:flex-start !important}.flex-content-end{-webkit-align-content:flex-end !important;align-content:flex-end !important}.flex-content-center{-webkit-align-content:center !important;align-content:center !important}.flex-content-between{-webkit-align-content:space-between !important;align-content:space-between !important}.flex-content-around{-webkit-align-content:space-around !important;align-content:space-around !important}.flex-content-stretch{-webkit-align-content:stretch !important;align-content:stretch !important}.flex-auto{-webkit-box-flex:1 !important;-webkit-flex:1 1 auto !important;flex:1 1 auto !important}.flex-shrink-0{-webkit-flex-shrink:0 !important;flex-shrink:0 !important}.flex-self-auto{-webkit-align-self:auto !important;align-self:auto !important}.flex-self-start{-webkit-align-self:flex-start !important;align-self:flex-start !important}.flex-self-end{-webkit-align-self:flex-end !important;align-self:flex-end !important}.flex-self-center{-webkit-align-self:center !important;align-self:center !important}.flex-self-baseline{-webkit-align-self:baseline !important;align-self:baseline !important}.flex-self-stretch{-webkit-align-self:stretch !important;align-self:stretch !important}.flex-item-equal{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}@media (min-width: 544px){.flex-sm-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-webkit-flex-direction:row !important;flex-direction:row !important}.flex-sm-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-webkit-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-sm-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-webkit-flex-direction:column !important;flex-direction:column !important}.flex-sm-wrap{-webkit-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-sm-nowrap{-webkit-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-sm-justify-start{-webkit-box-pack:start !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important}.flex-sm-justify-end{-webkit-box-pack:end !important;-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.flex-sm-justify-center{-webkit-box-pack:center !important;-webkit-justify-content:center !important;justify-content:center !important}.flex-sm-justify-between{-webkit-box-pack:justify !important;-webkit-justify-content:space-between !important;justify-content:space-between !important}.flex-sm-justify-around{-webkit-justify-content:space-around !important;justify-content:space-around !important}.flex-sm-items-start{-webkit-box-align:start !important;-webkit-align-items:flex-start !important;align-items:flex-start !important}.flex-sm-items-end{-webkit-box-align:end !important;-webkit-align-items:flex-end !important;align-items:flex-end !important}.flex-sm-items-center{-webkit-box-align:center !important;-webkit-align-items:center !important;align-items:center !important}.flex-sm-items-baseline{-webkit-box-align:baseline !important;-webkit-align-items:baseline !important;align-items:baseline !important}.flex-sm-items-stretch{-webkit-box-align:stretch !important;-webkit-align-items:stretch !important;align-items:stretch !important}.flex-sm-content-start{-webkit-align-content:flex-start !important;align-content:flex-start !important}.flex-sm-content-end{-webkit-align-content:flex-end !important;align-content:flex-end !important}.flex-sm-content-center{-webkit-align-content:center !important;align-content:center !important}.flex-sm-content-between{-webkit-align-content:space-between !important;align-content:space-between !important}.flex-sm-content-around{-webkit-align-content:space-around !important;align-content:space-around !important}.flex-sm-content-stretch{-webkit-align-content:stretch !important;align-content:stretch !important}.flex-sm-auto{-webkit-box-flex:1 !important;-webkit-flex:1 1 auto !important;flex:1 1 auto !important}.flex-sm-shrink-0{-webkit-flex-shrink:0 !important;flex-shrink:0 !important}.flex-sm-self-auto{-webkit-align-self:auto !important;align-self:auto !important}.flex-sm-self-start{-webkit-align-self:flex-start !important;align-self:flex-start !important}.flex-sm-self-end{-webkit-align-self:flex-end !important;align-self:flex-end !important}.flex-sm-self-center{-webkit-align-self:center !important;align-self:center !important}.flex-sm-self-baseline{-webkit-align-self:baseline !important;align-self:baseline !important}.flex-sm-self-stretch{-webkit-align-self:stretch !important;align-self:stretch !important}.flex-sm-item-equal{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}}@media (min-width: 768px){.flex-md-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-webkit-flex-direction:row !important;flex-direction:row !important}.flex-md-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-webkit-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-md-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-webkit-flex-direction:column !important;flex-direction:column !important}.flex-md-wrap{-webkit-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-md-nowrap{-webkit-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-md-justify-start{-webkit-box-pack:start !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important}.flex-md-justify-end{-webkit-box-pack:end !important;-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.flex-md-justify-center{-webkit-box-pack:center !important;-webkit-justify-content:center !important;justify-content:center !important}.flex-md-justify-between{-webkit-box-pack:justify !important;-webkit-justify-content:space-between !important;justify-content:space-between !important}.flex-md-justify-around{-webkit-justify-content:space-around !important;justify-content:space-around !important}.flex-md-items-start{-webkit-box-align:start !important;-webkit-align-items:flex-start !important;align-items:flex-start !important}.flex-md-items-end{-webkit-box-align:end !important;-webkit-align-items:flex-end !important;align-items:flex-end !important}.flex-md-items-center{-webkit-box-align:center !important;-webkit-align-items:center !important;align-items:center !important}.flex-md-items-baseline{-webkit-box-align:baseline !important;-webkit-align-items:baseline !important;align-items:baseline !important}.flex-md-items-stretch{-webkit-box-align:stretch !important;-webkit-align-items:stretch !important;align-items:stretch !important}.flex-md-content-start{-webkit-align-content:flex-start !important;align-content:flex-start !important}.flex-md-content-end{-webkit-align-content:flex-end !important;align-content:flex-end !important}.flex-md-content-center{-webkit-align-content:center !important;align-content:center !important}.flex-md-content-between{-webkit-align-content:space-between !important;align-content:space-between !important}.flex-md-content-around{-webkit-align-content:space-around !important;align-content:space-around !important}.flex-md-content-stretch{-webkit-align-content:stretch !important;align-content:stretch !important}.flex-md-auto{-webkit-box-flex:1 !important;-webkit-flex:1 1 auto !important;flex:1 1 auto !important}.flex-md-shrink-0{-webkit-flex-shrink:0 !important;flex-shrink:0 !important}.flex-md-self-auto{-webkit-align-self:auto !important;align-self:auto !important}.flex-md-self-start{-webkit-align-self:flex-start !important;align-self:flex-start !important}.flex-md-self-end{-webkit-align-self:flex-end !important;align-self:flex-end !important}.flex-md-self-center{-webkit-align-self:center !important;align-self:center !important}.flex-md-self-baseline{-webkit-align-self:baseline !important;align-self:baseline !important}.flex-md-self-stretch{-webkit-align-self:stretch !important;align-self:stretch !important}.flex-md-item-equal{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}}@media (min-width: 1012px){.flex-lg-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-webkit-flex-direction:row !important;flex-direction:row !important}.flex-lg-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-webkit-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-lg-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-webkit-flex-direction:column !important;flex-direction:column !important}.flex-lg-wrap{-webkit-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-lg-nowrap{-webkit-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-lg-justify-start{-webkit-box-pack:start !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important}.flex-lg-justify-end{-webkit-box-pack:end !important;-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.flex-lg-justify-center{-webkit-box-pack:center !important;-webkit-justify-content:center !important;justify-content:center !important}.flex-lg-justify-between{-webkit-box-pack:justify !important;-webkit-justify-content:space-between !important;justify-content:space-between !important}.flex-lg-justify-around{-webkit-justify-content:space-around !important;justify-content:space-around !important}.flex-lg-items-start{-webkit-box-align:start !important;-webkit-align-items:flex-start !important;align-items:flex-start !important}.flex-lg-items-end{-webkit-box-align:end !important;-webkit-align-items:flex-end !important;align-items:flex-end !important}.flex-lg-items-center{-webkit-box-align:center !important;-webkit-align-items:center !important;align-items:center !important}.flex-lg-items-baseline{-webkit-box-align:baseline !important;-webkit-align-items:baseline !important;align-items:baseline !important}.flex-lg-items-stretch{-webkit-box-align:stretch !important;-webkit-align-items:stretch !important;align-items:stretch !important}.flex-lg-content-start{-webkit-align-content:flex-start !important;align-content:flex-start !important}.flex-lg-content-end{-webkit-align-content:flex-end !important;align-content:flex-end !important}.flex-lg-content-center{-webkit-align-content:center !important;align-content:center !important}.flex-lg-content-between{-webkit-align-content:space-between !important;align-content:space-between !important}.flex-lg-content-around{-webkit-align-content:space-around !important;align-content:space-around !important}.flex-lg-content-stretch{-webkit-align-content:stretch !important;align-content:stretch !important}.flex-lg-auto{-webkit-box-flex:1 !important;-webkit-flex:1 1 auto !important;flex:1 1 auto !important}.flex-lg-shrink-0{-webkit-flex-shrink:0 !important;flex-shrink:0 !important}.flex-lg-self-auto{-webkit-align-self:auto !important;align-self:auto !important}.flex-lg-self-start{-webkit-align-self:flex-start !important;align-self:flex-start !important}.flex-lg-self-end{-webkit-align-self:flex-end !important;align-self:flex-end !important}.flex-lg-self-center{-webkit-align-self:center !important;align-self:center !important}.flex-lg-self-baseline{-webkit-align-self:baseline !important;align-self:baseline !important}.flex-lg-self-stretch{-webkit-align-self:stretch !important;align-self:stretch !important}.flex-lg-item-equal{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}}@media (min-width: 1280px){.flex-xl-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-webkit-flex-direction:row !important;flex-direction:row !important}.flex-xl-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-webkit-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-xl-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-webkit-flex-direction:column !important;flex-direction:column !important}.flex-xl-wrap{-webkit-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-xl-nowrap{-webkit-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-xl-justify-start{-webkit-box-pack:start !important;-webkit-justify-content:flex-start !important;justify-content:flex-start !important}.flex-xl-justify-end{-webkit-box-pack:end !important;-webkit-justify-content:flex-end !important;justify-content:flex-end !important}.flex-xl-justify-center{-webkit-box-pack:center !important;-webkit-justify-content:center !important;justify-content:center !important}.flex-xl-justify-between{-webkit-box-pack:justify !important;-webkit-justify-content:space-between !important;justify-content:space-between !important}.flex-xl-justify-around{-webkit-justify-content:space-around !important;justify-content:space-around !important}.flex-xl-items-start{-webkit-box-align:start !important;-webkit-align-items:flex-start !important;align-items:flex-start !important}.flex-xl-items-end{-webkit-box-align:end !important;-webkit-align-items:flex-end !important;align-items:flex-end !important}.flex-xl-items-center{-webkit-box-align:center !important;-webkit-align-items:center !important;align-items:center !important}.flex-xl-items-baseline{-webkit-box-align:baseline !important;-webkit-align-items:baseline !important;align-items:baseline !important}.flex-xl-items-stretch{-webkit-box-align:stretch !important;-webkit-align-items:stretch !important;align-items:stretch !important}.flex-xl-content-start{-webkit-align-content:flex-start !important;align-content:flex-start !important}.flex-xl-content-end{-webkit-align-content:flex-end !important;align-content:flex-end !important}.flex-xl-content-center{-webkit-align-content:center !important;align-content:center !important}.flex-xl-content-between{-webkit-align-content:space-between !important;align-content:space-between !important}.flex-xl-content-around{-webkit-align-content:space-around !important;align-content:space-around !important}.flex-xl-content-stretch{-webkit-align-content:stretch !important;align-content:stretch !important}.flex-xl-auto{-webkit-box-flex:1 !important;-webkit-flex:1 1 auto !important;flex:1 1 auto !important}.flex-xl-shrink-0{-webkit-flex-shrink:0 !important;flex-shrink:0 !important}.flex-xl-self-auto{-webkit-align-self:auto !important;align-self:auto !important}.flex-xl-self-start{-webkit-align-self:flex-start !important;align-self:flex-start !important}.flex-xl-self-end{-webkit-align-self:flex-end !important;align-self:flex-end !important}.flex-xl-self-center{-webkit-align-self:center !important;align-self:center !important}.flex-xl-self-baseline{-webkit-align-self:baseline !important;align-self:baseline !important}.flex-xl-self-stretch{-webkit-align-self:stretch !important;align-self:stretch !important}.flex-xl-item-equal{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-basis:0;flex-basis:0}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.top-0{top:0 !important}.right-0{right:0 !important}.bottom-0{bottom:0 !important}.left-0{left:0 !important}.v-align-middle{vertical-align:middle !important}.v-align-top{vertical-align:top !important}.v-align-bottom{vertical-align:bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-text-bottom{vertical-align:text-bottom !important}.overflow-hidden{overflow:hidden !important}.overflow-scroll{overflow:scroll !important}.overflow-auto{overflow:auto !important}.clearfix::before{display:table;content:""}.clearfix::after{display:table;clear:both;content:""}.float-right{float:right !important}.float-left{float:left !important}.float-none{float:none !important}@media (min-width: 544px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 1012px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1280px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.width-fit{max-width:100% !important}.width-full{width:100% !important}.height-full{height:100% !important}.min-width-0{min-width:0 !important}.direction-rtl{direction:rtl !important}.direction-ltr{direction:ltr !important}@media (min-width: 544px){.direction-sm-rtl{direction:rtl !important}.direction-sm-ltr{direction:ltr !important}}@media (min-width: 768px){.direction-md-rtl{direction:rtl !important}.direction-md-ltr{direction:ltr !important}}@media (min-width: 1012px){.direction-lg-rtl{direction:rtl !important}.direction-lg-ltr{direction:ltr !important}}@media (min-width: 1280px){.direction-xl-rtl{direction:rtl !important}.direction-xl-ltr{direction:ltr !important}}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mt-n0{margin-top:-0 !important}.mr-n0{margin-right:-0 !important}.mb-n0{margin-bottom:-0 !important}.ml-n0{margin-left:-0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:4px !important}.mt-1{margin-top:4px !important}.mr-1{margin-right:4px !important}.mb-1{margin-bottom:4px !important}.ml-1{margin-left:4px !important}.mt-n1{margin-top:-4px !important}.mr-n1{margin-right:-4px !important}.mb-n1{margin-bottom:-4px !important}.ml-n1{margin-left:-4px !important}.mx-1{margin-right:4px !important;margin-left:4px !important}.my-1{margin-top:4px !important;margin-bottom:4px !important}.m-2{margin:8px !important}.mt-2{margin-top:8px !important}.mr-2{margin-right:8px !important}.mb-2{margin-bottom:8px !important}.ml-2{margin-left:8px !important}.mt-n2{margin-top:-8px !important}.mr-n2{margin-right:-8px !important}.mb-n2{margin-bottom:-8px !important}.ml-n2{margin-left:-8px !important}.mx-2{margin-right:8px !important;margin-left:8px !important}.my-2{margin-top:8px !important;margin-bottom:8px !important}.m-3{margin:16px !important}.mt-3{margin-top:16px !important}.mr-3{margin-right:16px !important}.mb-3{margin-bottom:16px !important}.ml-3{margin-left:16px !important}.mt-n3{margin-top:-16px !important}.mr-n3{margin-right:-16px !important}.mb-n3{margin-bottom:-16px !important}.ml-n3{margin-left:-16px !important}.mx-3{margin-right:16px !important;margin-left:16px !important}.my-3{margin-top:16px !important;margin-bottom:16px !important}.m-4{margin:24px !important}.mt-4{margin-top:24px !important}.mr-4{margin-right:24px !important}.mb-4{margin-bottom:24px !important}.ml-4{margin-left:24px !important}.mt-n4{margin-top:-24px !important}.mr-n4{margin-right:-24px !important}.mb-n4{margin-bottom:-24px !important}.ml-n4{margin-left:-24px !important}.mx-4{margin-right:24px !important;margin-left:24px !important}.my-4{margin-top:24px !important;margin-bottom:24px !important}.m-5{margin:32px !important}.mt-5{margin-top:32px !important}.mr-5{margin-right:32px !important}.mb-5{margin-bottom:32px !important}.ml-5{margin-left:32px !important}.mt-n5{margin-top:-32px !important}.mr-n5{margin-right:-32px !important}.mb-n5{margin-bottom:-32px !important}.ml-n5{margin-left:-32px !important}.mx-5{margin-right:32px !important;margin-left:32px !important}.my-5{margin-top:32px !important;margin-bottom:32px !important}.m-6{margin:40px !important}.mt-6{margin-top:40px !important}.mr-6{margin-right:40px !important}.mb-6{margin-bottom:40px !important}.ml-6{margin-left:40px !important}.mt-n6{margin-top:-40px !important}.mr-n6{margin-right:-40px !important}.mb-n6{margin-bottom:-40px !important}.ml-n6{margin-left:-40px !important}.mx-6{margin-right:40px !important;margin-left:40px !important}.my-6{margin-top:40px !important;margin-bottom:40px !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}@media (min-width: 544px){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mt-sm-n0{margin-top:-0 !important}.mr-sm-n0{margin-right:-0 !important}.mb-sm-n0{margin-bottom:-0 !important}.ml-sm-n0{margin-left:-0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}}@media (min-width: 544px){.m-sm-1{margin:4px !important}.mt-sm-1{margin-top:4px !important}.mr-sm-1{margin-right:4px !important}.mb-sm-1{margin-bottom:4px !important}.ml-sm-1{margin-left:4px !important}.mt-sm-n1{margin-top:-4px !important}.mr-sm-n1{margin-right:-4px !important}.mb-sm-n1{margin-bottom:-4px !important}.ml-sm-n1{margin-left:-4px !important}.mx-sm-1{margin-right:4px !important;margin-left:4px !important}.my-sm-1{margin-top:4px !important;margin-bottom:4px !important}}@media (min-width: 544px){.m-sm-2{margin:8px !important}.mt-sm-2{margin-top:8px !important}.mr-sm-2{margin-right:8px !important}.mb-sm-2{margin-bottom:8px !important}.ml-sm-2{margin-left:8px !important}.mt-sm-n2{margin-top:-8px !important}.mr-sm-n2{margin-right:-8px !important}.mb-sm-n2{margin-bottom:-8px !important}.ml-sm-n2{margin-left:-8px !important}.mx-sm-2{margin-right:8px !important;margin-left:8px !important}.my-sm-2{margin-top:8px !important;margin-bottom:8px !important}}@media (min-width: 544px){.m-sm-3{margin:16px !important}.mt-sm-3{margin-top:16px !important}.mr-sm-3{margin-right:16px !important}.mb-sm-3{margin-bottom:16px !important}.ml-sm-3{margin-left:16px !important}.mt-sm-n3{margin-top:-16px !important}.mr-sm-n3{margin-right:-16px !important}.mb-sm-n3{margin-bottom:-16px !important}.ml-sm-n3{margin-left:-16px !important}.mx-sm-3{margin-right:16px !important;margin-left:16px !important}.my-sm-3{margin-top:16px !important;margin-bottom:16px !important}}@media (min-width: 544px){.m-sm-4{margin:24px !important}.mt-sm-4{margin-top:24px !important}.mr-sm-4{margin-right:24px !important}.mb-sm-4{margin-bottom:24px !important}.ml-sm-4{margin-left:24px !important}.mt-sm-n4{margin-top:-24px !important}.mr-sm-n4{margin-right:-24px !important}.mb-sm-n4{margin-bottom:-24px !important}.ml-sm-n4{margin-left:-24px !important}.mx-sm-4{margin-right:24px !important;margin-left:24px !important}.my-sm-4{margin-top:24px !important;margin-bottom:24px !important}}@media (min-width: 544px){.m-sm-5{margin:32px !important}.mt-sm-5{margin-top:32px !important}.mr-sm-5{margin-right:32px !important}.mb-sm-5{margin-bottom:32px !important}.ml-sm-5{margin-left:32px !important}.mt-sm-n5{margin-top:-32px !important}.mr-sm-n5{margin-right:-32px !important}.mb-sm-n5{margin-bottom:-32px !important}.ml-sm-n5{margin-left:-32px !important}.mx-sm-5{margin-right:32px !important;margin-left:32px !important}.my-sm-5{margin-top:32px !important;margin-bottom:32px !important}}@media (min-width: 544px){.m-sm-6{margin:40px !important}.mt-sm-6{margin-top:40px !important}.mr-sm-6{margin-right:40px !important}.mb-sm-6{margin-bottom:40px !important}.ml-sm-6{margin-left:40px !important}.mt-sm-n6{margin-top:-40px !important}.mr-sm-n6{margin-right:-40px !important}.mb-sm-n6{margin-bottom:-40px !important}.ml-sm-n6{margin-left:-40px !important}.mx-sm-6{margin-right:40px !important;margin-left:40px !important}.my-sm-6{margin-top:40px !important;margin-bottom:40px !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mt-md-n0{margin-top:-0 !important}.mr-md-n0{margin-right:-0 !important}.mb-md-n0{margin-bottom:-0 !important}.ml-md-n0{margin-left:-0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}}@media (min-width: 768px){.m-md-1{margin:4px !important}.mt-md-1{margin-top:4px !important}.mr-md-1{margin-right:4px !important}.mb-md-1{margin-bottom:4px !important}.ml-md-1{margin-left:4px !important}.mt-md-n1{margin-top:-4px !important}.mr-md-n1{margin-right:-4px !important}.mb-md-n1{margin-bottom:-4px !important}.ml-md-n1{margin-left:-4px !important}.mx-md-1{margin-right:4px !important;margin-left:4px !important}.my-md-1{margin-top:4px !important;margin-bottom:4px !important}}@media (min-width: 768px){.m-md-2{margin:8px !important}.mt-md-2{margin-top:8px !important}.mr-md-2{margin-right:8px !important}.mb-md-2{margin-bottom:8px !important}.ml-md-2{margin-left:8px !important}.mt-md-n2{margin-top:-8px !important}.mr-md-n2{margin-right:-8px !important}.mb-md-n2{margin-bottom:-8px !important}.ml-md-n2{margin-left:-8px !important}.mx-md-2{margin-right:8px !important;margin-left:8px !important}.my-md-2{margin-top:8px !important;margin-bottom:8px !important}}@media (min-width: 768px){.m-md-3{margin:16px !important}.mt-md-3{margin-top:16px !important}.mr-md-3{margin-right:16px !important}.mb-md-3{margin-bottom:16px !important}.ml-md-3{margin-left:16px !important}.mt-md-n3{margin-top:-16px !important}.mr-md-n3{margin-right:-16px !important}.mb-md-n3{margin-bottom:-16px !important}.ml-md-n3{margin-left:-16px !important}.mx-md-3{margin-right:16px !important;margin-left:16px !important}.my-md-3{margin-top:16px !important;margin-bottom:16px !important}}@media (min-width: 768px){.m-md-4{margin:24px !important}.mt-md-4{margin-top:24px !important}.mr-md-4{margin-right:24px !important}.mb-md-4{margin-bottom:24px !important}.ml-md-4{margin-left:24px !important}.mt-md-n4{margin-top:-24px !important}.mr-md-n4{margin-right:-24px !important}.mb-md-n4{margin-bottom:-24px !important}.ml-md-n4{margin-left:-24px !important}.mx-md-4{margin-right:24px !important;margin-left:24px !important}.my-md-4{margin-top:24px !important;margin-bottom:24px !important}}@media (min-width: 768px){.m-md-5{margin:32px !important}.mt-md-5{margin-top:32px !important}.mr-md-5{margin-right:32px !important}.mb-md-5{margin-bottom:32px !important}.ml-md-5{margin-left:32px !important}.mt-md-n5{margin-top:-32px !important}.mr-md-n5{margin-right:-32px !important}.mb-md-n5{margin-bottom:-32px !important}.ml-md-n5{margin-left:-32px !important}.mx-md-5{margin-right:32px !important;margin-left:32px !important}.my-md-5{margin-top:32px !important;margin-bottom:32px !important}}@media (min-width: 768px){.m-md-6{margin:40px !important}.mt-md-6{margin-top:40px !important}.mr-md-6{margin-right:40px !important}.mb-md-6{margin-bottom:40px !important}.ml-md-6{margin-left:40px !important}.mt-md-n6{margin-top:-40px !important}.mr-md-n6{margin-right:-40px !important}.mb-md-n6{margin-bottom:-40px !important}.ml-md-n6{margin-left:-40px !important}.mx-md-6{margin-right:40px !important;margin-left:40px !important}.my-md-6{margin-top:40px !important;margin-bottom:40px !important}}@media (min-width: 1012px){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mt-lg-n0{margin-top:-0 !important}.mr-lg-n0{margin-right:-0 !important}.mb-lg-n0{margin-bottom:-0 !important}.ml-lg-n0{margin-left:-0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}}@media (min-width: 1012px){.m-lg-1{margin:4px !important}.mt-lg-1{margin-top:4px !important}.mr-lg-1{margin-right:4px !important}.mb-lg-1{margin-bottom:4px !important}.ml-lg-1{margin-left:4px !important}.mt-lg-n1{margin-top:-4px !important}.mr-lg-n1{margin-right:-4px !important}.mb-lg-n1{margin-bottom:-4px !important}.ml-lg-n1{margin-left:-4px !important}.mx-lg-1{margin-right:4px !important;margin-left:4px !important}.my-lg-1{margin-top:4px !important;margin-bottom:4px !important}}@media (min-width: 1012px){.m-lg-2{margin:8px !important}.mt-lg-2{margin-top:8px !important}.mr-lg-2{margin-right:8px !important}.mb-lg-2{margin-bottom:8px !important}.ml-lg-2{margin-left:8px !important}.mt-lg-n2{margin-top:-8px !important}.mr-lg-n2{margin-right:-8px !important}.mb-lg-n2{margin-bottom:-8px !important}.ml-lg-n2{margin-left:-8px !important}.mx-lg-2{margin-right:8px !important;margin-left:8px !important}.my-lg-2{margin-top:8px !important;margin-bottom:8px !important}}@media (min-width: 1012px){.m-lg-3{margin:16px !important}.mt-lg-3{margin-top:16px !important}.mr-lg-3{margin-right:16px !important}.mb-lg-3{margin-bottom:16px !important}.ml-lg-3{margin-left:16px !important}.mt-lg-n3{margin-top:-16px !important}.mr-lg-n3{margin-right:-16px !important}.mb-lg-n3{margin-bottom:-16px !important}.ml-lg-n3{margin-left:-16px !important}.mx-lg-3{margin-right:16px !important;margin-left:16px !important}.my-lg-3{margin-top:16px !important;margin-bottom:16px !important}}@media (min-width: 1012px){.m-lg-4{margin:24px !important}.mt-lg-4{margin-top:24px !important}.mr-lg-4{margin-right:24px !important}.mb-lg-4{margin-bottom:24px !important}.ml-lg-4{margin-left:24px !important}.mt-lg-n4{margin-top:-24px !important}.mr-lg-n4{margin-right:-24px !important}.mb-lg-n4{margin-bottom:-24px !important}.ml-lg-n4{margin-left:-24px !important}.mx-lg-4{margin-right:24px !important;margin-left:24px !important}.my-lg-4{margin-top:24px !important;margin-bottom:24px !important}}@media (min-width: 1012px){.m-lg-5{margin:32px !important}.mt-lg-5{margin-top:32px !important}.mr-lg-5{margin-right:32px !important}.mb-lg-5{margin-bottom:32px !important}.ml-lg-5{margin-left:32px !important}.mt-lg-n5{margin-top:-32px !important}.mr-lg-n5{margin-right:-32px !important}.mb-lg-n5{margin-bottom:-32px !important}.ml-lg-n5{margin-left:-32px !important}.mx-lg-5{margin-right:32px !important;margin-left:32px !important}.my-lg-5{margin-top:32px !important;margin-bottom:32px !important}}@media (min-width: 1012px){.m-lg-6{margin:40px !important}.mt-lg-6{margin-top:40px !important}.mr-lg-6{margin-right:40px !important}.mb-lg-6{margin-bottom:40px !important}.ml-lg-6{margin-left:40px !important}.mt-lg-n6{margin-top:-40px !important}.mr-lg-n6{margin-right:-40px !important}.mb-lg-n6{margin-bottom:-40px !important}.ml-lg-n6{margin-left:-40px !important}.mx-lg-6{margin-right:40px !important;margin-left:40px !important}.my-lg-6{margin-top:40px !important;margin-bottom:40px !important}}@media (min-width: 1280px){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mt-xl-n0{margin-top:-0 !important}.mr-xl-n0{margin-right:-0 !important}.mb-xl-n0{margin-bottom:-0 !important}.ml-xl-n0{margin-left:-0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}}@media (min-width: 1280px){.m-xl-1{margin:4px !important}.mt-xl-1{margin-top:4px !important}.mr-xl-1{margin-right:4px !important}.mb-xl-1{margin-bottom:4px !important}.ml-xl-1{margin-left:4px !important}.mt-xl-n1{margin-top:-4px !important}.mr-xl-n1{margin-right:-4px !important}.mb-xl-n1{margin-bottom:-4px !important}.ml-xl-n1{margin-left:-4px !important}.mx-xl-1{margin-right:4px !important;margin-left:4px !important}.my-xl-1{margin-top:4px !important;margin-bottom:4px !important}}@media (min-width: 1280px){.m-xl-2{margin:8px !important}.mt-xl-2{margin-top:8px !important}.mr-xl-2{margin-right:8px !important}.mb-xl-2{margin-bottom:8px !important}.ml-xl-2{margin-left:8px !important}.mt-xl-n2{margin-top:-8px !important}.mr-xl-n2{margin-right:-8px !important}.mb-xl-n2{margin-bottom:-8px !important}.ml-xl-n2{margin-left:-8px !important}.mx-xl-2{margin-right:8px !important;margin-left:8px !important}.my-xl-2{margin-top:8px !important;margin-bottom:8px !important}}@media (min-width: 1280px){.m-xl-3{margin:16px !important}.mt-xl-3{margin-top:16px !important}.mr-xl-3{margin-right:16px !important}.mb-xl-3{margin-bottom:16px !important}.ml-xl-3{margin-left:16px !important}.mt-xl-n3{margin-top:-16px !important}.mr-xl-n3{margin-right:-16px !important}.mb-xl-n3{margin-bottom:-16px !important}.ml-xl-n3{margin-left:-16px !important}.mx-xl-3{margin-right:16px !important;margin-left:16px !important}.my-xl-3{margin-top:16px !important;margin-bottom:16px !important}}@media (min-width: 1280px){.m-xl-4{margin:24px !important}.mt-xl-4{margin-top:24px !important}.mr-xl-4{margin-right:24px !important}.mb-xl-4{margin-bottom:24px !important}.ml-xl-4{margin-left:24px !important}.mt-xl-n4{margin-top:-24px !important}.mr-xl-n4{margin-right:-24px !important}.mb-xl-n4{margin-bottom:-24px !important}.ml-xl-n4{margin-left:-24px !important}.mx-xl-4{margin-right:24px !important;margin-left:24px !important}.my-xl-4{margin-top:24px !important;margin-bottom:24px !important}}@media (min-width: 1280px){.m-xl-5{margin:32px !important}.mt-xl-5{margin-top:32px !important}.mr-xl-5{margin-right:32px !important}.mb-xl-5{margin-bottom:32px !important}.ml-xl-5{margin-left:32px !important}.mt-xl-n5{margin-top:-32px !important}.mr-xl-n5{margin-right:-32px !important}.mb-xl-n5{margin-bottom:-32px !important}.ml-xl-n5{margin-left:-32px !important}.mx-xl-5{margin-right:32px !important;margin-left:32px !important}.my-xl-5{margin-top:32px !important;margin-bottom:32px !important}}@media (min-width: 1280px){.m-xl-6{margin:40px !important}.mt-xl-6{margin-top:40px !important}.mr-xl-6{margin-right:40px !important}.mb-xl-6{margin-bottom:40px !important}.ml-xl-6{margin-left:40px !important}.mt-xl-n6{margin-top:-40px !important}.mr-xl-n6{margin-right:-40px !important}.mb-xl-n6{margin-bottom:-40px !important}.ml-xl-n6{margin-left:-40px !important}.mx-xl-6{margin-right:40px !important;margin-left:40px !important}.my-xl-6{margin-top:40px !important;margin-bottom:40px !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:4px !important}.pt-1{padding-top:4px !important}.pr-1{padding-right:4px !important}.pb-1{padding-bottom:4px !important}.pl-1{padding-left:4px !important}.px-1{padding-right:4px !important;padding-left:4px !important}.py-1{padding-top:4px !important;padding-bottom:4px !important}.p-2{padding:8px !important}.pt-2{padding-top:8px !important}.pr-2{padding-right:8px !important}.pb-2{padding-bottom:8px !important}.pl-2{padding-left:8px !important}.px-2{padding-right:8px !important;padding-left:8px !important}.py-2{padding-top:8px !important;padding-bottom:8px !important}.p-3{padding:16px !important}.pt-3{padding-top:16px !important}.pr-3{padding-right:16px !important}.pb-3{padding-bottom:16px !important}.pl-3{padding-left:16px !important}.px-3{padding-right:16px !important;padding-left:16px !important}.py-3{padding-top:16px !important;padding-bottom:16px !important}.p-4{padding:24px !important}.pt-4{padding-top:24px !important}.pr-4{padding-right:24px !important}.pb-4{padding-bottom:24px !important}.pl-4{padding-left:24px !important}.px-4{padding-right:24px !important;padding-left:24px !important}.py-4{padding-top:24px !important;padding-bottom:24px !important}.p-5{padding:32px !important}.pt-5{padding-top:32px !important}.pr-5{padding-right:32px !important}.pb-5{padding-bottom:32px !important}.pl-5{padding-left:32px !important}.px-5{padding-right:32px !important;padding-left:32px !important}.py-5{padding-top:32px !important;padding-bottom:32px !important}.p-6{padding:40px !important}.pt-6{padding-top:40px !important}.pr-6{padding-right:40px !important}.pb-6{padding-bottom:40px !important}.pl-6{padding-left:40px !important}.px-6{padding-right:40px !important;padding-left:40px !important}.py-6{padding-top:40px !important;padding-bottom:40px !important}@media (min-width: 544px){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}}@media (min-width: 544px){.p-sm-1{padding:4px !important}.pt-sm-1{padding-top:4px !important}.pr-sm-1{padding-right:4px !important}.pb-sm-1{padding-bottom:4px !important}.pl-sm-1{padding-left:4px !important}.px-sm-1{padding-right:4px !important;padding-left:4px !important}.py-sm-1{padding-top:4px !important;padding-bottom:4px !important}}@media (min-width: 544px){.p-sm-2{padding:8px !important}.pt-sm-2{padding-top:8px !important}.pr-sm-2{padding-right:8px !important}.pb-sm-2{padding-bottom:8px !important}.pl-sm-2{padding-left:8px !important}.px-sm-2{padding-right:8px !important;padding-left:8px !important}.py-sm-2{padding-top:8px !important;padding-bottom:8px !important}}@media (min-width: 544px){.p-sm-3{padding:16px !important}.pt-sm-3{padding-top:16px !important}.pr-sm-3{padding-right:16px !important}.pb-sm-3{padding-bottom:16px !important}.pl-sm-3{padding-left:16px !important}.px-sm-3{padding-right:16px !important;padding-left:16px !important}.py-sm-3{padding-top:16px !important;padding-bottom:16px !important}}@media (min-width: 544px){.p-sm-4{padding:24px !important}.pt-sm-4{padding-top:24px !important}.pr-sm-4{padding-right:24px !important}.pb-sm-4{padding-bottom:24px !important}.pl-sm-4{padding-left:24px !important}.px-sm-4{padding-right:24px !important;padding-left:24px !important}.py-sm-4{padding-top:24px !important;padding-bottom:24px !important}}@media (min-width: 544px){.p-sm-5{padding:32px !important}.pt-sm-5{padding-top:32px !important}.pr-sm-5{padding-right:32px !important}.pb-sm-5{padding-bottom:32px !important}.pl-sm-5{padding-left:32px !important}.px-sm-5{padding-right:32px !important;padding-left:32px !important}.py-sm-5{padding-top:32px !important;padding-bottom:32px !important}}@media (min-width: 544px){.p-sm-6{padding:40px !important}.pt-sm-6{padding-top:40px !important}.pr-sm-6{padding-right:40px !important}.pb-sm-6{padding-bottom:40px !important}.pl-sm-6{padding-left:40px !important}.px-sm-6{padding-right:40px !important;padding-left:40px !important}.py-sm-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 768px){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}}@media (min-width: 768px){.p-md-1{padding:4px !important}.pt-md-1{padding-top:4px !important}.pr-md-1{padding-right:4px !important}.pb-md-1{padding-bottom:4px !important}.pl-md-1{padding-left:4px !important}.px-md-1{padding-right:4px !important;padding-left:4px !important}.py-md-1{padding-top:4px !important;padding-bottom:4px !important}}@media (min-width: 768px){.p-md-2{padding:8px !important}.pt-md-2{padding-top:8px !important}.pr-md-2{padding-right:8px !important}.pb-md-2{padding-bottom:8px !important}.pl-md-2{padding-left:8px !important}.px-md-2{padding-right:8px !important;padding-left:8px !important}.py-md-2{padding-top:8px !important;padding-bottom:8px !important}}@media (min-width: 768px){.p-md-3{padding:16px !important}.pt-md-3{padding-top:16px !important}.pr-md-3{padding-right:16px !important}.pb-md-3{padding-bottom:16px !important}.pl-md-3{padding-left:16px !important}.px-md-3{padding-right:16px !important;padding-left:16px !important}.py-md-3{padding-top:16px !important;padding-bottom:16px !important}}@media (min-width: 768px){.p-md-4{padding:24px !important}.pt-md-4{padding-top:24px !important}.pr-md-4{padding-right:24px !important}.pb-md-4{padding-bottom:24px !important}.pl-md-4{padding-left:24px !important}.px-md-4{padding-right:24px !important;padding-left:24px !important}.py-md-4{padding-top:24px !important;padding-bottom:24px !important}}@media (min-width: 768px){.p-md-5{padding:32px !important}.pt-md-5{padding-top:32px !important}.pr-md-5{padding-right:32px !important}.pb-md-5{padding-bottom:32px !important}.pl-md-5{padding-left:32px !important}.px-md-5{padding-right:32px !important;padding-left:32px !important}.py-md-5{padding-top:32px !important;padding-bottom:32px !important}}@media (min-width: 768px){.p-md-6{padding:40px !important}.pt-md-6{padding-top:40px !important}.pr-md-6{padding-right:40px !important}.pb-md-6{padding-bottom:40px !important}.pl-md-6{padding-left:40px !important}.px-md-6{padding-right:40px !important;padding-left:40px !important}.py-md-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 1012px){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}}@media (min-width: 1012px){.p-lg-1{padding:4px !important}.pt-lg-1{padding-top:4px !important}.pr-lg-1{padding-right:4px !important}.pb-lg-1{padding-bottom:4px !important}.pl-lg-1{padding-left:4px !important}.px-lg-1{padding-right:4px !important;padding-left:4px !important}.py-lg-1{padding-top:4px !important;padding-bottom:4px !important}}@media (min-width: 1012px){.p-lg-2{padding:8px !important}.pt-lg-2{padding-top:8px !important}.pr-lg-2{padding-right:8px !important}.pb-lg-2{padding-bottom:8px !important}.pl-lg-2{padding-left:8px !important}.px-lg-2{padding-right:8px !important;padding-left:8px !important}.py-lg-2{padding-top:8px !important;padding-bottom:8px !important}}@media (min-width: 1012px){.p-lg-3{padding:16px !important}.pt-lg-3{padding-top:16px !important}.pr-lg-3{padding-right:16px !important}.pb-lg-3{padding-bottom:16px !important}.pl-lg-3{padding-left:16px !important}.px-lg-3{padding-right:16px !important;padding-left:16px !important}.py-lg-3{padding-top:16px !important;padding-bottom:16px !important}}@media (min-width: 1012px){.p-lg-4{padding:24px !important}.pt-lg-4{padding-top:24px !important}.pr-lg-4{padding-right:24px !important}.pb-lg-4{padding-bottom:24px !important}.pl-lg-4{padding-left:24px !important}.px-lg-4{padding-right:24px !important;padding-left:24px !important}.py-lg-4{padding-top:24px !important;padding-bottom:24px !important}}@media (min-width: 1012px){.p-lg-5{padding:32px !important}.pt-lg-5{padding-top:32px !important}.pr-lg-5{padding-right:32px !important}.pb-lg-5{padding-bottom:32px !important}.pl-lg-5{padding-left:32px !important}.px-lg-5{padding-right:32px !important;padding-left:32px !important}.py-lg-5{padding-top:32px !important;padding-bottom:32px !important}}@media (min-width: 1012px){.p-lg-6{padding:40px !important}.pt-lg-6{padding-top:40px !important}.pr-lg-6{padding-right:40px !important}.pb-lg-6{padding-bottom:40px !important}.pl-lg-6{padding-left:40px !important}.px-lg-6{padding-right:40px !important;padding-left:40px !important}.py-lg-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 1280px){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}}@media (min-width: 1280px){.p-xl-1{padding:4px !important}.pt-xl-1{padding-top:4px !important}.pr-xl-1{padding-right:4px !important}.pb-xl-1{padding-bottom:4px !important}.pl-xl-1{padding-left:4px !important}.px-xl-1{padding-right:4px !important;padding-left:4px !important}.py-xl-1{padding-top:4px !important;padding-bottom:4px !important}}@media (min-width: 1280px){.p-xl-2{padding:8px !important}.pt-xl-2{padding-top:8px !important}.pr-xl-2{padding-right:8px !important}.pb-xl-2{padding-bottom:8px !important}.pl-xl-2{padding-left:8px !important}.px-xl-2{padding-right:8px !important;padding-left:8px !important}.py-xl-2{padding-top:8px !important;padding-bottom:8px !important}}@media (min-width: 1280px){.p-xl-3{padding:16px !important}.pt-xl-3{padding-top:16px !important}.pr-xl-3{padding-right:16px !important}.pb-xl-3{padding-bottom:16px !important}.pl-xl-3{padding-left:16px !important}.px-xl-3{padding-right:16px !important;padding-left:16px !important}.py-xl-3{padding-top:16px !important;padding-bottom:16px !important}}@media (min-width: 1280px){.p-xl-4{padding:24px !important}.pt-xl-4{padding-top:24px !important}.pr-xl-4{padding-right:24px !important}.pb-xl-4{padding-bottom:24px !important}.pl-xl-4{padding-left:24px !important}.px-xl-4{padding-right:24px !important;padding-left:24px !important}.py-xl-4{padding-top:24px !important;padding-bottom:24px !important}}@media (min-width: 1280px){.p-xl-5{padding:32px !important}.pt-xl-5{padding-top:32px !important}.pr-xl-5{padding-right:32px !important}.pb-xl-5{padding-bottom:32px !important}.pl-xl-5{padding-left:32px !important}.px-xl-5{padding-right:32px !important;padding-left:32px !important}.py-xl-5{padding-top:32px !important;padding-bottom:32px !important}}@media (min-width: 1280px){.p-xl-6{padding:40px !important}.pt-xl-6{padding-top:40px !important}.pr-xl-6{padding-right:40px !important}.pb-xl-6{padding-bottom:40px !important}.pl-xl-6{padding-left:40px !important}.px-xl-6{padding-right:40px !important;padding-left:40px !important}.py-xl-6{padding-top:40px !important;padding-bottom:40px !important}}.h1{font-size:26px !important}@media (min-width: 768px){.h1{font-size:32px !important}}.h2{font-size:22px !important}@media (min-width: 768px){.h2{font-size:24px !important}}.h3{font-size:18px !important}@media (min-width: 768px){.h3{font-size:20px !important}}.h4{font-size:16px !important}.h5{font-size:14px !important}.h6{font-size:12px !important}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:600 !important}.f1{font-size:26px !important}@media (min-width: 768px){.f1{font-size:32px !important}}.f2{font-size:22px !important}@media (min-width: 768px){.f2{font-size:24px !important}}.f3{font-size:18px !important}@media (min-width: 768px){.f3{font-size:20px !important}}.f4{font-size:16px !important}@media (min-width: 768px){.f4{font-size:16px !important}}.f5{font-size:14px !important}.f6{font-size:12px !important}.f00-light{font-size:40px !important;font-weight:300 !important}@media (min-width: 768px){.f00-light{font-size:48px !important}}.f0-light{font-size:32px !important;font-weight:300 !important}@media (min-width: 768px){.f0-light{font-size:40px !important}}.f1-light{font-size:26px !important;font-weight:300 !important}@media (min-width: 768px){.f1-light{font-size:32px !important}}.f2-light{font-size:22px !important;font-weight:300 !important}@media (min-width: 768px){.f2-light{font-size:24px !important}}.f3-light{font-size:18px !important;font-weight:300 !important}@media (min-width: 768px){.f3-light{font-size:20px !important}}.text-small{font-size:12px !important}.lead{margin-bottom:30px;font-size:20px;font-weight:300;color:#555}.lh-condensed-ultra{line-height:1 !important}.lh-condensed{line-height:1.25 !important}.lh-default{line-height:1.5 !important}.text-right{text-align:right !important}.text-left{text-align:left !important}.text-center{text-align:center !important}@media (min-width: 544px){.text-sm-right{text-align:right !important}.text-sm-left{text-align:left !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-right{text-align:right !important}.text-md-left{text-align:left !important}.text-md-center{text-align:center !important}}@media (min-width: 1012px){.text-lg-right{text-align:right !important}.text-lg-left{text-align:left !important}.text-lg-center{text-align:center !important}}@media (min-width: 1280px){.text-xl-right{text-align:right !important}.text-xl-left{text-align:left !important}.text-xl-center{text-align:center !important}}.text-normal{font-weight:normal !important}.text-bold{font-weight:600 !important}.text-italic{font-style:italic !important}.text-uppercase{text-transform:uppercase !important}.no-underline{text-decoration:none !important}.no-wrap{white-space:nowrap !important}.ws-normal{white-space:normal !important}.wb-break-all{word-break:break-all !important}.text-emphasized{font-weight:600;color:#24292e}.list-style-none{list-style:none !important}.text-shadow-dark{text-shadow:0 1px 1px rgba(0,0,0,0.25),0 1px 25px rgba(0,0,0,0.75)}.text-shadow-light{text-shadow:0 1px 0 rgba(255,255,255,0.5)}.v-hidden{visibility:hidden !important}.v-visible{visibility:visible !important}.d-table{display:table !important}.d-table-cell{display:table-cell !important}.table-fixed{table-layout:fixed !important}.d-block{display:block !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-flex{display:-webkit-box !important;display:-webkit-flex !important;display:flex !important}.d-inline-flex{display:-webkit-inline-box !important;display:-webkit-inline-flex !important;display:inline-flex !important}.d-none{display:none !important}@media (min-width: 544px){.d-sm-table{display:table !important}.d-sm-table-cell{display:table-cell !important}.d-sm-block{display:block !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-flex{display:-webkit-box !important;display:-webkit-flex !important;display:flex !important}.d-sm-inline-flex{display:-webkit-inline-box !important;display:-webkit-inline-flex !important;display:inline-flex !important}.d-sm-none{display:none !important}}@media (min-width: 768px){.d-md-table{display:table !important}.d-md-table-cell{display:table-cell !important}.d-md-block{display:block !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-flex{display:-webkit-box !important;display:-webkit-flex !important;display:flex !important}.d-md-inline-flex{display:-webkit-inline-box !important;display:-webkit-inline-flex !important;display:inline-flex !important}.d-md-none{display:none !important}}@media (min-width: 1012px){.d-lg-table{display:table !important}.d-lg-table-cell{display:table-cell !important}.d-lg-block{display:block !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-flex{display:-webkit-box !important;display:-webkit-flex !important;display:flex !important}.d-lg-inline-flex{display:-webkit-inline-box !important;display:-webkit-inline-flex !important;display:inline-flex !important}.d-lg-none{display:none !important}}@media (min-width: 1280px){.d-xl-table{display:table !important}.d-xl-table-cell{display:table-cell !important}.d-xl-block{display:block !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-flex{display:-webkit-box !important;display:-webkit-flex !important;display:flex !important}.d-xl-inline-flex{display:-webkit-inline-box !important;display:-webkit-inline-flex !important;display:inline-flex !important}.d-xl-none{display:none !important}}@media (max-width: 544px){.hide-sm{display:none !important}}@media (min-width: 544px) and (max-width: 768px){.hide-md{display:none !important}}@media (min-width: 768px) and (max-width: 1012px){.hide-lg{display:none !important}}@media (min-width: 1012px){.hide-xl{display:none !important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);word-wrap:normal;border:0}fieldset{padding:0;margin:0;border:0}label{font-weight:600}.form-control,.form-select{min-height:34px;padding:6px 8px;font-size:14px;line-height:20px;color:#24292e;vertical-align:middle;background-color:#fff;background-repeat:no-repeat;background-position:right 8px center;border:1px solid #d1d5da;border-radius:3px;outline:none;box-shadow:inset 0 1px 2px rgba(27,31,35,0.075)}.form-control.focus,.form-control:focus,.form-select.focus,.form-select:focus{border-color:#2188ff;outline:none;box-shadow:inset 0 1px 2px rgba(27,31,35,0.075),0 0 0 0.2em rgba(3,102,214,0.3)}.input-contrast{background-color:#fafbfc}.input-contrast:focus{background-color:#fff}::-webkit-input-placeholder{color:#6a737d}::-moz-placeholder{color:#6a737d}:-ms-input-placeholder{color:#6a737d}::placeholder{color:#6a737d}.input-sm{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px;line-height:20px}.input-lg{padding:4px 10px;font-size:16px}.input-block{display:block;width:100%}.input-monospace{font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace}.input-hide-webkit-autofill::-webkit-contacts-auto-fill-button{position:absolute;right:0;display:none !important;pointer-events:none;visibility:hidden}.form-checkbox{padding-left:20px;margin:15px 0;vertical-align:middle}.form-checkbox label em.highlight{position:relative;left:-4px;padding:2px 4px;font-style:normal;background:#fffbdd;border-radius:3px}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{float:left;margin:5px 0 0 -20px;vertical-align:middle}.form-checkbox .note{display:block;margin:0;font-size:12px;font-weight:normal;color:#586069}.form-checkbox-details{display:none}.form-checkbox-details-trigger:checked ~ * .form-checkbox-details,.form-checkbox-details-trigger:checked ~ .form-checkbox-details{display:block}.hfields{margin:15px 0}.hfields::before{display:table;content:""}.hfields::after{display:table;clear:both;content:""}.hfields .form-group{float:left;margin:0 30px 0 0}.hfields .form-group dt label{display:inline-block;margin:5px 0 0;color:#586069}.hfields .form-group dt img{position:relative;top:-2px}.hfields .btn{float:left;margin:28px 25px 0 -20px}.hfields .form-select{margin-top:5px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.form-actions::before{display:table;content:""}.form-actions::after{display:table;clear:both;content:""}.form-actions .btn{float:right}.form-actions .btn+.btn{margin-right:5px}.form-warning{padding:8px 10px;margin:10px 0;font-size:14px;color:#735c0f;background:#fffbdd;border:1px solid #d9d0a5;border-radius:3px}.form-warning p{margin:0;line-height:1.5}.form-warning a{font-weight:600}.form-select{display:inline-block;max-width:100%;height:34px;padding-right:24px;padding-right:8px \9;background:#fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC") no-repeat right 8px center;background-image:none \9;background-size:8px 10px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select::-ms-expand{opacity:0}.form-select[multiple]{height:auto}.select-sm{height:28px;min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px}.select-sm[multiple]{height:auto;min-height:0}.form-group{margin:15px 0}.form-group .form-control{width:440px;max-width:100%;margin-right:5px;background-color:#fafbfc}.form-group .form-control:focus{background-color:#fff}.form-group .form-control.shorter{width:130px}.form-group .form-control.short{width:250px}.form-group .form-control.long{width:100%}.form-group textarea.form-control{width:100%;height:200px;min-height:200px}.form-group textarea.form-control.short{height:50px;min-height:50px}.form-group dt{margin:0 0 6px}.form-group label{position:relative}.form-group.flattened dt{float:left;margin:0;line-height:32px}.form-group.flattened dd{line-height:32px}.form-group dd h4{margin:4px 0 0}.form-group dd h4.is-error{color:#cb2431}.form-group dd h4.is-success{color:#28a745}.form-group dd h4+.note{margin-top:0}.form-group.required dt label::after{padding-left:5px;color:#cb2431;content:"*"}.form-group .success,.form-group .error,.form-group .indicator{display:none;font-size:12px;font-weight:600}.form-group.loading{opacity:0.5}.form-group.loading .indicator{display:inline}.form-group.loading .spinner{display:inline-block;vertical-align:middle}.form-group.successful .success{display:inline;color:#28a745}.form-group.warn .warning,.form-group.warn .error,.form-group.errored .warning,.form-group.errored .error{position:absolute;z-index:10;display:block;max-width:450px;padding:5px 8px;margin:4px 0 0;font-size:13px;font-weight:normal;border-style:solid;border-width:1px;border-radius:3px}.form-group.warn .warning::after,.form-group.warn .warning::before,.form-group.warn .error::after,.form-group.warn .error::before,.form-group.errored .warning::after,.form-group.errored .warning::before,.form-group.errored .error::after,.form-group.errored .error::before{position:absolute;bottom:100%;left:10px;z-index:15;width:0;height:0;pointer-events:none;content:" ";border:solid transparent}.form-group.warn .warning::after,.form-group.warn .error::after,.form-group.errored .warning::after,.form-group.errored .error::after{border-width:5px}.form-group.warn .warning::before,.form-group.warn .error::before,.form-group.errored .warning::before,.form-group.errored .error::before{margin-left:-1px;border-width:6px}.form-group.warn .warning{color:#735c0f;background-color:#fffbdd;border-color:#d9d0a5}.form-group.warn .warning::after{border-bottom-color:#fffbdd}.form-group.warn .warning::before{border-bottom-color:#d9d0a5}.form-group.errored label{color:#cb2431}.form-group.errored .error{color:#86181d;background-color:#ffdce0;border-color:#cea0a5}.form-group.errored .error::after{border-bottom-color:#ffdce0}.form-group.errored .error::before{border-bottom-color:#cea0a5}.note{min-height:17px;margin:4px 0 2px;font-size:12px;color:#586069}.note .spinner{margin-right:3px;vertical-align:middle}.css-truncate.css-truncate-target,.css-truncate .css-truncate-target{display:inline-block;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.css-truncate.expandable.zeroclipboard-is-hover .css-truncate-target,.css-truncate.expandable.zeroclipboard-is-hover.css-truncate-target,.css-truncate.expandable:hover .css-truncate-target,.css-truncate.expandable:hover.css-truncate-target{max-width:10000px !important}.TableObject{display:table}.TableObject-item{display:table-cell;width:1%;white-space:nowrap;vertical-align:middle}.TableObject-item--primary{width:99%}.labels{position:relative}.label,.Label{display:inline-block;padding:3px 4px;font-size:12px;font-weight:600;line-height:1;color:#fff;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(27,31,35,0.12)}.label:hover,.Label:hover{text-decoration:none}.Label--gray{color:#586069;background-color:#eaecef}.Label--outline{margin-top:-1px;margin-bottom:-1px;font-weight:normal;color:#586069;background-color:transparent;border:1px solid rgba(27,31,35,0.15);box-shadow:none}.Label--outline-green{color:#28a745;border:1px solid #34d058}.Label--gray-darker{background-color:#6a737d}.Label--orange{background-color:#d15704}.state,.State{display:inline-block;padding:4px 8px;font-weight:600;line-height:20px;color:#fff;text-align:center;background-color:#6a737d;border-radius:3px}.State--green{background-color:#2cbe4e}.State--purple{background-color:#6f42c1}.State--red{background-color:#cb2431}.State--small{padding:0.125em 4px;font-size:12px}.State--small .octicon{width:1em}.Counter{display:inline-block;padding:2px 5px;font-size:12px;font-weight:600;line-height:1;color:#586069;background-color:rgba(27,31,35,0.08);border-radius:20px}.Counter--gray-light{color:#24292e;background-color:rgba(27,31,35,0.15)}.Counter--gray{color:#fff;background-color:#6a737d}.avatar{display:inline-block;overflow:hidden;line-height:1;vertical-align:middle;border-radius:3px}.avatar-small{border-radius:2px}.avatar-link{float:left;line-height:1}.avatar-group-item{display:inline-block;margin-bottom:3px}.avatar-parent-child{position:relative}.avatar-child{position:absolute;right:-15%;bottom:-9%;background-color:#fff;border-radius:2px;box-shadow:-2px -2px 0 rgba(255,255,255,0.8)}.markdown-body{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre{margin-top:0;margin-bottom:16px}.markdown-body hr{height:0.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:0.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{font-size:inherit}.markdown-body h1{padding-bottom:0.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:0.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:0.875em}.markdown-body h6{font-size:0.85em;color:#6a737d}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:0.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:0;padding-top:0.2em;padding-bottom:0.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,0.05);border-radius:3px}.markdown-body code::before,.markdown-body code::after,.markdown-body tt::before,.markdown-body tt::after{letter-spacing:-0.2em;content:"\00a0"}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code::before,.markdown-body pre code::after,.markdown-body pre tt::before,.markdown-body pre tt::after{content:normal}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}/*!
6
+ * GitHub Light v0.3.0
7
+ * Copyright (c) 2012 - 2016 GitHub, Inc.
8
+ * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE)
9
+ */.pl-c{color:#969896}.pl-c1,.pl-s .pl-v{color:#0086b3}.pl-e,.pl-en{color:#795da3}.pl-smi,.pl-s .pl-s1{color:#333}.pl-ent{color:#63a35c}.pl-k{color:#a71d5d}.pl-s,.pl-pds,.pl-s .pl-pse .pl-s1,.pl-sr,.pl-sr .pl-cce,.pl-sr .pl-sre,.pl-sr .pl-sra{color:#183691}.pl-v,.pl-smw{color:#ed6a43}.pl-bu{color:#b52a1d}.pl-ii{color:#f8f8f8;background-color:#b52a1d}.pl-c2{color:#f8f8f8;background-color:#b52a1d}.pl-c2::before{content:"^M"}.pl-sr .pl-cce{font-weight:bold;color:#63a35c}.pl-ml{color:#693a17}.pl-mh,.pl-mh .pl-en,.pl-ms{font-weight:bold;color:#1d3e81}.pl-mq{color:#008080}.pl-mi{font-style:italic;color:#333}.pl-mb{font-weight:bold;color:#333}.pl-md{color:#bd2c00;background-color:#ffecec}.pl-mi1{color:#55a532;background-color:#eaffea}.pl-mc{color:#ef9700;background-color:#ffe3b4}.pl-mi2{color:#d8d8d8;background-color:#808080}.pl-mdr{font-weight:bold;color:#795da3}.pl-mo{color:#1d3e81}.pl-ba{color:#595e62}.pl-sg{color:#c0c0c0}.pl-corl{text-decoration:underline;color:#183691}kbd{display:inline-block;padding:3px 5px;font:11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fcfcfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.badmono{font-family:sans-serif;font-weight:600}.diffstat{font-size:12px;font-weight:600;color:#586069;white-space:nowrap;cursor:default}.block-diff-deleted,.block-diff-added,.block-diff-neutral{display:inline-block;width:8px;height:8px;margin-left:1px}.block-diff-deleted,.text-red .block-diff-neutral{background-color:#cb2431}.block-diff-added,.block-diff-neutral{background-color:#2cbe4e}.block-diff-neutral{background-color:#d1d5da}.tab-size[data-tab-size="1"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}.tab-size[data-tab-size="2"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}.tab-size[data-tab-size="3"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}.tab-size[data-tab-size="4"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.tab-size[data-tab-size="5"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}.tab-size[data-tab-size="6"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}.tab-size[data-tab-size="7"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}.tab-size[data-tab-size="8"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}.tab-size[data-tab-size="9"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}.tab-size[data-tab-size="10"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}.tab-size[data-tab-size="11"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}.tab-size[data-tab-size="12"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}.task-list-item{list-style-type:none}.task-list-item label{font-weight:normal}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:3px}.task-list-item .handle{display:none}.task-list-item-checkbox{margin:0 0.2em 0.25em -1.6em;vertical-align:middle}.reorderable-task-lists .markdown-body .contains-task-list{padding:0}.reorderable-task-lists .markdown-body li:not(.task-list-item){margin-left:26px}.reorderable-task-lists .markdown-body ol:not(.contains-task-list) li,.reorderable-task-lists .markdown-body ul:not(.contains-task-list) li{margin-left:0}.reorderable-task-lists .markdown-body li p{margin-top:0}.reorderable-task-lists .markdown-body .task-list-item{padding-right:15px;padding-left:42px;margin-right:-15px;margin-left:-15px;border:1px solid transparent}.reorderable-task-lists .markdown-body .task-list-item+.task-list-item{margin-top:0}.reorderable-task-lists .markdown-body .task-list-item .contains-task-list{padding-top:4px}.reorderable-task-lists .markdown-body .task-list-item .handle{display:block;float:left;width:20px;padding:2px 0 0 2px;margin-left:-43px;opacity:0}.reorderable-task-lists .markdown-body .task-list-item .drag-handle{fill:#333}.reorderable-task-lists .markdown-body .task-list-item.hovered{background:#fafafa;border-top-color:#ededed;border-bottom-color:#ededed}.reorderable-task-lists .markdown-body .task-list-item.hovered>.handle{opacity:1}.reorderable-task-lists .markdown-body .task-list-item.is-dragging{opacity:0}.reorderable-task-lists .markdown-body .task-list-item.is-ghost{border-right-color:#ededed;border-left-color:#ededed}.review-comment-contents .markdown-body .task-list-item{padding-left:42px;margin-right:-12px;margin-left:-12px;border-top-left-radius:3px;border-bottom-left-radius:3px}.review-comment-contents .markdown-body .task-list-item.hovered{border-left-color:#ededed}#user-content-toc{overflow:visible}#user-content-toc tr{border-top:0}#user-content-toc td{padding:0 20px;background-color:#f7f7f7;border:0;border-radius:3px}#user-content-toc ul{padding-left:0;font-weight:600;list-style:none}#user-content-toc ul li{padding-left:0.2em}#user-content-toc ul ul{font-weight:normal}#user-content-toc ul ul li::before{float:left;margin-top:-0.2em;margin-right:0.2em;font-size:1.2em;line-height:1;color:#aaa;content:"\231e"}#user-content-toc ul ul ul{padding-left:0.9em}#user-content-toctitle h2{margin-top:1em;margin-bottom:0.5em;font-size:1.25em;border-bottom:0}*{box-sizing:border-box}html{font-size:14px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{width:100%;padding:0;margin:0;font:1rem/1.42 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:#333;background-color:#fafbfc}button,input,textarea{margin:0;font-family:inherit;font-size:inherit}button{padding:0;margin:0;background:none;border:0}table{border-spacing:0;border-collapse:collapse}a{color:#0366d6;text-decoration:none}a:active{color:inherit}strong{font-weight:600}pre{word-wrap:break-word;white-space:pre-wrap}code,pre{font-family:Consolas, "Liberation Mono", Courier, monospace}hr{background:#eee;border-color:transparent}input[type="checkbox"][disabled]{opacity:0.25}textarea[disabled]::-webkit-input-placeholder{color:#000}.color-icons .octicon-comment-discussion{color:#333}.color-icons .octicon-issue-closed{color:#cb2431}.color-icons .octicon-issue-opened{color:#28a745}.color-icons .octicon-git-branch{color:#28a745}.color-icons .octicon-git-pull-request{color:#28a745}.color-icons .octicon-git-commit{color:#586069}.color-icons .opened{color:#28a745}.color-icons .closed{color:#cb2431}.color-icons .merged{color:#6f42c1}footer{padding:12px 0;font-size:14px;border-top:1px solid #ddd}footer .octicon{float:left;color:#aaa}footer ul{float:right;padding-left:0;margin-top:0;margin-bottom:0}footer li{float:left;line-height:32px;color:#aaa;list-style-type:none}footer li+li{margin-left:15px}footer li a{color:inherit}footer form{display:inline}footer .switch-to-desktop{display:inline;color:inherit}.clearfix::before,.clearfix::after{display:table;line-height:0;content:""}.clearfix::after{clear:both}.protip{margin:20px 0;font-size:13px;color:#666;text-align:center}.labels{position:relative;display:block}.label{font-size:10px}.switcher{position:relative;padding:15px 15px 15px 35px}.switcher.open .switcher-icon-open{display:none}.switcher.open .switcher-icon-close,.switcher.open .switcher-options{display:block}.switcher-toggle{display:block;font-weight:600;color:inherit}.switcher-toggle-meta{display:block;font-size:85%;font-weight:normal;color:#586069}.switcher-options{position:relative;display:none;padding-top:6px}.switcher-option{display:block;padding:6px 0;font-weight:600}.switcher-option .octicon-check{position:absolute;left:-19px}.switcher-option .css-truncate-target{max-width:80%}.switcher-icon{float:left;margin-top:1px;margin-left:-20px;color:#586069}.switcher-icon-open,.switcher-icon-close{position:relative;top:1px;float:right;width:auto;margin-right:0;margin-left:0;color:#586069}.switcher-icon-close{display:none}.octicon.switcher-icon-close{display:none}.octicon.switcher-icon-open{display:block}.bubble{padding:0;margin:0 15px 15px;overflow:hidden;word-break:break-word;word-wrap:break-word;white-space:normal;background:#fff;border:1px solid #ddd;border-radius:3px}.nav-bar+.bubble,.tabs+.bubble{margin-top:15px}.bubble.padded{padding:10px}.bubble.no-padding .bubble-content{padding:0}.bubble.no-margin{margin:0}.bubble.bubble-warn{color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}.bubble-title{display:block;padding:10px 15px;margin:0;font-size:14px;color:#444;border-bottom:1px solid #ddd}.bubble-title .octicon{width:16px;margin-right:2px;margin-left:-3px;color:#586069;text-align:center}.bubble-title time{float:right;font-size:12px;font-weight:normal;line-height:20px;color:#586069}.bubble-content{padding:15px}.bubble-content .markdown-body{padding:0}.bubble-actions{display:table;width:100%;text-align:center;table-layout:fixed}.bubble-content+.bubble-actions,.repo-list+.bubble-actions{border-top:1px solid #ddd}.bubble-action-form{display:table-cell}.bubble-action{display:table-cell;padding:10px 15px;font-weight:500;line-height:1.5;color:#0366d6}.bubble-action+.bubble-action,.bubble-action+.bubble-action-form,.bubble-action-form+.bubble-action,.bubble-action-form+.bubble-action-form{border-left:1px solid #ddd}.bubble-disabled{background:#f5f5f5;border-color:#ccc;box-shadow:inset 0 0 10px rgba(0,0,0,0.1)}.bubble-disabled .bubble-title{color:#586069}.bubble-disabled .bubble-content{font-size:15px;color:#586069;text-align:center}.bubble-disabled .bubble-content.full-bleed{padding:15px}.bubble-disabled .bubble-action{color:#586069}ol ol,ul ol{list-style-type:lower-roman}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}.list{padding:0;margin:0;list-style:none;background-color:#fff}.list:first-child .list-heading:first-child{border-top:0}.list .list-item-template{display:none}.list.list-rendered:empty{display:none}.list.list-rendered .list-item-template{display:block}.list-item{position:relative;display:block;width:100%;padding:14px 15px 14px 35px;line-height:inherit;text-align:left}.list-item+.list-item,.list-item+.list-heading,.list-heading+.list-item{border-top:1px solid #eee}.list-item.with-avatar{padding-left:45px}.list-item.no-padding{padding-left:15px}.list-item>.octicon{position:absolute;top:14px;left:12px;width:16px;text-align:center;vertical-align:bottom}.list-item>.list-item-chevron{top:50%;right:15px;left:auto;margin-top:-10px;font-size:20px;color:#586069}.list-item .avatar{position:absolute;top:14px;left:15px;border-radius:2px}.list-item .meta{float:right;margin-bottom:5px;margin-left:5px;font-size:11px;color:#6a737d}.list-item .meta ~ .list-item-title{margin-right:55px}.list-item .meta .octicon-star{vertical-align:top}.list-item .nwo-link{display:block;margin-bottom:2px;font-size:12px;font-weight:600;color:#586069}.list-item .ref{color:#586069}.list-item .byline{display:block;margin:0;font-size:12px;color:#586069}.list-item .byline strong{font-weight:normal;color:#444}.list-item .labels{margin-top:2px}.list-item.read{background-color:#fafbfc}.list-item.read .list-item-title{color:#586069}.list-item.read>.octicon{color:#586069}.list-item.read .list-action-archive{display:none}.list-item .filename{max-width:100%}.list-item mark{font-weight:600;color:inherit;background-color:inherit}.list-item-title{display:block;margin-bottom:3px;font-weight:600;line-height:1.2;color:#0366d6;word-wrap:break-word}.list-heading{position:relative;padding:7px 15px;clear:both;font-size:12px;font-weight:600;color:#586069;background-color:#f5f5f5;border-top:1px solid #eee}.list-heading::before{display:table;content:""}.list-heading::after{display:table;clear:both;content:""}.list-heading a,.list-heading .btn-link{color:inherit}.list-heading .btn-link>.octicon{opacity:0.65}.list-heading .path-item{float:left}.list-action-form{float:right;margin-top:-10px;margin-right:-15px}.list-action-form>.btn-link{padding:10px 15px;color:#ccc}.list-action-form ~ .list-item-title{margin-right:30px}.list-empty .list-item{padding:45px;font-weight:600;color:#586069;text-align:center}.list-options .list-item .list-item-title{color:#586069}.list-options .list-item>.octicon{color:#fff}.list-options .selected .list-item-title{color:#333}.list-options .selected>.octicon{color:#444}.repo-list-item .repo-name{max-width:80%;margin-right:32px}.repo-list .private{background-color:#fffdef}.repo-list .author-avatar{border-radius:2px}.repo-list .octicon{color:#586069}.repo-list .octicon-lock{color:rgba(27,31,35,0.7)}.repo-list .no-repo{padding:15px;color:#586069;text-align:center}.files-list{word-wrap:break-word}.files-list+.files-list{border-top:1px solid #ddd}.files-list .meta{float:none;margin:5px 0 0}.files-list .warning{font-weight:600;background-color:#fffccc}.files-list .simplified-path{color:#888}.files-list .octicon{top:16px}.files-list .octicon-file-directory{color:#80a6cd}.user-list .follow-list-info{font-size:12px;color:#666}.bubble.auth-form-container{margin-top:30px;margin-bottom:30px}.bubble.auth-form-container label{display:block;margin:0 0 5px}.bubble.auth-form-container .bubble-title{color:#fff;background-color:#586873}.bubble.auth-form-container p{margin:0}.bubble.auth-form-container .form-control{display:block;width:100%;margin:0 0 15px}.auth-form-message{padding:10px}.login-heading{margin-bottom:5px;font-size:13px}.login-heading+p{margin-top:0}.login-note{position:relative;padding:0 15px;font-size:13px}.login-note p{padding-left:22.5px;color:#586069}.login-note.no-icon p{padding-left:0}.login-note .octicon{position:absolute;top:0;left:15px;color:#586069}.login-note .btn{margin-bottom:15px}.u2f-auth-form-body{display:block;padding:10px 20px 20px}.u2f-auth-form-body.unavailable{display:none}section.blog{padding:0 15px}section.blog .pagination{margin-top:20px}section.blog .pagination .next_page{float:right}.post-title{padding:15px 15px 0;margin:0 -15px 5px;margin-bottom:20px;font-size:24px;font-style:normal;font-weight:normal;color:#495961;background-color:rgba(0,0,0,0.01)}.byline{margin-bottom:15px;font-size:13px;color:#586069}.byline span,.byline span img,.byline a{vertical-align:top;border-radius:3px}.byline a{color:#586069}.byline .author{margin-left:12px}.post-content h3{border-bottom:1px solid #eee}.post-content ol{list-style-type:decimal}.post-content ul{list-style-type:disc}.post-content img{width:100%;box-sizing:border-box;padding:3px;border:1px solid #d8d8d8}.post-content img.emoji{width:inherit;border:0}.post-content .anchor{display:none}.post-content .user-mention{color:#333}.post-content code{white-space:normal}.post-content iframe{max-width:100%;height:inherit}.posts h3,.recent-posts h3{padding:0;margin:15px 0 5px;font-size:14px;font-style:normal;font-weight:normal;color:#586069}.posts ul,.recent-posts ul{padding-left:0}.posts li,.recent-posts li{margin-bottom:10px;line-height:1.2;list-style-type:none}.posts li a,.recent-posts li a{font-size:20px;font-style:normal;font-weight:normal}.recent-posts{padding:15px;margin:15px 0 0;background-color:#fff;border-top:1px solid #eee}.recent-posts h3{margin-top:0}.recent-posts p{margin-bottom:0}.recent-posts li a{font-size:16px}.btn{display:inline-block;padding:9px 15px;margin:0;font-size:13px;font-weight:600;line-height:1.5;color:#333;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,0.9);white-space:nowrap;vertical-align:middle;background-image:-webkit-linear-gradient(#fafafa, #eaeaea);background-image:linear-gradient(#fafafa, #eaeaea);border:1px solid #ddd;border-bottom-color:#cecece;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:active{background-color:#6a737d;background-image:none;border-color:#444;box-shadow:0 1px 3px rgba(0,0,0,0.075),inset 0 0 5px rgba(0,0,0,0.2)}.btn:disabled,.btn.disabled{pointer-events:none;opacity:0.3}.btn .count{position:relative;margin:0 0 0 3px;font-size:11px;font-weight:100;color:rgba(0,0,0,0.4);text-shadow:none;border-radius:10px}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-image:-webkit-linear-gradient(#8add6d, #60b044);background-image:linear-gradient(#8add6d, #60b044);border-color:#5ca941}.btn-danger{color:#900}.btn-block{display:block;width:100%;text-align:center}.btn-block+.btn-block{margin-top:10px}.section-title button{float:right;padding:0;margin:0;font-size:12px;color:#586069;background:transparent;border:0;box-shadow:none}.section-title button .octicon{color:#586069}.btn-link{display:inline;padding:0;font-size:inherit;color:#0366d6;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mobile.commit{display:block;float:none;width:100%;padding:15px;color:#213f4d;background-color:#e6f1f6;border-bottom:1px solid #d1e2eb}.mobile.commit .commit-desc pre{padding:0;margin:0;font-size:12px}.commit-title{margin:0 0 5px;font-size:13px;font-weight:600}.commit-list .message{color:#333}.commit-authorship{padding:7.5px 0;font-size:12px;line-height:24px;color:#586069;background-color:#fff}.commit-authorship .avatar{float:left;margin-right:8px;margin-left:15px;border-radius:3px}.commit-authorship a{font-weight:600}.diff-view .file{position:relative;margin-bottom:15px;border-top:1px solid #d1d5da;border-bottom:1px solid #d1d5da}.diff-view .file:last-child:not(:only-child){border-bottom:0}.diff-view .file .meta{padding:5px 10px 3px;font-size:12px;color:#555;text-align:left;text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(#fff, #f5f5f5);background-image:linear-gradient(#fff, #f5f5f5);border-bottom:1px solid #d8d8d8}.diff-view .file .meta .info{position:relative;padding:6px 0;padding-left:30px;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;line-height:1.2}.diff-view .file .meta .file-label{padding-left:0;margin-left:0;word-break:break-all;border-left:0 none;box-shadow:inset 0 0 0 transparent}.diff-view .file .meta span.icon{display:inline-block;padding:3px;margin:5px 5px 0 0;line-height:0;background:#f7f7f7;border:1px solid #ccc;border-right-color:#e5e5e5;border-bottom-color:#e5e5e5;border-radius:3px}.diff-view .file .meta .octicon-file-text{color:#aaa}.diff-view .file .file-label a{color:inherit}.diff-view .file .highlight{overflow:auto;overflow-x:auto;overflow-y:hidden}.diff-view .file .empty{padding:5px 10px;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:12px;line-height:24px;color:#555}.diff-view .file .file-code{border-spacing:0;border-collapse:separate;background-color:#fff}.diff-view .file .file-diff-line{position:relative;cursor:pointer}.diff-view .file .blob-num{padding:0 3px;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:12px;line-height:18px;color:rgba(0,0,0,0.3);text-align:right;vertical-align:top}.diff-view .file .blob-num::before{content:attr(data-line-number)}.diff-view .file .blob-code{padding-right:10px;padding-left:10px}.diff-view .file .blob-code-inner{font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:12px;color:#333;white-space:pre}.diff-view .file .blob-code-inner .x-first{border-top-left-radius:0.2em;border-bottom-left-radius:0.2em}.diff-view .file .blob-code-inner .x-last{border-top-right-radius:0.2em;border-bottom-right-radius:0.2em}.diff-view .file.soft-wrap .blob-code-inner{word-wrap:break-word;white-space:pre-wrap}.diff-view .file .prose .blob-code-inner{white-space:pre-wrap}.diff-view .file .blob-code-hunk{color:#586069;background-color:#f8f8ff}.diff-view .file .blob-num-hunk{background-color:#f3f3ff;border-color:#e4e4ff}.diff-view .file .blob-code-addition{background-color:#eaffea}.diff-view .file .blob-code-addition .x{background-color:#a6f3a6}.diff-view .file .blob-num-addition{background-color:#dbffdb;border-color:#c1e9c1}.diff-view .file .blob-code-deletion{background-color:#ffecec}.diff-view .file .blob-code-deletion .x{background-color:#f8cbcb}.diff-view .file .blob-num-deletion{background-color:#ffdddd;border-color:#f1c0c0}.diff-view .file span.no-nl-marker{position:relative;top:1px;margin-left:4px;color:#cb2431;vertical-align:middle}.diff-view .inline-comments{background-color:#fafbfc}.diff-view table .discussion-block{border-right:1px solid #ddd}.diff-view .inline-comment-form-container{width:100vw;border-right:1px solid #ddd}.add-inline-comment{cursor:pointer}.inline-comment-form{background-color:#fafbfc}.inline-comment-form .inline-note-reply{background-color:transparent;border-top:0}.inline-comment-form-container{padding:15px}.inline-comment-form-container .discussion-reply{padding:0}.comment-holder+.inline-comment-form-container{padding-top:0}.inline-comment-form-container .inline-comment-form,.inline-comment-form-container.open .inline-comment-form-actions{display:none}.inline-comment-form-container .inline-comment-form-actions,.inline-comment-form-container.open .inline-comment-form{display:block}.line-comments{padding:0;border:solid #ddd;border-width:1px 0}.inline-comments .discussion-block{max-width:100vw}.inline-comments .bubble-content{padding-top:10px;padding-bottom:10px}.inline-comments .markdown-body{font-size:85%}.inline-comments:last-child .line-comments{border-bottom:0}.timeline-inline-comments{width:100%;overflow:hidden}.timeline-inline-comments .inline-comment-form-container:last-child{border-bottom:1px solid #ddd}.timeline-review-comment-thread .diff-view .file{margin-bottom:0}.timeline-review-comment-thread .file-code{width:100%}.inline-note-sign-in-container{padding:15px;font-size:85%;text-align:center}.inline-note-sign-in-container .btn{margin-bottom:15px}.inline-comment-form-template-container{display:none}.diffstat{position:absolute;top:4px;left:0}.highlighted-blob{white-space:pre-wrap}.mobile-toc{background-color:#fff}.mobile-toc.open .switcher-options{display:block}.mobile-toc .diffstat{position:static}.mobile-toc .switcher-option{font-size:85%;font-weight:normal}.mobile-toc .switcher-option .octicon{float:left;margin-left:-20px;color:#ccc}.mobile-toc .switcher-option .octicon-diff-removed{color:#cb2431}.mobile-toc .switcher-option .octicon-diff-renamed{color:#677a85}.mobile-toc .switcher-option .octicon-diff-modified{color:#d0b44c}.mobile-toc .switcher-option .octicon-diff-added{color:#28a745}.add-comment-label,.review-cancel-button,.is-review-pending .start-review-label{display:none}.start-review-label,.is-review-pending .review-cancel-button,.is-review-pending .submit-review-button,.is-review-pending .add-comment-label{display:inline-block}.is-review-pending .submit-review-button{width:auto}.discussion-header{padding:15px 15px 0;background:#fff}.discussion-header .state{font-size:12px;line-height:16px;border-radius:2px}.discussion-header .discussion-block-title{padding:10px 0 15px}.discussion-header .pull-request-description-toggle .pull-request-description{display:block}.discussion-header .pull-request-description-toggle .pull-request-description-full{display:none}.discussion-header .pull-request-description-toggle.open .pull-request-description{display:none}.discussion-header .pull-request-description-toggle.open .pull-request-description-full{display:block}.discussion-header .branches{padding:7.5px 0;margin:0;font-size:12px;color:#aaa;cursor:pointer}.discussion-header .branches .branch-name{position:relative;display:inline-block;padding-left:20px;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;color:#586069}.discussion-header .branches .branch-name .octicon{position:absolute;top:0;left:0}.discussion-header .branches .octicon-git-branch{width:16px;text-align:left}.discussion-header .branches .octicon-arrow-up{display:block;width:100%;margin-left:20px}.discussion-header .branches .css-truncate-target{max-width:90%}.discussion-title{margin-bottom:0;font-size:16px;word-wrap:break-word}.discussion-labels{padding:15px 15px 0;background-color:#fff}.discussion-labels .octicon{position:relative;top:2px;margin-right:2px;color:#586069}.discussion-starting-comment{position:relative}.discussion-starting-comment+.discussion-reply-container{margin-top:-1px}.discussion-starting-comment .avatar{position:absolute;left:15px;margin-right:10px;border-radius:2px}.discussion-starting-comment time{margin:0 15px;color:#586069}.discussion-starting-comment .username,.discussion-starting-comment .num{color:#666}.discussion-starting-comment .discussion-title .num{font-weight:100;color:#aaa}.discussion-starting-comment .discussion-block-title{padding-left:60px}.discussion-comment{padding:15px;background:#fff;border-bottom:1px solid #ddd}.commit-comments-header{padding:0 15px;font-size:14px}.commit-comments-header-sha{font-weight:normal}.discussion-block-title{position:relative;padding:10px 15px;font-size:12px;line-height:16px;color:#586069;background-color:#fff;border-bottom:1px solid #eee}.discussion-block-title::before{display:table;content:""}.discussion-block-title::after{display:table;clear:both;content:""}.discussion-block-title .avatar{float:left;margin-right:10px;border-radius:3px}.discussion-block-title .timestamp{color:#586069}.discussion-block-title .username{font-weight:600;color:#444}.discussion-block-meta{margin-left:42px}.discussion-block-meta .editor{color:#444}.commit{float:left;margin:0 10px 0 0}.bubble.is-pending{border-color:#d9d0a5}.bubble.is-pending .discussion-block-title{background-color:#fffbdd;border-color:#d9d0a5}.bubble .commit-message{padding:0;margin:0;color:#444;white-space:pre-wrap}.discussion-block{padding:15px}.discussion-block>.bubble{margin:0}.discussion-block-header{padding:25px 15px 7.5px;font-size:12px;font-weight:600;color:#586069;background-color:#f5f5f5;border-top:1px solid #ddd}.discussion-event{position:relative;padding:15px}.discussion-event .branch{font-weight:600;color:#444;white-space:nowrap;vertical-align:middle}.discussion-event .branch.css-truncate-target{max-width:165px}.discussion-event .timestamp{color:inherit}.timeline-truncation-container{padding-right:0;padding-left:0}.timeline-truncation-container+.discussion-block{padding-top:15px;border-top:1px solid #eee}.timeline-truncation-container .switch-to-desktop{color:#0366d6}.timeline-truncation-title{margin-top:0;margin-bottom:5px;font-weight:600;color:#586069}.issue-event{position:relative;padding-left:40px;font-size:13px;color:#586069}.issue-event:last-of-type{border-bottom:0}.issue-event .avatar{position:absolute;top:0;left:15px}.issue-event strong{color:#444}.issue-event .meta{margin:0.5em 0 0;font-size:12px;color:#586069}.issue-event .label{font-size:90%}.issue-event-icon{position:absolute;top:16px;left:15px;width:16px;color:#999;text-align:center}.issue-event-icon-open{color:#28a745}.issue-event-icon-closed{color:#cb2431}.issue-event-icon-merged{color:#6f42c1}.issue-event-icon-locked{color:#333}.issue-event-icon-unlocked{color:#28a745}.closed-event{padding-bottom:15px;border-bottom:5px solid #ddd}.dead-pull-request-review-comment{position:relative;display:block;padding-left:20px;margin:0 15px 15px;font-size:12px;color:#586069}.dead-pull-request-review-comment .octicon{position:absolute;top:0;left:0}.dead-pull-request-review-comment .username{font-weight:600;color:#586069}.timeline-review-comment-thread-container.dead .octicon{color:#aaa}.timeline-review-comment-thread-container.dead.open .octicon-unfold,.timeline-review-comment-thread-container.dead.open .show-diff{display:none}.timeline-review-comment-thread-container.dead:not(.open) .octicon-fold,.timeline-review-comment-thread-container.dead:not(.open) .hide-diff,.timeline-review-comment-thread-container.dead:not(.open) .timeline-review-comment-thread{display:none}.cross-reference .bubble-title{font-size:12px;color:#737b7c;background-image:-webkit-linear-gradient(#f8fbfc, #eef1f4);background-image:linear-gradient(#f8fbfc, #eef1f4);border-bottom:1px solid #e0e2e5}.cross-reference .bubble-title a{color:#737b7c}.cross-reference .bubble-title.private{padding-left:30px;background-color:#fffdef;background-image:none}.cross-reference .bubble-title .octicon-lock{float:left;margin-left:-20px;color:rgba(27,31,35,0.7)}.cross-reference .bubble-content a{color:#444}.timeline-commits-container{padding:15px;font-size:12px;line-height:16px;color:#666}.timeline-commits-container .octicon-repo-push{position:absolute;top:1px;left:1px;margin-right:10px;color:#aaa}.timeline-commits-container .author{font-weight:600;color:#666}.timeline-commits-container .timestamp{color:#666}.timeline-commits-container .timeline-commits{width:100%;margin-top:7.5px}.timeline-commits-container .timeline-commits td{padding:4px 0}.timeline-commits-container .commit-message a{color:#666;word-break:break-word}.commit-meta{width:36px;text-align:right}.commit-meta a{color:#aaa}.commit-meta .octicon{position:inline-block}.commit-meta .octicon-x{color:#cb2431}.commit-meta .octicon-check{margin-left:3px;color:#28a745}.commits-header{position:relative;padding-left:25px}.commit-avatar-container{width:25px}.commit-avatar-container .avatar{border-radius:2px}.timeline-review-container .file-header{padding:3px 10px 5px;background-color:#f7f7f7;border-top:1px solid #d1d5da;border-radius:0}.timeline-review-container .file-header:first-child{border-top:0;border-radius:3px 3px 0 0}.timeline-review-container .file-info{font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:12px}.timeline-review-container .bubble{margin-top:15px}.timeline-review-container .inline-comment-form{background-color:#fff}.timeline-review-container .inline-comment-form-container{padding:10px 15px}.timeline-review-container.is-pending{border-color:#d9d0a5}.timeline-review-container.is-pending .label,.timeline-review-container.is-pending .file-header{color:#735c0f;background-color:#fffbdd}.timeline-review-container.is-pending .bubble{border-color:#d9d0a5}.timeline-review-container .file-code{width:auto;min-width:100%;white-space:nowrap;table-layout:fixed}.timeline-review-header{display:table;font-size:12px;color:#666}.timeline-review-icon{display:table-cell;width:24px;vertical-align:top}.timeline-review-icon .octicon{margin-top:-1px;color:#6a737d}.timeline-review-icon .octicon-eye{margin-top:0}.timeline-review-icon .octicon-x{margin-top:0;margin-left:2px}.timeline-review-icon .octicon-check{margin-left:2px}.timeline-review-avatar{display:table-cell;padding-right:5px}.timeline-review-meta{display:table-cell;vertical-align:top}.timeline-review-meta .author{color:#666}.discussion-item-review-comment{border-bottom:1px solid #eaecef}.discussion-item-review-comment:last-child{border-bottom:0}.outdated-comment .timeline-review-comment-thread,.outdated-comment .hide-outdated-button{display:none}.outdated-comment .file-header{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.outdated-comment.open .timeline-review-comment-thread,.outdated-comment.open .hide-outdated-button{display:block}.outdated-comment.open .show-outdated-button{display:none}.outdated-comment.open .file-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.outdated-comment-label{line-height:22px}.user-mention,.team-mention{font-weight:600;color:#24292e}.discussion-create{margin:15px 15px 0}.discussion-create .form-control{margin-bottom:8px}.discussion-create .btn{margin-top:7.5px;margin-bottom:15px}.discussion-block+.discussion-block,.discussion-block+.discussion-event,.discussion-block+.timeline-commits-container,.discussion-event+.discussion-event,.discussion-event+.discussion-block,.discussion-event+.timeline-commits-container,.timeline-commits-container+.discussion-event,.timeline-commits-container+.discussion-block,.timeline-commits-container+.timeline-commits-container{border-top:1px solid #eee}.discussion-reply{padding:15px;text-align:right;background-color:#fff;border-top:1px solid #ddd}.discussion-reply .btn{margin-top:8px}.discussion-reply .btn+.btn{margin-left:8px}.comment-sign-in-container{padding:15px;font-size:13px;text-align:center}.comment-sign-in-container .btn{margin:0 0 15px}.thread-subscription-status{padding:15px;background-color:#fff;border-top:1px solid #ddd}.thread-subscription-status .octicon-radio-tower{float:left;color:#ccc}.thread-subscription-description{position:relative;min-height:30px;padding-left:42px;margin-top:0;font-size:13px;color:#586069}.thread-subscription-description .octicon{position:absolute;left:0}.line-comment-info{position:relative;padding:7.5px 15px;font-size:12px;color:#586069;border-bottom:1px solid #ddd}.line-comment-info::before,.line-comment-info::after{position:absolute;width:0;height:0;content:""}.line-comment-info::before{bottom:-8px;left:15px;z-index:10;border-top:8px solid #ddd;border-right:8px solid transparent;border-left:8px solid transparent}.line-comment-info::after{bottom:-7px;left:16px;z-index:20;border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.mobile-featured-carousel{margin:10px 0;overflow:auto;-webkit-overflow-scrolling:touch}.mobile-featured-carousel .mobile-featured-collections{padding:0;margin:0 15px;white-space:nowrap;list-style-type:none}.mobile-featured-carousel .mobile-featured-collection{display:inline-block;width:100%;padding:0;margin:0 5px 0 0}.mobile-featured-carousel .mobile-featured-collection:last-child{margin-right:15px}.mobile-featured-carousel .mobile-featured-collection-head{display:table;width:100%;height:150px;border-radius:3px}.mobile-featured-carousel .mobile-featured-collection-title{display:table-cell;padding:10px;font-size:18px;font-weight:500;color:#fff;text-align:center;white-space:pre-line;vertical-align:middle}.showcase-collection .header{padding:20px 15px;background:#555 url("/images/modules/home/octicons-bg.png") center repeat}.showcase-collection .header .avatar{width:20px;height:20px;vertical-align:middle;border-radius:2px}.showcase-collection .title{margin:0;font-size:18px;font-weight:500;color:#fff}.showcase-collection .description{margin:15px;font-size:15px}.showcase-collection .showcase-items .title-meta-info{margin-left:5px;font-size:12px;font-weight:normal;color:#586069}.showcase-collection .showcase-items .bubble-title{font-weight:600;line-height:30px;color:#4183c4}.showcase-collection .showcase-items .avatar{width:30px;height:30px;margin-right:5px;vertical-align:middle;border-radius:2px}.flash{position:relative;padding:15px;font-size:14px;font-weight:600;color:#264c72;background-color:#dbeaf9;border-bottom:solid 1px #bac6d3}.flash+.flash{margin-top:5px}.flash .container{margin-right:0;margin-left:0}.flash .octicon-x{display:none}.flash .flash-action{float:right;margin-top:-5px}.flash.flash-warn{color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}.flash.flash-error{color:#911;background-color:#fcdede;border-color:#d2b2b2}.flash-messages.container{margin:0 0 15px}.touchable{-webkit-tap-highlight-color:transparent}.nav-bar{position:relative;overflow:visible;color:rgba(255,255,255,0.75);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#1e2327}.nav-bar-inner{height:50px;margin:0 2px;line-height:50px;text-align:center}.nav-bar-inner .header-button{position:absolute;padding:5px 8px;line-height:1;color:inherit;background:transparent;border:0;border-radius:5px}.nav-bar-inner .header-button:active,.nav-bar-inner .header-button:focus{outline:0;box-shadow:none}.nav-bar-inner .header-context-button{top:8px;right:8px}.nav-bar-inner .header-nav-button{top:8px;left:8px}.nav-bar-inner .octicon-lock{top:-1px;margin-right:5px}.nav-bar-inner .brand-logo-invertocat .octicon,.nav-bar-inner .brand-logo-wordmark .octicon{margin-top:-8px;color:#fff;vertical-align:text-top}.nav-bar-inner.has-notifications{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.nav-bar-inner.has-notifications .header-button{position:static;max-width:44px;padding:0 12px}.nav-bar-inner.has-notifications .header-context-button{padding-top:14px}.nav-bar-inner.has-notifications .header-notification-button{position:relative;padding-top:14px}.unread-notifications-indicator{position:absolute;top:7px;right:5px;display:block;width:14px;height:14px;background-color:#2188ff;border:2px solid #1e2327;border-radius:50%}.nav-bar-title-text{position:relative;max-width:75%;padding:0 5px;margin:0 auto;overflow:hidden;font-size:14px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.has-notifications .nav-bar-title-text{position:static;max-width:none;margin:0;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.nav-bar-meta{padding:7.5px 15px;font-size:75%;text-align:center;border-top:1px solid #ddd}.nav-bar-tabs{position:absolute;z-index:9000;display:none;width:100%;height:0;padding:7.5px 0;overflow:hidden;font-size:16px;background-color:#1e2327;background-clip:padding-box}.nav-bar-tabs ul{padding:0;margin:0;list-style:none}.nav-bar-tabs a{position:relative;display:block;padding:8px 15px 8px 45px;color:rgba(255,255,255,0.75)}.nav-bar-tabs a .avatar,.nav-bar-tabs a .octicon{float:left;margin-top:3px;margin-left:-30px}.nav-bar-tabs a .octicon{width:20px;text-align:center}.nav-bar-tabs .section-title{padding:15px 0 0 15px;margin-top:7.5px;margin-bottom:0;font-size:12px;text-transform:uppercase}.nav-bar-tabs .unread-notifications-indicator{position:static;display:inline-block;vertical-align:-2px}.nav-is-open .nav-bar-tabs{display:block;height:auto}.markdown-body{font-size:15px}.markdown-body blockquote{margin-right:0;margin-left:0}.markdown-body code{white-space:normal}.markdown-body.email-format{line-height:1.5em !important}.markdown-body.email-format div{white-space:pre-wrap}.markdown-body .email-hidden-reply{display:none;white-space:pre-wrap}.markdown-body .email-hidden-reply.expanded{display:block}.markdown-body .email-quoted-reply,.markdown-body .email-signature-reply{padding:0 15px;margin-bottom:15px;color:#586069;border-left:4px solid #ddd}.breadcrumb{padding:15px;font-size:12px;color:#586069;border-bottom:1px solid #ddd}.breadcrumb .separator{margin:0 0.25em}.breadcrumb .octicon{margin-top:-1px;margin-right:5px}.breadcrumb a{font-weight:600}.breadcrumb strong{color:#444}.tabs{display:table;width:100%;table-layout:fixed}.tabs>a{display:table-cell;padding:10px 0;font-size:14px;font-weight:600;text-align:center;border-bottom:1px solid #ddd}.tabs>a.selected{color:#444;background-color:#fff;border-right:1px solid #ddd;border-bottom-color:#fff;border-left:1px solid #ddd}.tabs>a:first-child{border-left:0}.tabs>a:last-child{border-right:0}.pagination{position:relative;z-index:2;display:table;padding:0;margin-top:0;margin-bottom:-1px;background-color:#fafbfc}.pagination a,.pagination span,.pagination em{display:table-cell;width:1%;padding:10px 15px;color:#555;text-align:center;border:1px solid #ddd;border-left-color:#fff}.pagination a:first-child,.pagination span:first-child,.pagination em:first-child{border-left:0}.pagination a:last-child,.pagination span:last-child,.pagination em:last-child{border-right:0}.pagination span>a{padding:0}.pagination .current{font-style:normal;font-weight:600;color:#fff;background-color:#6a737d;background-image:-webkit-linear-gradient(#6a737d, #999);background-image:linear-gradient(#6a737d, #999);border-color:#6a737d}.pagination .gap,.pagination .disabled{color:#ccc}.oauth-header{padding:15px 15px 0;margin:0 0 15px;background:#fff;border-bottom:1px solid #ddd}.oauth-header::before{display:table;content:""}.oauth-header::after{display:table;clear:both;content:""}.oauth-header h1{margin-bottom:0;font-size:18px}.oauth-header .lead{margin-top:0;font-size:14px;color:#586069}.oauth-connection-illustration{position:relative;float:right;width:auto;margin-top:12px;margin-left:10px}.oauth-connection-illustration .oauth-image{float:left;padding:2px;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.1);border-radius:3px}.oauth-connection-illustration .oauth-image img{display:block;width:48px;height:48px;border-radius:3px}.oauth-connection-illustration .oauth-image.oauth-image-user{margin-top:20px;margin-left:-20px}.oauth-main .oauth-permissions-icon{float:left;margin-top:4px;margin-left:0;color:#586069;text-align:center}.oauth-main .permission-title{display:block;margin-bottom:2px;color:#000}.oauth-main .permission-summary,.oauth-main .permission-note{margin-left:34px}.oauth-main .permission-summary{line-height:1}.oauth-main .permission-summary .access-details{position:relative;color:#586069}.oauth-main .permission-note{margin-bottom:0;font-size:12px;color:#586069}.oauth-main .permission-note ul{padding-left:18px;margin:1em 0;list-style-type:disc}.oauth-main em.highlight{position:relative;padding:2px 3px;margin-right:-2px;margin-left:-3px;font-style:normal;color:#4c4a42;background:#fff9ea;border-radius:3px}.oauth-requests-summary{display:table;width:100%;table-layout:fixed}.oauth-requests-summary .octicon,.oauth-requests-summary .access-details{margin:0}.oauth-requests-summary .access-details{padding:0 10px 0 40px}.oauth-requests-summary .access-details p:first-child{margin-top:0}.oauth-requests-summary .access-details p:last-child{margin-bottom:0}.oauth-requests-summary .access-details .secondary-details{font-size:12px;color:#586069}.oauth-requests-summary .octicon-organization.approved{color:#28a745}.added-permission{color:#28a745}.oauth-permission-title{margin:15px 15px 5px}.oauth-secondary{font-size:12px}.oauth-secondary .no-description{margin-top:0;color:#586069}.oauth-secondary .learn-more,.oauth-secondary .existing-access{padding-top:15px;margin-bottom:5px;border-top:1px solid #eee}.oauth-secondary .features-list{padding:0;margin:0;list-style:none}.oauth-secondary .features-list li{margin-top:10px}.oauth-secondary .features-list li:first-child{margin-top:0}.oauth-secondary .features-list .list-divider{margin:15px -15px;border-top:1px solid #eee}.oauth-secondary .features-list .octicon{margin-right:5px;color:#60b044}.oauth-permissions-details .content{display:none}.oauth-permissions-details.open .content{display:block}.oauth-permissions-details.default .default-access{display:inline}.oauth-permissions-details.full .full-access{display:inline}.oauth-user-permissions .full-access,.oauth-user-permissions .limited-access,.oauth-user-permissions .limited-access-emails-followers,.oauth-user-permissions .limited-access-emails-profile,.oauth-user-permissions .limited-access-followers-profile,.oauth-user-permissions .limited-access-profile,.oauth-user-permissions .limited-access-followers,.oauth-user-permissions .limited-access-emails,.oauth-user-permissions .no-access{display:none}.oauth-user-permissions.limited.limited-email .limited-access-emails{display:inline}.oauth-user-permissions.limited.limited-email.limited-profile .limited-access-emails,.oauth-user-permissions.limited.limited-email.limited-profile .limited-access-profile{display:none}.oauth-user-permissions.limited.limited-email.limited-profile .limited-access-emails-profile{display:inline}.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-emails,.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-profile,.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-followers,.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-emails-profile,.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-emails-followers,.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access-followers-profile{display:none}.oauth-user-permissions.limited.limited-email.limited-profile.limited-follow .limited-access{display:inline}.oauth-user-permissions.limited.limited-email.limited-follow .limited-access-emails,.oauth-user-permissions.limited.limited-email.limited-follow .limited-access-followers{display:none}.oauth-user-permissions.limited.limited-email.limited-follow .limited-access-emails-followers{display:inline}.oauth-user-permissions.limited.limited-follow .limited-access-followers{display:inline}.oauth-user-permissions.limited.limited-follow.limited-profile .limited-access-followers,.oauth-user-permissions.limited.limited-follow.limited-profile .limited-access-profile{display:none}.oauth-user-permissions.limited.limited-follow.limited-profile .limited-access-followers-profile{display:inline}.oauth-user-permissions.limited.limited-profile .limited-access-profile{display:inline}.oauth-repo-permissions .default-access,.oauth-repo-permissions .public-access,.oauth-repo-permissions .full-access{display:none}.oauth-repo-permissions.public .public-access{display:inline}.oauth-delete-repo-permissions .octicon-alert{color:#cb2431}.oauth-repo-status-permissions .no-access,.oauth-repo-status-permissions .full-access{display:none}.oauth-notifications-permissions .no-access,.oauth-notifications-permissions .read-access,.oauth-notifications-permissions .via-public-access,.oauth-notifications-permissions .via-full-access{display:none}.oauth-notifications-permissions.read .read-access{display:inline}.oauth-notifications-permissions.via-public .via-public-access{display:inline}.oauth-notifications-permissions.via-public .octicon{display:none}.oauth-notifications-permissions.via-full .via-full-access{display:inline}.oauth-gist-permissions .no-access,.oauth-gist-permissions .full-access{display:none}.oauth-granular-permissions .no-access,.oauth-granular-permissions .read-access,.oauth-granular-permissions .write-access,.oauth-granular-permissions .full-access{display:none}.oauth-granular-permissions.none .no-access{display:inline}.oauth-granular-permissions.read .read-access{display:inline}.oauth-granular-permissions.write .write-access{display:inline}.oauth-granular-permissions.full .full-access{display:inline}.oauth-connect{padding-bottom:15px;margin:0 15px}.issues-reset-query-wrapper{padding:15px;background-color:#fff;border-bottom:solid 1px #eee}.subset-files-tab{background-color:#e6f1f6}.branch-action{padding:15px;font-size:12px;color:#586069;background-color:#fff;border-top:1px solid #eee}.discussion-block-header+.branch-action{border-top-color:#ddd}.branch-action-with-icon{padding-left:35px}.branch-action-heading{margin-top:0;margin-bottom:0;font-size:14px;color:#24292e}.branch-action-icon{float:left;width:16px;margin-left:-23px;text-align:center}.branch-action-expandable{border-top:1px solid #eee}.discussion-block-header+.branch-action-expandable{border-top-color:#ddd}.branch-action-expandable .list-item{padding-right:40px}.branch-action-expandable .list-items-overflow{max-height:170px;-webkit-overflow-scrolling:touch;overflow-y:auto;font-size:13px;background-color:#f5f5f5;border-top:1px solid #eee}.branch-action-expandable .list-items-overflow .list-item{padding-top:7px;padding-bottom:7px}.branch-action-expandable .list-items-overflow .list-item-state-icon{top:8px}.branch-action-expandable .octicon-fold,.branch-action-expandable .list-items-overflow{display:none}.branch-action-expandable.open .octicon-fold,.branch-action-expandable.open .list-items-overflow{display:block}.branch-action-expandable.open .octicon-unfold{display:none}.branch-action-expandable .list-item:first-child .list-item-chevron{top:14px;margin-top:2px;font-size:18px}.branch-actions-details{margin-right:-25px}.merge-branch{position:relative}.merge-branch .is-loading .octicon{display:none}.merge-branch .is-loading .mergeable-state-loading{display:inline-block;width:16px;height:16px;background-image:url("/images/spinners/octocat-spinner-16px.gif")}.merge-branch .mergeable-state-message{margin-top:0;margin-bottom:0;font-size:12px;color:#586069}.merge-branch .mergeable-state-message.required{display:block;color:#586069}.merge-branch .merge-branch-form,.merge-branch .mergeable-state-message{display:none}.merge-branch.open{border-top:3px solid #ddd}.merge-branch.open .octicon-git-pull-request,.merge-branch.open .merge-message{display:none}.merge-branch.open.mergeable-state-clean .merge-branch-form{display:block}.merge-branch.open.mergeable-state-unstable .mergeable-state-message.unstable{display:block}.merge-branch.open.mergeable-state-dirty .mergeable-state-message.dirty{display:block}.merge-branch.open.mergeable-state-blocked .mergeable-state-message.blocked{display:block}.merge-branch.mergeable-state-error .mergeable-state-message.error{display:block}.merge-commit-message{margin:7.5px 0}.merge-commit-title{font-weight:600}.merge-form-author{margin-bottom:15px;font-size:12px;line-height:20px;color:#586069}.merge-form-author .avatar{margin-right:5px}.merge-options{margin-right:0;margin-left:0;color:#24292e}.merge-options .list-item{padding-top:10px;padding-bottom:10px}.merge-options .byline{font-weight:normal}.merge-option-radio{position:absolute;top:12px;left:12px;margin-right:3px}.merge-branch-form .btn-merge{display:block}.merge-branch-form .btn-squash,.merge-branch-form .btn-rebase{display:none}.merge-branch-form.is-squashing .btn-merge,.merge-branch-form.is-squashing .btn-rebase{display:none}.merge-branch-form.is-squashing .btn-squash{display:block}.merge-branch-form.is-rebasing .merge-commit-title,.merge-branch-form.is-rebasing .merge-commit-message{display:none}.merge-branch-form.is-rebasing .btn-merge,.merge-branch-form.is-rebasing .btn-squash{display:none}.merge-branch-form.is-rebasing .btn-rebase{display:block}.repository-meta{margin:15px;font-size:13px;color:#666}.repository-meta-url{word-wrap:break-word}.branch-selector{position:relative;padding-left:19px;font-weight:600}.branch-selector .octicon.octicon-git-branch{position:absolute;top:1px;left:0}.branch-selector .octicon.octicon-chevron-up,.branch-selector .octicon.octicon-chevron-down{position:relative;top:1px;float:right;width:auto;margin-right:0;margin-left:0}.branch-selector .octicon.octicon-chevron-up{display:none}.branch-selector label{display:block;font-size:inherit}.branch-selector-toggle{display:none}.branch-selector-toggle:checked ~ label .octicon-chevron-up{display:block}.branch-selector-toggle:checked ~ label .octicon-chevron-down{display:none}.branch-selector-toggle:checked ~ .branch-selector-options{display:block}.branch-selector-options{position:relative;display:none;padding-top:6px;font-size:13px;font-weight:normal}.branch-selector-option{display:block;padding:6px 0;font-size:14px;font-weight:600}.branch-selector-option .octicon-check{position:absolute;left:-19px}.branch-selector-all-branches{display:block;padding:6px 0}.latest-commit .commit-author{position:relative;padding-top:8px;padding-bottom:8px;font-size:12px;line-height:20px;color:#586069;background:#fff}.latest-commit .bubble-content strong{color:#555}.pulse-control{padding:15px;font-size:11px;text-align:right}.trending-text-for{padding-right:5px}.trending-text-in{padding-right:5px;padding-left:5px}.pulse-summary{margin:0 0 30px}.pulse-summary:last-of-type{margin-bottom:0}.pulse-summary .summary-title{padding:0;margin:0 0 5px;font-size:14px}.pulse-summary .bar-graph{display:table;width:100%;margin:0;border-radius:3px}.pulse-summary .bar{display:table-cell;height:15px;background-color:#6a737d}.pulse-summary .bar.closed{background-color:#cb2431}.pulse-summary .bar.open{background-color:#28a745}.pulse-summary .bar.merged{background-color:#6f42c1}.pulse-summary .bar.proposed{background-color:#28a745}.pulse-summary .summary-box{display:table;width:100%;padding:0;margin:0;color:#586069;border:1px solid #f2f2f4}.pulse-summary .summary-box li{display:table-cell;width:50%;padding:15px 0;text-align:center}.pulse-summary .summary-box li:first-child{border-right:1px solid #f2f2f4}.pulse-summary .summary-box .count{display:block;font-size:16px;color:#444}.pulse-summary .summary-box .count .octicon{margin-top:2px}.user-bar-graph{position:relative;height:103px;background:#fff}.max-commits{position:absolute;top:3px;right:15px;font-size:10px;color:#586069}.user-bar-item{position:relative;float:left;width:20px;height:75px;margin:0 5px 5px 0}.user-bar-item img{position:absolute;bottom:-28px;margin-right:5px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.user-bar{position:absolute;bottom:0;width:20px;max-height:75px;padding:0 0 3px;margin:0;font-size:12px;color:#586069;background-color:#fc9a28;border-top-left-radius:3px;border-top-right-radius:3px;opacity:0.8}.y-axis-bar{position:absolute;left:0;width:100%;height:1px;background:#eaeaea}.y-axis-bar.top{top:0}.y-axis-bar.middle{top:36px}.y-axis-bar.bottom{bottom:27px;border-color:#ccc}.bar-graph{height:30px;padding:0;margin:15px 0}.bar-graph a{position:relative;display:block;float:left;height:10px;padding:0;margin:0}.bar-graph a .label{position:absolute;bottom:-23px;font-size:13px;color:#586069}.bar-graph a:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.bar-graph a:first-child .label{left:0}.bar-graph a:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.bar-graph a:last-child .label{right:0}.file-browser-header{max-width:100%;border-bottom:1px solid #ddd}.file-browser-header>.TableObject-item{padding:15px}.file-browser-header>.TableObject-item:first-child{white-space:normal;border-right:solid 1px #ddd}.file-browser-header .octicon{color:#586069}.history-link{margin-top:4px;font-size:12px;font-weight:600;color:#586069;vertical-align:top}p.history-link{padding:15px;margin:0;font-size:13px;border-bottom:1px solid #ddd}p.history-link a{color:#586069}.blob-breadcrumb{position:relative;padding-left:40px}.blob-breadcrumb .filetype-icon{position:absolute;top:15px;left:15px}.blob-history{position:relative;display:none;color:#7b878c;background:#f5f9fc;border-bottom:1px solid #d2d9dd}.blob-history a{display:block;padding:15px 15px 15px 41px;font-size:13px;color:#0366d6}.blob-history .octicon{color:#7b878c}.blob-history .octicon-history{position:absolute;top:16px;left:15px}.blob-history .commit-ref{float:right;margin:2px 0 0 10px;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:12px;font-weight:600;color:#7b787c}.blob-history-label{float:right;color:#0366d6}.blob-history-checkbox{position:absolute;top:0;left:0;opacity:0}.blob-history-checkbox:checked ~ .blob-history{display:block}.blob-file-content{background-color:#fff}.blob-file-content pre{margin:0;overflow:scroll;word-wrap:normal;white-space:pre}.blob-file-content .code-body pre{padding:15px 0}.blob-file-content .code-body pre .line{padding:0 15px}.blob-file-content-blankslate{padding:15px;margin-top:0;margin-bottom:0}.markdown-body{padding:15px}.subscription-settings-bubble .bubble-content{padding:0 15px}.reponav-wrapper{position:relative;z-index:2;height:36px;margin-top:-1px;overflow-y:hidden;background-color:#1e2327}.reponav{padding-right:7px;padding-bottom:20px;padding-left:7px;margin-top:-6px;-webkit-overflow-scrolling:touch;overflow-x:auto;color:rgba(255,255,255,0.75);text-align:center;white-space:nowrap}.reponav-item{display:inline-block;padding:10px 8px;color:rgba(255,255,255,0.75)}.reponav-item .Counter{color:inherit;background-color:rgba(255,255,255,0.15)}.reponav-item.selected{font-weight:600;color:#fff}.server-stats{color:#586069;background:#333}.server-stats .stats{padding-left:0;margin:0}.server-stats .stats li{padding:15px;list-style:none;border-bottom:1px solid rgba(0,0,0,0.7);box-shadow:0 1px 0 rgba(255,255,255,0.1)}.server-stats a,.server-stats strong{font-weight:600;color:#fff}.server-stats .serverstats-branch{padding:15px;margin:0;font-family:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace}.server-stats .serverstats-branch .current-branch{max-width:90%}.octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.profile-header{position:relative;min-height:140px;padding:15px 15px 10px 140px;overflow:visible;line-height:1.5}.profile-header .avatar{position:absolute;top:15px;left:15px;margin-right:15px;border-radius:3px}.profile-header h1{margin:0;font-size:16px;color:#333}.profile-header h3{margin:0;font-size:12px;font-weight:normal;color:#586069}.user-profile-bio{padding:0 15px 15px;white-space:pre-wrap}.user-profile-company>div{display:inline-block}.details{padding:0;margin:7.5px 0 0}.details li{margin-bottom:0;font-size:12px;line-height:1.8}.details-item{font-size:13px;line-height:24px;list-style:none}.details-item .css-truncate-target{max-width:88%}.details-item .octicon{width:16px;color:#586069;text-align:center}.user-following-container{display:block;padding:0 15px 15px}.user-following-container.loading{opacity:0.5}.user-following-container .follow,.user-following-container.on .unfollow{display:block}.user-following-container.on .follow,.user-following-container .unfollow{display:none}.language-color{position:relative;top:1px;display:inline-block;width:12px;height:12px;border-radius:50%}.profile-timeline-wrapper{position:relative;z-index:0;overflow:hidden;word-break:break-word;word-wrap:break-word;white-space:normal;background-color:#fff}.profile-timeline-wrapper .form-select{width:116px}.profile-timeline .timeline-item-icon{float:left;width:32px;height:32px;margin-top:-7px;margin-left:-40px;line-height:29px;color:#586069;text-align:center;background-color:#f6f8fa;border:2px solid #fff;border-radius:50%}.profile-timeline .profile-timeline-month-line{background-color:#fff}.profile-timeline .profile-timeline-month-line .profile-timeline-month-heading{top:-10px}.profile-timeline .profile-timeline-month-line::after{display:block;width:100%;height:1px;margin-top:-4px;content:"";background-color:#f6f8fa}.profile-timeline .profile-timeline-line::before{position:absolute;top:0;bottom:0;left:15px;z-index:-1;display:block;width:2px;content:"";background-color:#f6f8fa}.profile-timeline .profile-timeline-card-wrapper{border-top:solid 2px #fff;border-bottom:solid 2px #fff}.profile-timeline .profile-timeline-card-wrapper h4{margin:0}.profile-timeline .profile-timeline-card-footer{height:45px;line-height:45px}.profile-timeline .profile-timeline-card-footer .diffstat{position:inherit !important;top:0}.profile-timeline .progress-bar{height:10px;border-radius:2px}.profile-timeline .col-5{width:30%}.profile-rollup-wrapper .css-truncate-target{max-width:72%}.profile-rollup-icon .octicon{vertical-align:middle}.profile-rollup-event-title.css-truncate-target{max-width:100%}.profile-rollup-wrapper+.profile-rollup-wrapper{border-top:1px solid #f6f8fa}.profile-timeline-card-wrapper+.profile-timeline-card-wrapper{margin-top:8px}.profile-rollup-wrapper+.profile-timeline-card-wrapper{margin-top:0}.profile-timeline-month-line+.profile-timeline-card-wrapper{margin-top:8px}.profile-rollup-content{display:none}.profile-rollup-toggle .css-truncate-target{max-width:90%}.profile-rollup-toggle-closed{display:none}.profile-rollup-toggle-open{display:inline-block}.open .profile-rollup-content,.open .profile-rollup-toggle-closed{display:block}.open .btn-link .profile-rollup-toggle-closed{display:inline-block}.open .profile-rollup-toggle-open{display:none}.inbox-zero{padding:30px 15px;color:#586069;text-align:center;background-color:#fff;border-top:1px solid #eee}.inbox-unavailable{padding:30px 15px;color:#586069;text-align:center;background-color:#fff;border-top:1px solid #eee}.subscription-settings-bubble .form-checkbox{padding:0 15px 0 40px}.subscription-settings-bubble .form-checkbox input[type="radio"]{position:relative;top:2px}.subscription-settings-bubble .form-checkbox .note{padding-left:0}.mobile-search .list-item em,.mobile-search .list-item-title em,.mobile-search .list-item .byline em{padding:1px;padding-top:1px;font-style:normal;font-weight:600;text-shadow:none;background-color:rgba(255,255,140,0.5);border-radius:3px}.mobile-search .description{display:block;padding-bottom:5px;margin:0;font-size:12px;color:#000}.mobile-search .description strong{font-weight:normal;color:#444}.mobile-search .issue-list-item .octicon-comment-discussion{margin-left:5px;color:#586069}.mobile-search .user-list-item{min-height:73px}.mobile-search .user-list-item .user-list-info,.mobile-search .user-list-item .byline{padding-left:45px}.dashboard-search{display:block;margin:15px}.dashboard-search .dashboard-search-input{width:100%;margin:0}.topic-tag{display:inline-block;padding:0.3em 0.9em;margin:0.25em 0.5em 0.25em 0;background-color:#e7f3ff;border-radius:3px}.branch-groups{padding-top:15px;background:#fff}.branch-groups .bubble-title{background-color:#f5f5f5}.branches-list{border-bottom:1px solid #ddd}.branches-list:last-child{border-bottom:0}.branches-list .branch-name{display:inline-block;padding:2px 6px;margin-left:15px;font:12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;color:rgba(0,0,0,0.5);background-color:rgba(209,227,237,0.5);border-radius:3px}.branches-list .branch-name .octicon{margin:1px -2px 0 0;color:#b0c4ce}.branches-list a.branch-name{color:#0366d6}.branch-list-item .branch-name{max-width:80%;margin-right:10px}.branch-list-item .meta{margin-top:3px}.branch-list-item .branch-meta{display:block;margin-top:3px;margin-left:0;font-size:12px;color:#586069}.gist-mobile-blob{border-top:1px solid #ddd}.gist-meta{margin-top:15px}.render-container{padding:30px;line-height:0;text-align:center;background:#dfe2e5}.render-container .render-viewer{display:none;width:100%;height:100%;border:0}.render-container .octospinner{display:none}.render-container .render-viewer-error,.render-container .render-viewer-fatal,.render-container .render-viewer-invalid{display:none}.render-container.is-render-automatic .octospinner{display:inline-block}.render-container.is-render-requested .octospinner{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer-error{display:inline-block}.render-container.is-render-requested.is-render-failed .render-viewer,.render-container.is-render-requested.is-render-failed .render-viewer-fatal,.render-container.is-render-requested.is-render-failed .render-viewer-invalid,.render-container.is-render-requested.is-render-failed .octospinner{display:none}.render-container.is-render-requested.is-render-failed-fatal .render-viewer-fatal{display:inline-block}.render-container.is-render-requested.is-render-failed-fatal .render-viewer,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-error,.render-container.is-render-requested.is-render-failed-fatal .render-viewer-invalid,.render-container.is-render-requested.is-render-failed-fatal .octospinner{display:none}.render-container.is-render-requested.is-render-failed-invalid .render-viewer-invalid{display:inline-block}.render-container.is-render-requested.is-render-failed-invalid .render-viewer,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-error,.render-container.is-render-requested.is-render-failed-invalid .render-viewer-fatal,.render-container.is-render-requested.is-render-failed-invalid .octospinner{display:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed){height:500px;padding:0;background:none}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer{display:block}.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-error,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .render-viewer-fatal,.render-container.is-render-ready.is-render-requested:not(.is-render-failed) .octospinner{display:none}.render-notice{padding:20px 15px;font-size:14px;color:#4c4a42;background-color:#fff9ea;border-color:#dfd8c2}
10
+ @media (min-width: 992px) {
11
+ .container{
12
+ width: 980px;
13
+ margin-right: auto;
14
+ margin-left: auto;
15
+ position: relative;
16
+ margin-top: 16px;
17
+ margin-bottom: 16px;
18
+ border: 1px solid #ddd;
19
+ border-radius: 3px;
20
+ }
21
+ }
22
+ </style>
23
+ </head>
24
+ <body><div id="readme" class="container"><article class="markdown-body entry-content"><h1 id="openstudio-load-flexibility-measures-gem">OpenStudio Load Flexibility Measures Gem</h1>
25
+ <h2 id="version-0-2-1">Version 0.2.1</h2>
26
+ <ul>
27
+ <li>Updated dependency for OS Extension 0.3.2</li>
28
+ <li>Removed extraneous delimiter argument from Add Packaged Ice Storage measure<ul>
29
+ <li>Fixed <a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/18">#18</a>, remove &quot;delimiter&quot; argument from add_packaged_ice_storage</li>
30
+ </ul>
31
+ </li>
32
+ </ul>
33
+ <h2 id="version-0-2-0">Version 0.2.0</h2>
34
+ <ul>
35
+ <li>Updated dependencies for OS Version 3.1:<ul>
36
+ <li>Merged <a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/pull/15">#15</a>, Os 3.1.0</li>
37
+ <li>OS Extension set to 0.3.1</li>
38
+ <li>OS Standards set to 0.2.12</li>
39
+ </ul>
40
+ </li>
41
+ <li>Updated measure names within documentation</li>
42
+ <li>Updated documentation for Add Packaged Ice Storage measure</li>
43
+ </ul>
44
+ <h2 id="version-0-1-3">Version 0.1.3</h2>
45
+ <ul>
46
+ <li>Measures have been renamed and readme updated:<ul>
47
+ <li>&quot;Add Ice Storage to Plant Loop for Load Flexibility&quot; is now &quot;Add Central Ice Storage&quot;</li>
48
+ <li>&quot;Add Distributed Ice Storage to Air Loop for Load Flexibility&quot; is now &quot;Add Packaged Ice Storage&quot;</li>
49
+ <li>&quot;Add Central HPHW for Load Flexibility&quot; is now &quot;Add HPHW&quot;</li>
50
+ </ul>
51
+ </li>
52
+ <li>Bug Fixes:<ul>
53
+ <li><a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/12">#12</a>, File names become too long when using with URBANopt CLI</li>
54
+ </ul>
55
+ </li>
56
+ </ul>
57
+ <h2 id="version-0-1-2">Version 0.1.2</h2>
58
+ <ul>
59
+ <li>Bug Fixes:<ul>
60
+ <li><a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/4">#4</a>, use unix paths in &apos;add_distributed_ice_storage_to_air_loop_for_load_flexibility&apos;</li>
61
+ <li><a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/6">#6</a>, code error in add_distributed measure</li>
62
+ <li><a href="https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/8">#8</a>, EMS output variables cause measure failure</li>
63
+ </ul>
64
+ </li>
65
+ <li>Remove .DS_Store and exclude from future releases</li>
66
+ <li>Code cleanup</li>
67
+ </ul>
68
+ <h2 id="version-0-1-1">Version 0.1.1</h2>
69
+ <ul>
70
+ <li>Initial release</li>
71
+ </ul>
72
+ </article></div><div style="background-color: #b4b2b2;width: 50px;height:50px;line-height: 50px;text-align: center;position: fixed;bottom: 10px;right: 10px;padding-top:5px;" onclick="document.documentElement.scrollTop = document.body.scrollTop =0;">
73
+ <svg t="1533629773982" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1035" xlink="http://www.w3.org/1999/xlink" width="40" height="40"><defs><style type="text/css">@font-face { font-family: uc-nexus-iconfont; src: url("chrome-extension://pogijhnlcfmcppgimcaccdkmbedjkmhi/res/font_9qmmi8b8jsxxbt9.woff") format("woff"), url("chrome-extension://pogijhnlcfmcppgimcaccdkmbedjkmhi/res/font_9qmmi8b8jsxxbt9.ttf") format("truetype"); }
74
+ </style></defs><path d="M536.255427 195.182354c-7.804756-7.804756-17.966187-11.615549-28.311813-11.615549-9.43693 0-18.874883 3.449565-26.496467 10.163477-2.360767 1.452071-4.356214 3.267417-6.352685 5.262864L218.47792 455.611735c-15.607466 15.60542-15.607466 40.834011 0 56.43943 15.607466 15.607466 41.558511 15.607466 57.167001 0l193.46013-192.733583 0 600.526219c0 22.1423 17.787108 39.927361 39.927361 39.927361 22.140253 0 39.927361-17.785062 39.927361-39.927361L548.959773 319.317583 737.15704 508.422522c15.607466 15.607466 40.469714 15.607466 56.078203 0 15.607466-15.607466 15.425318-40.834011-0.182149-56.441477L536.255427 195.182354 536.255427 195.182354z" p-id="1036" fill="#333"/><path d="M101.784174 143.097092l816.674071 0c22.140253 0 39.925315-17.785062 39.925315-39.927361 0-22.140253-17.784038-39.925315-39.925315-39.925315L101.784174 63.244416c-22.140253 0-39.927361 17.785062-39.927361 39.925315C61.856813 125.31203 79.643921 143.097092 101.784174 143.097092L101.784174 143.097092z" p-id="1037" fill="#333"/></svg>
75
+ </div>
76
+ </body></html>
data/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # OpenStudio Load Flexibility Measures Gem
2
2
 
3
+ ## Version 0.3.2
4
+ * Modify HPWH measure "simplified" option to automatically identify water heater objects without explicit user naming
5
+ * Modify HPWH measure to improve integration with URBANopt workflow
6
+ * Update HPWH measure documentation
7
+
8
+ ## Version 0.3.1
9
+ * Updated OS Extension dependency to 0.4.2
10
+ * Updated OS Standards dependency to 0.2.13
11
+ * Added Jenkins file for CI testing
12
+
13
+ ## Version 0.3.0
14
+ * Merged [#20](https://github.com/NREL/openstudio-load-flexibility-measures-gem/pull/20), 030 upgrade
15
+ * Added Ruby 2.7.0 dependency
16
+ * Updated OS Extension dependency to 0.4.0
17
+ * Updated documentation for Add Packaged Ice Storage measure
18
+ * Corrected output variable in Add HPWH measure
19
+
20
+ ## Version 0.2.1
21
+ * Updated dependency for OS Extension 0.3.2
22
+ * Removed extraneous delimiter argument from Add Packaged Ice Storage measure
23
+ * Fixed [#18](https://github.com/NREL/openstudio-load-flexibility-measures-gem/issues/18), remove "delimiter" argument from add_packaged_ice_storage
24
+
25
+ ## Version 0.2.0
26
+
27
+ * Updated dependencies for OS Version 3.1:
28
+ * Merged [#15](https://github.com/NREL/openstudio-load-flexibility-measures-gem/pull/15), Os 3.1.0
29
+ * OS Extension set to 0.3.1
30
+ * OS Standards set to 0.2.12
31
+ * Updated measure names within documentation
32
+ * Updated documentation for Add Packaged Ice Storage measure
33
+
3
34
  ## Version 0.1.3
4
35
 
5
36
  * Measures have been renamed and readme updated:
data/Jenkinsfile ADDED
@@ -0,0 +1,10 @@
1
+ //Jenkins pipelines are stored in shared libraries. Please see: https://github.com/NREL/cbci_jenkins_libs
2
+
3
+ @Library('cbci_shared_libs') _
4
+
5
+ // Build for PR to develop branch only.
6
+ if ((env.CHANGE_ID) && (env.CHANGE_TARGET) ) { // check if set
7
+
8
+ openstudio_extension_gems()
9
+
10
+ }
data/README.md CHANGED
@@ -21,9 +21,9 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  The openstudio-load-flexibility-measures gem contains measures to apply thermal load flexibility to a building model. The current version contains the following:
24
- * Add HPHW (Heat Pump Hot Water Heater)
25
- * Add Central Ice Storage (for plant loops)
26
- * Add Packaged Ice Storage (for rooftop units)
24
+ * Add [HPHW](https://github.com/NREL/openstudio-load-flexibility-measures-gem/tree/master/lib/measures/add_hpwh) (Heat Pump Hot Water Heater)
25
+ * Add [Central Ice Storage](https://github.com/NREL/openstudio-load-flexibility-measures-gem/tree/master/lib/measures/add_central_ice_storage) (for plant loops)
26
+ * Add [Packaged Ice Storage](https://github.com/NREL/openstudio-load-flexibility-measures-gem/tree/master/lib/measures/add_packaged_ice_storage) (for rooftop units)
27
27
 
28
28
  Detailed instructions for usage are included in each measure's respective README.md and docs folder.
29
29
 
@@ -39,5 +39,4 @@ Detailed instructions for usage are included in each measure's respective README
39
39
 
40
40
  ## TODO
41
41
 
42
- - [ ] Update usage with links to respective measure documentation
43
42
  - [ ] Update documentation pdf's to reflect revised measure names
@@ -2,7 +2,7 @@
2
2
 
3
3
  ###### (Automatically generated documentation)
4
4
 
5
- # Add Ice Storage Tank
5
+ # Add Central Ice Storage
6
6
 
7
7
  ## Description
8
8
  This measure adds an ice storage tank to a chilled water loop for the purpose of thermal energy storage.
@@ -53,7 +53,7 @@ class AddCentralIceStorage < OpenStudio::Measure::ModelMeasure
53
53
  # human readable name
54
54
  def name
55
55
  # Measure name should be the title case of the class name.
56
- 'Add Ice Storage Tank'
56
+ 'Add Central Ice Storage'
57
57
  end
58
58
 
59
59
  # human readable description
@@ -3,11 +3,11 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>add_central_ice_storage</name>
5
5
  <uid>48f37812-0cb6-4770-b695-beb8d8a5660d</uid>
6
- <version_id>8b813d27-6c3b-4b60-8004-c0bcfee01b24</version_id>
7
- <version_modified>20200903T163027Z</version_modified>
6
+ <version_id>2972286b-0047-4d40-90bf-c0c56a7a5799</version_id>
7
+ <version_modified>20201203T034326Z</version_modified>
8
8
  <xml_checksum>6394841D</xml_checksum>
9
9
  <class_name>AddCentralIceStorage</class_name>
10
- <display_name>Add Ice Storage Tank</display_name>
10
+ <display_name>Add Central Ice Storage</display_name>
11
11
  <description>This measure adds an ice storage tank to a chilled water loop for the purpose of thermal energy storage.</description>
12
12
  <modeler_description>This measure adds the necessary components and performs required model articulations to add an ice thermal storage tank (ITS) to an existing chilled water loop. Special consideration is given to implementing configuration and control options. Refer to the ASHRAE CTES Design Guide or manufacturer applications guides for detailed implementation info. A user guide document is included in the docs folder of this measure to help translate design objectives into measure argument input values.</modeler_description>
13
13
  <arguments>
@@ -477,10 +477,10 @@
477
477
  <checksum>E0468DD6</checksum>
478
478
  </file>
479
479
  <file>
480
- <filename>README.md</filename>
481
- <filetype>md</filetype>
482
- <usage_type>readme</usage_type>
483
- <checksum>69EDB2DB</checksum>
480
+ <filename>add_central_ice_storage_test.rb</filename>
481
+ <filetype>rb</filetype>
482
+ <usage_type>test</usage_type>
483
+ <checksum>8738374B</checksum>
484
484
  </file>
485
485
  <file>
486
486
  <version>
@@ -491,13 +491,13 @@
491
491
  <filename>measure.rb</filename>
492
492
  <filetype>rb</filetype>
493
493
  <usage_type>script</usage_type>
494
- <checksum>914DA2C8</checksum>
494
+ <checksum>F06BB506</checksum>
495
495
  </file>
496
496
  <file>
497
- <filename>add_central_ice_storage_test.rb</filename>
498
- <filetype>rb</filetype>
499
- <usage_type>test</usage_type>
500
- <checksum>8738374B</checksum>
497
+ <filename>README.md</filename>
498
+ <filetype>md</filetype>
499
+ <usage_type>readme</usage_type>
500
+ <checksum>962B1D2E</checksum>
501
501
  </file>
502
502
  </files>
503
503
  </measure>
@@ -2,14 +2,12 @@
2
2
 
3
3
  ###### (Automatically generated documentation)
4
4
 
5
- # flexible_domestic_hot_water
5
+ #
6
6
 
7
7
  ## Description
8
- This measure adds or replaces existing domestic hot water heater with air source heat pump system and allows for the addition of multiple daily flexible control time windows. The heater/tank system may charge at maximum capacity up to an elevated temperature, or float without any heat addition for a specified timeframe down to a minimum tank temperature.
8
+
9
9
 
10
10
  ## Modeler Description
11
- This measure allows selection between three heat pump water heater modeling approaches in EnergyPlus.The user may select between the pumped-condenser or wrapped-condenser objects. They may also elect to use a simplified calculation which does not use the heat pump objects, but instead used an electric resistance heater and approximates the equivalent electrical input that would be required from a heat pump. This expedites simulation at the expense of accuracy.
12
- The flexibility of the system is based on user-defined temperatures and times, which are converted into schedule objects. There are four flexibility options. (1) None: normal operation of the DHW system at a fixed tank temperature setpoint. (2) Charge - Heat Pump: the tank is charged to a maximum temperature using only the heat pump. (3) Charge - Electric: the tank is charged using internal electric resistance heaters to a maximum temperature. (4) Float: all heating elements are turned-off for a user-defined time period unless the tank temperature falls below a minimum value. The heat pump will be prioritized in a low tank temperature event, with the electric resistance heaters serving as back-up.
13
11
 
14
12
 
15
13
  ## Measure Type
@@ -21,166 +19,8 @@ ModelMeasure
21
19
  ## Arguments
22
20
 
23
21
 
24
- ### Remove existing water heater on selected loop
25
-
26
- **Name:** remove_wh,
27
- **Type:** Boolean,
28
- **Units:** ,
29
- **Required:** true,
30
- **Model Dependent:** false
31
-
32
- ### Select hot water loop
33
- The water tank will be placed on the supply side of this loop.
34
- **Name:** loop,
35
- **Type:** Choice,
36
- **Units:** ,
37
- **Required:** true,
38
- **Model Dependent:** false
39
-
40
- ### Select thermal zone
41
- This is where the water heater tank will be placed
42
- **Name:** zone,
43
- **Type:** Choice,
44
- **Units:** ,
45
- **Required:** true,
46
- **Model Dependent:** false
47
-
48
- ### Select heat pump water heater type
49
-
50
- **Name:** type,
51
- **Type:** Choice,
52
- **Units:** ,
53
- **Required:** true,
54
- **Model Dependent:** false
55
-
56
- ### Set hot water tank volume
57
- [gal]
58
- **Name:** vol,
59
- **Type:** Double,
60
- **Units:** ,
61
- **Required:** true,
62
- **Model Dependent:** false
63
-
64
- ### Set heat pump heating capacity
65
- [kW]
66
- **Name:** cap,
67
- **Type:** Double,
68
- **Units:** ,
69
- **Required:** true,
70
- **Model Dependent:** false
71
-
72
- ### Set heat pump rated COP (heating)
73
-
74
- **Name:** cop,
75
- **Type:** Double,
76
- **Units:** ,
77
- **Required:** true,
78
- **Model Dependent:** false
79
-
80
- ### Set electric backup heating capacity
81
- [kW]
82
- **Name:** bu_cap,
83
- **Type:** Double,
84
- **Units:** ,
85
- **Required:** true,
86
- **Model Dependent:** false
87
-
88
- ### Set maximum tank temperature
89
- [F]
90
- **Name:** max_temp,
91
- **Type:** Double,
92
- **Units:** ,
93
- **Required:** true,
94
- **Model Dependent:** false
95
-
96
- ### Set minimum tank temperature during float
97
- [F]
98
- **Name:** min_temp,
99
- **Type:** Double,
100
- **Units:** ,
101
- **Required:** true,
102
- **Model Dependent:** false
103
-
104
- ### Set deadband temperature difference between heat pump and electric backup
105
- [F]
106
- **Name:** db_temp,
107
- **Type:** Double,
108
- **Units:** ,
109
- **Required:** true,
110
- **Model Dependent:** false
111
-
112
- ### Select reference tank setpoint temperature schedule
113
-
114
- **Name:** sched,
115
- **Type:** Choice,
116
- **Units:** ,
117
- **Required:** true,
118
- **Model Dependent:** false
119
-
120
- ### Daily Flex Period 1:
121
- Applies every day in the full run period.
122
- **Name:** flex0,
123
- **Type:** Choice,
124
- **Units:** ,
125
- **Required:** true,
126
- **Model Dependent:** false
127
-
128
- ### Use 24-Hour Format
129
-
130
- **Name:** flex_hrs0,
131
- **Type:** String,
132
- **Units:** ,
133
- **Required:** false,
134
- **Model Dependent:** false
135
-
136
- ### Daily Flex Period 2:
137
- Applies every day in the full run period.
138
- **Name:** flex1,
139
- **Type:** Choice,
140
- **Units:** ,
141
- **Required:** true,
142
- **Model Dependent:** false
143
-
144
- ### Use 24-Hour Format
145
-
146
- **Name:** flex_hrs1,
147
- **Type:** String,
148
- **Units:** ,
149
- **Required:** false,
150
- **Model Dependent:** false
151
-
152
- ### Daily Flex Period 3:
153
- Applies every day in the full run period.
154
- **Name:** flex2,
155
- **Type:** Choice,
156
- **Units:** ,
157
- **Required:** true,
158
- **Model Dependent:** false
159
-
160
- ### Use 24-Hour Format
161
-
162
- **Name:** flex_hrs2,
163
- **Type:** String,
164
- **Units:** ,
165
- **Required:** false,
166
- **Model Dependent:** false
167
-
168
- ### Daily Flex Period 4:
169
- Applies every day in the full run period.
170
- **Name:** flex3,
171
- **Type:** Choice,
172
- **Units:** ,
173
- **Required:** true,
174
- **Model Dependent:** false
175
-
176
- ### Use 24-Hour Format
177
-
178
- **Name:** flex_hrs3,
179
- **Type:** String,
180
- **Units:** ,
181
- **Required:** false,
182
- **Model Dependent:** false
183
22
 
184
23
 
24
+ This measure does not have any user arguments
185
25
 
186
26
 
@@ -49,7 +49,7 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
49
49
  # human readable name
50
50
  def name
51
51
  # Measure name should be the title case of the class name.
52
- 'flexible_domestic_hot_water'
52
+ 'Add HPWH for Domestic Hot Water'
53
53
  end
54
54
 
55
55
  # human readable description
@@ -87,36 +87,49 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
87
87
 
88
88
  # create argument for removal of existing water heater tanks on selected loop
89
89
  remove_wh = OpenStudio::Measure::OSArgument.makeBoolArgument('remove_wh', true)
90
- remove_wh.setDisplayName('Remove existing water heater on selected loop')
90
+ remove_wh.setDisplayName('Remove existing water heater?')
91
91
  remove_wh.setDescription('')
92
92
  remove_wh.setDefaultValue(true)
93
93
  args << remove_wh
94
94
 
95
- # find available plant loops (heating)
96
- loop_names = []
95
+ # find available water heaters and get default volume
96
+ if !model.getWaterHeaterMixeds.empty?
97
+ wheaters = model.getWaterHeaterMixeds
98
+ end
97
99
 
98
- unless model.getPlantLoops.empty?
99
- loops = model.getPlantLoops
100
- loops.each do |lp|
101
- unless lp.sizingPlant.loopType.empty?
102
- next unless lp.sizingPlant.loopType.to_s == 'Heating'
103
- loop_names << lp.name.to_s
104
- end
100
+ default_vol = 80.0 # gallons
101
+ wh_names = ['All Water Heaters (Simplified Only)']
102
+ wheaters.each do |w|
103
+ if w.tankVolume.to_f > OpenStudio.convert(39, 'gal', 'm^3').to_f
104
+ wh_names << w.name.to_s
105
+ default_vol = [default_vol, (w.tankVolume.to_f / 0.0037854118).round(1)].max
105
106
  end
106
107
  end
107
108
 
108
- loop_names << 'Error: No Service Water Loop Found' if loop_names.empty?
109
+ wh = OpenStudio::Measure::OSArgument.makeChoiceArgument('wh', wh_names, true)
110
+ wh.setDisplayName('Select 40+ gallon water heater to replace or augment')
111
+ wh.setDescription("All can only be used with the 'Simplified' model")
112
+ wh.setDefaultValue(wh_names[0])
113
+ args << wh
109
114
 
110
- # create argument for loop selection
111
- loop = OpenStudio::Measure::OSArgument.makeChoiceArgument('loop', loop_names.sort, true)
112
- loop.setDisplayName('Select hot water loop')
113
- loop.setDescription('The water tank will be placed on the supply side of this loop.')
114
- loop.setDefaultValue(loop_names.sort[0])
115
- args << loop
115
+ # create argument for hot water tank volume
116
+ vol = OpenStudio::Measure::OSArgument.makeDoubleArgument('vol', false)
117
+ vol.setDisplayName('Set hot water tank volume [gal]')
118
+ vol.setDescription('Enter 0 to use existing tank volume(s). Values less than 5 are treated as sizing multipliers.')
119
+ vol.setUnits('gal')
120
+ vol.setDefaultValue(0)
121
+ args << vol
122
+
123
+ # create argument for water heater type
124
+ type = OpenStudio::Measure::OSArgument.makeChoiceArgument('type',
125
+ ['Simplified', 'PumpedCondenser', 'WrappedCondenser'], true)
126
+ type.setDisplayName('Select heat pump water heater type')
127
+ type.setDescription('')
128
+ type.setDefaultValue('Simplified')
129
+ args << type
116
130
 
117
131
  # find available spaces for heater location
118
132
  zone_names = []
119
-
120
133
  unless model.getThermalZones.empty?
121
134
  zones = model.getThermalZones
122
135
  zones.each do |zn|
@@ -126,46 +139,15 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
126
139
  end
127
140
 
128
141
  zone_names << 'Error: No Thermal Zones Found' if zone_names.empty?
142
+ zone_names = ['N/A - Simplified'] + zone_names
129
143
 
130
144
  # create argument for thermal zone selection (location of water heater)
131
145
  zone = OpenStudio::Measure::OSArgument.makeChoiceArgument('zone', zone_names, true)
132
- zone.setDisplayName('Select thermal zone')
133
- zone.setDescription('This is where the water heater tank will be placed')
146
+ zone.setDisplayName('Select thermal zone for HP evaporator')
147
+ zone.setDescription("Does not apply to 'Simplified' cases")
134
148
  zone.setDefaultValue(zone_names[0])
135
149
  args << zone
136
150
 
137
- # create argument for water heater type
138
- type = OpenStudio::Measure::OSArgument.makeChoiceArgument('type',
139
- ['PumpedCondenser', 'WrappedCondenser', 'Simplified'], true)
140
- type.setDisplayName('Select heat pump water heater type')
141
- type.setDescription('')
142
- type.setDefaultValue('PumpedCondenser')
143
- args << type
144
-
145
- # find largest current water heater volume - if any mixed tanks are already present. Default is 80 gal.
146
- default_vol = 80.0 # gal
147
-
148
- wheaters = if !model.getWaterHeaterMixeds.empty?
149
- model.getWaterHeaterMixeds
150
- else
151
- []
152
- end
153
-
154
- unless wheaters.empty?
155
- wheaters.each do |wh|
156
- unless wh.tankVolume.empty?
157
- default_vol = [default_vol, (wh.tankVolume.to_f / 0.0037854118).round(1)].max # convert m^3 to gal
158
- end
159
- end
160
- end
161
-
162
- # create argument for hot water tank volume
163
- vol = OpenStudio::Measure::OSArgument.makeDoubleArgument('vol', true)
164
- vol.setDisplayName('Set hot water tank volume')
165
- vol.setDescription('[gal]')
166
- vol.setDefaultValue(default_vol)
167
- args << vol
168
-
169
151
  # create argument for heat pump capacity
170
152
  cap = OpenStudio::Measure::OSArgument.makeDoubleArgument('cap', true)
171
153
  cap.setDisplayName('Set heat pump heating capacity')
@@ -176,7 +158,7 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
176
158
  # create argument for heat pump rated cop
177
159
  cop = OpenStudio::Measure::OSArgument.makeDoubleArgument('cop', true)
178
160
  cop.setDisplayName('Set heat pump rated COP (heating)')
179
- cop.setDefaultValue(2.8)
161
+ cop.setDefaultValue(3.2)
180
162
  args << cop
181
163
 
182
164
  # create argument for electric backup capacity
@@ -289,13 +271,13 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
289
271
 
290
272
  # assign the user inputs to variables
291
273
  remove_wh = runner.getBoolArgumentValue('remove_wh', user_arguments)
292
- loop = runner.getStringArgumentValue('loop', user_arguments)
293
- zone = runner.getStringArgumentValue('zone', user_arguments)
274
+ wh = runner.getStringArgumentValue('wh', user_arguments)
275
+ vol = runner.getDoubleArgumentValue('vol', user_arguments)
294
276
  type = runner.getStringArgumentValue('type', user_arguments)
277
+ zone = runner.getStringArgumentValue('zone', user_arguments)
295
278
  cap = runner.getDoubleArgumentValue('cap', user_arguments)
296
279
  cop = runner.getDoubleArgumentValue('cop', user_arguments)
297
280
  bu_cap = runner.getDoubleArgumentValue('bu_cap', user_arguments)
298
- vol = runner.getDoubleArgumentValue('vol', user_arguments)
299
281
  max_temp = runner.getDoubleArgumentValue('max_temp', user_arguments)
300
282
  min_temp = runner.getDoubleArgumentValue('min_temp', user_arguments)
301
283
  db_temp = runner.getDoubleArgumentValue('db_temp', user_arguments)
@@ -306,15 +288,6 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
306
288
  flex_hrs << runner.getStringArgumentValue('flex_hrs' + n.to_s, user_arguments)
307
289
  end
308
290
 
309
- # check for error inputs
310
- if loop.include?('Error')
311
- runner.registerError('No service hot water loop was found. Measure did not run.')
312
- end
313
-
314
- if zone.include?('Error')
315
- runner.registerError('No thermal zone was found. Measure did not run.')
316
- end
317
-
318
291
  # check capacity, volume, and temps for reasonableness
319
292
  if cap < 5
320
293
  runner.registerWarning('HPWH heating capacity is less than 5kW ( 17kBtu/hr)')
@@ -324,7 +297,9 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
324
297
  runner.registerWarning('Backup heating capaicty is less than 5kW ( 17kBtu/hr).')
325
298
  end
326
299
 
327
- if vol < 40
300
+ if vol == 0
301
+ runner.registerInfo('Tank volume was not specified, using existing tank capacity.')
302
+ elsif vol < 40
328
303
  runner.registerWarning('Tank has less than 40 gallon capacity; check heat pump sizing if model fails.')
329
304
  end
330
305
 
@@ -334,15 +309,15 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
334
309
  'conditions facilitate the growth of Legionella.')
335
310
  end
336
311
 
337
- if max_temp > 180
338
- runner.registerWarning('Maximum charging temperature exceeded practical limits; reset to 180F.')
339
- max_temp = 180.0
312
+ if max_temp > 185
313
+ runner.registerWarning('Maximum charging temperature exceeded practical limits; reset to 185F.')
314
+ max_temp = 185.0
340
315
  end
341
316
 
342
- if max_temp > 160
317
+ if max_temp > 170
343
318
  runner.registerWarning("#{max_temp}F is above or near the limit of the HP performance curves. If the " \
344
319
  'simulation fails with cooling capacity less than 0, you have exceeded performance ' \
345
- 'limits. Consider setting max temp to less than 160F.')
320
+ 'limits. Consider setting max temp to less than 170F.')
346
321
  end
347
322
 
348
323
  # check selected schedule and set flag for later use
@@ -483,7 +458,7 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
483
458
  idx += 1
484
459
  end
485
460
 
486
- ## CONTROLS: TANK TEMPERATURE SETPOINT SCHEDULE (ELECTRIC BACKUP) --------------------------------------------------
461
+ ## END CONTROLS: TANK TEMPERATURE SETPOINT SCHEDULE (ELECTRIC BACKUP) ----------------------------------------------
487
462
 
488
463
  ## HARDWARE --------------------------------------------------------------------------------------------------------
489
464
  # This section adds the selected type of heat pump water heater to the supply side of the selected loop. If
@@ -493,99 +468,122 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
493
468
  # use OS standards build - arbitrary selection, but NZE Ready seems appropriate
494
469
  std = Standard.build('NREL ZNE Ready 2017')
495
470
 
496
- # create empty arrays and initialize variables for later use
497
- old_heater = []
498
- count = 0
499
-
500
- # convert loop and zone names from STRINGS into OS model OBJECTS
501
- zone = model.getThermalZoneByName(zone).get
502
- loop = model.getPlantLoopByName(loop).get
503
-
504
- # find and locate old water heater on selected loop, if applicable
505
- loop_equip = loop.supplyComponents
506
- loop_equip.each do |le|
507
- if le.iddObject.name.include?('WaterHeater:Mixed')
508
- old_heater << model.getWaterHeaterMixedByName(le.name.to_s).get
509
- count += 1
510
- elsif le.iddObject.name.include?('WaterHeater:Stratified')
511
- old_heater << model.getWaterHeaterStratifiedByName(le.name.to_s).get
512
- count += 1
471
+ #####
472
+ # get the selected water heaters
473
+ whtrs = []
474
+ model.getWaterHeaterMixeds.each do |w|
475
+ if wh == 'All Water Heaters (Simplified Only)'
476
+ # exclude booster tanks (<10gal):
477
+ if w.tankVolume.to_f < 0.037854
478
+ next
479
+ else
480
+ whtrs << w
481
+ end
482
+ elsif w.name.to_s == wh
483
+ whtrs << w
513
484
  end
514
485
  end
515
486
 
516
- unless old_heater.empty?
517
- inlet = old_heater[0].supplyInletModelObject.get.to_Node.get
518
- outlet = old_heater[0].supplyOutletModelObject.get.to_Node.get
519
- end
487
+ whtrs.each do |wh|
488
+ # create empty arrays and initialize variables for later use
489
+ old_heater = []
490
+ count = 0
520
491
 
521
- # Add heat pump water heater and attach to selected loop
522
- # Reference: https://github.com/NREL/openstudio-standards/blob/master/lib/
523
- # => openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb
524
- if type != 'Simplified'
525
- hpwh = std.model_add_heatpump_water_heater(model, # model
526
- type: type, # type
527
- water_heater_capacity: (cap * 1000 / cop), # water_heater_capacity
528
- electric_backup_capacity: (bu_cap * 1000), # electric_backup_capacity
529
- water_heater_volume: OpenStudio.convert(vol, 'gal', 'm^3').get, # water_heater_volume
530
- service_water_temperature: OpenStudio.convert(140.0, 'F', 'C').get, # service_water_temperature
531
- parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
532
- swh_temp_sch: sched, # swh_temp_sch
533
- cop: cop, # cop
534
- shr: 0.88, # shr
535
- tank_ua: 3.9, # tank_ua
536
- set_peak_use_flowrate: false, # set_peak_use_flowrate
537
- peak_flowrate: 0.0, # peak_flowrate
538
- flowrate_schedule: nil, # flowrate_schedule
539
- water_heater_thermal_zone: zone) # water_heater_thermal_zone
540
- else
541
- hpwh = std.model_add_water_heater(model, # model
542
- (cap * 1000), # water_heater_capacity
543
- OpenStudio.convert(vol, 'gal', 'm^3').get, # water_heater_volume
544
- 'HeatPump', # water_heater_fuel
545
- OpenStudio.convert(140.0, 'F', 'C').get, # service_water_temperature
546
- 3.0, # parasitic_fuel_consumption_rate
547
- sched, # swh_temp_sch
548
- false, # set_peak_use_flowrate
549
- 0.0, # peak_flowrate
550
- nil, # flowrate_schedule
551
- zone, # water_heater_thermal_zone
552
- 1) # number_water_heaters
553
- end
492
+ # get the appropriate plant loop
493
+ loop = ''
494
+ loops = model.getPlantLoops
495
+ loops.each do |l|
496
+ l.supplyComponents.each do |c|
497
+ if c.name.to_s == wh.name.to_s
498
+ loop = l
499
+ end
500
+ end
501
+ end
554
502
 
555
- # add tank to appropriate branch and node (will be placed first in series if old tanks not removed)
556
- # modify objects as ncessary
557
- if old_heater.empty?
558
- loop.addSupplyBranchForComponent(hpwh.tank)
559
- elsif type != 'Simplified'
560
- hpwh.tank.addToNode(inlet)
561
- hpwh.setDeadBandTemperatureDifference(db_temp / 1.8)
562
- runner.registerInfo("#{hpwh.tank.name} was added to the model on #{loop.name}")
563
- else
564
- hpwh.addToNode(inlet)
565
- hpwh.setMaximumTemperatureLimit(OpenStudio.convert(max_temp, 'F', 'C').get)
566
- runner.registerInfo("#{hpwh.name} was added to the model on #{loop.name}")
567
- end
503
+ # use existing tank volume unless otherwise specified
504
+ # values between 0.0 and 5.0 are considered tank sizing multipliers
505
+ if vol == 0
506
+ v = wh.tankVolume
507
+ elsif (vol > 0.0) && (vol < 5.0)
508
+ v = wh.tankVolume.to_f * vol
509
+ else
510
+ v = OpenStudio.convert(vol, 'gal', 'm^3').get
511
+ end
568
512
 
569
- # remove old tank objects if necessary
570
- if remove_wh
571
- old_heater.each do |oh|
572
- runner.registerInfo("#{oh.name} was removed from the model.")
573
- oh.remove
513
+ inlet = wh.supplyInletModelObject.get.to_Node.get
514
+ outlet = wh.supplyOutletModelObject.get.to_Node.get
515
+
516
+ # Add heat pump water heater and attach to selected loop
517
+ # Reference: https://github.com/NREL/openstudio-standards/blob/master/lib/
518
+ # => openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb
519
+ if type != 'Simplified'
520
+ # convert zone name from STRING into OS model OBJECT
521
+ zone = model.getThermalZoneByName(zone).get
522
+ hpwh = std.model_add_heatpump_water_heater(model, # model
523
+ type: type, # type
524
+ water_heater_capacity: (cap * 1000 / cop), # water_heater_capacity
525
+ electric_backup_capacity: (bu_cap * 1000), # electric_backup_capacity
526
+ water_heater_volume: v, # water_heater_volume
527
+ service_water_temperature: OpenStudio.convert(140.0, 'F', 'C').get, # service_water_temperature
528
+ parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
529
+ swh_temp_sch: sched, # swh_temp_sch
530
+ cop: cop, # cop
531
+ shr: 0.88, # shr
532
+ tank_ua: 3.9, # tank_ua
533
+ set_peak_use_flowrate: false, # set_peak_use_flowrate
534
+ peak_flowrate: 0.0, # peak_flowrate
535
+ flowrate_schedule: nil, # flowrate_schedule
536
+ water_heater_thermal_zone: zone) # water_heater_thermal_zone
537
+ else
538
+ # zone = wh.ambientTemperatureThermalZone.get
539
+ runner.registerWarning(wh.to_s)
540
+ hpwh = std.model_add_water_heater(model, # model
541
+ (cap * 1000), # water_heater_capacity
542
+ v.to_f, # water_heater_volume
543
+ 'HeatPump', # water_heater_fuel
544
+ OpenStudio.convert(140.0, 'F', 'C').to_f, # service_water_temperature
545
+ 3.0, # parasitic_fuel_consumption_rate
546
+ sched, # swh_temp_sch
547
+ false, # set_peak_use_flowrate
548
+ 0.0, # peak_flowrate
549
+ nil, # flowrate_schedule
550
+ model.getThermalZones[0], # water_heater_thermal_zone
551
+ 1) # number_water_heaters
552
+ # set COP in PLF curve
553
+ cop_curve = hpwh.partLoadFactorCurve.get
554
+ cop_curve.setName(cop_curve.name.get.gsub('2.8', cop.to_s))
555
+ cop_curve.setCoefficient1Constant(cop)
556
+ end
557
+
558
+ # add tank to appropriate branch and node (will be placed first in series if old tanks not removed)
559
+ # modify objects as ncessary
560
+ if type != 'Simplified'
561
+ hpwh.tank.addToNode(inlet)
562
+ hpwh.setDeadBandTemperatureDifference(db_temp / 1.8)
563
+ runner.registerInfo("#{hpwh.tank.name} was added to the model on #{loop.name}")
564
+ else
565
+ hpwh.addToNode(inlet)
566
+ hpwh.setMaximumTemperatureLimit(OpenStudio.convert(max_temp, 'F', 'C').get)
567
+ runner.registerInfo("#{hpwh.name} was added to the model on #{loop.name}")
574
568
  end
575
- end
576
- ## END HARDWARE ----------------------------------------------------------------------------------------------------
577
569
 
578
- ## CONTROLS MODIFICATIONS FOR TANK ---------------------------------------------------------------------------------
579
- # apply schedule to tank
580
- if type == 'PumpedCondenser'
581
- hpwh.tank.to_WaterHeaterMixed.get.setSetpointTemperatureSchedule(tank_sched)
582
- elsif type == 'WrappedCondenser'
583
- hpwh.tank.to_WaterHeaterStratified.get.setHeater1SetpointTemperatureSchedule(tank_sched)
584
- hpwh.tank.to_WaterHeaterStratified.get.setHeater2SetpointTemperatureSchedule(tank_sched)
585
- elsif type == 'Simplified'
586
- runner.registerInfo('Line 492 was used. Nothing done here yet... Check tank temperature schedules...')
570
+ # remove old tank objects if necessary
571
+ if remove_wh
572
+ runner.registerInfo("#{wh.name} was removed from the model.")
573
+ wh.remove
574
+ end
575
+
576
+ # CONTROLS MODIFICATIONS FOR TANK ---------------------------------------------------------------------------------
577
+ # apply schedule to tank
578
+ if type == 'PumpedCondenser'
579
+ hpwh.tank.to_WaterHeaterMixed.get.setSetpointTemperatureSchedule(tank_sched)
580
+ elsif type == 'WrappedCondenser'
581
+ hpwh.tank.to_WaterHeaterStratified.get.setHeater1SetpointTemperatureSchedule(tank_sched)
582
+ hpwh.tank.to_WaterHeaterStratified.get.setHeater2SetpointTemperatureSchedule(tank_sched)
583
+ end
584
+ # END CONTROLS MODIFICATIONS FOR TANK -----------------------------------------------------------------------------
587
585
  end
588
- ## END CONTROLS MODIFICATIONS FOR TANK -----------------------------------------------------------------------------
586
+ ## END HARDWARE ----------------------------------------------------------------------------------------------------
589
587
 
590
588
  ## ADD REPORTED VARIABLES ------------------------------------------------------------------------------------------
591
589
 
@@ -599,7 +597,7 @@ class AddHphw < OpenStudio::Measure::ModelMeasure
599
597
  'Water Heater Use Side Heat Transfer Rate',
600
598
  'Water Heater Source Side Heat Transfer Rate',
601
599
  'Water Heater Unmet Demand Heat Transfer Rate',
602
- 'Water Heater Electric Power',
600
+ 'Water Heater Electricity Rate',
603
601
  'Water Heater Water Volume Flow Rate',
604
602
  'Water Use Connections Hot Water Temperature']
605
603