text:
body {
  font-family: "Lato", Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.72222;
  color: #34495e;
  background-color: #ffffff;
}
a {
  color: #16a085;
  text-decoration: none;
  transition: .25s;
}
a:hover,
a:focus {
  color: #1abc9c;
  text-decoration: none;
}
a:focus {
  outline: none;
}
.img-rounded {
  border-radius: 0px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.72222;
  background-color: #ffffff;
  border: 2px solid #aed8d0;
  border-radius: 0px;
  transition: all 0.25s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-comment {
  font-size: 13px;
  line-height: 1.2;
  font-style: italic;
  margin: 24px 0;
}
.btn {
  border: none;
  font-size: 13px;
  font-weight: normal;
  line-height: 1.4;
  border-radius: 0px;
  padding: 10px 15px;
  -webkit-font-smoothing: subpixel-antialiased;
  transition: border 0.25s linear, color 0.25s linear, background-color 0.25s linear;
}
.btn:hover,
.btn:focus {
  outline: none;
  color: white;
}
.btn:active,
.btn.active {
  outline: none;
  box-shadow: none;
}
.btn:focus:active {
  outline: none;
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  background-color: #aed8d0;
  color: rgba(255, 255, 255, 0.75);
  opacity: 0.7;
  filter: alpha(opacity=70);
  cursor: not-allowed;
}
.btn [class^="fui-"] {
  margin: 0 1px;
  position: relative;
  line-height: 1;
  top: 1px;
}
.btn-xs.btn [class^="fui-"] {
  font-size: 11px;
  top: 0;
}
.btn-hg.btn [class^="fui-"] {
  top: 2px;
}
.btn-default {
  color: white;
  background-color: #aed8d0;
}
.btn-default:hover,
.btn-default.hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: white;
  background-color: #bee0d9;
  border-color: #bee0d9;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background: #94b8b1;
  border-color: #94b8b1;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled.hover,
.btn-default[disabled].hover,
fieldset[disabled] .btn-default.hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
  background-color: #aed8d0;
  border-color: #aed8d0;
}
.btn-default .badge {
  color: #aed8d0;
  background-color: white;
}
.btn-primary {
  color: white;
  background-color: #1abc9c;
}
.btn-primary:hover,
.btn-primary.hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: white;
  background-color: #48c9b0;
  border-color: #48c9b0;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background: #16a085;
  border-color: #16a085;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled.hover,
.btn-primary[disabled].hover,
fieldset[disabled] .btn-primary.hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
  background-color: #aed8d0;
  border-color: #1abc9c;
}
.btn-primary .badge {
  color: #1abc9c;
  background-color: white;
}
.btn-info {
  color: white;
  background-color: #3498db;
}
.btn-info:hover,
.btn-info.hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: white;
  background-color: #5dade2;
  border-color: #5dade2;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background: #2c81ba;
  border-color: #2c81ba;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled.hover,
.btn-info[disabled].hover,
fieldset[disabled] .btn-info.hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
  background-color: #aed8d0;
  border-color: #3498db;
}
.btn-info .badge {
  color: #3498db;
  background-color: white;
}
.btn-danger {
  color: white;
  background-color: #e74c3c;
}
.btn-danger:hover,
.btn-danger.hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: white;
  background-color: #ec7063;
  border-color: #ec7063;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background: #c44133;
  border-color: #c44133;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled.hover,
.btn-danger[disabled].hover,
fieldset[disabled] .btn-danger.hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
  background-color: #aed8d0;
  border-color: #e74c3c;
}
.btn-danger .badge {
  color: #e74c3c;
  background-color: white;
}
.btn-success {
  color: white;
  background-color: #2ecc71;
}
.btn-success:hover,
.btn-success.hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: white;
  background-color: #58d68d;
  border-color: #58d68d;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background: #27ad60;
  border-color: #27ad60;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled.hover,
.btn-success[disabled].hover,
fieldset[disabled] .btn-success.hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
  background-color: #aed8d0;
  border-color: #2ecc71;
}
.btn-success .badge {
  color: #2ecc71;
  background-color: white;
}
.btn-warning {
  color: white;
  background-color: #f1c40f;
}
.btn-warning:hover,
.btn-warning.hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: white;
  background-color: #f4d313;
  border-color: #f4d313;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background: #cda70d;
  border-color: #cda70d;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled.hover,
