/**
 * @package 	WordPress
 * @subpackage 	Salvation
 * @version		1.0.6
 * 
 * Design CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------

	1.	Globally Applied Styles / body
		1.1. Instagram / #sbi_load
		1.2. Icons
			1.2.1. Global
			1.2.2. Arrows
			1.2.3. Widget Add Info
			1.2.4. Twitter stripe
		1.3. Elements
			1.3.1. Icon Arrow Global Styles
			1.3.2. Pixel Arrow Global Styles
			1.3.3. Post Password Form / .post-password-form
			1.3.4. Prelodaer / .preloader
			1.3.5. Resizable Block / .resizable_block
			1.3.6. Img Wrapper / .cmsmasters_img_wrap
			1.3.7. Img Rollover / .cmsmasters_img_rollover_wrap
			1.3.8. Placeholder Small / .img_placeholder_small
			1.3.9. Video Wrapper / .mejs-container
			1.3.10. Search Bar / .search_bar_wrap
			1.3.10. Social Icons / .social_wrap
			1.3.11. Core Owl Carousel CSS v1.3.2 / .owl-carousel
			1.3.12. Slide Top Button / #slide_top
			1.3.13. Opened Article / .opened-article
			1.3.14. Likes and Comments
				1.3.14.1. Likes / .cmsmasters_likes
				1.3.14.2. Comments / .cmsmasters_comments
			1.3.15. Button
			1.3.16. Items Filter / .cmsmasters_items_filter_wrap
			1.3.17. More Items Loader and Pagination
				1.3.17.1. More Items Loader / .cmsmasters_wrap_more_items
				1.3.17.2. Subpage Pagination / .subpage_nav
				1.3.17.2. Pagination / .cmsmasters_wrap_pagination
			1.3.18. Post Navigation / .post_nav
			1.3.19. Share Posts / .share_posts
			1.3.20. About Author / .about_author
			1.3.21. Single Post Slider / .cmsmasters_single_slider
			1.3.22. Single Pings List / .cmsmasters_pings_list
			1.3.23. Post Comments / .post_comments
			1.3.24. Comment Respond / .comment-respond
	2.	Header / #header
		2.1. Header Top / .header_top
			2.1.1. Header Top Navigation / .top_line_nav
		2.2. Header Mid / .header_mid
			2.1.1. Header Mid Navigation / .mid_nav
		2.3. Header Bot / .header_bot
			2.1.1. Header Bot Navigation / .bot_nav
		2.4. Header Search Form
	3.	Headline Styles
	4.	Bottom + Footer Styles
		4.1. Bottom / #bottom
		4.2. Footer / #footer
			4.2.1. Footer Default / .cmsmasters_footer_default
			4.2.2. Footer Small / .cmsmasters_footer_small
	5.	Blog / .blog
		5.1. Blog Default / .cmsmasters_post_default
		5.2. Blog Masonry / .cmsmasters_post_masonry
		5.3. Blog Timeline / .cmsmasters_post_timeline
		5.4. Blog Post / .cmsmasters_open_post
	6.	Portfolio / .portfolio
		6.1. Portfolio Grid / .cmsmasters_project_grid
		6.2. Portfolio Puzzle / .cmsmasters_project_puzzle
		6.3. Portfolio Open Project / .cmsmasters_open_project
	7.	Posts Slider Styles / .cmsmasters_posts_slider
		7.1. Posts Slider Blog / .cmsmasters_slider_post
		7.2. Posts Slider Portfolio / .cmsmasters_slider_project
	8.	Profiles + Profile Styles / .cmsmasters_profile
		8.1. Profiles Horizontal / .cmsmasters_profile_horizontal
		8.2. Profiles Vertical / .cmsmasters_profile_vertical
		8.3. Profiles Open Profile / .cmsmasters_open_profile
	9.	Shortcodes Styles
		9.1. Divider / .cmsmasters_divider
		9.2. Special Heading / .cmsmasters_heading_wrap
		9.3. Featured Block / .cmsmasters_featured_block
		9.4. Table / .cmsmasters_table
		9.5. Notice / .cmsmasters_notice
		9.6. Icon / .cmsmasters_icon_wrap
		9.7. Icon List / .cmsmasters_icon_list_items
		9.8. Icon Box / .cmsmasters_icon_box
		9.9. Toggles / .cmsmasters_toggles
		9.10. Tabs / .cmsmasters_tabs
		9.11. Stats / .cmsmasters_stats
		9.12. Counters / .cmsmasters_counters
		9.13. CMSMASTERS Button / .cmsmasters_button
		9.14. Contact Form 7 / .wpcf7-form
		9.15. Hover slider / .cmsmasters_hover_slider
		9.16. Content slider / .cmsmasters_content_slider
		9.17. Gallery / .cmsmasters_gallery
		9.18. Quotes / .cmsmasters_quotes_slider
		9.19. Pricing tables / .cmsmasters_pricing_table
		9.20. Google Maps / .google_map
		9.21. Caption / .cmsmasters_img
		9.22. WP Gallery / .gallery
		9.23. Sidebar / .cmsmasters_sidebar
		9.24. Share / .share_wrap
		9.25. Twitter Stripe / .cmsmasters_twitter_wrap
		9.26. Dropcap / .cmsmasters_dropcap
		9.27. Clients / .cmsmasters_clients_slider
	10.	Widgets Styles / .widget
		10.1. Widget Advertisement / .widget_custom_advertisement_entries
		10.2. Widget Lists
			10.2.1. Widget Pages / .widget_pages
			10.2.2. Widget Categories / .widget_categories
			10.2.3. Widget Archive / .widget_archive
			10.2.4. Widget Meta / .widget_meta
			10.2.5. Widget Recent Comments / .widget_recent_comments
			10.2.6. Widget Recent Entries / .widget_recent_entries
		10.3. Widget Calendar / #wp-calendar
		10.4. Widget Contact Form / .widget_custom_contact_form_entries
		10.5. Widget Contact Info / .widget_custom_contact_info_entries
		10.6. Widget Custom Menu / .widget_nav_menu
		10.7. Widget Facebook / .widget_custom_facebook_entries
		10.8. Widget Flickr / .widget_custom_flickr_entries
		10.9. Widget Latest and Popular Projects
			10.9.1. Widget Latest Projects / .widget_custom_popular_projects_entries
			10.9.2. Widget Popular Projects / .widget_custom_latest_projects_entries
		10.10. Widget Posts Tabs / .widget_custom_posts_tabs_entries
		10.11. Widget RSS / .widget_rss
		10.12. Widget Tag Cloud / .widget_tag_cloud
		10.13. Widget Twitter / .widget_custom_twitter_entries
	11. Search + Archives + Sitemap + Error + Other Styles
		11.1. Archives + Search
			11.1.1. Archives / .cmsmasters_archive
			11.1.2. Search / .cmsmasters_search
		11.2. Sitemap / .cmsmasters_sitemap_wrap
		11.3. Error / .error
		11.4. Attachment Page / .cmsmasters_attach_img
		11.5. Other
	12.	Contact Forms Styles
		12.1. Form Builder / .cmsmasters-form-builder
		12.2. Contact Form 7 / .wpcf7
	13.	CSS3 Animations / .csstransitions
		13.1. Custom Animations
		13.2. Global Animations

-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* Globally Applied Styles
/*-------------------------------------------------------------------------*/
body {
  text-align: left;
}
pre {
  margin-bottom: 10px;
}
div {
  text-align: left;
}
p {
  padding: 0 0 22px;
  margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0 0 22px;
  letter-spacing: -0.5px;
}
h1,
h2,
h3,
h5 {
  letter-spacing: -1px;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
}
ul,
ol {
  list-style-position: inside;
  margin-bottom: 22px;
}
ul {
  list-style-type: none;
}
ul > li {
  display: block;
  position: relative;
}
ul > li:before {
  content: '\eb22';
  font-family: 'fontello';
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  padding: 0;
  margin: 0 5px 0 0;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  position: relative;
}
ol {
  list-style-type: decimal-leading-zero;
}
ul li,
ol li {
  padding: 10px 0 0;
}
ul li:first-child,
ol li:first-child {
  padding-top: 0;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin: 0 0 0 20px;
  padding: 10px 0 0;
}
.esg-grid ul {
  padding: 0;
  margin: 0;
}
.esg-grid ul li:before {
  display: none;
}
iframe {
  margin-bottom: 22px;
}
address {
  margin: 0 0 22px;
}
pre {
  margin: 0 0 22px;
}
dd {
  margin: 0 0 22px;
}
blockquote {
  position: relative;
  padding-left: 53px;
  margin: 0 0 22px;
  /* don't touch */
  border-width: 0;
  border-style: solid;
}
blockquote:before {
  content: '\201D';
  position: absolute;
  left: 0;
  top: 0;
  font-size: 50px;
  line-height: 50px;
}
blockquote p:last-of-type {
  padding-bottom: 0;
  margin-bottom: 0;
}
blockquote cite {
  display: block;
  margin-top: 10px;
}
table {
  width: 100%;
  margin-bottom: 22px;
  border-spacing: 0;
  border-collapse: collapse;
  /* for gutenberg start */
  /* for gutenberg end */
}
table th,
table td {
  padding: 10px;
  border-width: 1px;
  border-style: solid;
}
table caption {
  text-align: center;
  padding: 20px;
}
table.is-style-stripes {
  border-collapse: collapse;
  border-width: 0;
  border-style: solid;
}
table.is-style-stripes tr:nth-child(odd) {
  background-color: transparent !important;
}
.pls-container,
.pls-container table,
.cmsmasters_table,
.tribe-mini-calendar,
.tribe-events-calendar,
.shop_table,
.group_table,
.variations,
.shop_attributes {
  border-collapse: collapse;
  border-spacing: 0;
  vertical-align: middle;
}
input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
textarea,
select,
option {
  padding: 10px 15px;
  max-width: 100%;
  border-width: 1px;
  border-style: solid;
}
input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
input[type=hidden],
textarea,
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]) {
  height: 42px;
}
input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]):focus,
textarea:focus {
  outline: none;
}
input[type=submit],
input[type=button],
button {
  max-width: 100%;
  cursor: pointer;
}
input[type=submit][disabled],
input[type=button][disabled],
button[disabled] {
  opacity: 0.5;
}
textarea {
  overflow: auto;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
select[multiple] option {
  padding-left: 0;
  padding-right: 0;
  background: none !important;
}
select::-ms-expand {
  display: none;
}
input[type=text],
input[type=search],
input[type=password],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
input[type=date],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input[type="date"]::-webkit-clear-button {
  display: none;
}
input[type="date"]::-webkit-inner-spin-button {
  display: none;
}
.jetpack_subscription_widget #subscribe-email input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.widget_wysija input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
div.mailpoet_form input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]) {
  width: 100% !important;
  padding: 10px !important;
}
.widget_wysija_cont .wysija-submit,
div.mailpoet_form .mailpoet_submit {
  display: inline-block !important;
  margin: 0 !important;
}
.single.single-wysijap .cmsmasters_open_post > * {
  display: none;
}
.single.single-wysijap .cmsmasters_open_post .cmsmasters_post_content {
  display: block;
}
.gform_wrapper input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.gform_wrapper textarea {
  padding: 10px !important;
}
.gform_wrapper select {
  padding: 10px !important;
  margin: 0 !important;
}
nav {
  display: block;
  height: 100%;
  position: relative;
}
nav ul {
  /* clear ul styles */
  margin: 0;
  padding: 0;
}
nav ul:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
nav ul li {
  margin: 0;
  padding: 0;
}
nav ul li:before {
  display: none;
}
nav > div {
  height: 100%;
}
nav > div:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
nav > div > ul {
  list-style: none;
  display: inline-block;
  width: 100%;
  height: 100%;
  vertical-align: middle;
  position: relative;
  z-index: 202;
  zoom: 1;
}
nav > div > ul ul {
  list-style: none;
  width: 184px;
  margin: 20px 0 0;
  padding: 10px 0 10px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
  border-width: 1px;
  border-style: solid;
}
.header_top nav > div > ul ul {
  width: 126px;
  margin: 20px 0 0;
  padding: 10px 0 10px;
}
.header_bot nav > div > ul ul {
  width: 184px;
  margin: 20px 0 0;
  padding: 10px 10px 10px;
}
nav > div > ul ul ul {
  margin: 0 0 0 20px;
  left: 100%;
  top: -11px;
}
.header_top nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -11px;
}
.header_bot nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -11px;
}
nav > div > ul li.menu-item-dropdown-right {
  text-align: right;
}
nav > div > ul li.menu-item-dropdown-right * {
  text-align: right;
}
nav > div > ul li.menu-item-dropdown-right > ul {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 20px 0 0;
  left: auto;
  right: 100%;
}
.header_bot nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 20px 0 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container ul {
  right: auto;
}
nav > div > ul li:hover > ul {
  margin: 0;
  visibility: visible;
  opacity: 1;
}
.header_top nav > div > ul li:hover > ul {
  margin: 1px 0 0;
}
.header_bot nav > div > ul li:hover > ul {
  margin: 1px 0 0;
}
nav > div > ul li:hover > ul:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: -2px;
}
.header_top nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 1px;
  top: -2px;
}
.header_bot nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 1px;
  top: -2px;
}
nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0;
  visibility: visible;
  opacity: 1;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 1px 0 0;
}
nav > div > ul li:hover > div.menu-item-mega-container:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: -2px;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container:before {
  width: 100%;
  height: 1px;
  top: -2px;
}
nav > div > ul li:hover > div.menu-item-mega-container ul {
  visibility: visible;
  opacity: 1;
}
nav > div > ul li li:hover > ul {
  margin: 0 0 0 12px;
}
.header_top nav > div > ul li li:hover > ul {
  margin: 0 0 0 1px;
}
.header_bot nav > div > ul li li:hover > ul {
  margin: 0 0 0 12px;
}
nav > div > ul li li:hover > ul:before {
  width: 12px;
  height: 100%;
  top: 0;
  left: -13px;
}
.header_top nav > div > ul li li:hover > ul:before {
  width: 1px;
  height: 100%;
  left: -2px;
}
.header_bot nav > div > ul li li:hover > ul:before {
  width: 12px;
  height: 100%;
  left: -13px;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 12px 0 0;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 12px 0 0;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  left: auto;
  right: -13px;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  right: -13px;
}
nav > div > ul li {
  display: block;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 203;
}
nav > div > ul li:hover {
  z-index: 204;
}
nav > div > ul a {
  display: block;
  position: relative;
  z-index: 204;
}
nav > div > ul .menu-item-mega-description-container {
  display: block;
  padding: 10px 15px;
  overflow: hidden;
}
nav > div > ul .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .nav_title[class*=" cmsmasters-icon-"]:before {
  margin: 0 0.5em 0 0;
}
nav > div > ul .menu-item-hide-text > a .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .menu-item-hide-text > a .nav_title[class*=" cmsmasters-icon-"]:before {
  margin: 0 0.3em;
}
nav > div > ul .menu-item-hide-text:not(.menu-item-icon) > a {
  display: none;
}
nav > div > ul > li {
  float: left;
}
nav > div > ul > li li {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
nav > div > ul > li li:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul li.menu-item-mega ul {
  background-color: transparent;
  border: 0;
  width: auto;
  margin: 0;
  padding: 0;
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  z-index: 203;
}
nav > div > ul div.menu-item-mega-container {
  display: block;
  width: auto;
  margin: 20px 0 0;
  padding: 12px 0;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
  border-width: 1px;
  border-style: solid;
}
.header_bot nav > div > ul div.menu-item-mega-container {
  margin: 20px 0 0;
}
nav > div > ul div.menu-item-mega-container > ul {
  display: table;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li {
  display: table-cell;
  padding: 0 5px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > a:not([href]) {
  background: none;
}
nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 184px;
  margin: 0;
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 184px;
}
nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  margin: 0;
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  margin: 0;
  padding: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li a:empty {
  padding: 0;
  margin: 0;
}
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li a,
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li ul {
  width: auto;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-two > div.menu-item-mega-container > ul > li {
  width: 50%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-three > div.menu-item-mega-container > ul > li {
  width: 33.33%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-four > div.menu-item-mega-container > ul > li {
  width: 25%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-five > div.menu-item-mega-container > ul > li {
  width: 20%;
}
.full-width {
  min-width: 100%;
}
audio.full-width {
  width: 100%;
}
.alignleft,
.fl {
  float: left;
}
.alignright,
.fr {
  float: right;
}
.aligncenter {
  text-align: center;
}
.aligncenter,
.alignnone {
  clear: both;
}
img.alignleft,
img.fl {
  margin-right: 1rem;
  margin-bottom: 22px;
}
img.alignright,
img.fr {
  margin-left: 1rem;
  margin-bottom: 22px;
}
img.aligncenter {
  margin: 0 auto 22px;
  display: block;
}
img.alignnone {
  margin-bottom: 22px;
}
.dn {
  display: none;
}
.tal,
.ta_left {
  text-align: left;
}
.tac,
.ta_center {
  text-align: center;
}
.tar,
.ta_right {
  text-align: right;
}
.cl,
.clear {
  display: block;
  clear: both;
}
.ovh {
  overflow: hidden;
}
.low_case {
  text-transform: lowercase;
}
.up_case {
  text-transform: uppercase;
}
.cmsmasters_responsive_width {
  display: block;
  width: auto;
  visibility: hidden;
}
.cmsmasters_column {
  position: relative;
  min-height: 1px;
}
.cmsmasters_column_sticky {
  position: relative;
  top: 0;
}
.cmsmasters_column_inner {
  width: 100%;
  position: relative;
  min-height: 1px;
}
.one_first,
.one_half,
.one_third,
.two_third,
.one_fourth,
.three_fourth,
.one_fifth,
.one_sixth {
  margin: 0 1.7%;
  position: relative;
  float: left;
}
.one_sixth {
  width: 13.27%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_sixth {
  width: 16.67%;
}
.one_fifth {
  width: 16.6%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fifth {
  width: 20%;
}
.one_fourth {
  width: 21.6%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fourth {
  width: 25%;
}
.one_third {
  width: 29.93%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_third {
  width: 33.33%;
}
.one_half {
  width: 46.6%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_half {
  width: 50%;
}
.two_third {
  width: 63.27%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .two_third {
  width: 66.67%;
}
.three_fourth {
  width: 71.6%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .three_fourth {
  width: 75%;
}
.one_first {
  width: 96.6%;
  float: none;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_first {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior.cmsmasters_131313 {
  width: 99.99%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  height: 100%;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > div {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: 100%;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  min-width: 100%;
  height: auto;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: auto;
}
[data-animation] {
  opacity: 0;
}
[data-animation].animated {
  opacity: 1;
}
#page.cmsmasters_boxed {
  width: 1000px;
  margin: 0 auto;
}
#page.cmsmasters_boxed #header,
#page.cmsmasters_boxed #footer {
  width: 1000px;
}
#page.cmsmasters_liquid #header {
  padding: 0 30px;
}
#page.cmsmasters_liquid #middle {
  padding: 0 30px;
}
#page.cmsmasters_liquid #bottom {
  margin: 0 30px;
  width: auto;
}
#page.cmsmasters_liquid #footer {
  margin: 0 30px 35px;
  width: auto;
}
#page,
#main,
#middle,
.middle_content,
#bottom,
#footer,
.headline,
.headline_outer,
.middle_inner,
.cmsmasters_row,
.cmsmasters_row_outer,
.cmsmasters_row_outer_parent {
  width: 100%;
  position: relative;
}
.middle_content {
  padding: 40px 0 0;
}
.middle_content:empty {
  display: none;
}
.post-password-form,
.header_top_inner,
.header_mid_inner,
.header_bot_inner,
.content_wrap,
.headline_inner,
.bottom_outer,
.footer_inner,
.cmsmasters_row_inner {
  position: relative;
  width: 980px;
  padding: 0 20px;
  margin: 0 auto;
}
.content_wrap .post-password-form {
  width: auto;
  padding: 0;
}
.cmsmasters_row.cmsmasters_row_top_default.cmsmasters_row_bot_default {
  z-index: 0;
}
.cmsmasters_row.cmsmasters_row_top_left_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
}
.cmsmasters_row.cmsmasters_row_top_right_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
}
.cmsmasters_row.cmsmasters_row_top_zigzag:before,
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  content: '';
  background-size: 10px 5px;
  height: 5px;
  width: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 100%;
  z-index: 1;
}
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  top: 100%;
  bottom: auto;
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cmsmasters_row.cmsmasters_row_top_triangle:before,
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  content: '';
  background-color: inherit;
  z-index: 1;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -15px;
  bottom: auto;
}
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  top: auto;
  bottom: -15px;
}
.cmsmasters_row .cmsmasters_row_outer_parent {
  padding: 0.1px 0;
  z-index: 2;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_fullwidth {
  width: 100%;
  padding: 0 40px;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin > .cmsmasters_column {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.cmsmasters_row_margin {
  margin: 0 -1.77%;
  position: relative;
}
.content_wrap.r_sidebar .cmsmasters_row,
.content_wrap.l_sidebar .cmsmasters_row,
.content_wrap .opened-article .cmsmasters_row,
.content_wrap .cmsmasters_tabs .cmsmasters_row {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.content_wrap.r_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap.l_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .opened-article .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .cmsmasters_tabs .cmsmasters_row .cmsmasters_row_inner {
  width: 100%;
  padding: 0;
}
.content_wrap.cmsmasters_set_fullwidth {
  width: 100%;
  padding: 0;
}
#page:after,
#middle:after,
.middle_inner:after,
.middle_content:after,
#bottom:after,
.bottom_bg:after,
.content_wrap:after,
.cmsmasters_row_inner:after,
.cmsmasters_row_margin:after,
.cmsmasters_column_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
#middle {
  z-index: 1;
}
.content {
  width: 74%;
  padding: 60px 0;
  position: relative;
  float: left;
}
.content.fr {
  float: right;
}
.sidebar {
  width: 26%;
  padding: 60px 0 60px 40px;
  position: relative;
  float: right;
}
.sidebar.fl {
  padding: 60px 40px 60px 0;
  float: left;
}
.sidebar .widget {
  border-bottom-width: 1px;
  border-bottom-style: solid;
  padding-bottom: 30px;
  margin-bottom: 35px;
}
.sidebar .widget:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
  margin-bottom: 0;
  padding-bottom: 0;
}
.bottom_bg {
  padding-top: 50px;
  padding-bottom: 28px;
}
.bottom_inner {
  margin: 0 -1.7%;
}
.bottom_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.bottom_inner aside {
  position: relative;
  float: left;
  margin: 0 1.7%;
}
/* Instagram */
#sbi_load {
  padding-top: 0 !important;
}
/***************** Icons ******************/
/* Global */
.cmsmasters_theme_icon_post_link:before {
  content: '\e84b';
}
.cmsmasters_theme_icon_comment:before {
  content: '\e87c';
}
.cmsmasters_theme_icon_like:before {
  content: '\e889';
}
.cmsmasters_theme_icon_search:before {
  content: '\e88f';
}
.cmsmasters_theme_icon_cancel:before {
  content: '\eabc';
}
.cmsmasters_theme_icon_resp_nav:before {
  content: '\e925';
}
.cmsmasters_theme_icon_person:before {
  content: '\e813';
}
.cmsmasters_theme_icon_image:before {
  content: '\e831';
}
.cmsmasters_theme_icon_check:before {
  content: '\eabb';
}
.cmsmasters_theme_icon_date:before {
  content: '\eb04';
}
.cmsmasters_theme_icon_time:before {
  content: '\e880';
}
.cmsmasters_theme_icon_money:before {
  content: '\e829';
}
.cmsmasters_theme_icon_spinner:before {
  content: '\e9fd';
}
/* Arrows */
.cmsmasters_theme_icon_slide_top:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_theme_icon_comments_nav_prev:before,
.cmsmasters_theme_icon_pagination_prev:before {
  content: '\eb21';
}
.cmsmasters_theme_icon_slide_next:before,
.cmsmasters_theme_icon_comments_nav_next:before,
.cmsmasters_theme_icon_pagination_next:before {
  content: '\eb22';
}
.cmsmasters_theme_custom_icon_slide_top:before {
  content: '\e803';
}
.cmsmasters_theme_icon_slide_bottom:before {
  content: '\eb20';
}
.cmsmasters_theme_icon_resp_nav_slide_up:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_resp_nav_slide_down:before {
  content: '\eb22';
}
/* Widget Add Info */
.cmsmasters_theme_icon_user_mail:before {
  content: '\e885';
}
.cmsmasters_theme_icon_user_website:before {
  content: '\e836';
}
.cmsmasters_theme_icon_user_phone:before {
  content: '\e805';
}
.cmsmasters_theme_icon_user_address:before {
  content: '\e895';
}
/* Twitter stripe */
.cmsmasters_theme_icon_user_twitter:before {
  content: '\ea97';
}
/* shop */
.cmsmasters_theme_icon_basket:before {
  content: '\eb02';
}
.cmsmasters_theme_icon_star_empty:before {
  content: '\e8aa';
}
.cmsmasters_theme_icon_star_full:before {
  content: '\e8aa';
}
/* post placeholders */
.cmsmasters_theme_icon_std:before {
  content: '\e85f';
}
.cmsmasters_theme_icon_video:before {
  content: '\e87d';
}
.cmsmasters_theme_icon_image:before,
.cmsmasters_theme_icon_gallery:before {
  content: '\e916';
}
.cmsmasters_theme_icon_audio:before {
  content: '\e860';
}
/***************** Elements ******************/
/* Icon Arrow Global Styles */
.cmsmasters_prev_arrow,
.cmsmasters_next_arrow {
  display: inline-block;
  width: 46px;
  height: 46px;
  vertical-align: middle;
  position: relative;
  text-align: center;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_prev_arrow:after,
.cmsmasters_next_arrow:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_prev_arrow span,
.cmsmasters_next_arrow span {
  display: inline-block;
  position: relative;
  width: 11px;
  height: 11px;
  font-size: 10px;
  font-weight: normal;
  line-height: 11px;
  vertical-align: middle;
}
.cmsmasters_prev_arrow span:before,
.cmsmasters_next_arrow span:before {
  font-family: 'fontello-custom';
  display: inline-block;
  width: 1em;
  height: 1em;
}
.cmsmasters_prev_arrow span:before {
  content: '\e801';
}
.cmsmasters_next_arrow span:before {
  content: '\e802';
}
/* Pixel Arrow global styles */
.cmsmasters_prev_arrow_pixel,
.cmsmasters_next_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before,
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after,
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before,
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  width: 1px;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before {
  height: 3px;
  left: 1px;
  top: -1px;
}
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after {
  height: 5px;
  left: 2px;
  top: -2px;
}
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before {
  height: 7px;
  left: 3px;
  top: -3px;
}
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  height: 9px;
  left: 4px;
  top: -4px;
}
.cmsmasters_next_arrow_pixel {
  right: 0;
  left: auto;
}
.cmsmasters_next_arrow_pixel:before {
  left: auto;
  right: 1px;
}
.cmsmasters_next_arrow_pixel:after {
  left: auto;
  right: 2px;
}
.cmsmasters_next_arrow_pixel span:before {
  left: auto;
  right: 3px;
}
.cmsmasters_next_arrow_pixel span:after {
  left: auto;
  right: 4px;
}
.cmsmasters_top_arrow_pixel,
.cmsmasters_bot_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -4px;
  bottom: 0;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before,
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after,
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before,
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  height: 1px;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before {
  width: 3px;
  top: 1px;
  left: -1px;
}
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after {
  width: 5px;
  top: 2px;
  left: -2px;
}
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before {
  width: 7px;
  top: 3px;
  left: -3px;
}
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  width: 9px;
  top: 4px;
  left: -4px;
}
.cmsmasters_bot_arrow_pixel {
  top: 4px;
}
.cmsmasters_bot_arrow_pixel:before {
  top: auto;
  bottom: 1px;
}
.cmsmasters_bot_arrow_pixel:after {
  top: auto;
  bottom: 2px;
}
.cmsmasters_bot_arrow_pixel span:before {
  top: auto;
  bottom: 3px;
}
.cmsmasters_bot_arrow_pixel span:after {
  top: auto;
  bottom: 4px;
}
/* Post Password Form */
.post-password-form {
  padding-top: 40px;
}
.post-password-form p:first-child {
  font-weight: bold;
}
.post-password-form label {
  display: inline-block;
  vertical-align: bottom;
}
.post-password-form input[type="password"] {
  display: block;
}
.post-password-form input[type=submit] {
  line-height: 42px;
  display: inline-block;
  vertical-align: bottom;
  margin-top: -2px;
}
/* Prelodaer */
.preloader {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 58.14%;
  position: relative;
  text-align: center;
}
.preloader .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.preloader.highImg {
  height: auto;
  padding: 0;
}
.preloader.highImg .full-width {
  height: auto;
  position: relative;
  top: auto;
  left: auto;
}
/* Resizable Block */
.resizable_block {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 58.14%;
  position: relative;
  overflow: hidden;
}
.resizable_block .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
/* Img Wrapper */
.cmsmasters_img_wrap {
  display: block;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_img_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img_wrap .img_placeholder:before {
  font-size: 40px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_wrap .highImg .img_placeholder {
  display: block;
  padding-bottom: 58.14%;
  position: relative;
}
/* Img Rollover */
.cmsmasters_img_rollover_wrap {
  display: block;
  position: relative;
  overflow: hidden;
}
.cmsmasters_img_rollover_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img_rollover_wrap .img_placeholder:before {
  font-size: 40px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_rollover_wrap.highImg .img_placeholder {
  display: block;
  padding-bottom: 58.14%;
  position: relative;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link {
  display: inline-block;
}
.cmsmasters_img_rollover_wrap .cmsmasters_open_link,
.cmsmasters_img_rollover_wrap .cmsmasters_image_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_rollover_wrap:hover .cmsmasters_img_rollover {
  opacity: 1;
}
/* Placeholder Small */
.img_placeholder_small {
  height: 60px;
  width: 60px;
  border-width: 1px;
  border-style: solid;
  display: block;
  position: relative;
}
.img_placeholder_small:before {
  font-size: 18px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Video Wrapper */
.wp-video-shortcode,
.mejs-layer {
  max-width: 100%;
}
.mejs-container.wp-video-shortcode,
.mejs-container.wp-audio-shortcode {
  margin-bottom: 22px;
  max-width: 100%;
}
.cmsmasters_video_wrap {
  width: 100%;
  max-width: 100%;
  height: 0;
  padding-bottom: 58.14%;
  margin-bottom: 22px;
  overflow: hidden;
  position: relative;
}
.cmsmasters_video_wrap > div {
  width: 100% !important;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap iframe {
  width: 100%;
  max-width: auto;
  height: 100%;
  margin-bottom: 0;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode,
.cmsmasters_video_wrap .mejs-layer {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode .mejs-overlay-button,
.cmsmasters_video_wrap .mejs-layer .mejs-overlay-button {
  margin-top: -50px !important;
}
/* Search Bar */
.search_bar_wrap {
  display: inline-block;
  width: 100%;
  position: relative;
}
.search_bar_wrap .search_field {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.search_bar_wrap .search_field input {
  width: 100%;
}
#middle .search_bar_wrap .search_field input,
#bottom .search_bar_wrap .search_field input {
  padding-right: 42px;
}
.search_bar_wrap .search_button {
  padding: 0;
  margin: 0;
  width: 42px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.search_bar_wrap .search_button button {
  background: none;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: relative;
  border-width: 0;
  border-style: solid;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.search_bar_wrap .search_button button:before {
  font-size: 13px;
  line-height: 14px;
  font-weight: bold;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 10px;
  right: 100%;
  top: 0;
  bottom: 0;
}
.search_bar_wrap .search_button button:hover {
  background: none;
}
/* Social Icons */
.social_wrap {
  display: block;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.social_wrap .social_wrap_inner {
  height: 100%;
}
.social_wrap .social_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.social_wrap ul {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.social_wrap li {
  display: inline-block;
  margin: 0 2px 0 0;
  padding: 0;
  position: relative;
  vertical-align: middle;
}
.social_wrap li:last-child {
  margin: 0;
}
.social_wrap li:before {
  display: none;
}
.social_wrap a {
  display: block;
  width: 20px;
  height: 20px;
  position: relative;
}
.social_wrap a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Core Owl Carousel CSS v1.3.2 */
.cmsmasters_owl_slider:not(.owl-carousel) > div {
  width: 0;
  height: 0;
  visibility: hidden;
}
.owl-carousel {
  width: 100%;
  position: relative;
  -ms-touch-action: pan-y;
  display: none;
}
.owl-carousel .owl-wrapper-outer {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.owl-carousel .owl-wrapper-outer.autoHeight {
  -webkit-transition: height 0.5s ease-in-out;
  -moz-transition: height 0.5s ease-in-out;
  -ms-transition: height 0.5s ease-in-out;
  -o-transition: height 0.5s ease-in-out;
  transition: height 0.5s ease-in-out;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper {
  position: relative;
  display: none;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper:after {
  content: '.';
  line-height: 0;
  height: 0;
  visibility: hidden;
  display: block;
  clear: both;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper .owl-item {
  float: left;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper,
.owl-carousel .owl-wrapper-outer .owl-item {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
}
.ie_only .owl-carousel .owl-wrapper-outer .owl-wrapper,
.ie_only .owl-carousel .owl-wrapper-outer .owl-item {
  -ms-backface-visibility: visible;
}
.owl-carousel .owl-controls {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.owl-pagination {
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  text-align: center;
}
.owl-pagination .owl-page {
  position: relative;
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 5px 2px;
  text-indent: -9999px;
  cursor: pointer;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.owl-pagination .owl-page:before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  width: 12px;
  height: 12px;
  display: block;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  opacity: 0;
}
.owl-pagination .owl-page:hover:before,
.owl-pagination .owl-page.active:before {
  opacity: 1;
}
.owl-pagination .owl-page.active {
  cursor: default;
}
.owl-pagination .owl-page span {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  display: block;
  width: 8px;
  height: 8px;
}
.owl-buttons > div {
  display: inline-block;
  cursor: pointer;
  position: absolute;
  top: 50%;
  margin-top: -23px;
}
.owl-buttons > div.owl-prev {
  left: 0;
}
.owl-buttons > div.owl-next {
  right: 0;
}
/* Slide Top Button */
#slide_top {
  text-align: center;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 55px;
  right: 30px;
  z-index: 9999;
  display: none;
  border-width: 1px;
  border-style: solid;
}
#slide_top:before {
  font-size: 10px;
  line-height: 50px;
  content: '\e803';
  font-family: 'fontello-custom';
}
#slide_top > span {
  display: inline-block;
  text-indent: -9999px;
}
/* Opened Article */
.opened-article {
  outline: none;
}
.middle_content .opened-article {
  padding: 50px 0;
}
.middle_content .opened-article.portfolio,
.middle_content .opened-article.profiles {
  padding-top: 0;
}
/* Likes and Comments */
.cmsmasters_likes a,
.cmsmasters_comments a {
  font-size: 12px;
  line-height: 16px;
  padding: 0 0 0 1px;
  cursor: pointer;
}
.cmsmasters_likes a:before,
.cmsmasters_comments a:before {
  position: relative;
  top: 1px;
  width: 14px;
}
.cmsmasters_likes a.active,
.cmsmasters_comments a.active {
  cursor: default;
}
.cmsmasters_likes a span,
.cmsmasters_comments a span {
  margin: 0 0 0 5px;
}
/* Button */
.button,
input[type=submit],
input[type=button],
button {
  display: inline-block;
  padding: 0 30px;
  cursor: pointer;
  position: relative;
  white-space: nowrap;
  text-align: center;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 22px;
  border-radius: 22px;
}
/* Items Filter */
.cmsmasters_items_filter_wrap {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_block {
  display: block;
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but {
  display: block;
  margin: 0 0 0 10px;
  padding-left: 25px;
  padding-right: 48px;
  float: left;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  font-family: 'fontello-custom';
  font-size: 10px;
  line-height: 11px;
  content: '\e800';
  display: block;
  width: 11px;
  height: 11px;
  position: absolute;
  right: 18px;
  top: 50%;
  margin-top: -6px;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:before {
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but {
  display: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li {
  display: inline-block;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li:before {
  content: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li a {
  background-color: transparent;
  display: inline-block;
  cursor: pointer;
  padding-left: 20px;
  padding-right: 20px;
  border-color: transparent;
  background: transparent;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li.current a {
  cursor: default;
}
/* More Items Loader and Pagination */
.cmsmasters_wrap_more_items {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_wrap_more_items.cmsmasters_loading {
  min-height: 60px;
}
.cmsmasters_wrap_more_items.cmsmasters_loading:before {
  font-size: 30px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
}
.cmsmasters_wrap_items_loader {
  padding: 40px 0 0;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_wrap_items_loader .cmsmasters_items_loader {
  display: inline-block;
}
div.subpage_nav {
  position: relative;
}
div.subpage_nav > strong {
  font-weight: bold;
  display: inline-block;
  padding: 0 5px 0 0;
  vertical-align: middle;
}
div.subpage_nav > span,
div.subpage_nav > a {
  display: inline-block;
  padding: 0 5px;
  vertical-align: middle;
}
.cmsmasters_wrap_pagination {
  padding: 70px 0;
  overflow: hidden;
}
.cmsmasters_wrap_pagination ul {
  display: inline-block;
  padding: 0;
  margin: 0;
}
.cmsmasters_wrap_pagination ul li {
  display: block;
  margin: 0 2px 0 0;
  padding: 0;
  float: left;
}
.cmsmasters_wrap_pagination ul li:before {
  content: none;
}
.cmsmasters_wrap_pagination ul li .page-numbers {
  line-height: 38px !important;
  display: block;
  min-width: 37px;
  height: 37px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  text-align: center;
}
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_prev,
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_next {
  font-size: 10px;
  line-height: 11px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_next:before {
  font-family: 'fontello-custom';
}
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_prev:before {
  content: '\e801';
}
.cmsmasters_wrap_pagination ul li .page-numbers .cmsmasters_theme_icon_slide_next:before {
  content: '\e802';
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
/* Post Navigation */
.post_nav {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.post_nav > span {
  display: block;
  position: relative;
  max-width: 50%;
}
.post_nav > span a {
  display: inline-block;
  padding: 24px 0 0;
  position: relative;
  z-index: 2;
}
.post_nav > span .cmsmasters_next_arrow,
.post_nav > span .cmsmasters_prev_arrow {
  position: absolute;
  top: 0;
}
.post_nav > span .post_nav_sub {
  position: absolute;
  top: 1px;
  display: block;
  white-space: nowrap;
}
.post_nav > span .post_nav_type {
  text-transform: capitalize;
}
.post_nav > span.cmsmasters_prev_post {
  padding-left: 0;
  padding-right: 20px;
  float: left;
}
.post_nav > span.cmsmasters_prev_post .post_nav_sub {
  left: 65px;
}
.post_nav > span.cmsmasters_prev_post a {
  padding-left: 65px;
  padding-right: 0;
}
.post_nav > span.cmsmasters_prev_post > .cmsmasters_prev_arrow {
  left: 1px;
  right: auto;
}
.post_nav > span.cmsmasters_next_post {
  padding-left: 20px;
  padding-right: 0;
  float: right;
  text-align: right;
}
.post_nav > span.cmsmasters_next_post .post_nav_sub {
  right: 65px;
}
.post_nav > span.cmsmasters_next_post a {
  padding-left: 0;
  padding-right: 65px;
}
.post_nav > span.cmsmasters_next_post > .cmsmasters_next_arrow {
  left: auto;
  right: 1px;
}
/* Share Posts */
.share_posts {
  padding: 20px 0 0;
  margin-top: 30px;
  position: relative;
  overflow: hidden;
  border-top-width: 1px;
  border-top-style: solid;
}
.share_posts .share_posts_inner {
  position: relative;
  overflow: hidden;
}
.share_posts a {
  margin: 0 30px 0 0;
  position: relative;
}
.share_posts a:last-child {
  margin-right: 0;
}
/* About Author */
.about_author {
  padding: 50px 0 0;
  margin-top: 50px;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
}
.about_author .about_author_title {
  margin-bottom: 7px;
}
.about_author .about_author_inner {
  padding: 30px 0 10px;
  overflow: hidden;
}
.about_author .about_author_avatar {
  margin: 0 30px 0 0;
  float: left;
  overflow: hidden;
}
.about_author .about_author_avatar img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.about_author .about_author_cont {
  position: relative;
  overflow: hidden;
}
.about_author .about_author_cont p {
  padding: 0 0 10px;
}
.about_author .about_author_cont_title {
  margin: 5px 0 10px;
}
/* Single Post Slider */
.cmsmasters_single_slider {
  padding: 50px 0 0;
  margin-top: 50px;
  position: relative;
  overflow: hidden;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_single_slider .preloader {
  padding-bottom: 72.41%;
}
.cmsmasters_single_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_single_slider .cmsmasters_owl_slider {
  outline: none;
}
.cmsmasters_single_slider .cmsmasters_single_slider_title {
  margin-bottom: 30px;
  padding-right: 80px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_no_items {
  margin-top: 50px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_wrap {
  padding-top: 70px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner {
  margin: 0 -10px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons {
  position: relative;
  width: 77px;
  height: 40px;
  margin: 0 auto;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons > div {
  top: 0;
  margin: 0;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons > div .cmsmasters_prev_arrow,
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons > div .cmsmasters_next_arrow {
  width: 37px;
  height: 37px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item {
  min-width: 200px;
  padding: 0 11px;
  position: relative;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_inner {
  padding: 15px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_title {
  margin: 0;
  padding: 0;
}
.cmsmasters_single_slider .owl-pagination {
  display: none;
}
/* Single Pings List */
.cmsmasters_pings_list {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pings_list .pingslist .pingback {
  position: relative;
  padding: 8px 50px 8px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body {
  display: inline;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link {
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link .comment-edit-link {
  display: inline-block;
  vertical-align: middle;
}
/* Post Comments */
.post_comments {
  padding: 50px 0 0;
  margin-top: 50px;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
}
.post_comments:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .post_comments_title {
  margin: 0;
}
.post_comments .cmsmasters_comment_item_content > ul,
.post_comments .cmsmasters_comment_item_content > ol {
  margin: 0 0 20px;
}
.project_navi {
  padding: 20px 0;
  overflow: hidden;
}
.commentlist {
  list-style: none;
  margin: 0;
  padding: 15px 0 0;
}
.commentlist:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.commentlist .children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 20px;
}
.commentlist .comment {
  margin: 0;
  padding: 30px 0 0;
}
.commentlist .comment:before {
  content: none;
}
.commentlist .comment:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item {
  position: relative;
  padding-bottom: 30px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_comment_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar {
  padding-right: 30px;
  display: block;
  float: left;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar img {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  display: block;
}
.cmsmasters_comment_item .comment-edit-link {
  display: inline-block;
  margin-top: 10px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info {
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info > a {
  display: inline-block;
}
.cmsmasters_comment_item .cmsmasters_comment_item_title {
  display: inline-block;
  margin: 0;
  padding: 0;
}
.cmsmasters_comment_item .comment-reply-link {
  float: right;
  margin-left: 12px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_date {
  float: right;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content {
  padding-top: 15px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* Comment Respond */
.comment-respond {
  padding: 50px 0;
  position: relative;
}
.comment-respond:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond label {
  display: inline-block;
  margin-bottom: 6px;
}
.comment-respond textarea {
  min-height: 160px;
}
.comment-respond p {
  padding-bottom: 12px;
}
.comment-respond .comment-reply-title {
  position: relative;
}
.comment-respond .comment-reply-title small {
  float: right;
}
.comment-respond .comment-form {
  position: relative;
  width: 60%;
}
.comment-respond .comment-form:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond .comment-form input[type=text],
.comment-respond .comment-form textarea {
  width: 100%;
}
.comment-respond .comment-notes,
.comment-respond .logged-in-as {
  padding-bottom: 20px;
  display: block;
  clear: both;
}
.comment-respond .comment-form-author,
.comment-respond .comment-form-email {
  clear: left;
  width: 100%;
}
.comment-respond .comment-form-cookies-consent {
  float: none;
  display: block;
  clear: both;
}
.comment-respond .comment-form-cookies-consent input,
.comment-respond .comment-form-cookies-consent label {
  display: inline-block;
  vertical-align: middle;
}
.comment-respond .comment-form-cookies-consent label {
  margin-left: 5px;
  margin-bottom: 0;
}
.comment-respond .form-submit {
  padding-top: 10px;
  display: block;
  clear: both;
}
.subpage_nav {
  display: block;
  clear: both;
}
.subpage_nav strong {
  margin-bottom: 10px;
  float: left;
}
.subpage_nav > a,
.subpage_nav > span {
  min-width: 37px;
  position: relative;
  text-align: center;
}
.subpage_nav > a:first-of-type,
.subpage_nav > span:first-of-type {
  margin-left: 4px;
}
.subpage_nav > span {
  cursor: default;
}
.subpage_nav > span + a,
.subpage_nav > a + span,
.subpage_nav > a + a {
  margin: 0;
}
.subpage_nav span {
  text-align: center;
}
.nocomments {
  margin: 50px 0 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Header + Centered + Right + Fixed Versions
/*-------------------------------------------------------------------------*/
/***************** Header ******************/
#header {
  width: 100%;
  position: absolute;
  z-index: 9999;
}
/***************** Navigation ******************/
.navigation {
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.navigation > li {
  height: 100%;
  margin: 0;
}
.navigation > li:before {
  content: '';
  display: block;
  position: absolute;
  height: 16px;
  width: 1px;
  left: 0;
  top: 4px;
  bottom: 0;
  margin: auto;
}
.navigation > li:first-child:before {
  content: none;
}
.navigation > li > a {
  display: block;
  height: 100%;
}
.navigation > li > a:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.navigation > li > a .nav_item_wrap {
  display: inline-block;
  vertical-align: middle;
  padding: 5px 25px;
  padding-top: 10px;
}
.navigation .menu-item-mega-container ul li a {
  padding: 6px 13px;
}
.navigation ul {
  padding-left: 10px;
  padding-right: 10px;
  left: 0;
}
.navigation ul li a {
  padding: 7px 13px;
}
.navigation ul ul {
  left: 100%;
}
.navigation .nav_subtitle {
  display: block;
  margin-top: -5px;
}
.navigation .nav_tag {
  margin: 0 5px;
  padding: 0 5px;
}
/***************** Header Top ******************/
.header_top .header_top_but {
  width: 100%;
  height: 32px;
  position: relative;
  cursor: pointer;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  display: none;
}
.header_top .header_top_but > span {
  font-size: 18px;
  line-height: 14px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_top .header_top_outer {
  height: 100%;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_top .header_top_inner {
  height: 100%;
}
.header_top .header_top_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_fullwidth .header_top .header_top_inner {
  width: 100%;
  padding-left: 2%;
  padding-right: 2%;
}
.header_top .header_top_right {
  height: 100%;
  float: right;
}
.header_top .social_wrap {
  outline: none;
}
.header_top .social_wrap li {
  margin-left: 0;
  margin-right: 4px;
}
.header_top .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_top .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 16px;
  height: 16px;
}
.header_top .top_nav_wrap {
  display: block;
  height: 100%;
}
.header_top .responsive_top_nav {
  display: none;
}
.header_top .header_top_left {
  height: 100%;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.header_top .header_top_left:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_top .meta_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.header_top .meta_wrap > * {
  margin: 0 10px 0 0;
  display: inline-block;
}
.header_top .meta_wrap > *:last-child {
  margin: 0;
}
.header_top .meta_wrap > *[class^="cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class^="cmsmasters_theme_icon_"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_top .meta_wrap > p {
  padding: 0;
}
.header_top .meta_wrap .adr {
  white-space: nowrap;
}
/***************** Header Top Navigation ******************/
.top_line_nav {
  z-index: 205;
}
.top_line_nav > li {
  height: 100%;
}
.top_line_nav > li > a {
  height: 100%;
  padding: 0 10px;
}
.top_line_nav > li > a:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.top_line_nav > li > a .nav_item_wrap {
  display: inline-block;
  vertical-align: middle;
}
.top_line_nav > li li a {
  padding: 1px 10px;
}
/***************** Header Mid ******************/
.header_mid {
  display: block;
  clear: both;
}
.header_mid .header_mid_outer {
  height: 100%;
  position: relative;
}
.header_mid .header_mid_inner {
  height: 100%;
}
.header_mid .header_mid_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_fullwidth .header_mid .header_mid_inner {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}
.header_mid .logo_wrap {
  height: 100%;
  position: relative;
  margin-right: 10px;
  float: left;
}
.enable_header_centered .header_mid .logo_wrap {
  float: none;
  margin: 0 auto;
  text-align: center;
}
.header_mid .logo_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .logo_wrap .logo_text_wrap {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .logo_wrap .title {
  display: block;
  line-height: 1em;
}
.header_mid .logo_wrap .title_text {
  padding: 0 0 0 3px;
}
.header_mid .logo_wrap .logo {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}
.header_mid .logo_wrap .logo img {
  max-height: 100%;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.header_mid .logo_wrap .logo .logo_retina {
  display: none;
}
.header_mid .resp_mid_nav_wrap {
  height: 100%;
  margin: 0 0 0 20px;
  position: relative;
  display: none;
  float: right;
  overflow: hidden;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer {
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav:hover,
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active {
  outline: none;
}
.header_mid .mid_search_but_wrap {
  height: 100%;
  margin: 0 0 0 20px;
  position: relative;
  float: right;
}
.header_mid .mid_search_but_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .mid_search_but_wrap .mid_search_but {
  font-size: 18px;
  line-height: 18px;
  width: 28px;
  height: 28px;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  position: relative;
  vertical-align: middle;
}
.header_mid .mid_search_but_wrap .mid_search_but:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_mid .social_wrap {
  margin: 0 0 0 20px;
  float: right;
}
.header_mid .social_wrap .social_wrap_inner {
  text-align: right;
}
.header_mid .social_wrap li {
  margin-left: 0;
  margin-right: 9px;
}
.header_mid .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_mid .social_wrap a {
  font-size: 18px;
  line-height: 1em;
  width: 1em;
  height: 1em;
}
.header_mid .slogan_wrap {
  height: 100%;
  display: block;
  position: relative;
  float: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner {
  height: 100%;
  padding: 0 0 0 20px;
  text-align: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .slogan_wrap .slogan_wrap_text {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > * {
  margin: 0 10px 0 0;
  display: inline-block;
}
.header_mid .slogan_wrap .slogan_wrap_text > *:last-child {
  margin: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters_theme_icon_"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > p {
  padding: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text .adr {
  white-space: nowrap;
}
.header_mid .mid_nav_wrap {
  height: 100%;
  position: relative;
  float: right;
}
.header_fullwidth .header_mid .mid_nav_wrap {
  display: inline-block;
  float: none;
}
.header_fullwidth .header_mid .logo_wrap + .resp_mid_nav_wrap + .cmsmasters_dynamic_cart_wrap + .mid_nav_wrap,
.header_fullwidth .header_mid .logo_wrap + .resp_mid_nav_wrap + .mid_nav_wrap {
  float: right;
}
/***************** Header Mid Navigation ******************/
.mid_nav {
  outline: none;
}
/***************** Header Bot ******************/
.header_bot {
  display: block;
  clear: both;
}
.header_bot .header_bot_outer {
  height: 100%;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_bot .header_bot_inner {
  height: 100%;
}
.header_bot .header_bot_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.enable_header_centered .header_bot .header_bot_inner {
  text-align: center;
}
.header_bot .bot_nav_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.enable_header_right .header_bot .bot_nav_wrap {
  float: right;
}
.enable_header_centered .header_bot .bot_nav_wrap {
  display: inline-block;
  float: none;
  vertical-align: top;
}
/***************** Header Bot Navigation ******************/
.bot_nav {
  outline: none;
}
/***************** Header Search Form ******************/
.cmsmasters_header_search_form {
  margin: 0;
  padding: 0;
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 99999;
  visibility: hidden;
  opacity: 0;
  text-align: center;
}
.cmsmasters_header_search_form.cmsmasters_show {
  visibility: visible;
  opacity: 1;
}
.cmsmasters_header_search_form.cmsmasters_show .cmsmasters_header_search_form_close {
  opacity: 1;
  visibility: visible;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
}
.cmsmasters_header_search_form:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_header_search_form form {
  display: inline-block;
  width: 400px;
  vertical-align: middle;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field {
  position: relative;
  overflow: visible;
  padding: 10px 0;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field:before {
  content: '';
  width: 100%;
  height: 3px;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  -webkit-transform: translateY(-10px);
  -moz-transform: translateY(-10px);
  transform: translateY(-10px);
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field:after {
  content: '';
  width: 100%;
  height: 3px;
  position: absolute;
  left: 0;
  bottom: 0;
  opacity: 0;
  -webkit-transform: translateY(10px);
  -moz-transform: translateY(10px);
  transform: translateY(10px);
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field.active:before {
  opacity: 1;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  transform: translateY(0);
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field.active:after {
  opacity: 1;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  transform: translateY(0);
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  height: 70px;
  font-size: 60px;
  line-height: 70px;
  padding: 0;
  background: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  border-width: 0;
  border-style: solid;
  text-align: center;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]):focus {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}
.cmsmasters_header_search_form button {
  display: none;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close {
  width: 22px;
  height: 22px;
  position: fixed;
  right: 2%;
  top: 50px;
  visibility: hidden;
  z-index: 206;
  cursor: pointer;
  opacity: 0;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close:before {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -1px;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close:after {
  content: '';
  display: block;
  width: 2px;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 0;
  margin-left: -1px;
}
/*-------------------------------------------------------------------------*/
/* Headline Styles
/*-------------------------------------------------------------------------*/
body .headline {
  background-color: transparent;
}
.cmsmasters_breadcrumbs {
  position: relative;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  display: inline-block;
  padding-top: 30px;
  padding-bottom: 30px;
  vertical-align: middle;
  overflow: hidden;
}
.headline_outer {
  background-position: top center;
  position: relative;
  z-index: 1;
}
.headline_outer.cmsmasters_headline_disabled {
  outline: none;
}
.headline_outer .headline_color {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.headline_outer .headline_inner {
  padding: 0 20px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.headline_outer .headline_inner .headline_aligner {
  display: inline-block;
  vertical-align: middle;
}
.headline_outer .headline_inner .headline_text_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  max-width: 100%;
}
.headline_outer .headline_inner .headline_text {
  position: relative;
  margin-bottom: 5px;
}
.headline_outer .headline_inner .headline_text:before {
  line-height: 1em;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.headline_outer .headline_inner .headline_text .entry-title {
  margin: 0;
  -ms-word-wrap: break-word;
  word-wrap: break-word;
}
.headline_outer .headline_inner .headline_text .entry-subtitle {
  margin: 5px 0 0;
}
.headline_outer .headline_inner .headline_text + .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding-top: 0;
}
.headline_outer .headline_inner.align_left {
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text {
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text:before {
  right: auto;
}
.headline_outer .headline_inner.align_left .cmsmasters_breadcrumbs {
  text-align: left;
}
.headline_outer .headline_inner.align_left .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding-bottom: 0;
}
.headline_outer .headline_inner.align_right {
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text {
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text:before {
  left: auto;
}
.headline_outer .headline_inner.align_right .cmsmasters_breadcrumbs {
  text-align: right;
}
.headline_outer .headline_inner.align_right .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding-bottom: 0;
}
.headline_outer .headline_inner.align_center {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text:before {
  bottom: auto;
}
.headline_outer .headline_inner.align_center .headline_text.headline_icon > *:first-child {
  padding-top: 15px;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs {
  text-align: center;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding-bottom: 0;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: none;
}
.content_wrap {
  display: block;
  min-width: inherit;
}
/*-------------------------------------------------------------------------*/
/* Bottom + Footer Styles
/*-------------------------------------------------------------------------*/
/***************** Bottom ******************/
.bottom_inner .widgettitle {
  margin-bottom: 35px;
  position: relative;
}
/***************** Footer ******************/
#footer {
  overflow: hidden;
}
.footer_inner {
  position: relative;
  overflow: hidden;
}
/***************** Footer Default ******************/
.cmsmasters_footer_default .footer_inner {
  padding-top: 120px;
  padding-bottom: 145px;
  text-align: center;
}
.cmsmasters_footer_default .footer_inner > div:first-child {
  padding-top: 0;
}
.cmsmasters_footer_default .footer_in_inner,
.cmsmasters_footer_default .footer_logo_wrap {
  text-align: center;
}
.cmsmasters_footer_default .footer_logo {
  display: inline-block;
  margin: 40px 0;
}
.cmsmasters_footer_default .footer_logo > .footer_logo_retina {
  display: none;
}
.cmsmasters_footer_default .footer_custom_html_wrap {
  padding: 20px 0 0;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_custom_html {
  display: inline-block;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_footer_default .footer_nav_wrap {
  padding: 25px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_nav_wrap div {
  text-align: center;
}
.cmsmasters_footer_default .footer_nav {
  display: inline-block;
  width: auto;
}
.cmsmasters_footer_default .footer_nav > li {
  margin: 0 20px;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_default .footer_nav > li:after {
  content: '';
  height: 14px;
  width: 1px;
  position: absolute;
  left: -10px;
  top: 50%;
  margin-top: -6px;
  opacity: 0.5;
}
.cmsmasters_footer_default .footer_nav > li:last-child {
  margin-right: 0;
}
.cmsmasters_footer_default .footer_nav > li:first-child {
  margin-left: 0;
}
.cmsmasters_footer_default .footer_nav > li:first-child:after {
  content: none;
}
.cmsmasters_footer_default .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_default .social_wrap {
  margin: 35px 0 80px;
  height: auto;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner {
  text-align: center;
  height: auto;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner:after {
  content: none;
}
.cmsmasters_footer_default .social_wrap li {
  margin-left: 8px;
  margin-right: 8px;
}
.cmsmasters_footer_default .social_wrap li:last-child {
  margin-right: 0;
}
.cmsmasters_footer_default .social_wrap li:first-child {
  margin-left: 0;
}
.cmsmasters_footer_default .social_wrap a {
  font-size: 26px;
  line-height: 30px;
  width: 30px;
  height: 30px;
}
.cmsmasters_footer_default .footer_copyright {
  display: block;
  margin: 55px 0 0;
  text-align: center;
}
/***************** Footer Small ******************/
.cmsmasters_footer_small .footer_in_inner {
  padding-top: 25px;
  padding-bottom: 25px;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_footer_small .footer_nav_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_nav > li {
  margin: 0 25px 0 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_small .footer_nav > li:last-child {
  margin: 0;
}
.cmsmasters_footer_small .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_small .social_wrap {
  float: right;
}
.cmsmasters_footer_small .social_wrap li {
  margin: 0;
}
.cmsmasters_footer_small .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 20px;
  height: 20px;
}
.cmsmasters_footer_small .footer_custom_html_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_copyright {
  display: block;
  padding: 1px 20px 1px 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Blog (Default, Masonry, Timeline) + Post Styles
/*-------------------------------------------------------------------------*/
/***************** Blog ******************/
.blog {
  position: relative;
}
.blog:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.blog .post {
  width: 100%;
  max-width: 100%;
}
.blog .post .preloader {
  padding-bottom: 58.14%;
}
.blog .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog .post .cmsmasters_video_wrap,
.blog .post .resizable_block {
  padding-bottom: 58.14%;
}
.blog .post.format-gallery .cmsmasters_owl_slider {
  overflow: hidden;
}
.blog .post.format-gallery .cmsmasters_owl_slider .cmsmasters_prev_arrow,
.blog .post.format-gallery .cmsmasters_owl_slider .cmsmasters_next_arrow {
  border-width: 0;
  border-style: solid;
}
.blog .post.format-gallery .cmsmasters_owl_slider .owl-prev {
  left: -46px;
}
.blog .post.format-gallery .cmsmasters_owl_slider .owl-next {
  right: -46px;
}
.blog .post.format-gallery .cmsmasters_owl_slider:hover .owl-prev {
  left: 10px;
}
.blog .post.format-gallery .cmsmasters_owl_slider:hover .owl-next {
  right: 10px;
}
.blog.columns {
  margin: -40px -20px 0;
}
.blog.columns .post {
  min-width: 280px;
  padding: 40px 20px 0;
  float: left;
  opacity: 0;
}
.cmsmasters_4.blog.columns .post {
  width: 25%;
}
.cmsmasters_3.blog.columns .post {
  width: 33.33%;
}
.cmsmasters_2.blog.columns .post {
  width: 50%;
}
.blog.columns .post.shortcode_animated {
  opacity: 1;
}
.blog.columns .post .preloader {
  padding-bottom: 72.41%;
}
.blog.columns .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.columns .post .cmsmasters_video_wrap,
.blog.columns .post .resizable_block {
  padding-bottom: 72.41%;
}
.blog.timeline:before {
  content: '';
  width: 1px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.blog.timeline .post {
  width: 50%;
  overflow: visible;
  padding-top: 30px;
  float: left;
  opacity: 0;
}
.blog.timeline .post:before {
  content: '';
  width: 100%;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 36px;
  bottom: auto;
}
.blog.timeline .post.cmsmasters_timeline_left .cmsmasters_timeline_margin {
  margin-right: 22%;
}
.blog.timeline .post.cmsmasters_timeline_right .cmsmasters_timeline_margin {
  margin-left: 22%;
}
.blog.timeline .post.shortcode_animated {
  opacity: 1;
}
.blog.timeline .post .preloader {
  padding-bottom: 58.14%;
}
.blog.timeline .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.timeline .post .cmsmasters_video_wrap,
.blog.timeline .post .resizable_block {
  padding-bottom: 58.14%;
}
.blog .owl-pagination {
  bottom: 10px;
}
/***************** Blog Default ******************/
.cmsmasters_post_default {
  padding: 50px 0 0;
  margin: 50px 0 0;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_post_default:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_post_default:first-child {
  padding-top: 0;
  margin-top: 0;
  border-top-width: 0;
  border-top-style: solid;
}
.cmsmasters_post_default .cmsmasters_post_date {
  display: block;
  margin-bottom: 2px;
}
.cmsmasters_post_default .cmsmasters_post_date .published {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_cont {
  position: relative;
}
.cmsmasters_post_default .cmsmasters_img_wrap {
  overflow: hidden;
  margin-top: 13px;
}
.cmsmasters_post_default .cmsmasters_post_media {
  margin-top: 13px;
}
.cmsmasters_post_default .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
  word-break: break-word;
}
.cmsmasters_post_default .cmsmasters_post_cont_info {
  border-top-width: 1px;
  border-top-style: solid;
  padding: 13px 2px 0 0;
  margin-top: 20px;
  position: relative;
}
.cmsmasters_post_default .cmsmasters_post_cont_info:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span {
  display: inline-block;
  margin: 0 10px 0 0;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span:last-child {
  margin: 0;
}
.cmsmasters_post_default .cmsmasters_post_info {
  float: right;
}
.cmsmasters_post_default .cmsmasters_post_info > span {
  margin-left: 10px;
}
.cmsmasters_post_default.sticky .cmsmasters_post_title:before {
  content: '\e892';
  font-family: 'fontello';
  font-size: 24px;
  margin-right: 10px;
}
.cmsmasters_post_default .cmsmasters_post_content {
  overflow: hidden;
  margin-top: 28px;
}
.cmsmasters_post_default .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_post_footer {
  overflow: hidden;
  margin-top: 15px;
  margin-bottom: 20px;
}
/***************** Blog Masonry ******************/
.cmsmasters_post_masonry {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_post_cont {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap {
  position: relative;
  margin-top: 13px;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap figure {
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap + .cmsmasters_audio {
  margin-top: 0;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider,
.cmsmasters_post_masonry .cmsmasters_video_wrap,
.cmsmasters_post_masonry .cmsmasters_audio {
  margin-top: 13px;
}
.cmsmasters_post_masonry .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info {
  overflow: hidden;
  padding: 13px 2px 0 0;
  margin-top: 20px;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info > span {
  display: inline-block;
  margin: 0 10px 0 0;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info > span:last-child {
  margin: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info .cmsmasters_post_info {
  float: right;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info .cmsmasters_post_info > span {
  margin-left: 10px;
}
.cmsmasters_post_masonry .cmsmasters_post_content {
  overflow: hidden;
  margin-top: 25px;
}
.cmsmasters_post_masonry .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_footer {
  overflow: hidden;
  margin-top: 15px;
}
/***************** Blog Timeline ******************/
.cmsmasters_post_timeline {
  position: relative;
}
.cmsmasters_post_timeline .cmsmasters_post_date {
  display: block;
  position: absolute;
  z-index: 1;
}
.cmsmasters_post_timeline.cmsmasters_timeline_left .cmsmasters_post_date {
  left: auto;
  right: -50px;
}
.cmsmasters_post_timeline.cmsmasters_timeline_right .cmsmasters_post_date {
  left: -50px;
  right: auto;
}
.cmsmasters_post_timeline .cmsmasters_post_date {
  display: block;
  width: 100px;
  padding: 10px 0 15px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_post_day {
  display: block;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_post_mon_year {
  margin-top: 4px;
  display: block;
}
.cmsmasters_post_timeline .cmsmasters_post_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline figure {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_owl_slider,
.cmsmasters_post_timeline .cmsmasters_img_wrap,
.cmsmasters_post_timeline .cmsmasters_video_wrap,
.cmsmasters_post_timeline .cmsmasters_audio {
  margin-top: 13px;
}
.cmsmasters_post_timeline .cmsmasters_img_wrap + .cmsmasters_audio {
  margin-top: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info {
  overflow: hidden;
  border-top-width: 1px;
  border-top-style: solid;
  padding-top: 13px;
  margin-top: 20px;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span {
  display: inline-block;
  margin: 0 10px 0 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span:last-child {
  margin: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info .cmsmasters_post_info {
  float: right;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info .cmsmasters_post_info > span {
  margin-left: 10px;
}
.cmsmasters_post_timeline .cmsmasters_post_content {
  overflow: hidden;
  margin-top: 25px;
}
.cmsmasters_post_timeline .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer {
  overflow: hidden;
  margin-top: 10px;
}
/***************** Blog Puzzle ******************/
.blog.columns.puzzle {
  padding: 0;
  margin: 0;
}
.blog.columns.puzzle.cmsmasters_4 .post.cmsmasters_post_puzzle {
  min-width: 230px;
}
.blog.columns.puzzle .cmsmasters_post_puzzle {
  padding: 0;
}
.blog.columns.puzzle .cmsmasters_post_puzzle .preloader {
  padding-bottom: 100%;
}
.post.cmsmasters_post_puzzle {
  min-width: 280px;
  padding: 0;
  float: left;
  opacity: 0;
}
.post.cmsmasters_post_puzzle.shortcode_animated {
  opacity: 1;
}
.post.cmsmasters_post_puzzle .preloader:before {
  font-size: 30px;
  line-height: 1em;
  margin: -15px 0 0 -15px;
  position: absolute;
  top: 50%;
  left: 50%;
}
.post.cmsmasters_post_puzzle .preloader:after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.post.cmsmasters_post_puzzle .cmsmasters_video_wrap,
.post.cmsmasters_post_puzzle .resizable_block {
  padding-bottom: 100%;
}
.post.cmsmasters_post_puzzle:nth-child(odd) .puzzle_post_content_wrapper {
  bottom: 0;
}
.post.cmsmasters_post_puzzle:nth-child(odd) .puzzle_post_content_wrapper:before {
  top: -9px;
  border-top: 0 solid transparent !important;
  border-left: 9px solid transparent !important;
  border-right: 9px solid transparent !important;
  border-bottom-width: 10px;
  border-bottom-style: solid;
}
.post.cmsmasters_post_puzzle:nth-child(odd) .cmsmasters_img_wrap {
  top: 0;
}
.post.cmsmasters_post_puzzle:nth-child(even) .puzzle_post_content_wrapper {
  top: 0;
}
.post.cmsmasters_post_puzzle:nth-child(even) .puzzle_post_content_wrapper:before {
  bottom: -9px;
  border-bottom: 0 solid transparent !important;
  border-left: 9px solid transparent !important;
  border-right: 9px solid transparent !important;
  border-top-width: 10px;
  border-top-style: solid;
}
.post.cmsmasters_post_puzzle:nth-child(even) .cmsmasters_img_wrap {
  bottom: 0;
}
.post.cmsmasters_post_puzzle:nth-child(even) .preloader[class^="cmsmasters_theme_icon_"],
.post.cmsmasters_post_puzzle:nth-child(even) .preloader[class*=" cmsmasters_theme_icon_"] {
  border-top-width: 1px;
  border-top-style: solid;
}
.post.cmsmasters_post_puzzle .cmsmasters_post_cont {
  padding-bottom: 200%;
}
.post.cmsmasters_post_puzzle .cmsmasters_post_cont:hover .preloader:after {
  opacity: 1;
}
.post.cmsmasters_post_puzzle figure,
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper {
  width: 100%;
  position: absolute;
  left: 0;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper {
  padding-bottom: 100%;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper:before {
  content: '';
  display: block;
  position: absolute;
  left: 25px;
  z-index: 1;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .puzzle_post_content_wrap {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  padding: 20px 20px 15px;
  overflow: hidden;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_date {
  display: block;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_header {
  padding: 3px 0 0;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_title {
  margin: 0;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_content {
  padding: 25px 0 0;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_content p {
  padding: 0;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_read_more {
  margin-top: 15px;
  display: inline-block;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_footer {
  padding: 10px 20px 15px 20px;
  position: absolute;
  bottom: 0;
  left: 1px;
  right: 1px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_footer > span {
  display: block;
  padding-bottom: 3px;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_footer .cmsmasters_post_footer_info {
  padding: 0 0 0 10px;
  float: right;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_footer .cmsmasters_post_footer_info a {
  margin: 2px 0 8px;
  display: block;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_comments,
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_likes {
  text-align: right;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_comments span,
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_likes span {
  padding-right: 6px;
}
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_comments a:before,
.post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_likes a:before {
  float: right;
  line-height: 16px;
  width: 14px;
}
.post.cmsmasters_post_puzzle .cmsmasters_audio {
  margin-top: 10px;
}
.post.cmsmasters_post_puzzle .cmsmasters_audio + .cmsmasters_post_content {
  padding-top: 25px;
}
.post.cmsmasters_post_puzzle .mejs-container.wp-video-shortcode,
.post.cmsmasters_post_puzzle .mejs-container.wp-audio-shortcode {
  margin: 0;
}
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_author a:hover,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_category a:hover,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_read_more:hover,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_title a:hover {
  opacity: 0.5;
}
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_comments a:hover:before,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_likes a:hover:before,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_likes a.active:before,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_comments span,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_likes span,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_author_suf,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_cat_suf,
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_date {
  opacity: 0.5;
}
.post.cmsmasters_post_puzzle:hover .cmsmasters_post_content {
  opacity: 0.7;
}
/***************** Blog Post ******************/
.cmsmasters_open_post {
  overflow: hidden;
}
.cmsmasters_open_post + .post_nav {
  border-top-width: 1px;
  border-top-style: solid;
  margin-top: 40px;
}
.cmsmasters_open_post .preloader {
  padding-bottom: 58.14%;
}
.cmsmasters_open_post .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .resizable_block {
  padding-bottom: 58.14%;
}
.cmsmasters_open_post > div:first-child {
  margin-top: 0;
}
.cmsmasters_open_post .cmsmasters_audio,
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .cmsmasters_img_wrap {
  overflow: hidden;
  margin-top: 13px;
}
.cmsmasters_open_post > .cmsmasters_owl_slider {
  margin-top: 13px;
}
.cmsmasters_open_post > .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info {
  margin-top: 20px;
  padding-top: 13px;
  padding-right: 2px;
  border-top-width: 1px;
  border-top-style: solid;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span {
  display: inline-block;
  margin: 0 10px 0 0;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span:last-child {
  margin: 0;
}
.cmsmasters_open_post .cmsmasters_post_info {
  float: right;
}
.cmsmasters_open_post .cmsmasters_post_info > span {
  margin-left: 10px;
}
.cmsmasters_open_post .cmsmasters_post_date {
  display: inline-block;
  margin-bottom: 2px;
}
.cmsmasters_open_post .cmsmasters_post_content {
  overflow: hidden;
  margin-top: 25px;
}
.cmsmasters_open_post .cmsmasters_post_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/*-------------------------------------------------------------------------*/
/* Portfolio (Grid, Puzzle) + Project Styles
/*-------------------------------------------------------------------------*/
/***************** Portfolio ******************/
.cmsmasters_project_sort_block + .cmsmasters_project_filter_block .cmsmasters_project_filter_list {
  text-align: left;
}
.cmsmasters_project_filter_list {
  text-align: center;
}
.portfolio {
  position: relative;
}
.portfolio:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio .cmsmasters_project_puzzle {
  min-width: 250px;
  float: left;
}
.portfolio.large_gap {
  margin: 0 -1.7%;
}
.portfolio.large_gap .cmsmasters_project_grid {
  min-width: 190px;
}
.portfolio.large_gap .project {
  padding-left: 1.7%;
  padding-right: 1.7%;
  padding-bottom: 3.4%;
}
.portfolio.small_gap {
  padding: 1px 1px 0;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.portfolio.small_gap .project {
  overflow: visible;
}
.portfolio.small_gap .project .project_outer {
  margin-left: 0;
  margin-right: 1px;
  margin-bottom: 1px;
}
.portfolio.grid.perfect .project {
  padding-bottom: 50px;
}
.portfolio.grid.perfect .project figure {
  opacity: 0;
}
.portfolio.grid.perfect .project.shortcode_animated figure {
  opacity: 1;
}
.portfolio.grid.masonry .project,
.portfolio.puzzle .project {
  opacity: 0;
}
.portfolio.grid.masonry .project.shortcode_animated,
.portfolio.puzzle .project.shortcode_animated {
  opacity: 1;
}
.portfolio.cmsmasters_5 .project {
  max-width: 20%;
}
.portfolio.cmsmasters_4 .project {
  max-width: 25%;
}
.portfolio.cmsmasters_3 .project {
  max-width: 33%;
}
.portfolio.cmsmasters_2 .project {
  max-width: 50%;
}
.portfolio.isotope.cmsmasters_5 .project,
.portfolio.isotope.cmsmasters_4 .project,
.portfolio.isotope.cmsmasters_3 .project,
.portfolio.isotope.cmsmasters_2 .project {
  max-width: none;
}
/***************** Portfolio Grid ******************/
.cmsmasters_project_grid {
  position: relative;
  min-width: 220px;
}
.cmsmasters_project_grid .project_outer {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_grid .project_img_wrap {
  width: 62%;
  margin: 0 auto;
  max-width: 360px;
}
.cmsmasters_4 .cmsmasters_project_grid .project_img_wrap {
  width: 76%;
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap {
  margin: 0 auto 25px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 100%;
  padding-bottom: 100%;
  -webkit-transform: translateZ(0);
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap .img_placeholder {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap .full-width {
  right: 0;
  bottom: 0;
  margin: auto;
  width: auto;
  height: auto;
  min-width: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap:hover .full-width {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link {
  opacity: 1;
}
.cmsmasters_project_grid .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link:before {
  bottom: 0;
  opacity: 1;
}
.cmsmasters_project_grid .cmsmasters_img_rollover {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  left: 5px;
  top: 5px;
  right: 5px;
  bottom: 5px;
  width: auto;
  height: auto;
  opacity: 1;
}
.cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_post_link {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_post_link:before {
  width: 34px;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  font-size: 32px;
  bottom: -15px;
  height: 1.2em;
  line-height: 1.2em;
  opacity: 0;
  z-index: 4;
}
.cmsmasters_project_grid .cmsmasters_project_header {
  padding: 0;
  margin-top: 5px;
}
.cmsmasters_project_grid .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_grid .cmsmasters_project_cont_info {
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_grid .cmsmasters_project_content {
  margin-top: 20px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_grid .cmsmasters_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_project_grid .cmsmasters_project_footer {
  margin-top: 25px;
  text-align: center;
}
.cmsmasters_project_grid .cmsmasters_project_read_more {
  display: inline-block;
  margin-bottom: 10px;
}
.cmsmasters_project_grid .cmsmasters_project_info {
  text-align: center;
}
.cmsmasters_project_grid .cmsmasters_project_info > span {
  margin: 0 5px;
}
/***************** Portfolio Puzzle ******************/
.cmsmasters_project_puzzle {
  position: relative;
}
.cmsmasters_project_puzzle .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_header,
.cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_cont_info {
  bottom: 0;
  opacity: 1;
}
.cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_footer {
  bottom: 20px;
  opacity: 1;
}
.cmsmasters_project_puzzle .project_inner {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_puzzle .project_inner_middle {
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 20px;
  right: 20px;
  top: 0;
  bottom: 0;
}
.cmsmasters_project_puzzle .project_inner_table {
  display: table;
  height: 100%;
  width: 100%;
}
.cmsmasters_project_puzzle .project_inner_table_cell {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
.cmsmasters_project_puzzle .cmsmasters_project_header {
  padding: 0;
  display: block;
  vertical-align: middle;
  position: relative;
  bottom: -20px;
  opacity: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title:hover {
  opacity: 0.7;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info {
  display: block;
  vertical-align: middle;
  overflow: hidden;
  text-align: center;
  padding-bottom: 8px;
  position: relative;
  bottom: -20px;
  opacity: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info a:hover {
  opacity: 0.7;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer {
  overflow: hidden;
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  opacity: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer > span {
  margin: 0 5px;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer a:before {
  opacity: 0.7;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer a:hover:before,
.cmsmasters_project_puzzle .cmsmasters_project_footer a.active:before {
  opacity: 1;
}
/***************** Portfolio Open Project ******************/
.cmsmasters_open_project {
  padding: 60px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project + .post_nav {
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_open_project .preloader {
  padding-bottom: 58.14%;
}
.cmsmasters_open_project .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .cmsmasters_video_wrap,
.cmsmasters_open_project .resizable_block {
  padding-bottom: 58.14%;
}
.cmsmasters_open_project > .cmsmasters_img_wrap {
  margin-bottom: 44px;
}
.cmsmasters_open_project .owl-pagination {
  bottom: 10px;
}
.cmsmasters_open_project .project_media_wrap {
  margin-bottom: 10px;
}
.cmsmasters_open_project .cmsmasters_gallery_row {
  margin: 0 -1.7%;
  position: relative;
}
.cmsmasters_open_project .cmsmasters_gallery_row figure {
  overflow: hidden;
}
.cmsmasters_open_project .cmsmasters_gallery_row .one_fourth,
.cmsmasters_open_project .cmsmasters_gallery_row .one_third,
.cmsmasters_open_project .cmsmasters_gallery_row .one_half,
.cmsmasters_open_project .cmsmasters_gallery_row .one_first {
  margin-bottom: 3.4%;
}
.cmsmasters_open_project .cmsmasters_gallery_row .one_fourth .preloader,
.cmsmasters_open_project .cmsmasters_gallery_row .one_third .preloader,
.cmsmasters_open_project .cmsmasters_gallery_row .one_half .preloader {
  padding-bottom: 100%;
}
.cmsmasters_open_project .cmsmasters_gallery_row .one_fourth .preloader.highImg,
.cmsmasters_open_project .cmsmasters_gallery_row .one_third .preloader.highImg,
.cmsmasters_open_project .cmsmasters_gallery_row .one_half .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project > .cmsmasters_owl_slider {
  margin-bottom: 44px;
}
.cmsmasters_open_project > .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_project .cmsmasters_project_header {
  overflow: hidden;
  display: block;
  clear: both;
  margin-bottom: 5px;
}
.cmsmasters_open_project .project_content {
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.cmsmasters_open_project .project_content.with_sidebar {
  width: 66%;
  float: left;
}
.cmsmasters_open_project .project_content > .cmsmasters_img_wrap {
  margin-bottom: 44px;
}
.cmsmasters_open_project .project_content > .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_open_project .cmsmasters_project_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_sidebar {
  width: 34%;
  padding: 0 0 0 40px;
  float: right;
}
.cmsmasters_open_project .project_sidebar > div {
  outline: none;
}
.cmsmasters_open_project .project_sidebar .cmsmasters_likes a:before,
.cmsmasters_open_project .project_sidebar .cmsmasters_comments a:before {
  float: right;
  width: 16px;
  margin-left: 7px;
  font-size: 14px;
  top: 0;
}
.cmsmasters_open_project .project_sidebar .cmsmasters_likes a:before {
  top: 2px;
}
.cmsmasters_open_project .project_details,
.cmsmasters_open_project .project_features {
  position: relative;
  margin-bottom: 50px;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_title,
.cmsmasters_open_project .project_features_title {
  margin: 0 0 33px;
  padding: 0;
}
.cmsmasters_open_project .project_details_item,
.cmsmasters_open_project .project_features_item {
  position: relative;
  padding: 9px 2px 9px 0;
  overflow: hidden;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_open_project .project_details_item:first-child,
.cmsmasters_open_project .project_features_item:first-child {
  padding-top: 0;
}
.cmsmasters_open_project .project_details_item:last-child,
.cmsmasters_open_project .project_features_item:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_project .project_details_item_title,
.cmsmasters_open_project .project_features_item_title {
  max-width: 50%;
  padding-right: 2px;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_title,
.cmsmasters_open_project .project_features_one_item .project_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_project .project_details_item_desc,
.cmsmasters_open_project .project_features_item_desc {
  padding: 0 0 0 15px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_desc,
.cmsmasters_open_project .project_features_one_item .project_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
/*-------------------------------------------------------------------------*/
/* Posts Slider Styles
/*-------------------------------------------------------------------------*/
/***************** Posts Slider ******************/
.cmsmasters_posts_slider {
  margin: 0 -20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_posts_slider .owl-carousel {
  margin: 0 -1px;
  width: auto;
}
.cmsmasters_posts_slider .owl-buttons {
  position: relative;
  padding: 40px 20px 0;
  text-align: center;
}
.cmsmasters_posts_slider .owl-buttons > div {
  position: relative;
  top: auto;
  margin: 0 2px;
}
.cmsmasters_posts_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider_item {
  min-width: 240px;
  max-width: 100%;
}
.cmsmasters_posts_slider .cmsmasters_slider_post,
.cmsmasters_posts_slider .cmsmasters_slider_project {
  width: 100%;
  padding: 0 20px 20px;
}
.cmsmasters_posts_slider .cmsmasters_slider_project {
  padding: 30px;
}
/***************** Posts Slider Blog ******************/
.cmsmasters_slider_post {
  position: relative;
}
.cmsmasters_slider_post .preloader {
  padding-bottom: 72.41%;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date {
  outline: none;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header {
  padding: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header .cmsmasters_slider_post_title {
  margin: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_inner {
  position: relative;
  padding: 13px 0 0 0;
  margin-top: 20px;
  border-top-width: 1px;
  border-top-style: solid;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info {
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info > span {
  display: inline-block;
  margin-right: 10px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info > span:last-child {
  margin-right: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer {
  float: right;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer > span {
  margin-left: 10px;
}
.cmsmasters_slider_post .cmsmasters_img_rollover_wrap {
  margin-top: 13px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content {
  overflow: hidden;
  margin-top: 20px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_read_more {
  margin-top: 15px;
  display: inline-block;
}
/***************** Posts Slider Portfolio ******************/
.cmsmasters_slider_project {
  position: relative;
  width: auto !important;
  max-width: none !important;
  float: none !important;
}
.cmsmasters_slider_project:before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 100%;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_slider_project .preloader {
  padding-bottom: 100%;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_slider_project .project_img_wrap {
  width: 62%;
  max-width: 220px;
  margin: 0 auto;
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap {
  margin: 0 auto 55px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 100%;
  padding-bottom: 100%;
  -webkit-transform: translateZ(0);
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap .img_placeholder {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap .full-width {
  right: 0;
  bottom: 0;
  margin: auto;
  width: auto;
  height: auto;
  min-width: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap:hover .full-width {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link {
  opacity: 1;
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  transform: rotateY(180deg);
}
.cmsmasters_slider_project .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link:before {
  bottom: 0;
  opacity: 1;
}
.cmsmasters_slider_project .cmsmasters_img_rollover {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  left: 5px;
  top: 5px;
  right: 5px;
  bottom: 5px;
  width: auto;
  height: auto;
  opacity: 1;
}
.cmsmasters_slider_project .cmsmasters_img_rollover .cmsmasters_open_post_link {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_slider_project .cmsmasters_img_rollover .cmsmasters_open_post_link:before {
  width: 34px;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  font-size: 32px;
  bottom: -40px;
  opacity: 0;
  z-index: 4;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header {
  padding: 0;
  margin-top: 15px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header .cmsmasters_slider_project_title {
  margin: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info {
  overflow: hidden;
  text-align: center;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content {
  margin: 30px 0 10px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer {
  overflow: hidden;
  margin-top: 15px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer > span {
  margin-left: 10px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer > span:first-child {
  margin-left: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_post_read_more {
  margin-top: 15px;
  display: inline-block;
}
/*-------------------------------------------------------------------------*/
/* Profiles + Profile Styles
/*-------------------------------------------------------------------------*/
/***************** Profiles ******************/
.cmsmasters_profile {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile.horizontal {
  margin: -40px -1.7% 0;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal {
  margin-top: 40px;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_half:nth-child(2n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_third:nth-child(3n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_fourth:nth-child(4n+1) {
  clear: left;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap {
  display: inline-block;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  -webkit-transform: translateZ(0);
  overflow: hidden;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap.preloader {
  padding-bottom: 100%;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap img {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  opacity: 1;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link {
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: block;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  opacity: 0;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
  z-index: 4;
  font-size: 32px;
  line-height: 36px;
  width: 36px;
  height: 36px;
  bottom: -15px;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap:hover img {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  transform: scale(1.1);
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link {
  opacity: 1;
}
.cmsmasters_profile .cmsmasters_img_rollover_wrap:hover .cmsmasters_open_post_link:before {
  bottom: 0;
  opacity: 1;
}
.profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0 5px;
  padding: 0;
  position: relative;
}
.profile_social_icons_list li:last-child {
  margin-right: 0;
}
.profile_social_icons_list li:first-child {
  margin-left: 0;
}
.profile_social_icons_list li:before {
  display: none;
}
.profile_social_icons_list a {
  font-size: 18px;
  line-height: 20px;
  display: block;
  width: 20px;
  height: 20px;
  position: relative;
}
.profile_social_icons_list a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/***************** Profiles Horizontal ******************/
.cmsmasters_profile_horizontal {
  position: relative;
}
.cmsmasters_profile_horizontal .profile_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .profile_inner {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_img_wrap {
  margin: 0 auto 33px;
  width: 62%;
  min-width: 200px;
  max-width: 300px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header {
  padding: 0 0 30px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
  margin-bottom: 20px;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .profile_social_icons_list {
  text-align: center;
}
/***************** Profiles Vertical ******************/
.cmsmasters_profile_vertical {
  margin: 0 0 30px;
  padding: 0;
  position: relative;
}
.cmsmasters_profile_vertical:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_outer {
  padding: 0 0 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_profile_img_wrap {
  display: inline-block;
  width: 25%;
  padding: 0 4% 0 0;
  vertical-align: middle;
}
.cmsmasters_profile_vertical .profile_inner {
  display: block;
  width: 100%;
}
.cmsmasters_profile_vertical .cmsmasters_profile_img_wrap + .profile_inner {
  display: inline-block;
  width: 75%;
  vertical-align: middle;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header {
  float: left;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 5px 0 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
  margin-top: 20px;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons {
  position: relative;
  margin-top: 7px;
  float: right;
}
/***************** Profiles Open Profile ******************/
.cmsmasters_open_profile {
  padding: 60px 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile + .post_nav {
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_open_profile .cmsmasters_profile_likes,
.cmsmasters_open_profile .cmsmasters_profile_comments {
  outline: none;
}
.cmsmasters_open_profile .cmsmasters_profile_header {
  padding: 0 0 20px;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 2px 0 0;
}
.cmsmasters_open_profile .profile_content {
  width: 100%;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_content.with_sidebar {
  width: 66%;
  float: left;
}
.cmsmasters_open_profile .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_sidebar {
  width: 34%;
  padding: 0 0 0 40px;
  float: right;
}
.cmsmasters_open_profile .profile_sidebar > div {
  outline: none;
}
.cmsmasters_open_profile .profile_sidebar .cmsmasters_likes a:before,
.cmsmasters_open_profile .profile_sidebar .cmsmasters_comments a:before {
  float: right;
  width: 16px;
  margin-left: 7px;
  font-size: 14px;
  top: 0;
}
.cmsmasters_open_profile .profile_sidebar .cmsmasters_likes a:before {
  float: right;
  top: 2px;
}
.cmsmasters_open_profile .profile_details,
.cmsmasters_open_profile .profile_features {
  position: relative;
  overflow: hidden;
  margin-bottom: 50px;
}
.cmsmasters_open_profile .profile_details_title,
.cmsmasters_open_profile .profile_features_title {
  margin: 0 0 33px;
  padding: 0;
}
.cmsmasters_open_profile .profile_details_item,
.cmsmasters_open_profile .profile_features_item {
  position: relative;
  overflow: hidden;
  padding: 9px 2px 9px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_open_profile .profile_details_item:first-child,
.cmsmasters_open_profile .profile_features_item:first-child {
  padding-top: 0;
}
.cmsmasters_open_profile .profile_details_item:last-child,
.cmsmasters_open_profile .profile_features_item:last-child {
  padding-bottom: 0;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_open_profile .profile_details_item_title,
.cmsmasters_open_profile .profile_features_item_title {
  max-width: 50%;
  padding-right: 2px;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_title,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_profile .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_item_desc {
  padding: 0 0 0 15px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
.cmsmasters_open_profile .profile_social_icons {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_social_icons_title {
  margin: 0 0 25px;
  padding: 0;
}
/*-------------------------------------------------------------------------*/
/* Shortcodes Styles
/*-------------------------------------------------------------------------*/
/***************** Divider ******************/
hr {
  border: 0;
  border-bottom-style: solid;
  margin: 44px 0;
}
hr,
.cmsmasters_widget_divider,
.cmsmasters_divider {
  background-color: transparent;
  border-bottom-width: 1px;
  width: 100%;
  height: 1px;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_widget_divider {
  margin: 0 1.7% 44px;
  width: 96.6%;
}
.cmsmasters_widget_divider.solid {
  border-bottom-style: solid;
}
.cmsmasters_widget_divider.dashed {
  border-bottom-style: dashed;
}
.cmsmasters_widget_divider.dotted {
  border-bottom-style: dotted;
}
.cmsmasters_widget_divider.transparent {
  border-bottom-width: 0;
}
.cmsmasters_divider.cmsmasters_divider_width_short {
  width: 20%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_center {
  left: 40%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_right {
  left: 80%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium {
  width: 40%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_center {
  left: 30%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_right {
  left: 60%;
}
.cmsmasters_divider.cmsmasters_divider_width_long {
  width: 100%;
}
/***************** Special Heading ******************/
.cmsmasters_heading_wrap {
  position: relative;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider {
  display: inline-block;
  height: 2px;
  position: absolute;
  top: 50%;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider_left_wrap,
.cmsmasters_heading_wrap .cmsmasters_heading_divider_right_wrap {
  display: inline-block;
  width: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider {
  width: 10%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider_left {
  margin-left: -10%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider {
  width: 20%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider_left {
  margin-left: -20%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider {
  width: 100%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider_left {
  margin-left: -100%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading {
  max-width: 80%;
}
.cmsmasters_heading_wrap .cmsmasters_heading {
  display: inline-block;
  margin: 0;
}
.cmsmasters_heading_wrap .cmsmasters_heading:before,
.cmsmasters_heading_wrap .cmsmasters_heading a:before {
  margin-left: 0;
  margin-right: 0.5em;
}
/***************** Featured Block ******************/
.cmsmasters_featured_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_block .featured_block_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.cmsmasters_featured_block .featured_block_inner {
  width: 100%;
  padding: 20px 20px 0;
  position: relative;
  overflow: hidden;
}
/***************** Table ******************/
.cmsmasters_wrap_table {
  overflow: auto;
}
.cmsmasters_table {
  width: 100%;
}
.cmsmasters_table caption {
  outline: none;
}
.cmsmasters_table tr td,
.cmsmasters_table tr th {
  padding: 14px 30px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_table tr td:first-child,
.cmsmasters_table tr th:first-child {
  border-left-width: 1px;
  border-left-style: solid;
}
.cmsmasters_table tr td:last-child,
.cmsmasters_table tr th:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_table tr td.cmsmasters_table_cell_aligncenter,
.cmsmasters_table tr th.cmsmasters_table_cell_aligncenter {
  text-align: center;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignleft,
.cmsmasters_table tr th.cmsmasters_table_cell_alignleft {
  text-align: left;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignright,
.cmsmasters_table tr th.cmsmasters_table_cell_alignright {
  text-align: right;
}
/***************** Notice ******************/
.cmsmasters_notice {
  display: block;
  width: 100%;
  padding: 0 20px;
  margin-bottom: 22px;
  border-width: 1px;
  border-style: solid;
  position: relative;
}
.cmsmasters_notice:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_notice[class*=" cmsmasters-icon-"],
.cmsmasters_notice[class*=" cmsmasters_theme_icon_"] {
  padding-left: 80px;
  padding-right: 20px;
}
.cmsmasters_notice:before {
  font-size: 32px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 20px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice .notice_content {
  position: relative;
  padding: 22px 0 0;
}
.cmsmasters_notice .notice_close {
  font-size: 10px;
  line-height: 10px;
  display: block;
  width: 29px;
  height: 29px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -14px;
  top: -14px;
  bottom: auto;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  font-size: 15px;
}
.cmsmasters_notice .notice_close:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice.cmsmasters_notice_success {
  background-color: #fdfff9;
  border-color: #d0e4a8;
}
.cmsmasters_notice.cmsmasters_notice_success:before {
  color: #8bc34a;
}
.cmsmasters_notice.cmsmasters_notice_error {
  background-color: #fffdfd;
  border-color: #f7d1d1;
}
.cmsmasters_notice.cmsmasters_notice_error:before {
  color: #ea5151;
  content: '\eabc';
}
.cmsmasters_notice.cmsmasters_notice_error a {
  color: rgba(234, 81, 81, 0.8);
}
.cmsmasters_notice.cmsmasters_notice_error a:hover {
  color: #ea5151;
}
.cmsmasters_notice.cmsmasters_notice_info {
  background-color: #fafcff;
  border-color: #d5dde9;
}
.cmsmasters_notice.cmsmasters_notice_info:before {
  color: #6e95d1;
}
.cmsmasters_notice.cmsmasters_notice_warning {
  background-color: #fffdf9;
  border-color: #f1ceb7;
}
.cmsmasters_notice.cmsmasters_notice_warning:before {
  color: #fdb543;
}
.cmsmasters_notice.cmsmasters_notice_download {
  background-color: #f9fffa;
  border-color: #c9e0cd;
}
.cmsmasters_notice.cmsmasters_notice_download:before {
  color: #63b698;
}
/***************** Icon ******************/
.cmsmasters_icon_wrap a {
  display: inline-block;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon_title {
  display: inline-block;
  margin-left: 8px;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon {
  border-style: solid;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon:before {
  margin: 0;
}
/***************** Icon List ******************/
.cmsmasters_icon_list_items {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.cmsmasters_icon_list_items li:before {
  position: absolute;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item:before {
  left: 50px;
  right: auto;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  width: 100px;
  height: 100px;
  margin: 1px;
  position: relative;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  font-size: 32px;
  line-height: 80px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  content: '';
  border-width: 10px;
  border-style: solid;
  width: 102px;
  height: 102px;
  position: absolute;
  top: -1px;
  left: -1px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_item_title {
  word-wrap: break-word;
  margin-bottom: 10px;
}
.cmsmasters_icon_list_items.cmsmasters_color_type_icon .cmsmasters_icon_list_item {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item:before {
  left: auto;
  right: 50px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list {
  padding-left: 30px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item:before {
  left: -32px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block {
  padding: 0;
  margin: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item {
  display: block;
  width: 100%;
  padding: 0 0 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  content: '';
  display: block;
  width: 1px;
  height: 0;
  padding: 0;
  position: absolute;
  top: 40px;
  z-index: 1;
  opacity: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child:before {
  display: none;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.cmsmasters_icon_type_image .cmsmasters_icon_list_icon {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  display: block;
  text-align: center;
  z-index: 2;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.3;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated:before {
  height: 100%;
  opacity: 1;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated .cmsmasters_icon_list_icon {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item_content {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_icon_wrap {
  padding-right: 30px;
  margin-bottom: 20px;
  float: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_icon_wrap {
  padding-left: 30px;
  float: right;
}
/***************** Icon Box ******************/
.cmsmasters_icon_box {
  border-style: solid;
  border-color: transparent;
  position: relative;
}
.cmsmasters_icon_box:before,
.cmsmasters_icon_box .icon_box_heading:before {
  border-style: solid;
  text-align: center;
}
.cmsmasters_icon_box.box_icon_type_image:before,
.cmsmasters_icon_box.box_icon_type_number:before {
  content: '';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left:before {
  content: none;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left .icon_box_heading:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left .icon_box_heading:before {
  content: '\00a0';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 30px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top {
  border-width: 1px;
  padding: 20px 20px 30px;
  margin-bottom: 20px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 35px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters-icon-"],
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters_theme_icon_"] {
  padding-top: 120px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left {
  border-width: 1px;
  padding: 20px 20px 30px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top {
  padding-left: 60px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6 {
  display: flex;
  align-items: center;
  position: relative;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  margin-left: 0;
  margin-right: 15px;
  vertical-align: inherit;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6 {
  display: flex;
  align-items: center;
  position: relative;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_icon_box .icon_box_text {
  margin-bottom: 10px;
}
/***************** Toggles ******************/
.cmsmasters_toggles {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter {
  padding: 0 0 15px;
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a {
  cursor: pointer;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a.current_filter {
  cursor: default;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_title {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_title a {
  display: block;
  padding: 18px 20px;
  border-width: 1px;
  border-style: solid;
  position: relative;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_plus {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_inner {
  padding: 30px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle > .cmsmasters_toggle_title .cmsmasters_toggle_plus_vert {
  height: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle > .cmsmasters_toggle {
  display: block;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap {
  margin: 0 0 2px;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap:last-child {
  margin: 0;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap .cmsmasters_toggle_title a {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap:last-child .cmsmasters_toggle_title a {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap:last-child .cmsmasters_toggle {
  border-top-width: 0;
  border-top-style: solid;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap .cmsmasters_toggle {
  border-top-width: 1px;
  border-top-style: solid;
}
/***************** Tabs ******************/
.cmsmasters_tabs {
  position: relative;
}
.cmsmasters_tabs:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 2;
}
.cmsmasters_tabs .cmsmasters_tabs_list:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item:before {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a {
  display: block;
  padding: 18px 20px;
  position: relative;
  cursor: pointer;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 18px 20px 18px 50px;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 20px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item.current_tab a,
.cmsmasters_tabs .cmsmasters_tabs_list_item:hover a {
  outline: none;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tab:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab.active_tab {
  display: block;
}
.cmsmasters_tabs .cmsmasters_tab_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list {
  margin-bottom: -1px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_wrap {
  border-top-width: 1px;
  border-top-style: solid;
  display: block;
  clear: both;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item {
  margin: 0;
  display: inline-block;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  border-top-width: 1px;
  border-top-style: solid;
  border-color: transparent;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a {
  padding-left: 50px;
  padding-right: 50px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding-left: 70px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"]:before,
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"]:before {
  left: 35px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tab_inner {
  padding: 35px 0 0;
}
.cmsmasters_tabs.tabs_mode_tour {
  display: table;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list {
  display: table-cell;
  width: 25%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item {
  margin: 0 -1px 0 0;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-left-width: 1px;
  border-left-style: solid;
  border-color: transparent;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap {
  display: table-cell;
  width: 75%;
  vertical-align: top;
  border-left-width: 1px;
  border-left-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tab_inner {
  padding: 0 0 0 50px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right {
  direction: rtl;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list {
  text-align: right;
  direction: ltr;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item {
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  margin: 0 0 0 -1px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 18px 50px 18px 20px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a:before {
  left: auto;
  right: 20px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_wrap {
  direction: ltr;
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tab_inner {
  padding: 0 50px 0 0;
  text-align: right;
}
/***************** Stats ******************/
.cmsmasters_stats {
  position: relative;
  text-align: center;
}
.cmsmasters_stats:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat {
  position: relative;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  display: block;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat_container {
  width: 100%;
  height: 260px;
  margin: 0 0 7px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 0;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"]:before {
  font-size: 20px;
  margin: 0;
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  position: absolute;
  left: auto;
  right: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  display: none;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical {
  margin: 0 -1.7%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap {
  margin-bottom: 35px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  height: 100%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_container {
  margin-bottom: 25px;
  width: 62%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_title_counter_wrap {
  width: 100%;
  padding: 0 0 13px;
  position: absolute;
  left: 0;
  bottom: 100%;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_title {
  display: block;
  position: relative;
  padding: 0 35px 10px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_title.stat_has_titleicon {
  padding-left: 27px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_title.stat_has_titleicon:before {
  font-size: 18px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 1px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_counter_wrap {
  position: absolute;
  right: 0;
  top: 3px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_counter_wrap .cmsmasters_stat_units:before {
  content: ' ';
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding-top: 10px;
  display: block;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  margin-bottom: 15px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:last-child {
  margin-bottom: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  top: 39px;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_counter_wrap {
  right: 0;
  top: 9px;
  position: absolute;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 40px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 100%;
  height: 3px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_units:before {
  content: ' ';
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  left: 0;
  top: auto;
  bottom: 13px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"] .cmsmasters_stat_title {
  left: 30px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: inline-block;
  padding: 20px 0 5px;
}
.cmsmasters_stats.stats_mode_circles {
  margin-top: -40px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap {
  display: inline-block;
  float: none;
  margin: 0;
  padding: 40px 10px 0;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_half {
  width: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_first {
  width: 100%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat {
  display: inline-block;
  width: 180px;
  height: 180px;
  margin: 0 0 10px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 170px;
  height: 170px;
  padding-top: 45px;
  position: absolute;
  left: 5px;
  top: 5px;
  z-index: 2;
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 30px;
  line-height: 30px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  display: block;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap .cmsmasters_stat_counter {
  margin-left: 5px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_units {
  margin-top: 2px;
  vertical-align: top;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  width: 180px;
  height: 180px;
  position: relative;
  z-index: 1;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner {
  padding-top: 30px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner:before {
  margin-bottom: 8px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  padding: 2px 0 0;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_title {
  display: block;
  padding: 7px 0 0;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
  padding: 10px 0 0;
  text-align: center;
}
/***************** Counters ******************/
.cmsmasters_counters {
  position: relative;
  text-align: center;
}
.cmsmasters_counters:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_counters canvas {
  display: none;
}
.cmsmasters_counters .cmsmasters_counter_wrap {
  display: inline-block;
  padding: 0 2px;
  margin: 0;
  float: none;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_half {
  width: 50%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_first {
  width: 100%;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter {
  min-height: 100px;
  padding: 0 20px;
  margin: 0 0 16px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  display: block;
  margin: 20px 0 0;
  position: relative;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  border-style: solid;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title_wrap {
  display: block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  display: block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  display: inline-block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_icon .cmsmasters_counter_inner:before {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_image .cmsmasters_counter_inner:before {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  padding-bottom: 20px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  left: 50%;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  padding: 10px 0 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  padding: 7px 0 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  text-align: center;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  margin: auto !important;
  left: 0;
  right: auto;
  top: 0;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title_wrap {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_subtitle {
  margin-top: -5px;
}
/***************** CMSMASTERS Button ******************/
.cmsmasters_button {
  display: inline-block;
  padding: 0 30px;
  cursor: pointer;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button:before {
  line-height: inherit !important;
  position: relative;
  z-index: 10;
}
.cmsmasters_button span {
  position: relative;
  z-index: 10;
}
.cmsmasters_button.cmsmasters_but_clear_styles {
  background: none;
  border: 0;
  margin: 0;
  padding: 0 22px;
  overflow: hidden;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:hover {
  margin: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:after {
  content: '';
  position: absolute;
}
.cmsmasters_button.cmsmasters_but_bg_hover {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bd_underline {
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 0;
  border-right-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
#page .cmsmasters_button.cmsmasters_but_bd_underline:before {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:after {
  width: 100%;
  height: 100%;
  left: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:hover:after {
  left: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:after {
  width: 100%;
  height: 100%;
  right: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:hover:after {
  right: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:after {
  width: 100%;
  height: 0;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:after {
  width: 100%;
  height: 0;
  left: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:after {
  width: 0;
  height: 105%;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:hover:after {
  width: 90%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:after {
  width: 105%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:hover:after {
  height: 75%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:after {
  width: 500%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -moz-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:hover:after {
  height: 170%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_shadow {
  padding-bottom: 3px;
  -webkit-box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
}
#page .cmsmasters_button.cmsmasters_but_shadow {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_shadow:hover {
  padding-bottom: 0;
  margin-top: 3px;
  -webkit-box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
  box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:before,
.cmsmasters_button.cmsmasters_but_icon_divider:before,
.cmsmasters_button.cmsmasters_but_icon_inverse:before {
  margin: auto !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:after,
.cmsmasters_button.cmsmasters_but_icon_light_bg:after,
.cmsmasters_button.cmsmasters_but_icon_divider:after,
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  content: '';
  background-color: rgba(0, 0, 0, 0.2);
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_divider:hover:before {
  -webkit-transform: scale(1.3);
  -moz-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
}
.cmsmasters_button.cmsmasters_but_icon_light_bg:after {
  background-color: rgba(255, 255, 255, 0.2);
}
.cmsmasters_button.cmsmasters_but_icon_divider:after {
  background-color: transparent;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  background-color: transparent;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left,
.cmsmasters_button.cmsmasters_but_icon_slide_right {
  padding-left: 44px;
  padding-right: 44px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:before {
  width: 44px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: -44px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:before {
  width: 44px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -44px;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  width: 100%;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom span {
  display: block;
  position: relative;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before {
  left: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover span {
  -webkit-transform: translateX(200%);
  -moz-transform: translateX(200%);
  -ms-transform: translateX(200%);
  -o-transform: translateX(200%);
  transform: translateX(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before {
  right: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover span {
  -webkit-transform: translateX(-200%);
  -moz-transform: translateX(-200%);
  -ms-transform: translateX(-200%);
  -o-transform: translateX(-200%);
  transform: translateX(-200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before {
  top: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover span {
  -webkit-transform: translateY(200%);
  -moz-transform: translateY(200%);
  -ms-transform: translateY(200%);
  -o-transform: translateY(200%);
  transform: translateY(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  top: 200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover span {
  -webkit-transform: translateY(-200%);
  -moz-transform: translateY(-200%);
  -ms-transform: translateY(-200%);
  -o-transform: translateY(-200%);
  transform: translateY(-200%);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_clear_styles {
  margin: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_slide_left:after {
  width: 100%;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_slide_right:after {
  width: 100%;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_slide_top:after {
  height: 100%;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_slide_bottom:after {
  height: 100%;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_expand_vert:after {
  width: 90%;
  opacity: 1;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_expand_hor:after {
  height: 75%;
  opacity: 1;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_bg_expand_diag:after {
  height: 170%;
  opacity: 1;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_shadow {
  padding-bottom: 0;
  top: 3px;
  -webkit-box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
  box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_dark_bg:before,
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_light_bg:before,
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_divider:before {
  -webkit-transform: scale(1.3);
  -moz-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_slide_left:before {
  left: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_slide_right:before {
  right: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before {
  left: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_left span {
  -webkit-transform: translateX(200%);
  -moz-transform: translateX(200%);
  -ms-transform: translateX(200%);
  -o-transform: translateX(200%);
  transform: translateX(200%);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before {
  right: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_right span {
  -webkit-transform: translateX(-200%);
  -moz-transform: translateX(-200%);
  -ms-transform: translateX(-200%);
  -o-transform: translateX(-200%);
  transform: translateX(-200%);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before {
  top: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_top span {
  -webkit-transform: translateY(200%);
  -moz-transform: translateY(200%);
  -ms-transform: translateY(200%);
  -o-transform: translateY(200%);
  transform: translateY(200%);
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  top: 0;
}
.cmsmasters_paypal_donations > form:hover + .cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom span {
  -webkit-transform: translateY(-200%);
  -moz-transform: translateY(-200%);
  -ms-transform: translateY(-200%);
  -o-transform: translateY(-200%);
  transform: translateY(-200%);
}
/***************** Contact Form 7 ******************/
.wpcf7-form input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.wpcf7-form select,
.wpcf7-form textarea,
.wpcf7-form option {
  min-width: 100px;
  width: 100%;
}
.wpcf7-form p {
  padding: 0;
}
.wpcf7-form input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.wpcf7-form select,
.wpcf7-form textarea {
  margin: 6px 0 13px;
}
/***************** Hover slider ******************/
.cmsmasters_hover_slider {
  position: relative;
  overflow: hidden;
}
.cmsmasters_hover_slider li:before {
  display: none;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items {
  list-style: none;
  width: 100%;
  height: 1px;
  padding: 0 0 58.14%;
  margin: 0;
  position: relative;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items li {
  list-style: none;
  padding: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items .cmsmasters_hover_slider_full_img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  position: absolute;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs {
  font-size: 0;
  line-height: 0;
  margin: 0 -5px;
  padding: 0;
  word-spacing: -1px;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li {
  word-spacing: normal;
  display: inline-block;
  display: -moz-inline-stack;
  padding: 10px 5px 0;
  vertical-align: top;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.shortcode_animated a {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.hovered_item a:before {
  opacity: 0.5;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  display: block;
  position: relative;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  overflow: hidden;
  opacity: 0.3;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:hover:before {
  opacity: 0.9;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs img {
  display: block;
  width: 100px;
  height: auto;
  image-rendering: auto;
}
.js_body .cmsmasters_hover_slider_items > li > figure.cmsmasters_hover_slider_full_img img {
  position: absolute;
}
/***************** Content slider ******************/
.cmsmasters_content_slider {
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_content_slider img {
  width: 100%;
}
.cmsmasters_content_slider .owl-buttons {
  position: static;
  width: 0;
  height: 0;
}
.cmsmasters_content_slider .owl-buttons > div {
  display: block;
  width: 46px;
  height: 46px;
  margin: 0;
  position: absolute;
  top: 50%;
  margin-top: -23px;
  overflow: hidden;
}
.cmsmasters_content_slider .owl-buttons > div:before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_content_slider .owl-buttons > div.owl-prev {
  left: -46px;
  right: auto;
}
.cmsmasters_content_slider .owl-buttons > div.owl-next {
  left: auto;
  right: -46px;
}
.cmsmasters_content_slider:hover .owl-buttons > div.owl-prev {
  left: 20px;
}
.cmsmasters_content_slider:hover .owl-buttons > div.owl-next {
  right: 20px;
}
.cmsmasters_content_slider .owl-pagination {
  bottom: 5px;
}
.cmsmasters_content_slider .owl-pagination .owl-page {
  width: 10px;
  height: 10px;
  margin-left: 4px;
  margin-right: 4px;
}
/***************** Gallery ******************/
.cmsmasters_gallery {
  margin: 0 0 0 -10px;
  padding: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item {
  min-width: 180px;
  padding: 0 0 10px 10px;
  float: left;
  opacity: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item:before {
  display: none;
}
.cmsmasters_gallery .cmsmasters_gallery_item img {
  display: block;
  width: 100%;
}
.cmsmasters_gallery .cmsmasters_gallery_item.shortcode_animated {
  opacity: 1;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figure {
  display: block;
  padding: 20px 20px 15px;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figcaption {
  padding: 15px 0 0;
  text-align: center;
}
.ilightbox-thumbnails.dark .ilightbox-thumbnails-grid .ilightbox-thumbnail img {
  image-rendering: auto;
}
/***************** Quotes ******************/
.cmsmasters_quote {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quote_content {
  margin: 40px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_quotes_slider_type_box {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_inner {
  position: relative;
  overflow: hidden;
  padding: 0 55px;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_image {
  margin: 0 30px 0 0;
  float: left;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_image img {
  width: 70px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_header {
  padding: 8px 0 10px 35px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_header:before {
  content: '\201D';
  position: absolute;
  left: 0;
  top: 6px;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_title {
  margin: 0;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_subtitle_wrap {
  padding-top: 2px;
  overflow: hidden;
}
.cmsmasters_quotes_slider_type_box .cmsmasters_quote_content {
  margin: 40px 0 0;
}
.cmsmasters_quotes_slider_type_box .owl-pagination {
  text-align: left;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_inner {
  text-align: center;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '/';
  margin: 0 10px;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_placeholder {
  display: inline-block;
  position: relative;
  height: 50px;
  width: 50px;
  text-align: center;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_placeholder:before {
  content: '\201C';
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_image {
  display: inline-block;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_image img {
  width: 100px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_subtitle_wrap {
  text-align: center;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_content {
  text-align: center;
  padding: 35px 10%;
  margin-top: 0;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_header {
  margin-top: 5px;
}
.cmsmasters_quotes_slider_type_center .cmsmasters_quote_title {
  margin: 0;
}
.cmsmasters_quotes_slider_type_center .owl-pagination {
  top: 125px;
  bottom: auto;
}
.cmsmasters_quotes_slider_type_center .owl-buttons > div {
  margin-top: -35px;
}
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_prev_arrow,
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_next_arrow {
  border-left: 0;
  border-top: 0;
  width: 50px;
  height: 50px;
}
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_prev_arrow span:before,
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_next_arrow span:before {
  display: none;
}
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_prev_arrow {
  transform: rotate(135deg);
}
.cmsmasters_quotes_slider_type_center .owl-buttons .cmsmasters_next_arrow {
  transform: rotate(-45deg);
}
.cmsmasters_quotes_grid {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before,
.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  content: '';
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: block;
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 25%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 75%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 33.33%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 66.66%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before,
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  content: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  display: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  padding: 45px 0;
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  z-index: 2;
  display: flex;
  flex-direction: row;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:first-of-type {
  padding-top: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-of-type {
  padding-bottom: 20px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 1px;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:after {
  content: '\201D';
  font-size: 50px;
  line-height: 84px;
  z-index: 5;
  text-align: center;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: -25px;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-child:before {
  content: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-child:after,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list:after,
.quote_one.cmsmasters_quotes_grid .cmsmasters_quotes_list:after {
  content: none;
}
.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 100%;
  position: relative;
  align-items: flex-start;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 25%;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 33.33%;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 50%;
}
.cmsmasters_quotes_grid .cmsmasters_quote:first-of-type .cmsmasters_quote_inner {
  padding-left: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote:last-of-type .cmsmasters_quote_inner {
  padding-right: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 0 45px;
  position: relative;
  overflow: hidden;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 0 0 20px;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image {
  display: inline-block;
  padding: 0 20px 0 0;
  vertical-align: middle;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_image,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_image {
  padding: 0 0 20px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image img {
  width: 70px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: inline-block;
  vertical-align: middle;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  padding: 0 0 20px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_header {
  padding: 0;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_title {
  margin: 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_grid.quote_without_img .cmsmasters_quote_content {
  padding-left: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content {
  margin: 0;
  padding-left: 90px;
  position: relative;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_content,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_content {
  text-align: center;
  padding-left: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/***************** Pricing tables ******************/
.cmsmasters_pricing_table {
  margin: 0 -1.7%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item {
  border-width: 1px;
  border-style: solid;
  display: block;
  margin: 0 1.7% 20px;
  position: relative;
  float: left;
}
.pricing_four.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 21.6%;
}
.pricing_three.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 29.93%;
}
.pricing_two.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 46.6%;
}
.pricing_one.cmsmasters_pricing_table .cmsmasters_pricing_item {
  float: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item_inner {
  position: relative;
  text-align: center;
}
.cmsmasters_pricing_table .pricing_title {
  margin: 0;
  padding: 20px;
  text-align: center;
}
.cmsmasters_pricing_table .cmsmasters_price_wrap {
  word-spacing: -5px;
  padding: 35px 20px;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_pricing_table .cmsmasters_price {
  display: inline-block;
}
.cmsmasters_pricing_table .cmsmasters_currency,
.cmsmasters_pricing_table .cmsmasters_coins {
  display: inline-block;
}
.cmsmasters_pricing_table .cmsmasters_period {
  margin-top: 10px;
  display: block;
  text-align: center;
  word-spacing: 0;
}
.cmsmasters_pricing_table .feature_list {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  text-align: center;
}
.cmsmasters_pricing_table .feature_list li {
  margin: 0;
  padding: 10px 20px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .feature_list li:before {
  content: none;
}
.cmsmasters_pricing_table .feature_list + .cmsmasters_button {
  margin-top: 0;
}
.cmsmasters_pricing_table .cmsmasters_button {
  margin: 30px 0;
}
.cmsmasters_pricing_table .pricing_best .cmsmasters_price_wrap {
  margin: 0 -1px;
}
/***************** Google Maps ******************/
.resizable_block .google_map {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  height: 100%;
}
.google_map img {
  max-width: none;
}
/***************** Caption ******************/
.cmsmasters_img {
  display: inline-block;
  max-width: 100%;
}
.cmsmasters_img.cmsmasters_image_l {
  margin-right: 22px;
  float: left;
}
.cmsmasters_img.cmsmasters_image_r {
  margin-left: 22px;
  float: right;
}
.cmsmasters_img.with_caption {
  padding: 15px 15px 0 15px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img .cmsmasters_img_caption {
  padding: 15px 0;
  text-align: center;
}
.wp-caption {
  max-width: 100%;
  padding: 0;
  margin-bottom: 22px;
  overflow: hidden;
}
.wp-caption:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wp-caption.alignleft {
  margin-right: 1rem;
}
.wp-caption.alignright {
  margin-left: 1rem;
}
.wp-caption.alignnone {
  clear: both;
}
.wp-caption .wp-caption-text {
  padding: 15px 0;
  text-align: center;
}
/***************** WP Gallery ******************/
.gallery {
  position: relative;
  margin: 0 -1.7% 20px;
}
.gallery img {
  width: 100%;
  border: none;
}
.gallery .gallery-item {
  position: relative;
  float: left;
  margin: 0 1.7% 20px;
}
.gallery .gallery-item .wp-caption-text {
  word-wrap: break-word;
  padding: 5px;
  text-align: center;
}
.gallery.gallery-columns-1 .gallery-item {
  width: 96.6%;
  position: relative;
  float: none;
  display: block;
  clear: both;
}
.gallery.gallery-columns-2 .gallery-item {
  width: 46.6%;
}
.gallery.gallery-columns-2 .gallery-item:nth-child(2n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-3 .gallery-item {
  width: 29.933%;
}
.gallery.gallery-columns-3 .gallery-item:nth-child(3n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-4 .gallery-item {
  width: 21.6%;
}
.gallery.gallery-columns-4 .gallery-item:nth-child(4n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-5 .gallery-item {
  width: 16.6%;
}
.gallery.gallery-columns-5 .gallery-item:nth-child(5n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-6 .gallery-item {
  width: 13.267%;
}
.gallery.gallery-columns-6 .gallery-item:nth-child(6n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-7 .gallery-item {
  width: 10.886%;
}
.gallery.gallery-columns-7 .gallery-item:nth-child(7n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-8 .gallery-item {
  width: 9.1%;
}
.gallery.gallery-columns-8 .gallery-item:nth-child(8n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-9 .gallery-item {
  width: 7.711%;
}
.gallery.gallery-columns-9 .gallery-item:nth-child(9n+1) {
  display: block;
  clear: both;
}
.gallery:after,
.gallery-item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
/***************** Sidebar ******************/
.cmsmasters_sidebar {
  margin: 0 -1.7%;
}
.cmsmasters_sidebar aside {
  margin: 0 1.7%;
  float: left;
}
.sidebar_layout_14141414 aside {
  width: 21.6%;
}
.sidebar_layout_141412 > aside:first-child,
.sidebar_layout_141412 > aside:first-child + aside,
.sidebar_layout_141412 > div.cl + aside,
.sidebar_layout_141412 > div.cl + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside {
  width: 21.6%;
}
.sidebar_layout_141412 > aside:first-child + aside + aside,
.sidebar_layout_141412 > div.cl + aside + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 46.6%;
}
.sidebar_layout_141214 > aside:first-child,
.sidebar_layout_141214 > aside:first-child + aside + aside,
.sidebar_layout_141214 > div.cl + aside,
.sidebar_layout_141214 > div.cl + aside + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 21.6%;
}
.sidebar_layout_141214 > aside:first-child + aside,
.sidebar_layout_141214 > div.cl + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside {
  width: 46.6%;
}
.sidebar_layout_121414 > aside:first-child,
.sidebar_layout_121414 > div.cl + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside {
  width: 46.6%;
}
.sidebar_layout_121414 > aside:first-child + aside,
.sidebar_layout_121414 > aside:first-child + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 21.6%;
}
.sidebar_layout_131313 aside {
  width: 29.93%;
}
.sidebar_layout_3414 > aside:first-child,
.sidebar_layout_3414 > div.cl + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside {
  width: 71.6%;
}
.sidebar_layout_3414 > aside:first-child + aside,
.sidebar_layout_3414 > div.cl + aside + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside + aside {
  width: 21.6%;
}
.sidebar_layout_1434 > aside:first-child,
.sidebar_layout_1434 > div.cl + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside {
  width: 21.6%;
}
.sidebar_layout_1434 > aside:first-child + aside,
.sidebar_layout_1434 > div.cl + aside + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside + aside {
  width: 71.6%;
}
.sidebar_layout_2313 > aside:first-child,
.sidebar_layout_2313 > div.cl + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside {
  width: 63.27%;
}
.sidebar_layout_2313 > aside:first-child + aside,
.sidebar_layout_2313 > div.cl + aside + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside + aside {
  width: 29.93%;
}
.sidebar_layout_1323 > aside:first-child,
.sidebar_layout_1323 > div.cl + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside {
  width: 29.93%;
}
.sidebar_layout_1323 > aside:first-child + aside,
.sidebar_layout_1323 > div.cl + aside + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside + aside {
  width: 63.27%;
}
.sidebar_layout_1212 aside {
  width: 46.6%;
}
.sidebar_layout_11 aside {
  width: 96.6%;
}
/***************** Share ******************/
.cmsmasters_sharing {
  overflow: hidden;
}
.share_wrap {
  float: left;
  margin-bottom: 20px;
  margin-right: 20px;
}
.share_wrap:last-child {
  margin-right: 0;
}
.social_vertical .share_wrap {
  float: none;
  margin-right: 0;
}
.share_wrap > a:before {
  margin-right: 10px;
}
/***************** Twitter Stripe ******************/
.cmsmasters_twitter_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_twitter_wrap .owl-pagination {
  visibility: hidden;
  display: none;
}
.cmsmasters_twitter_wrap .owl-buttons {
  width: 76px;
  height: 37px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .owl-buttons > div {
  margin-top: -18px;
}
.cmsmasters_twitter_wrap .owl-buttons > div > span {
  width: 37px;
  height: 37px;
}
.cmsmasters_twitter_wrap .twr_icon {
  font-size: 26px;
  line-height: 26px;
  display: block;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_twitter_wrap .twr_icon:before {
  margin: 0 !important;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter {
  position: relative;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item {
  padding: 5px 100px 5px 45px;
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  min-height: 60px;
}
.cmsmasters_twitter_wrap .published {
  padding: 0;
  width: 130px;
  display: block;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item_content {
  display: block;
}
/***************** Dropcap ******************/
.cmsmasters_dropcap {
  margin: 5px 33px 5px 23px;
  line-height: 50px;
  float: left;
}
.cmsmasters_dropcap.type2 {
  width: 50px;
  height: 50px;
  margin: 5px 25px 5px 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
}
/***************** Clients ******************/
.cmsmasters_clients_slider {
  margin: 0;
  padding: 0;
}
.cmsmasters_clients_slider.enable_slides_control {
  padding-bottom: 25px;
}
.cmsmasters_clients_slider.enable_arrow_control {
  padding-top: 55px;
}
.cmsmasters_clients_slider .cmsmasters_owl_slider_item {
  min-width: 170px;
}
.cmsmasters_clients_slider .owl-pagination {
  bottom: -25px;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-prev {
  left: -46px;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-next {
  right: -46px;
}
.cmsmasters_clients_slider_wrap {
  padding: 0 46px;
}
.cmsmasters_clients_item {
  line-height: 180px;
  height: 180px;
  vertical-align: middle;
  position: relative;
  text-align: center;
}
.cmsmasters_clients_item img {
  display: inline-block;
  padding: 0 20px;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  vertical-align: middle;
}
.cmsmasters_clients_item a {
  display: block;
  line-height: 180px;
  height: 100%;
}
.cmsmasters_clients_item:hover {
  outline: none;
}
.cmsmasters_clients_grid {
  overflow: hidden;
}
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item {
  width: 20%;
}
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item {
  width: 25%;
}
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item {
  width: 33.33%;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item {
  width: 50%;
}
.cmsmasters_clients_grid .cmsmasters_clients_items {
  height: auto;
}
.cmsmasters_clients_grid .cmsmasters_clients_item {
  margin-bottom: 20px;
  float: left;
}
.cmsmasters_clients_grid .cmsmasters_clients_item img {
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.1;
}
.cmsmasters_clients_grid .cmsmasters_clients_item.shortcode_animated img {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item:last-child,
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item {
  width: 100%;
  float: none;
  height: auto;
  line-height: 0;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item:nth-child(2n+1),
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item:nth-child(3n+1),
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item:nth-child(4n+1),
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item:nth-child(5n+1) {
  clear: both;
}
/*-------------------------------------------------------------------------*/
/* Widgets Styles
/*-------------------------------------------------------------------------*/
.widget {
  position: relative;
  padding: 0 0 44px;
}
.widget .widgettitle {
  margin-bottom: 25px;
}
/***************** Widget Advertisement ******************/
.widget_custom_advertisement_entries .widgettitle {
  margin-bottom: 25px;
}
.widget_custom_advertisement_entries .adv_image_wrap {
  margin: -5px;
  overflow: hidden;
}
.widget_custom_advertisement_entries .adv_image_wrap .adv_widget_image {
  width: 125px;
  height: 125px;
  float: left;
  margin: 5px;
}
/***************** Widget Lists ******************/
.widget_pages ul,
.widget_categories ul,
.widget_archive ul,
.widget_meta ul,
.widget_recent_comments ul,
.widget_recent_entries ul {
  margin: 0;
  padding: 0;
}
.widget_pages ul li,
.widget_categories ul li,
.widget_archive ul li,
.widget_meta ul li,
.widget_recent_comments ul li,
.widget_recent_entries ul li {
  margin: 0;
  padding: 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.widget_pages ul li:before,
.widget_categories ul li:before,
.widget_archive ul li:before,
.widget_meta ul li:before,
.widget_recent_comments ul li:before,
.widget_recent_entries ul li:before {
  content: none;
}
.widget_pages ul li a,
.widget_categories ul li a,
.widget_archive ul li a,
.widget_meta ul li a,
.widget_recent_comments ul li a,
.widget_recent_entries ul li a {
  display: inline-block;
  padding: 2px 0;
}
.widget_pages > ul > li:first-child,
.widget_categories > ul > li:first-child,
.widget_archive > ul > li:first-child,
.widget_meta > ul > li:first-child,
.widget_recent_comments > ul > li:first-child,
.widget_recent_entries > ul > li:first-child {
  border-top-width: 0;
  border-top-style: solid;
}
.widget_pages > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > a {
  padding-left: 15px;
}
.widget_pages > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > a {
  padding-left: 30px;
}
.widget_pages > ul > li > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 45px;
}
.widget_pages > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_categories > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_archive > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_meta > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_comments > ul > li > ul > li > ul > li > ul > li > ul > li > a,
.widget_recent_entries > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 60px;
}
.widget_pages .post-date,
.widget_categories .post-date,
.widget_archive .post-date,
.widget_meta .post-date,
.widget_recent_comments .post-date,
.widget_recent_entries .post-date {
  display: block;
  margin: -3px 0 0;
}
.widget_recent_comments ul li {
  padding: 8px 0;
}
.widget_recent_entries .post-date {
  margin: 5px 0 0;
}
.widget_pages ul li a {
  padding: 9px 0;
}
.widget_categories ul li a,
.widget_archive ul li a,
.widget_meta ul li a {
  padding: 2px 0;
  position: relative;
}
.widget_categories ul li a:before,
.widget_archive ul li a:before,
.widget_meta ul li a:before {
  content: '\e888';
  font-size: 12px;
  font-style: normal;
  font-family: 'fontello';
  margin: 0 10px 0 1px;
  position: relative;
}
.widget_categories .screen-reader-text,
.widget_archive .screen-reader-text {
  display: none;
}
/***************** Widget Calendar ******************/
#wp-calendar {
  border-spacing: 0;
  width: auto;
  min-width: 200px;
}
#wp-calendar caption {
  text-align: left;
  padding: 0 0 10px 20px;
  position: relative;
}
#wp-calendar caption:before {
  content: '\e94f';
  font-family: 'fontello';
  font-size: 14px;
  position: absolute;
  left: 2px;
  top: 0;
}
#wp-calendar td,
#wp-calendar th {
  padding: 5px 0;
  border-width: 0;
  border-style: solid;
}
#wp-calendar tfoot a {
  display: inline-block;
}
/***************** Widget Contact Form ******************/
.widget_custom_contact_form_entries input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.widget_custom_contact_form_entries textarea,
.widget_custom_contact_form_entries select {
  width: 100%;
}
.widget_custom_contact_form_entries .form_info.submit_wrap {
  padding-top: 0;
}
/***************** Widget Contact Info ******************/
.widget_custom_contact_info_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_contact_info_entries > span,
.widget_custom_contact_info_entries .adress_wrap {
  display: block;
  margin: 20px 0 0;
  padding: 0 0 0 25px;
  position: relative;
}
.widget_custom_contact_info_entries > span:first-child,
.widget_custom_contact_info_entries .adress_wrap:first-child {
  margin: 0;
}
.widget_custom_contact_info_entries > span:before,
.widget_custom_contact_info_entries .adress_wrap:before {
  font-size: 16px;
  line-height: 18px;
  text-align: center;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.widget_custom_contact_info_entries .adress_wrap span {
  display: block;
}
.widget_custom_contact_info_entries .adress_wrap:before {
  top: 0;
  bottom: auto;
}
/***************** Widget Custom Menu ******************/
.widget_nav_menu {
  position: relative;
  overflow: hidden;
}
.widget_nav_menu ul {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li:before {
  content: none;
}
.widget_nav_menu ul li a {
  line-height: 20px;
  display: block;
  padding: 10px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  position: relative;
}
.widget_nav_menu ul li a:empty {
  display: none;
}
.widget_nav_menu ul li a:before {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  opacity: 0;
}
.widget_nav_menu ul li a:hover:before {
  opacity: 1;
}
.widget_nav_menu ul li.current_page_item > a:before {
  opacity: 1;
}
.widget_nav_menu .menu {
  position: relative;
}
.widget_nav_menu .menu > li:last-child > a {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.widget_nav_menu .menu > li:last-child > a:before {
  content: none;
}
.widget_nav_menu .menu ul li a {
  padding-left: 20px;
}
.widget_nav_menu .menu ul li li a {
  padding-left: 40px;
}
.widget_nav_menu .menu ul li li li a {
  padding-left: 60px;
}
.widget_nav_menu .menu ul li li li li a {
  padding-left: 70px;
}
.widget_nav_menu .menu ul li li li li li a {
  padding-left: 80px;
}
.widget_nav_menu .menu ul li li li li li li a {
  padding-left: 90px;
}
.widget_nav_menu .menu ul li li li li li li li a {
  padding-left: 100px;
}
.widget_nav_menu .menu ul li li li li li li li li a {
  padding-left: 110px;
}
.widget_nav_menu .menu ul li li li li li li li li li a {
  padding-left: 120px;
}
.widget_nav_menu .menu ul li li li li li li li li li li a {
  padding-left: 130px;
}
/***************** Widget Facebook ******************/
.widget_custom_facebook_entries iframe {
  margin-bottom: 0;
}
/***************** Widget Flickr ******************/
.widget_custom_flickr_entries .wrap {
  margin: 0 -10px;
}
.widget_custom_flickr_entries .more_button {
  display: none;
}
.widget_custom_flickr_entries .flickr_badge_image {
  margin: 0 10px 20px;
  float: left;
}
/***************** Widget Latest and Popular Projects ******************/
.widget_custom_popular_projects_entries,
.widget_custom_latest_projects_entries {
  position: relative;
}
.widget_custom_popular_projects_entries .owl-pagination,
.widget_custom_latest_projects_entries .owl-pagination {
  display: none;
}
.widget_custom_popular_projects_entries .widgettitle,
.widget_custom_latest_projects_entries .widgettitle {
  padding: 0 77px 0 0;
}
.widget_custom_popular_projects_entries .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widget_custom_projects_entries_slides {
  padding: 47px 0 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides {
  padding: 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons {
  position: absolute;
  width: 77px;
  left: auto;
  right: 0;
  top: -50px;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons > div,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons > div {
  margin: 0;
  top: -5px;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons > div > span,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons > div > span {
  width: 37px;
  height: 37px;
}
.widget_custom_popular_projects_entries .cmsmasters_widget_project,
.widget_custom_latest_projects_entries .cmsmasters_widget_project {
  padding: 0 1px 2px;
}
.widget_custom_popular_projects_entries .cmsmasters_widget_project .preloader,
.widget_custom_latest_projects_entries .cmsmasters_widget_project .preloader {
  padding-bottom: 72.41%;
}
.widget_custom_popular_projects_entries .cmsmasters_widget_project_cont_info,
.widget_custom_latest_projects_entries .cmsmasters_widget_project_cont_info {
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
  padding: 10px 0;
  margin-bottom: 20px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_title,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_title {
  margin: 0;
}
.widget_custom_popular_projects_entries .cmsmasters_widget_project_footer,
.widget_custom_latest_projects_entries .cmsmasters_widget_project_footer {
  float: right;
}
.widget_custom_popular_projects_entries .cmsmasters_widget_project_footer > span,
.widget_custom_latest_projects_entries .cmsmasters_widget_project_footer > span {
  margin-left: 10px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_content,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_content {
  margin-top: 10px;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project_content > *:last-child,
.widget_custom_latest_projects_entries .cmsmasters_slider_project_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_post_read_more,
.widget_custom_latest_projects_entries .cmsmasters_slider_post_read_more {
  margin-top: 15px;
  display: inline-block;
}
/***************** Widget Posts Tabs ******************/
.widget_custom_posts_tabs_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs {
  position: relative;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: inline-block;
  margin: 0;
  padding: 0;
  float: none;
  width: 33.32%;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item a {
  text-transform: uppercase;
  line-height: 20px;
  padding: 12px 0;
  text-align: center;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap {
  padding: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap > .cmsmasters_tab:first-child {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab ul {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li {
  margin: 20px 0 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:first-child {
  margin: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:before {
  content: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li p {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_latest li:after,
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_popular li:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  height: 60px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li > p {
  margin: 0;
  padding: 10px 0 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img {
  margin-right: 20px;
  z-index: 1;
  overflow: hidden;
  width: 60px;
  height: 60px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img img,
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img .img_placeholder_small {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .published {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont {
  display: inline-block;
  vertical-align: middle;
  padding: 0 0 0 80px;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > a {
  outline: none;
}
/***************** Widget RSS ******************/
.widget_rss img {
  margin: -3px 3px 0 0;
}
.widget_rss ul {
  margin: 0;
  padding: 0;
}
.widget_rss ul li {
  margin: 20px 0 0;
  padding: 20px 0 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.widget_rss ul li:first-child {
  padding: 0;
  margin: 0;
  border-top-width: 0;
  border-top-style: solid;
}
.widget_rss ul li:before {
  content: none;
}
.widget_rss ul li .rsswidget {
  margin-bottom: 10px;
  display: inline-block;
}
.widget_rss ul li .rss-date {
  display: block;
}
.widget_rss ul li .rssSummary {
  padding: 5px 0 0;
  overflow: hidden;
}
.widget_rss ul li cite {
  display: block;
  padding: 7px 0 0;
  text-align: right;
}
/***************** Widget Tag Cloud ******************/
.widget_tag_cloud {
  position: relative;
  overflow: hidden;
}
.widget_tag_cloud a {
  line-height: 1em;
  display: inline-block;
  margin: 0 4px 0 0;
}
.widget_tag_cloud a:last-child {
  margin: 0;
}
/***************** Widget Twitter ******************/
.widget_custom_twitter_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_twitter_entries ul {
  margin: 0;
  padding: 0;
}
.widget_custom_twitter_entries ul li {
  margin: 0 0 25px;
  padding: 0;
  position: relative;
}
.widget_custom_twitter_entries ul li:last-child {
  margin: 0;
}
.widget_custom_twitter_entries ul li:before {
  content: none;
}
.widget_custom_twitter_entries .tweet_time {
  display: block;
  padding: 0 0 0 35px;
  margin-bottom: 10px;
  position: relative;
}
.widget_custom_twitter_entries .tweet_time:before {
  font-size: 18px;
  line-height: 18px;
  position: absolute;
  left: 4px;
  top: 0;
}
.widget_custom_twitter_entries .tweet_text {
  display: block;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Search + Archives + Sitemap + Error + Other Styles
/*-------------------------------------------------------------------------*/
/***************** Archives + Search ******************/
.cmsmasters_search,
.cmsmasters_archive {
  position: relative;
  overflow: hidden;
}
.content_wrap.fullwidth .cmsmasters_search,
.content_wrap.fullwidth .cmsmasters_archive {
  padding: 50px 0;
}
.cmsmasters_search > .about_author,
.cmsmasters_archive > .about_author {
  padding: 0 0 20px;
  margin: 0 0 50px;
  border-top-width: 0;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_search > .about_author .about_author_inner,
.cmsmasters_archive > .about_author .about_author_inner {
  padding-top: 0;
}
.cmsmasters_search > .cmsmasters_wrap_pagination,
.cmsmasters_archive > .cmsmasters_wrap_pagination {
  padding: 50px 0;
}
.cmsmasters_search .cmsmasters_search_zero .search_bar_wrap,
.cmsmasters_archive .cmsmasters_search_zero .search_bar_wrap {
  max-width: 400px;
}
.content .cmsmasters_search .cmsmasters_search_zero,
.content .cmsmasters_archive .cmsmasters_search_zero {
  text-align: left;
}
.content .cmsmasters_search .cmsmasters_search_zero.tar,
.content .cmsmasters_archive .cmsmasters_search_zero.tar {
  float: none;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero,
.middle_content .cmsmasters_archive .cmsmasters_search_zero {
  max-width: 650px;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero.tac,
.middle_content .cmsmasters_archive .cmsmasters_search_zero.tac {
  margin: 0 auto;
}
.cmsmasters_archive_type {
  padding: 60px 0 0;
  overflow: hidden;
}
.cmsmasters_archive_type:first-of-type {
  padding-top: 0;
}
.cmsmasters_archive_type .preloader {
  padding-bottom: 100%;
}
.cmsmasters_archive_type .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap {
  margin: 0 30px 0 0;
  width: 23%;
  float: left;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_cont_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_type {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_header {
  padding: 0 0 20px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_title {
  margin: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_title a {
  word-wrap: break-word;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content p {
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info {
  padding: 13px 0 0;
  margin-top: 20px;
  position: relative;
  overflow: hidden;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_archive_type .cmsmasters_archive_item_date_wrap {
  padding: 0 0 0 10px;
  float: right;
}
.cmsmasters_archive_type .cmsmasters_archive_item_user_name {
  padding: 0 10px 0 0;
}
/***************** Sitemap ******************/
.cmsmasters_sitemap_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap ul,
.cmsmasters_sitemap_wrap ol,
.cmsmasters_sitemap_wrap li {
  margin: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap ul:before,
.cmsmasters_sitemap_wrap ol:before,
.cmsmasters_sitemap_wrap li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_divider {
  margin-bottom: 30px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li {
  width: 100%;
  padding-top: 30px;
  position: relative;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child {
  margin-top: 0;
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a {
  display: inline-block;
  margin-bottom: 35px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a + ul {
  margin-top: -10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul {
  width: 100%;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li {
  width: 25%;
  padding-top: 0;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category {
  padding: 5px 0 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li {
  width: 25%;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive {
  padding: 5px 0 20px;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li {
  width: 25%;
  margin-bottom: 20px;
  padding-right: 20px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(45) {
  clear: both;
}
/***************** Error ******************/
.error {
  overflow: hidden;
}
.error .error_inner {
  padding: 0 0 70px;
}
.error .error_title {
  font-size: 260px;
  line-height: 1em;
  margin: 0;
  padding: 95px 0 75px;
  text-align: center;
}
.error .error_subtitle {
  text-align: center;
  margin: 0;
  padding: 0;
}
.error_cont {
  padding: 80px 0;
  text-align: center;
}
.error_cont .search_bar_wrap {
  display: inline-block;
  vertical-align: middle;
  width: 270px;
  max-width: 100%;
  margin: 0 20px;
}
.error_cont .error_button_wrap {
  display: inline-block;
  vertical-align: middle;
  margin: 0 20px;
}
/***************** Attachment Page ******************/
.cmsmasters_attach_img {
  padding: 40px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_info {
  padding: 0 0 20px;
  margin: 0 0 30px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_edit {
  margin: 0;
  padding: 0;
  float: right;
}
.cmsmasters_attach_img .cmsmasters_attach_img_meta {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
/***************** Other ******************/
#main .with_frm_style .frm_form_fields input,
#main #wpcontent .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields textarea {
  padding: 10px;
}
#lang_sel ul {
  overflow: visible;
}
#lang_sel_footer {
  display: none;
}
/***************** PayPal Donations ******************/
.cmsmasters_paypal_donations {
  display: inline-block;
  position: relative;
}
.cmsmasters_paypal_donations > form > .paypal-donations input[type="image"] {
  display: block;
  z-index: 100;
  width: 100%;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.cmsmasters_paypal_donations > form > .paypal-donations > img {
  display: none;
}
.cmsmasters_paypal_donations .cmsmasters_button {
  display: block;
  position: relative;
  z-index: 10;
}
/*-------------------------------------------------------------------------*/
/* Contact Forms Styles
/*-------------------------------------------------------------------------*/
.cmsmasters-form-builder {
  margin: 0 -1.7%;
}
.cmsmasters-form-builder .success_box {
  margin: 0 1.7% 10px;
  width: 96.6%;
}
.cmsmasters-form-builder .form_info {
  margin: 0 1.7%;
  padding-bottom: 10px;
}
.cmsmasters-form-builder .form_info.submit_wrap {
  padding-top: 10px;
}
.cmsmasters-form-builder [class*="one_"] input[type="text"],
.cmsmasters-form-builder [class*="one_"] select,
.cmsmasters-form-builder [class*="one_"] textarea {
  width: 100%;
}
span.wpcf7-list-item {
  display: block;
  margin: 0 !important;
}
.wpcf7-list-item-label,
body .cmsmasters-form-builder .check_parent input[type="checkbox"] + label,
body .cmsmasters-form-builder .check_parent input[type="radio"] + label,
#wp-comment-cookies-consent[type="checkbox"] + label,
.woocommerce-form__input-checkbox + span {
  padding-left: 30px;
  padding-right: 0;
  position: relative;
  cursor: pointer;
  float: left;
}
.wpcf7-list-item label {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 5px 0;
}
.cmsmasters-form-builder .check_parent input[type="checkbox"],
.cmsmasters-form-builder .check_parent input[type="radio"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"],
#wp-comment-cookies-consent[type="checkbox"],
.woocommerce-form__input-checkbox {
  float: left !important;
  opacity: 0 !important;
  width: 1em !important;
  height: 1em !important;
  margin: auto !important !important;
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: 0 !important;
  bottom: 0 !important;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:before,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before,
#wp-comment-cookies-consent[type="checkbox"] + label:before,
.woocommerce-form__input-checkbox + span:before {
  content: '';
  border-width: 1px;
  border-style: solid;
  width: 17px;
  height: 17px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before {
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 18px;
  height: 18px;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after,
#wp-comment-cookies-consent[type="checkbox"] + label:after,
.woocommerce-form__input-checkbox + span:after {
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  position: absolute;
  left: 5px;
  top: 5px;
  opacity: 0;
}
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  top: 8px;
}
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
#wp-comment-cookies-consent[type='checkbox'] + label:after,
.woocommerce-form__input-checkbox + span:after {
  margin-top: 2px;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
#wp-comment-cookies-consent[type='checkbox'] + label:after,
.woocommerce-form__input-checkbox + span:after {
  font-size: 13px;
  width: 17px;
  height: 17px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
  line-height: 17px;
  content: '\eabb';
  font-weight: bold;
  font-family: 'fontello';
  text-align: center;
}
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
#wp-comment-cookies-consent[type='checkbox'] + label:after {
  top: 0;
  bottom: 0;
  margin: auto !important;
  width: 17px;
  height: 17px;
  line-height: 17px;
}
@-moz-document url-prefix() {
  .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
  .cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
  #wp-comment-cookies-consent[type='checkbox'] + label:after,
  .woocommerce-form__input-checkbox + span:after {
    line-height: 20px;
  }
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  content: '';
  -webkit-border-radius: 50%;
  border-radius: 50%;
  width: 10px;
  height: 10px;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"]:checked + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"]:checked + label:after,
#wp-comment-cookies-consent[type="checkbox"]:checked + label:after,
.woocommerce-form__input-checkbox:checked + span:after {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_mailpoet_form .shortcode_wysija,
.cmsmasters_mailpoet_form .mailpoet_form_shortcode {
  text-align: center;
}
.cmsmasters_mailpoet_form .widget_wysija,
.cmsmasters_mailpoet_form form.mailpoet_form {
  position: relative;
  display: inline-block;
}
.cmsmasters_mailpoet_form form {
  font-size: 0;
}
.cmsmasters_mailpoet_form .widgettitle {
  margin: 0;
}
.cmsmasters_mailpoet_form .wysija-paragraph,
.cmsmasters_mailpoet_form .mailpoet_paragraph {
  padding: 0;
  display: inline-block;
  vertical-align: bottom;
  min-width: 345px;
  position: relative;
}
.cmsmasters_column.one_half .cmsmasters_mailpoet_form .wysija-paragraph,
.cmsmasters_column.one_half .cmsmasters_mailpoet_form .mailpoet_paragraph,
.cmsmasters_column.one_third .cmsmasters_mailpoet_form .wysija-paragraph,
.cmsmasters_column.one_third .cmsmasters_mailpoet_form .mailpoet_paragraph,
.cmsmasters_column.one_fourth .cmsmasters_mailpoet_form .wysija-paragraph,
.cmsmasters_column.one_fourth .cmsmasters_mailpoet_form .mailpoet_paragraph {
  min-width: auto;
}
.cmsmasters_mailpoet_form .mailpoet_paragraph:first-of-type + .mailpoet_paragraph {
  min-width: auto;
}
#page .cmsmasters_mailpoet_form input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]) {
  height: 56px;
  padding: 10px 25px !important;
  width: 100%;
  -webkit-border-radius: 0;
  border-radius: 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_mailpoet_form .wysija-submit-field,
.cmsmasters_mailpoet_form .mailpoet_submit {
  line-height: 56px;
  padding: 0 50px;
  -webkit-border-radius: 0;
  border-radius: 0;
  border-width: 0;
  border-style: solid;
  vertical-align: bottom;
  margin-left: -5px !important;
}
.cmsmasters_mailpoet_form .formError {
  top: -100px !important;
  left: 0 !important;
  margin-left: 0 !important;
}
.cmsmasters_mailpoet_form .formError .formErrorContent {
  margin: 0;
}
/*-------------------------------------------------------------------------*/
/* Datepicker Styles
/*-------------------------------------------------------------------------*/
.datepicker {
  z-index: 9999 !important;
}
.datepicker .active {
  background-image: none !important;
}
.datepicker .active:hover {
  opacity: 0.9;
}
/*-------------------------------------------------------------------------*/
/* CSS3 Animations
/*-------------------------------------------------------------------------*/
html.csstransitions {
  /* Custom Animations */
  /* Global Animations */
}
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_close,
html.csstransitions .cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_post_day,
html.csstransitions .cmsmasters_prev_arrow span,
html.csstransitions .cmsmasters_next_arrow span {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .search_bar_wrap .search_button button:before {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list_item,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrapper:before {
  -webkit-transition: border-color .3s ease-in-out;
  -moz-transition: border-color .3s ease-in-out;
  -ms-transition: border-color .3s ease-in-out;
  -o-transition: border-color .3s ease-in-out;
  transition: border-color .3s ease-in-out;
}
html.csstransitions input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
html.csstransitions textarea,
html.csstransitions select {
  -webkit-transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out;
  -moz-transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out;
  -ms-transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out;
  -o-transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out;
  transition: border-color .2s ease-in-out, box-shadow .2s ease-in-out;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_project_puzzle .project_inner {
  -webkit-transition: background-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out;
  transition: background-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_img_rollover .cmsmasters_open_post_link,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_post_link {
  -webkit-transition: opacity .4s ease-in-out, color .4s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, color .4s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, color .4s ease-in-out;
  -o-transition: opacity .4s ease-in-out, color .4s ease-in-out;
  transition: opacity .4s ease-in-out, color .4s ease-in-out;
}
html.csstransitions .cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link {
  -webkit-transition: opacity .4s ease-in-out .1s, color .3s ease-in-out;
  -moz-transition: opacity .4s ease-in-out .1s, color .3s ease-in-out;
  -ms-transition: opacity .4s ease-in-out .1s, color .3s ease-in-out;
  -o-transition: opacity .4s ease-in-out .1s, color .3s ease-in-out;
  transition: opacity .4s ease-in-out .1s, color .3s ease-in-out;
}
html.csstransitions .cmsmasters_profile .cmsmasters_img_rollover_wrap .cmsmasters_open_post_link:before {
  -webkit-transition: color .3s ease-in-out, bottom .4s ease-in-out .1s, opacity .4s ease-in-out .1s;
  -moz-transition: color .3s ease-in-out, bottom .4s ease-in-out .1s, opacity .4s ease-in-out .1s;
  -ms-transition: color .3s ease-in-out, bottom .4s ease-in-out .1s, opacity .4s ease-in-out .1s;
  -o-transition: color .3s ease-in-out, bottom .4s ease-in-out .1s, opacity .4s ease-in-out .1s;
  transition: color .3s ease-in-out, bottom .4s ease-in-out .1s, opacity .4s ease-in-out .1s;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_img_rollover .cmsmasters_open_post_link:before,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover .cmsmasters_open_post_link:before {
  -webkit-transition: color .4s ease-in-out, bottom .4s ease-in-out, opacity .4s ease-in-out;
  -moz-transition: color .4s ease-in-out, bottom .4s ease-in-out, opacity .4s ease-in-out;
  -ms-transition: color .4s ease-in-out, bottom .4s ease-in-out, opacity .4s ease-in-out;
  -o-transition: color .4s ease-in-out, bottom .4s ease-in-out, opacity .4s ease-in-out;
  transition: color .4s ease-in-out, bottom .4s ease-in-out, opacity .4s ease-in-out;
}
html.csstransitions .cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_cont_info {
  -webkit-transition: bottom .3s ease-in-out .1s, opacity .3s ease-in-out .1s;
  -moz-transition: bottom .3s ease-in-out .1s, opacity .3s ease-in-out .1s;
  -ms-transition: bottom .3s ease-in-out .1s, opacity .3s ease-in-out .1s;
  -o-transition: bottom .3s ease-in-out .1s, opacity .3s ease-in-out .1s;
  transition: bottom .3s ease-in-out .1s, opacity .3s ease-in-out .1s;
}
html.csstransitions .cmsmasters_project_puzzle .project_outer .cmsmasters_project_cont_info,
html.csstransitions .cmsmasters_project_puzzle .project_outer .cmsmasters_project_footer,
html.csstransitions .cmsmasters_project_puzzle .project_outer .cmsmasters_project_header {
  -webkit-transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
  transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
}
html.csstransitions .cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_header {
  -webkit-transition: bottom .3s ease-in-out .2s, opacity .3s ease-in-out .2s;
  -moz-transition: bottom .3s ease-in-out .2s, opacity .3s ease-in-out .2s;
  -ms-transition: bottom .3s ease-in-out .2s, opacity .3s ease-in-out .2s;
  -o-transition: bottom .3s ease-in-out .2s, opacity .3s ease-in-out .2s;
  transition: bottom .3s ease-in-out .2s, opacity .3s ease-in-out .2s;
}
html.csstransitions .cmsmasters_project_puzzle .project_outer:hover .cmsmasters_project_footer {
  -webkit-transition: bottom .3s ease-in-out .3s, opacity .3s ease-in-out .3s;
  -moz-transition: bottom .3s ease-in-out .3s, opacity .3s ease-in-out .3s;
  -ms-transition: bottom .3s ease-in-out .3s, opacity .3s ease-in-out .3s;
  -o-transition: bottom .3s ease-in-out .3s, opacity .3s ease-in-out .3s;
  transition: bottom .3s ease-in-out .3s, opacity .3s ease-in-out .3s;
}
html.csstransitions .cmsmasters_profile .profile img,
html.csstransitions .cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  -webkit-transition: transform .3s ease-in-out;
  -moz-transition: transform .3s ease-in-out;
  -ms-transition: transform .3s ease-in-out;
  -o-transition: transform .3s ease-in-out;
  transition: transform .3s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form,
html.csstransitions .widget_nav_menu ul li a:before,
html.csstransitions .cmsmasters_project_puzzle a:before,
html.csstransitions .cmsmasters_project_puzzle .cmsmasters_project_title,
html.csstransitions .cmsmasters_project_puzzle .cmsmasters_project_cont_info a,
html.csstransitions .post.cmsmasters_post_puzzle .preloader:after {
  -webkit-transition: opacity .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out;
  transition: opacity .3s ease-in-out;
}
html.csstransitions .post.cmsmasters_post_puzzle .cmsmasters_post_comments a:before,
html.csstransitions .post.cmsmasters_post_puzzle .cmsmasters_post_likes a:before,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_content,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_cat_suf,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_author_suf,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_likes span,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_comments span,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap .cmsmasters_post_date,
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrap a {
  -webkit-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out, color .3s ease-in-out;
  transition: opacity .3s ease-in-out, color .3s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form {
  -webkit-transition: visibility .4s ease-in-out, opacity .4s ease-in-out;
  -moz-transition: visibility .4s ease-in-out, opacity .4s ease-in-out;
  -ms-transition: visibility .4s ease-in-out, opacity .4s ease-in-out;
  -o-transition: visibility .4s ease-in-out, opacity .4s ease-in-out;
  transition: visibility .4s ease-in-out, opacity .4s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_field:before,
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_field:after {
  -webkit-transition: transform .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: transform .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: transform .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: transform .3s ease-in-out, opacity .3s ease-in-out;
  transition: transform .3s ease-in-out, opacity .3s ease-in-out;
}
html.csstransitions .responsive_top_nav span,
html.csstransitions .responsive_nav span {
  -webkit-transition: opacity .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s;
}
html.csstransitions .owl-buttons > div {
  -webkit-transition: left .3s ease-in-out, right .3s ease-in-out;
  -moz-transition: left .3s ease-in-out, right .3s ease-in-out;
  -ms-transition: left .3s ease-in-out, right .3s ease-in-out;
  -o-transition: left .3s ease-in-out, right .3s ease-in-out;
  transition: left .3s ease-in-out, right .3s ease-in-out;
}
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrapper .cmsmasters_post_footer,
html.csstransitions .cmsmasters_prev_arrow,
html.csstransitions .cmsmasters_next_arrow {
  -webkit-transition: border-color .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: border-color .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: border-color .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: border-color .3s ease-in-out, background-color .3s ease-in-out;
  transition: border-color .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions .post.cmsmasters_post_puzzle .puzzle_post_content_wrapper {
  -webkit-transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out;
  transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions .responsive_top_nav:before,
html.csstransitions .responsive_top_nav:after,
html.csstransitions .responsive_nav:before,
html.csstransitions .responsive_nav:after {
  -webkit-transition: bottom .3s ease-in-out, transform .3s ease-out .3s;
  -moz-transition: bottom .3s ease-in-out, transform .3s ease-out .3s;
  -ms-transition: bottom .3s ease-in-out, transform .3s ease-out .3s;
  -o-transition: bottom .3s ease-in-out, transform .3s ease-out .3s;
  transition: bottom .3s ease-in-out, transform .3s ease-out .3s;
}
html.csstransitions .owl-pagination .owl-page span,
html.csstransitions .owl-pagination .owl-page,
html.csstransitions .owl-pagination .owl-page:before,
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_close {
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list_item a,
html.csstransitions #slide_top {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .post.cmsmasters_post_puzzle .cmsmasters_post_comments a,
html.csstransitions .post.cmsmasters_post_puzzle .cmsmasters_post_likes a {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
html.csstransitions a,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon_title,
html.csstransitions .img_placeholder_small,
html.csstransitions .cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li a:before {
  -webkit-transition: color 0.3s ease-in-out;
  -moz-transition: color 0.3s ease-in-out;
  -ms-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
}
html.csstransitions .header_mid,
html.csstransitions .header_bot {
  -webkit-transition: background-color .2s ease-in-out;
  -moz-transition: background-color .2s ease-in-out;
  -ms-transition: background-color .2s ease-in-out;
  -o-transition: background-color .2s ease-in-out;
  transition: background-color .2s ease-in-out;
}
html.csstransitions #page .cmsmasters_social_icon,
html.csstransitions .edge_only .cmsmasters_but_icon_inverse {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions .navigation .menu-item-mega-container > ul > li > a .nav_title {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions nav > div > ul ul,
html.csstransitions nav > div > ul div {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul ul ul {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul li a,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions nav > div > ul li a .nav_subtitle {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .search_wrap ~ div {
  -webkit-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -moz-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -ms-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  -o-transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
  transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
}
html.csstransitions .header_top .header_top_but {
  -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li img {
  -webkit-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -o-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_items > li {
  -webkit-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -moz-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -ms-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -o-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li a {
  -webkit-transition: border-color 0.3s ease-in-out;
  -moz-transition: border-color 0.3s ease-in-out;
  -ms-transition: border-color 0.3s ease-in-out;
  -o-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a:before {
  -webkit-transition: opacity 0.4s ease-in-out;
  -moz-transition: opacity 0.4s ease-in-out;
  -ms-transition: opacity 0.4s ease-in-out;
  -o-transition: opacity 0.4s ease-in-out;
  transition: opacity 0.4s ease-in-out;
}
html.csstransitions .isotope > * {
  -webkit-transition: opacity 0.8s ease-in-out;
  -moz-transition: opacity 0.8s ease-in-out;
  -ms-transition: opacity 0.8s ease-in-out;
  -o-transition: opacity 0.8s ease-in-out;
  transition: opacity 0.8s ease-in-out;
}
html.csstransitions .cmsmasters_slider_project .cmsmasters_img_rollover_wrap img,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover_wrap .full-width {
  -webkit-transition: opacity .3s ease-in-out, transform .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out, transform .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out, transform .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out, transform .3s ease-in-out;
  transition: opacity .3s ease-in-out, transform .3s ease-in-out;
}
html.csstransitions .notice_close,
html.csstransitions .cmsmasters_project_grid .cmsmasters_img_rollover,
html.csstransitions .button,
html.csstransitions input[type=submit],
html.csstransitions input[type=button],
html.csstransitions button,
html.csstransitions .cmsmasters_button,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:before,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:after {
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
html.csstransitions .widget_search .search_button button,
html.csstransitions .widget_product_search .search_button button {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_left,
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_right {
  -webkit-transition: all .3s ease-in-out, color 0s ease-in-out;
  -moz-transition: all .3s ease-in-out, color 0s ease-in-out;
  -ms-transition: all .3s ease-in-out, color 0s ease-in-out;
  -o-transition: all .3s ease-in-out, color 0s ease-in-out;
  transition: all .3s ease-in-out, color 0s ease-in-out;
}
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="radio"] + label:after,
html.csstransitions #wp-comment-cookies-consent[type='checkbox'] + label:after,
html.csstransitions .woocommerce-form__input-checkbox + span:after {
  -webkit-transition: all .2s ease-out;
  -moz-transition: all .2s ease-out;
  -ms-transition: all .2s ease-out;
  -o-transition: all .2s ease-out;
  transition: all .2s ease-out;
}
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  -webkit-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  -webkit-transition: opacity 5s ease-in-out, height .8s ease-in;
  -moz-transition: opacity 5s ease-in-out, height .8s ease-in;
  -ms-transition: opacity 5s ease-in-out, height .8s ease-in;
  -o-transition: opacity 5s ease-in-out, height .8s ease-in;
  transition: opacity 5s ease-in-out, height .8s ease-in;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon,
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  -webkit-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -moz-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -ms-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -o-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
}
html.csstransitions .cmsmasters_clients_item img,
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_profile .profile .pl_social_list {
  -webkit-transition: opacity .5s ease-out, margin .5s ease-out;
  -moz-transition: opacity .5s ease-out, margin .5s ease-out;
  -ms-transition: opacity .5s ease-out, margin .5s ease-out;
  -o-transition: opacity .5s ease-out, margin .5s ease-out;
  transition: opacity .5s ease-out, margin .5s ease-out;
}
html.csstransitions .cmsmasters_project_grid figure {
  -webkit-transition: opacity .7s ease-in-out;
  -moz-transition: opacity .7s ease-in-out;
  -ms-transition: opacity .7s ease-in-out;
  -o-transition: opacity .7s ease-in-out;
  transition: opacity .7s ease-in-out;
}
html.csstransitions .cmsmasters_slider_post .cmsmasters_slider_post_footer a:before {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_move 2s ease-in;
  -moz-animation: bar_move 2s ease-in;
  -ms-animation: bar_move 2s ease-in;
  -o-animation: bar_move 2s ease-in;
  animation: bar_move 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_up 2s ease-in;
  -moz-animation: bar_up 2s ease-in;
  -ms-animation: bar_up 2s ease-in;
  -o-animation: bar_up 2s ease-in;
  animation: bar_up 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.shortcode_animated .cmsmasters_stat_inner:before,
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_title {
  -webkit-animation: bar_title 2.2s ease-out;
  -moz-animation: bar_title 2.2s ease-out;
  -ms-animation: bar_title 2.2s ease-out;
  -o-animation: bar_title 2.2s ease-out;
  animation: bar_title 2.2s ease-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner:before {
  -webkit-animation: bar_icon 2.2s ease-out;
  -moz-animation: bar_icon 2.2s ease-out;
  -ms-animation: bar_icon 2.2s ease-out;
  -o-animation: bar_icon 2.2s ease-out;
  animation: bar_icon 2.2s ease-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  -webkit-animation: bar_inner 1s ease-in-out;
  -moz-animation: bar_inner 1s ease-in-out;
  -ms-animation: bar_inner 1s ease-in-out;
  -o-animation: bar_inner 1s ease-in-out;
  animation: bar_inner 1s ease-in-out;
}
html.csstransitions .cmsmasters_column_sticky {
  -webkit-transition: -webkit-transform .3s ease, transform .3s ease;
  -moz-transition: -webkit-transform .3s ease, transform .3s ease;
  -ms-transition: -webkit-transform .3s ease, transform .3s ease;
  -o-transition: -webkit-transform .3s ease, transform .3s ease;
  transition: -webkit-transform .3s ease, transform .3s ease;
}
@-webkit-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-moz-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-o-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-webkit-keyframes bar_up {
  from {
    -webkit-transform: translate(0, 100%);
  }
  to {
    -webkit-transform: translate(0, 0%);
  }
}
@-moz-keyframes bar_up {
  from {
    -moz-transform: translate(0, 100%);
  }
  to {
    -moz-transform: translate(0, 0%);
  }
}
@-o-keyframes bar_up {
  from {
    -o-transform: translate(0, 100%);
  }
  to {
    -o-transform: translate(0, 0%);
  }
}
@keyframes bar_up {
  from {
    transform: translate(0, 100%);
  }
  to {
    transform: translate(0, 0%);
  }
}
@-webkit-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-moz-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-o-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-webkit-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-moz-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-o-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-webkit-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-moz-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-o-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmxlc3MiLCJnZW5lcmFsLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRKQTtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsbUJBQUE7O0FBR0Q7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLGlCQUFBO0VBQ0EsU0FBQTs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTs7QUFHRDtBQUNBO0FBQ0E7QUFDQTtFQUNDLG9CQUFBOztBQUdELEVBQUc7QUFDSCxFQUFHO0FBQ0gsRUFBRztBQUNILEVBQUc7QUFDSCxFQUFHO0FBQ0gsRUFBRztFQUNGLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7O0FBR0Q7QUFDQTtFQUNDLDJCQUFBO0VBQ0EsbUJBQUE7O0FBR0Q7RUN3SUMscUJBQUE7O0FEeElELEVDMElDO0VBQ0MsY0FBQTtFQUNBLGtCQUFBOztBQUVBLEVBSkQsS0FJRTtFQUNBLFNBQVEsT0FBUjtFQUNBLGFBQVksVUFBWjtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSx3QkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBOztBRHpKSDtFQUNFLHFDQUFBOztBQUdGLEVBQUc7QUFDSCxFQUFHO0VBQ0YsaUJBQUE7O0FBR0QsRUFBRyxHQUFFO0FBQ0wsRUFBRyxHQUFFO0VBQ0gsY0FBQTs7QUFHRixFQUFHO0FBQ0gsRUFBRztBQUNI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O0VBQ0M7SUFDQyxjQUFjLGtCQUFkOztFQUdEO0lBQ0MsY0FBYyxnQkFBZDs7O0FBR0Y7RUFDQztJQUNDLFdBQVcsa0JBQVg7O0VBR0Q7SUFDQyxXQUFXLGdCQUFYOzs7QUFLRjtFQUNDO0lBQ0MsbUJBQUE7O0VBR0Q7SUFDQyxnQkFBQTs7O0FBSUY7RUFDQztJQUNDLG1CQUFBOztFQUdEO0lBQ0MsZ0JBQUE7OztBQUlGO0VBQ0M7SUFDQyxtQkFBQTs7RUFHRDtJQUNDLGdCQUFBOzs7QUFJRjtFQUNDO0lBQ0MsbUJBQUE7O0VBR0Q7SUFDQyxnQkFBQTs7O0FBS0Y7RUFDQztJQUNDLG9CQUFBOztFQUdEO0lBQ0MsaUJBQUE7OztBQUlGO0VBQ0M7SUFDQyxvQkFBQTs7RUFHRDtJQUNDLGlCQUFBOzs7QUFJRjtFQUNDO0lBQ0Msb0JBQUE7O0VBR0Q7SUFDQyxpQkFBQTs7O0FBSUY7RUFDQztJQUNDLG9CQUFBOztFQUdEO0lBQ0MsaUJBQUE7OztBQUtGO0VBQ0M7SUFDQyxVQUFBOztFQUdEO0lBQ0MsVUFBQTs7O0FBSUY7RUFDQztJQUNDLFVBQUE7O0VBR0Q7SUFDQyxVQUFBOzs7QUFJRjtFQUNDO0lBQ0MsVUFBQTs7RUFHRDtJQUNDLFVBQUE7OztBQUlGO0VBQ0M7SUFDQyxVQUFBOztFQUdEO0lBQ0MsVUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2UgXHRXb3JkUHJlc3NcbiAqIEBzdWJwYWNrYWdlIFx0U2FsdmF0aW9uXG4gKiBAdmVyc2lvblx0XHQxLjAuNlxuICogXG4gKiBEZXNpZ24gQ1NTIFJ1bGVzXG4gKiBDcmVhdGVkIGJ5IENNU01hc3RlcnNcbiAqIFxuICovXG4gXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0MS5cdEdsb2JhbGx5IEFwcGxpZWQgU3R5bGVzIC8gYm9keVxuXHRcdDEuMS4gSW5zdGFncmFtIC8gI3NiaV9sb2FkXG5cdFx0MS4yLiBJY29uc1xuXHRcdFx0MS4yLjEuIEdsb2JhbFxuXHRcdFx0MS4yLjIuIEFycm93c1xuXHRcdFx0MS4yLjMuIFdpZGdldCBBZGQgSW5mb1xuXHRcdFx0MS4yLjQuIFR3aXR0ZXIgc3RyaXBlXG5cdFx0MS4zLiBFbGVtZW50c1xuXHRcdFx0MS4zLjEuIEljb24gQXJyb3cgR2xvYmFsIFN0eWxlc1xuXHRcdFx0MS4zLjIuIFBpeGVsIEFycm93IEdsb2JhbCBTdHlsZXNcblx0XHRcdDEuMy4zLiBQb3N0IFBhc3N3b3JkIEZvcm0gLyAucG9zdC1wYXNzd29yZC1mb3JtXG5cdFx0XHQxLjMuNC4gUHJlbG9kYWVyIC8gLnByZWxvYWRlclxuXHRcdFx0MS4zLjUuIFJlc2l6YWJsZSBCbG9jayAvIC5yZXNpemFibGVfYmxvY2tcblx0XHRcdDEuMy42LiBJbWcgV3JhcHBlciAvIC5jbXNtYXN0ZXJzX2ltZ193cmFwXG5cdFx0XHQxLjMuNy4gSW1nIFJvbGxvdmVyIC8gLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXBcblx0XHRcdDEuMy44LiBQbGFjZWhvbGRlciBTbWFsbCAvIC5pbWdfcGxhY2Vob2xkZXJfc21hbGxcblx0XHRcdDEuMy45LiBWaWRlbyBXcmFwcGVyIC8gLm1lanMtY29udGFpbmVyXG5cdFx0XHQxLjMuMTAuIFNlYXJjaCBCYXIgLyAuc2VhcmNoX2Jhcl93cmFwXG5cdFx0XHQxLjMuMTAuIFNvY2lhbCBJY29ucyAvIC5zb2NpYWxfd3JhcFxuXHRcdFx0MS4zLjExLiBDb3JlIE93bCBDYXJvdXNlbCBDU1MgdjEuMy4yIC8gLm93bC1jYXJvdXNlbFxuXHRcdFx0MS4zLjEyLiBTbGlkZSBUb3AgQnV0dG9uIC8gI3NsaWRlX3RvcFxuXHRcdFx0MS4zLjEzLiBPcGVuZWQgQXJ0aWNsZSAvIC5vcGVuZWQtYXJ0aWNsZVxuXHRcdFx0MS4zLjE0LiBMaWtlcyBhbmQgQ29tbWVudHNcblx0XHRcdFx0MS4zLjE0LjEuIExpa2VzIC8gLmNtc21hc3RlcnNfbGlrZXNcblx0XHRcdFx0MS4zLjE0LjIuIENvbW1lbnRzIC8gLmNtc21hc3RlcnNfY29tbWVudHNcblx0XHRcdDEuMy4xNS4gQnV0dG9uXG5cdFx0XHQxLjMuMTYuIEl0ZW1zIEZpbHRlciAvIC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwXG5cdFx0XHQxLjMuMTcuIE1vcmUgSXRlbXMgTG9hZGVyIGFuZCBQYWdpbmF0aW9uXG5cdFx0XHRcdDEuMy4xNy4xLiBNb3JlIEl0ZW1zIExvYWRlciAvIC5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtc1xuXHRcdFx0XHQxLjMuMTcuMi4gU3VicGFnZSBQYWdpbmF0aW9uIC8gLnN1YnBhZ2VfbmF2XG5cdFx0XHRcdDEuMy4xNy4yLiBQYWdpbmF0aW9uIC8gLmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uXG5cdFx0XHQxLjMuMTguIFBvc3QgTmF2aWdhdGlvbiAvIC5wb3N0X25hdlxuXHRcdFx0MS4zLjE5LiBTaGFyZSBQb3N0cyAvIC5zaGFyZV9wb3N0c1xuXHRcdFx0MS4zLjIwLiBBYm91dCBBdXRob3IgLyAuYWJvdXRfYXV0aG9yXG5cdFx0XHQxLjMuMjEuIFNpbmdsZSBQb3N0IFNsaWRlciAvIC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJcblx0XHRcdDEuMy4yMi4gU2luZ2xlIFBpbmdzIExpc3QgLyAuY21zbWFzdGVyc19waW5nc19saXN0XG5cdFx0XHQxLjMuMjMuIFBvc3QgQ29tbWVudHMgLyAucG9zdF9jb21tZW50c1xuXHRcdFx0MS4zLjI0LiBDb21tZW50IFJlc3BvbmQgLyAuY29tbWVudC1yZXNwb25kXG5cdDIuXHRIZWFkZXIgLyAjaGVhZGVyXG5cdFx0Mi4xLiBIZWFkZXIgVG9wIC8gLmhlYWRlcl90b3Bcblx0XHRcdDIuMS4xLiBIZWFkZXIgVG9wIE5hdmlnYXRpb24gLyAudG9wX2xpbmVfbmF2XG5cdFx0Mi4yLiBIZWFkZXIgTWlkIC8gLmhlYWRlcl9taWRcblx0XHRcdDIuMS4xLiBIZWFkZXIgTWlkIE5hdmlnYXRpb24gLyAubWlkX25hdlxuXHRcdDIuMy4gSGVhZGVyIEJvdCAvIC5oZWFkZXJfYm90XG5cdFx0XHQyLjEuMS4gSGVhZGVyIEJvdCBOYXZpZ2F0aW9uIC8gLmJvdF9uYXZcblx0XHQyLjQuIEhlYWRlciBTZWFyY2ggRm9ybVxuXHQzLlx0SGVhZGxpbmUgU3R5bGVzXG5cdDQuXHRCb3R0b20gKyBGb290ZXIgU3R5bGVzXG5cdFx0NC4xLiBCb3R0b20gLyAjYm90dG9tXG5cdFx0NC4yLiBGb290ZXIgLyAjZm9vdGVyXG5cdFx0XHQ0LjIuMS4gRm9vdGVyIERlZmF1bHQgLyAuY21zbWFzdGVyc19mb290ZXJfZGVmYXVsdFxuXHRcdFx0NC4yLjIuIEZvb3RlciBTbWFsbCAvIC5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbFxuXHQ1Llx0QmxvZyAvIC5ibG9nXG5cdFx0NS4xLiBCbG9nIERlZmF1bHQgLyAuY21zbWFzdGVyc19wb3N0X2RlZmF1bHRcblx0XHQ1LjIuIEJsb2cgTWFzb25yeSAvIC5jbXNtYXN0ZXJzX3Bvc3RfbWFzb25yeVxuXHRcdDUuMy4gQmxvZyBUaW1lbGluZSAvIC5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmVcblx0XHQ1LjQuIEJsb2cgUG9zdCAvIC5jbXNtYXN0ZXJzX29wZW5fcG9zdFxuXHQ2Llx0UG9ydGZvbGlvIC8gLnBvcnRmb2xpb1xuXHRcdDYuMS4gUG9ydGZvbGlvIEdyaWQgLyAuY21zbWFzdGVyc19wcm9qZWN0X2dyaWRcblx0XHQ2LjIuIFBvcnRmb2xpbyBQdXp6bGUgLyAuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZVxuXHRcdDYuMy4gUG9ydGZvbGlvIE9wZW4gUHJvamVjdCAvIC5jbXNtYXN0ZXJzX29wZW5fcHJvamVjdFxuXHQ3Llx0UG9zdHMgU2xpZGVyIFN0eWxlcyAvIC5jbXNtYXN0ZXJzX3Bvc3RzX3NsaWRlclxuXHRcdDcuMS4gUG9zdHMgU2xpZGVyIEJsb2cgLyAuY21zbWFzdGVyc19zbGlkZXJfcG9zdFxuXHRcdDcuMi4gUG9zdHMgU2xpZGVyIFBvcnRmb2xpbyAvIC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0XG5cdDguXHRQcm9maWxlcyArIFByb2ZpbGUgU3R5bGVzIC8gLmNtc21hc3RlcnNfcHJvZmlsZVxuXHRcdDguMS4gUHJvZmlsZXMgSG9yaXpvbnRhbCAvIC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbFxuXHRcdDguMi4gUHJvZmlsZXMgVmVydGljYWwgLyAuY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsXG5cdFx0OC4zLiBQcm9maWxlcyBPcGVuIFByb2ZpbGUgLyAuY21zbWFzdGVyc19vcGVuX3Byb2ZpbGVcblx0OS5cdFNob3J0Y29kZXMgU3R5bGVzXG5cdFx0OS4xLiBEaXZpZGVyIC8gLmNtc21hc3RlcnNfZGl2aWRlclxuXHRcdDkuMi4gU3BlY2lhbCBIZWFkaW5nIC8gLmNtc21hc3RlcnNfaGVhZGluZ193cmFwXG5cdFx0OS4zLiBGZWF0dXJlZCBCbG9jayAvIC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrXG5cdFx0OS40LiBUYWJsZSAvIC5jbXNtYXN0ZXJzX3RhYmxlXG5cdFx0OS41LiBOb3RpY2UgLyAuY21zbWFzdGVyc19ub3RpY2Vcblx0XHQ5LjYuIEljb24gLyAuY21zbWFzdGVyc19pY29uX3dyYXBcblx0XHQ5LjcuIEljb24gTGlzdCAvIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtc1xuXHRcdDkuOC4gSWNvbiBCb3ggLyAuY21zbWFzdGVyc19pY29uX2JveFxuXHRcdDkuOS4gVG9nZ2xlcyAvIC5jbXNtYXN0ZXJzX3RvZ2dsZXNcblx0XHQ5LjEwLiBUYWJzIC8gLmNtc21hc3RlcnNfdGFic1xuXHRcdDkuMTEuIFN0YXRzIC8gLmNtc21hc3RlcnNfc3RhdHNcblx0XHQ5LjEyLiBDb3VudGVycyAvIC5jbXNtYXN0ZXJzX2NvdW50ZXJzXG5cdFx0OS4xMy4gQ01TTUFTVEVSUyBCdXR0b24gLyAuY21zbWFzdGVyc19idXR0b25cblx0XHQ5LjE0LiBDb250YWN0IEZvcm0gNyAvIC53cGNmNy1mb3JtXG5cdFx0OS4xNS4gSG92ZXIgc2xpZGVyIC8gLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyXG5cdFx0OS4xNi4gQ29udGVudCBzbGlkZXIgLyAuY21zbWFzdGVyc19jb250ZW50X3NsaWRlclxuXHRcdDkuMTcuIEdhbGxlcnkgLyAuY21zbWFzdGVyc19nYWxsZXJ5XG5cdFx0OS4xOC4gUXVvdGVzIC8gLmNtc21hc3RlcnNfcXVvdGVzX3NsaWRlclxuXHRcdDkuMTkuIFByaWNpbmcgdGFibGVzIC8gLmNtc21hc3RlcnNfcHJpY2luZ190YWJsZVxuXHRcdDkuMjAuIEdvb2dsZSBNYXBzIC8gLmdvb2dsZV9tYXBcblx0XHQ5LjIxLiBDYXB0aW9uIC8gLmNtc21hc3RlcnNfaW1nXG5cdFx0OS4yMi4gV1AgR2FsbGVyeSAvIC5nYWxsZXJ5XG5cdFx0OS4yMy4gU2lkZWJhciAvIC5jbXNtYXN0ZXJzX3NpZGViYXJcblx0XHQ5LjI0LiBTaGFyZSAvIC5zaGFyZV93cmFwXG5cdFx0OS4yNS4gVHdpdHRlciBTdHJpcGUgLyAuY21zbWFzdGVyc190d2l0dGVyX3dyYXBcblx0XHQ5LjI2LiBEcm9wY2FwIC8gLmNtc21hc3RlcnNfZHJvcGNhcFxuXHRcdDkuMjcuIENsaWVudHMgLyAuY21zbWFzdGVyc19jbGllbnRzX3NsaWRlclxuXHQxMC5cdFdpZGdldHMgU3R5bGVzIC8gLndpZGdldFxuXHRcdDEwLjEuIFdpZGdldCBBZHZlcnRpc2VtZW50IC8gLndpZGdldF9jdXN0b21fYWR2ZXJ0aXNlbWVudF9lbnRyaWVzXG5cdFx0MTAuMi4gV2lkZ2V0IExpc3RzXG5cdFx0XHQxMC4yLjEuIFdpZGdldCBQYWdlcyAvIC53aWRnZXRfcGFnZXNcblx0XHRcdDEwLjIuMi4gV2lkZ2V0IENhdGVnb3JpZXMgLyAud2lkZ2V0X2NhdGVnb3JpZXNcblx0XHRcdDEwLjIuMy4gV2lkZ2V0IEFyY2hpdmUgLyAud2lkZ2V0X2FyY2hpdmVcblx0XHRcdDEwLjIuNC4gV2lkZ2V0IE1ldGEgLyAud2lkZ2V0X21ldGFcblx0XHRcdDEwLjIuNS4gV2lkZ2V0IFJlY2VudCBDb21tZW50cyAvIC53aWRnZXRfcmVjZW50X2NvbW1lbnRzXG5cdFx0XHQxMC4yLjYuIFdpZGdldCBSZWNlbnQgRW50cmllcyAvIC53aWRnZXRfcmVjZW50X2VudHJpZXNcblx0XHQxMC4zLiBXaWRnZXQgQ2FsZW5kYXIgLyAjd3AtY2FsZW5kYXJcblx0XHQxMC40LiBXaWRnZXQgQ29udGFjdCBGb3JtIC8gLndpZGdldF9jdXN0b21fY29udGFjdF9mb3JtX2VudHJpZXNcblx0XHQxMC41LiBXaWRnZXQgQ29udGFjdCBJbmZvIC8gLndpZGdldF9jdXN0b21fY29udGFjdF9pbmZvX2VudHJpZXNcblx0XHQxMC42LiBXaWRnZXQgQ3VzdG9tIE1lbnUgLyAud2lkZ2V0X25hdl9tZW51XG5cdFx0MTAuNy4gV2lkZ2V0IEZhY2Vib29rIC8gLndpZGdldF9jdXN0b21fZmFjZWJvb2tfZW50cmllc1xuXHRcdDEwLjguIFdpZGdldCBGbGlja3IgLyAud2lkZ2V0X2N1c3RvbV9mbGlja3JfZW50cmllc1xuXHRcdDEwLjkuIFdpZGdldCBMYXRlc3QgYW5kIFBvcHVsYXIgUHJvamVjdHNcblx0XHRcdDEwLjkuMS4gV2lkZ2V0IExhdGVzdCBQcm9qZWN0cyAvIC53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllc1xuXHRcdFx0MTAuOS4yLiBXaWRnZXQgUG9wdWxhciBQcm9qZWN0cyAvIC53aWRnZXRfY3VzdG9tX2xhdGVzdF9wcm9qZWN0c19lbnRyaWVzXG5cdFx0MTAuMTAuIFdpZGdldCBQb3N0cyBUYWJzIC8gLndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzXG5cdFx0MTAuMTEuIFdpZGdldCBSU1MgLyAud2lkZ2V0X3Jzc1xuXHRcdDEwLjEyLiBXaWRnZXQgVGFnIENsb3VkIC8gLndpZGdldF90YWdfY2xvdWRcblx0XHQxMC4xMy4gV2lkZ2V0IFR3aXR0ZXIgLyAud2lkZ2V0X2N1c3RvbV90d2l0dGVyX2VudHJpZXNcblx0MTEuIFNlYXJjaCArIEFyY2hpdmVzICsgU2l0ZW1hcCArIEVycm9yICsgT3RoZXIgU3R5bGVzXG5cdFx0MTEuMS4gQXJjaGl2ZXMgKyBTZWFyY2hcblx0XHRcdDExLjEuMS4gQXJjaGl2ZXMgLyAuY21zbWFzdGVyc19hcmNoaXZlXG5cdFx0XHQxMS4xLjIuIFNlYXJjaCAvIC5jbXNtYXN0ZXJzX3NlYXJjaFxuXHRcdDExLjIuIFNpdGVtYXAgLyAuY21zbWFzdGVyc19zaXRlbWFwX3dyYXBcblx0XHQxMS4zLiBFcnJvciAvIC5lcnJvclxuXHRcdDExLjQuIEF0dGFjaG1lbnQgUGFnZSAvIC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdcblx0XHQxMS41LiBPdGhlclxuXHQxMi5cdENvbnRhY3QgRm9ybXMgU3R5bGVzXG5cdFx0MTIuMS4gRm9ybSBCdWlsZGVyIC8gLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyXG5cdFx0MTIuMi4gQ29udGFjdCBGb3JtIDcgLyAud3BjZjdcblx0MTMuXHRDU1MzIEFuaW1hdGlvbnMgLyAuY3NzdHJhbnNpdGlvbnNcblx0XHQxMy4xLiBDdXN0b20gQW5pbWF0aW9uc1xuXHRcdDEzLjIuIEdsb2JhbCBBbmltYXRpb25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwiZ2VuZXJhbC5sZXNzXCI7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdsb2JhbGx5IEFwcGxpZWQgU3R5bGVzXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5IHtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG5wcmUge1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG5kaXYge1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbnAge1xuXHRwYWRkaW5nOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xuXHRtYXJnaW46MDtcbn1cblxuaDEsIFxuaDIsIFxuaDMsIFxuaDQsIFxuaDUsIFxuaDYge1xuXHRwYWRkaW5nOjA7XG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcblx0bGV0dGVyLXNwYWNpbmc6LS41cHg7XG59XG5cbmgxLCBcbmgyLCBcbmgzLCBcbmg1IHtcblx0bGV0dGVyLXNwYWNpbmc6LTFweDtcbn1cblxuaDEgYSwgXG5oMiBhLCBcbmgzIGEsIFxuaDQgYSwgXG5oNSBhLCBcbmg2IGEge1xuXHRmb250LWZhbWlseTppbmhlcml0O1xuXHRmb250LXNpemU6aW5oZXJpdDtcblx0Zm9udC13ZWlnaHQ6aW5oZXJpdDtcblx0Zm9udC1zdHlsZTppbmhlcml0O1xuXHRsaW5lLWhlaWdodDppbmhlcml0O1xufVxuXG51bCxcbm9sIHtcblx0bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7XG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcbn1cblxudWwge1xuXHQuZGVmYXVsdF9saXN0KCk7XG59XG5cbm9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOmRlY2ltYWwtbGVhZGluZy16ZXJvO1xufVxuXG51bCBsaSxcbm9sIGxpIHtcblx0cGFkZGluZzpAZGVmYXVsdF9saXN0X3RvcF9wYWQgMCAwO1xufVxuXG51bCBsaTpmaXJzdC1jaGlsZCxcbm9sIGxpOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbnVsIHVsLFxub2wgdWwsXG51bCBvbCxcbm9sIG9sIHtcblx0bWFyZ2luOjAgMCAwIEBkZWZhdWx0X2xpc3RfbGVmdF9wYWQ7XG5cdHBhZGRpbmc6QGRlZmF1bHRfbGlzdF90b3BfcGFkIDAgMDtcbn1cblxuLmVzZy1ncmlkIHtcblx0dWwge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW46MDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuaWZyYW1lIHtcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xufVxuXG5hZGRyZXNzIHtcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xufVxuXG5wcmUge1xuXHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XG59XG5cbmRkIHtcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xufVxuXG5ibG9ja3F1b3RlIHtcblx0LmRlZmF1bHRfYmxvY2txdW90ZSgpO1xufVxuXG50YWJsZSB7XG5cdC5kZWZhdWx0X3RhYmxlKCk7XG59XG5cbi5wbHMtY29udGFpbmVyLFxuLnBscy1jb250YWluZXIgdGFibGUsXG4uY21zbWFzdGVyc190YWJsZSxcbi50cmliZS1taW5pLWNhbGVuZGFyLFxuLnRyaWJlLWV2ZW50cy1jYWxlbmRhcixcbi5zaG9wX3RhYmxlLFxuLmdyb3VwX3RhYmxlLFxuLnZhcmlhdGlvbnMsXG4uc2hvcF9hdHRyaWJ1dGVzIHtcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzowO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbmlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXG50ZXh0YXJlYSxcbnNlbGVjdCxcbm9wdGlvbiB7XG5cdHBhZGRpbmc6QGlucHV0X3BhZCAxNXB4O1xuXHRtYXgtd2lkdGg6MTAwJTtcblx0LmJkO1xufVxuXG5pbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pLFxuaW5wdXRbdHlwZT1oaWRkZW5dLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcblx0LW1vei1hcHBlYXJhbmNlOm5vbmU7XG5cdC1tcy1hcHBlYXJhbmNlOm5vbmU7XG5cdGFwcGVhcmFuY2U6bm9uZSAhaW1wb3J0YW50O1xuXHQuYmRycygwKTtcblx0LmJ4c2hfbm9uZTtcbn1cblxuaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSB7XG5cdGhlaWdodDpAaW5wdXRfaGVpZ2h0O1xufVxuXG5pbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuXHRvdXRsaW5lOm5vbmU7XG59XG5cbmlucHV0W3R5cGU9c3VibWl0XSwgXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxuYnV0dG9uIHtcblx0bWF4LXdpZHRoOjEwMCU7XG5cdGN1cnNvcjpwb2ludGVyO1xuXG5cdCZbZGlzYWJsZWRdIHtcblx0XHQub3AoMC41KTtcblx0fVxufVxuXG50ZXh0YXJlYSB7XG5cdG92ZXJmbG93OmF1dG87XG59XG5cbnNlbGVjdDo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuc2VsZWN0W211bHRpcGxlXSB7XG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWltYWdlOm5vbmU7XG5cdFxuXHRvcHRpb24ge1xuXHRcdHBhZGRpbmctbGVmdDowO1xuXHRcdHBhZGRpbmctcmlnaHQ6MDtcblx0XHRiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG5zZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIC5kbjtcbn1cblxuaW5wdXRbdHlwZT10ZXh0XSxcbmlucHV0W3R5cGU9c2VhcmNoXSxcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxuaW5wdXRbdHlwZT1lbWFpbF0sXG5pbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPXVybF0sXG5pbnB1dFt0eXBlPW51bWJlcl0sXG5pbnB1dFt0eXBlPWRhdGVdLFxudGV4dGFyZWEge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcblx0LW1vei1hcHBlYXJhbmNlOm5vbmU7XG5cdGFwcGVhcmFuY2U6bm9uZTtcbn1cblxuaW5wdXRbdHlwZT1cImRhdGVcIl06Oi13ZWJraXQtY2xlYXItYnV0dG9uIHtcbiAgICBkaXNwbGF5Om5vbmU7XG59XG5cbmlucHV0W3R5cGU9XCJkYXRlXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgXG4gICAgZGlzcGxheTpub25lO1xufVxuXG4uamV0cGFja19zdWJzY3JpcHRpb25fd2lkZ2V0ICNzdWJzY3JpYmUtZW1haWwgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSxcbi53aWRnZXRfd3lzaWphIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXG5kaXYubWFpbHBvZXRfZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOkBpbnB1dF9wYWQgIWltcG9ydGFudDtcbn1cblxuLndpZGdldF93eXNpamFfY29udCAud3lzaWphLXN1Ym1pdCxcbmRpdi5tYWlscG9ldF9mb3JtICAubWFpbHBvZXRfc3VibWl0IHtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0bWFyZ2luOjAgIWltcG9ydGFudDtcbn1cblxuLnNpbmdsZS5zaW5nbGUtd3lzaWphcCAuY21zbWFzdGVyc19vcGVuX3Bvc3Qge1xuXHQ+ICoge1xuXHRcdC5kbjtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG59XG5cbi5nZm9ybV93cmFwcGVyIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXG4uZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYSB7XG5cdHBhZGRpbmc6QGlucHV0X3BhZCAhaW1wb3J0YW50O1xufVxuXG4uZ2Zvcm1fd3JhcHBlciBzZWxlY3Qge1xuXHRwYWRkaW5nOkBpbnB1dF9wYWQgIWltcG9ydGFudDtcblx0bWFyZ2luOjAgIWltcG9ydGFudDtcbn1cblxubmF2IHtcblx0ZGlzcGxheTpibG9jaztcblx0aGVpZ2h0OjEwMCU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0dWwgeyAvKiBjbGVhciB1bCBzdHlsZXMgKi9cblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQuY2xfYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdGxpIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdD4gZGl2IHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0fVxuXHR9XG5cdFxuXHQ+IGRpdiA+IHVsIHtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ei1pbmRleDoyMDI7XG5cdFx0em9vbToxO1xuXHRcdFxuXHRcdHVsIHtcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRcdHdpZHRoOkBtaWRfbmF2X2Ryb3Bkb3duX3dpZHRoO1xuXHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcblx0XHRcdHBhZGRpbmc6QG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjEwMCU7XG5cdFx0XHR6LWluZGV4OjIwMztcblx0XHRcdC5vcCgwKTtcblx0XHRcdC5iZDtcblx0XHRcdFxuXHRcdFx0LmhlYWRlcl90b3AgJiB7XG5cdFx0XHRcdHdpZHRoOkB0b3BfbmF2X2Ryb3Bkb3duX3dpZHRoO1xuXHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xuXHRcdFx0XHRwYWRkaW5nOkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3AgMCBAdG9wX25hdl9kcm9wZG93bl9wYWRfYm90O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0d2lkdGg6QGJvdF9uYXZfZHJvcGRvd25fd2lkdGg7XG5cdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XG5cdFx0XHRcdHBhZGRpbmc6QGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcCAxMHB4IEBib3RfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHVsIHtcblx0XHRcdFx0bWFyZ2luOjAgMCAwIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ7XG5cdFx0XHRcdGxlZnQ6MTAwJTtcblx0XHRcdFx0dG9wOi0oQG1pZF9uYXZfZHJvcGRvd25fcGFkX3RvcCArIDEpO1xuXHRcdFx0XHRcblx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XG5cdFx0XHRcdFx0bWFyZ2luOjAgMCAwIEB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ7XG5cdFx0XHRcdFx0dG9wOi0oQHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcCArIDEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcblx0XHRcdFx0XHR0b3A6LShAYm90X25hdl9kcm9wZG93bl9wYWRfdG9wICsgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0bGkubWVudS1pdGVtLWRyb3Bkb3duLXJpZ2h0IHtcblx0XHRcdC50YXI7XG5cdFx0XHRcblx0XHRcdCoge1xuXHRcdFx0XHQudGFyO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQ+IHVsIHtcblx0XHRcdFx0bGVmdDphdXRvO1xuXHRcdFx0XHRyaWdodDowO1xuXHRcdFx0XHRcblx0XHRcdFx0dWwge1xuXHRcdFx0XHRcdG1hcmdpbjowIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQgMCAwO1xuXHRcdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0XHRyaWdodDoxMDAlO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0bWFyZ2luOjAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydCAwIDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XG5cdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0cmlnaHQ6MDtcblx0XHRcdFx0XG5cdFx0XHRcdHVsIHtcblx0XHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGxpIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHRcdFx0XHRcdG9wYWNpdHk6MTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuaGVhZGVyX3RvcCAmIHtcblx0XHRcdFx0XHRcdG1hcmdpbjpAdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRcdGhlaWdodDpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHRcdHRvcDotKEBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQuaGVhZGVyX3RvcCAmIHtcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcblx0XHRcdFx0XHRcdFx0dG9wOi0oQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xuXHRcdFx0XHRcdFx0XHR0b3A6LShAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgKyAxKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XG5cdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHRcdFx0XHRcdG9wYWNpdHk6MTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRcdGhlaWdodDpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHRcdHRvcDotKEBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHVsIHtcblx0XHRcdFx0XHRcdHZpc2liaWxpdHk6dmlzaWJsZTtcblx0XHRcdFx0XHRcdG9wYWNpdHk6MTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0bGk6aG92ZXIge1xuXHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XG5cdFx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0bWFyZ2luOjAgMCAwIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcblx0XHRcdFx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdFx0XHRsZWZ0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0XHRcdFx0bGVmdDotKEB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kICsgMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdFx0XHRcdGxlZnQ6LShAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLm1lbnUtaXRlbS1kcm9wZG93bi1yaWdodCB7XG5cdFx0XHRcdGxpOmhvdmVyIHtcblx0XHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRcdG1hcmdpbjowIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kIDAgMDtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kIDAgMDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRcdFx0XHRcdHJpZ2h0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0XHRcdHJpZ2h0Oi0oQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6MjAzO1xuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0ei1pbmRleDoyMDQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDoyMDQ7XG5cdFx0fVxuXHRcdFxuXHRcdC5tZW51LWl0ZW0tbWVnYS1kZXNjcmlwdGlvbi1jb250YWluZXIge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBhZGRpbmc6MTBweCAxNXB4O1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0Lm5hdl90aXRsZSB7XG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlIHtcblx0XHRcdFx0bWFyZ2luOjAgLjVlbSAwIDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5tZW51LWl0ZW0taGlkZS10ZXh0IHtcblx0XHRcdD4gYSB7XG5cdFx0XHRcdC5uYXZfdGl0bGUge1xuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxuXHRcdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlIHtcblx0XHRcdFx0XHRcdG1hcmdpbjowIC4zZW07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6bm90KC5tZW51LWl0ZW0taWNvbikge1xuXHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdC5mbDtcblx0XHRcdFxuXHRcdFx0bGkge1xuXHRcdFx0XHQuYmRiO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHQuYmRiKDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGxpLm1lbnUtaXRlbS1tZWdhIHVsIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXI6MDtcblx0XHRcdHdpZHRoOmF1dG87XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0bGVmdDphdXRvO1xuXHRcdFx0cmlnaHQ6YXV0bztcblx0XHRcdHRvcDphdXRvO1xuXHRcdFx0Ym90dG9tOmF1dG87XG5cdFx0XHR6LWluZGV4OjIwMztcblx0XHR9XG5cdFx0XG5cdFx0ZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XG5cdFx0XHRwYWRkaW5nOjEycHggMDtcblx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHR0b3A6MTAwJTtcblx0XHRcdHotaW5kZXg6MjAzO1xuXHRcdFx0Lm9wKDApO1xuXHRcdFx0LmJkO1xuXHRcdFx0XG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0bWFyZ2luOkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0PiB1bCB7XG5cdFx0XHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdFx0XHRcblx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdFx0XHRcdHBhZGRpbmc6MCA1cHg7XG5cdFx0XHRcdFx0LmJkYigwKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQmOm5vdChbaHJlZl0pIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRcdHdpZHRoOkBtaWRfbmF2X2Ryb3Bkb3duX3dpZHRoO1xuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl93aWR0aDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Jjpob3ZlciA+IHVsIHtcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0YTplbXB0eSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0bGkubWVudS1pdGVtLW1lZ2EtZnVsbHdpZHRoIHtcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgYSwgXG5cdFx0XHQ+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHVsIHtcblx0XHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5tZW51LWl0ZW0tbWVnYS1jb2xzLXR3byA+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHtcblx0XHRcdFx0d2lkdGg6NTAlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtdGhyZWUgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XG5cdFx0XHRcdHdpZHRoOjMzLjMzJTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5tZW51LWl0ZW0tbWVnYS1jb2xzLWZvdXIgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XG5cdFx0XHRcdHdpZHRoOjI1JTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5tZW51LWl0ZW0tbWVnYS1jb2xzLWZpdmUgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XG5cdFx0XHRcdHdpZHRoOjIwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmZ1bGwtd2lkdGgge1xuXHRtaW4td2lkdGg6MTAwJTtcbn1cblxuYXVkaW8uZnVsbC13aWR0aCB7XG5cdHdpZHRoOjEwMCU7XG59XG5cbi5hbGlnbmxlZnQsIFxuLmZsIHtcblx0LmZsO1xufVxuXG4uYWxpZ25yaWdodCwgXG4uZnIge1xuXHQuZnI7XG59XG5cbi5hbGlnbmNlbnRlciB7XG5cdC50YWM7XG59XG5cbi5hbGlnbmNlbnRlcixcbi5hbGlnbm5vbmUge1xuXHRjbGVhcjpib3RoO1xufVxuXG5pbWcge1xuXHQmLmFsaWdubGVmdCwgXG5cdCYuZmwge1xuXHRcdG1hcmdpbi1yaWdodDoxcmVtO1xuXHRcdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcblx0fVxuXHRcblx0Ji5hbGlnbnJpZ2h0LCBcblx0Ji5mciB7XG5cdFx0bWFyZ2luLWxlZnQ6MXJlbTtcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XG5cdH1cblx0XG5cdCYuYWxpZ25jZW50ZXIge1xuXHRcdG1hcmdpbjowIGF1dG8gQGxpbmVfaGVpZ2h0X3BhZDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG5cdFxuXHQmLmFsaWdubm9uZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xuXHR9XG59XG5cbi5kbiB7XG5cdC5kbjtcbn1cblxuLnRhbCwgXG4udGFfbGVmdCB7XG5cdC50YWw7XG59XG5cbi50YWMsIFxuLnRhX2NlbnRlciB7XG5cdC50YWM7XG59XG5cbi50YXIsIFxuLnRhX3JpZ2h0IHtcblx0LnRhcjtcbn1cblxuLmNsLCBcbi5jbGVhciB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdC5jbDtcbn1cblxuLm92aCB7XG5cdC5vdmg7XG59XG5cbi5sb3dfY2FzZSB7XG5cdHRleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtcbn1cblxuLnVwX2Nhc2Uge1xuXHR0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG59XG5cbi5jbXNtYXN0ZXJzX3Jlc3BvbnNpdmVfd2lkdGgge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR3aWR0aDphdXRvO1xuXHR2aXNpYmlsaXR5OmhpZGRlbjtcbn1cblxuLmNtc21hc3RlcnNfY29sdW1uIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdG1pbi1oZWlnaHQ6MXB4O1xufVxuXG4uY21zbWFzdGVyc19jb2x1bW5fc3RpY2t5IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDA7XG59XG5cbi5jbXNtYXN0ZXJzX2NvbHVtbl9pbm5lciB7XG5cdHdpZHRoOjEwMCU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRtaW4taGVpZ2h0OjFweDtcbn1cblxuLm9uZV9maXJzdCwgXG4ub25lX2hhbGYsIFxuLm9uZV90aGlyZCwgXG4udHdvX3RoaXJkLCBcbi5vbmVfZm91cnRoLCBcbi50aHJlZV9mb3VydGgsIFxuLm9uZV9maWZ0aCwgXG4ub25lX3NpeHRoIHtcblx0bWFyZ2luOjAgQGNvbF9tYXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuZmw7XG59XG5cbi5vbmVfc2l4dGgge1xuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMiksIDIpO1xufVxuXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfc2l4dGgge1xuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpLCAyKTtcbn1cblxuLm9uZV9maWZ0aCB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG59XG5cbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maWZ0aCB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSksIDIpO1xufVxuXG4ub25lX2ZvdXJ0aCB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG59XG5cbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9mb3VydGgge1xuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpLCAyKTtcbn1cblxuLm9uZV90aGlyZCB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG59XG5cbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV90aGlyZCB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMyksIDIpO1xufVxuXG4ub25lX2hhbGYge1xuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xufVxuXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfaGFsZiB7XG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMiksIDIpO1xufVxuXG4udHdvX3RoaXJkIHtcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcbn1cblxuLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiA+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4gPiAudHdvX3RoaXJkIHtcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSwgMik7XG59XG5cbi50aHJlZV9mb3VydGgge1xuXHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xufVxuXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC50aHJlZV9mb3VydGgge1xuXHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpLCAyKTtcbn1cblxuLm9uZV9maXJzdCB7XG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdGZsb2F0Om5vbmU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuY2w7XG59XG5cbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maXJzdCB7XG5cdHdpZHRoOnJvdW5kKDEwMCUsIDIpO1xufVxuXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luIHtcblx0Ji5jbXNtYXN0ZXJzX3Jvd19jb2x1bW5zX2JlaGF2aW9yIHtcblx0XHQuZGlzcGxheV9mbGV4O1xuXHRcdC5mbGV4X3dyYXAod3JhcCk7XG5cdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDpub25lO1xuXHRcdH1cblx0XHRcblx0XHQmLmNtc21hc3RlcnNfMTMxMzEzIHtcblx0XHRcdHdpZHRoOjk5Ljk5JTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfY29sdW1uIHtcblx0XHRcdC5jbXNtYXN0ZXJzX2NvbHVtbl9pbm5lciB7XG5cdFx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0XHQuZGlzcGxheV9mbGV4O1xuXHRcdFx0XHQuZmxleF9kaXJlY3Rpb24oY29sdW1uKTtcblx0XHRcdFx0LmFsaWduX2NvbnRlbnQoZmxleC1zdGFydCk7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdD4gZGl2IHtcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQ+IC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcblx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuc2FmYXJpX29ubHkgJiwgXG5cdFx0XHQuc2FmYXJpX21vYmlsZV9vbmx5ICYge1xuXHRcdFx0XHQuZGlzcGxheV9mbGV4O1xuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcblx0XHRcdFx0XHRtaW4td2lkdGg6MTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0XHQuZmxleF9kaXJlY3Rpb24ocm93KTtcblx0XHRcdFx0XHQuZmxleF93cmFwKHdyYXApO1xuXHRcdFx0XHRcdC5hbGlnbl9jb250ZW50KGZsZXgtc3RhcnQpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdD4gLmNtc21hc3RlcnNfZmVhdHVyZWRfYmxvY2sge1xuXHRcdFx0XHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbltkYXRhLWFuaW1hdGlvbl0ge1xuXHQub3AoMCk7XG59XG5cbltkYXRhLWFuaW1hdGlvbl0uYW5pbWF0ZWQge1xuXHQub3AoMSk7XG59XG5cbiNwYWdlIHtcblx0Ji5jbXNtYXN0ZXJzX2JveGVkIHtcblx0XHR3aWR0aDpAY29udF93aWR0aF9kZWYgKyBAYmxvY2tzX2hvcl9wYWQ7XG5cdFx0bWFyZ2luOjAgYXV0bztcblx0XHRcblx0XHQjaGVhZGVyLCBcblx0XHQjZm9vdGVyIHtcblx0XHRcdHdpZHRoOkBjb250X3dpZHRoX2RlZiArIEBibG9ja3NfaG9yX3BhZDtcblx0XHR9XG5cdH1cblx0Ji5jbXNtYXN0ZXJzX2xpcXVpZCB7XG5cdFx0I2hlYWRlciB7XG5cdFx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdFx0fVxuXHRcdCNtaWRkbGUge1xuXHRcdFx0cGFkZGluZzogMCAzMHB4O1xuXHRcdH1cblx0XHQjYm90dG9tIHtcblx0XHRcdG1hcmdpbjogMCAzMHB4O1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHRcdCNmb290ZXIge1xuXHRcdFx0bWFyZ2luOiAwIDMwcHggMzVweDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblx0fVxufVxuXG4jcGFnZSwgXG4jbWFpbiwgXG4jbWlkZGxlLCBcbi5taWRkbGVfY29udGVudCwgXG4jYm90dG9tLCBcbiNmb290ZXIsIFxuLmhlYWRsaW5lLCBcbi5oZWFkbGluZV9vdXRlciwgXG4ubWlkZGxlX2lubmVyLCBcbi5jbXNtYXN0ZXJzX3JvdywgXG4uY21zbWFzdGVyc19yb3dfb3V0ZXIsIFxuLmNtc21hc3RlcnNfcm93X291dGVyX3BhcmVudCB7XG5cdHdpZHRoOjEwMCU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xufVxuXG4ubWlkZGxlX2NvbnRlbnQge1xuXHRwYWRkaW5nOihAY29udF92ZXJ0X3BhZCAtIDIwcHgpIDAgMDtcbn1cblxuLm1pZGRsZV9jb250ZW50OmVtcHR5IHtcblx0LmRuO1xufVxuXG4ucG9zdC1wYXNzd29yZC1mb3JtLFxuLmhlYWRlcl90b3BfaW5uZXIsIFxuLmhlYWRlcl9taWRfaW5uZXIsIFxuLmhlYWRlcl9ib3RfaW5uZXIsIFxuLmNvbnRlbnRfd3JhcCwgXG4uaGVhZGxpbmVfaW5uZXIsIFxuLmJvdHRvbV9vdXRlciwgXG4uZm9vdGVyX2lubmVyLCBcbi5jbXNtYXN0ZXJzX3Jvd19pbm5lciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR3aWR0aDpAY29udF93aWR0aF9kZWY7XG5cdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XG5cdC5tMGE7XG59XG5cbi5jb250ZW50X3dyYXAgLnBvc3QtcGFzc3dvcmQtZm9ybSB7XG5cdHdpZHRoOmF1dG87XG5cdHBhZGRpbmc6MDtcbn1cblxuLmNtc21hc3RlcnNfcm93IHtcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfZGVmYXVsdC5jbXNtYXN0ZXJzX3Jvd19ib3RfZGVmYXVsdCB7XG5cdFx0ei1pbmRleDowO1xuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF9sZWZ0X2RpYWdvbmFsOmJlZm9yZSwgXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X2xlZnRfZGlhZ29uYWw6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xuXHRcdHdpZHRoOjE1MCU7XG5cdFx0aGVpZ2h0OjE1MHB4O1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6YXV0bztcblx0XHRyaWdodDowO1xuXHRcdHRvcDowO1xuXHRcdGJvdHRvbTphdXRvO1xuXHRcdHotaW5kZXg6MTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xuXHRcdHRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcblx0XHQtbW96LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO1xuXHRcdC1tcy10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfbGVmdF9kaWFnb25hbDphZnRlciB7XG5cdFx0dG9wOmF1dG87XG5cdFx0Ym90dG9tOjA7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcblx0XHR0cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfcmlnaHRfZGlhZ29uYWw6YmVmb3JlLCBcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfcmlnaHRfZGlhZ29uYWw6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xuXHRcdHdpZHRoOjE1MCU7XG5cdFx0aGVpZ2h0OjE1MHB4O1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHRyaWdodDphdXRvO1xuXHRcdHRvcDowO1xuXHRcdGJvdHRvbTphdXRvO1xuXHRcdHotaW5kZXg6MTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xuXHRcdHRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7XG5cdFx0LW1vei10cmFuc2Zvcm0tb3JpZ2luOjAgMDtcblx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjowIDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjowIDA7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3JpZ2h0X2RpYWdvbmFsOmFmdGVyIHtcblx0XHR0b3A6YXV0bztcblx0XHRib3R0b206MDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xuXHRcdHRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3ppZ3phZzpiZWZvcmUsIFxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF96aWd6YWc6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0YmFja2dyb3VuZC1zaXplOjEwcHggNXB4O1xuXHRcdGhlaWdodDo1cHg7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0cmlnaHQ6MDtcblx0XHR0b3A6YXV0bztcblx0XHRib3R0b206MTAwJTtcblx0XHR6LWluZGV4OjE7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3ppZ3phZzphZnRlciB7XG5cdFx0dG9wOjEwMCU7XG5cdFx0Ym90dG9tOmF1dG87XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcblx0XHR0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3RyaWFuZ2xlOmJlZm9yZSwgXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3RyaWFuZ2xlOmFmdGVyIHtcblx0XHRjb250ZW50OicnO1xuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcblx0XHR6LWluZGV4OjE7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHQucG9zX2FicygzMHB4LCAzMHB4LCAwLCAwLCAtMTVweCwgYXV0byk7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3RyaWFuZ2xlOmFmdGVyIHtcblx0XHR0b3A6YXV0bztcblx0XHRib3R0b206LTE1cHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Jvd19vdXRlcl9wYXJlbnQge1xuXHRcdHBhZGRpbmc6LjFweCAwO1xuXHRcdHotaW5kZXg6Mjtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcm93X2lubmVyIHtcblx0XHQmLmNtc21hc3RlcnNfcm93X2Z1bGx3aWR0aCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cGFkZGluZzowIEBibG9ja3NfaG9yX3BhZCAqIDI7XG5cdFx0fVxuXHRcdFxuXHRcdCYuY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luIHtcblx0XHRcdD4gLmNtc21hc3RlcnNfcm93X21hcmdpbiB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcblx0XHRcdFx0PiAuY21zbWFzdGVyc19jb2x1bW4ge1xuXHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19yb3dfb3ZlcmxheSB7XG5cdFx0LmZ1bGx3aWR0aF9pbl9ibG9jaztcblx0fVxufVxuXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luIHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyIC0gMC4wNztcblx0cG9zaXRpb246cmVsYXRpdmU7XG59XG5cbi5jb250ZW50X3dyYXAge1xuXHQmLnJfc2lkZWJhciwgXG5cdCYubF9zaWRlYmFyLCBcblx0Lm9wZW5lZC1hcnRpY2xlLCBcblx0LmNtc21hc3RlcnNfdGFicyB7XG5cdFx0LmNtc21hc3RlcnNfcm93IHtcblx0XHRcdC5jdGJ4O1xuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19yb3dfaW5uZXIge1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jb250ZW50X3dyYXAuY21zbWFzdGVyc19zZXRfZnVsbHdpZHRoIHtcblx0d2lkdGg6MTAwJTtcblx0cGFkZGluZzowO1xufVxuXG4jcGFnZSwgXG4jbWlkZGxlLCBcbi5taWRkbGVfaW5uZXIsIFxuLm1pZGRsZV9jb250ZW50LCBcbiNib3R0b20sIFxuLmJvdHRvbV9iZywgXG4uY29udGVudF93cmFwLCBcbi5jbXNtYXN0ZXJzX3Jvd19pbm5lciwgXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luLCBcbi5jbXNtYXN0ZXJzX2NvbHVtbl9pbm5lciB7XG5cdCY6YWZ0ZXIge1xuXHRcdC5jbF9hZnRlcjtcblx0fVxufVxuXG4jbWlkZGxlIHtcblx0ei1pbmRleDoxO1xufVxuXG4uY29udGVudCB7XG5cdHdpZHRoOkBjb250ZW50X3dpZHRoO1xuXHRwYWRkaW5nOkBjb250X3ZlcnRfcGFkIDA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuZmw7XG5cdFxuXHQmLmZyIHtcblx0XHQuZnI7XG5cdH1cbn1cblxuLnNpZGViYXIge1xuXHR3aWR0aDpAc2lkZWJhcl93aWR0aDtcblx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCAwIEBjb250X3ZlcnRfcGFkIEBjb250X3NpZGViYXJfcGFkO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0LmZyO1xuXHRcblx0Ji5mbCB7XG5cdFx0cGFkZGluZzpAY29udF92ZXJ0X3BhZCBAY29udF9zaWRlYmFyX3BhZCBAY29udF92ZXJ0X3BhZCAwO1xuXHRcdC5mbDtcblx0fVxuXHRcblx0LndpZGdldCB7XG5cdFx0LmJkYjtcblx0XHRwYWRkaW5nLWJvdHRvbTozMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206MzVweDtcblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0LmJkYigwKTtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XG5cdFx0fVxuXHR9XG59XG5cbi5ib3R0b21fYmcge1xuXHRwYWRkaW5nLXRvcDo1MHB4O1xuXHRwYWRkaW5nLWJvdHRvbTo1MHB4IC0gQGxpbmVfaGVpZ2h0X3BhZDtcbn1cblxuLmJvdHRvbV9pbm5lciB7XG5cdG1hcmdpbjowIC1AY29sX21hcjtcblxuXHQmOmFmdGVyIHtcblx0ICBjb250ZW50OiAnLic7XG5cdCAgZGlzcGxheTogYmxvY2s7XG5cdCAgY2xlYXI6IGJvdGg7XG5cdCAgaGVpZ2h0OiAwO1xuXHQgIHZpc2liaWxpdHk6IGhpZGRlbjtcblx0ICBvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cdFxuXHRhc2lkZSB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ZmxvYXQ6bGVmdDtcblx0XHRtYXJnaW46MCBAY29sX21hcjtcblx0fVxufVxuXG5cbi8qIEluc3RhZ3JhbSAqL1xuI3NiaV9sb2FkIHtcblx0cGFkZGluZy10b3A6MCAhaW1wb3J0YW50O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBJY29ucyAqKioqKioqKioqKioqKioqKiovXG4vKiBHbG9iYWwgKi9cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcG9zdF9saW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGInOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX2NvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg3Yyc7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fbGlrZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg5JzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4Zic7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY2FuY2VsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGVhYmMnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MjUnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3BlcnNvbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEzJzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9pbWFnZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMxJzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlYWJiJzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9kYXRlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMDQnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3RpbWU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4MCc7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fbW9uZXk6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyOSc7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc3Bpbm5lcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlOWZkJzsgfVxuXG4vKiBBcnJvd3MgKi9cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfdG9wOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjMnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3ByZXY6YmVmb3JlLCBcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY29tbWVudHNfbmF2X3ByZXY6YmVmb3JlLCBcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGFnaW5hdGlvbl9wcmV2OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjEnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX25leHQ6YmVmb3JlLCBcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY29tbWVudHNfbmF2X25leHQ6YmVmb3JlLCBcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGFnaW5hdGlvbl9uZXh0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjInOyB9XG4uY21zbWFzdGVyc190aGVtZV9jdXN0b21faWNvbl9zbGlkZV90b3A6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMyc7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfYm90dG9tOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjAnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2X3NsaWRlX3VwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMjMnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2X3NsaWRlX2Rvd246YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMic7IH1cblxuLyogV2lkZ2V0IEFkZCBJbmZvICovXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfbWFpbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg1JzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX3dlYnNpdGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNic7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl9waG9uZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX2FkZHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5NSc7IH1cblxuLyogVHdpdHRlciBzdHJpcGUgKi9cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl90d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGVhOTcnOyB9XG5cbi8qIHNob3AgKi9cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fYmFza2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMDInOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3N0YXJfZW1wdHk6YmVmb3JlIHsgY29udGVudDogJ1xcZThhYSc7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc3Rhcl9mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YWEnOyB9XG5cbi8qIHBvc3QgcGxhY2Vob2xkZXJzICovXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3N0ZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVmJzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl92aWRlbzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdkJzsgfVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9pbWFnZTpiZWZvcmUsXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2dhbGxlcnk6YmVmb3JlIHsgY29udGVudDogJ1xcZTkxNic7IH1cbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fYXVkaW86YmVmb3JlIHsgY29udGVudDogJ1xcZTg2MCc7IH1cblxuXG4vKioqKioqKioqKioqKioqKiogRWxlbWVudHMgKioqKioqKioqKioqKioqKioqL1xuLyogSWNvbiBBcnJvdyBHbG9iYWwgU3R5bGVzICovXG4uY21zbWFzdGVyc19wcmV2X2Fycm93LCBcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0d2lkdGg6NDZweDtcblx0aGVpZ2h0OjQ2cHg7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC50YWM7XG5cdC5iZDtcblx0XG5cdCY6YWZ0ZXIge1xuXHRcdC52YWxpZ25fYWZ0ZXI7XG5cdH1cblx0XG5cdHNwYW4ge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHdpZHRoOjExcHg7XG5cdFx0aGVpZ2h0OjExcHg7XG5cdFx0Zm9udC1zaXplOjEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xuXHRcdGxpbmUtaGVpZ2h0OjExcHg7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDoxZW07XG5cdFx0XHRoZWlnaHQ6MWVtO1xuXHRcdH1cblx0fVxufVxuXG4uY21zbWFzdGVyc19wcmV2X2Fycm93IHtcblx0c3BhbiB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonXFxlODAxJztcblx0XHR9XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfbmV4dF9hcnJvdyB7XG5cdHNwYW4ge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6J1xcZTgwMic7XG5cdFx0fVxuXHR9XG59XG5cbi8qIFBpeGVsIEFycm93IGdsb2JhbCBzdHlsZXMgKi9cbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3dfcGl4ZWwsXG4uY21zbWFzdGVyc19uZXh0X2Fycm93X3BpeGVsIHtcblx0YmFja2dyb3VuZDojMDAwMDAwO1xuXHQucG9zX2FicygxcHgsIDFweCwgMCwgYXV0byk7XG5cblx0JjpiZWZvcmUsIFxuXHQmOmFmdGVyLCBcblx0c3BhbjpiZWZvcmUsIFxuXHRzcGFuOmFmdGVyIHtcblx0XHRjb250ZW50OicnO1xuXHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0d2lkdGg6MXB4O1xuXHRcdC5iZHQ7XG5cdFx0LmJkYjtcblx0fVxuXHRcblx0JjpiZWZvcmUge1xuXHRcdGhlaWdodDozcHg7XG5cdFx0bGVmdDoxcHg7XG5cdFx0dG9wOi0xcHg7XG5cdH1cblx0XG5cdCY6YWZ0ZXIge1xuXHRcdGhlaWdodDo1cHg7XG5cdFx0bGVmdDoycHg7XG5cdFx0dG9wOi0ycHg7XG5cdH1cblx0XG5cdHNwYW46YmVmb3JlIHtcblx0XHRoZWlnaHQ6N3B4O1xuXHRcdGxlZnQ6M3B4O1xuXHRcdHRvcDotM3B4O1xuXHR9XG5cdFxuXHRzcGFuOmFmdGVyIHtcblx0XHRoZWlnaHQ6OXB4O1xuXHRcdGxlZnQ6NHB4O1xuXHRcdHRvcDotNHB4O1xuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX25leHRfYXJyb3dfcGl4ZWwge1xuXHRyaWdodDowO1xuXHRsZWZ0OmF1dG87XG5cdFxuXHQmOmJlZm9yZSB7XG5cdFx0bGVmdDphdXRvO1xuXHRcdHJpZ2h0OjFweDtcblx0fVxuXHRcblx0JjphZnRlciB7XG5cdFx0bGVmdDphdXRvO1xuXHRcdHJpZ2h0OjJweDtcblx0fVxuXHRcblx0c3BhbjpiZWZvcmUge1xuXHRcdGxlZnQ6YXV0bztcblx0XHRyaWdodDozcHg7XG5cdH1cblx0XG5cdHNwYW46YWZ0ZXIge1xuXHRcdGxlZnQ6YXV0bztcblx0XHRyaWdodDo0cHg7XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfdG9wX2Fycm93X3BpeGVsLCBcbi5jbXNtYXN0ZXJzX2JvdF9hcnJvd19waXhlbCB7XG5cdGJhY2tncm91bmQ6IzAwMDAwMDtcblx0LnBvc19hYnMoMXB4LCAxcHgsIDAsIDAsIC00cHgpO1xuXG5cdCY6YmVmb3JlLCBcblx0JjphZnRlciwgXG5cdHNwYW46YmVmb3JlLCBcblx0c3BhbjphZnRlciB7XG5cdFx0Y29udGVudDonJztcblx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGhlaWdodDoxcHg7XG5cdFx0LmJkbDtcblx0XHQuYmRyO1xuXHR9XG5cblx0JjpiZWZvcmUge1xuXHRcdHdpZHRoOjNweDtcblx0XHR0b3A6MXB4O1xuXHRcdGxlZnQ6LTFweDtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdHdpZHRoOjVweDtcblx0XHR0b3A6MnB4O1xuXHRcdGxlZnQ6LTJweDtcblx0fVxuXG5cdHNwYW46YmVmb3JlIHtcblx0XHR3aWR0aDo3cHg7XG5cdFx0dG9wOjNweDtcblx0XHRsZWZ0Oi0zcHg7XG5cdH1cblxuXHRzcGFuOmFmdGVyIHtcblx0XHR3aWR0aDo5cHg7XG5cdFx0dG9wOjRweDtcblx0XHRsZWZ0Oi00cHg7XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfYm90X2Fycm93X3BpeGVsIHtcblx0dG9wOjRweDtcblxuXHQmOmJlZm9yZSB7XG5cdFx0dG9wOmF1dG87XG5cdFx0Ym90dG9tOjFweDtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdHRvcDphdXRvO1xuXHRcdGJvdHRvbToycHg7XG5cdH1cblxuXHRzcGFuOmJlZm9yZSB7XG5cdFx0dG9wOmF1dG87XG5cdFx0Ym90dG9tOjNweDtcblx0fVxuXG5cdHNwYW46YWZ0ZXIge1xuXHRcdHRvcDphdXRvO1xuXHRcdGJvdHRvbTo0cHg7XG5cdH1cbn1cblxuXG4vKiBQb3N0IFBhc3N3b3JkIEZvcm0gKi9cbi5wb3N0LXBhc3N3b3JkLWZvcm0ge1xuXHRwYWRkaW5nLXRvcDo0MHB4O1xuXHRcblx0cDpmaXJzdC1jaGlsZCB7XG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0fVxuXHRcblx0bGFiZWwge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcblx0fVxuXHRcblx0aW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHR9XG5cdFxuXHRpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuXHRcdGxpbmUtaGVpZ2h0OkBpbnB1dF9oZWlnaHQ7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xuXHRcdG1hcmdpbi10b3A6IC0ycHg7XG5cdH1cbn1cblxuXG4vKiBQcmVsb2RhZXIgKi9cbi5wcmVsb2FkZXIge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MDtcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC50YWM7XG5cdFxuXHQuZnVsbC13aWR0aCB7XG5cdFx0LmZ1bGx3aWR0aF9pbl9ibG9jaztcblx0fVxuXHRcblx0Ji5oaWdoSW1nIHtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0LmZ1bGwtd2lkdGgge1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHRvcDphdXRvO1xuXHRcdFx0bGVmdDphdXRvO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qIFJlc2l6YWJsZSBCbG9jayAqL1xuLnJlc2l6YWJsZV9ibG9jayB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDowO1xuXHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdC5mdWxsLXdpZHRoIHtcblx0XHQuZnVsbHdpZHRoX2luX2Jsb2NrO1xuXHR9XG59XG5cblxuLyogSW1nIFdyYXBwZXIgKi9cbi5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC50YWM7XG5cdC5vdmg7XG5cblx0LmltZ19wbGFjZWhvbGRlciB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdFx0LmJkO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZTo0MHB4O1xuXHRcdFx0LnBvc19hYnM7XG5cdFx0fVxuXHR9XG5cdFxuXHQuaGlnaEltZyB7XG5cdFx0LmltZ19wbGFjZWhvbGRlciB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qIEltZyBSb2xsb3ZlciAqL1xuLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblxuXHQuaW1nX3BsYWNlaG9sZGVyIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0XHQuYmQ7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Zm9udC1zaXplOjQwcHg7XG5cdFx0XHQucG9zX2Ficztcblx0XHR9XG5cdH1cblx0XG5cdCYuaGlnaEltZyB7XG5cdFx0LmltZ19wbGFjZWhvbGRlciB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0XHQudGFjO1xuXHRcdC5vcCgwKTtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfb3Blbl9saW5rLCBcblx0LmNtc21hc3RlcnNfaW1hZ2VfbGluayB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0fVxuXHRcblx0Jjpob3ZlciB7XG5cdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcblx0XHRcdC5vcCgxKTtcblx0XHR9XG5cdH1cbn1cblxuXG4vKiBQbGFjZWhvbGRlciBTbWFsbCAqL1xuLmltZ19wbGFjZWhvbGRlcl9zbWFsbCB7XG5cdGhlaWdodDo2MHB4O1xuXHR3aWR0aDo2MHB4O1xuXHQuYmQ7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0JjpiZWZvcmUge1xuXHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdC5wb3NfYWJzO1xuXHR9XG59XG5cblxuLyogVmlkZW8gV3JhcHBlciAqL1xuLndwLXZpZGVvLXNob3J0Y29kZSwgXG4ubWVqcy1sYXllciB7XG5cdG1heC13aWR0aDoxMDAlO1xufVxuXG4ubWVqcy1jb250YWluZXIge1xuXHQmLndwLXZpZGVvLXNob3J0Y29kZSwgXG5cdCYud3AtYXVkaW8tc2hvcnRjb2RlIHtcblx0XHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XG5cdFx0bWF4LXdpZHRoOjEwMCU7XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfdmlkZW9fd3JhcCB7XG5cdHdpZHRoOjEwMCU7XG5cdG1heC13aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MDtcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0PiBkaXYge1xuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdH1cblx0XG5cdGlmcmFtZSB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRtYXgtd2lkdGg6YXV0bztcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0bGVmdDowO1xuXHRcdHRvcDowO1xuXHR9XG5cdFxuXHQud3AtdmlkZW8tc2hvcnRjb2RlLCBcblx0Lm1lanMtbGF5ZXIge1xuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcblx0XHRoZWlnaHQ6MTAwJSAhaW1wb3J0YW50O1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0XHRcblx0XHQubWVqcy1vdmVybGF5LWJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tdG9wOi01MHB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG5cblxuLyogU2VhcmNoIEJhciAqL1xuLnNlYXJjaF9iYXJfd3JhcCB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHR3aWR0aDoxMDAlO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdC5zZWFyY2hfZmllbGQge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW46MDtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdGlucHV0IHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcblx0XHRcdCNtaWRkbGUgJiwgXG5cdFx0XHQjYm90dG9tICYge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjQycHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuc2VhcmNoX2J1dHRvbiB7XG5cdFx0cGFkZGluZzowO1xuXHRcdG1hcmdpbjowO1xuXHRcdC5wb3NfYWJzKDQycHgsIDEwMCUsIGF1dG8sIDApO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0YnV0dG9uIHtcblx0XHRcdGJhY2tncm91bmQ6bm9uZTtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQuYmQoMCk7XG5cdFx0XHQuYnhzaF9ub25lO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZToxM3B4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDpib2xkO1xuXHRcdFx0XHQucG9zX2FicygxZW0sIDFlbSwgMTBweCwgMTAwJSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyogU29jaWFsIEljb25zICovXG4uc29jaWFsX3dyYXAge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRoZWlnaHQ6MTAwJTtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuc29jaWFsX3dyYXBfaW5uZXIge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0LnZhbGlnbl9hZnRlcjtcblx0XHR9XG5cdH1cblx0XG5cdHVsIHtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0fVxuXHRcblx0bGkge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjowIDJweCAwIDA7XG5cdFx0cGFkZGluZzowO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdGEge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0d2lkdGg6MjBweDtcblx0XHRoZWlnaHQ6MjBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHQucG9zX2Ficztcblx0XHR9XG5cdH1cbn1cblxuXG4vKiBDb3JlIE93bCBDYXJvdXNlbCBDU1MgdjEuMy4yICovXG4uY21zbWFzdGVyc19vd2xfc2xpZGVyOm5vdCgub3dsLWNhcm91c2VsKSB7XG5cdD4gZGl2IHtcblx0XHR3aWR0aDowO1xuXHRcdGhlaWdodDowO1xuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xuXHR9XG59XG5cbi5vd2wtY2Fyb3VzZWwge1xuXHR3aWR0aDoxMDAlO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0LW1zLXRvdWNoLWFjdGlvbjpwYW4teTtcblx0LmRuO1xuXHRcblx0Lm93bC13cmFwcGVyLW91dGVyIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFxuXHRcdCYuYXV0b0hlaWdodCB7XG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcblx0XHRcdC1tb3otdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0LW1zLXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcblx0XHRcdC1vLXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcblx0XHRcdHRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcblx0XHR9XG5cdFxuXHRcdC5vd2wtd3JhcHBlciB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5kbjtcblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6Jy4nO1xuXHRcdFx0XHRsaW5lLWhlaWdodDowO1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6MDtcblx0XHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XG5cdFx0XHRcdC5jbDtcblx0XHRcdH1cblx0XHRcblx0XHRcdC5vd2wtaXRlbSB7XG5cdFx0XHRcdC5mbDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Lm93bC13cmFwcGVyLCBcblx0XHQub3dsLWl0ZW0ge1xuXHRcdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcblx0XHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XG5cdFx0XHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtcblx0XHR9XG5cdFx0XG5cdFx0LmllX29ubHkgJiB7XG5cdFx0XHQub3dsLXdyYXBwZXIsIFxuXHRcdFx0Lm93bC1pdGVtIHtcblx0XHRcdFx0LW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5vd2wtY29udHJvbHMge1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTtcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6bm9uZTtcblx0XHQtbW96LXVzZXItc2VsZWN0Om5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0Om5vbmU7XG5cdFx0dXNlci1zZWxlY3Q6bm9uZTtcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLCAwLCAwLCAwKTtcblx0fVxufVxuXG4ub3dsLXBhZ2luYXRpb24ge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR3aWR0aDoxMDAlO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0LnRhYztcblx0XG5cdC5vd2wtcGFnZSB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6MTBweDtcblx0XHRoZWlnaHQ6MTBweDtcblx0XHRtYXJnaW46MCA1cHggMnB4O1xuXHRcdHRleHQtaW5kZW50Oi05OTk5cHg7XG5cdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0LmJkO1xuXHRcdC5iZHJzKDUwJSk7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0dG9wOi0ycHg7XG5cdFx0XHRsZWZ0Oi0ycHg7XG5cdFx0XHR3aWR0aDoxMnB4O1xuXHRcdFx0aGVpZ2h0OjEycHg7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0LmJkO1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdC5vcCgwKTtcblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciwgXG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdGN1cnNvcjpkZWZhdWx0O1xuXHRcdH1cblx0XHRcblx0XHRzcGFuIHtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6OHB4O1xuXHRcdFx0aGVpZ2h0OjhweDtcblx0XHR9XG5cdH1cbn1cblxuLm93bC1idXR0b25zIHtcblx0PiBkaXYge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdHRvcDo1MCU7XG5cdFx0bWFyZ2luLXRvcDotMjNweDtcblx0XHRcblx0XHQmLm93bC1wcmV2IHtcblx0XHRcdGxlZnQ6MDtcblx0XHR9XG5cdFx0XG5cdFx0Ji5vd2wtbmV4dCB7XG5cdFx0XHRyaWdodDowO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qIFNsaWRlIFRvcCBCdXR0b24gKi9cbiNzbGlkZV90b3Age1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2lkdGg6NTBweDtcblx0aGVpZ2h0OjUwcHg7XG5cdHBvc2l0aW9uOmZpeGVkO1xuXHRib3R0b206NTVweDtcblx0cmlnaHQ6MzBweDtcblx0ei1pbmRleDo5OTk5O1xuXHQuZG47XG5cdC5iZDtcblx0XG5cdCY6YmVmb3JlIHtcblx0XHRmb250LXNpemU6MTBweDtcblx0XHRsaW5lLWhlaWdodDo1MHB4O1xuXHRcdGNvbnRlbnQ6J1xcZTgwMyc7XG5cdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvLWN1c3RvbSc7XG5cdH1cblx0XG5cdD4gc3BhbiB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dGV4dC1pbmRlbnQ6LTk5OTlweDtcblx0fVxufVxuXG5cbi8qIE9wZW5lZCBBcnRpY2xlICovXG4ub3BlbmVkLWFydGljbGUge1xuXHRvdXRsaW5lOm5vbmU7XG5cblx0Lm1pZGRsZV9jb250ZW50ICYge1xuXHRcdHBhZGRpbmc6NTBweCAwO1xuXHRcdFxuXHRcdCYucG9ydGZvbGlvLCBcblx0XHQmLnByb2ZpbGVzIHtcblx0XHRcdHBhZGRpbmctdG9wOjA7XG5cdFx0fVxuXHR9XG59XG5cblxuLyogTGlrZXMgYW5kIENvbW1lbnRzICovXG4uY21zbWFzdGVyc19saWtlcywgXG4uY21zbWFzdGVyc19jb21tZW50cyB7XG5cdGEge1xuXHRcdGZvbnQtc2l6ZToxMnB4O1xuXHRcdGxpbmUtaGVpZ2h0OjE2cHg7XG5cdFx0cGFkZGluZzowIDAgMCAxcHg7XG5cdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR0b3A6MXB4O1xuXHRcdFx0d2lkdGg6MTRweDtcblx0XHR9XG5cdFx0XG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XG5cdFx0fVxuXHRcdFxuXHRcdHNwYW4ge1xuXHRcdFx0bWFyZ2luOjAgMCAwIDVweDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKiBCdXR0b24gKi9cbi5idXR0b24sIFxuaW5wdXRbdHlwZT1zdWJtaXRdLCBcbmlucHV0W3R5cGU9YnV0dG9uXSwgXG5idXR0b24ge1xuXHQuZGVmYXVsdF9idXR0b24oKTtcbn1cblxuXG4vKiBJdGVtcyBGaWx0ZXIgKi9cbi5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwIHtcblx0cGFkZGluZzowIDAgNDBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYmxvY2sge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0LmZyO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0IHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdG1hcmdpbjowIDAgMCAxMHB4O1xuXHRcdHBhZGRpbmctbGVmdDoyNXB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6NDhweDtcblx0XHQuZmw7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvLWN1c3RvbSc7XG5cdFx0XHRmb250LXNpemU6MTBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjExcHg7XG5cdFx0XHRjb250ZW50OidcXGU4MDAnO1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHdpZHRoOjExcHg7XG5cdFx0XHRoZWlnaHQ6MTFweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0cmlnaHQ6MThweDtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHRtYXJnaW4tdG9wOi02cHg7XG5cdFx0fVxuXHRcdFxuXHRcdCYucmV2ZXJzZWQge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKTtcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgtMTgwZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9ibG9jayB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX2J1dCB7XG5cdFx0LmRuO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfbGlzdCB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjBweDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDoyMHB4O1xuXHRcdFx0XHRib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYuY3VycmVudCBhIHtcblx0XHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyogTW9yZSBJdGVtcyBMb2FkZXIgYW5kIFBhZ2luYXRpb24gKi9cbi5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtcyB7XG5cdHdpZHRoOjEwMCU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0Ji5jbXNtYXN0ZXJzX2xvYWRpbmcge1xuXHRcdG1pbi1oZWlnaHQ6NjBweDtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRmb250LXNpemU6MzBweDtcblx0XHRcdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCAwLCBhdXRvLCAwKTtcblx0XHR9XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfd3JhcF9pdGVtc19sb2FkZXIge1xuXHRwYWRkaW5nOjQwcHggMCAwO1xuXHQudGFjO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfaXRlbXNfbG9hZGVyIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0fVxufVxuXG5kaXYuc3VicGFnZV9uYXYge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdD4gc3Ryb25nIHtcblx0XHRmb250LXdlaWdodDpib2xkO1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6MCA1cHggMCAwO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0fVxuXHRcblx0PiBzcGFuLFxuXHQ+IGEge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6MCA1cHg7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX3dyYXBfcGFnaW5hdGlvbiB7XG5cdHBhZGRpbmc6NzBweCAwO1xuXHQub3ZoO1xuXHRcblx0dWwge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW46MDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0bWFyZ2luOjAgMnB4IDAgMDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdC5mbDtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5wYWdlLW51bWJlcnMge1xuXHRcdFx0XHRsaW5lLWhlaWdodDozOHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdG1pbi13aWR0aDozN3B4O1xuXHRcdFx0XHRoZWlnaHQ6MzdweDtcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRcdC5iZDtcblx0XHRcdFx0LnRhYztcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfcHJldixcblx0XHRcdFx0LmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9uZXh0IHtcblx0XHRcdFx0XHRmb250LXNpemU6MTBweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDoxMXB4O1xuXHRcdFx0XHRcdC5wb3NfYWJzO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6YmVmb3Jle1xuXHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvLWN1c3RvbSc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3ByZXY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OidcXGU4MDEnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX25leHQ6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OidcXGU4MDInO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmOmVtcHR5IHtcblx0XHQuZG47XG5cdH1cbn1cblxuXG4vKiBQb3N0IE5hdmlnYXRpb24gKi9cbi5wb3N0X25hdiB7XG5cdHBhZGRpbmc6NTBweCAwIDA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0PiBzcGFuIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdG1heC13aWR0aDo1MCU7XG5cdFx0XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHBhZGRpbmc6MjRweCAwIDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6Mjtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdyxcblx0XHQuY21zbWFzdGVyc19wcmV2X2Fycm93IHtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0dG9wOjA7XG5cdFx0fVxuXHRcdFxuXHRcdC5wb3N0X25hdl9zdWIge1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR0b3A6MXB4O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHdoaXRlLXNwYWNlOm5vd3JhcDtcblx0XHR9XG5cdFx0XG5cdFx0LnBvc3RfbmF2X3R5cGUge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX3ByZXZfcG9zdCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcblx0XHRcdC5mbDtcblx0XHRcdFxuXHRcdFx0LnBvc3RfbmF2X3N1YiB7XG5cdFx0XHRcdGxlZnQ6NjVweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDo2NXB4O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdD4gLmNtc21hc3RlcnNfcHJldl9hcnJvdyB7XG5cdFx0XHRcdGxlZnQ6MXB4O1xuXHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLmNtc21hc3RlcnNfbmV4dF9wb3N0IHtcblx0XHRcdHBhZGRpbmctbGVmdDoyMHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDowO1xuXHRcdFx0LmZyO1xuXHRcdFx0LnRhcjtcblx0XHRcdFxuXHRcdFx0LnBvc3RfbmF2X3N1YiB7XG5cdFx0XHRcdHJpZ2h0OjY1cHg7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDo2NXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQ+IC5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xuXHRcdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRcdHJpZ2h0OjFweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKiBTaGFyZSBQb3N0cyAqL1xuLnNoYXJlX3Bvc3RzIHtcblx0cGFkZGluZzoyMHB4IDAgMDtcblx0bWFyZ2luLXRvcDozMHB4O1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0LmJkdDtcblx0XG5cdC5zaGFyZV9wb3N0c19pbm5lciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0YSB7XG5cdFx0bWFyZ2luOjAgMzBweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qIEFib3V0IEF1dGhvciAqL1xuLmFib3V0X2F1dGhvciB7XG5cdHBhZGRpbmc6NTBweCAwIDA7XG5cdG1hcmdpbi10b3A6NTBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5iZHQ7XG5cdFxuXHQuYWJvdXRfYXV0aG9yX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOjdweDtcblx0fVxuXHRcblx0LmFib3V0X2F1dGhvcl9pbm5lciB7XG5cdFx0cGFkZGluZzozMHB4IDAgMTBweDtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuYWJvdXRfYXV0aG9yX2F2YXRhciB7XG5cdFx0bWFyZ2luOjAgMzBweCAwIDA7XG5cdFx0LmZsO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0aW1nIHtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0fVxuXHR9XG5cdFxuXHQuYWJvdXRfYXV0aG9yX2NvbnQge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRwYWRkaW5nOjAgMCAxMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmFib3V0X2F1dGhvcl9jb250X3RpdGxlIHtcblx0XHRtYXJnaW46NXB4IDAgMTBweDtcblx0fVxufVxuXG5cbi8qIFNpbmdsZSBQb3N0IFNsaWRlciAqL1xuLmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlciB7XG5cdHBhZGRpbmc6NTBweCAwIDA7XG5cdG1hcmdpbi10b3A6NTBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdC5iZHQ7XG5cdFxuXHQucHJlbG9hZGVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ7XG5cdFx0XG5cdFx0Ji5oaWdoSW1nIHtcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX3RpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XG5cdFx0cGFkZGluZy1yaWdodDo4MHB4O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX25vX2l0ZW1zIHtcblx0XHRtYXJnaW4tdG9wOjUwcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfd3JhcCAge1xuXHRcdHBhZGRpbmctdG9wOjcwcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaW5uZXIge1xuXHRcdG1hcmdpbjowIC0xMHB4O1xuXHRcdFxuXHRcdC5vd2wtYnV0dG9ucyB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHdpZHRoOjc3cHg7XG5cdFx0XHRoZWlnaHQ6NDBweDtcblx0XHRcdG1hcmdpbjowIGF1dG87XG5cdFx0XHRcblx0XHRcdD4gZGl2IHtcblx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfcHJldl9hcnJvdywgXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xuXHRcdFx0XHRcdHdpZHRoOjM3cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OjM3cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbSB7XG5cdFx0bWluLXdpZHRoOjIwMHB4O1xuXHRcdHBhZGRpbmc6MCAxMXB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fb3V0ZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbV9pbm5lciB7XG5cdFx0cGFkZGluZzoxNXB4IDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl9pdGVtX3RpdGxlIHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdH1cblx0XG5cdC5vd2wtcGFnaW5hdGlvbiB7XG5cdFx0LmRuO1xuXHR9XG59XG5cblxuLyogU2luZ2xlIFBpbmdzIExpc3QgKi9cbi5jbXNtYXN0ZXJzX3BpbmdzX2xpc3Qge1xuXHRwYWRkaW5nOjUwcHggMCAwO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdC5waW5nc2xpc3Qge1xuXHRcdC5waW5nYmFjayB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmc6OHB4IDUwcHggOHB4IDA7XG5cdFx0XHQuYmRiO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHQuYmRiKDApO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY29tbWVudC1ib2R5IHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRcdFxuXHRcdFx0XHQuZWRpdC1saW5rIHtcblx0XHRcdFx0XHQucG9zX2FicyhhdXRvLGF1dG8sYXV0bywwLDAsMCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0XHQudmFsaWduX2FmdGVyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuY29tbWVudC1lZGl0LWxpbmsge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyogUG9zdCBDb21tZW50cyAqL1xuLnBvc3RfY29tbWVudHMge1xuXHRwYWRkaW5nOjUwcHggMCAwO1xuXHRtYXJnaW4tdG9wOjUwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuYmR0O1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHQucG9zdF9jb21tZW50c190aXRsZSB7XG5cdFx0bWFyZ2luOjA7XG5cdH1cblxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fY29udGVudCB7XG5cdFx0PiB1bCwgPiBvbCB7XG5cdFx0XHRtYXJnaW46IDAgMCAyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4ucHJvamVjdF9uYXZpIHtcblx0cGFkZGluZzoyMHB4IDA7XG5cdC5vdmg7XG59XG5cbi5jb21tZW50bGlzdCB7XG5cdGxpc3Qtc3R5bGU6bm9uZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MTVweCAwIDA7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5jaGlsZHJlbiB7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MCAwIDAgMjBweDtcblx0fVxuXHRcblx0LmNvbW1lbnQge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MzBweCAwIDA7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDpub25lO1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC5jbF9hZnRlcjtcblx0XHR9XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfY29tbWVudF9pdGVtIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHBhZGRpbmctYm90dG9tOjMwcHg7XG5cdC5iZGI7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9hdmF0YXIge1xuXHRcdHBhZGRpbmctcmlnaHQ6MzBweDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdC5mbDtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdFx0XG5cdFx0aW1nIHtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0fVxuXHRcblx0LmNvbW1lbnQtZWRpdC1saW5rIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250IHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fY29udF9pbmZvIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdD4gYSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV90aXRsZSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHR9XG5cdFxuXHQuY29tbWVudC1yZXBseS1saW5rIHtcblx0XHQuZnI7XG5cdFx0bWFyZ2luLWxlZnQ6MTJweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2RhdGUge1xuXHRcdC5mcjtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRlbnQge1xuXHRcdHBhZGRpbmctdG9wOjE1cHg7XG5cdFx0XG5cdFx0PiAqOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xuXHRcdFx0cGFkZGluZy1ib3R0b206MDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKiBDb21tZW50IFJlc3BvbmQgKi9cbi5jb21tZW50LXJlc3BvbmQge1xuXHRwYWRkaW5nOjUwcHggMDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdGxhYmVsIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOjZweDtcblx0fVxuXHRcblx0dGV4dGFyZWEge1xuXHRcdG1pbi1oZWlnaHQ6MTYwcHg7XG5cdH1cblx0XG5cdHAge1xuXHRcdHBhZGRpbmctYm90dG9tOjEycHg7XG5cdH1cblx0XG5cdC5jb21tZW50LXJlcGx5LXRpdGxlIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHRzbWFsbCB7XG5cdFx0XHQuZnI7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29tbWVudC1mb3JtIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHR3aWR0aDo2MCU7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQuY2xfYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdGlucHV0W3R5cGU9dGV4dF0sXG5cdFx0dGV4dGFyZWEge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cdH1cblx0XG5cdC5jb21tZW50LW5vdGVzLCBcblx0LmxvZ2dlZC1pbi1hcyB7XG5cdFx0cGFkZGluZy1ib3R0b206MjBweDtcblx0XHQuY2w7XG5cdH1cblx0XG5cdC5jb21tZW50LWZvcm0tYXV0aG9yLCBcblx0LmNvbW1lbnQtZm9ybS1lbWFpbCB7XG5cdFx0Y2xlYXI6bGVmdDtcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cblx0LmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnQge1xuXHRcdGZsb2F0Om5vbmU7XG5cdFx0LmNsO1xuXHRcdFxuXHRcdGlucHV0LCBcblx0XHRsYWJlbCB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHR9XG5cdFx0XG5cdFx0bGFiZWwge1xuXHRcdFx0bWFyZ2luLWxlZnQ6NXB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblx0XG5cdC5mb3JtLXN1Ym1pdCB7XG5cdFx0cGFkZGluZy10b3A6MTBweDtcblx0XHQuY2w7XG5cdH1cbn1cblxuLnN1YnBhZ2VfbmF2IHtcblx0LmNsO1xuIFxuXHRzdHJvbmcge1xuXHRcdG1hcmdpbi1ib3R0b206MTBweDtcblx0XHQuZmw7XG5cdH1cbiBcblx0PiBhLCBcblx0PiBzcGFuIHtcblx0XHRtaW4td2lkdGg6MzdweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQudGFjO1xuXG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiA0cHg7XG5cdFx0fVxuXHR9XG4gXG5cdD4gc3BhbiB7XG5cdFx0Y3Vyc29yOmRlZmF1bHQ7XG5cdH1cbiBcblx0PiBzcGFuICsgYSwgXG5cdD4gYSArIHNwYW4sIFxuXHQ+IGEgKyBhIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbiBcblx0c3BhbiB7XG5cdFx0LnRhYztcblx0fVxufVxuXG4ubm9jb21tZW50cyB7XG5cdG1hcmdpbjo1MHB4IDAgMDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICsgQ2VudGVyZWQgKyBSaWdodCArIEZpeGVkIFZlcnNpb25zXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyICoqKioqKioqKioqKioqKioqKi9cbiNoZWFkZXIge1xuXHR3aWR0aDoxMDAlO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0ei1pbmRleDo5OTk5O1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBOYXZpZ2F0aW9uICoqKioqKioqKioqKioqKioqKi9cbi5uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0aGVpZ2h0OjEwMCU7XG5cdFxuXHQ+IGxpIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRtYXJnaW46MDtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0aGVpZ2h0OiAxNnB4O1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0b3A6IDRweDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cdFx0XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0PiBhIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5uYXZfaXRlbV93cmFwIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdFx0cGFkZGluZzo1cHggMjVweDtcblx0XHRcdFx0cGFkZGluZy10b3A6IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcblx0XHR1bCBsaSBhIHtcblx0XHRcdHBhZGRpbmc6IDZweCAxM3B4O1xuXHRcdH1cblx0fVxuXHR1bCB7XG5cdFx0cGFkZGluZy1sZWZ0OjEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDoxMHB4O1xuXHRcdGxlZnQ6MDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRhIHtcblx0XHRcdFx0cGFkZGluZzo3cHggMTNweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0dWwge1xuXHRcdFx0bGVmdDoxMDAlO1xuXHRcdH1cblx0fVxuXHRcblx0Lm5hdl9zdWJ0aXRsZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW4tdG9wOi01cHg7XG5cdH1cblx0XG5cdC5uYXZfdGFnIHtcblx0XHRtYXJnaW46MCA1cHg7XG5cdFx0cGFkZGluZzowIDVweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgVG9wICoqKioqKioqKioqKioqKioqKi9cbi5oZWFkZXJfdG9wIHtcblx0LmhlYWRlcl90b3BfYnV0IHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDozMnB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdC5iZGI7XG5cdFx0LmRuO1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRmb250LXNpemU6MThweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XG5cdFx0XHQucG9zX2Ficztcblx0XHR9XG5cdH1cblx0XG5cdC5oZWFkZXJfdG9wX291dGVyIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuYmRiO1xuXHR9XG5cdFxuXHQuaGVhZGVyX3RvcF9pbm5lciB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQuY2xfYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5oZWFkZXJfZnVsbHdpZHRoICYge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdHBhZGRpbmctbGVmdDoyJTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6MiU7XG5cdFx0fVxuXHR9XG5cdFxuXHQuaGVhZGVyX3RvcF9yaWdodCB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0LmZyO1xuXHR9XG5cdFxuXHQuc29jaWFsX3dyYXAge1xuXHRcdG91dGxpbmU6bm9uZTtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjRweDtcblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOjE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xuXHRcdFx0d2lkdGg6MTZweDtcblx0XHRcdGhlaWdodDoxNnB4O1xuXHRcdH1cblx0fVxuXHRcblx0LnRvcF9uYXZfd3JhcCB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRoZWlnaHQ6MTAwJTtcblx0fVxuXHRcblx0LnJlc3BvbnNpdmVfdG9wX25hdiB7XG5cdFx0LmRuO1xuXHR9XG5cdFxuXHQuaGVhZGVyX3RvcF9sZWZ0IHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0fVxuXHR9XG5cdFxuXHQubWV0YV93cmFwIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XG5cdFx0PiAqIHtcblx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0PiBwIHtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdFx0XG5cdFx0LmFkciB7XG5cdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBUb3AgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXG4udG9wX2xpbmVfbmF2IHtcblx0ei1pbmRleDoyMDU7XG5cdFxuXHQ+IGxpIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcblx0XHQ+IGEge1xuXHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRwYWRkaW5nOjAgMTBweDtcblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5uYXZfaXRlbV93cmFwIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmc6MXB4IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBNaWQgKioqKioqKioqKioqKioqKioqL1xuLmhlYWRlcl9taWQge1xuXHQuY2w7XG5cdFxuXHQuaGVhZGVyX21pZF9vdXRlciB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdH1cblx0XG5cdC5oZWFkZXJfbWlkX2lubmVyIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC5jbF9hZnRlcjtcblx0XHR9XG5cdFx0XG5cdFx0LmhlYWRlcl9mdWxsd2lkdGggJiB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjA7XG5cdFx0XHQudGFjO1xuXHRcdH1cblx0fVxuXHRcblx0LmxvZ29fd3JhcCB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdC5mbDtcblx0XHRcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcblx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0XHQubTBhO1xuXHRcdFx0LnRhYztcblx0XHR9XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQudmFsaWduX2FmdGVyO1xuXHRcdH1cblx0XHRcblx0XHQubG9nb190ZXh0X3dyYXAge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdC50aXRsZSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdH1cblx0XHRcblx0XHQudGl0bGVfdGV4dCB7XG5cdFx0XHRwYWRkaW5nOjAgMCAwIDNweDtcblx0XHR9XG5cdFx0XG5cdFx0LmxvZ28ge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDphdXRvO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXgtaGVpZ2h0OjEwMCU7XG5cdFx0XHRcdC5wb3NfYWJzKGF1dG8sIGF1dG8sIDAsIGF1dG8pO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQubG9nb19yZXRpbmEge1xuXHRcdFx0XHQuZG47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQucmVzcF9taWRfbmF2X3dyYXAge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdG1hcmdpbjowIDAgMCAyMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5kbjtcblx0XHQuZnI7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQucmVzcF9taWRfbmF2X291dGVyIHtcblx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LnJlc3BfbWlkX25hdiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XG5cdFx0XHQmOmhvdmVyLCBcblx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0b3V0bGluZTpub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Lm1pZF9zZWFyY2hfYnV0X3dyYXAge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdG1hcmdpbjowIDAgMCAyMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5mcjtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5taWRfc2VhcmNoX2J1dCB7XG5cdFx0XHRmb250LXNpemU6MThweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjE4cHg7XG5cdFx0XHR3aWR0aDoyOHB4O1xuXHRcdFx0aGVpZ2h0OjI4cHg7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQucG9zX2Ficztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5zb2NpYWxfd3JhcCB7XG5cdFx0bWFyZ2luOjAgMCAwIDIwcHg7XG5cdFx0LmZyO1xuXHRcdFxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XG5cdFx0XHQudGFyO1xuXHRcdH1cblx0XHRcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjlweDtcblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOjE4cHg7XG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XG5cdFx0XHR3aWR0aDoxZW07XG5cdFx0XHRoZWlnaHQ6MWVtO1xuXHRcdH1cblx0fVxuXHRcblx0LnNsb2dhbl93cmFwIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5mcjtcblx0XHRcblx0XHQuc2xvZ2FuX3dyYXBfaW5uZXIge1xuXHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRwYWRkaW5nOjAgMCAwIDIwcHg7XG5cdFx0XHQudGFyO1xuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LnNsb2dhbl93cmFwX3RleHQge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRcblx0XHRcdD4gKiB7XG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0XG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxuXHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxuXHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdOmJlZm9yZSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdD4gcCB7XG5cdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmFkciB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOm5vd3JhcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5taWRfbmF2X3dyYXAge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5mcjtcblx0XHRcblx0XHQuaGVhZGVyX2Z1bGx3aWR0aCAmIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdC5oZWFkZXJfZnVsbHdpZHRoICYge1xuXHRcdC5sb2dvX3dyYXAgKyAucmVzcF9taWRfbmF2X3dyYXAgKyAuY21zbWFzdGVyc19keW5hbWljX2NhcnRfd3JhcCArIC5taWRfbmF2X3dyYXAsXG5cdFx0LmxvZ29fd3JhcCArIC5yZXNwX21pZF9uYXZfd3JhcCArIC5taWRfbmF2X3dyYXAge1xuXHRcdFx0LmZyO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgTWlkIE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xuLm1pZF9uYXYge1xuXHRvdXRsaW5lOm5vbmU7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBCb3QgKioqKioqKioqKioqKioqKioqL1xuLmhlYWRlcl9ib3Qge1xuXHQuY2w7XG5cdFxuXHQuaGVhZGVyX2JvdF9vdXRlciB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0LmJkYjtcblx0fVxuXHRcblx0LmhlYWRlcl9ib3RfaW5uZXIge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0LmNsX2FmdGVyO1xuXHRcdH1cblx0XHRcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcblx0XHRcdC50YWM7XG5cdFx0fVxuXHR9XG5cdFxuXHQuYm90X25hdl93cmFwIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZmw7XG5cdFx0XG5cdFx0LmVuYWJsZV9oZWFkZXJfcmlnaHQgJiB7XG5cdFx0XHQuZnI7XG5cdFx0fVxuXHRcdFxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRmbG9hdDpub25lO1xuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgQm90IE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xuLmJvdF9uYXYge1xuXHRvdXRsaW5lOm5vbmU7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBTZWFyY2ggRm9ybSAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0ge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRwb3NpdGlvbjpmaXhlZDtcblx0bGVmdDowO1xuXHR0b3A6MDtcblx0d2lkdGg6MTAwJTtcblx0aGVpZ2h0OjEwMCU7XG5cdHotaW5kZXg6OTk5OTk7XG5cdHZpc2liaWxpdHk6aGlkZGVuO1xuXHQub3AoMCk7XG5cdC50YWM7XG5cdFxuXHQmLmNtc21hc3RlcnNfc2hvdyB7XG5cdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHRcdC5vcCgxKTtcblx0XHRcblx0XHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm1fY2xvc2Uge1xuXHRcdFx0Lm9wKDEpO1xuXHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XG5cdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHR9XG5cdH1cblx0XG5cdCY6YWZ0ZXIge1xuXHRcdC52YWxpZ25fYWZ0ZXI7XG5cdH1cblx0XG5cdGZvcm0ge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOjQwMHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2ZpZWxkIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzp2aXNpYmxlO1xuXHRcdHBhZGRpbmc6MTBweCAwO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjNweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpO1xuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEwcHgpO1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjNweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0Ym90dG9tOjA7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpO1xuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KTtcblx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwcHgpO1xuXHRcdH1cblx0XHRcblx0XHQmLmFjdGl2ZSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7XG5cdFx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpbnB1dDpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWZpbGVdKTpub3QoW3R5cGU9aGlkZGVuXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPXJlc2V0XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1jb2xvcl0pOm5vdChbdHlwZT1yYW5nZV0pIHtcblx0XHRcdGhlaWdodDo3MHB4O1xuXHRcdFx0Zm9udC1zaXplOjYwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDo3MHB4O1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdFx0LmJ4c2hfbm9uZTtcblx0XHRcdC5iZCgwKTtcblx0XHRcdC50YWM7XG5cdFx0XHRcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHQuYnhzaF9ub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRidXR0b24ge1xuXHRcdC5kbjtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2Nsb3NlIHtcblx0XHR3aWR0aDoyMnB4O1xuXHRcdGhlaWdodDoyMnB4O1xuXHRcdHBvc2l0aW9uOmZpeGVkO1xuXHRcdHJpZ2h0OjIlO1xuXHRcdHRvcDo1MHB4O1xuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xuXHRcdHotaW5kZXg6MjA2O1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdC5vcCgwKTtcblx0XHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGhlaWdodDoycHg7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHRtYXJnaW4tdG9wOi0xcHg7XG5cdFx0fVxuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDoycHg7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDo1MCU7XG5cdFx0XHR0b3A6MDtcblx0XHRcdG1hcmdpbi1sZWZ0Oi0xcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhlYWRsaW5lIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuYm9keSAuaGVhZGxpbmUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xufVxuXG4uY21zbWFzdGVyc19icmVhZGNydW1icyB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19icmVhZGNydW1ic19pbm5lciB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZy10b3A6MzBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTozMHB4O1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHQub3ZoO1xuXHR9XG59XG5cbi5oZWFkbGluZV9vdXRlciB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlcjtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcblx0XG5cdCYuY21zbWFzdGVyc19oZWFkbGluZV9kaXNhYmxlZCB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQuaGVhZGxpbmVfY29sb3Ige1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0bGVmdDowO1xuXHRcdHRvcDowO1xuXHR9XG5cdFxuXHQuaGVhZGxpbmVfaW5uZXIge1xuXHRcdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ei1pbmRleDoxO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LmhlYWRsaW5lX2FsaWduZXIge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdC5oZWFkbGluZV90ZXh0X3dyYXAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cdFx0LmhlYWRsaW5lX3RleHQge1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdFx0XHQucG9zX2Ficztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmVudHJ5LXRpdGxlIHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdC1tcy13b3JkLXdyYXA6YnJlYWstd29yZDtcblx0XHRcdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5lbnRyeS1zdWJ0aXRsZSB7XG5cdFx0XHRcdG1hcmdpbjo1cHggMCAwO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQrIC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzIHtcblx0XHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfaW5uZXIge1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ji5hbGlnbl9sZWZ0IHtcblx0XHRcdC50YWw7XG5cdFx0XHRcblx0XHRcdC5oZWFkbGluZV90ZXh0IHtcblx0XHRcdFx0LnRhbDtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzIHtcblx0XHRcdFx0LnRhbDtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2lubmVyIHtcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCYuYWxpZ25fcmlnaHQge1xuXHRcdFx0LnRhcjtcblx0XHRcdFxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xuXHRcdFx0XHQudGFyO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1icyB7XG5cdFx0XHRcdC50YXI7XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1ic19pbm5lciB7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLmFsaWduX2NlbnRlciB7XG5cdFx0XHQudGFjO1xuXHRcdFx0XG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XG5cdFx0XHRcdC50YWM7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym90dG9tOmF1dG87XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYuaGVhZGxpbmVfaWNvbiB7XG5cdFx0XHRcdFx0PiAqOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjE1cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzIHtcblx0XHRcdFx0LnRhYztcblxuXHRcdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1ic19pbm5lciB7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2FsaWduZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY29udGVudF93cmFwIHtcblx0ZGlzcGxheTpibG9jaztcblx0bWluLXdpZHRoOmluaGVyaXQ7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQm90dG9tICsgRm9vdGVyIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqKioqKioqKioqKioqKioqIEJvdHRvbSAqKioqKioqKioqKioqKioqKiovXG4uYm90dG9tX2lubmVyIHtcblx0LndpZGdldHRpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRm9vdGVyICoqKioqKioqKioqKioqKioqKi9cbiNmb290ZXIge1xuXHQub3ZoO1xufVxuXG4uZm9vdGVyX2lubmVyIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciBEZWZhdWx0ICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9kZWZhdWx0IHtcblx0LmZvb3Rlcl9pbm5lciB7XG5cdFx0cGFkZGluZy10b3A6MTIwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206MTQ1cHg7XG5cdFx0LnRhYztcblx0XHRcblx0XHQ+IGRpdjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdH1cblx0fVxuXHRcblx0LmZvb3Rlcl9pbl9pbm5lciwgXG5cdC5mb290ZXJfbG9nb193cmFwIHtcblx0XHQudGFjO1xuXHR9XG5cdFxuXHQuZm9vdGVyX2xvZ28ge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjo0MHB4IDA7XG5cdFx0XG5cdFx0PiAuZm9vdGVyX2xvZ29fcmV0aW5hIHtcblx0XHRcdC5kbjtcblx0XHR9XG5cdH1cblx0XG5cdC5mb290ZXJfY3VzdG9tX2h0bWxfd3JhcCB7XG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQudGFjO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5mb290ZXJfY3VzdG9tX2h0bWwge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdC5vdmg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmZvb3Rlcl9uYXZfd3JhcCB7XG5cdFx0cGFkZGluZzoyNXB4IDAgMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdGRpdiB7XG5cdFx0XHQudGFjO1xuXHRcdH1cblx0fVxuXHRcblx0LmZvb3Rlcl9uYXYge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOmF1dG87XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHRtYXJnaW46MCAyMHB4O1xuXHRcdFx0LmJkKDApO1xuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0aGVpZ2h0OjE0cHg7XG5cdFx0XHRcdHdpZHRoOjFweDtcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6LTEwcHg7XG5cdFx0XHRcdHRvcDo1MCU7XG5cdFx0XHRcdG1hcmdpbi10b3A6LTZweDtcblx0XHRcdFx0Lm9wKC41KTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0XHRcblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHVsIHtcblx0XHRcdFx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuc29jaWFsX3dyYXAge1xuXHRcdG1hcmdpbjozNXB4IDAgODBweDtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHRcblx0XHQuc29jaWFsX3dyYXBfaW5uZXIge1xuXHRcdFx0LnRhYztcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW4tbGVmdDo4cHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6OHB4O1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOjI2cHg7XG5cdFx0XHRsaW5lLWhlaWdodDozMHB4O1xuXHRcdFx0d2lkdGg6MzBweDtcblx0XHRcdGhlaWdodDozMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmZvb3Rlcl9jb3B5cmlnaHQge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luOjU1cHggMCAwO1xuXHRcdC50YWM7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRm9vdGVyIFNtYWxsICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbCB7XG5cdC5mb290ZXJfaW5faW5uZXIge1xuXHRcdHBhZGRpbmctdG9wOjI1cHg7XG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcblx0XHQuYmR0O1xuXHR9XG5cdFxuXHQuZm9vdGVyX25hdl93cmFwIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZnI7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmZvb3Rlcl9uYXYge1xuXHRcdD4gbGkge1xuXHRcdFx0bWFyZ2luOjAgMjVweCAwIDA7XG5cdFx0XHQuYmQoMCk7XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHR1bCB7XG5cdFx0XHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LnNvY2lhbF93cmFwIHtcblx0XHQuZnI7XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0fVxuXHRcdFxuXHRcdGEge1xuXHRcdFx0Zm9udC1zaXplOjE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xuXHRcdFx0d2lkdGg6MjBweDtcblx0XHRcdGhlaWdodDoyMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmZvb3Rlcl9jdXN0b21faHRtbF93cmFwIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZnI7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmZvb3Rlcl9jb3B5cmlnaHQge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0cGFkZGluZzoxcHggMjBweCAxcHggMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmxvZyAoRGVmYXVsdCwgTWFzb25yeSwgVGltZWxpbmUpICsgUG9zdCBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKioqKioqKioqKioqKioqKiBCbG9nICoqKioqKioqKioqKioqKioqKi9cbi5ibG9nIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5wb3N0IHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdG1heC13aWR0aDoxMDAlO1xuXHRcdFxuXHRcdC5wcmVsb2FkZXIge1xuXHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX2RlZmF1bHRfcGFkO1xuXHRcdFx0XG5cdFx0XHQmLmhpZ2hJbWcge1xuXHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXG5cdFx0LnJlc2l6YWJsZV9ibG9jayB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ7XG5cdFx0fVxuXHRcdFxuXHRcdCYuZm9ybWF0LWdhbGxlcnkge1xuXHRcdFx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XG5cdFx0XHRcdC5vdmg7XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19wcmV2X2Fycm93LFxuXHRcdFx0XHQuY21zbWFzdGVyc19uZXh0X2Fycm93IHtcblx0XHRcdFx0XHQuYmQoMCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5vd2wtcHJldiB7XG5cdFx0XHRcdFx0bGVmdDotNDZweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Lm93bC1uZXh0IHtcblx0XHRcdFx0XHRyaWdodDotNDZweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Lm93bC1wcmV2IHtcblx0XHRcdFx0XHRcdGxlZnQ6MTBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Lm93bC1uZXh0IHtcblx0XHRcdFx0XHRcdHJpZ2h0OjEwcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNvbHVtbnMge1xuXHRcdG1hcmdpbjotNDBweCAtMjBweCAwO1xuXHRcdFxuXHRcdC5wb3N0IHtcblx0XHRcdG1pbi13aWR0aDoyODBweDtcblx0XHRcdHBhZGRpbmc6NDBweCAyMHB4IDA7XG5cdFx0XHQuZmw7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzXzQmIHtcblx0XHRcdFx0d2lkdGg6MjUlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc18zJiB7XG5cdFx0XHRcdHdpZHRoOjMzLjMzJTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfMiYge1xuXHRcdFx0XHR3aWR0aDo1MCU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQucHJlbG9hZGVyIHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX21hc29ucnlfcGFkO1xuXHRcdFx0XHRcblx0XHRcdFx0Ji5oaWdoSW1nIHtcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxuXHRcdFx0LnJlc2l6YWJsZV9ibG9jayB7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19tYXNvbnJ5X3BhZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYudGltZWxpbmUge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHQucG9zX2FicygxcHgsIDEwMCUpO1xuXHRcdH1cblx0XHRcblx0XHQucG9zdCB7XG5cdFx0XHR3aWR0aDo1MCU7XG5cdFx0XHRvdmVyZmxvdzp2aXNpYmxlO1xuXHRcdFx0cGFkZGluZy10b3A6IDMwcHg7XG5cdFx0XHQuZmw7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0LnBvc19hYnMoMTAwJSwgMXB4LCAwLCAwLCAzNnB4LCBhdXRvKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RpbWVsaW5lX2xlZnQge1xuXHRcdFx0XHQuY21zbWFzdGVyc190aW1lbGluZV9tYXJnaW4ge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDoyMiU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RpbWVsaW5lX3JpZ2h0IHtcblx0XHRcdFx0LmNtc21hc3RlcnNfdGltZWxpbmVfbWFyZ2luIHtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMiU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5wcmVsb2FkZXIge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkO1xuXHRcdFx0XHRcblx0XHRcdFx0Ji5oaWdoSW1nIHtcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxuXHRcdFx0LnJlc2l6YWJsZV9ibG9jayB7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQub3dsLXBhZ2luYXRpb24ge1xuXHRcdGJvdHRvbToxMHB4O1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEJsb2cgRGVmYXVsdCAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19wb3N0X2RlZmF1bHQge1xuXHRwYWRkaW5nOjUwcHggMCAwO1xuXHRtYXJnaW46NTBweCAwIDA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuYmR0O1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdG1hcmdpbi10b3A6MDtcblx0XHQuYmR0KDApO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbToycHg7XG5cdFx0XG5cdFx0LnB1Ymxpc2hlZCB7XG5cdFx0XHRvdXRsaW5lOm5vbmU7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjEzcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWVkaWEge1xuXHRcdG1hcmdpbi10b3A6MTNweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XG5cdFx0ZmlndXJlIHtcblx0XHRcdC5vdmg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xuXHRcdC5iZHQ7XG5cdFx0cGFkZGluZzoxM3B4IDJweCAwIDA7XG5cdFx0bWFyZ2luLXRvcDoyMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0LmNsX2FmdGVyO1xuXHRcdH1cblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW46MCAxMHB4IDAgMDtcblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2luZm8ge1xuXHRcdC5mcjtcblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcblx0XHR9XG5cdH1cblxuXHQmLnN0aWNreSB7XG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6J1xcZTg5Mic7XG5cdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XG5cdFx0XHRcdGZvbnQtc2l6ZToyNHB4O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xuXHRcdC5vdmg7XG5cdFx0bWFyZ2luLXRvcDoyOHB4O1xuXHRcdFxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjE1cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBCbG9nIE1hc29ucnkgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfcG9zdF9tYXNvbnJ5IHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0bWFyZ2luLXRvcDoxM3B4O1xuXHRcdFxuXHRcdGZpZ3VyZSB7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0XHRcblx0XHQrIC5jbXNtYXN0ZXJzX2F1ZGlvIHtcblx0XHRcdG1hcmdpbi10b3A6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIsXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcblx0XHRtYXJnaW4tdG9wOjEzcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcblx0XHQub3ZoO1xuXHRcdHBhZGRpbmc6MTNweCAycHggMCAwO1xuXHRcdG1hcmdpbi10b3A6MjBweDtcblx0XHQuYmR0O1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcblx0XHRcdC5mcjtcblx0XHRcdFxuXHRcdFx0PiBzcGFuIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjI1cHg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcblx0XHQub3ZoO1xuXHRcdG1hcmdpbi10b3A6MTVweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBCbG9nIFRpbWVsaW5lICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmUge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHR6LWluZGV4OjE7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc190aW1lbGluZV9sZWZ0IHtcblx0XHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xuXHRcdFx0bGVmdDphdXRvO1xuXHRcdFx0cmlnaHQ6LTUwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfdGltZWxpbmVfcmlnaHQge1xuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XG5cdFx0XHRsZWZ0Oi01MHB4O1xuXHRcdFx0cmlnaHQ6YXV0bztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDoxMDBweDtcblx0XHRwYWRkaW5nOjEwcHggMCAxNXB4O1xuXHRcdC50YWM7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19wb3N0X2RheSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfbW9uX3llYXIge1xuXHRcdFx0bWFyZ2luLXRvcDo0cHg7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHRmaWd1cmUge1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIsXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwLFxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLFxuXHQuY21zbWFzdGVyc19hdWRpbyB7XG5cdFx0bWFyZ2luLXRvcDoxM3B4O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0KyAuY21zbWFzdGVyc19hdWRpbyB7XG5cdFx0XHRtYXJnaW4tdG9wOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XG5cdFx0Lm92aDtcblx0XHQuYmR0O1xuXHRcdHBhZGRpbmctdG9wOjEzcHg7XG5cdFx0bWFyZ2luLXRvcDoyMHB4O1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcblx0XHRcdC5mcjtcblx0XHRcdFxuXHRcdFx0PiBzcGFuIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjI1cHg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcblx0XHQub3ZoO1xuXHRcdG1hcmdpbi10b3A6MTBweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBCbG9nIFB1enpsZSAqKioqKioqKioqKioqKioqKiovXG4uYmxvZy5jb2x1bW5zLnB1enpsZSB7XG5cdHBhZGRpbmc6MDtcblx0bWFyZ2luOjA7XG5cdFxuXHQmLmNtc21hc3RlcnNfNCB7XG5cdFx0LnBvc3QuY21zbWFzdGVyc19wb3N0X3B1enpsZSB7XG5cdFx0XHRtaW4td2lkdGg6MjMwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X3B1enpsZSB7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdC5wcmVsb2FkZXIge1xuXHRcdFx0cGFkZGluZy1ib3R0b206MTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLnBvc3QuY21zbWFzdGVyc19wb3N0X3B1enpsZSB7XG5cdG1pbi13aWR0aDoyODBweDtcblx0cGFkZGluZzowO1xuXHQuZmw7XG5cdC5vcCgwKTtcblx0XG5cdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcblx0XHQub3AoMSk7XG5cdH1cblx0XG5cdC5wcmVsb2FkZXIge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZTozMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdFx0bWFyZ2luOi0xNXB4IDAgMCAtMTVweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0dG9wOjUwJTtcblx0XHRcdGxlZnQ6NTAlO1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR0b3A6MDtcblx0XHRcdGxlZnQ6MDtcblx0XHRcdC5vcCgwKTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxuXHQucmVzaXphYmxlX2Jsb2NrIHtcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3BvcnRmb2xpb19ncmlkX3BhZDtcblx0fVxuXHRcblx0JjpudGgtY2hpbGQob2RkKSB7XG5cdFx0LnB1enpsZV9wb3N0X2NvbnRlbnRfd3JhcHBlciB7XG5cdFx0XHRib3R0b206MDtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHR0b3A6LTlweDtcblx0XHRcdFx0LmFycm93X3RvcCgxMHB4LCA5cHgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0XHR0b3A6MDtcblx0XHR9XG5cdH1cblx0XG5cdCY6bnRoLWNoaWxkKGV2ZW4pIHtcblx0XHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcblx0XHRcdHRvcDowO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGJvdHRvbTotOXB4O1xuXHRcdFx0XHQuYXJyb3dfYm90dG9tKDEwcHgsIDlweCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcblx0XHRcdGJvdHRvbTowO1xuXHRcdH1cblx0XHRcblx0XHQucHJlbG9hZGVyIHtcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXG5cdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcblx0XHRcdFx0LmJkdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XG5cdFx0cGFkZGluZy1ib3R0b206MjAwJTtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdC5wcmVsb2FkZXI6YWZ0ZXIge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRmaWd1cmUsIFxuXHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0fVxuXHRcblx0LnB1enpsZV9wb3N0X2NvbnRlbnRfd3JhcHBlciB7XG5cdFx0cGFkZGluZy1ib3R0b206MTAwJTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OicnO1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDoyNXB4O1xuXHRcdFx0ei1pbmRleDoxO1xuXHRcdH1cblx0XHRcblx0XHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0dG9wOjA7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHRwYWRkaW5nOjIwcHggMjBweCAxNXB4O1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcblx0XHRcdHBhZGRpbmc6M3B4IDAgMDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6MjVweCAwIDA7XG5cdFx0XHRcblx0XHRcdHAge1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcblx0XHRcdG1hcmdpbi10b3A6MTVweDtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XG5cdFx0XHRwYWRkaW5nOjEwcHggMjBweCAxNXB4IDIwcHg7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTowO1xuXHRcdFx0bGVmdDoxcHg7XG5cdFx0XHRyaWdodDoxcHg7XG5cdFx0XHQuYmRiO1xuXHRcdFx0XG5cdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTozcHg7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyX2luZm8ge1xuXHRcdFx0XHRwYWRkaW5nOjAgMCAwIDEwcHg7XG5cdFx0XHRcdGZsb2F0OnJpZ2h0O1xuXHRcdFx0XHRcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0bWFyZ2luOjJweCAwIDhweDtcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMsIFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfbGlrZXMge1xuXHRcdFx0LnRhcjtcblx0XHRcdFxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6NnB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRhOmJlZm9yZSB7XG5cdFx0XHRcdC5mcjtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MTZweDtcblx0XHRcdFx0d2lkdGg6MTRweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcblx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0XG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xuXHRcdFx0cGFkZGluZy10b3A6MjVweDtcblx0XHR9XG5cdH1cblx0XG5cdC5tZWpzLWNvbnRhaW5lci53cC12aWRlby1zaG9ydGNvZGUsIFxuXHQubWVqcy1jb250YWluZXIud3AtYXVkaW8tc2hvcnRjb2RlIHtcblx0XHRtYXJnaW46MDtcblx0fVxuXHRcblx0Jjpob3ZlciB7XG5cdFx0LmNtc21hc3RlcnNfcG9zdF9hdXRob3IgYSxcblx0XHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5IGEsXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUsXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSBhIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQub3AoLjUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbW1lbnRzIGE6aG92ZXI6YmVmb3JlLFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfbGlrZXMgYTpob3ZlcjpiZWZvcmUsXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9saWtlcyBhLmFjdGl2ZTpiZWZvcmUsXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb21tZW50cyBzcGFuLFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfbGlrZXMgc3Bhbixcblx0XHQuY21zbWFzdGVyc19wb3N0X2F1dGhvcl9zdWYsXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jYXRfc3VmLFxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XG5cdFx0XHQub3AoLjUpO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xuXHRcdFx0Lm9wKC43KTtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogQmxvZyBQb3N0ICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX29wZW5fcG9zdCB7XG5cdC5vdmg7XG5cdFxuXHQrIC5wb3N0X25hdiB7XG5cdFx0LmJkdDtcblx0XHRtYXJnaW4tdG9wOjQwcHg7XG5cdH1cblx0XG5cdC5wcmVsb2FkZXIge1xuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wb3N0X3BhZDtcblx0XHRcblx0XHQmLmhpZ2hJbWcge1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLCBcblx0LnJlc2l6YWJsZV9ibG9jayB7XG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9vcGVuX3Bvc3RfcGFkO1xuXHR9XG5cdFxuXHQ+IGRpdjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDowO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19hdWRpbyxcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCxcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xuXHRcdC5vdmg7XG5cdFx0bWFyZ2luLXRvcDoxM3B4O1xuXHR9XG5cdFxuXHQ+IC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xuXHRcdG1hcmdpbi10b3A6MTNweDtcblx0XHRcblx0XHRmaWd1cmUge1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcblx0XHRtYXJnaW4tdG9wOjIwcHg7XG5cdFx0cGFkZGluZy10b3A6MTNweDtcblx0XHRwYWRkaW5nLXJpZ2h0OjJweDtcblx0XHQuYmR0O1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0PiBzcGFuIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOjAgMTBweCAwIDA7XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcblx0XHQuZnI7XG5cdFx0XG5cdFx0PiBzcGFuIHtcblx0XHRcdG1hcmdpbi1sZWZ0OjEwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206MnB4O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xuXHRcdC5vdmg7XG5cdFx0bWFyZ2luLXRvcDoyNXB4O1xuXHRcdFxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XG5cdFx0fVxuXHR9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9ydGZvbGlvIChHcmlkLCBQdXp6bGUpICsgUHJvamVjdCBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfcHJvamVjdF9zb3J0X2Jsb2NrICsgLmNtc21hc3RlcnNfcHJvamVjdF9maWx0ZXJfYmxvY2sge1xuXHQuY21zbWFzdGVyc19wcm9qZWN0X2ZpbHRlcl9saXN0IHtcblx0XHQudGFsO1xuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX3Byb2plY3RfZmlsdGVyX2xpc3Qge1xuXHQudGFjO1xufVxuXG4ucG9ydGZvbGlvIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIHtcblx0XHRtaW4td2lkdGg6MjUwcHg7XG5cdFx0LmZsO1xuXHR9XG5cdFxuXHQmLmxhcmdlX2dhcCB7XG5cdFx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCB7XG5cdFx0XHRtaW4td2lkdGg6IDE5MHB4O1xuXHRcdH1cblxuXHRcdC5wcm9qZWN0IHtcblx0XHRcdHBhZGRpbmctbGVmdDpAY29sX21hcjtcblx0XHRcdHBhZGRpbmctcmlnaHQ6QGNvbF9tYXI7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAY29sX21hciAqIDI7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLnNtYWxsX2dhcCB7XG5cdFx0cGFkZGluZzoxcHggMXB4IDA7XG5cdFx0LmN0Yng7XG5cdFx0XG5cdFx0LnByb2plY3Qge1xuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZTtcblx0XHRcdFxuXHRcdFx0LnByb2plY3Rfb3V0ZXIge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MXB4O1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjFweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuZ3JpZC5wZXJmZWN0IC5wcm9qZWN0IHtcblx0XHRwYWRkaW5nLWJvdHRvbTo1MHB4O1xuXHRcdGZpZ3VyZSB7XG5cdFx0XHQub3AoMCk7XG5cdFx0fVxuXHRcdFxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcblx0XHRcdGZpZ3VyZSB7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuZ3JpZC5tYXNvbnJ5IC5wcm9qZWN0LCBcblx0Ji5wdXp6bGUgLnByb2plY3Qge1xuXHRcdC5vcCgwKTtcblx0XHRcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XG5cdFx0XHQub3AoMSk7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfNSAucHJvamVjdCB7XG5cdFx0bWF4LXdpZHRoOjIwJTtcblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzXzQgLnByb2plY3Qge1xuXHRcdG1heC13aWR0aDoyNSU7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc18zIC5wcm9qZWN0IHtcblx0XHRtYXgtd2lkdGg6MzMlO1xuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfMiAucHJvamVjdCB7XG5cdFx0bWF4LXdpZHRoOjUwJTtcblx0fVxuXHRcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfNSAucHJvamVjdCwgXG5cdCYuaXNvdG9wZS5jbXNtYXN0ZXJzXzQgLnByb2plY3QsIFxuXHQmLmlzb3RvcGUuY21zbWFzdGVyc18zIC5wcm9qZWN0LCBcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfMiAucHJvamVjdCB7XG5cdFx0bWF4LXdpZHRoOm5vbmU7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvIEdyaWQgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdG1pbi13aWR0aDoyMjBweDtcblx0XG5cdC5wcm9qZWN0X291dGVyIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdH1cblx0XG5cdC5wcm9qZWN0X2ltZ193cmFwIHtcblx0XHR3aWR0aDo2MiU7XG5cdFx0bWFyZ2luOjAgYXV0bztcblx0XHRtYXgtd2lkdGg6MzYwcHg7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfNCAmIHtcblx0XHRcdHdpZHRoOjc2JTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIHtcblx0XHRtYXJnaW46MCBhdXRvIDI1cHg7XG5cdFx0LmJkcnMoNTAlKTtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBhZGRpbmctYm90dG9tOjEwMCU7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFxuXHRcdC5pbWdfcGxhY2Vob2xkZXIge1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHR9XG5cdFx0XG5cdFx0LmZ1bGwtd2lkdGgge1xuXHRcdFx0cmlnaHQ6MDtcblx0XHRcdGJvdHRvbTowO1xuXHRcdFx0bWFyZ2luOmF1dG87XG5cdFx0XHR3aWR0aDphdXRvO1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRtaW4td2lkdGg6MDtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0LmZ1bGwtd2lkdGgge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmsge1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xuXHRcdC5iZHJzKDUwJSk7XG5cdFx0bGVmdDo1cHg7XG5cdFx0dG9wOjVweDtcblx0XHRyaWdodDo1cHg7XG5cdFx0Ym90dG9tOjVweDtcblx0XHR3aWR0aDphdXRvO1xuXHRcdGhlaWdodDphdXRvO1xuXHRcdC5vcCgxKTtcblx0XHRcblx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0XHQucG9zX2FicygxMDAlLCAxMDAlKTtcblx0XHRcdC5vcCgwKTtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0LnBvc19hYnMoMzRweCk7XG5cdFx0XHRcdGZvbnQtc2l6ZTozMnB4O1xuXHRcdFx0XHRib3R0b206LTE1cHg7XG5cdFx0XHRcdGhlaWdodDogMS4yZW07XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0Lm9wKDApO1xuXHRcdFx0XHR6LWluZGV4OiA0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW4tdG9wOjVweDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X3RpdGxlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8ge1xuXHRcdC5vdmg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250ZW50IHtcblx0XHRtYXJnaW4tdG9wOjIwcHg7XG5cdFx0Lm92aDtcblx0XHQudGFjO1xuXHRcdFxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XG5cdFx0bWFyZ2luLXRvcDoyNXB4O1xuXHRcdC50YWM7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcmVhZF9tb3JlIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOjEwcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfaW5mbyB7XG5cdFx0LnRhYztcblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOjAgNXB4O1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gUHV6emxlICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQucHJvamVjdF9vdXRlciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfaGVhZGVyLFxuXHRcdFx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8ge1xuXHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XG5cdFx0XHRcdGJvdHRvbToyMHB4O1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQucHJvamVjdF9pbm5lciB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdFx0Lm92aDtcblx0XHQudGFjO1xuXHR9XG5cdFxuXHQucHJvamVjdF9pbm5lcl9taWRkbGUge1xuXHRcdC5wb3NfYWJzKGF1dG8sYXV0bywyMHB4LDIwcHgsMCwwKTtcblx0fVxuXHRcblx0LnByb2plY3RfaW5uZXJfdGFibGUge1xuXHRcdGRpc3BsYXk6dGFibGU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0d2lkdGg6MTAwJTtcblx0fVxuXHRcblx0LnByb2plY3RfaW5uZXJfdGFibGVfY2VsbCB7XG5cdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHQudGFjO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XG5cdFx0cGFkZGluZzowO1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGJvdHRvbTotMjBweDtcblx0XHQub3AoMCk7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdC5vcCguNylcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udF9pbmZvIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdFx0cGFkZGluZy1ib3R0b206OHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGJvdHRvbTotMjBweDtcblx0XHQub3AoMCk7XG5cdFx0XG5cdFx0YTpob3ZlciB7XG5cdFx0XHQub3AoLjcpO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9mb290ZXIge1xuXHRcdC5vdmg7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0Ym90dG9tOjA7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHQudGFjO1xuXHRcdC5vcCgwKTtcblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOjAgNXB4O1xuXHRcdH1cblx0XHRcblx0XHRhIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Lm9wKC43KTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdC5vcCgxKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gT3BlbiBQcm9qZWN0ICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX29wZW5fcHJvamVjdCB7XG5cdHBhZGRpbmc6QGNvbnRfdmVydF9wYWQgMCAwO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdCsgLnBvc3RfbmF2IHtcblx0XHQuYmR0O1xuXHR9XG5cdFxuXHQucHJlbG9hZGVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ7XG5cdFx0XG5cdFx0Ji5oaWdoSW1nIHtcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXG5cdC5yZXNpemFibGVfYmxvY2sge1xuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wcm9qZWN0X3BhZDtcblx0fVxuXHRcblx0PiAuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkICogMjtcblx0fVxuXHRcblx0Lm93bC1wYWdpbmF0aW9uIHtcblx0XHRib3R0b206MTBweDtcblx0fVxuXHRcblx0LnByb2plY3RfbWVkaWFfd3JhcCB7XG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19nYWxsZXJ5X3JvdyB7XG5cdFx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFxuXHRcdGZpZ3VyZSB7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0XHRcblx0XHQub25lX2ZvdXJ0aCwgXG5cdFx0Lm9uZV90aGlyZCwgXG5cdFx0Lm9uZV9oYWxmLCBcblx0XHQub25lX2ZpcnN0IHtcblx0XHRcdG1hcmdpbi1ib3R0b206KEBjb2xfbWFyICogMik7XG5cdFx0fVxuXHRcdFxuXHRcdC5vbmVfZm91cnRoLCBcblx0XHQub25lX3RoaXJkLCBcblx0XHQub25lX2hhbGYge1xuXHRcdFx0LnByZWxvYWRlciB7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9ydGZvbGlvX2dyaWRfcGFkO1xuXHRcdFx0XHRcblx0XHRcdFx0Ji5oaWdoSW1nIHtcblx0XHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdD4gLmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkICogMjtcblx0XHRcblx0XHRmaWd1cmUge1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfaGVhZGVyIHtcblx0XHQub3ZoO1xuXHRcdC5jbDtcblx0XHRtYXJnaW4tYm90dG9tOjVweDtcblx0fVxuXHRcblx0LnByb2plY3RfY29udGVudCB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRwYWRkaW5nOjA7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQmLndpdGhfc2lkZWJhciB7XG5cdFx0XHR3aWR0aDo2NiU7XG5cdFx0XHQuZmw7XG5cdFx0fVxuXHRcdFxuXHRcdD4gLmNtc21hc3RlcnNfaW1nX3dyYXAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkICogMjtcblx0XHR9XG5cdFx0XG5cdFx0PiAuY21zbWFzdGVyc192aWRlb193cmFwIHtcblx0XHRcdG91dGxpbmU6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udGVudCB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LnByb2plY3Rfc2lkZWJhciB7XG5cdFx0d2lkdGg6MzQlO1xuXHRcdHBhZGRpbmc6MCAwIDAgNDBweDtcblx0XHQuZnI7XG5cdFx0XG5cdFx0PiBkaXYge1xuXHRcdFx0b3V0bGluZTpub25lO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19saWtlcywgXG5cdFx0LmNtc21hc3RlcnNfY29tbWVudHMge1xuXHRcdFx0YSB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHQuZnI7XG5cdFx0XHRcdFx0d2lkdGg6MTZweDtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDo3cHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOjE0cHg7XG5cdFx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0LmNtc21hc3RlcnNfbGlrZXMge1xuXHRcdFx0YSB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHR0b3A6MnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQucHJvamVjdF9kZXRhaWxzLCBcblx0LnByb2plY3RfZmVhdHVyZXMge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdG1hcmdpbi1ib3R0b206NTBweDtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQucHJvamVjdF9kZXRhaWxzX3RpdGxlLCBcblx0LnByb2plY3RfZmVhdHVyZXNfdGl0bGUge1xuXHRcdG1hcmdpbjowIDAgMzNweDtcblx0XHRwYWRkaW5nOjA7XG5cdH1cblx0XG5cdC5wcm9qZWN0X2RldGFpbHNfaXRlbSwgXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW0ge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6OXB4IDJweCA5cHggMDtcblx0XHQub3ZoO1xuXHRcdC5iZGI7XG5cdFx0XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdH1cblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0LmJkYigwKTtcblx0XHR9XG5cdH1cblx0XG5cdC5wcm9qZWN0X2RldGFpbHNfaXRlbV90aXRsZSwgXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xuXHRcdG1heC13aWR0aDo1MCU7XG5cdFx0cGFkZGluZy1yaWdodDoycHg7XG5cdFx0LmZsO1xuXHRcdC5vdmg7XG5cdH1cblxuXHQucHJvamVjdF9kZXRhaWxzX29uZV9pdGVtIC5wcm9qZWN0X2RldGFpbHNfaXRlbV90aXRsZSwgXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xuXHRcdG1heC13aWR0aDoxMDAlO1xuXHRcdGZsb2F0Om5vbmU7XG5cdH1cblx0XG5cdC5wcm9qZWN0X2RldGFpbHNfaXRlbV9kZXNjLCBcblx0LnByb2plY3RfZmVhdHVyZXNfaXRlbV9kZXNjIHtcblx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XG5cdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0LnRhcjtcblx0XHQub3ZoO1xuXHR9XG5cblx0LnByb2plY3RfZGV0YWlsc19vbmVfaXRlbSAucHJvamVjdF9kZXRhaWxzX2l0ZW1fZGVzYywgXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDowO1xuXHR9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zdHMgU2xpZGVyIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19wb3N0c19zbGlkZXIge1xuXHRtYXJnaW46MCAtMjBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQub3dsLWNhcm91c2VsIHtcblx0XHRtYXJnaW46MCAtMXB4O1xuXHRcdHdpZHRoOmF1dG87XG5cdH1cblx0XG5cdC5vd2wtYnV0dG9ucyB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0cGFkZGluZzo0MHB4IDIwcHggMDtcblx0XHQudGFjO1xuXHRcdFxuXHRcdD4gZGl2IHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0dG9wOmF1dG87XG5cdFx0XHRtYXJnaW46MCAycHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQucHJlbG9hZGVyIHtcblx0XHQmLmhpZ2hJbWcge1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDoyNDBweDtcblx0XHRtYXgtd2lkdGg6MTAwJTtcbiBcdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0LCBcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3Qge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0cGFkZGluZzowIDIwcHggMjBweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3Qge1xuXHRcdHBhZGRpbmc6MzBweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQb3N0cyBTbGlkZXIgQmxvZyAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19zbGlkZXJfcG9zdCB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0LnByZWxvYWRlciB7XG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcGFkO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9vdXRlciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfZGF0ZSB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2lubmVyIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRwYWRkaW5nOjEzcHggMCAwIDA7XG5cdFx0bWFyZ2luLXRvcDoyMHB4O1xuXHRcdC5iZHQ7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udF9pbmZvIHtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDoxMHB4O1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2Zvb3RlciB7XG5cdFx0LmZyO1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDoxMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xuXHRcdG1hcmdpbi10b3A6MTNweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udGVudCB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjIwcHg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X3JlYWRfbW9yZSB7XG5cdFx0bWFyZ2luLXRvcDoxNXB4O1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3Qge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0d2lkdGg6YXV0byAhaW1wb3J0YW50O1xuXHRtYXgtd2lkdGg6bm9uZSAhaW1wb3J0YW50O1xuXHRmbG9hdDpub25lICFpbXBvcnRhbnQ7XG5cdFxuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDonJztcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdFx0d2lkdGg6MXB4O1xuXHRcdGhlaWdodDoxMDAlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9vdXRlciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHQudGFjO1xuXHR9XG5cdFxuXHQucHJlbG9hZGVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3BvcnRmb2xpb19ncmlkX3BhZDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaW5uZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LnByb2plY3RfaW1nX3dyYXAge1xuXHRcdHdpZHRoOjYyJTtcblx0XHRtYXgtd2lkdGg6MjIwcHg7XG5cdFx0bWFyZ2luOjAgYXV0bztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xuXHRcdG1hcmdpbjowIGF1dG8gNTVweDtcblx0XHQuYmRycyg1MCUpO1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0cGFkZGluZy1ib3R0b206MTAwJTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblx0XHRcblx0XHQuaW1nX3BsYWNlaG9sZGVyIHtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0fVxuXHRcdFxuXHRcdC5mdWxsLXdpZHRoIHtcblx0XHRcdHJpZ2h0OjA7XG5cdFx0XHRib3R0b206MDtcblx0XHRcdG1hcmdpbjphdXRvO1xuXHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0bWluLXdpZHRoOjA7XG5cdFx0XHQuYmRycyg1MCUpO1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdC5mdWxsLXdpZHRoIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVZKDE4MGRlZyk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0XHQub3AoMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XG5cdFx0LmJkcnMoNTAlKTtcblx0XHRsZWZ0OjVweDtcblx0XHR0b3A6NXB4O1xuXHRcdHJpZ2h0OjVweDtcblx0XHRib3R0b206NXB4O1xuXHRcdHdpZHRoOmF1dG87XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0Lm9wKDEpO1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcblx0XHRcdC5wb3NfYWJzKDEwMCUsIDEwMCUpO1xuXHRcdFx0Lm9wKDApO1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQucG9zX2FicygzNHB4KTtcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XG5cdFx0XHRcdGJvdHRvbTotNDBweDtcblx0XHRcdFx0Lm9wKDApO1xuXHRcdFx0XHR6LWluZGV4OiA0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfaGVhZGVyIHtcblx0XHRwYWRkaW5nOjA7XG5cdFx0bWFyZ2luLXRvcDoxNXB4O1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X3RpdGxlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfY29udF9pbmZvIHtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xuXHRcdG1hcmdpbjozMHB4IDAgMTBweDtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2Zvb3RlciB7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjE1cHg7XG5cdFx0XG5cdFx0PiBzcGFuIHtcblx0XHRcdG1hcmdpbi1sZWZ0OjEwcHg7XG5cdFx0XHRcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfcmVhZF9tb3JlIHtcblx0XHRtYXJnaW4tdG9wOjE1cHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQcm9maWxlcyArIFByb2ZpbGUgU3R5bGVzXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfcHJvZmlsZSB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0Ji5ob3Jpem9udGFsIHtcblx0XHRtYXJnaW46LTQwcHggLUBjb2xfbWFyIDA7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9ob3Jpem9udGFsIHtcblx0XHRcdG1hcmdpbi10b3A6NDBweDtcblx0XHRcdFxuXHRcdFx0Ji5vbmVfaGFsZjpudGgtY2hpbGQoMm4rMSksXG5cdFx0XHQmLm9uZV90aGlyZDpudGgtY2hpbGQoM24rMSksXG5cdFx0XHQmLm9uZV9mb3VydGg6bnRoLWNoaWxkKDRuKzEpIHtcblx0XHRcdFx0Y2xlYXI6bGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHQuYmRycyg1MCUpO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcblx0XHQmLnByZWxvYWRlciB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbToxMDAlO1x0XHRcdFxuXHRcdH1cblx0XHRcblx0XHRpbWcge1xuXHRcdFx0LnBvc19hYnMoMTAwJSwxMDAlKTtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XG5cdFx0XHQub3AoMSk7XG5cdFx0XHQuYmRycyg1MCUpO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0XHQucG9zX2FicygxMDAlLDEwMCUpO1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHRcdCAgICBcblx0XHRcdC5iZHJzKDUwJSk7XHRcdFx0XG5cdFx0XHQub3AoMCk7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0LnBvc19hYnM7XG5cdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0ei1pbmRleDogNDtcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAzNnB4O1xuXHRcdFx0XHR3aWR0aDogMzZweDtcblx0XHQgICAgXHRoZWlnaHQ6IDM2cHg7XG5cdFx0ICAgIFx0Ym90dG9tOiAtMTVweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpO1xuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMS4xKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmsge1xuXHRcdFx0XHQub3AoMSk7XHRcdFx0XHRcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Ym90dG9tOiAwOyBcblx0XHRcdFx0XHQub3AoMSk7XG5cdFx0XHRcdH0gICBcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnByb2ZpbGVfc29jaWFsX2ljb25zX2xpc3Qge1xuXHRsaXN0LXN0eWxlOm5vbmU7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdFxuXHRsaSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdG1hcmdpbjowIDVweDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdH1cblx0XHRcblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdGEge1xuXHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdGxpbmUtaGVpZ2h0OjIwcHg7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDoyMHB4O1xuXHRcdGhlaWdodDoyMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdC5wb3NfYWJzO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBIb3Jpem9udGFsICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbCB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0LnByb2ZpbGVfb3V0ZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcm9maWxlX2lubmVyIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdC50YWM7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaW1nX3dyYXAge1xuXHRcdG1hcmdpbjowIGF1dG8gMzNweDtcblx0XHR3aWR0aDo2MiU7XG5cdFx0bWluLXdpZHRoOjIwMHB4O1xuXHRcdG1heC13aWR0aDozMDBweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MCAwIDMwcHg7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29udGVudCB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tYm90dG9tOjIwcHg7XG5cdFx0LnRhYztcblx0XHRcblx0XHRwIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdH1cblx0fVxuXHRcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnNfbGlzdCB7XG5cdFx0LnRhYztcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBWZXJ0aWNhbCAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsIHtcblx0bWFyZ2luOjAgMCAzMHB4O1xuXHRwYWRkaW5nOjA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0JjpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW46MDtcblx0fVxuXHRcblx0LnByb2ZpbGVfb3V0ZXIge1xuXHRcdHBhZGRpbmc6MCAwIDUwcHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9pbWdfd3JhcCB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6MjUlO1xuXHRcdHBhZGRpbmc6MCA0JSAwIDA7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHR9XG5cdFxuXHQucHJvZmlsZV9pbm5lciB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9maWxlX2ltZ193cmFwICsgLnByb2ZpbGVfaW5uZXIge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOjc1JTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaGVhZGVyIHtcblx0XHQuZmw7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XG5cdFx0XHRtYXJnaW46NXB4IDAgMDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29udGVudCB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tdG9wOjIwcHg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5wcm9maWxlX3NvY2lhbF9pY29ucyB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0bWFyZ2luLXRvcDo3cHg7XG5cdFx0LmZyO1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFByb2ZpbGVzIE9wZW4gUHJvZmlsZSAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19vcGVuX3Byb2ZpbGUge1xuXHRwYWRkaW5nOkBjb250X3ZlcnRfcGFkIDAgNDBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQrIC5wb3N0X25hdiB7XG5cdFx0LmJkdDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9saWtlcywgXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29tbWVudHMge1xuXHRcdG91dGxpbmU6bm9uZTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XG5cdFx0Lm92aDtcblx0XHQuY2w7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV90aXRsZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XG5cdFx0XHRtYXJnaW46MnB4IDAgMDtcblx0XHR9XG5cdH1cblx0XG5cdC5wcm9maWxlX2NvbnRlbnQge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQmLndpdGhfc2lkZWJhciB7XG5cdFx0XHR3aWR0aDo2NiU7XG5cdFx0XHQuZmw7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9maWxlX2NvbnRlbnQge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcm9maWxlX3NpZGViYXIge1xuXHRcdHdpZHRoOjM0JTtcblx0XHRwYWRkaW5nOjAgMCAwIDQwcHg7XG5cdFx0LmZyO1xuXHRcdFxuXHRcdD4gZGl2IHtcblx0XHRcdG91dGxpbmU6bm9uZTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfbGlrZXMsIFxuXHRcdC5jbXNtYXN0ZXJzX2NvbW1lbnRzIHtcblx0XHRcdGEge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0LmZyO1xuXHRcdFx0XHRcdHdpZHRoOjE2cHg7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6N3B4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZToxNHB4O1xuXHRcdFx0XHRcdHRvcDowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5jbXNtYXN0ZXJzX2xpa2VzIHtcblx0XHRcdGEge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0LmZyO1xuXHRcdFx0XHRcdHRvcDoycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5wcm9maWxlX2RldGFpbHMsIFxuXHQucHJvZmlsZV9mZWF0dXJlcyB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRtYXJnaW4tYm90dG9tOjUwcHg7XG5cdH1cblx0XG5cdC5wcm9maWxlX2RldGFpbHNfdGl0bGUsIFxuXHQucHJvZmlsZV9mZWF0dXJlc190aXRsZSB7XG5cdFx0bWFyZ2luOjAgMCAzM3B4O1xuXHRcdHBhZGRpbmc6MDtcblx0fVxuXHRcblx0LnByb2ZpbGVfZGV0YWlsc19pdGVtLCBcblx0LnByb2ZpbGVfZmVhdHVyZXNfaXRlbSB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRwYWRkaW5nOjlweCAycHggOXB4IDA7XG5cdFx0LmJkYjtcblx0XHRcblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdHBhZGRpbmctdG9wOjA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0LmJkYigwKTtcblx0XHR9XG5cdH1cblx0XG5cdC5wcm9maWxlX2RldGFpbHNfaXRlbV90aXRsZSwgXG5cdC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xuXHRcdG1heC13aWR0aDo1MCU7XG5cdFx0cGFkZGluZy1yaWdodDoycHg7XG5cdFx0LmZsO1xuXHRcdC5vdmg7XG5cdH1cblxuXHQucHJvZmlsZV9kZXRhaWxzX29uZV9pdGVtIC5wcm9maWxlX2RldGFpbHNfaXRlbV90aXRsZSwgXG5cdC5wcm9maWxlX2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xuXHRcdG1heC13aWR0aDoxMDAlO1xuXHRcdGZsb2F0Om5vbmU7XG5cdH1cblx0XG5cdC5wcm9maWxlX2RldGFpbHNfaXRlbV9kZXNjLCBcblx0LnByb2ZpbGVfZmVhdHVyZXNfaXRlbV9kZXNjIHtcblx0XHRwYWRkaW5nOjAgMCAwIDE1cHg7XG5cdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0LnRhcjtcblx0XHQub3ZoO1xuXHR9XG5cblx0LnByb2ZpbGVfZGV0YWlsc19vbmVfaXRlbSAucHJvZmlsZV9kZXRhaWxzX2l0ZW1fZGVzYywgXG5cdC5wcm9maWxlX2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDowO1xuXHR9XG5cdFxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc190aXRsZSB7XG5cdFx0bWFyZ2luOjAgMCAyNXB4O1xuXHRcdHBhZGRpbmc6MDtcblx0fVxufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3J0Y29kZXMgU3R5bGVzXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKioqKioqKioqKioqKioqKiogRGl2aWRlciAqKioqKioqKioqKioqKioqKiovXG5ociB7XG5cdGJvcmRlcjowO1xuXHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xuXHRtYXJnaW46KEBsaW5lX2hlaWdodF9wYWQgKiAyKSAwO1xufVxuXG5ociwgXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlcixcbi5jbXNtYXN0ZXJzX2RpdmlkZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRib3JkZXItYm90dG9tLXdpZHRoOjFweDtcblx0d2lkdGg6MTAwJTtcblx0aGVpZ2h0OjFweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5jbDtcbn1cblxuLmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIge1xuXHRtYXJnaW46MCBAY29sX21hciAoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xuXHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xufVxuXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciB7XG5cdCYuc29saWQge1xuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XG5cdH1cblx0XG5cdCYuZGFzaGVkIHtcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOmRhc2hlZDtcblx0fVxuXHRcblx0Ji5kb3R0ZWQge1xuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6ZG90dGVkO1xuXHR9XG5cdFxuXHQmLnRyYW5zcGFyZW50IHtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOjA7XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfZGl2aWRlciB7XG5cdCYuY21zbWFzdGVyc19kaXZpZGVyX3dpZHRoX3Nob3J0IHtcblx0XHR3aWR0aDoyMCU7XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX2NlbnRlciB7XG5cdFx0XHRsZWZ0OjQwJTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX3JpZ2h0IHtcblx0XHRcdGxlZnQ6ODAlO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfd2lkdGhfbWVkaXVtIHtcblx0XHR3aWR0aDo0MCU7XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX2NlbnRlciB7XG5cdFx0XHRsZWZ0OjMwJTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX3JpZ2h0IHtcblx0XHRcdGxlZnQ6NjAlO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfd2lkdGhfbG9uZyB7XG5cdFx0d2lkdGg6MTAwJTtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBTcGVjaWFsIEhlYWRpbmcgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfaGVhZGluZ193cmFwIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGhlaWdodDoycHg7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0dG9wOjUwJTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnRfd3JhcCwgXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9yaWdodF93cmFwIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR3aWR0aDowO1xuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX3Nob3J0IHtcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xuXHRcdFx0d2lkdGg6MTAlO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDotMTAlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX21lZGl1bSB7XG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcblx0XHRcdHdpZHRoOjIwJTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6LTIwJTtcblx0XHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sb25nIHtcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6LTEwMCU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfc2hvcnQsIFxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX21lZGl1bSwgXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbG9uZyB7XG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZyB7XG5cdFx0XHRtYXgtd2lkdGg6ODAlO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaGVhZGluZyB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOjA7XG5cdFx0XG5cdFx0JjpiZWZvcmUsIFxuXHRcdGE6YmVmb3JlIHtcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEZlYXR1cmVkIEJsb2NrICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cblx0LmZlYXR1cmVkX2Jsb2NrX2xpbmsge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdFx0ei1pbmRleDoxO1xuXHR9XG5cdFxuXHQuZmVhdHVyZWRfYmxvY2tfaW5uZXIge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFRhYmxlICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3dyYXBfdGFibGUge1xuXHRvdmVyZmxvdzphdXRvO1xufVxuXG4uY21zbWFzdGVyc190YWJsZSB7XG5cdHdpZHRoOjEwMCU7XG5cdFxuXHRjYXB0aW9uIHtcblx0XHRvdXRsaW5lOm5vbmU7XG5cdH1cblx0XG5cdHRyIHtcblx0XHR0ZCwgXG5cdFx0dGgge1xuXHRcdFx0cGFkZGluZzoxNHB4IDMwcHg7XG5cdFx0XHQuYmRiO1xuXHRcdFx0XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0LmJkbDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0LmJkcjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RhYmxlX2NlbGxfYWxpZ25jZW50ZXIge1xuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RhYmxlX2NlbGxfYWxpZ25sZWZ0IHtcblx0XHRcdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLmNtc21hc3RlcnNfdGFibGVfY2VsbF9hbGlnbnJpZ2h0IHtcblx0XHRcdFx0dGV4dC1hbGlnbjpyaWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogTm90aWNlICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX25vdGljZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHdpZHRoOjEwMCU7XG5cdHBhZGRpbmc6MCAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XG5cdC5iZDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxuXHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcblx0XHRwYWRkaW5nLWxlZnQ6ODBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XG5cdH1cblx0XG5cdCY6YmVmb3JlIHtcblx0XHRmb250LXNpemU6MzJweDtcblx0XHQucG9zX2FicygxZW0sIDFlbSwgMjBweCwgYXV0byk7XG5cdH1cblx0XG5cdC5ub3RpY2VfY29udGVudCB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0cGFkZGluZzpAbGluZV9oZWlnaHRfcGFkIDAgMDtcblx0fVxuXHRcblx0Lm5vdGljZV9jbG9zZSB7XG5cdFx0Zm9udC1zaXplOjEwcHg7XG5cdFx0bGluZS1oZWlnaHQ6MTBweDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdC5wb3NfYWJzKDI5cHgsIDI5cHgsIGF1dG8sIC0xNHB4LCAtMTRweCwgYXV0byk7XG5cdFx0LmJkO1xuXHRcdC5iZHJzKDUwJSk7XG5cdFx0Zm9udC1zaXplOjE1cHg7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0LnBvc19hYnM7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfbm90aWNlX3N1Y2Nlc3Mge1xuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZkZmZmOTtcblx0XHRib3JkZXItY29sb3I6I2QwZTRhODtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjojOGJjMzRhO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9lcnJvciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmZmZGZkO1xuXHRcdGJvcmRlci1jb2xvcjojZjdkMWQxO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiNlYTUxNTE7XG5cdFx0XHRjb250ZW50OidcXGVhYmMnO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6cmdiYSgyMzQsIDgxLCA4MSwgLjgpO1xuXHRcdFx0XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6I2VhNTE1MTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19ub3RpY2VfaW5mbyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmFmY2ZmO1xuXHRcdGJvcmRlci1jb2xvcjojZDVkZGU5O1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiM2ZTk1ZDE7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfbm90aWNlX3dhcm5pbmcge1xuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZmZmRmOTtcblx0XHRib3JkZXItY29sb3I6I2YxY2ViNztcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb2xvcjojZmRiNTQzO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9kb3dubG9hZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZjlmZmZhO1xuXHRcdGJvcmRlci1jb2xvcjojYzllMGNkO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiM2M2I2OTg7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEljb24gKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfaWNvbl93cmFwIHtcblx0YSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uX3RpdGxlIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jazsgXG5cdFx0bWFyZ2luLWxlZnQ6OHB4O1xuXHR9XG5cblx0LmNtc21hc3RlcnNfc2ltcGxlX2ljb24ge1xuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEljb24gTGlzdCAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMge1xuXHRsaXN0LXN0eWxlOm5vbmU7XG5cdHBhZGRpbmc6MDtcblx0bWFyZ2luOjA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0bGk6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGxlZnQ6NTBweDtcblx0XHRcdHJpZ2h0OmF1dG87XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uIHtcblx0XHRcdHdpZHRoOjEwMHB4O1xuXHRcdFx0aGVpZ2h0OjEwMHB4O1xuXHRcdFx0bWFyZ2luOjFweDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTozMnB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDo4MHB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOjEwcHg7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0XHRcdFx0d2lkdGg6MTAycHg7XG5cdFx0XHRcdGhlaWdodDoxMDJweDtcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdHRvcDotMXB4O1xuXHRcdFx0XHRsZWZ0Oi0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RpdGxlIHtcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xuXHRcdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2NvbG9yX3R5cGVfaWNvbiB7XG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX3JpZ2h0IHtcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0cmlnaHQ6NTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9saXN0IHtcblx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGxlZnQ6LTMycHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW46MDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdHBhZGRpbmc6MCAwIDUwcHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0d2lkdGg6MXB4O1xuXHRcdFx0XHRoZWlnaHQ6MDtcblx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0dG9wOjQwcHg7XG5cdFx0XHRcdHotaW5kZXg6MTtcblx0XHRcdFx0Lm9wKDApO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0LmNsX2FmdGVyO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0LmRuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYuY21zbWFzdGVyc19pY29uX3R5cGVfaW1hZ2Uge1xuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRcdFx0ei1pbmRleDoyO1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNSk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKC41KTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKC41KTtcblx0XHRcdFx0Lm9wKC4zKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcblx0XHRcdC5vdmg7XG5cdFx0fVxuXHRcdFxuXHRcdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX2xlZnQge1xuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XG5cdFx0XHRcdC50YWw7XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV90ZXh0IHtcblx0XHRcdFx0XHQudGFsO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjMwcHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MjBweDtcblx0XHRcdFx0LmZsO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3Bvc19yaWdodCB7XG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcblx0XHRcdFx0LnRhcjtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xuXHRcdFx0XHRcdC50YXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb25fd3JhcCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDozMHB4O1xuXHRcdFx0XHQuZnI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEljb24gQm94ICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX2ljb25fYm94IHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0JjpiZWZvcmUsIFxuXHQuaWNvbl9ib3hfaGVhZGluZzpiZWZvcmUge1xuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0fVxuXHRcblx0Ji5ib3hfaWNvbl90eXBlX2ltYWdlLCBcblx0Ji5ib3hfaWNvbl90eXBlX251bWJlciB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0XHR9XG5cdFx0XG5cdFx0Ji5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuaWNvbl9ib3hfaGVhZGluZyB7XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OidcXDAwYTAnO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdC50YWM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19pY29uX3RvcCB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Zm9udC1zaXplOjA7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGxlZnQ6NTAlO1xuXHRcdFx0dG9wOjMwcHg7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0Lm9wKDApO1xuXHRcdH1cblx0XHRcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5pY29uX2JveF9pbm5lciB7XG5cdFx0XHQudGFjO1xuXHRcdFx0XG5cdFx0XHQuaWNvbl9ib3hfdGV4dCB7XG5cdFx0XHRcdC50YWM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaWNvbl9ib3hfdG9wIHtcblx0XHRib3JkZXItd2lkdGg6MXB4O1xuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDMwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZTowO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OjUwJTtcblx0XHRcdHRvcDozNXB4O1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdC5vcCgwKTtcblx0XHR9XG5cdFx0XG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XG5cdFx0XHRwYWRkaW5nLXRvcDoxMjBweDtcblx0XHR9XG5cdFx0XG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuaWNvbl9ib3hfaW5uZXIge1xuXHRcdFx0LnRhYztcblx0XHRcdFxuXHRcdFx0Lmljb25fYm94X3RleHQge1xuXHRcdFx0XHQudGFjO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnQge1xuXHRcdGJvcmRlci13aWR0aDoxcHg7XG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMzBweDtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRmb250LXNpemU6MjRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjQ1cHg7XG5cdFx0XHR3aWR0aDo0NXB4O1xuXHRcdFx0aGVpZ2h0OjQ1cHg7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjUwJTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHQudGFjO1xuXHRcdFx0Lm9wKDApO1xuXHRcdH1cblx0XHRcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaWNvbl9ib3hfbGVmdF90b3Age1xuXHRcdHBhZGRpbmctbGVmdDo2MHB4O1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6NDVweDtcblx0XHRcdHdpZHRoOjQ1cHg7XG5cdFx0XHRoZWlnaHQ6NDVweDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHR0b3A6MDtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHQudGFjO1xuXHRcdFx0Lm9wKDApO1xuXHRcdH1cblx0XHRcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQge1xuXHRcdGgxLCBcblx0XHRoMiwgXG5cdFx0aDMsIFxuXHRcdGg0LCBcblx0XHRoNSwgXG5cdFx0aDYge1xuXHRcdFx0ZGlzcGxheTpmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6Y2VudGVyO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjE1cHg7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmluaGVyaXQ7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xuXHRcdFx0XHQub3AoMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcblx0XHRcdGgxLCBcblx0XHRcdGgyLCBcblx0XHRcdGgzLCBcblx0XHRcdGg0LCBcblx0XHRcdGg1LCBcblx0XHRcdGg2IHtcblx0XHRcdFx0ZGlzcGxheTpmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczpjZW50ZXI7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0XHQub3AoMSk7XG5cdFx0XHRcdFx0LnBvc19hYnMoYXV0byxhdXRvLDAsYXV0bywwLDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuaWNvbl9ib3hfdGV4dCB7XG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFRvZ2dsZXMgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfdG9nZ2xlcyB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0LmNtc21hc3RlcnNfdG9nZ2xlc19maWx0ZXIge1xuXHRcdHBhZGRpbmc6MCAwIDE1cHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XG5cdFx0YSB7XG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcblx0XHRcdFxuXHRcdFx0Ji5jdXJyZW50X2ZpbHRlciB7XG5cdFx0XHRcdGN1cnNvcjpkZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBhZGRpbmc6MThweCAyMHB4O1xuXHRcdFx0LmJkO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OjI7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190b2dnbGVfcGx1cyB7XG5cdFx0LmRuO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190b2dnbGUge1xuXHRcdC5kbjtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdG9nZ2xlX2lubmVyIHtcblx0XHRwYWRkaW5nOjMwcHggMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190b2dnbGVfd3JhcC5jdXJyZW50X3RvZ2dsZSB7XG5cdFx0PiAuY21zbWFzdGVyc190b2dnbGVfdGl0bGUgLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXNfdmVydCB7XG5cdFx0XHRoZWlnaHQ6MDtcblx0XHR9XG5cdFx0XG5cdFx0PiAuY21zbWFzdGVyc190b2dnbGUge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdCYudG9nZ2xlc19tb2RlX3RvZ2dsZSB7XG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAge1xuXHRcdFx0bWFyZ2luOjAgMCAycHg7XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji50b2dnbGVzX21vZGVfYWNjb3JkaW9uIHtcblx0XHQuY21zbWFzdGVyc190b2dnbGVfd3JhcCB7XG5cdFx0XHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHQuYmRiKDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV90aXRsZSB7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHQuYmRiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfdG9nZ2xlIHtcblx0XHRcdFx0XHQuYmR0KDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZSB7XG5cdFx0XHRcdC5iZHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFRhYnMgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfdGFicyB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ei1pbmRleDoyO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0LmNsX2FmdGVyO1xuXHRcdH1cblx0fVxuXHRcdFxuXHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0LmRuO1xuXHRcdH1cblx0XHRcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRwYWRkaW5nOjE4cHggMjBweDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XHRcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xuXHRcdFx0XHRwYWRkaW5nOjE4cHggMjBweCAxOHB4IDUwcHg7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDIwcHgsIGF1dG8pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmLmN1cnJlbnRfdGFiLCBcblx0XHQmOmhvdmVyIHtcblx0XHRcdGEge1xuXHRcdFx0XHRvdXRsaW5lOm5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3RhYiB7XG5cdFx0LmRuO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0LmNsX2FmdGVyO1xuXHRcdH1cblx0XHRcblx0XHQmLmFjdGl2ZV90YWIge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQ+ICo6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdH1cblx0fVxuXHRcblx0Ji50YWJzX21vZGVfdGFiIHtcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTotMXB4O1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xuXHRcdFx0LmJkdDtcblx0XHRcdC5jbDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdC5iZGw7XG5cdFx0XHQuYmRyO1xuXHRcdFx0LmJkdDtcblx0XHRcdGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdFxuXHRcdFx0YSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDo1MHB4O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjUwcHg7XG5cdFx0XHRcdFxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDo3MHB4O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGxlZnQ6MzVweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcblx0XHRcdHBhZGRpbmc6MzVweCAwIDA7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLnRhYnNfbW9kZV90b3VyIHtcblx0XHRkaXNwbGF5OnRhYmxlO1xuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XG5cdFx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XG5cdFx0XHR3aWR0aDoyNSU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcblx0XHRcdG1hcmdpbjowIC0xcHggMCAwO1xuXHRcdFx0LmJkdDtcblx0XHRcdC5iZGI7XG5cdFx0XHQuYmRsO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xuXHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xuXHRcdFx0d2lkdGg6NzUlO1xuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXHRcdFx0LmJkbDtcblx0XHR9XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcblx0XHRcdHBhZGRpbmc6MCAwIDAgNTBweDtcblx0XHR9XG5cdFx0XG5cdFx0Ji50YWJzX3Bvc19yaWdodCB7XG5cdFx0XHRkaXJlY3Rpb246cnRsO1xuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xuXHRcdFx0XHR0ZXh0LWFsaWduOnJpZ2h0O1xuXHRcdFx0XHRkaXJlY3Rpb246bHRyO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XG5cdFx0XHRcdC5iZGwoMCk7XG5cdFx0XHRcdC5iZHI7XG5cdFx0XHRcdG1hcmdpbjowIDAgMCAtMXB4O1xuXHRcdFx0XHRcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xuXHRcdFx0XHRcdFx0cGFkZGluZzoxOHB4IDUwcHggMThweCAyMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRcdFx0XHRyaWdodDoyMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xuXHRcdFx0XHRkaXJlY3Rpb246bHRyO1xuXHRcdFx0XHQuYmRsKDApO1xuXHRcdFx0XHQuYmRyO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xuXHRcdFx0XHRwYWRkaW5nOjAgNTBweCAwIDA7XG5cdFx0XHRcdC50YXI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFN0YXRzICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3N0YXRzIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC50YWM7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0LmNtc21hc3RlcnNfc3RhdCB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5zdGF0c19tb2RlX2JhcnMge1xuXHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvbnRhaW5lciB7XG5cdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdGhlaWdodDoyNjBweDtcblx0XHRcdFx0bWFyZ2luOjAgMCA3cHg7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0IHtcblx0XHRcdFx0d2lkdGg6MDtcblx0XHRcdFx0Lm92aDtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdLCBcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjIwcHg7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdFx0bGVmdDoxNXB4O1xuXHRcdFx0XHRcdFx0XHR0b3A6MTBweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdGxlZnQ6MTVweDtcblx0XHRcdFx0XHRcdHRvcDoxMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0XHRcdHJpZ2h0OjE1cHg7XG5cdFx0XHRcdFx0XHR0b3A6MTBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdGNhbnZhcyB7XG5cdFx0XHRcdFx0LmRuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCYuc3RhdHNfdHlwZV92ZXJ0aWNhbCB7XG5cdFx0XHRtYXJnaW46MCAtQGNvbF9tYXI7XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MzVweDtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OjA7XG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRcdC5vdmg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY29udGFpbmVyIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjI1cHg7XG5cdFx0XHRcdFx0d2lkdGg6NjIlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlX2NvdW50ZXJfd3JhcCB7XG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRwYWRkaW5nOjAgMCAxM3B4O1xuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHRib3R0b206MTAwJTtcblx0XHRcdFx0XHQub3ZoO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHRcdHBhZGRpbmc6MCAzNXB4IDEwcHggMDtcblx0XHRcdFx0XHQuYmRiO1xuXHRcdFx0XHRcdC5vdmg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Ji5zdGF0X2hhc190aXRsZWljb24ge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjI3cHg7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjE4cHg7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRcdFx0XHR0b3A6MXB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRcdHJpZ2h0OjA7XG5cdFx0XHRcdFx0dG9wOjNweDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3VuaXRzIHtcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0Y29udGVudDonICc7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ji5zdGF0c190eXBlX2hvcml6b250YWwge1xuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbToxNXB4O1xuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTowO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OjFweDtcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6MzlweDtcblx0XHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRyaWdodDowO1xuXHRcdFx0XHRcdHRvcDo5cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6NDBweDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcblx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6M3B4O1xuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF91bml0czpiZWZvcmUge1xuXHRcdFx0XHRcdFx0XHRjb250ZW50OicgJztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0JjpiZWZvcmUsIFxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0XHRcdFx0dG9wOmF1dG87XG5cdFx0XHRcdFx0XHRcdGJvdHRvbToxM3B4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxuXHRcdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXG5cdFx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0sIFxuXHRcdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XG5cdFx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xuXHRcdFx0XHRcdFx0XHRcdGxlZnQ6MzBweDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0cGFkZGluZzoyMHB4IDAgNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLnN0YXRzX21vZGVfY2lyY2xlcyB7XG5cdFx0bWFyZ2luLXRvcDotNDBweDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRmbG9hdDpub25lO1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjQwcHggMTBweCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXHRcdFx0LnRhYztcblx0XHRcdFxuXHRcdFx0Ji5vbmVfZmlmdGgge1xuXHRcdFx0XHR3aWR0aDoyMCU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYub25lX2ZvdXJ0aCB7XG5cdFx0XHRcdHdpZHRoOjI1JTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5vbmVfdGhpcmQge1xuXHRcdFx0XHR3aWR0aDozMy4zJTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5vbmVfaGFsZiB7XG5cdFx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5vbmVfZmlyc3Qge1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0IHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHdpZHRoOjE4MHB4O1xuXHRcdFx0XHRoZWlnaHQ6MTgwcHg7XG5cdFx0XHRcdG1hcmdpbjowIDAgMTBweDtcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xuXHRcdFx0XHRcdHdpZHRoOjE3MHB4O1xuXHRcdFx0XHRcdGhlaWdodDoxNzBweDtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDo0NXB4O1xuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRcdGxlZnQ6NXB4O1xuXHRcdFx0XHRcdHRvcDo1cHg7XG5cdFx0XHRcdFx0ei1pbmRleDoyO1xuXHRcdFx0XHRcdC50YWM7XG5cdFx0XHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6MzBweDtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjMwcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdFx0XHQudGFjO1xuXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXIge1xuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogNXB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3VuaXRzIHtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6MnB4O1xuXHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Y2FudmFzIHtcblx0XHRcdFx0XHR3aWR0aDoxODBweDtcblx0XHRcdFx0XHRoZWlnaHQ6MTgwcHg7XG5cdFx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRcdFx0ei1pbmRleDoxO1xuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYuc3RhdF9oYXNfdGl0bGVpY29uIHtcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjMwcHg7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTo4cHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRcdFx0cGFkZGluZzoycHggMCAwO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0cGFkZGluZzo3cHggMCAwO1xuXHRcdFx0XHQudGFjO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0cGFkZGluZzoxMHB4IDAgMDtcblx0XHRcdFx0LnRhYztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogQ291bnRlcnMgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfY291bnRlcnMge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0LnRhYztcblx0XG5cdCY6YWZ0ZXIge1xuXHRcdC5jbF9hZnRlcjtcblx0fVxuXHRcblx0Y2FudmFzIHtcblx0XHQuZG47XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2NvdW50ZXJfd3JhcCB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzowIDJweDtcblx0XHRtYXJnaW46MDtcblx0XHRmbG9hdDpub25lO1xuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcblx0XHQudGFjO1xuXHRcdFxuXHRcdCYub25lX2ZpZnRoIHtcblx0XHRcdHdpZHRoOjIwJTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5vbmVfZm91cnRoIHtcblx0XHRcdHdpZHRoOjI1JTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5vbmVfdGhpcmQge1xuXHRcdFx0d2lkdGg6MzMuMyU7XG5cdFx0fVxuXHRcdFxuXHRcdCYub25lX2hhbGYge1xuXHRcdFx0d2lkdGg6NTAlO1xuXHRcdH1cblx0XHRcblx0XHQmLm9uZV9maXJzdCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcblx0XHRcdG1pbi1oZWlnaHQ6MTAwcHg7XG5cdFx0XHRwYWRkaW5nOjAgMjBweDtcblx0XHRcdG1hcmdpbjowIDAgKEBsaW5lX2hlaWdodF9wYWQgLSA2cHgpO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0bWFyZ2luOjIwcHggMCAwO1xuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRib3JkZXItc3R5bGU6c29saWQ7XG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRcdHRvcDowO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX3RpdGxlX3dyYXAge1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGUge1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLmNvdW50ZXJfaGFzX2ljb24ge1xuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYuY291bnRlcl9oYXNfaW1hZ2Uge1xuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcblx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBhZGRpbmctYm90dG9tOjIwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNvdW50ZXJzX3R5cGVfdmVydGljYWwge1xuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfd3JhcCB7XG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcblx0XHRcdFx0LnRhYztcblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xuXHRcdFx0XHRcdC50YWM7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0bGVmdDo1MCU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcblx0XHRcdFx0XHRcdHBhZGRpbmc6MTBweCAwIDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGUge1xuXHRcdFx0XHRcdFx0cGFkZGluZzo3cHggMCAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX3N1YnRpdGxlIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0LnRhYztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY291bnRlcnNfdHlwZV9ob3Jpem9udGFsIHtcblx0XHQuY21zbWFzdGVyc19jb3VudGVyX3dyYXAge1xuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlciB7XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZV93cmFwIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9zdWJ0aXRsZSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDotNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIENNU01BU1RFUlMgQnV0dG9uICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX2J1dHRvbiB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOjAgMzBweDtcblx0Y3Vyc29yOnBvaW50ZXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuYmQ7XG5cdFxuXHQmOmJlZm9yZSB7XG5cdFx0bGluZS1oZWlnaHQ6aW5oZXJpdCAhaW1wb3J0YW50O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHotaW5kZXg6MTA7XG5cdH1cblx0XG5cdHNwYW4ge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHotaW5kZXg6MTA7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzIHtcblx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0Ym9yZGVyOjA7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowIEBsaW5lX2hlaWdodF9wYWQ7XG5cdFx0Lm92aDtcblx0XHQuYmRycygwKTtcblx0XHQuYnhzaF9ub25lO1xuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHQuYnhzaF9ub25lO1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfYmdfaG92ZXIge1xuXHRcdC5iZDtcblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZF91bmRlcmxpbmUge1xuXHRcdC5iZGwoMCk7XG5cdFx0LmJkcigwKTtcblx0XHQuYmR0KDApO1xuXHRcdC5iZGI7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0I3BhZ2UgJiB7XG5cdFx0XHRcdC50cmFucyh+J25vbmUnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfbGVmdCB7XG5cdFx0LmJkO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0bGVmdDotMTAwJTtcblx0XHRcdHRvcDowO1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRsZWZ0OjAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV9yaWdodCB7XG5cdFx0LmJkO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0cmlnaHQ6LTEwMCU7XG5cdFx0XHR0b3A6MDtcblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0cmlnaHQ6MCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3RvcCB7XG5cdFx0LmJkO1xuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdGhlaWdodDowO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV9ib3R0b20ge1xuXHRcdC5iZDtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MDtcblx0XHRcdGxlZnQ6MDtcblx0XHRcdGJvdHRvbTowO1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX3ZlcnQge1xuXHRcdC5iZDtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdHdpZHRoOjA7XG5cdFx0XHRoZWlnaHQ6MTA1JTtcblx0XHRcdGxlZnQ6NTAlO1xuXHRcdFx0dG9wOjUwJTtcblx0XHRcdC5vcCgwKTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdHdpZHRoOjkwJTtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfaG9yIHtcblx0XHQuYmQ7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHR3aWR0aDoxMDUlO1xuXHRcdFx0aGVpZ2h0OjA7XG5cdFx0XHRsZWZ0OjUwJTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRoZWlnaHQ6NzUlO1xuXHRcdFx0XHQub3AoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9kaWFnIHtcblx0XHQuYmQ7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHR3aWR0aDo1MDAlO1xuXHRcdFx0aGVpZ2h0OjA7XG5cdFx0XHRsZWZ0OjUwJTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHQub3AoMCk7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcblx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0aGVpZ2h0OjE3MCU7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfc2hhZG93IHtcblx0XHRwYWRkaW5nLWJvdHRvbTozcHg7XG5cdFx0LmJ4c2hpKDAsIC0zcHgsIDAsIDAsIC4yKTtcblx0XHRcblx0XHQjcGFnZSAmIHtcblx0XHRcdC50cmFucyh+J25vbmUnKTtcblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0bWFyZ2luLXRvcDozcHg7XG5cdFx0XHQuYnhzaGkoMCwgMCwgMCwgMCwgLjAyKTtcblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kYXJrX2JnLCBcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnLCBcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2RpdmlkZXIsIFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0fVxuXHRcdFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAuMik7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZywgXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9saWdodF9iZywgXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kaXZpZGVyIHtcblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4zKTtcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06c2NhbGUoMS4zKTtcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fbGlnaHRfYmcge1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTtcblx0XHR9XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kaXZpZGVyIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG5cdFx0XHQuYmRyO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xuXHRcdC5iZDtcblx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX2xlZnQsIFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xuXHRcdHBhZGRpbmctbGVmdDooQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xuXHRcdHBhZGRpbmctcmlnaHQ6KEBsaW5lX2hlaWdodF9wYWQgKiAyKTtcblx0XHQuYmQ7XG5cdH1cblx0XG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0IHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHQucG9zX2FicygoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpLCBhdXRvLCAtKEBsaW5lX2hlaWdodF9wYWQgKiAyKSwgYXV0byk7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdC5wb3NfYWJzKChAbGluZV9oZWlnaHRfcGFkICogMiksIGF1dG8sIGF1dG8sIC0oQGxpbmVfaGVpZ2h0X3BhZCAqIDIpKTtcblx0XHR9XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCwgXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCwgXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV90b3AsIFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcblx0XHQuYmQ7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0LnBvc19hYnMoMTAwJSwgYXV0byk7XG5cdFx0fVxuXHRcdFxuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlLWluLW91dCcpO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2xlZnQge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGxlZnQ6LTIwMCU7XG5cdFx0fVxuXHRcblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0bGVmdDowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAlKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAlKTtcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAlKTtcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfcmlnaHQge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHJpZ2h0Oi0yMDAlO1xuXHRcdH1cblx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHJpZ2h0OjA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHNwYW4ge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcCB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0dG9wOi0yMDAlO1xuXHRcdH1cblx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMCUpO1xuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHR0b3A6MjAwJTtcblx0XHR9XG5cdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHR0b3A6MDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX3BheXBhbF9kb25hdGlvbnMgPiBmb3JtOmhvdmVyICsgLmNtc21hc3RlcnNfYnV0dG9uIHtcblx0Ji5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXMge1xuXHRcdG1hcmdpbjowO1xuXHRcdC13ZWJraXQtYm94LXNoYWRvdzpub25lO1xuXHRcdGJveC1zaGFkb3c6bm9uZTtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfbGVmdDphZnRlciB7XG5cdFx0d2lkdGg6MTAwJTtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfcmlnaHQ6YWZ0ZXIge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3RvcDphZnRlciB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2JvdHRvbTphZnRlciB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF92ZXJ0OmFmdGVyIHtcblx0XHR3aWR0aDo5MCU7XG5cdFx0b3BhY2l0eToxO1xuXHR9XG5cblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfaG9yOmFmdGVyIHtcblx0XHRoZWlnaHQ6NzUlO1xuXHRcdG9wYWNpdHk6MTtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX2RpYWc6YWZ0ZXIge1xuXHRcdGhlaWdodDoxNzAlO1xuXHRcdG9wYWNpdHk6MTtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfc2hhZG93IHtcblx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdHRvcDozcHg7XG5cdFx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjAyKTtcblx0XHRib3gtc2hhZG93Omluc2V0IDAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjAyKTtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kYXJrX2JnOmJlZm9yZSxcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnOmJlZm9yZSxcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2RpdmlkZXI6YmVmb3JlIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xuXHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMyk7XG5cdFx0LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xuXHRcdC1vLXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xuXHRcdHRyYW5zZm9ybTpzY2FsZSgxLjMpO1xuXHR9XG5cblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX2xlZnQ6YmVmb3JlIHtcblx0XHRsZWZ0OjA7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQ6YmVmb3JlIHtcblx0XHRyaWdodDowO1xuXHR9XG5cblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2xlZnQ6YmVmb3JlIHtcblx0XHRsZWZ0OjA7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCBzcGFuIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xuXHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XG5cdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xuXHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xuXHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xuXHR9XG5cblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3JpZ2h0OmJlZm9yZSB7XG5cdFx0cmlnaHQ6MDtcblx0fVxuXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCBzcGFuIHtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcblx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcblx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xuXHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wOmJlZm9yZSB7XG5cdFx0dG9wOjA7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wIHNwYW4ge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XG5cdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcblx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XG5cdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XG5cdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tOmJlZm9yZSB7XG5cdFx0dG9wOjA7XG5cdH1cblxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHNwYW4ge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuXHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuXHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XG5cdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xuXHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBDb250YWN0IEZvcm0gNyAqKioqKioqKioqKioqKioqKiovXG4ud3BjZjctZm9ybSB7XG5cdGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXG5cdHNlbGVjdCwgXG5cdHRleHRhcmVhLFxuXHRvcHRpb24ge1xuXHRcdG1pbi13aWR0aDoxMDBweDtcblx0XHR3aWR0aDoxMDAlO1xuXHR9XG5cdFx0XG5cdHAge1xuXHRcdHBhZGRpbmc6MDtcblx0fVxuXHRcblx0aW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSxcblx0c2VsZWN0LCBcblx0dGV4dGFyZWEge1xuXHRcdG1hcmdpbjo2cHggMCAxM3B4O1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEhvdmVyIHNsaWRlciAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdGxpOmJlZm9yZSB7XG5cdFx0LmRuO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfaXRlbXMge1xuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDoxcHg7XG5cdFx0cGFkZGluZzowIDAgQHJlc3BfYmxvY2tzX3BhZDtcblx0XHRtYXJnaW46MDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0XHQub3AoMCk7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9mdWxsX2ltZyB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcblx0XHR9XG5cdFx0XG5cdFx0aW1nIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyB7XG5cdFx0Zm9udC1zaXplOjA7XG5cdFx0bGluZS1oZWlnaHQ6MDtcblx0XHRtYXJnaW46MCAtNXB4O1xuXHRcdHBhZGRpbmc6MDtcblx0XHR3b3JkLXNwYWNpbmc6LTFweDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHR3b3JkLXNwYWNpbmc6bm9ybWFsO1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRkaXNwbGF5Oi1tb3otaW5saW5lLXN0YWNrO1xuXHRcdFx0cGFkZGluZzoxMHB4IDVweCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xuXHRcdFx0XG5cdFx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCBhIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5ob3ZlcmVkX2l0ZW0gYTpiZWZvcmUge1xuXHRcdFx0XHQub3AoLjUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTtcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKC41KTtcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XG5cdFx0XHQub3ZoO1xuXHRcdFx0Lm9wKC4zKTtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OicnO1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdC5vcCgwKTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Jjpob3ZlcjpiZWZvcmUge1xuXHRcdFx0XHQub3AoLjkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRpbWcge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHdpZHRoOjEwMHB4O1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRpbWFnZS1yZW5kZXJpbmc6IGF1dG87XG5cdFx0fVxuXHR9XG59XG5cbi5qc19ib2R5IC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyA+IGxpID4gZmlndXJlLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2Z1bGxfaW1nIGltZyB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBDb250ZW50IHNsaWRlciAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19jb250ZW50X3NsaWRlciB7XG5cdG1hcmdpbi1ib3R0b206MjBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHRpbWcge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cblx0XG5cdC5vd2wtYnV0dG9ucyB7XG5cdFx0cG9zaXRpb246c3RhdGljO1xuXHRcdHdpZHRoOjA7XG5cdFx0aGVpZ2h0OjA7XG5cdFx0XG5cdFx0PiBkaXYge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdHdpZHRoOjQ2cHg7XG5cdFx0XHRoZWlnaHQ6NDZweDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR0b3A6NTAlO1xuXHRcdFx0bWFyZ2luLXRvcDotMjNweDtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLm93bC1wcmV2IHtcblx0XHRcdFx0bGVmdDotNDZweDtcblx0XHRcdFx0cmlnaHQ6YXV0bztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5vd2wtbmV4dCB7XG5cdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0cmlnaHQ6LTQ2cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQmOmhvdmVyIHtcblx0XHQub3dsLWJ1dHRvbnMge1xuXHRcdFx0PiBkaXYge1xuXHRcdFx0XHQmLm93bC1wcmV2IHtcblx0XHRcdFx0XHRsZWZ0OjIwcHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYub3dsLW5leHQge1xuXHRcdFx0XHRcdHJpZ2h0OjIwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5vd2wtcGFnaW5hdGlvbiB7XG5cdFx0Ym90dG9tOjVweDtcblx0XHRcblx0XHQub3dsLXBhZ2Uge1xuXHRcdFx0d2lkdGg6MTBweDtcblx0XHRcdGhlaWdodDoxMHB4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6NHB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjRweDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogR2FsbGVyeSAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19nYWxsZXJ5IHtcblx0bWFyZ2luOjAgMCAwIC0xMHB4O1xuXHRwYWRkaW5nOjA7XG5cdFxuXHQuY21zbWFzdGVyc19nYWxsZXJ5X2l0ZW0ge1xuXHRcdG1pbi13aWR0aDoxODBweDtcblx0XHRwYWRkaW5nOjAgMCAxMHB4IDEwcHg7XG5cdFx0LmZsO1xuXHRcdC5vcCgwKTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRkaXNwbGF5Om5vbmU7XG5cdFx0fVxuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xuXHRcdFx0Lm9wKDEpO1xuXHRcdH1cblx0XHRcblx0XHQmLmNtc21hc3RlcnNfY2FwdGlvbiB7XG5cdFx0XHRmaWd1cmUge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOjIwcHggMjBweCAxNXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRmaWdjYXB0aW9uIHtcblx0XHRcdFx0cGFkZGluZzoxNXB4IDAgMDtcblx0XHRcdFx0LnRhYztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmlsaWdodGJveC10aHVtYm5haWxzLmRhcmsgLmlsaWdodGJveC10aHVtYm5haWxzLWdyaWQgLmlsaWdodGJveC10aHVtYm5haWwgaW1nIHtcblx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XG59XG5cbi8qKioqKioqKioqKioqKioqKiBRdW90ZXMgKioqKioqKioqKioqKioqKioqL1xuXG4uY21zbWFzdGVyc19xdW90ZSB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xufVxuXG4uY21zbWFzdGVyc19xdW90ZV9zaXRlIHtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlICsgLmNtc21hc3RlcnNfcXVvdGVfc2l0ZTpiZWZvcmUge1xuXHRjb250ZW50OidcXDAwMkQnO1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0bWFyZ2luOjAgNHB4O1xufVxuXG4uY21zbWFzdGVyc19xdW90ZV9zdWJ0aXRsZSB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRtYXJnaW46MDtcbn1cblxuLmNtc21hc3RlcnNfcXVvdGVfY29udGVudCB7XG5cdG1hcmdpbjo0MHB4IDAgMDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQ+ICo6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTowO1xuXHRcdHBhZGRpbmctYm90dG9tOjA7XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfcXVvdGVzX3NsaWRlcl90eXBlX2JveCB7XG5cdHBhZGRpbmc6MCAwIDQwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0cGFkZGluZzogMCA1NXB4O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9pbWFnZSB7XG5cdFx0bWFyZ2luOjAgMzBweCAwIDA7XG5cdFx0LmZsO1xuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDo3MHB4O1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2hlYWRlciB7XG5cdFx0cGFkZGluZzo4cHggMCAxMHB4IDM1cHg7XG5cdFx0LmJkYjtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6J1xcMjAxRCc7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGxlZnQ6MDtcblx0XHRcdHRvcDo2cHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV90aXRsZSB7XG5cdFx0bWFyZ2luOjA7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlX3dyYXAge1xuXHRcdHBhZGRpbmctdG9wOjJweDtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcblx0XHRtYXJnaW46NDBweCAwIDA7XG5cdH1cblx0XG5cdC5vd2wtcGFnaW5hdGlvbiB7XG5cdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXJfdHlwZV9jZW50ZXIge1xuXHQuY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XG5cdFx0LnRhYztcblx0fVxuXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlICsgLmNtc21hc3RlcnNfcXVvdGVfc2l0ZTpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcvJztcblx0XHRtYXJnaW46IDAgMTBweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGhlaWdodDo1MHB4O1xuXHRcdHdpZHRoOjUwcHg7XG5cdFx0LnRhYztcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OidcXDIwMUMnO1xuXHRcdFx0LnBvc19hYnMoNTBweCw1MHB4KTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2ltYWdlIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcblx0XHRpbWcge1xuXHRcdFx0d2lkdGg6MTAwcHg7XG5cdFx0XHQuYmRycyg1MCUpO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGVfd3JhcCB7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfY29udGVudCB7XG5cdFx0LnRhYztcblx0XHRwYWRkaW5nOjM1cHggMTAlO1xuXHRcdG1hcmdpbi10b3A6MDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfaGVhZGVyIHtcblx0XHRtYXJnaW4tdG9wOjVweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfdGl0bGUge1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdFxuXHQub3dsLXBhZ2luYXRpb24ge1xuXHRcdHRvcDoxMjVweDtcblx0XHRib3R0b206YXV0bztcblx0fVxuXG5cdC5vd2wtYnV0dG9ucyB7XG5cdFx0PiBkaXYge1xuXHRcdFx0bWFyZ2luLXRvcDogLTM1cHg7XG5cdFx0fVxuXHRcdC5jbXNtYXN0ZXJzX3ByZXZfYXJyb3csIC5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDA7XG5cdFx0XHRib3JkZXItdG9wOiAwO1xuXHRcdFx0d2lkdGg6IDUwcHg7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRzcGFuOmJlZm9yZSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5jbXNtYXN0ZXJzX3ByZXZfYXJyb3cge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcblx0XHR9XG5cdFx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdyB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHRcdH1cblx0fVxufVxuXG4uY21zbWFzdGVyc19xdW90ZXNfZ3JpZCB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVzX3ZlcnQge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0dG9wOjA7XG5cdFx0ei1pbmRleDoxO1xuXHRcdFxuXHRcdCY6YmVmb3JlLFxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdHdpZHRoOjFweDtcblx0XHRcdGhlaWdodDoxMDAlO1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR0b3A6MDtcblx0XHR9XG5cdFx0XG5cdFx0c3BhbiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6MXB4O1xuXHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdHRvcDowO1xuXHRcdH1cblx0XHRcblx0XHQucXVvdGVfZm91ciYge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OjI1JTtcblx0XHRcdFx0cmlnaHQ6YXV0bztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6NzUlO1xuXHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0bGVmdDo1MCU7XG5cdFx0XHRcdHJpZ2h0OmF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5xdW90ZV90aHJlZSYge1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OjMzLjMzJTtcblx0XHRcdFx0cmlnaHQ6YXV0bztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGxlZnQ6NjYuNjYlO1xuXHRcdFx0XHRyaWdodDphdXRvO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0LmRuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQucXVvdGVfdHdvJiB7XG5cdFx0XHQmOmJlZm9yZSwgXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0bGVmdDo1MCU7XG5cdFx0XHRcdHJpZ2h0OmF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5xdW90ZV9vbmUmIHtcblx0XHRcdC5kbjtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3Rlc19saXN0IHtcblx0XHRwYWRkaW5nOjQ1cHggMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuYmRiO1xuXHRcdHotaW5kZXg6Mjtcblx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246cm93O1xuXHRcdFxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdH1cblx0XHRcblx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xuXHRcdFx0LmJkYigwKTtcblx0XHR9XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRoZWlnaHQ6MXB4O1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHRib3R0b206MXB4O1xuXHRcdH1cblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6J1xcMjAxRCc7XG5cdFx0XHRmb250LXNpemU6NTBweDtcblx0XHRcdGxpbmUtaGVpZ2h0Ojg0cHg7XG5cdFx0XHR6LWluZGV4OjU7XG5cdFx0XHQudGFjO1xuXHRcdFx0LmJkO1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdC5wb3NfYWJzKDUwcHgsIDUwcHgsIDAsIDAsIGF1dG8sIC0yNXB4KTtcblx0XHR9XG5cdFx0XG5cdFx0JjpsYXN0LWNoaWxkOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0fVxuXHRcdFxuXHRcdCY6bGFzdC1jaGlsZCwgXG5cdFx0LnF1b3RlX3RocmVlJiwgXG5cdFx0LnF1b3RlX29uZSYge1xuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7XG5cdFx0XG5cdFx0LnF1b3RlX2ZvdXImIHtcblx0XHRcdHdpZHRoOjI1JTtcblx0XHR9XG5cdFx0XG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHR3aWR0aDozMy4zMyU7XG5cdFx0fVxuXHRcdFxuXHRcdC5xdW90ZV90d28mIHtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHR9XG5cdFx0XG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdC5jbXNtYXN0ZXJzX3F1b3RlX2lubmVyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdC5jbXNtYXN0ZXJzX3F1b3RlX2lubmVyIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXIge1xuXHRcdHBhZGRpbmc6MCA0NXB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LnF1b3RlX29uZSYge1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfaW1nX2luZm9fd3JhcCB7XG5cdFx0cGFkZGluZzowIDAgMjBweDtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdC5xdW90ZV9mb3VyJiwgXG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9pbWFnZSB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzowIDIwcHggMCAwO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdC5xdW90ZV9mb3VyJiwgXG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHRwYWRkaW5nOjAgMCAyMHB4O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdC50YWM7XG5cdFx0fVxuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDo3MHB4O1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2luZm9fd3JhcCB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFxuXHRcdC5xdW90ZV9mb3VyJiwgXG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHRwYWRkaW5nOjAgMCAyMHB4O1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdC50YWM7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MDtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV90aXRsZSB7XG5cdFx0bWFyZ2luOjA7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlX3dyYXAge1xuXHRcdC5xdW90ZV9mb3VyJiwgXG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHQudGFjO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGUge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9zaXRlIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGUgKyAuY21zbWFzdGVyc19xdW90ZV9zaXRlOmJlZm9yZSB7XG5cdFx0Y29udGVudDonXFwwMDJEJztcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW46MCA0cHg7XG5cdH1cblx0XG5cdCYucXVvdGVfd2l0aG91dF9pbWcge1xuXHRcdC5jbXNtYXN0ZXJzX3F1b3RlX2NvbnRlbnQge1xuXHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nLWxlZnQ6OTBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdC5xdW90ZV9mb3VyJiwgXG5cdFx0LnF1b3RlX3RocmVlJiB7XG5cdFx0XHQudGFjO1xuXHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0fVxuXHRcdFxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFByaWNpbmcgdGFibGVzICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3ByaWNpbmdfdGFibGUge1xuXHRtYXJnaW46MCAtQGNvbF9tYXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtIHtcblx0XHQuYmQ7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW46MCBAY29sX21hciAyMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5mbDtcblx0XHRcblx0XHQucHJpY2luZ19mb3VyJiB7XG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdH1cblx0XHRcblx0XHQucHJpY2luZ190aHJlZSYge1xuXHRcdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHR9XG5cdFx0XG5cdFx0LnByaWNpbmdfdHdvJiB7XG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdH1cblx0XHRcblx0XHQucHJpY2luZ19vbmUmIHtcblx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcmljaW5nX2l0ZW1faW5uZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC50YWM7XG5cdH1cblx0XG5cdC5wcmljaW5nX3RpdGxlIHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjIwcHg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJpY2Vfd3JhcCB7XG5cdFx0d29yZC1zcGFjaW5nOi01cHg7XG5cdFx0cGFkZGluZzozNXB4IDIwcHg7XG5cdFx0LmJkdDtcblx0XHQuYmRiO1xuXHRcdC5vdmg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJpY2Uge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19jdXJyZW5jeSwgXG5cdC5jbXNtYXN0ZXJzX2NvaW5zIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcGVyaW9kIHtcblx0XHRtYXJnaW4tdG9wOjEwcHg7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHQudGFjO1xuXHRcdHdvcmQtc3BhY2luZzowO1xuXHR9XG5cdFxuXHQuZmVhdHVyZV9saXN0IHtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0bWFyZ2luOjAgMCAzMHB4O1xuXHRcdHBhZGRpbmc6MDtcblx0XHQudGFjO1xuXHRcdFxuXHRcdGxpIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzoxMHB4IDIwcHg7XG5cdFx0XHQuYmRiO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0KyAuY21zbWFzdGVyc19idXR0b24ge1xuXHRcdFx0bWFyZ2luLXRvcDowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYnV0dG9uIHtcblx0XHRtYXJnaW46MzBweCAwO1xuXHR9XG5cdFxuXHQucHJpY2luZ19iZXN0IHtcblx0XHQuY21zbWFzdGVyc19wcmljZV93cmFwIHtcblx0XHRcdG1hcmdpbjowIC0xcHg7XG5cdFx0fVxuXHR9XG5cdFxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBHb29nbGUgTWFwcyAqKioqKioqKioqKioqKioqKiovXG4ucmVzaXphYmxlX2Jsb2NrIC5nb29nbGVfbWFwIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcblx0dG9wOjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZ29vZ2xlX21hcCBpbWcge1xuXHRtYXgtd2lkdGg6bm9uZTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKiogQ2FwdGlvbiAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19pbWcge1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0bWF4LXdpZHRoOjEwMCU7XG5cdFxuXHQmLmNtc21hc3RlcnNfaW1hZ2VfbCB7XG5cdFx0bWFyZ2luLXJpZ2h0OkBsaW5lX2hlaWdodF9wYWQ7XG5cdFx0LmZsO1xuXHR9XG5cblx0Ji5jbXNtYXN0ZXJzX2ltYWdlX3Ige1xuXHRcdG1hcmdpbi1sZWZ0OkBsaW5lX2hlaWdodF9wYWQ7XG5cdFx0LmZyO1xuXHR9XG5cdFxuXHQmLndpdGhfY2FwdGlvbiB7XG5cdFx0cGFkZGluZzoxNXB4IDE1cHggMCAxNXB4O1xuXHRcdC5iZDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaW1nX2NhcHRpb24ge1xuXHRcdHBhZGRpbmc6MTVweCAwO1xuXHRcdC50YWM7XG5cdH1cbn1cblxuLndwLWNhcHRpb24ge1xuXHRtYXgtd2lkdGg6MTAwJTtcblx0cGFkZGluZzowO1xuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XG5cdC5vdmg7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdCYuYWxpZ25jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OmF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OmF1dG87XG5cdH1cblx0XG5cdCYuYWxpZ25sZWZ0IHtcblx0XHRtYXJnaW4tcmlnaHQ6MXJlbTtcblx0fVxuXHRcblx0Ji5hbGlnbnJpZ2h0IHtcblx0XHRtYXJnaW4tbGVmdDoxcmVtO1xuXHR9XG5cdFxuXHQmLmFsaWdubm9uZSB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblxuXHQud3AtY2FwdGlvbi10ZXh0IHtcblx0XHRwYWRkaW5nOjE1cHggMDtcblx0XHQudGFjO1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFdQIEdhbGxlcnkgKioqKioqKioqKioqKioqKioqL1xuLmdhbGxlcnkge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bWFyZ2luOjAgLUBjb2xfbWFyIDIwcHg7XG5cdFxuXHRpbWcge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0Ym9yZGVyOm5vbmU7XG5cdH1cblx0XG5cdC5nYWxsZXJ5LWl0ZW0ge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGZsb2F0OmxlZnQ7XG5cdFx0bWFyZ2luOjAgQGNvbF9tYXIgMjBweDtcblx0XHRcblx0XHQud3AtY2FwdGlvbi10ZXh0IHtcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xuXHRcdFx0cGFkZGluZzo1cHg7XG5cdFx0XHQudGFjO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDMpO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGZsb2F0Om5vbmU7XG5cdFx0LmNsO1xuXHR9XG5cdFxuXHQmLmdhbGxlcnktY29sdW1ucy0yIC5nYWxsZXJ5LWl0ZW0ge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XG5cdFx0XG5cdFx0JjpudGgtY2hpbGQoMm4rMSkge1xuXHRcdFx0LmNsO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDMpO1xuXHRcdFxuXHRcdCY6bnRoLWNoaWxkKDNuKzEpIHtcblx0XHRcdC5jbDtcblx0XHR9XG5cdH1cblx0XG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTQgLmdhbGxlcnktaXRlbSB7XG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAzKTtcblx0XHRcblx0XHQmOm50aC1jaGlsZCg0bisxKSB7XG5cdFx0XHQuY2w7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmdhbGxlcnktY29sdW1ucy01IC5nYWxsZXJ5LWl0ZW0ge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XG5cdFx0XG5cdFx0JjpudGgtY2hpbGQoNW4rMSkge1xuXHRcdFx0LmNsO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMiksIDMpO1xuXHRcdFxuXHRcdCY6bnRoLWNoaWxkKDZuKzEpIHtcblx0XHRcdC5jbDtcblx0XHR9XG5cdH1cblx0XG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTcgLmdhbGxlcnktaXRlbSB7XG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA3KSAtIChAY29sX21hciAqIDIpLCAzKTtcblx0XHRcblx0XHQmOm50aC1jaGlsZCg3bisxKSB7XG5cdFx0XHQuY2w7XG5cdFx0fVxuXHR9XG5cdFxuXHQmLmdhbGxlcnktY29sdW1ucy04IC5nYWxsZXJ5LWl0ZW0ge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gOCkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XG5cdFx0XG5cdFx0JjpudGgtY2hpbGQoOG4rMSkge1xuXHRcdFx0LmNsO1xuXHRcdH1cblx0fVxuXHRcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDkpIC0gKEBjb2xfbWFyICogMiksIDMpO1xuXHRcdFxuXHRcdCY6bnRoLWNoaWxkKDluKzEpIHtcblx0XHRcdC5jbDtcblx0XHR9XG5cdH1cbn1cblxuLmdhbGxlcnk6YWZ0ZXIsIFxuLmdhbGxlcnktaXRlbTphZnRlciB7XG5cdC5jbF9hZnRlcjtcbn1cblxuXG4vKioqKioqKioqKioqKioqKiogU2lkZWJhciAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19zaWRlYmFyIHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRcblx0YXNpZGUge1xuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xuXHRcdGZsb2F0OmxlZnQ7XG5cdH1cbn1cblxuLnNpZGViYXJfbGF5b3V0XzE0MTQxNDE0IHtcblx0YXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cbn1cblxuLnNpZGViYXJfbGF5b3V0XzE0MTQxMiB7XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlLCBcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8xNDEyMTQge1xuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlICsgYXNpZGUsIFxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG5cdFxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0fVxufVxuXG4uc2lkZWJhcl9sYXlvdXRfMTIxNDE0IHtcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSwgXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cbn1cblxuLnNpZGViYXJfbGF5b3V0XzEzMTMxMyB7XG5cdGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8zNDE0IHtcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8xNDM0IHtcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8yMzEzIHtcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8xMzIzIHtcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAyKSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHR9XG59XG5cbi5zaWRlYmFyX2xheW91dF8xMjEyIHtcblx0YXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cbn1cblxuLnNpZGViYXJfbGF5b3V0XzExIHtcblx0YXNpZGUge1xuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogU2hhcmUgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfc2hhcmluZyB7XG5cdC5vdmg7XG59XG5cbi5zaGFyZV93cmFwIHtcblx0ZmxvYXQ6bGVmdDtcblx0bWFyZ2luLWJvdHRvbToyMHB4O1xuXHRtYXJnaW4tcmlnaHQ6MjBweDtcblx0XG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdH1cblx0XG5cdC5zb2NpYWxfdmVydGljYWwgJiB7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0XHRtYXJnaW4tcmlnaHQ6MDtcblx0fVxuXHRcblx0PiBhOmJlZm9yZSB7XG5cdFx0bWFyZ2luLXJpZ2h0OjEwcHg7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogVHdpdHRlciBTdHJpcGUgKioqKioqKioqKioqKioqKioqL1xuLmNtc21hc3RlcnNfdHdpdHRlcl93cmFwIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQub3dsLXBhZ2luYXRpb24ge1xuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xuXHRcdC5kbjtcblx0fVxuXHRcblx0Lm93bC1idXR0b25zIHtcblx0XHQucG9zX2Ficyg3NnB4LCAzN3B4LCBhdXRvLCAwKTtcblx0XHRcblx0XHQ+IGRpdiB7XG5cdFx0XHRtYXJnaW4tdG9wOi0xOHB4O1xuXHRcdFx0XG5cdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHR3aWR0aDozN3B4O1xuXHRcdFx0XHRoZWlnaHQ6MzdweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC50d3JfaWNvbiB7XG5cdFx0Zm9udC1zaXplOjI2cHg7XG5cdFx0bGluZS1oZWlnaHQ6MjZweDtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCBhdXRvKTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRtYXJnaW46MCAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdHdpdHRlciB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3R3aXR0ZXJfaXRlbSB7XG5cdFx0cGFkZGluZzo1cHggMTAwcHggNXB4IDQ1cHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0ZGlzcGxheTpmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOnJvdztcblx0XHRhbGlnbi1pdGVtczpjZW50ZXI7XG5cdFx0bWluLWhlaWdodDo2MHB4O1xuXHR9XG5cdFxuXHQucHVibGlzaGVkIHtcblx0XHRwYWRkaW5nOjA7XG5cdFx0d2lkdGg6MTMwcHg7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtX2NvbnRlbnQge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRHJvcGNhcCAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19kcm9wY2FwIHtcblx0bWFyZ2luOjVweCAzM3B4IDVweCAyM3B4O1xuXHRsaW5lLWhlaWdodDo1MHB4O1xuXHQuZmw7XG5cdFxuXHQmLnR5cGUyIHtcblx0XHR3aWR0aDo1MHB4O1xuXHRcdGhlaWdodDo1MHB4O1xuXHRcdG1hcmdpbjo1cHggMjVweCA1cHggMDtcblx0XHQuYmRycyg1MCUpO1xuXHRcdC50YWM7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogQ2xpZW50cyAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19jbGllbnRzX3NsaWRlciB7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdFxuXHQmLmVuYWJsZV9zbGlkZXNfY29udHJvbCB7XG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcblx0fVxuXHRcblx0Ji5lbmFibGVfYXJyb3dfY29udHJvbCB7XG5cdFx0cGFkZGluZy10b3A6NTVweDtcblx0fVxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDoxNzBweDtcblx0fVxuXHRcblx0Lm93bC1wYWdpbmF0aW9uIHtcblx0XHRib3R0b206IC0yNXB4O1xuXHR9XG5cblx0Lm93bC1idXR0b25zIHtcblx0XHQ+IGRpdiB7XG5cdFx0XHQmLm93bC1wcmV2IHtcblx0XHRcdFx0bGVmdDotNDZweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5vd2wtbmV4dCB7XG5cdFx0XHRcdHJpZ2h0Oi00NnB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY21zbWFzdGVyc19jbGllbnRzX3NsaWRlcl93cmFwIHtcblx0cGFkZGluZzowIDQ2cHg7XG59XG5cbi5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbSB7XG5cdGxpbmUtaGVpZ2h0OjE4MHB4O1xuXHRoZWlnaHQ6MTgwcHg7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC50YWM7XG5cdFxuXHRpbWcge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6MCAyMHB4O1xuXHRcdG1heC13aWR0aDoxMDAlO1xuXHRcdG1heC1oZWlnaHQ6MTAwJTtcblx0XHRoZWlnaHQ6YXV0bztcblx0XHR3aWR0aDphdXRvO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0fVxuXHRcblx0YSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRsaW5lLWhlaWdodDoxODBweDtcblx0XHRoZWlnaHQ6MTAwJTtcblx0fVxuXHRcblx0Jjpob3ZlciB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG59XG5cblxuLmNtc21hc3RlcnNfY2xpZW50c19ncmlkIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRcblx0Ji5jbGllbnRzX2ZpdmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcblx0XHR3aWR0aDoyMCU7XG5cdH1cblx0XG5cdCYuY2xpZW50c19mb3VyIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbSB7XG5cdFx0d2lkdGg6MjUlO1xuXHR9XG5cdFxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcblx0XHR3aWR0aDozMy4zMyU7XG5cdH1cblx0XG5cdCYuY2xpZW50c190d28gLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcblx0XHR3aWR0aDo1MCU7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbXMge1xuXHRcdGhlaWdodDphdXRvO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xuXHRcdG1hcmdpbi1ib3R0b206MjBweDtcblx0XHRmbG9hdDpsZWZ0O1xuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNSk7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoLjUpO1xuXHRcdFx0Lm9wKC4xKTtcblx0XHR9XG5cdFx0XG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOmxhc3QtY2hpbGQsXG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGZsb2F0Om5vbmU7XG5cdFx0aGVpZ2h0OmF1dG87XG5cdFx0bGluZS1oZWlnaHQ6MDtcblx0fVxuXHRcblx0Ji5jbGllbnRzX3R3byAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW06bnRoLWNoaWxkKDJuKzEpLFxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgzbisxKSxcblx0Ji5jbGllbnRzX2ZvdXIgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCg0bisxKSxcblx0Ji5jbGllbnRzX2ZpdmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCg1bisxKSB7XG5cdFx0Y2xlYXI6Ym90aDtcblx0fVxufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZGdldHMgU3R5bGVzXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ud2lkZ2V0IHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHBhZGRpbmc6MCAwIChAbGluZV9oZWlnaHRfcGFkICogMik7XG5cdFxuXHQud2lkZ2V0dGl0bGUge1xuXHRcdG1hcmdpbi1ib3R0b206MjVweDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQWR2ZXJ0aXNlbWVudCAqKioqKioqKioqKioqKioqKiovXG4ud2lkZ2V0X2N1c3RvbV9hZHZlcnRpc2VtZW50X2VudHJpZXMge1xuXHQud2lkZ2V0dGl0bGUge1xuXHRcdG1hcmdpbi1ib3R0b206MjVweDtcblx0fVxuXHRcblx0LmFkdl9pbWFnZV93cmFwIHtcblx0XHRtYXJnaW46LTVweDtcblx0XHRvdmVyZmxvdzpoaWRkZW47XG5cdFx0XG5cdFx0LmFkdl93aWRnZXRfaW1hZ2Uge1xuXHRcdFx0d2lkdGg6MTI1cHg7XG5cdFx0XHRoZWlnaHQ6MTI1cHg7XG5cdFx0XHRmbG9hdDpsZWZ0O1xuXHRcdFx0bWFyZ2luOjVweDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IExpc3RzICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfcGFnZXMsXG4ud2lkZ2V0X2NhdGVnb3JpZXMsXG4ud2lkZ2V0X2FyY2hpdmUsXG4ud2lkZ2V0X21ldGEsXG4ud2lkZ2V0X3JlY2VudF9jb21tZW50cyxcbi53aWRnZXRfcmVjZW50X2VudHJpZXMge1xuXHR1bCB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdGxpIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0LmJkdDtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0cGFkZGluZzoycHggMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdD4gdWwge1xuXHRcdD4gbGkge1xuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdC5iZHQoMCk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdD4gdWwge1xuXHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjE1cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjMwcHg7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjQ1cHg7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjYwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQucG9zdC1kYXRlIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdG1hcmdpbjotM3B4IDAgMDtcblx0fVxufVxuXG4ud2lkZ2V0X3JlY2VudF9jb21tZW50cyB7XG5cdHVsIHtcblx0XHRsaSB7XG5cdFx0XHRwYWRkaW5nOjhweCAwO1xuXHRcdH1cblx0fVxufVxuXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHtcblx0LnBvc3QtZGF0ZSB7XG5cdFx0bWFyZ2luOjVweCAwIDA7XG5cdH1cbn1cblxuLndpZGdldF9wYWdlcyB7XG5cdHVsIHtcblx0XHRsaSB7XG5cdFx0XHRhIHtcblx0XHRcdFx0cGFkZGluZzo5cHggMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLndpZGdldF9jYXRlZ29yaWVzLFxuLndpZGdldF9hcmNoaXZlLFxuLndpZGdldF9tZXRhIHtcblx0dWwge1xuXHRcdGxpIHtcblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOjJweCAwO1xuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OidcXGU4ODgnO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZToxMnB4O1xuXHRcdFx0XHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XG5cdFx0XHRcdFx0bWFyZ2luOjAgMTBweCAwIDFweDtcblx0XHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ud2lkZ2V0X2NhdGVnb3JpZXMsIFxuLndpZGdldF9hcmNoaXZlIHtcblx0LnNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdFx0LmRuO1xuXHR9XG59XG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ2FsZW5kYXIgKioqKioqKioqKioqKioqKioqL1xuI3dwLWNhbGVuZGFyIHtcblx0Ym9yZGVyLXNwYWNpbmc6MDtcblx0d2lkdGg6YXV0bztcblx0bWluLXdpZHRoOjIwMHB4O1xuXHRcblx0Y2FwdGlvbiB7XG5cdFx0dGV4dC1hbGlnbjpsZWZ0O1xuXHRcdHBhZGRpbmc6MCAwIDEwcHggMjBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OidcXGU5NGYnO1xuXHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvJztcblx0XHRcdGZvbnQtc2l6ZToxNHB4O1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OjJweDtcblx0XHRcdHRvcDowO1xuXHRcdH1cblx0fVxuXHRcblx0dGQsIFxuXHR0aCB7XG5cdFx0cGFkZGluZzo1cHggMDtcblx0XHQuYmQoMCk7XG5cdH1cblx0XG5cdHRmb290IHtcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ29udGFjdCBGb3JtICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfZm9ybV9lbnRyaWVzIHtcblx0aW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKSxcblx0dGV4dGFyZWEsXG5cdHNlbGVjdCB7XG5cdFx0d2lkdGg6MTAwJTtcblx0fVxuXHRcblx0LmZvcm1faW5mby5zdWJtaXRfd3JhcCB7XG5cdFx0cGFkZGluZy10b3A6MDtcblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ29udGFjdCBJbmZvICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfaW5mb19lbnRyaWVzIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQ+IHNwYW4sIFxuXHQuYWRyZXNzX3dyYXAge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWFyZ2luOjIwcHggMCAwO1xuXHRcdHBhZGRpbmc6MCAwIDAgMjVweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdH1cblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRmb250LXNpemU6MTZweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjE4cHg7XG5cdFx0XHQudGFjO1xuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDFweCwgYXV0byk7XG5cdFx0fVxuXHR9XG5cdFxuXHQuYWRyZXNzX3dyYXAge1xuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0dG9wOjA7XG5cdFx0XHRib3R0b206YXV0bztcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IEN1c3RvbSBNZW51ICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfbmF2X21lbnUge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdHVsIHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MjBweDtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0cGFkZGluZzoxMHB4IDA7XG5cdFx0XHRcdC5iZGI7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXG5cdFx0XHRcdCY6ZW1wdHkge1xuXHRcdFx0XHRcdC5kbjtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdFx0Ym90dG9tOi0xcHg7XG5cdFx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6MnB4O1xuXHRcdFx0XHRcdC5vcCgwKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLmN1cnJlbnRfcGFnZV9pdGVtIHtcblx0XHRcdFx0PiBhOmJlZm9yZSB7XG5cdFx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQubWVudSB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdC5iZGIoMCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHR1bCB7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDoyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6NDBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo2MHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6NzBweDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo4MHB4O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjkwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDoxMDBweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MTEwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MTIwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDoxMzBweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgRmFjZWJvb2sgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9jdXN0b21fZmFjZWJvb2tfZW50cmllcyBpZnJhbWUge1xuXHRtYXJnaW4tYm90dG9tOjA7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBGbGlja3IgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9jdXN0b21fZmxpY2tyX2VudHJpZXMge1xuXHQud3JhcCB7XG5cdFx0bWFyZ2luOjAgLTEwcHg7XG5cdH1cblx0XG5cdC5tb3JlX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTpub25lO1xuXHR9XG5cdFxuXHQuZmxpY2tyX2JhZGdlX2ltYWdlIHtcblx0XHRtYXJnaW46MCAxMHB4IDIwcHg7XG5cdFx0LmZsO1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBMYXRlc3QgYW5kIFBvcHVsYXIgUHJvamVjdHMgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9jdXN0b21fcG9wdWxhcl9wcm9qZWN0c19lbnRyaWVzLFxuLndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblxuXHQub3dsLXBhZ2luYXRpb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblx0XG5cdC53aWRnZXR0aXRsZSB7XG5cdFx0cGFkZGluZzowIDc3cHggMCAwO1xuXHR9XG5cdFxuXHQud2lkZ2V0X2N1c3RvbV9wcm9qZWN0c19lbnRyaWVzX3NsaWRlcyB7XG5cdFx0cGFkZGluZzo0N3B4IDAgMDtcblx0fVxuXHRcblx0LndpZGdldHRpdGxlICsgLndpZGdldF9jdXN0b21fcHJvamVjdHNfZW50cmllc19zbGlkZXMge1xuXHRcdHBhZGRpbmc6MDtcblx0XHRcblx0XHQub3dsLWJ1dHRvbnMge1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHR3aWR0aDo3N3B4O1xuXHRcdFx0bGVmdDphdXRvO1xuXHRcdFx0cmlnaHQ6MDtcblx0XHRcdHRvcDotNTBweDtcblx0XHRcdFxuXHRcdFx0PiBkaXYge1xuXHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdFx0dG9wOi01cHg7XG5cdFx0XHRcdFxuXHRcdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRcdHdpZHRoOjM3cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OjM3cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3dpZGdldF9wcm9qZWN0IHtcblx0XHRwYWRkaW5nOjAgMXB4IDJweDtcblx0XHRcblx0XHQucHJlbG9hZGVyIHtcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19tYXNvbnJ5X3BhZDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3dpZGdldF9wcm9qZWN0X2NvbnRfaW5mbyB7XG5cdFx0LmJkYjtcblx0XHQub3ZoO1xuXHRcdHBhZGRpbmc6MTBweCAwO1xuXHRcdG1hcmdpbi1ib3R0b206MjBweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfdGl0bGUge1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc193aWRnZXRfcHJvamVjdF9mb290ZXIge1xuXHRcdC5mcjtcblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xuXHRcdG1hcmdpbi10b3A6MTBweDtcblx0XHRcblx0XHQ+ICo6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfcmVhZF9tb3JlIHtcblx0XHRtYXJnaW4tdG9wOjE1cHg7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFBvc3RzIFRhYnMgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuY21zbWFzdGVyc190YWJzIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdHdpZHRoOjMzLjMyJTtcblx0XHRcdFxuXHRcdFx0YSB7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MjBweDtcblx0XHRcdFx0cGFkZGluZzoxMnB4IDA7XG5cdFx0XHRcdC50YWM7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XG5cdFx0XHRwYWRkaW5nOjMwcHggMCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQ+IC5jbXNtYXN0ZXJzX3RhYjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX3RhYiB7XG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luOjIwcHggMCAwO1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XHQub3ZoO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdHAge1xuXHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLnRhYl9sYXRlc3QsIFxuXHRcdFx0Ji50YWJfcG9wdWxhciB7XG5cdFx0XHRcdGxpOmFmdGVyIHtcblx0XHRcdFx0XHQudmFsaWduX2FmdGVyO1xuXHRcdFx0XHRcdGhlaWdodDo2MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCYudGFiX2NvbW1lbnRzIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdD4gcCB7XG5cdFx0XHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6MTBweCAwIDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2xwcl90YWJzX2ltZyB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6MjBweDtcblx0XHRcdHotaW5kZXg6MTtcblx0XHRcdC5vdmg7XG5cdFx0XHQucG9zX2Ficyg2MHB4LCA2MHB4LCAwLCBhdXRvKTtcblx0XHRcdC5iZHJzKDUwJSk7XG5cdFx0XHRcblx0XHRcdGltZyxcblx0XHRcdC5pbWdfcGxhY2Vob2xkZXJfc21hbGwge1xuXHRcdFx0XHQuYmRycyg1MCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQucHVibGlzaGVkIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2xwcl90YWJzX2NvbnQge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRwYWRkaW5nOjAgMCAwIDgwcHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdD4gYSB7XG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFJTUyAqKioqKioqKioqKioqKioqKiovXG4ud2lkZ2V0X3JzcyB7XG5cdGltZyB7XG5cdFx0bWFyZ2luOi0zcHggM3B4IDAgMDtcblx0fVxuXHRcblx0dWwge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRtYXJnaW46MjBweCAwIDA7XG5cdFx0XHRwYWRkaW5nOjIwcHggMCAwO1xuXHRcdFx0LmJkdDtcblx0XHRcdFxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdC5iZHQoMCk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQucnNzd2lkZ2V0IHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnJzcy1kYXRlIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnJzc1N1bW1hcnkge1xuXHRcdFx0XHRwYWRkaW5nOjVweCAwIDA7XG5cdFx0XHRcdC5vdmg7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGNpdGUge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOjdweCAwIDA7XG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBUYWcgQ2xvdWQgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF90YWdfY2xvdWQge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdGEge1xuXHRcdGxpbmUtaGVpZ2h0OjFlbTtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW46MCA0cHggMCAwO1xuXHRcdFxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFR3aXR0ZXIgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9jdXN0b21fdHdpdHRlcl9lbnRyaWVzIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHR1bCB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdGxpIHtcblx0XHRcdG1hcmdpbjowIDAgMjVweDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW46MDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQudHdlZXRfdGltZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nOjAgMCAwIDM1cHg7XG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZToxOHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MThweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0bGVmdDo0cHg7XG5cdFx0XHR0b3A6MDtcblx0XHR9XG5cdH1cblx0XG5cdC50d2VldF90ZXh0IHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdC5vdmg7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggKyBBcmNoaXZlcyArIFNpdGVtYXAgKyBFcnJvciArIE90aGVyIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqKioqKioqKioqKioqKioqIEFyY2hpdmVzICsgU2VhcmNoICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3NlYXJjaCwgXG4uY21zbWFzdGVyc19hcmNoaXZlIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuY29udGVudF93cmFwLmZ1bGx3aWR0aCAmIHtcblx0XHRwYWRkaW5nOjUwcHggMDtcblx0fVxuXHRcblx0PiAuYWJvdXRfYXV0aG9yIHtcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xuXHRcdG1hcmdpbjowIDAgNTBweDtcblx0XHQuYmR0KDApO1xuXHRcdC5iZGI7XG5cdFx0XG5cdFx0LmFib3V0X2F1dGhvcl9pbm5lciB7XG5cdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdH1cblx0fVxuXHRcblx0PiAuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24ge1xuXHRcdHBhZGRpbmc6NTBweCAwO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zZWFyY2hfemVybyB7XG5cdFx0LnNlYXJjaF9iYXJfd3JhcCB7XG5cdFx0XHRtYXgtd2lkdGg6NDAwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29udGVudCAmIHtcblx0XHQuY21zbWFzdGVyc19zZWFyY2hfemVybyB7XG5cdFx0XHQudGFsO1xuXHRcdFx0XG5cdFx0XHQmLnRhciB7XG5cdFx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQubWlkZGxlX2NvbnRlbnQgJiB7XG5cdFx0LmNtc21hc3RlcnNfc2VhcmNoX3plcm8ge1xuXHRcdFx0bWF4LXdpZHRoOjY1MHB4O1xuXHRcdFx0XG5cdFx0XHQmLnRhYyB7XG5cdFx0XHRcdG1hcmdpbjowIGF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX2FyY2hpdmVfdHlwZSB7XG5cdHBhZGRpbmc6NjBweCAwIDA7XG5cdC5vdmg7XG5cdFxuXHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdHBhZGRpbmctdG9wOjA7XG5cdH1cblx0XG5cdC5wcmVsb2FkZXIge1xuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYXJjaGl2ZXNfcGFkO1xuXHRcdFxuXHRcdCYuaGlnaEltZyB7XG5cdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdHBhZGRpbmc6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9pbWdfd3JhcCB7XG5cdFx0bWFyZ2luOjAgMzBweCAwIDA7XG5cdFx0d2lkdGg6MjMlO1xuXHRcdC5mbDtcblx0XHRcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX2NvbnRfd3JhcCB7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX3R5cGUge1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9oZWFkZXIge1xuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV90aXRsZSB7XG5cdFx0bWFyZ2luOjA7XG5cblx0XHRhIHtcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX2NvbnRlbnQge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0cCB7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faW5mbyB7XG5cdFx0cGFkZGluZzoxM3B4IDAgMDtcblx0XHRtYXJnaW4tdG9wOjIwcHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHQuYmR0O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fZGF0ZV93cmFwIHtcblx0XHRwYWRkaW5nOjAgMCAwIDEwcHg7XG5cdFx0LmZyO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdXNlcl9uYW1lIHtcblx0XHRwYWRkaW5nOjAgMTBweCAwIDA7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogU2l0ZW1hcCAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19zaXRlbWFwX3dyYXAge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblxuXHR1bCwgXG5cdG9sLCBcblx0bGkge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2RpdmlkZXIge1xuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2l0ZW1hcCB7XG5cdFx0cGFkZGluZzowO1xuXHRcdG1hcmdpbjowO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cGFkZGluZy10b3A6MzBweDtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRcdGhlaWdodDoxcHg7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDowO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQ+IGEge1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xuXHRcdFx0XHRcblx0XHRcdFx0KyB1bCB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDotMTBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQ+IHVsIHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0Lm92aDtcblx0XHRcdFx0XG5cdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdHdpZHRoOjI1JTtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XG5cdFx0XHRcdFx0LmZsO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg5KSwgXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMTMpLCBcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgxNyksIFxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDIxKSwgXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMjUpLCBcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyOSksIFxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMzKSwgXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMzcpLCBcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg0MSksIFxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDQ1KSB7XG5cdFx0XHRcdFx0XHRjbGVhcjpib3RoO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjIwcHg7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2l0ZW1hcF9jYXRlZ29yeSB7XG5cdFx0cGFkZGluZzo1cHggMCAwO1xuXHRcdG1hcmdpbjowO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHR3aWR0aDoyNSU7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XG5cdFx0XHQuZmw7XG5cdFx0XHRcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDkpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDEzKSwgXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxuXHRcdFx0JjpudGgtY2hpbGQoMjEpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDI1KSwgXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxuXHRcdFx0JjpudGgtY2hpbGQoMzMpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDM3KSwgXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxuXHRcdFx0JjpudGgtY2hpbGQoNDUpIHtcblx0XHRcdFx0Y2xlYXI6Ym90aDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0PiB1bCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XG5cdFx0XHRcblx0XHRcdFx0dWwge1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdFxuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MjBweDtcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NpdGVtYXBfYXJjaGl2ZSB7XG5cdFx0cGFkZGluZzo1cHggMCAyMHB4O1xuXHRcdG1hcmdpbjowO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0PiBsaSB7XG5cdFx0XHR3aWR0aDoyNSU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOjIwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XG5cdFx0XHQuZmw7XG5cdFx0XHRcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDkpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDEzKSwgXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxuXHRcdFx0JjpudGgtY2hpbGQoMjEpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDI1KSwgXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxuXHRcdFx0JjpudGgtY2hpbGQoMzMpLCBcblx0XHRcdCY6bnRoLWNoaWxkKDM3KSwgXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxuXHRcdFx0JjpudGgtY2hpbGQoNDUpIHtcblx0XHRcdFx0Y2xlYXI6Ym90aDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogRXJyb3IgKioqKioqKioqKioqKioqKioqL1xuLmVycm9yIHtcblx0Lm92aDtcblx0XG5cdC5lcnJvcl9pbm5lciB7XG5cdFx0cGFkZGluZzowIDAgNzBweDtcblx0fVxuXHRcblx0LmVycm9yX3RpdGxlIHtcblx0XHRmb250LXNpemU6MjYwcHg7XG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6OTVweCAwIDc1cHg7XG5cdFx0LnRhYztcblx0fVxuXHRcblx0LmVycm9yX3N1YnRpdGxlIHtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdH1cbn1cblxuLmVycm9yX2NvbnQge1xuXHRwYWRkaW5nOjgwcHggMDtcblx0LnRhYztcblx0XG5cdC5zZWFyY2hfYmFyX3dyYXAge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHR3aWR0aDoyNzBweDtcblx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHRtYXJnaW46MCAyMHB4O1xuXHR9XG5cdFxuXHQuZXJyb3JfYnV0dG9uX3dyYXAge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRtYXJnaW46MCAyMHB4O1xuXHR9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqIEF0dGFjaG1lbnQgUGFnZSAqKioqKioqKioqKioqKioqKiovXG4uY21zbWFzdGVyc19hdHRhY2hfaW1nIHtcblx0cGFkZGluZzo0MHB4IDA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfYXR0YWNoX2ltZ19pbmZvIHtcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xuXHRcdG1hcmdpbjowIDAgMzBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19hdHRhY2hfaW1nX2VkaXQge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHQuZnI7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfbWV0YSB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdC5vdmg7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogT3RoZXIgKioqKioqKioqKioqKioqKioqL1xuI21haW4ge1xuXHQud2l0aF9mcm1fc3R5bGUgLmZybV9mb3JtX2ZpZWxkcyBpbnB1dCwgXG5cdCN3cGNvbnRlbnQgLndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgdGV4dGFyZWEge1xuXHRcdHBhZGRpbmc6QGlucHV0X3BhZDtcblx0fVxufVxuXG4jbGFuZ19zZWwgdWwge1xuXHRvdmVyZmxvdzp2aXNpYmxlO1xufVxuXG4jbGFuZ19zZWxfZm9vdGVyIHtcblx0ZGlzcGxheTpub25lO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBQYXlQYWwgRG9uYXRpb25zICoqKioqKioqKioqKioqKioqKi9cbi5jbXNtYXN0ZXJzX3BheXBhbF9kb25hdGlvbnMge1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFxuXHQ+IGZvcm0ge1xuXHRcdD4gLnBheXBhbC1kb25hdGlvbnMge1xuXHRcdFx0aW5wdXRbdHlwZT1cImltYWdlXCJdIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0ei1pbmRleDoxMDA7XG5cdFx0XHRcdC5wb3NfYWJzKDEwMCUsIDEwMCUpO1xuXHRcdFx0XHQub3AoMCk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdD4gaW1nIHtcblx0XHRcdFx0LmRuO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYnV0dG9uIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdHotaW5kZXg6MTA7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb250YWN0IEZvcm1zIFN0eWxlc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRcblx0LnN1Y2Nlc3NfYm94IHtcblx0XHRtYXJnaW46MCBAY29sX21hciAxMHB4O1xuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdH1cblx0XG5cdC5mb3JtX2luZm8ge1xuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xuXHRcdHBhZGRpbmctYm90dG9tOjEwcHg7XG5cdFx0XG5cdFx0Ji5zdWJtaXRfd3JhcCB7XG5cdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0W2NsYXNzKj1cIm9uZV9cIl0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdFtjbGFzcyo9XCJvbmVfXCJdIHNlbGVjdCxcblx0W2NsYXNzKj1cIm9uZV9cIl0gdGV4dGFyZWEge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cbn1cblxuc3Bhbi53cGNmNy1saXN0LWl0ZW0ge1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRtYXJnaW46MCAhaW1wb3J0YW50O1xufVxuXG4ud3BjZjctbGlzdC1pdGVtLWxhYmVsLFxuYm9keSAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCwgXG5ib2R5IC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsLFxuI3dwLWNvbW1lbnQtY29va2llcy1jb25zZW50W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuLndvb2NvbW1lcmNlLWZvcm1fX2lucHV0LWNoZWNrYm94ICsgc3BhbiB7XG5cdHBhZGRpbmctbGVmdDozMHB4O1xuXHRwYWRkaW5nLXJpZ2h0OjA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LmZsO1xufVxuXG4ud3BjZjctbGlzdC1pdGVtIGxhYmVsIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0cGFkZGluZzo1cHggMDtcbn1cblxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4jd3AtY29tbWVudC1jb29raWVzLWNvbnNlbnRbdHlwZT1cImNoZWNrYm94XCJdLFxuLndvb2NvbW1lcmNlLWZvcm1fX2lucHV0LWNoZWNrYm94IHtcblx0LmZsICFpbXBvcnRhbnQ7XG5cdC5vcCgwKSAhaW1wb3J0YW50O1xuXHQucG9zX2FicygxZW0sIDFlbSwgMCwgYXV0bykgIWltcG9ydGFudDtcbn1cblxuXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUsXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUsXG4jd3AtY29tbWVudC1jb29raWVzLWNvbnNlbnRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YmVmb3JlLFxuLndvb2NvbW1lcmNlLWZvcm1fX2lucHV0LWNoZWNrYm94ICsgc3BhbjpiZWZvcmUge1xuXHRjb250ZW50OicnO1xuXHQuYmQ7XG5cdC5wb3NfYWJzKDE3cHgsIDE3cHgsIDFweCwgYXV0byk7XG59XG5cbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YmVmb3JlLCBcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSB7XG5cdC5iZHJzKDUwJSk7XG5cdHdpZHRoOjE4cHg7XG5cdGhlaWdodDoxOHB4O1xufVxuXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlcixcbiN3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDphZnRlcixcbi53b29jb21tZXJjZS1mb3JtX19pbnB1dC1jaGVja2JveCArIHNwYW46YWZ0ZXIge1xuXHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcblx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XG5cdHRyYW5zZm9ybTpzY2FsZSgwKTtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGxlZnQ6NXB4O1xuXHR0b3A6NXB4O1xuXHQub3AoMCk7XG59XG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlciB7XG5cdHRvcDogOHB4O1xufVxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YWZ0ZXIsXG4jd3AtY29tbWVudC1jb29raWVzLWNvbnNlbnRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsOmFmdGVyLFxuLndvb2NvbW1lcmNlLWZvcm1fX2lucHV0LWNoZWNrYm94ICsgc3BhbjphZnRlciB7XG5cdG1hcmdpbi10b3A6IDJweDtcbn1cblxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDphZnRlcixcbiN3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudFt0eXBlPSdjaGVja2JveCddICsgbGFiZWw6YWZ0ZXIsXG4ud29vY29tbWVyY2UtZm9ybV9faW5wdXQtY2hlY2tib3ggKyBzcGFuOmFmdGVyIHtcblx0Zm9udC1zaXplOjEzcHg7XG5cdC5wb3NfYWJzKDE3cHgsIDE3cHgsIDAsIGF1dG8pO1xuXHRsaW5lLWhlaWdodDoxN3B4O1xuXHRjb250ZW50OidcXGVhYmInO1xuXHRmb250LXdlaWdodDpib2xkO1xuXHRmb250LWZhbWlseTonZm9udGVsbG8nO1xuXHQudGFjO1xufVxuXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDphZnRlcixcbiN3cC1jb21tZW50LWNvb2tpZXMtY29uc2VudFt0eXBlPSdjaGVja2JveCddICsgbGFiZWw6YWZ0ZXIge1xuXHR0b3A6MDtcblx0Ym90dG9tOiAwO1xuXHRtYXJnaW46IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IDE3cHg7XG5cdGhlaWdodDogMTdweDtcblx0bGluZS1oZWlnaHQ6MTdweDtcbn1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcblx0LndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXG5cdC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxuXHQjd3AtY29tbWVudC1jb29raWVzLWNvbnNlbnRbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsOmFmdGVyLFxuXHQud29vY29tbWVyY2UtZm9ybV9faW5wdXQtY2hlY2tib3ggKyBzcGFuOmFmdGVyIHtcblx0XHRsaW5lLWhlaWdodDoyMHB4O1xuXHR9XG59XG5cbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsIFxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIge1xuXHRjb250ZW50OicnO1xuXHQuYmRycyg1MCUpO1xuXHR3aWR0aDoxMHB4O1xuXHRoZWlnaHQ6MTBweDtcbn1cblxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLFxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyLFxuI3dwLWNvbW1lbnQtY29va2llcy1jb25zZW50W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXG4ud29vY29tbWVyY2UtZm9ybV9faW5wdXQtY2hlY2tib3g6Y2hlY2tlZCAgKyBzcGFuOmFmdGVyIHtcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XG5cdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xuXHR0cmFuc2Zvcm06c2NhbGUoMSk7XG5cdC5vcCgxKTtcbn1cblxuLmNtc21hc3RlcnNfbWFpbHBvZXRfZm9ybSB7XG5cdC5zaG9ydGNvZGVfd3lzaWphLFxuXHQubWFpbHBvZXRfZm9ybV9zaG9ydGNvZGUge1xuXHRcdC50YWM7XG5cdH1cblxuXHQud2lkZ2V0X3d5c2lqYSxcblx0Zm9ybS5tYWlscG9ldF9mb3JtIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHRmb3JtIHtcblx0XHRmb250LXNpemU6MDtcblx0fVxuXHRcblx0LndpZGdldHRpdGxlIHtcblx0XHRtYXJnaW46MDtcblx0fVxuXHRcblx0Lnd5c2lqYS1wYXJhZ3JhcGgsIFxuXHQubWFpbHBvZXRfcGFyYWdyYXBoIHtcblx0XHRwYWRkaW5nOjA7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cdFx0bWluLXdpZHRoOiAzNDVweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuY21zbWFzdGVyc19jb2x1bW4ub25lX2hhbGYgJixcblx0XHQuY21zbWFzdGVyc19jb2x1bW4ub25lX3RoaXJkICYsXG5cdFx0LmNtc21hc3RlcnNfY29sdW1uLm9uZV9mb3VydGggJiB7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0Lm1haWxwb2V0X3BhcmFncmFwaDpmaXJzdC1vZi10eXBlIHtcblx0XHQmICsgLm1haWxwb2V0X3BhcmFncmFwaHtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9IFxuXHR9XG5cdFxuXHRpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pIHtcblx0XHQjcGFnZSAme1xuXHRcdFx0aGVpZ2h0OjU2cHg7XG5cdFx0XHRwYWRkaW5nOjEwcHggMjVweCAhaW1wb3J0YW50O1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdC5iZHJzKDApO1xuXHRcdFx0LmJkKDApO1xuXHRcdH1cblx0fVxuXHRcblx0Lnd5c2lqYS1zdWJtaXQtZmllbGQsXG5cdC5tYWlscG9ldF9zdWJtaXQge1xuXHRcdGxpbmUtaGVpZ2h0OjU2cHg7XG5cdFx0cGFkZGluZzogMCA1MHB4O1xuXHRcdC5iZHJzKDApO1xuXHRcdC5iZCgwKTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIFx0bWFyZ2luLWxlZnQ6IC01cHggIWltcG9ydGFudDtcblx0fVxuXG5cdC5mb3JtRXJyb3Ige1xuXHRcdHRvcDogLTEwMHB4ICFpbXBvcnRhbnQ7XG5cdFx0bGVmdDogMCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdFx0LmZvcm1FcnJvckNvbnRlbnQge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGF0ZXBpY2tlciBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uZGF0ZXBpY2tlciB7XG5cdHotaW5kZXg6OTk5OSAhaW1wb3J0YW50O1xuXHRcblx0LmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTpub25lICFpbXBvcnRhbnQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdG9wYWNpdHk6IDAuOTtcblx0XHR9XG5cdH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENTUzMgQW5pbWF0aW9uc1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaHRtbC5jc3N0cmFuc2l0aW9ucyB7XG5cdC8qIEN1c3RvbSBBbmltYXRpb25zICovXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybSAuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm1fY2xvc2UsIFxuXHQuY21zbWFzdGVyc19wb3N0X3RpbWVsaW5lIC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSAuY21zbWFzdGVyc19wb3N0X2RheSxcblx0LmNtc21hc3RlcnNfcHJldl9hcnJvdyBzcGFuLCBcblx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdyBzcGFuIHtcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXG5cdC5zZWFyY2hfYmFyX3dyYXAgLnNlYXJjaF9idXR0b24gYnV0dG9uOmJlZm9yZSB7XG5cdFx0LnRyYW5zKH4nbm9uZScpO1xuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190YWJzIC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXBwZXI6YmVmb3JlIHtcblx0XHQudHJhbnMofidib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXG5cdHRleHRhcmVhLCBcblx0c2VsZWN0IHtcblx0XHQudHJhbnMofidib3JkZXItY29sb3IgLjJzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IC4ycyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIsXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyLFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAucHJvamVjdF9pbm5lciB7XG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3QgIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayxcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluayB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQsIGNvbG9yIC40cyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgLmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmsge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjRzIGVhc2UtaW4tb3V0IC4xcywgY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cdFxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZSAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluazpiZWZvcmUge1xuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCwgYm90dG9tIC40cyBlYXNlLWluLW91dCAuMXMsIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0IC4xcycpO1xuXHR9XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGluazpiZWZvcmUsXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIgLmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbms6YmVmb3JlIHtcblx0XHQudHJhbnMofidjb2xvciAuNHMgZWFzZS1pbi1vdXQsIGJvdHRvbSAuNHMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLnByb2plY3Rfb3V0ZXI6aG92ZXIgLmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8gIHtcblx0XHQudHJhbnMofidib3R0b20gLjNzIGVhc2UtaW4tb3V0IC4xcywgb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjFzJyk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIC5wcm9qZWN0X291dGVyIC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udF9pbmZvLFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAucHJvamVjdF9vdXRlciAuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3Rlcixcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLnByb2plY3Rfb3V0ZXIgLmNtc21hc3RlcnNfcHJvamVjdF9oZWFkZXIgIHtcblx0XHQudHJhbnMofidib3R0b20gLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAucHJvamVjdF9vdXRlcjpob3ZlciAuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciAge1xuXHRcdC50cmFucyh+J2JvdHRvbSAuM3MgZWFzZS1pbi1vdXQgLjJzLCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMnMnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLnByb2plY3Rfb3V0ZXI6aG92ZXIgLmNtc21hc3RlcnNfcHJvamVjdF9mb290ZXIgIHtcblx0XHQudHJhbnMofidib3R0b20gLjNzIGVhc2UtaW4tb3V0IC4zcywgb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjNzJyk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgaW1nLFxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfd3JhcCAuY21zbWFzdGVyc19pdGVtc19zb3J0X2J1dDpiZWZvcmUge1xuXHRcdC50cmFucyh+J3RyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtLCBcblx0LndpZGdldF9uYXZfbWVudSB1bCBsaSBhOmJlZm9yZSxcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgYTpiZWZvcmUsIFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAuY21zbWFzdGVyc19wcm9qZWN0X3RpdGxlLFxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAuY21zbWFzdGVyc19wcm9qZWN0X2NvbnRfaW5mbyBhLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wcmVsb2FkZXI6YWZ0ZXIge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5wb3N0LmNtc21hc3RlcnNfcG9zdF9wdXp6bGUgIC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMgYTpiZWZvcmUsIFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlICAuY21zbWFzdGVyc19wb3N0X2xpa2VzIGE6YmVmb3JlLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9jb250ZW50LFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9jYXRfc3VmLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9hdXRob3Jfc3VmLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9saWtlcyBzcGFuLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9jb21tZW50cyBzcGFuLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgLmNtc21hc3RlcnNfcG9zdF9kYXRlLFxuXHQucG9zdC5jbXNtYXN0ZXJzX3Bvc3RfcHV6emxlIC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXAgYSB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0ge1xuXHRcdC50cmFucyh+J3Zpc2liaWxpdHkgLjRzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC40cyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0gLmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2ZpZWxkOmJlZm9yZSwgXG5cdC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybSAuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm1fZmllbGQ6YWZ0ZXIgeyBcblx0XHQudHJhbnMofid0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQucmVzcG9uc2l2ZV90b3BfbmF2IHNwYW4sXG5cdC5yZXNwb25zaXZlX25hdiBzcGFuIHtcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMnKTtcblx0fVxuXHRcblx0Lm93bC1idXR0b25zID4gZGl2IHtcblx0XHQudHJhbnMofidsZWZ0IC4zcyBlYXNlLWluLW91dCwgcmlnaHQgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5wb3N0LmNtc21hc3RlcnNfcG9zdF9wdXp6bGUgLnB1enpsZV9wb3N0X2NvbnRlbnRfd3JhcHBlciAuY21zbWFzdGVyc19wb3N0X2Zvb3Rlcixcblx0LmNtc21hc3RlcnNfcHJldl9hcnJvdyxcblx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdyB7XG5cdFx0LnRyYW5zKH4nYm9yZGVyLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LnBvc3QuY21zbWFzdGVyc19wb3N0X3B1enpsZSAucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcblx0XHQudHJhbnMofidib3gtc2hhZG93IC4zcyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LnJlc3BvbnNpdmVfdG9wX25hdjpiZWZvcmUsXG5cdC5yZXNwb25zaXZlX3RvcF9uYXY6YWZ0ZXIsXG5cdC5yZXNwb25zaXZlX25hdjpiZWZvcmUsXG5cdC5yZXNwb25zaXZlX25hdjphZnRlciB7XG5cdFx0LnRyYW5zKH4nYm90dG9tIC4zcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIC4zcyBlYXNlLW91dCAuM3MnKTtcblx0fVxuXHRcblx0Lm93bC1wYWdpbmF0aW9uIC5vd2wtcGFnZSBzcGFuLFxuXHQub3dsLXBhZ2luYXRpb24gLm93bC1wYWdlLFxuXHQub3dsLXBhZ2luYXRpb24gLm93bC1wYWdlOmJlZm9yZSxcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtIC5jbXNtYXN0ZXJzX2hlYWRlcl9zZWFyY2hfZm9ybV9jbG9zZSB7XG5cdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHRcblx0LmNtc21hc3RlcnNfdGFicyAuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSBhLFxuXHQjc2xpZGVfdG9wIHtcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5wb3N0LmNtc21hc3RlcnNfcG9zdF9wdXp6bGUgIC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMgYSwgXG5cdC5wb3N0LmNtc21hc3RlcnNfcG9zdF9wdXp6bGUgIC5jbXNtYXN0ZXJzX3Bvc3RfbGlrZXMgYSB7XG5cdFx0LnRyYW5zKH4nbm9uZScpO1xuXHR9XG5cdFxuXHQvKiBHbG9iYWwgQW5pbWF0aW9ucyAqL1xuXHRhLCBcblx0LmNtc21hc3RlcnNfaWNvbl93cmFwIC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uX3RpdGxlLFxuXHQuaW1nX3BsYWNlaG9sZGVyX3NtYWxsLFxuXHQuY21zbWFzdGVyc19zaXRlbWFwX3dyYXAgLmNtc21hc3RlcnNfc2l0ZW1hcCA+IGxpID4gdWwgPiBsaSA+IHVsIGxpIGE6YmVmb3JlIHtcblx0XHQudHJhbnMoY29sb3IgLjNzIGVhc2UtaW4tb3V0KTtcblx0fVxuXHRcblx0LmhlYWRlcl9taWQsIFxuXHQuaGVhZGVyX2JvdCB7XG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0I3BhZ2UgLmNtc21hc3RlcnNfc29jaWFsX2ljb24sIFxuXHQuZWRnZV9vbmx5IC5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCwgYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXG5cdC5uYXZpZ2F0aW9uIC5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpID4gYSAubmF2X3RpdGxlIHtcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0bmF2ID4gZGl2ID4gdWwgdWwsXG5cdG5hdiA+IGRpdiA+IHVsIGRpdiB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjFzLCBtYXJnaW4tdG9wIC4zcyBlYXNlLWluLW91dCAuMXMnKTtcblx0fVxuXHRcblx0bmF2ID4gZGl2ID4gdWwgdWwgdWwge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0IC4xcywgbWFyZ2luLWxlZnQgLjNzIGVhc2UtaW4tb3V0IC4xcywgbWFyZ2luLXJpZ2h0IC4zcyBlYXNlLWluLW91dCAuMXMnKTtcblx0fVxuXHRcblx0bmF2ID4gZGl2ID4gdWwgbGkgYSxcblx0LmNtc21hc3RlcnNfaWNvbl93cmFwIC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uIHtcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdG5hdiA+IGRpdiA+IHVsIGxpIGEgLm5hdl9zdWJ0aXRsZSB7XG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5zZWFyY2hfd3JhcCB+IGRpdiB7XG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgLjJzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5oZWFkZXJfdG9wIC5oZWFkZXJfdG9wX2J1dCB7XG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgPiBsaSBpbWcge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjRzIGVhc2UtaW4tb3V0LCB3aWR0aCAuM3MgZWFzZS1pbi1vdXQsIGxlZnQgLjNzIGVhc2UtaW4tb3V0LCByaWdodCAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2l0ZW1zID4gbGkge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2UtaW4tb3V0LCB2aXNpYmlsaXR5IC41cyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzID4gbGkgYSB7XG5cdFx0LnRyYW5zKGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGE6YmVmb3JlIHtcblx0XHQudHJhbnMob3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQpO1xuXHR9XG5cdFxuXHQuaXNvdG9wZSA+ICoge1xuXHRcdC50cmFucyhvcGFjaXR5IC44cyBlYXNlLWluLW91dCk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIGltZyxcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIC5mdWxsLXdpZHRoIHtcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQubm90aWNlX2Nsb3NlLCBcblx0LmNtc21hc3RlcnNfcHJvamVjdF9ncmlkIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcixcblx0LmJ1dHRvbiwgXG5cdGlucHV0W3R5cGU9c3VibWl0XSwgXG5cdGlucHV0W3R5cGU9YnV0dG9uXSwgXG5cdGJ1dHRvbixcblx0LmNtc21hc3RlcnNfYnV0dG9uLCBcblx0LmNtc21hc3RlcnNfYnV0dG9uLmNtc21hc3RlcnNfYnV0X2NsZWFyX3N0eWxlczpiZWZvcmUsIFxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzOmFmdGVyIHtcblx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblxuXHQud2lkZ2V0X3NlYXJjaCAuc2VhcmNoX2J1dHRvbiBidXR0b24sXG5cdC53aWRnZXRfcHJvZHVjdF9zZWFyY2ggIC5zZWFyY2hfYnV0dG9uIGJ1dHRvbiB7XG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0LFxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9yaWdodCB7XG5cdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlLWluLW91dCwgY29sb3IgMHMgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcblx0LmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YWZ0ZXIsXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsIFxuXHQuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlcixcblx0I3dwLWNvbW1lbnQtY29va2llcy1jb25zZW50W3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbDphZnRlcixcblx0Lndvb2NvbW1lcmNlLWZvcm1fX2lucHV0LWNoZWNrYm94ICsgc3BhbjphZnRlciB7XG5cdFx0LnRyYW5zKH4nYWxsIC4ycyBlYXNlLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fdG9wOmJlZm9yZSxcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2JveF90b3A6YmVmb3JlLFxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnRfdG9wOmJlZm9yZSxcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2JveF9sZWZ0OmJlZm9yZSxcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoMTpiZWZvcmUsXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDI6YmVmb3JlLFxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGgzOmJlZm9yZSwgXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDQ6YmVmb3JlLCBcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoNTpiZWZvcmUsIFxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGg2OmJlZm9yZSB7XG5cdFx0LnRyYW5zKH4nYWxsIDFzIGN1YmljLWJlemllciguNTUsIC4zLCAuNSwgMS42NSknKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW06YmVmb3JlIHtcblx0XHQudHJhbnMofidvcGFjaXR5IDVzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjhzIGVhc2UtaW4nKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24sIFxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSAuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbjphZnRlciB7XG5cdFx0LnRyYW5zKH4nYWxsIC41cyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSAuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbjpiZWZvcmUge1xuXHRcdC50cmFucyh+J2NvbG9yIC40cyBlYXNlLWluLW91dCwgZm9udC1zaXplIC40cyBlYXNlLWluLW91dCwgbGluZS1oZWlnaHQgLjRzIGVhc2UtaW4nKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfY2xpZW50c19pdGVtIGltZywgXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlciAuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzIGEge1xuXHRcdC50cmFucyh+J2FsbCAuNXMgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZmlsZSAucHJvZmlsZSAucGxfc29jaWFsX2xpc3Qge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2Utb3V0LCBtYXJnaW4gLjVzIGVhc2Utb3V0Jyk7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCBmaWd1cmUge1xuXHRcdC50cmFucyh+J29wYWNpdHkgLjdzIGVhc2UtaW4tb3V0Jyk7XG5cdH1cblxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdCAuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9mb290ZXIgYTpiZWZvcmUge1xuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV9ob3Jpem9udGFsLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xuXHRcdC1vLWFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xuXHRcdGFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV92ZXJ0aWNhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XG5cdFx0LW1vei1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcblx0XHQtby1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XG5cdFx0YW5pbWF0aW9uOmJhcl91cCAycyBlYXNlLWluO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV9ob3Jpem9udGFsLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyOmJlZm9yZSxcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyIC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xuXHRcdC13ZWJraXQtYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xuXHRcdC1tcy1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XG5cdFx0LW8tYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xuXHRcdGFuaW1hdGlvbjpiYXJfdGl0bGUgMi4ycyBlYXNlLW91dDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnN0YXRzX3R5cGVfdmVydGljYWwuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXI6YmVmb3JlIHtcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9pY29uIDIuMnMgZWFzZS1vdXQ7XG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xuXHRcdC1vLWFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xuXHRcdGFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIgLmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xuXHRcdC13ZWJraXQtYW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XG5cdFx0LW8tYW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcblx0XHRhbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xuXHR9XG5cdFx0XG5cdC5jbXNtYXN0ZXJzX2NvbHVtbl9zdGlja3l7XG5cdFx0LnRyYW5zKH4nLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UsIHRyYW5zZm9ybSAuM3MgZWFzZScpO1xuXHR9XG5cdFxuXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfbW92ZSB7XG5cdFx0ZnJvbSB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdFxuXHRALW1vei1rZXlmcmFtZXMgYmFyX21vdmUge1xuXHRcdGZyb20ge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0fVxuXHRcdFxuXHRcdHRvIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxuXHRcblx0QC1vLWtleWZyYW1lcyBiYXJfbW92ZSB7XG5cdFx0ZnJvbSB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cdFxuXHRAa2V5ZnJhbWVzIGJhcl9tb3ZlIHtcblx0XHRmcm9tIHtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblx0XG5cdFxuXHRALXdlYmtpdC1rZXlmcmFtZXMgYmFyX3VwIHtcblx0XHRmcm9tIHtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XG5cdFx0fVxuXHRcdFxuXHRcdHRvIHtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xuXHRcdH1cblx0fVxuXHRcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl91cCB7XG5cdFx0ZnJvbSB7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcblx0XHR9XG5cdH1cblx0XG5cdEAtby1rZXlmcmFtZXMgYmFyX3VwIHtcblx0XHRmcm9tIHtcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHQtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XG5cdFx0fVxuXHR9XG5cdEBrZXlmcmFtZXMgYmFyX3VwIHtcblx0XHRmcm9tIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwJSk7XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl90aXRsZSB7XG5cdFx0ZnJvbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl90aXRsZSB7XG5cdFx0ZnJvbSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0QC1vLWtleWZyYW1lcyBiYXJfdGl0bGUge1xuXHRcdGZyb20ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcblx0XHR9XG5cdH1cblx0XG5cdEBrZXlmcmFtZXMgYmFyX3RpdGxlIHtcblx0XHRmcm9tIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMjAwcHg7XG5cdFx0fVxuXHRcdFxuXHRcdHRvIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl9pY29uIHtcblx0XHRmcm9tIHtcblx0XHRcdG1hcmdpbi1yaWdodDogLTIwMHB4O1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcblx0XHR9XG5cdH1cblx0XG5cdEAtbW96LWtleWZyYW1lcyBiYXJfaWNvbiB7XG5cdFx0ZnJvbSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0yMDBweDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHRALW8ta2V5ZnJhbWVzIGJhcl9pY29uIHtcblx0XHRmcm9tIHtcblx0XHRcdG1hcmdpbi1yaWdodDogLTIwMHB4O1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcblx0XHR9XG5cdH1cblx0XG5cdEBrZXlmcmFtZXMgYmFyX2ljb24ge1xuXHRcdGZyb20ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMjAwcHg7XG5cdFx0fVxuXHRcdFxuXHRcdHRvIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0XG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfaW5uZXIge1xuXHRcdGZyb20ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblx0XG5cdEAtbW96LWtleWZyYW1lcyBiYXJfaW5uZXIge1xuXHRcdGZyb20ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHR9XG5cdFx0XG5cdFx0dG8ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblx0XG5cdEAtby1rZXlmcmFtZXMgYmFyX2lubmVyIHtcblx0XHRmcm9tIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHRcdFxuXHRcdHRvIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XG5cdFxuXHRAa2V5ZnJhbWVzIGJhcl9pbm5lciB7XG5cdFx0ZnJvbSB7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdH1cblx0XHRcblx0XHR0byB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4iLCJcclxuQGlucHV0X3BhZDogMTBweDtcclxuQGlucHV0X2hlaWdodDogNDJweDtcclxuXHJcbkBsaW5lX2hlaWdodF9wYWQ6IDIycHg7XHJcbkBkZWZhdWx0X2xpc3RfdG9wX3BhZDogMTBweDtcclxuQGRlZmF1bHRfbGlzdF9sZWZ0X3BhZDogMjBweDtcclxuQGJsb2Nrc19ob3JfcGFkOiAyMHB4O1xyXG5AY29udF9zaWRlYmFyX3BhZDogNDBweDtcclxuQGNvbnRfdmVydF9wYWQ6IDYwcHg7XHJcblxyXG5AYmRyc193aWR0aDogNHB4O1xyXG5cclxuQGJ1dF9iZHJzX3dpZHRoOiAyMnB4O1xyXG5AYnV0X2JkX3dpZHRoOiAxcHg7XHJcblxyXG5AY29sX21hcjogMS43JTtcclxuXHJcbkByZXNwX2Jsb2Nrc19wYWQ6IDU4LjE0JTtcclxuXHJcbkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDogNTguMTQlO1xyXG5AcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ6IDcyLjQxJTtcclxuQHByZWxvYWRlcl9ibG9nX3RpbWVsaW5lX3BhZDogNTguMTQlO1xyXG5AcHJlbG9hZGVyX29wZW5fcG9zdF9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ6IDEwMCU7XHJcbkBwcmVsb2FkZXJfb3Blbl9wcm9qZWN0X3BhZDogNTguMTQlO1xyXG5AcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ6IDcyLjQxJTtcclxuQHByZWxvYWRlcl9hcmNoaXZlc19wYWQ6IDEwMCU7XHJcblxyXG5Ac2lkZWJhcl93aWR0aDogMjYlO1xyXG5AY29udGVudF93aWR0aDogMTAwJSAtIEBzaWRlYmFyX3dpZHRoO1xyXG5cclxuQG1pZF9uYXZfZHJvcGRvd25fd2lkdGg6IDE4NHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfYm90OiAxMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAxcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAxMnB4O1xyXG5cclxuQGJvdF9uYXZfZHJvcGRvd25fd2lkdGg6IDE4NHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfYm90OiAxMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAxcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAxMnB4O1xyXG5cclxuQHRvcF9uYXZfZHJvcGRvd25fd2lkdGg6IDEyNnB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfYm90OiAxMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAxcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAxcHg7XHJcblxyXG5AY29udF93aWR0aF9kZWY6IDk4MHB4O1xyXG5AY29udF93aWR0aF9sYXJnZTogMTIwMHB4O1xyXG5AY29udF93aWR0aF9mdWxsOiAxMDAlO1xyXG5AY29udF93aWR0aF9taW46IDMyMHB4O1xyXG5cclxuQGlucHV0X3RleHQ6IGUoJ2lucHV0Om5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9ZmlsZV0pOm5vdChbdHlwZT1oaWRkZW5dKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9cmVzZXRdKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWNvbG9yXSk6bm90KFt0eXBlPXJhbmdlXSknKTtcclxuXHJcbkBtb25pdG9yX2xhcmdlOiB+JyhtaW4td2lkdGg6IDE0NDBweCknO1xyXG5AbW9uaXRvcl9tZWRpdW06IH4nKG1pbi13aWR0aDogMTAyNXB4KSc7XHJcbkBtb25pdG9yX3RhYmxldDogficobWF4LXdpZHRoOiAxMDI0cHgpJztcclxuQG1vbml0b3JfdGFibGV0Xzk1MDogficobWF4LXdpZHRoOiA5NTBweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfc21hbGw6IH4nKG1heC13aWR0aDogNzY4cHgpJztcclxuQG1vbml0b3JfdGFibGV0XzYwMDogficobWF4LXdpZHRoOiA2MDBweCknO1xyXG5AbW9uaXRvcl9waG9uZTogficobWF4LXdpZHRoOiA1NDBweCknO1xyXG5AbW9uaXRvcl9waG9uZV9zbWFsbDogficobWF4LXdpZHRoOiAzMjBweCknO1xyXG5cclxuXHJcblxyXG4uZmwgKCkge1xyXG5cdGZsb2F0OmxlZnQ7XHJcbn1cclxuXHJcbi5mciAoKSB7XHJcblx0ZmxvYXQ6cmlnaHQ7XHJcbn1cclxuXHJcbi5kbiAoKSB7XHJcblx0ZGlzcGxheTpub25lO1xyXG59XHJcblxyXG4udGFsICgpIHtcclxuXHR0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuXHJcbi50YWMgKCkge1xyXG5cdHRleHQtYWxpZ246Y2VudGVyO1xyXG59XHJcblxyXG4udGFyICgpIHtcclxuXHR0ZXh0LWFsaWduOnJpZ2h0O1xyXG59XHJcblxyXG4uY2wgKCkge1xyXG5cdGNsZWFyOmJvdGg7XHJcbn1cclxuXHJcbi5vdmggKCkge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLm0wYSAoKSB7XHJcblx0bWFyZ2luOjAgYXV0bztcclxufVxyXG5cclxuLmJkIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkdCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkYiAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QHc7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkciAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAdztcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGwgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAdztcclxuXHRib3JkZXItbGVmdC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmNvbG9yX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmJnX3doaXRlX29wYWNpdHkgKEBvcDouNSkge1xyXG5cdGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCBAb3ApO1xyXG59XHJcblxyXG4uZnVsbHdpZHRoX2luX2Jsb2NrICgpIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHRvcDowO1xyXG5cdGxlZnQ6MDtcclxufVxyXG5cclxuLm9wIChAb3A6LjUpIHtcclxuXHRvcGFjaXR5OkBvcDtcclxufVxyXG5cclxuLmRpc3BsYXlfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWZsZXg7XHJcblx0ZGlzcGxheTotbXMtZmxleDtcclxuXHRkaXNwbGF5OmZsZXg7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2lubGluZV9mbGV4ICgpIHtcclxuXHRkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTotbW96LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6aW5saW5lLWZsZXg7XHJcbn1cclxuXHJcbi5mbGV4X2RpcmVjdGlvbiAoQGQ6cm93KSB7XHJcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbW96LWZsZXgtZGlyZWN0aW9uOkBkO1xyXG5cdC1tcy1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHRmbGV4LWRpcmVjdGlvbjpAZDtcclxufVxyXG5cclxuLmZsZXhfd3JhcCAoQGQ6bm93cmFwKSB7XHJcblx0LXdlYmtpdC1mbGV4LXdyYXA6QGQ7XHJcblx0LW1vei1mbGV4LXdyYXA6QGQ7XHJcblx0LW1zLWZsZXgtd3JhcDpAZDtcclxuXHRmbGV4LXdyYXA6QGQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5X2NvbnRlbnQgKEBkOmZsZXgtc3RhcnQpIHtcclxuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbW96LWp1c3RpZnktY29udGVudDpAZDtcclxuXHQtbXMtanVzdGlmeS1jb250ZW50OkBkO1xyXG5cdGp1c3RpZnktY29udGVudDpAZDtcclxufVxyXG5cclxuLmFsaWduX2l0ZW1zIChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1pdGVtczpAZDtcclxuXHQtbW96LWFsaWduLWl0ZW1zOkBkO1xyXG5cdC1tcy1hbGlnbi1pdGVtczpAZDtcclxuXHRhbGlnbi1pdGVtczpAZDtcclxufVxyXG5cclxuLmFsaWduX2NvbnRlbnQgKEBkOnN0cmV0Y2gpIHtcclxuXHQtd2Via2l0LWFsaWduLWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tcy1hbGlnbi1jb250ZW50OkBkO1xyXG5cdGFsaWduLWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5jbF9hZnRlciAoKSB7XHJcblx0Y29udGVudDonLic7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRjbGVhcjpib3RoO1xyXG5cdGhlaWdodDowO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLnZhbGlnbl9hZnRlciAoKSB7XHJcblx0Y29udGVudDonJztcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0aGVpZ2h0OjEwMCU7XHJcbn1cclxuXHJcbi5wb3NfYWJzIChAdzoxZW07IEBoOjFlbTsgQGw6MDsgQHI6MDsgQHQ6MDsgQGI6MCkge1xyXG5cdHdpZHRoOkB3O1xyXG5cdGhlaWdodDpAaDtcclxuXHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdGxlZnQ6QGw7XHJcblx0cmlnaHQ6QHI7XHJcblx0dG9wOkB0O1xyXG5cdGJvdHRvbTpAYjtcclxufVxyXG5cclxuLmJkYnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdC1tb3otYm94LXNpemluZzpib3JkZXItYm94O1xyXG5cdGJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxufVxyXG5cclxuLmN0YnggKCkge1xyXG5cdC13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0Ym94LXNpemluZzpjb250ZW50LWJveDtcclxufVxyXG5cclxuLmJkcnMgKEByYWRpdXM6QGJkcnNfd2lkdGgpIHtcclxuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6QHJhZGl1cztcclxuXHRib3JkZXItcmFkaXVzOkByYWRpdXM7XHJcbn1cclxuXHJcbi5ieHNoIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaF93aGl0ZSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hpIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaGlfd2hpdGUgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoX25vbmUgKCkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpub25lO1xyXG5cdGJveC1zaGFkb3c6bm9uZTtcclxufVxyXG5cclxuLnRyYW5zKEB0cmFuczowKSB3aGVuIG5vdCAoQHRyYW5zID0gMCkge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1tb3otdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtbXMtdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtby10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIHRyYW5zaXRpb246QHRyYW5zO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wIChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDpAaDtcclxuXHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tIChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAaDtcclxuXHRib3JkZXItdG9wLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkBoO1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wX2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXJpZ2h0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3RvcF9yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItYm90dG9tOkBoIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAdztcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b21fbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItdG9wOkBoIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAdztcclxuXHRib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbV9yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDpAaDtcclxuXHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uZGVmYXVsdF9saXN0IChAdzo0cHg7IEBoOjRweDsgQG06MCAxMHB4IDAgMDsgQGJkcnM6NTAlKSB7XHJcblx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonXFxlYjIyJztcclxuXHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvJztcclxuXHRcdFx0Zm9udC1zdHlsZTpub3JtYWw7XHJcblx0XHRcdGZvbnQtd2VpZ2h0Om5vcm1hbDtcclxuXHRcdFx0c3BlYWs6bm9uZTtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjppbmhlcml0O1xyXG5cdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjAgNXB4IDAgMDtcclxuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdGZvbnQtdmFyaWFudDpub3JtYWw7XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOm5vbmU7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9ibG9ja3F1b3RlICgpIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0cGFkZGluZy1sZWZ0OjUzcHg7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkOyAvKiBkb24ndCB0b3VjaCAqL1xyXG5cdC5iZCgwKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDonXFwyMDFEJztcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRmb250LXNpemU6NTBweDtcclxuXHRcdGxpbmUtaGVpZ2h0OjUwcHg7XHJcblx0fVxyXG5cclxuXHRwOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdH1cclxuXHJcblx0Y2l0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLXRvcDoxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmRlZmF1bHRfdGFibGUgKCkge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdGJvcmRlci1zcGFjaW5nOjA7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xyXG5cdFxyXG5cdHRoLCBcclxuXHR0ZCB7XHJcblx0XHRwYWRkaW5nOjEwcHg7XHJcblx0XHQuYmQ7XHJcblx0fVxyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC8qIGZvciBndXRlbmJlcmcgc3RhcnQgKi9cclxuXHQmLmlzLXN0eWxlLXN0cmlwZXMge1xyXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xyXG5cdFx0LmJkKDApO1xyXG5cdFx0XHJcblx0XHR0cjpudGgtY2hpbGQob2RkKSB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcblx0LyogZm9yIGd1dGVuYmVyZyBlbmQgKi9cclxufVxyXG5cclxuLmRlZmF1bHRfYnV0dG9uICgpIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRwYWRkaW5nOjAgMzBweDtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHJcblx0LnRhYztcclxuXHQuYmQoQGJ1dF9iZF93aWR0aCk7XHJcblx0LmJkcnMoQGJ1dF9iZHJzX3dpZHRoKTtcclxufVxyXG5cclxuLmRlZmF1bHRfc2VsZWN0IChAcGx1Z2luOjApIHtcclxuXHRsaW5lLWhlaWdodDoxLjY7XHJcblx0dGV4dC1pbmRlbnQ6MC4wMXB4O1xyXG5cdHRleHQtb3ZlcmZsb3c6Jyc7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkIDEwJSBAaW5wdXRfcGFkIDE1cHg7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XHJcblx0LW1vei1hcHBlYXJhbmNlOm5vbmU7XHJcblx0LW1zLWFwcGVhcmFuY2U6bm9uZTtcclxuXHRhcHBlYXJhbmNlOm5vbmUgIWltcG9ydGFudDtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjk0JSBjZW50ZXI7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdG1pbi13aWR0aDoxMDBweDtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1pbi13aWR0aDoxMDBweDtcclxuXHRoZWlnaHQ6QGlucHV0X2hlaWdodCArIDNweDtcclxuXHQuYmRycygwKTtcclxuXHRcclxuXHQmIHdoZW4gKEBwbHVnaW4gPiAwKSB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcclxuXHR9XHJcblx0XHJcblx0JiB3aGVuIChAcGx1Z2luID0gMCkge1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uLy4uLy4uL2ltZy9zZWxlY3QucG5nJyk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4iXSwiZmlsZSI6InN0eWxlLmNzcyJ9 */