.btn-warning[disabled].hover,
fieldset[disabled] .btn-warning.hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
  background-color: #aed8d0;
  border-color: #f1c40f;
}
.btn-warning .badge {
  color: #f1c40f;
  background-color: white;
}
.btn-inverse {
  color: white;
  background-color: #34495e;
}
.btn-inverse:hover,
.btn-inverse.hover,
.btn-inverse:focus,
.btn-inverse:active,
.btn-inverse.active,
.open > .dropdown-toggle.btn-inverse {
  color: white;
  background-color: #415b76;
  border-color: #415b76;
}
.btn-inverse:active,
.btn-inverse.active,
.open > .dropdown-toggle.btn-inverse {
  background: #2c3e50;
  border-color: #2c3e50;
}
.btn-inverse.disabled,
.btn-inverse[disabled],
fieldset[disabled] .btn-inverse,
.btn-inverse.disabled:hover,
.btn-inverse[disabled]:hover,
fieldset[disabled] .btn-inverse:hover,
.btn-inverse.disabled.hover,
.btn-inverse[disabled].hover,
fieldset[disabled] .btn-inverse.hover,
.btn-inverse.disabled:focus,
.btn-inverse[disabled]:focus,
fieldset[disabled] .btn-inverse:focus,
.btn-inverse.disabled:active,
.btn-inverse[disabled]:active,
fieldset[disabled] .btn-inverse:active,
.btn-inverse.disabled.active,
.btn-inverse[disabled].active,
fieldset[disabled] .btn-inverse.active {
  background-color: #aed8d0;
  border-color: #34495e;
}
.btn-inverse .badge {
  color: #34495e;
  background-color: white;
}
.btn-embossed {
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.15);
}
.btn-embossed.active,
.btn-embossed:active {
  box-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.15);
}
.btn-wide {
  min-width: 140px;
  padding-left: 30px;
  padding-right: 30px;
}
.btn-link {
  color: #16a085;
}
.btn-link:hover,
.btn-link:focus {
  color: #1abc9c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #aed8d0;
  text-decoration: none;
}
.btn-hg,
.btn-group-hg > .btn {
  padding: 13px 20px;
  font-size: 19px;
  line-height: 1.227;
  border-radius: 0px;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 19px;
  font-size: 15px;
  line-height: 1.471;
  border-radius: 0px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 9px 13px;
  font-size: 11px;
  line-height: 1.385;
  border-radius: 0px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 6px 9px;
  font-size: 11px;
  line-height: 1.083;
  border-radius: 0px;
}
.btn-tip {
  font-weight: 300;
  padding-left: 10px;
  font-size: 92%;
}
.btn-block {
  white-space: normal;
}
[class*="btn-social-"] {
  padding: 10px 15px;
  font-size: 11px;
  line-height: 1.077;
  border-radius: 0px;
}
.btn-social-pinterest {
  color: white;
  background-color: #cb2028;
}
.btn-social-pinterest:hover,
.btn-social-pinterest:focus {
  background-color: #d54d53;
}
.btn-social-pinterest:active,
.btn-social-pinterest.active {
  background-color: #ad1b22;
}
.btn-social-linkedin {
  color: white;
  background-color: #0072b5;
}
.btn-social-linkedin:hover,
.btn-social-linkedin:focus {
  background-color: #338ec4;
}
.btn-social-linkedin:active,
.btn-social-linkedin.active {
  background-color: #00619a;
}
.btn-social-stumbleupon {
  color: white;
  background-color: #ed4a13;
}
.btn-social-stumbleupon:hover,
.btn-social-stumbleupon:focus {
  background-color: #f16e42;
}
.btn-social-stumbleupon:active,
.btn-social-stumbleupon.active {
  background-color: #c93f10;
}
.btn-social-googleplus {
  color: white;
  background-color: #2d2d2d;
}
.btn-social-googleplus:hover,
.btn-social-googleplus:focus {
  background-color: #575757;
}
.btn-social-googleplus:active,
.btn-social-googleplus.active {
  background-color: #262626;
}
.btn-social-facebook {
  color: white;
  background-color: #2f4b93;
}
.btn-social-facebook:hover,
.btn-social-facebook:focus {
  background-color: #596fa9;
}
.btn-social-facebook:active,
.btn-social-facebook.active {
  background-color: #28407d;
}
.btn-social-twitter {
  color: white;
  background-color: #00bdef;
}
.btn-social-twitter:hover,
.btn-social-twitter:focus {
  background-color: #33caf2;
}
.btn-social-twitter:active,
.btn-social-twitter.active {
  background-color: #00a1cb;
}
.btn-group > .btn + .btn {
  margin-left: 0;
}
.btn-group > .btn + .dropdown-toggle {
  border-left: 2px solid rgba(52, 73, 94, 0.15);
  padding: 10px 12px;
}
.btn-group > .btn + .dropdown-toggle .caret {
  margin-left: 3px;
  margin-right: 3px;
}
.btn-group > .btn.btn-gh + .dropdown-toggle .caret {
  margin-left: 7px;
  margin-right: 7px;
}
.btn-group > .btn.btn-sm + .dropdown-toggle .caret {
  margin-left: 0;
  margin-right: 0;
}
.dropdown-toggle .caret {
  margin-left: 8px;
}
.btn-group-xs > .btn + .dropdown-toggle {
  padding: 6px 9px;
}
.btn-group-sm > .btn + .dropdown-toggle {
  padding: 9px 13px;
}
.btn-group-lg > .btn + .dropdown-toggle {
  padding: 10px 19px;
}
.btn-group-hg > .btn + .dropdown-toggle {
  padding: 13px 20px;
}
.btn-xs .caret {
  border-width: 6px 4px 0;
  border-bottom-width: 0;
}
.btn-lg .caret {
  border-width: 8px 6px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 6px 8px;
}
.dropup .btn-xs .caret {
  border-width: 0 4px 6px;
}
.btn-group > .btn,
.btn-group > .dropdown-menu,
.btn-group > .popover {
  font-weight: 400;
}
.btn-group:focus .dropdown-toggle {
  outline: none;
  transition: .25s;
}
.btn-group.open .dropdown-toggle {
  color: rgba(255, 255, 255, 0.75);
  box-shadow: none;
}
.btn-toolbar .btn.active {
  color: white;
}
.btn-toolbar .btn > [class^="fui-"] {
  font-size: 16px;
  margin: 0 1px;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 12.5px;
  font-size: 20.8px;
  line-height: inherit;
  color: inherit;
  border-bottom: none;
}
textarea {
  font-size: 17px;
  line-height: 24px;
  padding: 5px 11px;
}
input[type="search"] {
  -webkit-appearance: none !important;
}
label {
  font-weight: normal;
  font-size: 13px;
  line-height: 2.3;
}
.form-control::-moz-placeholder {
  color: #b2bcc5;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #b2bcc5;
}
.form-control::-webkit-input-placeholder {
  color: #b2bcc5;
}
.form-control {
  border: 1px solid #aed8d0;
  color: #34495e;
  font-family: "Lato", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.467;
  padding: 8px 12px;
  height: 42px;
  border-radius: 0px;
  box-shadow: none;
  transition: border 0.25s linear, color 0.25s linear, background-color 0.25s linear;
}
.form-group.focus .form-control,
.form-control:focus {
  border-color: #1abc9c;
  outline: 0;
  box-shadow: none;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #f4f6f6;
  border-color: #d5dbdb;
  color: #d5dbdb;
  cursor: default;
  opacity: 0.7;
  filter: alpha(opacity=70);
}
.form-control.flat {
  border-color: transparent;
}
.form-control.flat:hover {
  border-color: #aed8d0;
}
.form-control.flat:focus {
  border-color: #1abc9c;
}
.input-sm,
.form-group-sm .form-control {
  height: 35px;
  padding: 6px 10px;
  font-size: 11px;
  line-height: 1.462;
  border-radius: 0px;
}
select.input-sm,
select.form-group-sm .form-control {
  height: 35px;
  line-height: 35px;
}
textarea.input-sm,
textarea.form-group-sm .form-control,
select[multiple].input-sm,
select[multiple].form-group-sm .form-control {
  height: auto;
}
.input-lg,
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 15px;
  font-size: 15px;
  line-height: 1.235;
  border-radius: 0px;
}
select.input-lg,
select.form-group-lg .form-control {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
textarea.form-group-lg .form-control,
select[multiple].input-lg,
select[multiple].form-group-lg .form-control {
  height: auto;
}
.input-hg,
.form-group-hg .form-control,
.form-horizontal .form-group-hg .form-control {
  height: 53px;
  padding: 10px 16px;
  font-size: 19px;
  line-height: 1.318;
  border-radius: 0px;
}
select.input-hg,
select.form-group-hg .form-control {
  height: 53px;
  line-height: 53px;
}
textarea.input-hg,
textarea.form-group-hg .form-control,
select[multiple].input-hg,
select[multiple].form-group-hg .form-control {
  height: auto;
}
.form-control-feedback {
  position: absolute;
  top: 2px;
  right: 2px;
  margin-top: 1px;
  line-height: 36px;
  font-size: 14px;
  color: #b2bcc5;
  background-color: transparent;
  padding: 0 12px 0 0;
  border-radius: 0px;
  pointer-events: none;
}
.input-hg + .form-control-feedback,
.control-feedback-hg {
  font-size: 18px;
  line-height: 48px;
  padding-right: 16px;
  width: auto;
  height: 48px;
}
.input-lg + .form-control-feedback,
.control-feedback-lg {
  font-size: 16px;
  line-height: 40px;
  width: auto;
  height: 40px;
  padding-right: 15px;
}
.input-sm + .form-control-feedback,
.control-feedback-sm {
  line-height: 29px;
  height: 29px;
  width: auto;
  padding-right: 10px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline {
  color: #2ecc71;
}
.has-success .form-control {
  color: #2ecc71;
  border-color: #2ecc71;
  box-shadow: none;
}
.has-success .form-control::-moz-placeholder {
  color: #2ecc71;
  opacity: 1;
}
.has-success .form-control:-ms-input-placeholder {
  color: #2ecc71;
}
.has-success .form-control::-webkit-input-placeholder {
  color: #2ecc71;
}
.has-success .form-control:focus {
  border-color: #2ecc71;
  box-shadow: none;
}
.has-success .input-group-addon {
  color: #2ecc71;
  border-color: #2ecc71;
  background-color: white;
}
.has-success .form-control-feedback {
  color: #2ecc71;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline {
  color: #f1c40f;
}
.has-warning .form-control {
  color: #f1c40f;
  border-color: #f1c40f;
  box-shadow: none;
}
.has-warning .form-control::-moz-placeholder {
  color: #f1c40f;
  opacity: 1;
}
.has-warning .form-control:-ms-input-placeholder {
  color: #f1c40f;
}
.has-warning .form-control::-webkit-input-placeholder {
  color: #f1c40f;
}
.has-warning .form-control:focus {
  border-color: #f1c40f;
  box-shadow: none;
}
.has-warning .input-group-addon {
  color: #f1c40f;
  border-color: #f1c40f;
  background-color: white;
}
.has-warning .form-control-feedback {
  color: #f1c40f;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline {
  color: #e74c3c;
}
.has-error .form-control {
  color: #e74c3c;
  border-color: #e74c3c;
  box-shadow: none;
}
.has-error .form-control::-moz-placeholder {
  color: #e74c3c;
  opacity: 1;
}
.has-error .form-control:-ms-input-placeholder {
  color: #e74c3c;
}
.has-error .form-control::-webkit-input-placeholder {
  color: #e74c3c;
}
.has-error .form-control:focus {
  border-color: #e74c3c;
  box-shadow: none;
}
.has-error .input-group-addon {
  color: #e74c3c;
  border-color: #e74c3c;
  background-color: white;
}
.has-error .form-control-feedback {
  color: #e74c3c;
}
.form-control[disabled] + .form-control-feedback,
.form-control[readonly] + .form-control-feedback,
fieldset[disabled] .form-control + .form-control-feedback,
.form-control.disabled + .form-control-feedback {
  cursor: not-allowed;
  color: #d5dbdb;
  background-color: transparent;
  opacity: 0.7;
  filter: alpha(opacity=70);
}
.help-block {
  font-size: 13px;
  margin-bottom: 5px;
  color: #65828c;
}
.form-group {
  position: relative;
  margin-bottom: 20px;
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    padding-top: 3px;
    padding-bottom: 3px;
  }
}
.form-horizontal .form-group {
  margin-left: -15px;
  margin-right: -15px;
}
.form-horizontal .form-control-static {
  padding-top: 6px;
  padding-bottom: 6px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-hg .control-label {
    font-size: 19px;
    padding-top: 2px;
    padding-bottom: 0;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    font-size: 15px;
    padding-top: 3px;
    padding-bottom: 2px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    font-size: 11px;
    padding-top: 2px;
    padding-bottom: 2px;
  }
}
.input-group .form-control {
  position: static;
}
.input-group-hg > .form-control,
.input-group-hg > .input-group-addon,
.input-group-hg > .input-group-btn > .btn {
  height: 53px;
  padding: 10px 16px;
  font-size: 19px;
  line-height: 1.318;
  border-radius: 0px;
}
select.input-group-hg > .form-control,
select.input-group-hg > .input-group-addon,
select.input-group-hg > .input-group-btn > .btn {
  height: 53px;
  line-height: 53px;
}
textarea.input-group-hg > .form-control,
textarea.input-group-hg > .input-group-addon,
textarea.input-group-hg > .input-group-btn > .btn,
select[multiple].input-group-hg > .form-control,
select[multiple].input-group-hg > .input-group-addon,
select[multiple].input-group-hg > .input-group-btn > .btn {
  height: auto;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 15px;
  font-size: 15px;
  line-height: 1.235;
  border-radius: 0px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 35px;
  padding: 6px 10px;
  font-size: 11px;
  line-height: 1.462;
  border-radius: 0px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 35px;
  line-height: 35px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon {
  padding: 10px 12px;
  font-size: 13px;
  color: white;
  text-align: center;
  background-color: #aed8d0;
  border: 2px solid #aed8d0;
  border-radius: 0px;
  transition: border 0.25s linear, color 0.25s linear, background-color 0.25s linear;
}
.input-group-hg .input-group-addon,
.input-group-lg .input-group-addon,
.input-group-sm .input-group-addon {
  line-height: 1;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.form-group.focus .input-group-addon,
.input-group.focus .input-group-addon {
  background-color: #1abc9c;
  border-color: #1abc9c;
}
.form-group.focus .input-group-btn > .btn-default + .btn-default,
.input-group.focus .input-group-btn > .btn-default + .btn-default {
  border-left-color: #16a085;
}
.form-group.focus .input-group-btn .btn,
.input-group.focus .input-group-btn .btn {
  border-color: #1abc9c;
  background-color: white;
  color: #1abc9c;
}
.form-group.focus .input-group-btn .btn-default,
.input-group.focus .input-group-btn .btn-default {
  color: white;
  background-color: #1abc9c;
}
.form-group.focus .input-group-btn .btn-default:hover,
.input-group.focus .input-group-btn .btn-default:hover,
.form-group.focus .input-group-btn .btn-default.hover,
.input-group.focus .input-group-btn .btn-default.hover,
.form-group.focus .input-group-btn .btn-default:focus,
.input-group.focus .input-group-btn .btn-default:focus,
.form-group.focus .input-group-btn .btn-default:active,
.input-group.focus .input-group-btn .btn-default:active,
.form-group.focus .input-group-btn .btn-default.active,
.input-group.focus .input-group-btn .btn-default.active,
.open > .dropdown-toggle.form-group.focus .input-group-btn .btn-default,
.open > .dropdown-toggle.input-group.focus .input-group-btn .btn-default {
  color: white;
  background-color: #48c9b0;
  border-color: #48c9b0;
}
.form-group.focus .input-group-btn .btn-default:active,
.input-group.focus .input-group-btn .btn-default:active,
.form-group.focus .input-group-btn .btn-default.active,
.input-group.focus .input-group-btn .btn-default.active,
.open > .dropdown-toggle.form-group.focus .input-group-btn .btn-default,
.open > .dropdown-toggle.input-group.focus .input-group-btn .btn-default {
  background: #16a085;
  border-color: #16a085;
}
.form-group.focus .input-group-btn .btn-default.disabled,
.input-group.focus .input-group-btn .btn-default.disabled,
.form-group.focus .input-group-btn .btn-default[disabled],
.input-group.focus .input-group-btn .btn-default[disabled],
fieldset[disabled] .form-group.focus .input-group-btn .btn-default,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default,
.form-group.focus .input-group-btn .btn-default.disabled:hover,
.input-group.focus .input-group-btn .btn-default.disabled:hover,
.form-group.focus .input-group-btn .btn-default[disabled]:hover,
.input-group.focus .input-group-btn .btn-default[disabled]:hover,
fieldset[disabled] .form-group.focus .input-group-btn .btn-default:hover,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default:hover,
.form-group.focus .input-group-btn .btn-default.disabled.hover,
.input-group.focus .input-group-btn .btn-default.disabled.hover,
.form-group.focus .input-group-btn .btn-default[disabled].hover,
.input-group.focus .input-group-btn .btn-default[disabled].hover,
fieldset[disabled] .form-group.focus .input-group-btn .btn-default.hover,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default.hover,
.form-group.focus .input-group-btn .btn-default.disabled:focus,
.input-group.focus .input-group-btn .btn-default.disabled:focus,
.form-group.focus .input-group-btn .btn-default[disabled]:focus,
.input-group.focus .input-group-btn .btn-default[disabled]:focus,
fieldset[disabled] .form-group.focus .input-group-btn .btn-default:focus,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default:focus,
.form-group.focus .input-group-btn .btn-default.disabled:active,
.input-group.focus .input-group-btn .btn-default.disabled:active,
.form-group.focus .input-group-btn .btn-default[disabled]:active,
.input-group.focus .input-group-btn .btn-default[disabled]:active,
fieldset[disabled] .form-group.focus .input-group-btn .btn-default:active,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default:active,
.form-group.focus .input-group-btn .btn-default.disabled.active,
.input-group.focus .input-group-btn .btn-default.disabled.active,
.form-group.focus .input-group-btn .btn-default[disabled].active,
.input-group.focus .input-group-btn .btn-default[disabled].active,
fieldset[disabled] .form-group.focus .input-group-btn .btn-default.active,
fieldset[disabled] .input-group.focus .input-group-btn .btn-default.active {
  background-color: #aed8d0;
  border-color: #1abc9c;
}
.form-group.focus .input-group-btn .btn-default .badge,
.input-group.focus .input-group-btn .btn-default .badge {
  color: #1abc9c;
  background-color: white;
}
.input-group-btn .btn {
  line-height: 18px;
  height: 42px;
}
.input-group-btn .btn-default {
  color: white;
  background-color: #aed8d0;
}
.input-group-btn .btn-default:hover,
.input-group-btn .btn-default.hover,
.input-group-btn .btn-default:focus,
.input-group-btn .btn-default:active,
.input-group-btn .btn-default.active,
.open > .dropdown-toggle.input-group-btn .btn-default {
  color: white;
  background-color: #bee0d9;
  border-color: #bee0d9;
}
.input-group-btn .btn-default:active,
.input-group-btn .btn-default.active,
.open > .dropdown-toggle.input-group-btn .btn-default {
  background: #94b8b1;
  border-color: #94b8b1;
}
.input-group-btn .btn-default.disabled,
.input-group-btn .btn-default[disabled],
fieldset[disabled] .input-group-btn .btn-default,
.input-group-btn .btn-default.disabled:hover,
.input-group-btn .btn-default[disabled]:hover,
fieldset[disabled] .input-group-btn .btn-default:hover,
.input-group-btn .btn-default.disabled.hover,
.input-group-btn .btn-default[disabled].hover,
fieldset[disabled] .input-group-btn .btn-default.hover,
.input-group-btn .btn-default.disabled:focus,
.input-group-btn .btn-default[disabled]:focus,
fieldset[disabled] .input-group-btn .btn-default:focus,
.input-group-btn .btn-default.disabled:active,
.input-group-btn .btn-default[disabled]:active,
fieldset[disabled] .input-group-btn .btn-default:active,
.input-group-btn .btn-default.disabled.active,
.input-group-btn .btn-default[disabled].active,
fieldset[disabled] .input-group-btn .btn-default.active {
  background-color: #aed8d0;
  border-color: #aed8d0;
}
.input-group-btn .btn-default .badge {
  color: #aed8d0;
  background-color: white;
}
.input-group-hg .input-group-btn .btn {
  line-height: 31px;
}
.input-group-lg .input-group-btn .btn {
  line-height: 21px;
}
.input-group-sm .input-group-btn .btn {
  line-height: 19px;
}
.input-group-btn:first-child > .btn {
  border-right-width: 0;
  margin-right: -3px;
}
.input-group-btn:last-child > .btn {
  border-left-width: 0;
  margin-left: -3px;
}
.input-group-btn > .btn-default + .btn-default {
  border-left: 2px solid #aed8d0;
}
.input-group-btn > .btn:first-child + .btn .caret {
  margin-left: 0;
}
.input-group-rounded .input-group-btn + .form-control,
.input-group-rounded .input-group-btn:last-child .btn {
  border-bottom-right-radius: 20px;
  border-top-right-radius: 20px;
}
.input-group-hg.input-group-rounded .input-group-btn + .form-control,
.input-group-hg.input-group-rounded .input-group-btn:last-child .btn {
  border-bottom-right-radius: 27px;
  border-top-right-radius: 27px;
}
.input-group-lg.input-group-rounded .input-group-btn + .form-control,
.input-group-lg.input-group-rounded .input-group-btn:last-child .btn {
  border-bottom-right-radius: 25px;
  border-top-right-radius: 25px;
}
.input-group-rounded .form-control:first-child,
.input-group-rounded .input-group-btn:first-child .btn {
  border-bottom-left-radius: 20px;
  border-top-left-radius: 20px;
}
.input-group-hg.input-group-rounded .form-control:first-child,
.input-group-hg.input-group-rounded .input-group-btn:first-child .btn {
  border-bottom-left-radius: 27px;
  border-top-left-radius: 27px;
}
.input-group-lg.input-group-rounded .form-control:first-child,
.input-group-lg.input-group-rounded .input-group-btn:first-child .btn {
  border-bottom-left-radius: 25px;
  border-top-left-radius: 25px;
}
.input-group-rounded .input-group-btn + .form-control {
  padding-left: 0;
}
.navbar {
  font-size: 13px;
  min-height: 53px;
  margin-bottom: 25px;
  border: none;
  border-radius: 0px;
}
@media (min-width: 768px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  box-shadow: none;
  padding-right: 21px;
  padding-left: 21px;
}
.navbar-collapse .navbar-form:first-child {
  border: none;
}
@media (min-width: 768px) {
  .navbar-collapse .navbar-nav.navbar-left:first-child {
    margin-left: -21px;
  }
  .navbar-collapse .navbar-nav.navbar-left:first-child > li:first-child a {
    border-bottom-left-radius: 0px;
    border-top-left-radius: 0px;
  }
  .navbar-collapse .navbar-nav.navbar-right:last-child {
    margin-right: -21px;
  }
  .navbar-collapse .navbar-nav.navbar-right:last-child > .dropdown:last-child > a {
    border-radius: 0 0px 0px 0;
  }
  .navbar-fixed-top .navbar-collapse .navbar-form.navbar-right:last-child,
  .navbar-fixed-bottom .navbar-collapse .navbar-form.navbar-right:last-child {
    margin-right: 0;
  }
}
@media (max-width: 767px) {
  .navbar-collapse .navbar-nav.navbar-right:last-child {
    margin-bottom: 3px;
  }
}
.navbar .container,
.navbar .container-fluid {
  padding-left: 21px;
  padding-right: 21px;
}
.navbar .container > .navbar-header,
.navbar .container-fluid > .navbar-header,
.navbar .container > .navbar-collapse,
.navbar .container-fluid > .navbar-collapse {
  margin-right: -21px;
  margin-left: -21px;
}
@media (min-width: 768px) {
  .navbar .container > .navbar-header,
  .navbar .container-fluid > .navbar-header,
  .navbar .container > .navbar-collapse,
  .navbar .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0;
  border-radius: 0;
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  z-index: 1030;
  border-radius: 0;
}
.navbar-fixed-top {
  border-width: 0;
}
.navbar-fixed-bottom {
  margin-bottom: 0;
  border-width: 0;
}
.navbar-brand {
  font-size: 20px;
  line-height: 1.042;
  height: 53px;
  font-weight: 700;
  padding: 14px 21px;
}
.navbar-brand > [class*="fui-"] {
  font-size: 16px;
  line-height: 1.263;
  vertical-align: top;
}
@media (min-width: 768px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: -21px;
  }
}
.navbar-toggle {
  border: none;
  color: #34495e;
  margin: 0 0 0 21px;
  padding: 0 21px;
  height: 53px;
  line-height: 53px;
}
.navbar-toggle:before {
  color: #16a085;
  content: "\e61a";
  font-family: "Flat-UI-Icons";
  font-size: 19px;
  font-style: normal;
  font-weight: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: color .25s linear;
}
.navbar-toggle:hover,
.navbar-toggle:focus {
  outline: none;
}
.navbar-toggle:hover:before,
.navbar-toggle:focus:before {
  color: #1abc9c;
}
.navbar-toggle .icon-bar {
  display: none;
}
@media (min-width: 768px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 0;
}
.navbar-nav > li > a {
  font-size: 13px;
  padding: 15px 21px;
  line-height: 23px;
  font-weight: 300;
}
.navbar-nav > li > a:hover,
.navbar-nav > li > a:focus,
.navbar-nav .open > a:focus,
.navbar-nav .open > a:hover {
  background-color: transparent;
}
.navbar-nav [class^="fui-"] {
  line-height: 20px;
  position: relative;
  top: 1px;
}
.navbar-nav .visible-sm > [class^="fui-"],
.navbar-nav .visible-xs > [class^="fui-"] {
  margin-left: 12px;
}
@media (max-width: 767px) {
  .navbar-nav {
    margin: 0 -21px;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 7px 15px 7px 31px !important;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 23px;
  }
  .navbar-nav > li > a {
    padding-top: 7px;
    padding-bottom: 7px;
  }
}
.navbar-input {
  height: 35px;
  padding: 5px 10px;
  font-size: 11px;
  line-height: 1.4;
  border-radius: 0px;
}
select.navbar-input {
  height: 35px;
  line-height: 35px;
}
textarea.navbar-input,
select[multiple].navbar-input {
  height: auto;
}
.navbar-form {
  box-shadow: none;
  margin-top: 0;
  margin-bottom: 0;
  padding-right: 19px;
  padding-left: 19px;
  padding-top: 9px;
  padding-bottom: 9px;
}
@media (max-width: 767px) {
  .navbar-form {
    margin: 3px -21px;
    width: auto;
  }
}
.navbar-form .form-control,
.navbar-form .input-group-addon,
.navbar-form .btn {
  height: 35px;
  padding: 5px 10px;
  font-size: 11px;
  line-height: 1.4;
  border-radius: 0px;
}
select.navbar-form .form-control,
select.navbar-form .input-group-addon,
select.navbar-form .btn {
  height: 35px;
  line-height: 35px;
}
textarea.navbar-form .form-control,
textarea.navbar-form .input-group-addon,
textarea.navbar-form .btn,
select[multiple].navbar-form .form-control,
select[multiple].navbar-form .input-group-addon,
select[multiple].navbar-form .btn {
  height: auto;
}
.navbar-form .btn {
  margin: 0;
}
.navbar-form .input-group .form-control:first-child,
.navbar-form .input-group-addon:first-child,
.navbar-form .input-group-btn:first-child > .btn,
.navbar-form .input-group-btn:first-child > .dropdown-toggle,
.navbar-form .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.navbar-form .input-group .form-control:last-child,
.navbar-form .input-group-addon:last-child,
.navbar-form .input-group-btn:last-child > .btn,
.navbar-form .input-group-btn:last-child > .dropdown-toggle,
.navbar-form .input-group-btn:first-child > .btn:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.navbar-form .form-control {
  font-size: 13px;
  border-radius: 5px;
  display: table-cell;
}
.navbar-form .form-group ~ .btn {
  font-size: 13px;
  border-radius: 5px;
  margin-left: 5px;
}
.navbar-form .form-group + .btn {
  margin-right: 5px;
}
@media (min-width: 768px) {
  .navbar-form .input-group {
    width: 195px;
  }
}
@media (max-width: 767px) {
  .navbar-form .form-group {
    margin-bottom: 7px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
  .navbar-form .form-group + .btn {
    margin-left: 0;
  }
}
.navbar-nav > li > .dropdown-menu {
  min-width: 100%;
  margin-top: 9px;
  border-radius: 0px;
}
@media (max-width: 767px) {
  .navbar-nav > li.open > .dropdown-menu {
    margin-top: 0 !important;
  }
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
}
.navbar-nav > .open > .dropdown-toggle,
.navbar-nav > .open > .dropdown-toggle:focus,
.navbar-nav > .open > .dropdown-toggle:hover {
  background-color: transparent;
}
.navbar-text {
  font-size: 13px;
  line-height: 1.438;
  color: #34495e;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 15px;
  padding-bottom: 15px;
}
@media (min-width: 768px) {
  .navbar-text {
    margin-left: 21px;
    margin-right: 21px;
  }
  .navbar-text.navbar-right:last-child {
    margin-right: 0;
  }
}
.navbar-btn {
  margin-top: 6px;
  margin-bottom: 6px;
}
.navbar-btn.btn-sm {
  margin-top: 9px;
  margin-bottom: 8px;
}
.navbar-btn.btn-xs {
  margin-top: 14px;
  margin-bottom: 14px;
}
.navbar-unread,
.navbar-new {
  font-family: "Lato", Helvetica, Arial, sans-serif;
  background-color: #1abc9c;
  border-radius: 50%;
  color: white;
  font-size: 0;
  font-weight: 700;
  height: 6px;
  line-height: 1;
  position: absolute;
  right: 12px;
  text-align: center;
  top: 35%;
  width: 6px;
  z-index: 10;
}
@media (max-width: 768px) {
  .navbar-unread,
  .navbar-new {
    position: static;
    float: right;
    margin: 0 0 0 10px;
  }
}
.active .navbar-unread,
.active .navbar-new {
  background-color: white;
  display: none;
}
.navbar-new {
  background-color: #e74c3c;
  font-size: 12px;
  height: 18px;
  line-height: 17px;
  margin: -6px -10px;
  min-width: 18px;
  padding: 0 1px;
  width: auto;
  -webkit-font-smoothing: subpixel-antialiased;
}
.navbar-default {
  background-color: #ecf0f1;
}
.navbar-default .navbar-brand {
  color: #34495e;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #1abc9c;
  background-color: transparent;
}
.navbar-default .navbar-toggle:before {
  color: #34495e;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: transparent;
}
.navbar-default .navbar-toggle:hover:before,
.navbar-default .navbar-toggle:focus:before {
  color: #1abc9c;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e5e9ea;
  border-width: 2px;
}
.navbar-default .navbar-nav > li > a {
  color: #34495e;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #1abc9c;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #1abc9c;
  background-color: transparent;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #cccccc;
  background-color: transparent;
}
.navbar-default .navbar-nav > .dropdown > a .caret {
  border-top-color: #34495e;
  border-bottom-color: #34495e;
}
.navbar-default .navbar-nav > .active > a .caret {
  border-top-color: #1abc9c;
  border-bottom-color: #1abc9c;
}
.navbar-default .navbar-nav > .dropdown > a:hover .caret,
.navbar-default .navbar-nav > .dropdown > a:focus .caret {
  border-top-color: #1abc9c;
  border-bottom-color: #1abc9c;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: transparent;
  color: #1abc9c;
}
.navbar-default .navbar-nav > .open > a .caret,
.navbar-default .navbar-nav > .open > a:hover .caret,
.navbar-default .navbar-nav > .open > a:focus .caret {
  border-top-color: #1abc9c;
  border-bottom-color: #1abc9c;
}
@media (max-width: 767px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #34495e;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #1abc9c;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #1abc9c;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #cccccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-form .form-control {
  border-color: transparent;
}
.navbar-default .navbar-form .form-control::-moz-placeholder {
  color: #aeb6bf;
  opacity: 1;
}
.navbar-default .navbar-form .form-control:-ms-input-placeholder {
  color: #aeb6bf;
}
.navbar-default .navbar-form .form-control::-webkit-input-placeholder {
  color: #aeb6bf;
}
.navbar-default .navbar-form .form-control:focus {
  border-color: #1abc9c;
  color: #1abc9c;
}
.navbar-default .navbar-form .input-group-btn .btn {
  border-color: transparent;
  color: #919ba4;
}
.navbar-default .navbar-form .input-group.focus .form-control,
.navbar-default .navbar-form .input-group.focus .input-group-btn .btn {
  border-color: #1abc9c;
  color: #1abc9c;
}
.navbar-default .navbar-text {
  color: #34495e;
}
.navbar-default .navbar-link {
  color: #34495e;
}
.navbar-default .navbar-link:hover {
  color: #1abc9c;
}
.navbar-default .btn-link {
  color: #34495e;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #1abc9c;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #cccccc;
}
.navbar-inverse {
  background-color: #34495e;
}
.navbar-inverse .navbar-brand {
  color: white;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #1abc9c;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle:before {
  color: white;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: transparent;
}
.navbar-inverse .navbar-toggle:hover:before,
.navbar-inverse .navbar-toggle:focus:before {
  color: #1abc9c;
}
.navbar-inverse .navbar-collapse {
  border-color: #2f4154;
  border-width: 2px;
}
.navbar-inverse .navbar-nav > li > a {
  color: white;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #1abc9c;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: white;
  background-color: #1abc9c;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444444;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .dropdown > a:hover .caret,
.navbar-inverse .navbar-nav > .dropdown > a:focus .caret {
  border-top-color: #1abc9c;
  border-bottom-color: #1abc9c;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #1abc9c;
  color: white;
  border-left-color: transparent;
}
.navbar-inverse .navbar-nav > .open > a .caret,
.navbar-inverse .navbar-nav > .open > a:hover .caret,
.navbar-inverse .navbar-nav > .open > a:focus .caret {
  border-top-color: white;
  border-bottom-color: white;
}
.navbar-inverse .navbar-nav > .dropdown > a .caret {
  border-top-color: #4b6075;
  border-bottom-color: #4b6075;
}
.navbar-inverse .navbar-nav > .open > .dropdown-menu {
  background-color: #34495e;
  padding: 3px 4px;
}
.navbar-inverse .navbar-nav > .open > .dropdown-menu > li > a {
  color: #e1e4e7;
  border-radius: 0px;
  padding: 6px 9px;
}
.navbar-inverse .navbar-nav > .open > .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav > .open > .dropdown-menu > li > a:focus {
  color: white;
  background-color: #1abc9c;
}
.navbar-inverse .navbar-nav > .open > .dropdown-menu > .divider {
  background-color: #2f4154;
  height: 2px;
  margin-left: -4px;
  margin-right: -4px;
}
@media (max-width: 767px) {
  .navbar-inverse .navbar-nav > li > a {
    border-left-width: 0;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: white;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #1abc9c;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: white;
    background-color: #1abc9c;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444444;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .dropdown-menu .divider {
    background-color: #2f4154;
  }
}
.navbar-inverse .navbar-form .form-control {
  color: #536a81;
  border-color: transparent;
  background-color: #293a4a;
}
.navbar-inverse .navbar-form .form-control::-moz-placeholder {
  color: #536a81;
  opacity: 1;
}
.navbar-inverse .navbar-form .form-control:-ms-input-placeholder {
  color: #536a81;
}
.navbar-inverse .navbar-form .form-control::-webkit-input-placeholder {
  color: #536a81;
}
.navbar-inverse .navbar-form .form-control:focus {
  border-color: #1abc9c;
  color: #1abc9c;
}
.navbar-inverse .navbar-form .btn {
  color: white;
  background-color: #1abc9c;
}
.navbar-inverse .navbar-form .btn:hover,
.navbar-inverse .navbar-form .btn.hover,
.navbar-inverse .navbar-form .btn:focus,
.navbar-inverse .navbar-form .btn:active,
.navbar-inverse .navbar-form .btn.active,
.open > .dropdown-toggle.navbar-inverse .navbar-form .btn {
  color: white;
  background-color: #48c9b0;
  border-color: #48c9b0;
}
.navbar-inverse .navbar-form .btn:active,
.navbar-inverse .navbar-form .btn.active,
.open > .dropdown-toggle.navbar-inverse .navbar-form .btn {
  background: #16a085;
  border-color: #16a085;
}
.navbar-inverse .navbar-form .btn.disabled,
.navbar-inverse .navbar-form .btn[disabled],
fieldset[disabled] .navbar-inverse .navbar-form .btn,
.navbar-inverse .navbar-form .btn.disabled:hover,
.navbar-inverse .navbar-form .btn[disabled]:hover,
fieldset[disabled] .navbar-inverse .navbar-form .btn:hover,
.navbar-inverse .navbar-form .btn.disabled.hover,
.navbar-inverse .navbar-form .btn[disabled].hover,
fieldset[disabled] .navbar-inverse .navbar-form .btn.hover,
.navbar-inverse .navbar-form .btn.disabled:focus,
.navbar-inverse .navbar-form .btn[disabled]:focus,
fieldset[disabled] .navbar-inverse .navbar-form .btn:focus,
.navbar-inverse .navbar-form .btn.disabled:active,
.navbar-inverse .navbar-form .btn[disabled]:active,
fieldset[disabled] .navbar-inverse .navbar-form .btn:active,
.navbar-inverse .navbar-form .btn.disabled.active,
.navbar-inverse .navbar-form .btn[disabled].active,
fieldset[disabled] .navbar-inverse .navbar-form .btn.active {
  background-color: #aed8d0;
  border-color: #1abc9c;
}
.navbar-inverse .navbar-form .btn .badge {
  color: #1abc9c;
  background-color: white;
}
.navbar-inverse .navbar-form .input-group-btn .btn {
  border-color: transparent;
  background-color: #293a4a;
  color: #526a82;
}
.navbar-inverse .navbar-form .input-group.focus .form-control,
.navbar-inverse .navbar-form .input-group.focus .input-group-btn .btn {
  border-color: #1abc9c;
  color: #1abc9c;
}
@media (max-width: 767px) {
  .navbar-inverse .navbar-form {
    border-color: #2f4154;
    border-width: 2px 0;
  }
}
.navbar-inverse .navbar-text {
  color: white;
}
.navbar-inverse .navbar-text a {
  color: white;
}
.navbar-inverse .navbar-text a:hover,
.navbar-inverse .navbar-text a:focus {
  color: #1abc9c;
}
.navbar-inverse .navbar-btn {
  color: white;
  background-color: #1abc9c;
}
.navbar-inverse .navbar-btn:hover,
.navbar-inverse .navbar-btn.hover,
.navbar-inverse .navbar-btn:focus,
.navbar-inverse .navbar-btn:active,
.navbar-inverse .navbar-btn.active,
.open > .dropdown-toggle.navbar-inverse .navbar-btn {
  color: white;
  background-color: #48c9b0;
  border-color: #48c9b0;
}
.navbar-inverse .navbar-btn:active,
.navbar-inverse .navbar-btn.active,
.open > .dropdown-toggle.navbar-inverse .navbar-btn {
  background: #16a085;
  border-color: #16a085;
}
.navbar-inverse .navbar-btn.disabled,
.navbar-inverse .navbar-btn[disabled],
fieldset[disabled] .navbar-inverse .navbar-btn,
.navbar-inverse .navbar-btn.disabled:hover,
.navbar-inverse .navbar-btn[disabled]:hover,
fieldset[disabled] .navbar-inverse .navbar-btn:hover,
.navbar-inverse .navbar-btn.disabled.hover,
.navbar-inverse .navbar-btn[disabled].hover,
fieldset[disabled] .navbar-inverse .navbar-btn.hover,
.navbar-inverse .navbar-btn.disabled:focus,
.navbar-inverse .navbar-btn[disabled]:focus,
fieldset[disabled] .navbar-inverse .navbar-btn:focus,
.navbar-inverse .navbar-btn.disabled:active,
.navbar-inverse .navbar-btn[disabled]:active,
fieldset[disabled] .navbar-inverse .navbar-btn:active,
.navbar-inverse .navbar-btn.disabled.active,
.navbar-inverse .navbar-btn[disabled].active,
fieldset[disabled] .navbar-inverse .navbar-btn.active {
  background-color: #aed8d0;
  border-color: #1abc9c;
}
.navbar-inverse .navbar-btn .badge {
  color: #1abc9c;
  background-color: white;
}
@media (min-width: 768px) {
  .navbar-embossed > .navbar-collapse {
    border-radius: 0px;
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.15);
  }
  .navbar-embossed.navbar-inverse .navbar-nav .active > a,
  .navbar-embossed.navbar-inverse .navbar-nav .open > a {
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.15);
  }
}
.navbar-lg {
  min-height: 76px;
}
.navbar-lg .navbar-brand {
  line-height: 1;
  height: 76px;
  padding-top: 26px;
  padding-bottom: 26px;
}
.navbar-lg .navbar-brand > [class*="fui-"] {
  font-size: 20px;
  line-height: 1;
}
.navbar-lg .navbar-nav > li > a {
  font-size: 13px;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .navbar-lg .navbar-nav > li > a {
    padding-top: 26px;
    padding-bottom: 26px;
  }
}
.navbar-lg .navbar-toggle {
  height: 76px;
  line-height: 76px;
}
.navbar-lg .navbar-form {
  padding-top: 20.5px;
  padding-bottom: 20.5px;
}
.navbar-lg .navbar-text {
  padding-top: 26.5px;
  padding-bottom: 26.5px;
}
.navbar-lg .navbar-btn {
  margin-top: 17.5px;
  margin-bottom: 17.5px;
}
.navbar-lg .navbar-btn.btn-sm {
  margin-top: 20.5px;
  margin-bottom: 20.5px;
}
.navbar-lg .navbar-btn.btn-xs {
  margin-top: 25.5px;
  margin-bottom: 25.5px;
}


text:
package org.apereo.cas.configuration.model.support.pac4j;

import org.apereo.cas.CipherExecutor;
import org.apereo.cas.configuration.model.core.util.EncryptionJwtSigningJwtCryptographyProperties;
import org.apereo.cas.configuration.model.support.cookie.CookieProperties;
import org.apereo.cas.configuration.support.RequiresModule;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

/**
 * This is {@link Pac4jDelegatedSessionCookieProperties}.
 *
 * @author Misagh Moayyed
 * @since 5.3.0
 */
@RequiresModule(name = "cas-server-support-pac4j-webflow")
@Getter
@Setter
public class Pac4jDelegatedSessionCookieProperties extends CookieProperties {
    private static final long serialVersionUID = 7392972818105536350L;

    /**
     * Crypto settings that determine how the cookie should be signed and encrypted.
     */
    @NestedConfigurationProperty
    private EncryptionJwtSigningJwtCryptographyProperties crypto = new EncryptionJwtSigningJwtCryptographyProperties();

    public Pac4jDelegatedSessionCookieProperties() {
        super.setName("PAC4JDELSESSION");
        crypto.getEncryption().setKeySize(CipherExecutor.DEFAULT_STRINGABLE_ENCRYPTION_KEY_SIZE);
        crypto.getSigning().setKeySize(CipherExecutor.DEFAULT_STRINGABLE_SIGNING_KEY_SIZE);
    }
}

redpajama_set_name: RedPajamaGithub


text:
Metrics
=======

This section aims to be a comprehensive list of all of the stats that finagle
exposes.  The stats are organized by layer and then by class.

Some of the stats are only for clients, some only for servers, and some are for both.
Some stats are only visible when certain optional classes are used.

NB: Finagle uses RollupStatsReceiver internally, which will take stats like
"failures/twitter/TimeoutException" and roll them up, aggregating into "failures/twitter"
and also "failures".  For example, if there are 3 "failures/twitter/TimeoutException" counted,
and 4 "failures/twitter/ConnectTimeoutException", then it will cound 7 "failures/twitter".

Public
------

.. _public_stats:

These stats come from the public interface, and are the ones that you should look at first
to figure out whether a client is abusing you, or you are misusing a downstream service.
They are also useful in diagnosing what contributes to request latency.

.. include:: metrics/Public.rst

Construction
------------

.. _construction_stats:

These stats are about setting up services in finagle, and expose whether you are
having trouble making services.

.. include:: metrics/Construction.rst

Finagle
-------

.. _finagle_stats:

These metrics track various Finagle internals.

.. include:: metrics/Finagle.rst

Service Discovery
-----------------

.. _service_discovery:

These metrics track the state of name resolution and service discovery.

.. include:: metrics/ServiceDiscovery.rst

Load Balancing
--------------

.. _loadbalancer_stats:

The client stats under the `loadbalancer` scope expose the innards of
what's going on with load balancing, and the management of equivalent
groups of hosts.

.. include:: metrics/LoadBalancing.rst

Fail Fast
----------

.. _fail_fast_stats:

The client stats under the `failfast` scope give insight into how
finagle handles services where it can't make a connection.

.. include:: metrics/FailFast.rst

Failure Accrual
---------------

.. _failure_accrual_stats:

The client stats under the `failure_accrual` scope track how `FailureAccrualFactory`
manages failures.

.. include: metrics/FailureAccrual.rst

Idle Apoptosis
--------------

.. _idle_apoptosis_stats:

These client stats keep track of how frequently
:doc:`Services <ServicesAndFilters>` are closed due to prolonged idleness.

.. include:: metrics/IdleApoptosis.rst

Rate Limiting
-------------

.. _rate_limiting_stats:

These client stats show how much you're hitting your rate limit if you're using rate limiting.

.. include:: metrics/RateLimiting.rst

Pooling
-------

.. _pool_stats:

These client stats help you keep track of connection churn.

.. include:: metrics/Pooling.rst

Transport
---------

.. _transport_stats:

These metrics pertain to where the finagle abstraction ends and the bytes are sent over the wire.
Understanding these stats often requires deep knowledge of the protocol, or individual transport
(e.g. Netty) internals.

.. include:: metrics/Transport.rst

Requeues
--------

.. _requeues:

These metrics show requeues (automatic retries) by the Finagle Stack. The number of retries are
controlled by a dynamic budget.

.. include:: metrics/Requeues.rst

Mux
---

.. _mux_stats:

These stats pertain to :ref:`Mux <mux>`.

.. include:: metrics/Mux.rst

Threshold Failure Detector
--------------------------

.. _failure_detector:

The client metrics under the `mux/failuredetector` scope track the behavior of out-of-band ping
based failure detection. They only apply to the mux protocol.

.. include:: metrics/FailureDetector.rst


text:
The code displayed below will guide you to install an C# app to make thumbnail from pdf with pdf renderer sdk. ByteScout PDF Suite is the bundle that provides six different SDK libraries to work with PDF from generating rich PDF reports to extracting data from PDF documents and converting them to HTML. This bundle includes PDF (Generator) SDK, PDF Renderer SDK, PDF Extractor SDK, PDF to HTML SDK, PDF Viewer SDK and PDF Generator SDK for Javascript and you can use it to make thumbnail from pdf with pdf renderer sdk with C#.

The SDK samples given below describe how to quickly make your application do make thumbnail from pdf with pdf renderer sdk in C# with the help of ByteScout PDF Suite.  Simply copy and paste in your C# project or application you and then run your app! Applying C# application mostly includes various stages of the software development so even if the functionality works please test it with your data and the production environment.

Trial version of ByteScout PDF Suite is available for free. Source code samples are included to help you with your C# app.

## REQUEST FREE TECH SUPPORT

[Click here to get in touch](https://bytescout.zendesk.com/hc/en-us/requests/new?subject=ByteScout%20PDF%20Suite%20Question)

or just send email to [support@bytescout.com](mailto:support@bytescout.com?subject=ByteScout%20PDF%20Suite%20Question)

## ON-PREMISE OFFLINE SDK

[Get Your 60 Day Free Trial](https://bytescout.com/download/web-installer?utm_source=github-readme)
[Explore SDK Docs](https://bytescout.com/documentation/index.html?utm_source=github-readme)
[Sign Up For Online Training](https://academy.bytescout.com/)

## ON-DEMAND REST WEB API

[Get your API key](https://pdf.co/documentation/api?utm_source=github-readme)
[Explore Web API Documentation](https://pdf.co/documentation/api?utm_source=github-readme)
[Explore Web API Samples](https://github.com/bytescout/ByteScout-SDK-SourceCode/tree/master/PDF.co%20Web%20API)

## VIDEO REVIEW

[https://www.youtube.com/watch?v=NEwNs2b9YN8](https://www.youtube.com/watch?v=NEwNs2b9YN8)

<!-- code block begin -->

##### ****MakeThumbnail.NETCore.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
    <GenerateAssemblyTrademarkAttribute>false</GenerateAssemblyTrademarkAttribute>
    <GenerateAssemblyCultureAttribute>false</GenerateAssemblyCultureAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <None Include="..\..\multipage.pdf" Link="multipage.pdf">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="2.0.0" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>c:\Program Files\Bytescout PDF Renderer SDK\netcoreapp2.0\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2005.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2008.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2010.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2012.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2013.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****MakeThumbnail.VS2015.csproj:**

```
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3E7501B6-841F-47DC-A821-7B61C80D6ECC}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MakeThumbnail</RootNamespace>
    <AssemblyName>MakeThumbnail</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Bytescout.PDFRenderer, Version=6.12.0.2220, Culture=neutral, PublicKeyToken=f7dd1bd9d40a50eb, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files\Bytescout PDF Renderer SDK\net4.00\Bytescout.PDFRenderer.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="..\..\multipage.pdf">
      <Link>multipage.pdf</Link>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
```

<!-- code block end -->

<!-- code block begin -->

##### ****Program.cs:**

```
using System.Drawing;
using System.Diagnostics;
using Bytescout.PDFRenderer;

namespace MakeThumbnail
{
    static class Program
    {
        static void Main()
        {
            // Create an instance of Bytescout.PDFRenderer.RasterRenderer object and register it
            RasterRenderer renderer = new RasterRenderer();
            renderer.RegistrationName = "demo";
            renderer.RegistrationKey = "demo";

            // Load PDF document
            renderer.LoadDocumentFromFile("multipage.pdf");

            // Get size of the page in Points (standard PDF document units; 1 Point = 1/72")
            RectangleF rectangle = renderer.GetPageRectangle(0);

            int width, height;

            if (rectangle.Width < rectangle.Height) // portrait page orientation
            {
                width = -1; // width will be calculated from height keeping the aspect ratio
                height = 100;
            }
            else // landscape page orientation
            {
                width = 100;
                height = -1; // height will be calculated from width keeping the aspect ratio
            }

            // Render first page of the document to JPEG image file
            renderer.Save("thumbnail.jpg", RasterImageFormat.JPEG, 0, width, height);

            // Cleanup
            renderer.Dispose();

            // Open result document in default associated application (for demo purpose)
            ProcessStartInfo processStartInfo = new ProcessStartInfo("thumbnail.jpg");
            processStartInfo.UseShellExecute = true;
            Process.Start(processStartInfo);
        }
    }
}

```

<!-- code block end -->


text:
package io.joynr.messaging.routing;

import java.text.DateFormat;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

import javax.inject.Inject;
import javax.inject.Singleton;

import com.google.inject.name.Named;
import io.joynr.exceptions.JoynrDelayMessageException;
import io.joynr.exceptions.JoynrMessageNotSentException;
import io.joynr.exceptions.JoynrRuntimeException;
import io.joynr.exceptions.JoynrShutdownException;
import io.joynr.messaging.ConfigurableMessagingSettings;
import io.joynr.messaging.FailureAction;
import io.joynr.messaging.IMessagingMulticastSubscriber;
import io.joynr.messaging.IMessagingSkeleton;
import io.joynr.messaging.IMessagingStub;
import io.joynr.messaging.MessagingSkeletonFactory;
import io.joynr.runtime.ShutdownListener;
import io.joynr.runtime.ShutdownNotifier;
import joynr.ImmutableMessage;
import joynr.Message;
import joynr.system.RoutingTypes.Address;
import joynr.system.RoutingTypes.RoutingTypesUtil;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

abstract public class AbstractMessageRouter implements MessageRouter, ShutdownListener {
    private Logger logger = LoggerFactory.getLogger(AbstractMessageRouter.class);
    private final RoutingTable routingTable;
    private static final DateFormat DateFormatter = new SimpleDateFormat("dd/MM HH:mm:ss:sss");
    private ScheduledExecutorService scheduler;
    private long sendMsgRetryIntervalMs;
    private long routingTableGracePeriodMs;
    private long routingTableCleanupIntervalMs;
    private MessagingStubFactory messagingStubFactory;
    private final MessagingSkeletonFactory messagingSkeletonFactory;
    private AddressManager addressManager;
    protected final MulticastReceiverRegistry multicastReceiverRegistry;

    private BoundedDelayQueue<DelayableImmutableMessage> messageQueue;

    private List<ScheduledFuture<?>> workerFutures;

    @Inject
    @Singleton
    // CHECKSTYLE:OFF
    public AbstractMessageRouter(RoutingTable routingTable,
                                 @Named(SCHEDULEDTHREADPOOL) ScheduledExecutorService scheduler,
                                 @Named(ConfigurableMessagingSettings.PROPERTY_SEND_MSG_RETRY_INTERVAL_MS) long sendMsgRetryIntervalMs,
                                 @Named(ConfigurableMessagingSettings.PROPERTY_MESSAGING_MAXIMUM_PARALLEL_SENDS) int maxParallelSends,
                                 @Named(ConfigurableMessagingSettings.PROPERTY_ROUTING_TABLE_GRACE_PERIOD_MS) long routingTableGracePeriodMs,
                                 @Named(ConfigurableMessagingSettings.PROPERTY_ROUTING_TABLE_CLEANUP_INTERVAL_MS) long routingTableCleanupIntervalMs,
                                 MessagingStubFactory messagingStubFactory,
                                 MessagingSkeletonFactory messagingSkeletonFactory,
                                 AddressManager addressManager,
                                 MulticastReceiverRegistry multicastReceiverRegistry,
                                 BoundedDelayQueue<DelayableImmutableMessage> messageQueue,
                                 ShutdownNotifier shutdownNotifier) {
        // CHECKSTYLE:ON
        this.routingTable = routingTable;
        this.scheduler = scheduler;
        this.sendMsgRetryIntervalMs = sendMsgRetryIntervalMs;
        this.routingTableGracePeriodMs = routingTableGracePeriodMs;
        this.routingTableCleanupIntervalMs = routingTableCleanupIntervalMs;
        this.messagingStubFactory = messagingStubFactory;
        this.messagingSkeletonFactory = messagingSkeletonFactory;
        this.addressManager = addressManager;
        this.multicastReceiverRegistry = multicastReceiverRegistry;
        this.messageQueue = messageQueue;
        shutdownNotifier.registerForShutdown(this);
        startMessageWorkerThreads(maxParallelSends);
        startRoutingTableCleanupThread();
    }

    private void startMessageWorkerThreads(int numberOfWorkThreads) {
        workerFutures = new ArrayList<ScheduledFuture<?>>(numberOfWorkThreads);
        for (int i = 0; i < numberOfWorkThreads; i++) {
            ScheduledFuture<?> messageWorkerFuture = scheduler.schedule(new MessageWorker(i), 0, TimeUnit.MILLISECONDS);
            if (messageWorkerFuture == null) {
                logger.warn("scheduling messageWorker-" + i + "returned a null future. Cancel at shutdown not possible");
                continue;
            }
            workerFutures.add(messageWorkerFuture);
        }
    }

    private void startRoutingTableCleanupThread() {
        scheduler.scheduleWithFixedDelay(new Runnable() {
            @Override
            public void run() {
                routingTable.purge();
            }
        }, routingTableCleanupIntervalMs, routingTableCleanupIntervalMs, TimeUnit.MILLISECONDS);
    }

    @Override
    public void removeNextHop(String participantId) {
        routingTable.remove(participantId);
    }

    @Override
    public boolean resolveNextHop(String participantId) {
        return routingTable.containsKey(participantId);
    }

    @Override
    public void addMulticastReceiver(final String multicastId,
                                     String subscriberParticipantId,
                                     String providerParticipantId) {
        logger.trace("Adding multicast receiver {} for multicast {} on provider {}",
                     subscriberParticipantId,
                     multicastId,
                     providerParticipantId);
        multicastReceiverRegistry.registerMulticastReceiver(multicastId, subscriberParticipantId);
        performSubscriptionOperation(multicastId, providerParticipantId, new SubscriptionOperation() {
            @Override
            public void perform(IMessagingMulticastSubscriber messagingMulticastSubscriber) {
                messagingMulticastSubscriber.registerMulticastSubscription(multicastId);
            }
        });
    }

    @Override
    public void removeMulticastReceiver(final String multicastId,
                                        String subscriberParticipantId,
                                        String providerParticipantId) {
        multicastReceiverRegistry.unregisterMulticastReceiver(multicastId, subscriberParticipantId);
        performSubscriptionOperation(multicastId, providerParticipantId, new SubscriptionOperation() {
            @Override
            public void perform(IMessagingMulticastSubscriber messagingMulticastSubscriber) {
                messagingMulticastSubscriber.unregisterMulticastSubscription(multicastId);
            }
        });
    }

    private static interface SubscriptionOperation {
        void perform(IMessagingMulticastSubscriber messagingMulticastSubscriber);
    }

    private void performSubscriptionOperation(String multicastId,
                                              String providerParticipantId,
                                              SubscriptionOperation operation) {
        Address providerAddress = routingTable.get(providerParticipantId);
        IMessagingSkeleton messagingSkeleton = messagingSkeletonFactory.getSkeleton(providerAddress);
        if (messagingSkeleton != null && messagingSkeleton instanceof IMessagingMulticastSubscriber) {
            operation.perform((IMessagingMulticastSubscriber) messagingSkeleton);
        } else {
            logger.trace("No messaging skeleton found for address {}, not performing multicast subscription.",
                         providerAddress);
        }
    }

    @Override
    public void addNextHop(String participantId, Address address, boolean isGloballyVisible) {
        final long expiryDateMs = Long.MAX_VALUE;
        final boolean isSticky = false;
        routingTable.put(participantId, address, isGloballyVisible, expiryDateMs, isSticky);
    }

    @Override
    public void route(final ImmutableMessage message) {
        checkExpiry(message);
        registerGlobalRoutingEntryIfRequired(message);
        routeInternal(message, 0, 0);
    }

    protected void schedule(Runnable runnable, String messageId, long delay, TimeUnit timeUnit) {
        if (scheduler.isShutdown()) {
            JoynrShutdownException joynrShutdownEx = new JoynrShutdownException("MessageScheduler is shutting down already. Unable to send message [messageId: "
                    + messageId + "].");
            throw joynrShutdownEx;
        }
        scheduler.schedule(runnable, delay, timeUnit);
    }

    protected Set<Address> getAddresses(ImmutableMessage message) {
        return addressManager.getAddresses(message);
    }

    private void registerGlobalRoutingEntryIfRequired(final ImmutableMessage message) {
        if (!message.isReceivedFromGlobal()) {
            return;
        }

        String messageType = message.getType();

        if (!messageType.equals(Message.VALUE_MESSAGE_TYPE_REQUEST)
                && !messageType.equals(Message.VALUE_MESSAGE_TYPE_SUBSCRIPTION_REQUEST)
                && !messageType.equals(Message.VALUE_MESSAGE_TYPE_BROADCAST_SUBSCRIPTION_REQUEST)
                && !messageType.equals(Message.VALUE_MESSAGE_TYPE_MULTICAST_SUBSCRIPTION_REQUEST)) {
            return;
        }

        String replyTo = message.getReplyTo();
        if (replyTo != null && !replyTo.isEmpty()) {
            Address address = RoutingTypesUtil.fromAddressString(replyTo);

            // If the message was received from global, the sender is globally visible by definition.
            final boolean isGloballyVisible = true;

            long expiryDateMs;
            try {
                expiryDateMs = Math.addExact(message.getTtlMs(), routingTableGracePeriodMs);
            } catch (ArithmeticException e) {
                expiryDateMs = Long.MAX_VALUE;
            }

            final boolean isSticky = false;
            routingTable.put(message.getSender(), address, isGloballyVisible, expiryDateMs, isSticky);
        }
    }

    private void routeInternal(final ImmutableMessage message, final long delayMs, final int retriesCount) {
        logger.trace("Scheduling {} with delay {} and retries {}", new Object[]{ message, delayMs, retriesCount });
        DelayableImmutableMessage delayableMessage = new DelayableImmutableMessage(message, delayMs, retriesCount);
        try {
            messageQueue.putBounded(delayableMessage);
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            throw new JoynrShutdownException("INTERRUPTED. Shutting down");
        }
    }

    private void checkExpiry(final ImmutableMessage message) {
        if (!message.isTtlAbsolute()) {
            throw new JoynrRuntimeException("Relative ttl not supported");
        }

        long currentTimeMillis = System.currentTimeMillis();
        long ttlExpirationDateMs = message.getTtlMs();

        if (ttlExpirationDateMs <= currentTimeMillis) {
            String errorMessage = MessageFormat.format("ttl must be greater than 0 / ttl timestamp must be in the future: now: {0} abs_ttl: {1}",
                                                       currentTimeMillis,
                                                       ttlExpirationDateMs);
            logger.error(errorMessage);
            throw new JoynrMessageNotSentException(errorMessage);
        }
    }

    private FailureAction createFailureAction(final ImmutableMessage message, final int retriesCount) {
        final FailureAction failureAction = new FailureAction() {
            final String messageId = message.getId();

            @Override
            public void execute(Throwable error) {
                if (error instanceof JoynrShutdownException) {
                    logger.warn("{}", error.getMessage());
                    return;
                } else if (error instanceof JoynrMessageNotSentException) {
                    logger.error(" ERROR SENDING:  aborting send of messageId: {}. Error: {}", new Object[]{ messageId,
                            error.getMessage() });
                    return;
                }
                logger.warn("PROBLEM SENDING, will retry. messageId: {}. Error: {} Message: {}", new Object[]{
                        messageId, error.getClass().getName(), error.getMessage() });

                long delayMs;
                if (error instanceof JoynrDelayMessageException) {
                    delayMs = ((JoynrDelayMessageException) error).getDelayMs();
                } else {
                    delayMs = createDelayWithExponentialBackoff(sendMsgRetryIntervalMs, retriesCount);
                }

                logger.error("Rescheduling messageId: {} with delay " + delayMs + " ms, TTL is: {} ms",
                             messageId,
                             DateFormatter.format(message.getTtlMs()));
                routeInternal(message, delayMs, retriesCount + 1);
                return;
            }
        };
        return failureAction;
    }

    @Override
    public void shutdown() {
        for (ScheduledFuture<?> workerFuture : workerFutures) {
            workerFuture.cancel(true);
        }
    }

    private long createDelayWithExponentialBackoff(long delayMs, int retries) {
        logger.trace("TRIES: " + retries);
        long millis = delayMs + (long) ((2 ^ (retries)) * delayMs * Math.random());
        logger.trace("MILLIS: " + millis);
        return millis;
    }

    class MessageWorker implements Runnable {
        private int number;

        public MessageWorker(int number) {
            this.number = number;
        }

        @Override
        public void run() {
            while (!Thread.interrupted()) {
                Thread.currentThread().setName("joynrMessageWorker-" + number);
                ImmutableMessage message = null;
                DelayableImmutableMessage delayableMessage;
                int retriesCount = 0;
                try {
                    delayableMessage = messageQueue.take();
                    retriesCount = delayableMessage.getRetriesCount();
                    message = delayableMessage.getMessage();
                    logger.trace("Starting processing of message {}", message);
                    checkExpiry(message);

                    Set<Address> addresses = getAddresses(message);
                    if (addresses.isEmpty()) {
                        throw new JoynrMessageNotSentException("Failed to send Request: No route for given participantId: "
                                + message.getRecipient());
                    }
                    for (Address address : addresses) {
                        logger.trace(">>>>> SEND  {} to address {}", message, address);

                        IMessagingStub messagingStub = messagingStubFactory.create(address);
                        messagingStub.transmit(message, createFailureAction(message, retriesCount));
                    }
                } catch (InterruptedException e) {
                    logger.trace("Message Worker interrupted. Stopping.");
                    Thread.currentThread().interrupt();
                    return;
                } catch (Exception error) {
                    logger.error("error in scheduled message router thread: {}", error.getMessage());
                    FailureAction failureAction = createFailureAction(message, retriesCount);
                    failureAction.execute(error);
                }
            }
        }
    }
}


text:
Remove READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE from AndroidManifest.xml.

See https://software.intel.com/en-us/xdk/faqs/general Q14.


text:
import menuBarItems from './menuBarItems'
import MenuScope from 'commons/Menu/state'
import { autorun } from 'mobx'
import { observable } from 'mobx'

const { state, MenuItem } = MenuScope(menuBarItems)

autorun(() => {
  state.items = observable.shallowArray(menuBarItems.map((opts) => {
    return new MenuItem(opts)
  }))
})

export default state


text:
package com.github.wuic.engine.setter;

import com.github.wuic.ApplicationConfig;
import com.github.wuic.engine.AbstractEngineBuilder;
import com.github.wuic.util.PropertySetter;

/**
 *

 * Setter for the {@link com.github.wuic.ApplicationConfig#LINE_BREAK_POS} property.
 *

 *
 * @author Guillaume DROUET
 * @version 1.0
 * @since 0.4.0
 */
public class LineBreakPosPropertySetter extends PropertySetter.PropertySetterOfInteger {

    /**
     *

     * Creates a new instance with a specific default value.
     *

     *
     * @param b the {@link com.github.wuic.engine.AbstractEngineBuilder} which needs to be configured
     * @param defaultValue the default value
     */
    public LineBreakPosPropertySetter(final AbstractEngineBuilder b, final Object defaultValue) {
        super(b, defaultValue);
    }

    /**
     *

     * Creates a new instance.
     *

     *
     * @param b the {@link com.github.wuic.engine.AbstractEngineBuilder} which needs to be configured
     */
    public LineBreakPosPropertySetter(final AbstractEngineBuilder b) {
        this(b, -1);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String getPropertyKey() {
        return ApplicationConfig.LINE_BREAK_POS;
    }
}